@serviceme/devtools-cli 0.1.6 → 0.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/dist/bridgeServer.js +533 -426
- package/dist/cli.js +968 -882
- package/package.json +6 -4
package/dist/cli.js
CHANGED
|
@@ -1,54 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var fs12 = require('fs/promises');
|
|
5
|
-
var path11 = require('path');
|
|
6
|
-
var child_process = require('child_process');
|
|
7
|
-
var fs9 = require('fs');
|
|
8
|
-
var crypto = require('crypto');
|
|
9
|
-
var os = require('os');
|
|
10
|
-
var readline = require('readline');
|
|
11
|
-
|
|
12
|
-
function _interopNamespace(e) {
|
|
13
|
-
if (e && e.__esModule) return e;
|
|
14
|
-
var n = Object.create(null);
|
|
15
|
-
if (e) {
|
|
16
|
-
Object.keys(e).forEach(function (k) {
|
|
17
|
-
if (k !== 'default') {
|
|
18
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
19
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function () { return e[k]; }
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
n.default = e;
|
|
27
|
-
return Object.freeze(n);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
var fs12__namespace = /*#__PURE__*/_interopNamespace(fs12);
|
|
31
|
-
var path11__namespace = /*#__PURE__*/_interopNamespace(path11);
|
|
32
|
-
var fs9__namespace = /*#__PURE__*/_interopNamespace(fs9);
|
|
33
|
-
var os__namespace = /*#__PURE__*/_interopNamespace(os);
|
|
34
|
-
var readline__namespace = /*#__PURE__*/_interopNamespace(readline);
|
|
35
|
-
|
|
2
|
+
"use strict";
|
|
36
3
|
var __create = Object.create;
|
|
37
4
|
var __defProp = Object.defineProperty;
|
|
38
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
39
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
40
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
41
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
42
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
43
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
44
|
-
}) : x)(function(x) {
|
|
45
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
46
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
47
|
-
});
|
|
48
9
|
var __esm = (fn, res) => function __init() {
|
|
49
10
|
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
50
11
|
};
|
|
51
|
-
var __commonJS = (cb, mod) => function
|
|
12
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
52
13
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
53
14
|
};
|
|
54
15
|
var __export = (target, all) => {
|
|
@@ -68,25 +29,28 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
68
29
|
// file that has been converted to a CommonJS file using a Babel-
|
|
69
30
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
70
31
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
71
|
-
!mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
32
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
72
33
|
mod
|
|
73
34
|
));
|
|
74
35
|
|
|
75
36
|
// ../../packages/serviceme-protocol/src/agent.ts
|
|
76
37
|
var init_agent = __esm({
|
|
77
38
|
"../../packages/serviceme-protocol/src/agent.ts"() {
|
|
39
|
+
"use strict";
|
|
78
40
|
}
|
|
79
41
|
});
|
|
80
42
|
|
|
81
43
|
// ../../packages/serviceme-protocol/src/scheduled-tasks.ts
|
|
82
44
|
var init_scheduled_tasks = __esm({
|
|
83
45
|
"../../packages/serviceme-protocol/src/scheduled-tasks.ts"() {
|
|
46
|
+
"use strict";
|
|
84
47
|
}
|
|
85
48
|
});
|
|
86
49
|
|
|
87
50
|
// ../../packages/serviceme-protocol/src/skill.ts
|
|
88
51
|
var init_skill = __esm({
|
|
89
52
|
"../../packages/serviceme-protocol/src/skill.ts"() {
|
|
53
|
+
"use strict";
|
|
90
54
|
}
|
|
91
55
|
});
|
|
92
56
|
|
|
@@ -109,6 +73,7 @@ function isBridgeRequest(value) {
|
|
|
109
73
|
var SERVICEME_PROTOCOL_VERSION, BRIDGE_METHODS;
|
|
110
74
|
var init_bridge = __esm({
|
|
111
75
|
"../../packages/serviceme-protocol/src/bridge.ts"() {
|
|
76
|
+
"use strict";
|
|
112
77
|
init_agent();
|
|
113
78
|
init_scheduled_tasks();
|
|
114
79
|
init_skill();
|
|
@@ -149,6 +114,7 @@ function createCliFailure(error) {
|
|
|
149
114
|
var SERVICEME_CLI_SCHEMA_VERSION;
|
|
150
115
|
var init_cli = __esm({
|
|
151
116
|
"../../packages/serviceme-protocol/src/cli.ts"() {
|
|
117
|
+
"use strict";
|
|
152
118
|
SERVICEME_CLI_SCHEMA_VERSION = 1;
|
|
153
119
|
}
|
|
154
120
|
});
|
|
@@ -157,6 +123,7 @@ var init_cli = __esm({
|
|
|
157
123
|
var COPILOT_ERROR_CODES;
|
|
158
124
|
var init_copilot = __esm({
|
|
159
125
|
"../../packages/serviceme-protocol/src/copilot.ts"() {
|
|
126
|
+
"use strict";
|
|
160
127
|
COPILOT_ERROR_CODES = {
|
|
161
128
|
NOT_INSTALLED: "copilot_not_installed",
|
|
162
129
|
AUTH_REQUIRED: "copilot_auth_required",
|
|
@@ -173,6 +140,7 @@ function isKnownEnvironmentTool(value) {
|
|
|
173
140
|
var KNOWN_ENVIRONMENT_TOOLS;
|
|
174
141
|
var init_env = __esm({
|
|
175
142
|
"../../packages/serviceme-protocol/src/env.ts"() {
|
|
143
|
+
"use strict";
|
|
176
144
|
KNOWN_ENVIRONMENT_TOOLS = [
|
|
177
145
|
"git",
|
|
178
146
|
"node",
|
|
@@ -244,6 +212,7 @@ function normalizeServicemeError(error, fallbackCode = "internal_error") {
|
|
|
244
212
|
var SERVICEME_ERROR_CODES, RETRYABLE_ERROR_CODES, ServicemeProtocolError;
|
|
245
213
|
var init_errors = __esm({
|
|
246
214
|
"../../packages/serviceme-protocol/src/errors.ts"() {
|
|
215
|
+
"use strict";
|
|
247
216
|
SERVICEME_ERROR_CODES = [
|
|
248
217
|
"protocol_mismatch",
|
|
249
218
|
"cli_not_found",
|
|
@@ -272,6 +241,7 @@ var init_errors = __esm({
|
|
|
272
241
|
"executor_timeout",
|
|
273
242
|
"executor_error",
|
|
274
243
|
"task_already_running",
|
|
244
|
+
"not_found",
|
|
275
245
|
"internal_error"
|
|
276
246
|
];
|
|
277
247
|
RETRYABLE_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
@@ -308,6 +278,7 @@ var init_errors = __esm({
|
|
|
308
278
|
// ../../packages/serviceme-protocol/src/image.ts
|
|
309
279
|
var init_image = __esm({
|
|
310
280
|
"../../packages/serviceme-protocol/src/image.ts"() {
|
|
281
|
+
"use strict";
|
|
311
282
|
}
|
|
312
283
|
});
|
|
313
284
|
|
|
@@ -315,6 +286,7 @@ var init_image = __esm({
|
|
|
315
286
|
var DEFAULT_JSON_SORT_OPTIONS;
|
|
316
287
|
var init_json = __esm({
|
|
317
288
|
"../../packages/serviceme-protocol/src/json.ts"() {
|
|
289
|
+
"use strict";
|
|
318
290
|
DEFAULT_JSON_SORT_OPTIONS = {
|
|
319
291
|
sortOrder: "asc",
|
|
320
292
|
sortAlgo: "default"
|
|
@@ -322,17 +294,27 @@ var init_json = __esm({
|
|
|
322
294
|
}
|
|
323
295
|
});
|
|
324
296
|
|
|
297
|
+
// ../../packages/serviceme-protocol/src/marketplace.ts
|
|
298
|
+
var init_marketplace = __esm({
|
|
299
|
+
"../../packages/serviceme-protocol/src/marketplace.ts"() {
|
|
300
|
+
"use strict";
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
|
|
325
304
|
// ../../packages/serviceme-protocol/src/metadata.ts
|
|
326
305
|
var SERVICEME_CLI_CAPABILITIES;
|
|
327
306
|
var init_metadata = __esm({
|
|
328
307
|
"../../packages/serviceme-protocol/src/metadata.ts"() {
|
|
308
|
+
"use strict";
|
|
329
309
|
SERVICEME_CLI_CAPABILITIES = {
|
|
330
310
|
bridge: true,
|
|
331
311
|
tasks: 1,
|
|
332
312
|
json: 1,
|
|
333
313
|
env: 1,
|
|
334
314
|
image: 1,
|
|
335
|
-
project: 1
|
|
315
|
+
project: 1,
|
|
316
|
+
skills: 1,
|
|
317
|
+
agents: 1
|
|
336
318
|
};
|
|
337
319
|
}
|
|
338
320
|
});
|
|
@@ -340,12 +322,14 @@ var init_metadata = __esm({
|
|
|
340
322
|
// ../../packages/serviceme-protocol/src/project.ts
|
|
341
323
|
var init_project = __esm({
|
|
342
324
|
"../../packages/serviceme-protocol/src/project.ts"() {
|
|
325
|
+
"use strict";
|
|
343
326
|
}
|
|
344
327
|
});
|
|
345
328
|
|
|
346
329
|
// ../../packages/serviceme-protocol/src/index.ts
|
|
347
330
|
var init_src = __esm({
|
|
348
331
|
"../../packages/serviceme-protocol/src/index.ts"() {
|
|
332
|
+
"use strict";
|
|
349
333
|
init_agent();
|
|
350
334
|
init_bridge();
|
|
351
335
|
init_cli();
|
|
@@ -354,6 +338,7 @@ var init_src = __esm({
|
|
|
354
338
|
init_errors();
|
|
355
339
|
init_image();
|
|
356
340
|
init_json();
|
|
341
|
+
init_marketplace();
|
|
357
342
|
init_metadata();
|
|
358
343
|
init_project();
|
|
359
344
|
init_scheduled_tasks();
|
|
@@ -365,6 +350,8 @@ var init_src = __esm({
|
|
|
365
350
|
var AgentCatalogClient;
|
|
366
351
|
var init_AgentCatalogClient = __esm({
|
|
367
352
|
"../../packages/serviceme-core/src/agents/AgentCatalogClient.ts"() {
|
|
353
|
+
"use strict";
|
|
354
|
+
init_src();
|
|
368
355
|
AgentCatalogClient = class {
|
|
369
356
|
constructor(options2 = {}) {
|
|
370
357
|
this.fetchImpl = options2.fetchImpl ?? fetch;
|
|
@@ -372,10 +359,10 @@ var init_AgentCatalogClient = __esm({
|
|
|
372
359
|
}
|
|
373
360
|
async getCatalog() {
|
|
374
361
|
if (!this.baseUrl) {
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
362
|
+
throw createServicemeError(
|
|
363
|
+
"workspace_not_found",
|
|
364
|
+
"Agent catalog baseUrl is not configured."
|
|
365
|
+
);
|
|
379
366
|
}
|
|
380
367
|
const response = await this.fetchImpl(
|
|
381
368
|
`${this.baseUrl}/api/v1/marketplace/agents`
|
|
@@ -389,6 +376,30 @@ var init_AgentCatalogClient = __esm({
|
|
|
389
376
|
fetchedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
390
377
|
};
|
|
391
378
|
}
|
|
379
|
+
async downloadAgent(remoteId) {
|
|
380
|
+
if (!this.baseUrl) {
|
|
381
|
+
throw createServicemeError(
|
|
382
|
+
"workspace_not_found",
|
|
383
|
+
"Agent catalog baseUrl is not configured."
|
|
384
|
+
);
|
|
385
|
+
}
|
|
386
|
+
const response = await this.fetchImpl(
|
|
387
|
+
`${this.baseUrl}/api/v1/marketplace/agents/download/${remoteId}`
|
|
388
|
+
);
|
|
389
|
+
if (!response.ok) {
|
|
390
|
+
if (response.status === 404) {
|
|
391
|
+
throw createServicemeError(
|
|
392
|
+
"not_found",
|
|
393
|
+
`Agent '${remoteId}' not found`
|
|
394
|
+
);
|
|
395
|
+
}
|
|
396
|
+
throw new Error(
|
|
397
|
+
`Failed to download agent ${remoteId}: ${response.status}`
|
|
398
|
+
);
|
|
399
|
+
}
|
|
400
|
+
const payload = await response.json();
|
|
401
|
+
return payload.data?.files ?? [];
|
|
402
|
+
}
|
|
392
403
|
};
|
|
393
404
|
}
|
|
394
405
|
});
|
|
@@ -426,6 +437,7 @@ function parseAgentToolPermissions(content) {
|
|
|
426
437
|
var TOOL_RISK_MAP, FRONTMATTER_REGEX, TOOLS_LINE_REGEX, TOOLS_INLINE_REGEX, LIST_ITEM_REGEX;
|
|
427
438
|
var init_agent_permissions = __esm({
|
|
428
439
|
"../../packages/serviceme-core/src/permissions/agent-permissions.ts"() {
|
|
440
|
+
"use strict";
|
|
429
441
|
TOOL_RISK_MAP = {
|
|
430
442
|
shell: "high",
|
|
431
443
|
terminal: "high",
|
|
@@ -454,6 +466,7 @@ var init_agent_permissions = __esm({
|
|
|
454
466
|
// ../../packages/serviceme-core/src/permissions/index.ts
|
|
455
467
|
var init_permissions = __esm({
|
|
456
468
|
"../../packages/serviceme-core/src/permissions/index.ts"() {
|
|
469
|
+
"use strict";
|
|
457
470
|
init_agent_permissions();
|
|
458
471
|
}
|
|
459
472
|
});
|
|
@@ -462,6 +475,7 @@ var init_permissions = __esm({
|
|
|
462
475
|
var AgentReconciler;
|
|
463
476
|
var init_AgentReconciler = __esm({
|
|
464
477
|
"../../packages/serviceme-core/src/agents/AgentReconciler.ts"() {
|
|
478
|
+
"use strict";
|
|
465
479
|
init_permissions();
|
|
466
480
|
AgentReconciler = class {
|
|
467
481
|
constructor(deps) {
|
|
@@ -527,15 +541,20 @@ var init_AgentReconciler = __esm({
|
|
|
527
541
|
};
|
|
528
542
|
}
|
|
529
543
|
});
|
|
544
|
+
|
|
545
|
+
// ../../packages/serviceme-core/src/agents/AgentStore.ts
|
|
530
546
|
function assertSafeLocalAgentId(agentId) {
|
|
531
547
|
if (typeof agentId !== "string" || agentId.length === 0 || agentId === "." || agentId === ".." || agentId.includes("/") || agentId.includes("\\") || !SAFE_LOCAL_ID_PATTERN.test(agentId)) {
|
|
532
548
|
throw new Error(`Invalid agent id: ${agentId}`);
|
|
533
549
|
}
|
|
534
550
|
return agentId;
|
|
535
551
|
}
|
|
536
|
-
var WORKSPACE_AGENTS_ROOT_RELATIVE, WORKSPACE_AGENTS_STATE_RELATIVE, SAFE_LOCAL_ID_PATTERN, AgentStore;
|
|
552
|
+
var fs, path, WORKSPACE_AGENTS_ROOT_RELATIVE, WORKSPACE_AGENTS_STATE_RELATIVE, SAFE_LOCAL_ID_PATTERN, AgentStore;
|
|
537
553
|
var init_AgentStore = __esm({
|
|
538
554
|
"../../packages/serviceme-core/src/agents/AgentStore.ts"() {
|
|
555
|
+
"use strict";
|
|
556
|
+
fs = __toESM(require("fs/promises"));
|
|
557
|
+
path = __toESM(require("path"));
|
|
539
558
|
WORKSPACE_AGENTS_ROOT_RELATIVE = ".github/agents";
|
|
540
559
|
WORKSPACE_AGENTS_STATE_RELATIVE = ".github/.ms-devtools-agents.yml";
|
|
541
560
|
SAFE_LOCAL_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
@@ -543,7 +562,7 @@ var init_AgentStore = __esm({
|
|
|
543
562
|
constructor(options2) {
|
|
544
563
|
this.workspacePath = options2.workspacePath;
|
|
545
564
|
this.userAgentsRoot = options2.userAgentsRoot;
|
|
546
|
-
this.fileSystem = options2.fileSystem ??
|
|
565
|
+
this.fileSystem = options2.fileSystem ?? fs;
|
|
547
566
|
this.schemaVersion = options2.schemaVersion ?? 1;
|
|
548
567
|
}
|
|
549
568
|
normalizeRemoteAgentId(remoteId) {
|
|
@@ -567,7 +586,7 @@ var init_AgentStore = __esm({
|
|
|
567
586
|
}
|
|
568
587
|
async listWorkspaceAgentIds() {
|
|
569
588
|
return this.listAgentIds(
|
|
570
|
-
|
|
589
|
+
path.join(this.workspacePath, WORKSPACE_AGENTS_ROOT_RELATIVE)
|
|
571
590
|
);
|
|
572
591
|
}
|
|
573
592
|
async listUserAgentIds() {
|
|
@@ -576,7 +595,7 @@ var init_AgentStore = __esm({
|
|
|
576
595
|
async readState() {
|
|
577
596
|
try {
|
|
578
597
|
const raw = await this.fileSystem.readFile(
|
|
579
|
-
|
|
598
|
+
path.join(this.workspacePath, WORKSPACE_AGENTS_STATE_RELATIVE),
|
|
580
599
|
"utf-8"
|
|
581
600
|
);
|
|
582
601
|
const parsed = JSON.parse(raw);
|
|
@@ -589,11 +608,11 @@ var init_AgentStore = __esm({
|
|
|
589
608
|
}
|
|
590
609
|
}
|
|
591
610
|
async writeState(state) {
|
|
592
|
-
const statePath =
|
|
611
|
+
const statePath = path.join(
|
|
593
612
|
this.workspacePath,
|
|
594
613
|
WORKSPACE_AGENTS_STATE_RELATIVE
|
|
595
614
|
);
|
|
596
|
-
await this.fileSystem.mkdir(
|
|
615
|
+
await this.fileSystem.mkdir(path.dirname(statePath), { recursive: true });
|
|
597
616
|
await this.fileSystem.writeFile(
|
|
598
617
|
statePath,
|
|
599
618
|
JSON.stringify(state, null, 2),
|
|
@@ -622,14 +641,14 @@ var init_AgentStore = __esm({
|
|
|
622
641
|
await this.writeState(state);
|
|
623
642
|
}
|
|
624
643
|
async writeAgentFiles(agentId, scope, files) {
|
|
625
|
-
const root2 = scope === "workspace" ?
|
|
644
|
+
const root2 = scope === "workspace" ? path.join(this.workspacePath, WORKSPACE_AGENTS_ROOT_RELATIVE) : this.userAgentsRoot;
|
|
626
645
|
const firstFile = files[0];
|
|
627
646
|
const isSingleFlatFile = files.length === 1 && firstFile !== void 0 && firstFile.path === `${agentId}.agent.md` && !firstFile.path.includes("/");
|
|
628
|
-
const targetDir = isSingleFlatFile ? root2 :
|
|
647
|
+
const targetDir = isSingleFlatFile ? root2 : path.join(root2, agentId);
|
|
629
648
|
await this.fileSystem.mkdir(targetDir, { recursive: true });
|
|
630
649
|
for (const file of files) {
|
|
631
|
-
const filePath =
|
|
632
|
-
await this.fileSystem.mkdir(
|
|
650
|
+
const filePath = path.join(targetDir, file.path);
|
|
651
|
+
await this.fileSystem.mkdir(path.dirname(filePath), { recursive: true });
|
|
633
652
|
await this.fileSystem.writeFile(filePath, file.content, "utf-8");
|
|
634
653
|
if (file.executable) {
|
|
635
654
|
try {
|
|
@@ -669,24 +688,28 @@ var init_AgentStore = __esm({
|
|
|
669
688
|
// ../../packages/serviceme-core/src/agents/types.ts
|
|
670
689
|
var init_types = __esm({
|
|
671
690
|
"../../packages/serviceme-core/src/agents/types.ts"() {
|
|
691
|
+
"use strict";
|
|
672
692
|
}
|
|
673
693
|
});
|
|
674
694
|
|
|
675
695
|
// ../../packages/serviceme-core/src/agents/index.ts
|
|
676
696
|
var init_agents = __esm({
|
|
677
697
|
"../../packages/serviceme-core/src/agents/index.ts"() {
|
|
698
|
+
"use strict";
|
|
678
699
|
init_AgentCatalogClient();
|
|
679
700
|
init_AgentReconciler();
|
|
680
701
|
init_AgentStore();
|
|
681
702
|
init_types();
|
|
682
703
|
}
|
|
683
704
|
});
|
|
705
|
+
|
|
706
|
+
// ../../packages/serviceme-core/src/process/runCommand.ts
|
|
684
707
|
function terminateCommandProcess(child) {
|
|
685
708
|
if (child.killed) {
|
|
686
709
|
return;
|
|
687
710
|
}
|
|
688
711
|
if (process.platform === "win32" && child.pid) {
|
|
689
|
-
const killProcess =
|
|
712
|
+
const killProcess = (0, import_node_child_process.spawn)(
|
|
690
713
|
"taskkill",
|
|
691
714
|
["/pid", String(child.pid), "/T", "/F"],
|
|
692
715
|
{
|
|
@@ -703,7 +726,7 @@ function terminateCommandProcess(child) {
|
|
|
703
726
|
}
|
|
704
727
|
async function runCommand(command, options2 = {}) {
|
|
705
728
|
return new Promise((resolve, reject) => {
|
|
706
|
-
const child =
|
|
729
|
+
const child = (0, import_node_child_process.spawn)(command, options2.args ?? [], {
|
|
707
730
|
cwd: options2.cwd,
|
|
708
731
|
env: options2.env,
|
|
709
732
|
shell: options2.shell,
|
|
@@ -787,8 +810,11 @@ async function commandExists(command) {
|
|
|
787
810
|
return false;
|
|
788
811
|
}
|
|
789
812
|
}
|
|
813
|
+
var import_node_child_process;
|
|
790
814
|
var init_runCommand = __esm({
|
|
791
815
|
"../../packages/serviceme-core/src/process/runCommand.ts"() {
|
|
816
|
+
"use strict";
|
|
817
|
+
import_node_child_process = require("child_process");
|
|
792
818
|
}
|
|
793
819
|
});
|
|
794
820
|
|
|
@@ -837,6 +863,7 @@ function createCopilotAuthRequiredError() {
|
|
|
837
863
|
var COPILOT_COMMAND, GH_COMMAND;
|
|
838
864
|
var init_doctor = __esm({
|
|
839
865
|
"../../packages/serviceme-core/src/copilot/doctor.ts"() {
|
|
866
|
+
"use strict";
|
|
840
867
|
init_src();
|
|
841
868
|
init_runCommand();
|
|
842
869
|
COPILOT_COMMAND = "copilot";
|
|
@@ -884,6 +911,9 @@ async function copilotPrompt(options2) {
|
|
|
884
911
|
}
|
|
885
912
|
return { output, exitCode: 0 };
|
|
886
913
|
} catch (error) {
|
|
914
|
+
if (error instanceof ServicemeProtocolError) {
|
|
915
|
+
throw error;
|
|
916
|
+
}
|
|
887
917
|
const err = error;
|
|
888
918
|
if (err.code === "ETIMEDOUT") {
|
|
889
919
|
throw createServicemeError(
|
|
@@ -914,6 +944,7 @@ async function copilotPrompt(options2) {
|
|
|
914
944
|
var COPILOT_COMMAND2, DEFAULT_TIMEOUT_MS;
|
|
915
945
|
var init_prompt = __esm({
|
|
916
946
|
"../../packages/serviceme-core/src/copilot/prompt.ts"() {
|
|
947
|
+
"use strict";
|
|
917
948
|
init_src();
|
|
918
949
|
init_runCommand();
|
|
919
950
|
COPILOT_COMMAND2 = "copilot";
|
|
@@ -924,6 +955,7 @@ var init_prompt = __esm({
|
|
|
924
955
|
// ../../packages/serviceme-core/src/copilot/index.ts
|
|
925
956
|
var init_copilot2 = __esm({
|
|
926
957
|
"../../packages/serviceme-core/src/copilot/index.ts"() {
|
|
958
|
+
"use strict";
|
|
927
959
|
init_doctor();
|
|
928
960
|
init_prompt();
|
|
929
961
|
}
|
|
@@ -933,6 +965,7 @@ var init_copilot2 = __esm({
|
|
|
933
965
|
var DEFAULT_TOOL_CHECK_TIMEOUT_MS, TOOL_CHECK_TIMEOUT_MS, ERROR_CODE_NOT_FOUND, ERROR_CODE_TIMEOUT, EnvironmentInspector;
|
|
934
966
|
var init_environmentInspector = __esm({
|
|
935
967
|
"../../packages/serviceme-core/src/env/environmentInspector.ts"() {
|
|
968
|
+
"use strict";
|
|
936
969
|
init_src();
|
|
937
970
|
init_runCommand();
|
|
938
971
|
DEFAULT_TOOL_CHECK_TIMEOUT_MS = 5e3;
|
|
@@ -950,11 +983,13 @@ var init_environmentInspector = __esm({
|
|
|
950
983
|
ERROR_CODE_NOT_FOUND = 127;
|
|
951
984
|
ERROR_CODE_TIMEOUT = "ETIMEDOUT";
|
|
952
985
|
EnvironmentInspector = class {
|
|
986
|
+
constructor(options2 = {}) {
|
|
987
|
+
this.runCommandFn = options2.runCommand ?? runCommand;
|
|
988
|
+
this.platform = options2.platform ?? process.platform;
|
|
989
|
+
}
|
|
953
990
|
async checkEnvironment() {
|
|
954
991
|
const results = await Promise.all(
|
|
955
|
-
KNOWN_ENVIRONMENT_TOOLS.map(
|
|
956
|
-
async (tool) => [tool, await this.checkTool(tool)]
|
|
957
|
-
)
|
|
992
|
+
KNOWN_ENVIRONMENT_TOOLS.map(async (tool) => [tool, await this.checkTool(tool)])
|
|
958
993
|
);
|
|
959
994
|
return Object.fromEntries(results);
|
|
960
995
|
}
|
|
@@ -982,8 +1017,8 @@ var init_environmentInspector = __esm({
|
|
|
982
1017
|
}
|
|
983
1018
|
async getToolPath(toolName) {
|
|
984
1019
|
try {
|
|
985
|
-
const isWindows =
|
|
986
|
-
const result = await
|
|
1020
|
+
const isWindows = this.platform === "win32";
|
|
1021
|
+
const result = await this.runCommandFn(isWindows ? "where" : "which", {
|
|
987
1022
|
args: [toolName],
|
|
988
1023
|
timeoutMs: this.getToolTimeout(toolName)
|
|
989
1024
|
});
|
|
@@ -1000,14 +1035,12 @@ var init_environmentInspector = __esm({
|
|
|
1000
1035
|
*/
|
|
1001
1036
|
async getToolShimPath(toolName) {
|
|
1002
1037
|
try {
|
|
1003
|
-
const result = await
|
|
1038
|
+
const result = await this.runCommandFn("where", {
|
|
1004
1039
|
args: [toolName],
|
|
1005
1040
|
timeoutMs: this.getToolTimeout(toolName)
|
|
1006
1041
|
});
|
|
1007
1042
|
const candidates = result.stdout.split(/\r?\n/).map((line2) => line2.trim()).filter((line2) => line2.length > 0);
|
|
1008
|
-
const cmdShim = candidates.find(
|
|
1009
|
-
(line2) => line2.toLowerCase().endsWith(".cmd")
|
|
1010
|
-
);
|
|
1043
|
+
const cmdShim = candidates.find((line2) => line2.toLowerCase().endsWith(".cmd"));
|
|
1011
1044
|
return cmdShim ?? candidates[0];
|
|
1012
1045
|
} catch {
|
|
1013
1046
|
return void 0;
|
|
@@ -1015,16 +1048,16 @@ var init_environmentInspector = __esm({
|
|
|
1015
1048
|
}
|
|
1016
1049
|
async getToolVersion(toolName) {
|
|
1017
1050
|
const invocation = await this.getVersionInvocation(toolName);
|
|
1018
|
-
const result = await
|
|
1051
|
+
const result = await this.runCommandFn(invocation.command, {
|
|
1019
1052
|
args: invocation.args,
|
|
1020
1053
|
timeoutMs: this.getToolTimeout(toolName)
|
|
1021
1054
|
});
|
|
1022
1055
|
return this.parseVersion(toolName, result.stdout || result.stderr);
|
|
1023
1056
|
}
|
|
1024
1057
|
async checkNvm() {
|
|
1025
|
-
if (
|
|
1058
|
+
if (this.platform === "win32") {
|
|
1026
1059
|
try {
|
|
1027
|
-
const result = await
|
|
1060
|
+
const result = await this.runCommandFn("cmd.exe", {
|
|
1028
1061
|
args: ["/c", "nvm version"],
|
|
1029
1062
|
timeoutMs: this.getToolTimeout("nvm")
|
|
1030
1063
|
});
|
|
@@ -1041,7 +1074,7 @@ var init_environmentInspector = __esm({
|
|
|
1041
1074
|
}
|
|
1042
1075
|
}
|
|
1043
1076
|
try {
|
|
1044
|
-
const result = await
|
|
1077
|
+
const result = await this.runCommandFn("/bin/bash", {
|
|
1045
1078
|
args: [
|
|
1046
1079
|
"-lc",
|
|
1047
1080
|
'export NVM_DIR="$HOME/.nvm"; [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"; nvm --version'
|
|
@@ -1069,7 +1102,7 @@ var init_environmentInspector = __esm({
|
|
|
1069
1102
|
};
|
|
1070
1103
|
}
|
|
1071
1104
|
try {
|
|
1072
|
-
const result = await
|
|
1105
|
+
const result = await this.runCommandFn("dotnet", {
|
|
1073
1106
|
args: ["nuget", "list", "source"],
|
|
1074
1107
|
timeoutMs: this.getToolTimeout("nuget")
|
|
1075
1108
|
});
|
|
@@ -1090,7 +1123,7 @@ var init_environmentInspector = __esm({
|
|
|
1090
1123
|
}
|
|
1091
1124
|
}
|
|
1092
1125
|
async getVersionInvocation(toolName) {
|
|
1093
|
-
const isWindows =
|
|
1126
|
+
const isWindows = this.platform === "win32";
|
|
1094
1127
|
if (isWindows && ["npm", "pnpm", "nrm"].includes(toolName)) {
|
|
1095
1128
|
const shim = await this.getToolShimPath(toolName);
|
|
1096
1129
|
if (shim) {
|
|
@@ -1144,7 +1177,7 @@ var init_environmentInspector = __esm({
|
|
|
1144
1177
|
const execError = error;
|
|
1145
1178
|
const message = execError.message || String(error);
|
|
1146
1179
|
const code = execError.code;
|
|
1147
|
-
const isNotFound = message.includes("command not found") || message.includes("not recognized") || message.includes("ENOENT") || code === "ENOENT" || code === ERROR_CODE_NOT_FOUND;
|
|
1180
|
+
const isNotFound = message.includes("command not found") || message.includes("not recognized") || message.includes("ENOENT") || message.includes("EACCES") || code === "ENOENT" || code === "EACCES" || code === ERROR_CODE_NOT_FOUND;
|
|
1148
1181
|
const isTimeout = code === ERROR_CODE_TIMEOUT || message.toLowerCase().includes("timed out");
|
|
1149
1182
|
return {
|
|
1150
1183
|
installed: false,
|
|
@@ -1154,12 +1187,17 @@ var init_environmentInspector = __esm({
|
|
|
1154
1187
|
};
|
|
1155
1188
|
}
|
|
1156
1189
|
});
|
|
1190
|
+
|
|
1191
|
+
// ../../packages/serviceme-core/src/image/imageTools.ts
|
|
1157
1192
|
function createImageTools() {
|
|
1158
1193
|
return new ImageTools();
|
|
1159
1194
|
}
|
|
1160
|
-
var SUPPORTED_FORMATS, DEFAULT_MINIMUM_COMPRESSION_RATIO, ImageTools;
|
|
1195
|
+
var fs2, path2, SUPPORTED_FORMATS, DEFAULT_MINIMUM_COMPRESSION_RATIO, ImageTools;
|
|
1161
1196
|
var init_imageTools = __esm({
|
|
1162
1197
|
"../../packages/serviceme-core/src/image/imageTools.ts"() {
|
|
1198
|
+
"use strict";
|
|
1199
|
+
fs2 = __toESM(require("fs/promises"));
|
|
1200
|
+
path2 = __toESM(require("path"));
|
|
1163
1201
|
init_src();
|
|
1164
1202
|
SUPPORTED_FORMATS = [
|
|
1165
1203
|
".jpg",
|
|
@@ -1180,7 +1218,7 @@ var init_imageTools = __esm({
|
|
|
1180
1218
|
if (!await this.pathExists(filePath)) {
|
|
1181
1219
|
return { valid: false };
|
|
1182
1220
|
}
|
|
1183
|
-
if (!SUPPORTED_FORMATS.includes(
|
|
1221
|
+
if (!SUPPORTED_FORMATS.includes(path2.extname(filePath).toLowerCase())) {
|
|
1184
1222
|
return { valid: false };
|
|
1185
1223
|
}
|
|
1186
1224
|
await this.getInfo(filePath, sharpModulePath);
|
|
@@ -1192,7 +1230,7 @@ var init_imageTools = __esm({
|
|
|
1192
1230
|
async getInfo(imagePath, sharpModulePath) {
|
|
1193
1231
|
const sharp = this.loadSharp(sharpModulePath);
|
|
1194
1232
|
const metadata = await sharp(imagePath).metadata();
|
|
1195
|
-
const stats = await
|
|
1233
|
+
const stats = await fs2.stat(imagePath);
|
|
1196
1234
|
return {
|
|
1197
1235
|
width: metadata.width ?? 0,
|
|
1198
1236
|
height: metadata.height ?? 0,
|
|
@@ -1209,7 +1247,7 @@ var init_imageTools = __esm({
|
|
|
1209
1247
|
`Invalid image file: ${imagePath}`
|
|
1210
1248
|
);
|
|
1211
1249
|
}
|
|
1212
|
-
const originalStats = await
|
|
1250
|
+
const originalStats = await fs2.stat(imagePath);
|
|
1213
1251
|
const originalSize = originalStats.size;
|
|
1214
1252
|
const outputPath = this.getOutputPath(imagePath, options2);
|
|
1215
1253
|
const compressedBuffer = await this.compressWithSharp(imagePath, options2);
|
|
@@ -1224,7 +1262,7 @@ var init_imageTools = __esm({
|
|
|
1224
1262
|
outputPath: imagePath
|
|
1225
1263
|
};
|
|
1226
1264
|
}
|
|
1227
|
-
await
|
|
1265
|
+
await fs2.writeFile(outputPath, compressedBuffer);
|
|
1228
1266
|
return {
|
|
1229
1267
|
originalSize,
|
|
1230
1268
|
compressedSize,
|
|
@@ -1235,7 +1273,7 @@ var init_imageTools = __esm({
|
|
|
1235
1273
|
async compressWithSharp(imagePath, options2) {
|
|
1236
1274
|
const sharp = this.loadSharp(options2.sharpModulePath);
|
|
1237
1275
|
let pipeline = sharp(imagePath);
|
|
1238
|
-
switch (options2.format ??
|
|
1276
|
+
switch (options2.format ?? path2.extname(imagePath).toLowerCase().slice(1)) {
|
|
1239
1277
|
case "jpg":
|
|
1240
1278
|
case "jpeg":
|
|
1241
1279
|
pipeline = pipeline.jpeg({ quality: options2.quality });
|
|
@@ -1261,14 +1299,14 @@ var init_imageTools = __esm({
|
|
|
1261
1299
|
if (options2.replaceOriginImage) {
|
|
1262
1300
|
return inputPath;
|
|
1263
1301
|
}
|
|
1264
|
-
const dir =
|
|
1265
|
-
const ext =
|
|
1266
|
-
const name =
|
|
1267
|
-
return
|
|
1302
|
+
const dir = path2.dirname(inputPath);
|
|
1303
|
+
const ext = path2.extname(inputPath);
|
|
1304
|
+
const name = path2.basename(inputPath, ext);
|
|
1305
|
+
return path2.join(dir, `${name}_compressed${ext}`);
|
|
1268
1306
|
}
|
|
1269
1307
|
async pathExists(targetPath) {
|
|
1270
1308
|
try {
|
|
1271
|
-
await
|
|
1309
|
+
await fs2.access(targetPath);
|
|
1272
1310
|
return true;
|
|
1273
1311
|
} catch {
|
|
1274
1312
|
return false;
|
|
@@ -1276,7 +1314,7 @@ var init_imageTools = __esm({
|
|
|
1276
1314
|
}
|
|
1277
1315
|
loadSharp(sharpModulePath) {
|
|
1278
1316
|
try {
|
|
1279
|
-
return sharpModulePath ?
|
|
1317
|
+
return sharpModulePath ? require(sharpModulePath) : require("sharp");
|
|
1280
1318
|
} catch (error) {
|
|
1281
1319
|
throw createServicemeError(
|
|
1282
1320
|
"internal_error",
|
|
@@ -1290,17 +1328,18 @@ var init_imageTools = __esm({
|
|
|
1290
1328
|
|
|
1291
1329
|
// ../../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js
|
|
1292
1330
|
var require_esprima = __commonJS({
|
|
1293
|
-
"../../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js"(
|
|
1331
|
+
"../../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js"(exports2, module2) {
|
|
1332
|
+
"use strict";
|
|
1294
1333
|
(function webpackUniversalModuleDefinition(root2, factory) {
|
|
1295
|
-
if (typeof
|
|
1296
|
-
|
|
1334
|
+
if (typeof exports2 === "object" && typeof module2 === "object")
|
|
1335
|
+
module2.exports = factory();
|
|
1297
1336
|
else if (typeof define === "function" && define.amd)
|
|
1298
1337
|
define([], factory);
|
|
1299
|
-
else if (typeof
|
|
1300
|
-
|
|
1338
|
+
else if (typeof exports2 === "object")
|
|
1339
|
+
exports2["esprima"] = factory();
|
|
1301
1340
|
else
|
|
1302
1341
|
root2["esprima"] = factory();
|
|
1303
|
-
})(
|
|
1342
|
+
})(exports2, function() {
|
|
1304
1343
|
return (
|
|
1305
1344
|
/******/
|
|
1306
1345
|
(function(modules) {
|
|
@@ -1308,7 +1347,7 @@ var require_esprima = __commonJS({
|
|
|
1308
1347
|
function __webpack_require__(moduleId) {
|
|
1309
1348
|
if (installedModules[moduleId])
|
|
1310
1349
|
return installedModules[moduleId].exports;
|
|
1311
|
-
var
|
|
1350
|
+
var module3 = installedModules[moduleId] = {
|
|
1312
1351
|
/******/
|
|
1313
1352
|
exports: {},
|
|
1314
1353
|
/******/
|
|
@@ -1317,9 +1356,9 @@ var require_esprima = __commonJS({
|
|
|
1317
1356
|
loaded: false
|
|
1318
1357
|
/******/
|
|
1319
1358
|
};
|
|
1320
|
-
modules[moduleId].call(
|
|
1321
|
-
|
|
1322
|
-
return
|
|
1359
|
+
modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
|
|
1360
|
+
module3.loaded = true;
|
|
1361
|
+
return module3.exports;
|
|
1323
1362
|
}
|
|
1324
1363
|
__webpack_require__.m = modules;
|
|
1325
1364
|
__webpack_require__.c = installedModules;
|
|
@@ -1328,8 +1367,9 @@ var require_esprima = __commonJS({
|
|
|
1328
1367
|
})([
|
|
1329
1368
|
/* 0 */
|
|
1330
1369
|
/***/
|
|
1331
|
-
function(
|
|
1332
|
-
|
|
1370
|
+
function(module3, exports3, __webpack_require__) {
|
|
1371
|
+
"use strict";
|
|
1372
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
1333
1373
|
var comment_handler_1 = __webpack_require__(1);
|
|
1334
1374
|
var jsx_parser_1 = __webpack_require__(3);
|
|
1335
1375
|
var parser_1 = __webpack_require__(8);
|
|
@@ -1379,19 +1419,19 @@ var require_esprima = __commonJS({
|
|
|
1379
1419
|
}
|
|
1380
1420
|
return ast;
|
|
1381
1421
|
}
|
|
1382
|
-
|
|
1422
|
+
exports3.parse = parse3;
|
|
1383
1423
|
function parseModule(code, options2, delegate) {
|
|
1384
1424
|
var parsingOptions = options2 || {};
|
|
1385
1425
|
parsingOptions.sourceType = "module";
|
|
1386
1426
|
return parse3(code, parsingOptions, delegate);
|
|
1387
1427
|
}
|
|
1388
|
-
|
|
1428
|
+
exports3.parseModule = parseModule;
|
|
1389
1429
|
function parseScript(code, options2, delegate) {
|
|
1390
1430
|
var parsingOptions = options2 || {};
|
|
1391
1431
|
parsingOptions.sourceType = "script";
|
|
1392
1432
|
return parse3(code, parsingOptions, delegate);
|
|
1393
1433
|
}
|
|
1394
|
-
|
|
1434
|
+
exports3.parseScript = parseScript;
|
|
1395
1435
|
function tokenize(code, options2, delegate) {
|
|
1396
1436
|
var tokenizer = new tokenizer_1.Tokenizer(code, options2);
|
|
1397
1437
|
var tokens;
|
|
@@ -1415,15 +1455,16 @@ var require_esprima = __commonJS({
|
|
|
1415
1455
|
}
|
|
1416
1456
|
return tokens;
|
|
1417
1457
|
}
|
|
1418
|
-
|
|
1458
|
+
exports3.tokenize = tokenize;
|
|
1419
1459
|
var syntax_1 = __webpack_require__(2);
|
|
1420
|
-
|
|
1421
|
-
|
|
1460
|
+
exports3.Syntax = syntax_1.Syntax;
|
|
1461
|
+
exports3.version = "4.0.1";
|
|
1422
1462
|
},
|
|
1423
1463
|
/* 1 */
|
|
1424
1464
|
/***/
|
|
1425
|
-
function(
|
|
1426
|
-
|
|
1465
|
+
function(module3, exports3, __webpack_require__) {
|
|
1466
|
+
"use strict";
|
|
1467
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
1427
1468
|
var syntax_1 = __webpack_require__(2);
|
|
1428
1469
|
var CommentHandler = (function() {
|
|
1429
1470
|
function CommentHandler2() {
|
|
@@ -1565,13 +1606,14 @@ var require_esprima = __commonJS({
|
|
|
1565
1606
|
};
|
|
1566
1607
|
return CommentHandler2;
|
|
1567
1608
|
})();
|
|
1568
|
-
|
|
1609
|
+
exports3.CommentHandler = CommentHandler;
|
|
1569
1610
|
},
|
|
1570
1611
|
/* 2 */
|
|
1571
1612
|
/***/
|
|
1572
|
-
function(
|
|
1573
|
-
|
|
1574
|
-
|
|
1613
|
+
function(module3, exports3) {
|
|
1614
|
+
"use strict";
|
|
1615
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
1616
|
+
exports3.Syntax = {
|
|
1575
1617
|
AssignmentExpression: "AssignmentExpression",
|
|
1576
1618
|
AssignmentPattern: "AssignmentPattern",
|
|
1577
1619
|
ArrayExpression: "ArrayExpression",
|
|
@@ -1642,7 +1684,8 @@ var require_esprima = __commonJS({
|
|
|
1642
1684
|
},
|
|
1643
1685
|
/* 3 */
|
|
1644
1686
|
/***/
|
|
1645
|
-
function(
|
|
1687
|
+
function(module3, exports3, __webpack_require__) {
|
|
1688
|
+
"use strict";
|
|
1646
1689
|
var __extends = this && this.__extends || (function() {
|
|
1647
1690
|
var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d, b) {
|
|
1648
1691
|
d.__proto__ = b;
|
|
@@ -1657,7 +1700,7 @@ var require_esprima = __commonJS({
|
|
|
1657
1700
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
1658
1701
|
};
|
|
1659
1702
|
})();
|
|
1660
|
-
Object.defineProperty(
|
|
1703
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
1661
1704
|
var character_1 = __webpack_require__(4);
|
|
1662
1705
|
var JSXNode = __webpack_require__(5);
|
|
1663
1706
|
var jsx_syntax_1 = __webpack_require__(6);
|
|
@@ -1688,6 +1731,9 @@ var require_esprima = __commonJS({
|
|
|
1688
1731
|
var expr = elementName;
|
|
1689
1732
|
qualifiedName = getQualifiedElementName(expr.object) + "." + getQualifiedElementName(expr.property);
|
|
1690
1733
|
break;
|
|
1734
|
+
/* istanbul ignore next */
|
|
1735
|
+
default:
|
|
1736
|
+
break;
|
|
1691
1737
|
}
|
|
1692
1738
|
return qualifiedName;
|
|
1693
1739
|
}
|
|
@@ -2150,19 +2196,20 @@ var require_esprima = __commonJS({
|
|
|
2150
2196
|
};
|
|
2151
2197
|
return JSXParser2;
|
|
2152
2198
|
})(parser_1.Parser);
|
|
2153
|
-
|
|
2199
|
+
exports3.JSXParser = JSXParser;
|
|
2154
2200
|
},
|
|
2155
2201
|
/* 4 */
|
|
2156
2202
|
/***/
|
|
2157
|
-
function(
|
|
2158
|
-
|
|
2203
|
+
function(module3, exports3) {
|
|
2204
|
+
"use strict";
|
|
2205
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
2159
2206
|
var Regex = {
|
|
2160
2207
|
// Unicode v8.0.0 NonAsciiIdentifierStart:
|
|
2161
2208
|
NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,
|
|
2162
2209
|
// Unicode v8.0.0 NonAsciiIdentifierPart:
|
|
2163
2210
|
NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/
|
|
2164
2211
|
};
|
|
2165
|
-
|
|
2212
|
+
exports3.Character = {
|
|
2166
2213
|
/* tslint:disable:no-bitwise */
|
|
2167
2214
|
fromCodePoint: function(cp5) {
|
|
2168
2215
|
return cp5 < 65536 ? String.fromCharCode(cp5) : String.fromCharCode(55296 + (cp5 - 65536 >> 10)) + String.fromCharCode(56320 + (cp5 - 65536 & 1023));
|
|
@@ -2177,10 +2224,10 @@ var require_esprima = __commonJS({
|
|
|
2177
2224
|
},
|
|
2178
2225
|
// https://tc39.github.io/ecma262/#sec-names-and-keywords
|
|
2179
2226
|
isIdentifierStart: function(cp5) {
|
|
2180
|
-
return cp5 === 36 || cp5 === 95 || cp5 >= 65 && cp5 <= 90 || cp5 >= 97 && cp5 <= 122 || cp5 === 92 || cp5 >= 128 && Regex.NonAsciiIdentifierStart.test(
|
|
2227
|
+
return cp5 === 36 || cp5 === 95 || cp5 >= 65 && cp5 <= 90 || cp5 >= 97 && cp5 <= 122 || cp5 === 92 || cp5 >= 128 && Regex.NonAsciiIdentifierStart.test(exports3.Character.fromCodePoint(cp5));
|
|
2181
2228
|
},
|
|
2182
2229
|
isIdentifierPart: function(cp5) {
|
|
2183
|
-
return cp5 === 36 || cp5 === 95 || cp5 >= 65 && cp5 <= 90 || cp5 >= 97 && cp5 <= 122 || cp5 >= 48 && cp5 <= 57 || cp5 === 92 || cp5 >= 128 && Regex.NonAsciiIdentifierPart.test(
|
|
2230
|
+
return cp5 === 36 || cp5 === 95 || cp5 >= 65 && cp5 <= 90 || cp5 >= 97 && cp5 <= 122 || cp5 >= 48 && cp5 <= 57 || cp5 === 92 || cp5 >= 128 && Regex.NonAsciiIdentifierPart.test(exports3.Character.fromCodePoint(cp5));
|
|
2184
2231
|
},
|
|
2185
2232
|
// https://tc39.github.io/ecma262/#sec-literals-numeric-literals
|
|
2186
2233
|
isDecimalDigit: function(cp5) {
|
|
@@ -2196,8 +2243,9 @@ var require_esprima = __commonJS({
|
|
|
2196
2243
|
},
|
|
2197
2244
|
/* 5 */
|
|
2198
2245
|
/***/
|
|
2199
|
-
function(
|
|
2200
|
-
|
|
2246
|
+
function(module3, exports3, __webpack_require__) {
|
|
2247
|
+
"use strict";
|
|
2248
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
2201
2249
|
var jsx_syntax_1 = __webpack_require__(6);
|
|
2202
2250
|
var JSXClosingElement = /* @__PURE__ */ (function() {
|
|
2203
2251
|
function JSXClosingElement2(name) {
|
|
@@ -2206,7 +2254,7 @@ var require_esprima = __commonJS({
|
|
|
2206
2254
|
}
|
|
2207
2255
|
return JSXClosingElement2;
|
|
2208
2256
|
})();
|
|
2209
|
-
|
|
2257
|
+
exports3.JSXClosingElement = JSXClosingElement;
|
|
2210
2258
|
var JSXElement = /* @__PURE__ */ (function() {
|
|
2211
2259
|
function JSXElement2(openingElement, children, closingElement) {
|
|
2212
2260
|
this.type = jsx_syntax_1.JSXSyntax.JSXElement;
|
|
@@ -2216,14 +2264,14 @@ var require_esprima = __commonJS({
|
|
|
2216
2264
|
}
|
|
2217
2265
|
return JSXElement2;
|
|
2218
2266
|
})();
|
|
2219
|
-
|
|
2267
|
+
exports3.JSXElement = JSXElement;
|
|
2220
2268
|
var JSXEmptyExpression = /* @__PURE__ */ (function() {
|
|
2221
2269
|
function JSXEmptyExpression2() {
|
|
2222
2270
|
this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;
|
|
2223
2271
|
}
|
|
2224
2272
|
return JSXEmptyExpression2;
|
|
2225
2273
|
})();
|
|
2226
|
-
|
|
2274
|
+
exports3.JSXEmptyExpression = JSXEmptyExpression;
|
|
2227
2275
|
var JSXExpressionContainer = /* @__PURE__ */ (function() {
|
|
2228
2276
|
function JSXExpressionContainer2(expression) {
|
|
2229
2277
|
this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;
|
|
@@ -2231,7 +2279,7 @@ var require_esprima = __commonJS({
|
|
|
2231
2279
|
}
|
|
2232
2280
|
return JSXExpressionContainer2;
|
|
2233
2281
|
})();
|
|
2234
|
-
|
|
2282
|
+
exports3.JSXExpressionContainer = JSXExpressionContainer;
|
|
2235
2283
|
var JSXIdentifier = /* @__PURE__ */ (function() {
|
|
2236
2284
|
function JSXIdentifier2(name) {
|
|
2237
2285
|
this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;
|
|
@@ -2239,7 +2287,7 @@ var require_esprima = __commonJS({
|
|
|
2239
2287
|
}
|
|
2240
2288
|
return JSXIdentifier2;
|
|
2241
2289
|
})();
|
|
2242
|
-
|
|
2290
|
+
exports3.JSXIdentifier = JSXIdentifier;
|
|
2243
2291
|
var JSXMemberExpression = /* @__PURE__ */ (function() {
|
|
2244
2292
|
function JSXMemberExpression2(object, property) {
|
|
2245
2293
|
this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;
|
|
@@ -2248,7 +2296,7 @@ var require_esprima = __commonJS({
|
|
|
2248
2296
|
}
|
|
2249
2297
|
return JSXMemberExpression2;
|
|
2250
2298
|
})();
|
|
2251
|
-
|
|
2299
|
+
exports3.JSXMemberExpression = JSXMemberExpression;
|
|
2252
2300
|
var JSXAttribute = /* @__PURE__ */ (function() {
|
|
2253
2301
|
function JSXAttribute2(name, value) {
|
|
2254
2302
|
this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;
|
|
@@ -2257,7 +2305,7 @@ var require_esprima = __commonJS({
|
|
|
2257
2305
|
}
|
|
2258
2306
|
return JSXAttribute2;
|
|
2259
2307
|
})();
|
|
2260
|
-
|
|
2308
|
+
exports3.JSXAttribute = JSXAttribute;
|
|
2261
2309
|
var JSXNamespacedName = /* @__PURE__ */ (function() {
|
|
2262
2310
|
function JSXNamespacedName2(namespace, name) {
|
|
2263
2311
|
this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;
|
|
@@ -2266,7 +2314,7 @@ var require_esprima = __commonJS({
|
|
|
2266
2314
|
}
|
|
2267
2315
|
return JSXNamespacedName2;
|
|
2268
2316
|
})();
|
|
2269
|
-
|
|
2317
|
+
exports3.JSXNamespacedName = JSXNamespacedName;
|
|
2270
2318
|
var JSXOpeningElement = /* @__PURE__ */ (function() {
|
|
2271
2319
|
function JSXOpeningElement2(name, selfClosing, attributes) {
|
|
2272
2320
|
this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;
|
|
@@ -2276,7 +2324,7 @@ var require_esprima = __commonJS({
|
|
|
2276
2324
|
}
|
|
2277
2325
|
return JSXOpeningElement2;
|
|
2278
2326
|
})();
|
|
2279
|
-
|
|
2327
|
+
exports3.JSXOpeningElement = JSXOpeningElement;
|
|
2280
2328
|
var JSXSpreadAttribute = /* @__PURE__ */ (function() {
|
|
2281
2329
|
function JSXSpreadAttribute2(argument) {
|
|
2282
2330
|
this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;
|
|
@@ -2284,7 +2332,7 @@ var require_esprima = __commonJS({
|
|
|
2284
2332
|
}
|
|
2285
2333
|
return JSXSpreadAttribute2;
|
|
2286
2334
|
})();
|
|
2287
|
-
|
|
2335
|
+
exports3.JSXSpreadAttribute = JSXSpreadAttribute;
|
|
2288
2336
|
var JSXText = /* @__PURE__ */ (function() {
|
|
2289
2337
|
function JSXText2(value, raw) {
|
|
2290
2338
|
this.type = jsx_syntax_1.JSXSyntax.JSXText;
|
|
@@ -2293,13 +2341,14 @@ var require_esprima = __commonJS({
|
|
|
2293
2341
|
}
|
|
2294
2342
|
return JSXText2;
|
|
2295
2343
|
})();
|
|
2296
|
-
|
|
2344
|
+
exports3.JSXText = JSXText;
|
|
2297
2345
|
},
|
|
2298
2346
|
/* 6 */
|
|
2299
2347
|
/***/
|
|
2300
|
-
function(
|
|
2301
|
-
|
|
2302
|
-
|
|
2348
|
+
function(module3, exports3) {
|
|
2349
|
+
"use strict";
|
|
2350
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
2351
|
+
exports3.JSXSyntax = {
|
|
2303
2352
|
JSXAttribute: "JSXAttribute",
|
|
2304
2353
|
JSXClosingElement: "JSXClosingElement",
|
|
2305
2354
|
JSXElement: "JSXElement",
|
|
@@ -2315,8 +2364,9 @@ var require_esprima = __commonJS({
|
|
|
2315
2364
|
},
|
|
2316
2365
|
/* 7 */
|
|
2317
2366
|
/***/
|
|
2318
|
-
function(
|
|
2319
|
-
|
|
2367
|
+
function(module3, exports3, __webpack_require__) {
|
|
2368
|
+
"use strict";
|
|
2369
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
2320
2370
|
var syntax_1 = __webpack_require__(2);
|
|
2321
2371
|
var ArrayExpression = /* @__PURE__ */ (function() {
|
|
2322
2372
|
function ArrayExpression2(elements) {
|
|
@@ -2325,7 +2375,7 @@ var require_esprima = __commonJS({
|
|
|
2325
2375
|
}
|
|
2326
2376
|
return ArrayExpression2;
|
|
2327
2377
|
})();
|
|
2328
|
-
|
|
2378
|
+
exports3.ArrayExpression = ArrayExpression;
|
|
2329
2379
|
var ArrayPattern = /* @__PURE__ */ (function() {
|
|
2330
2380
|
function ArrayPattern2(elements) {
|
|
2331
2381
|
this.type = syntax_1.Syntax.ArrayPattern;
|
|
@@ -2333,7 +2383,7 @@ var require_esprima = __commonJS({
|
|
|
2333
2383
|
}
|
|
2334
2384
|
return ArrayPattern2;
|
|
2335
2385
|
})();
|
|
2336
|
-
|
|
2386
|
+
exports3.ArrayPattern = ArrayPattern;
|
|
2337
2387
|
var ArrowFunctionExpression = /* @__PURE__ */ (function() {
|
|
2338
2388
|
function ArrowFunctionExpression2(params, body, expression) {
|
|
2339
2389
|
this.type = syntax_1.Syntax.ArrowFunctionExpression;
|
|
@@ -2346,7 +2396,7 @@ var require_esprima = __commonJS({
|
|
|
2346
2396
|
}
|
|
2347
2397
|
return ArrowFunctionExpression2;
|
|
2348
2398
|
})();
|
|
2349
|
-
|
|
2399
|
+
exports3.ArrowFunctionExpression = ArrowFunctionExpression;
|
|
2350
2400
|
var AssignmentExpression = /* @__PURE__ */ (function() {
|
|
2351
2401
|
function AssignmentExpression2(operator, left, right) {
|
|
2352
2402
|
this.type = syntax_1.Syntax.AssignmentExpression;
|
|
@@ -2356,7 +2406,7 @@ var require_esprima = __commonJS({
|
|
|
2356
2406
|
}
|
|
2357
2407
|
return AssignmentExpression2;
|
|
2358
2408
|
})();
|
|
2359
|
-
|
|
2409
|
+
exports3.AssignmentExpression = AssignmentExpression;
|
|
2360
2410
|
var AssignmentPattern = /* @__PURE__ */ (function() {
|
|
2361
2411
|
function AssignmentPattern2(left, right) {
|
|
2362
2412
|
this.type = syntax_1.Syntax.AssignmentPattern;
|
|
@@ -2365,7 +2415,7 @@ var require_esprima = __commonJS({
|
|
|
2365
2415
|
}
|
|
2366
2416
|
return AssignmentPattern2;
|
|
2367
2417
|
})();
|
|
2368
|
-
|
|
2418
|
+
exports3.AssignmentPattern = AssignmentPattern;
|
|
2369
2419
|
var AsyncArrowFunctionExpression = /* @__PURE__ */ (function() {
|
|
2370
2420
|
function AsyncArrowFunctionExpression2(params, body, expression) {
|
|
2371
2421
|
this.type = syntax_1.Syntax.ArrowFunctionExpression;
|
|
@@ -2378,7 +2428,7 @@ var require_esprima = __commonJS({
|
|
|
2378
2428
|
}
|
|
2379
2429
|
return AsyncArrowFunctionExpression2;
|
|
2380
2430
|
})();
|
|
2381
|
-
|
|
2431
|
+
exports3.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;
|
|
2382
2432
|
var AsyncFunctionDeclaration = /* @__PURE__ */ (function() {
|
|
2383
2433
|
function AsyncFunctionDeclaration2(id, params, body) {
|
|
2384
2434
|
this.type = syntax_1.Syntax.FunctionDeclaration;
|
|
@@ -2391,7 +2441,7 @@ var require_esprima = __commonJS({
|
|
|
2391
2441
|
}
|
|
2392
2442
|
return AsyncFunctionDeclaration2;
|
|
2393
2443
|
})();
|
|
2394
|
-
|
|
2444
|
+
exports3.AsyncFunctionDeclaration = AsyncFunctionDeclaration;
|
|
2395
2445
|
var AsyncFunctionExpression = /* @__PURE__ */ (function() {
|
|
2396
2446
|
function AsyncFunctionExpression2(id, params, body) {
|
|
2397
2447
|
this.type = syntax_1.Syntax.FunctionExpression;
|
|
@@ -2404,7 +2454,7 @@ var require_esprima = __commonJS({
|
|
|
2404
2454
|
}
|
|
2405
2455
|
return AsyncFunctionExpression2;
|
|
2406
2456
|
})();
|
|
2407
|
-
|
|
2457
|
+
exports3.AsyncFunctionExpression = AsyncFunctionExpression;
|
|
2408
2458
|
var AwaitExpression = /* @__PURE__ */ (function() {
|
|
2409
2459
|
function AwaitExpression2(argument) {
|
|
2410
2460
|
this.type = syntax_1.Syntax.AwaitExpression;
|
|
@@ -2412,7 +2462,7 @@ var require_esprima = __commonJS({
|
|
|
2412
2462
|
}
|
|
2413
2463
|
return AwaitExpression2;
|
|
2414
2464
|
})();
|
|
2415
|
-
|
|
2465
|
+
exports3.AwaitExpression = AwaitExpression;
|
|
2416
2466
|
var BinaryExpression = /* @__PURE__ */ (function() {
|
|
2417
2467
|
function BinaryExpression2(operator, left, right) {
|
|
2418
2468
|
var logical = operator === "||" || operator === "&&";
|
|
@@ -2423,7 +2473,7 @@ var require_esprima = __commonJS({
|
|
|
2423
2473
|
}
|
|
2424
2474
|
return BinaryExpression2;
|
|
2425
2475
|
})();
|
|
2426
|
-
|
|
2476
|
+
exports3.BinaryExpression = BinaryExpression;
|
|
2427
2477
|
var BlockStatement = /* @__PURE__ */ (function() {
|
|
2428
2478
|
function BlockStatement2(body) {
|
|
2429
2479
|
this.type = syntax_1.Syntax.BlockStatement;
|
|
@@ -2431,7 +2481,7 @@ var require_esprima = __commonJS({
|
|
|
2431
2481
|
}
|
|
2432
2482
|
return BlockStatement2;
|
|
2433
2483
|
})();
|
|
2434
|
-
|
|
2484
|
+
exports3.BlockStatement = BlockStatement;
|
|
2435
2485
|
var BreakStatement = /* @__PURE__ */ (function() {
|
|
2436
2486
|
function BreakStatement2(label) {
|
|
2437
2487
|
this.type = syntax_1.Syntax.BreakStatement;
|
|
@@ -2439,7 +2489,7 @@ var require_esprima = __commonJS({
|
|
|
2439
2489
|
}
|
|
2440
2490
|
return BreakStatement2;
|
|
2441
2491
|
})();
|
|
2442
|
-
|
|
2492
|
+
exports3.BreakStatement = BreakStatement;
|
|
2443
2493
|
var CallExpression = /* @__PURE__ */ (function() {
|
|
2444
2494
|
function CallExpression2(callee, args) {
|
|
2445
2495
|
this.type = syntax_1.Syntax.CallExpression;
|
|
@@ -2448,7 +2498,7 @@ var require_esprima = __commonJS({
|
|
|
2448
2498
|
}
|
|
2449
2499
|
return CallExpression2;
|
|
2450
2500
|
})();
|
|
2451
|
-
|
|
2501
|
+
exports3.CallExpression = CallExpression;
|
|
2452
2502
|
var CatchClause = /* @__PURE__ */ (function() {
|
|
2453
2503
|
function CatchClause2(param, body) {
|
|
2454
2504
|
this.type = syntax_1.Syntax.CatchClause;
|
|
@@ -2457,7 +2507,7 @@ var require_esprima = __commonJS({
|
|
|
2457
2507
|
}
|
|
2458
2508
|
return CatchClause2;
|
|
2459
2509
|
})();
|
|
2460
|
-
|
|
2510
|
+
exports3.CatchClause = CatchClause;
|
|
2461
2511
|
var ClassBody = /* @__PURE__ */ (function() {
|
|
2462
2512
|
function ClassBody2(body) {
|
|
2463
2513
|
this.type = syntax_1.Syntax.ClassBody;
|
|
@@ -2465,7 +2515,7 @@ var require_esprima = __commonJS({
|
|
|
2465
2515
|
}
|
|
2466
2516
|
return ClassBody2;
|
|
2467
2517
|
})();
|
|
2468
|
-
|
|
2518
|
+
exports3.ClassBody = ClassBody;
|
|
2469
2519
|
var ClassDeclaration = /* @__PURE__ */ (function() {
|
|
2470
2520
|
function ClassDeclaration2(id, superClass, body) {
|
|
2471
2521
|
this.type = syntax_1.Syntax.ClassDeclaration;
|
|
@@ -2475,7 +2525,7 @@ var require_esprima = __commonJS({
|
|
|
2475
2525
|
}
|
|
2476
2526
|
return ClassDeclaration2;
|
|
2477
2527
|
})();
|
|
2478
|
-
|
|
2528
|
+
exports3.ClassDeclaration = ClassDeclaration;
|
|
2479
2529
|
var ClassExpression = /* @__PURE__ */ (function() {
|
|
2480
2530
|
function ClassExpression2(id, superClass, body) {
|
|
2481
2531
|
this.type = syntax_1.Syntax.ClassExpression;
|
|
@@ -2485,7 +2535,7 @@ var require_esprima = __commonJS({
|
|
|
2485
2535
|
}
|
|
2486
2536
|
return ClassExpression2;
|
|
2487
2537
|
})();
|
|
2488
|
-
|
|
2538
|
+
exports3.ClassExpression = ClassExpression;
|
|
2489
2539
|
var ComputedMemberExpression = /* @__PURE__ */ (function() {
|
|
2490
2540
|
function ComputedMemberExpression2(object, property) {
|
|
2491
2541
|
this.type = syntax_1.Syntax.MemberExpression;
|
|
@@ -2495,7 +2545,7 @@ var require_esprima = __commonJS({
|
|
|
2495
2545
|
}
|
|
2496
2546
|
return ComputedMemberExpression2;
|
|
2497
2547
|
})();
|
|
2498
|
-
|
|
2548
|
+
exports3.ComputedMemberExpression = ComputedMemberExpression;
|
|
2499
2549
|
var ConditionalExpression = /* @__PURE__ */ (function() {
|
|
2500
2550
|
function ConditionalExpression2(test, consequent, alternate) {
|
|
2501
2551
|
this.type = syntax_1.Syntax.ConditionalExpression;
|
|
@@ -2505,7 +2555,7 @@ var require_esprima = __commonJS({
|
|
|
2505
2555
|
}
|
|
2506
2556
|
return ConditionalExpression2;
|
|
2507
2557
|
})();
|
|
2508
|
-
|
|
2558
|
+
exports3.ConditionalExpression = ConditionalExpression;
|
|
2509
2559
|
var ContinueStatement = /* @__PURE__ */ (function() {
|
|
2510
2560
|
function ContinueStatement2(label) {
|
|
2511
2561
|
this.type = syntax_1.Syntax.ContinueStatement;
|
|
@@ -2513,14 +2563,14 @@ var require_esprima = __commonJS({
|
|
|
2513
2563
|
}
|
|
2514
2564
|
return ContinueStatement2;
|
|
2515
2565
|
})();
|
|
2516
|
-
|
|
2566
|
+
exports3.ContinueStatement = ContinueStatement;
|
|
2517
2567
|
var DebuggerStatement = /* @__PURE__ */ (function() {
|
|
2518
2568
|
function DebuggerStatement2() {
|
|
2519
2569
|
this.type = syntax_1.Syntax.DebuggerStatement;
|
|
2520
2570
|
}
|
|
2521
2571
|
return DebuggerStatement2;
|
|
2522
2572
|
})();
|
|
2523
|
-
|
|
2573
|
+
exports3.DebuggerStatement = DebuggerStatement;
|
|
2524
2574
|
var Directive = /* @__PURE__ */ (function() {
|
|
2525
2575
|
function Directive2(expression, directive) {
|
|
2526
2576
|
this.type = syntax_1.Syntax.ExpressionStatement;
|
|
@@ -2529,7 +2579,7 @@ var require_esprima = __commonJS({
|
|
|
2529
2579
|
}
|
|
2530
2580
|
return Directive2;
|
|
2531
2581
|
})();
|
|
2532
|
-
|
|
2582
|
+
exports3.Directive = Directive;
|
|
2533
2583
|
var DoWhileStatement = /* @__PURE__ */ (function() {
|
|
2534
2584
|
function DoWhileStatement2(body, test) {
|
|
2535
2585
|
this.type = syntax_1.Syntax.DoWhileStatement;
|
|
@@ -2538,14 +2588,14 @@ var require_esprima = __commonJS({
|
|
|
2538
2588
|
}
|
|
2539
2589
|
return DoWhileStatement2;
|
|
2540
2590
|
})();
|
|
2541
|
-
|
|
2591
|
+
exports3.DoWhileStatement = DoWhileStatement;
|
|
2542
2592
|
var EmptyStatement = /* @__PURE__ */ (function() {
|
|
2543
2593
|
function EmptyStatement2() {
|
|
2544
2594
|
this.type = syntax_1.Syntax.EmptyStatement;
|
|
2545
2595
|
}
|
|
2546
2596
|
return EmptyStatement2;
|
|
2547
2597
|
})();
|
|
2548
|
-
|
|
2598
|
+
exports3.EmptyStatement = EmptyStatement;
|
|
2549
2599
|
var ExportAllDeclaration = /* @__PURE__ */ (function() {
|
|
2550
2600
|
function ExportAllDeclaration2(source2) {
|
|
2551
2601
|
this.type = syntax_1.Syntax.ExportAllDeclaration;
|
|
@@ -2553,7 +2603,7 @@ var require_esprima = __commonJS({
|
|
|
2553
2603
|
}
|
|
2554
2604
|
return ExportAllDeclaration2;
|
|
2555
2605
|
})();
|
|
2556
|
-
|
|
2606
|
+
exports3.ExportAllDeclaration = ExportAllDeclaration;
|
|
2557
2607
|
var ExportDefaultDeclaration = /* @__PURE__ */ (function() {
|
|
2558
2608
|
function ExportDefaultDeclaration2(declaration) {
|
|
2559
2609
|
this.type = syntax_1.Syntax.ExportDefaultDeclaration;
|
|
@@ -2561,7 +2611,7 @@ var require_esprima = __commonJS({
|
|
|
2561
2611
|
}
|
|
2562
2612
|
return ExportDefaultDeclaration2;
|
|
2563
2613
|
})();
|
|
2564
|
-
|
|
2614
|
+
exports3.ExportDefaultDeclaration = ExportDefaultDeclaration;
|
|
2565
2615
|
var ExportNamedDeclaration = /* @__PURE__ */ (function() {
|
|
2566
2616
|
function ExportNamedDeclaration2(declaration, specifiers, source2) {
|
|
2567
2617
|
this.type = syntax_1.Syntax.ExportNamedDeclaration;
|
|
@@ -2571,7 +2621,7 @@ var require_esprima = __commonJS({
|
|
|
2571
2621
|
}
|
|
2572
2622
|
return ExportNamedDeclaration2;
|
|
2573
2623
|
})();
|
|
2574
|
-
|
|
2624
|
+
exports3.ExportNamedDeclaration = ExportNamedDeclaration;
|
|
2575
2625
|
var ExportSpecifier = /* @__PURE__ */ (function() {
|
|
2576
2626
|
function ExportSpecifier2(local, exported) {
|
|
2577
2627
|
this.type = syntax_1.Syntax.ExportSpecifier;
|
|
@@ -2580,7 +2630,7 @@ var require_esprima = __commonJS({
|
|
|
2580
2630
|
}
|
|
2581
2631
|
return ExportSpecifier2;
|
|
2582
2632
|
})();
|
|
2583
|
-
|
|
2633
|
+
exports3.ExportSpecifier = ExportSpecifier;
|
|
2584
2634
|
var ExpressionStatement = /* @__PURE__ */ (function() {
|
|
2585
2635
|
function ExpressionStatement2(expression) {
|
|
2586
2636
|
this.type = syntax_1.Syntax.ExpressionStatement;
|
|
@@ -2588,7 +2638,7 @@ var require_esprima = __commonJS({
|
|
|
2588
2638
|
}
|
|
2589
2639
|
return ExpressionStatement2;
|
|
2590
2640
|
})();
|
|
2591
|
-
|
|
2641
|
+
exports3.ExpressionStatement = ExpressionStatement;
|
|
2592
2642
|
var ForInStatement = /* @__PURE__ */ (function() {
|
|
2593
2643
|
function ForInStatement2(left, right, body) {
|
|
2594
2644
|
this.type = syntax_1.Syntax.ForInStatement;
|
|
@@ -2599,7 +2649,7 @@ var require_esprima = __commonJS({
|
|
|
2599
2649
|
}
|
|
2600
2650
|
return ForInStatement2;
|
|
2601
2651
|
})();
|
|
2602
|
-
|
|
2652
|
+
exports3.ForInStatement = ForInStatement;
|
|
2603
2653
|
var ForOfStatement = /* @__PURE__ */ (function() {
|
|
2604
2654
|
function ForOfStatement2(left, right, body) {
|
|
2605
2655
|
this.type = syntax_1.Syntax.ForOfStatement;
|
|
@@ -2609,7 +2659,7 @@ var require_esprima = __commonJS({
|
|
|
2609
2659
|
}
|
|
2610
2660
|
return ForOfStatement2;
|
|
2611
2661
|
})();
|
|
2612
|
-
|
|
2662
|
+
exports3.ForOfStatement = ForOfStatement;
|
|
2613
2663
|
var ForStatement = /* @__PURE__ */ (function() {
|
|
2614
2664
|
function ForStatement2(init, test, update, body) {
|
|
2615
2665
|
this.type = syntax_1.Syntax.ForStatement;
|
|
@@ -2620,7 +2670,7 @@ var require_esprima = __commonJS({
|
|
|
2620
2670
|
}
|
|
2621
2671
|
return ForStatement2;
|
|
2622
2672
|
})();
|
|
2623
|
-
|
|
2673
|
+
exports3.ForStatement = ForStatement;
|
|
2624
2674
|
var FunctionDeclaration = /* @__PURE__ */ (function() {
|
|
2625
2675
|
function FunctionDeclaration2(id, params, body, generator) {
|
|
2626
2676
|
this.type = syntax_1.Syntax.FunctionDeclaration;
|
|
@@ -2633,7 +2683,7 @@ var require_esprima = __commonJS({
|
|
|
2633
2683
|
}
|
|
2634
2684
|
return FunctionDeclaration2;
|
|
2635
2685
|
})();
|
|
2636
|
-
|
|
2686
|
+
exports3.FunctionDeclaration = FunctionDeclaration;
|
|
2637
2687
|
var FunctionExpression = /* @__PURE__ */ (function() {
|
|
2638
2688
|
function FunctionExpression2(id, params, body, generator) {
|
|
2639
2689
|
this.type = syntax_1.Syntax.FunctionExpression;
|
|
@@ -2646,7 +2696,7 @@ var require_esprima = __commonJS({
|
|
|
2646
2696
|
}
|
|
2647
2697
|
return FunctionExpression2;
|
|
2648
2698
|
})();
|
|
2649
|
-
|
|
2699
|
+
exports3.FunctionExpression = FunctionExpression;
|
|
2650
2700
|
var Identifier = /* @__PURE__ */ (function() {
|
|
2651
2701
|
function Identifier2(name) {
|
|
2652
2702
|
this.type = syntax_1.Syntax.Identifier;
|
|
@@ -2654,7 +2704,7 @@ var require_esprima = __commonJS({
|
|
|
2654
2704
|
}
|
|
2655
2705
|
return Identifier2;
|
|
2656
2706
|
})();
|
|
2657
|
-
|
|
2707
|
+
exports3.Identifier = Identifier;
|
|
2658
2708
|
var IfStatement = /* @__PURE__ */ (function() {
|
|
2659
2709
|
function IfStatement2(test, consequent, alternate) {
|
|
2660
2710
|
this.type = syntax_1.Syntax.IfStatement;
|
|
@@ -2664,7 +2714,7 @@ var require_esprima = __commonJS({
|
|
|
2664
2714
|
}
|
|
2665
2715
|
return IfStatement2;
|
|
2666
2716
|
})();
|
|
2667
|
-
|
|
2717
|
+
exports3.IfStatement = IfStatement;
|
|
2668
2718
|
var ImportDeclaration = /* @__PURE__ */ (function() {
|
|
2669
2719
|
function ImportDeclaration2(specifiers, source2) {
|
|
2670
2720
|
this.type = syntax_1.Syntax.ImportDeclaration;
|
|
@@ -2673,7 +2723,7 @@ var require_esprima = __commonJS({
|
|
|
2673
2723
|
}
|
|
2674
2724
|
return ImportDeclaration2;
|
|
2675
2725
|
})();
|
|
2676
|
-
|
|
2726
|
+
exports3.ImportDeclaration = ImportDeclaration;
|
|
2677
2727
|
var ImportDefaultSpecifier = /* @__PURE__ */ (function() {
|
|
2678
2728
|
function ImportDefaultSpecifier2(local) {
|
|
2679
2729
|
this.type = syntax_1.Syntax.ImportDefaultSpecifier;
|
|
@@ -2681,7 +2731,7 @@ var require_esprima = __commonJS({
|
|
|
2681
2731
|
}
|
|
2682
2732
|
return ImportDefaultSpecifier2;
|
|
2683
2733
|
})();
|
|
2684
|
-
|
|
2734
|
+
exports3.ImportDefaultSpecifier = ImportDefaultSpecifier;
|
|
2685
2735
|
var ImportNamespaceSpecifier = /* @__PURE__ */ (function() {
|
|
2686
2736
|
function ImportNamespaceSpecifier2(local) {
|
|
2687
2737
|
this.type = syntax_1.Syntax.ImportNamespaceSpecifier;
|
|
@@ -2689,7 +2739,7 @@ var require_esprima = __commonJS({
|
|
|
2689
2739
|
}
|
|
2690
2740
|
return ImportNamespaceSpecifier2;
|
|
2691
2741
|
})();
|
|
2692
|
-
|
|
2742
|
+
exports3.ImportNamespaceSpecifier = ImportNamespaceSpecifier;
|
|
2693
2743
|
var ImportSpecifier = /* @__PURE__ */ (function() {
|
|
2694
2744
|
function ImportSpecifier2(local, imported) {
|
|
2695
2745
|
this.type = syntax_1.Syntax.ImportSpecifier;
|
|
@@ -2698,7 +2748,7 @@ var require_esprima = __commonJS({
|
|
|
2698
2748
|
}
|
|
2699
2749
|
return ImportSpecifier2;
|
|
2700
2750
|
})();
|
|
2701
|
-
|
|
2751
|
+
exports3.ImportSpecifier = ImportSpecifier;
|
|
2702
2752
|
var LabeledStatement = /* @__PURE__ */ (function() {
|
|
2703
2753
|
function LabeledStatement2(label, body) {
|
|
2704
2754
|
this.type = syntax_1.Syntax.LabeledStatement;
|
|
@@ -2707,7 +2757,7 @@ var require_esprima = __commonJS({
|
|
|
2707
2757
|
}
|
|
2708
2758
|
return LabeledStatement2;
|
|
2709
2759
|
})();
|
|
2710
|
-
|
|
2760
|
+
exports3.LabeledStatement = LabeledStatement;
|
|
2711
2761
|
var Literal = /* @__PURE__ */ (function() {
|
|
2712
2762
|
function Literal2(value, raw) {
|
|
2713
2763
|
this.type = syntax_1.Syntax.Literal;
|
|
@@ -2716,7 +2766,7 @@ var require_esprima = __commonJS({
|
|
|
2716
2766
|
}
|
|
2717
2767
|
return Literal2;
|
|
2718
2768
|
})();
|
|
2719
|
-
|
|
2769
|
+
exports3.Literal = Literal;
|
|
2720
2770
|
var MetaProperty = /* @__PURE__ */ (function() {
|
|
2721
2771
|
function MetaProperty2(meta, property) {
|
|
2722
2772
|
this.type = syntax_1.Syntax.MetaProperty;
|
|
@@ -2725,7 +2775,7 @@ var require_esprima = __commonJS({
|
|
|
2725
2775
|
}
|
|
2726
2776
|
return MetaProperty2;
|
|
2727
2777
|
})();
|
|
2728
|
-
|
|
2778
|
+
exports3.MetaProperty = MetaProperty;
|
|
2729
2779
|
var MethodDefinition = /* @__PURE__ */ (function() {
|
|
2730
2780
|
function MethodDefinition2(key2, computed, value, kind, isStatic) {
|
|
2731
2781
|
this.type = syntax_1.Syntax.MethodDefinition;
|
|
@@ -2737,7 +2787,7 @@ var require_esprima = __commonJS({
|
|
|
2737
2787
|
}
|
|
2738
2788
|
return MethodDefinition2;
|
|
2739
2789
|
})();
|
|
2740
|
-
|
|
2790
|
+
exports3.MethodDefinition = MethodDefinition;
|
|
2741
2791
|
var Module = /* @__PURE__ */ (function() {
|
|
2742
2792
|
function Module2(body) {
|
|
2743
2793
|
this.type = syntax_1.Syntax.Program;
|
|
@@ -2746,7 +2796,7 @@ var require_esprima = __commonJS({
|
|
|
2746
2796
|
}
|
|
2747
2797
|
return Module2;
|
|
2748
2798
|
})();
|
|
2749
|
-
|
|
2799
|
+
exports3.Module = Module;
|
|
2750
2800
|
var NewExpression = /* @__PURE__ */ (function() {
|
|
2751
2801
|
function NewExpression2(callee, args) {
|
|
2752
2802
|
this.type = syntax_1.Syntax.NewExpression;
|
|
@@ -2755,7 +2805,7 @@ var require_esprima = __commonJS({
|
|
|
2755
2805
|
}
|
|
2756
2806
|
return NewExpression2;
|
|
2757
2807
|
})();
|
|
2758
|
-
|
|
2808
|
+
exports3.NewExpression = NewExpression;
|
|
2759
2809
|
var ObjectExpression = /* @__PURE__ */ (function() {
|
|
2760
2810
|
function ObjectExpression2(properties) {
|
|
2761
2811
|
this.type = syntax_1.Syntax.ObjectExpression;
|
|
@@ -2763,7 +2813,7 @@ var require_esprima = __commonJS({
|
|
|
2763
2813
|
}
|
|
2764
2814
|
return ObjectExpression2;
|
|
2765
2815
|
})();
|
|
2766
|
-
|
|
2816
|
+
exports3.ObjectExpression = ObjectExpression;
|
|
2767
2817
|
var ObjectPattern = /* @__PURE__ */ (function() {
|
|
2768
2818
|
function ObjectPattern2(properties) {
|
|
2769
2819
|
this.type = syntax_1.Syntax.ObjectPattern;
|
|
@@ -2771,7 +2821,7 @@ var require_esprima = __commonJS({
|
|
|
2771
2821
|
}
|
|
2772
2822
|
return ObjectPattern2;
|
|
2773
2823
|
})();
|
|
2774
|
-
|
|
2824
|
+
exports3.ObjectPattern = ObjectPattern;
|
|
2775
2825
|
var Property = /* @__PURE__ */ (function() {
|
|
2776
2826
|
function Property2(kind, key2, computed, value, method, shorthand) {
|
|
2777
2827
|
this.type = syntax_1.Syntax.Property;
|
|
@@ -2784,7 +2834,7 @@ var require_esprima = __commonJS({
|
|
|
2784
2834
|
}
|
|
2785
2835
|
return Property2;
|
|
2786
2836
|
})();
|
|
2787
|
-
|
|
2837
|
+
exports3.Property = Property;
|
|
2788
2838
|
var RegexLiteral = /* @__PURE__ */ (function() {
|
|
2789
2839
|
function RegexLiteral2(value, raw, pattern, flags) {
|
|
2790
2840
|
this.type = syntax_1.Syntax.Literal;
|
|
@@ -2794,7 +2844,7 @@ var require_esprima = __commonJS({
|
|
|
2794
2844
|
}
|
|
2795
2845
|
return RegexLiteral2;
|
|
2796
2846
|
})();
|
|
2797
|
-
|
|
2847
|
+
exports3.RegexLiteral = RegexLiteral;
|
|
2798
2848
|
var RestElement = /* @__PURE__ */ (function() {
|
|
2799
2849
|
function RestElement2(argument) {
|
|
2800
2850
|
this.type = syntax_1.Syntax.RestElement;
|
|
@@ -2802,7 +2852,7 @@ var require_esprima = __commonJS({
|
|
|
2802
2852
|
}
|
|
2803
2853
|
return RestElement2;
|
|
2804
2854
|
})();
|
|
2805
|
-
|
|
2855
|
+
exports3.RestElement = RestElement;
|
|
2806
2856
|
var ReturnStatement = /* @__PURE__ */ (function() {
|
|
2807
2857
|
function ReturnStatement2(argument) {
|
|
2808
2858
|
this.type = syntax_1.Syntax.ReturnStatement;
|
|
@@ -2810,7 +2860,7 @@ var require_esprima = __commonJS({
|
|
|
2810
2860
|
}
|
|
2811
2861
|
return ReturnStatement2;
|
|
2812
2862
|
})();
|
|
2813
|
-
|
|
2863
|
+
exports3.ReturnStatement = ReturnStatement;
|
|
2814
2864
|
var Script = /* @__PURE__ */ (function() {
|
|
2815
2865
|
function Script2(body) {
|
|
2816
2866
|
this.type = syntax_1.Syntax.Program;
|
|
@@ -2819,7 +2869,7 @@ var require_esprima = __commonJS({
|
|
|
2819
2869
|
}
|
|
2820
2870
|
return Script2;
|
|
2821
2871
|
})();
|
|
2822
|
-
|
|
2872
|
+
exports3.Script = Script;
|
|
2823
2873
|
var SequenceExpression = /* @__PURE__ */ (function() {
|
|
2824
2874
|
function SequenceExpression2(expressions) {
|
|
2825
2875
|
this.type = syntax_1.Syntax.SequenceExpression;
|
|
@@ -2827,7 +2877,7 @@ var require_esprima = __commonJS({
|
|
|
2827
2877
|
}
|
|
2828
2878
|
return SequenceExpression2;
|
|
2829
2879
|
})();
|
|
2830
|
-
|
|
2880
|
+
exports3.SequenceExpression = SequenceExpression;
|
|
2831
2881
|
var SpreadElement = /* @__PURE__ */ (function() {
|
|
2832
2882
|
function SpreadElement2(argument) {
|
|
2833
2883
|
this.type = syntax_1.Syntax.SpreadElement;
|
|
@@ -2835,7 +2885,7 @@ var require_esprima = __commonJS({
|
|
|
2835
2885
|
}
|
|
2836
2886
|
return SpreadElement2;
|
|
2837
2887
|
})();
|
|
2838
|
-
|
|
2888
|
+
exports3.SpreadElement = SpreadElement;
|
|
2839
2889
|
var StaticMemberExpression = /* @__PURE__ */ (function() {
|
|
2840
2890
|
function StaticMemberExpression2(object, property) {
|
|
2841
2891
|
this.type = syntax_1.Syntax.MemberExpression;
|
|
@@ -2845,14 +2895,14 @@ var require_esprima = __commonJS({
|
|
|
2845
2895
|
}
|
|
2846
2896
|
return StaticMemberExpression2;
|
|
2847
2897
|
})();
|
|
2848
|
-
|
|
2898
|
+
exports3.StaticMemberExpression = StaticMemberExpression;
|
|
2849
2899
|
var Super = /* @__PURE__ */ (function() {
|
|
2850
2900
|
function Super2() {
|
|
2851
2901
|
this.type = syntax_1.Syntax.Super;
|
|
2852
2902
|
}
|
|
2853
2903
|
return Super2;
|
|
2854
2904
|
})();
|
|
2855
|
-
|
|
2905
|
+
exports3.Super = Super;
|
|
2856
2906
|
var SwitchCase = /* @__PURE__ */ (function() {
|
|
2857
2907
|
function SwitchCase2(test, consequent) {
|
|
2858
2908
|
this.type = syntax_1.Syntax.SwitchCase;
|
|
@@ -2861,7 +2911,7 @@ var require_esprima = __commonJS({
|
|
|
2861
2911
|
}
|
|
2862
2912
|
return SwitchCase2;
|
|
2863
2913
|
})();
|
|
2864
|
-
|
|
2914
|
+
exports3.SwitchCase = SwitchCase;
|
|
2865
2915
|
var SwitchStatement = /* @__PURE__ */ (function() {
|
|
2866
2916
|
function SwitchStatement2(discriminant, cases) {
|
|
2867
2917
|
this.type = syntax_1.Syntax.SwitchStatement;
|
|
@@ -2870,7 +2920,7 @@ var require_esprima = __commonJS({
|
|
|
2870
2920
|
}
|
|
2871
2921
|
return SwitchStatement2;
|
|
2872
2922
|
})();
|
|
2873
|
-
|
|
2923
|
+
exports3.SwitchStatement = SwitchStatement;
|
|
2874
2924
|
var TaggedTemplateExpression = /* @__PURE__ */ (function() {
|
|
2875
2925
|
function TaggedTemplateExpression2(tag, quasi) {
|
|
2876
2926
|
this.type = syntax_1.Syntax.TaggedTemplateExpression;
|
|
@@ -2879,7 +2929,7 @@ var require_esprima = __commonJS({
|
|
|
2879
2929
|
}
|
|
2880
2930
|
return TaggedTemplateExpression2;
|
|
2881
2931
|
})();
|
|
2882
|
-
|
|
2932
|
+
exports3.TaggedTemplateExpression = TaggedTemplateExpression;
|
|
2883
2933
|
var TemplateElement = /* @__PURE__ */ (function() {
|
|
2884
2934
|
function TemplateElement2(value, tail) {
|
|
2885
2935
|
this.type = syntax_1.Syntax.TemplateElement;
|
|
@@ -2888,7 +2938,7 @@ var require_esprima = __commonJS({
|
|
|
2888
2938
|
}
|
|
2889
2939
|
return TemplateElement2;
|
|
2890
2940
|
})();
|
|
2891
|
-
|
|
2941
|
+
exports3.TemplateElement = TemplateElement;
|
|
2892
2942
|
var TemplateLiteral = /* @__PURE__ */ (function() {
|
|
2893
2943
|
function TemplateLiteral2(quasis, expressions) {
|
|
2894
2944
|
this.type = syntax_1.Syntax.TemplateLiteral;
|
|
@@ -2897,14 +2947,14 @@ var require_esprima = __commonJS({
|
|
|
2897
2947
|
}
|
|
2898
2948
|
return TemplateLiteral2;
|
|
2899
2949
|
})();
|
|
2900
|
-
|
|
2950
|
+
exports3.TemplateLiteral = TemplateLiteral;
|
|
2901
2951
|
var ThisExpression = /* @__PURE__ */ (function() {
|
|
2902
2952
|
function ThisExpression2() {
|
|
2903
2953
|
this.type = syntax_1.Syntax.ThisExpression;
|
|
2904
2954
|
}
|
|
2905
2955
|
return ThisExpression2;
|
|
2906
2956
|
})();
|
|
2907
|
-
|
|
2957
|
+
exports3.ThisExpression = ThisExpression;
|
|
2908
2958
|
var ThrowStatement = /* @__PURE__ */ (function() {
|
|
2909
2959
|
function ThrowStatement2(argument) {
|
|
2910
2960
|
this.type = syntax_1.Syntax.ThrowStatement;
|
|
@@ -2912,7 +2962,7 @@ var require_esprima = __commonJS({
|
|
|
2912
2962
|
}
|
|
2913
2963
|
return ThrowStatement2;
|
|
2914
2964
|
})();
|
|
2915
|
-
|
|
2965
|
+
exports3.ThrowStatement = ThrowStatement;
|
|
2916
2966
|
var TryStatement = /* @__PURE__ */ (function() {
|
|
2917
2967
|
function TryStatement2(block, handler, finalizer) {
|
|
2918
2968
|
this.type = syntax_1.Syntax.TryStatement;
|
|
@@ -2922,7 +2972,7 @@ var require_esprima = __commonJS({
|
|
|
2922
2972
|
}
|
|
2923
2973
|
return TryStatement2;
|
|
2924
2974
|
})();
|
|
2925
|
-
|
|
2975
|
+
exports3.TryStatement = TryStatement;
|
|
2926
2976
|
var UnaryExpression = /* @__PURE__ */ (function() {
|
|
2927
2977
|
function UnaryExpression2(operator, argument) {
|
|
2928
2978
|
this.type = syntax_1.Syntax.UnaryExpression;
|
|
@@ -2932,7 +2982,7 @@ var require_esprima = __commonJS({
|
|
|
2932
2982
|
}
|
|
2933
2983
|
return UnaryExpression2;
|
|
2934
2984
|
})();
|
|
2935
|
-
|
|
2985
|
+
exports3.UnaryExpression = UnaryExpression;
|
|
2936
2986
|
var UpdateExpression = /* @__PURE__ */ (function() {
|
|
2937
2987
|
function UpdateExpression2(operator, argument, prefix) {
|
|
2938
2988
|
this.type = syntax_1.Syntax.UpdateExpression;
|
|
@@ -2942,7 +2992,7 @@ var require_esprima = __commonJS({
|
|
|
2942
2992
|
}
|
|
2943
2993
|
return UpdateExpression2;
|
|
2944
2994
|
})();
|
|
2945
|
-
|
|
2995
|
+
exports3.UpdateExpression = UpdateExpression;
|
|
2946
2996
|
var VariableDeclaration = /* @__PURE__ */ (function() {
|
|
2947
2997
|
function VariableDeclaration2(declarations, kind) {
|
|
2948
2998
|
this.type = syntax_1.Syntax.VariableDeclaration;
|
|
@@ -2951,7 +3001,7 @@ var require_esprima = __commonJS({
|
|
|
2951
3001
|
}
|
|
2952
3002
|
return VariableDeclaration2;
|
|
2953
3003
|
})();
|
|
2954
|
-
|
|
3004
|
+
exports3.VariableDeclaration = VariableDeclaration;
|
|
2955
3005
|
var VariableDeclarator = /* @__PURE__ */ (function() {
|
|
2956
3006
|
function VariableDeclarator2(id, init) {
|
|
2957
3007
|
this.type = syntax_1.Syntax.VariableDeclarator;
|
|
@@ -2960,7 +3010,7 @@ var require_esprima = __commonJS({
|
|
|
2960
3010
|
}
|
|
2961
3011
|
return VariableDeclarator2;
|
|
2962
3012
|
})();
|
|
2963
|
-
|
|
3013
|
+
exports3.VariableDeclarator = VariableDeclarator;
|
|
2964
3014
|
var WhileStatement = /* @__PURE__ */ (function() {
|
|
2965
3015
|
function WhileStatement2(test, body) {
|
|
2966
3016
|
this.type = syntax_1.Syntax.WhileStatement;
|
|
@@ -2969,7 +3019,7 @@ var require_esprima = __commonJS({
|
|
|
2969
3019
|
}
|
|
2970
3020
|
return WhileStatement2;
|
|
2971
3021
|
})();
|
|
2972
|
-
|
|
3022
|
+
exports3.WhileStatement = WhileStatement;
|
|
2973
3023
|
var WithStatement = /* @__PURE__ */ (function() {
|
|
2974
3024
|
function WithStatement2(object, body) {
|
|
2975
3025
|
this.type = syntax_1.Syntax.WithStatement;
|
|
@@ -2978,7 +3028,7 @@ var require_esprima = __commonJS({
|
|
|
2978
3028
|
}
|
|
2979
3029
|
return WithStatement2;
|
|
2980
3030
|
})();
|
|
2981
|
-
|
|
3031
|
+
exports3.WithStatement = WithStatement;
|
|
2982
3032
|
var YieldExpression = /* @__PURE__ */ (function() {
|
|
2983
3033
|
function YieldExpression2(argument, delegate) {
|
|
2984
3034
|
this.type = syntax_1.Syntax.YieldExpression;
|
|
@@ -2987,12 +3037,13 @@ var require_esprima = __commonJS({
|
|
|
2987
3037
|
}
|
|
2988
3038
|
return YieldExpression2;
|
|
2989
3039
|
})();
|
|
2990
|
-
|
|
3040
|
+
exports3.YieldExpression = YieldExpression;
|
|
2991
3041
|
},
|
|
2992
3042
|
/* 8 */
|
|
2993
3043
|
/***/
|
|
2994
|
-
function(
|
|
2995
|
-
|
|
3044
|
+
function(module3, exports3, __webpack_require__) {
|
|
3045
|
+
"use strict";
|
|
3046
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
2996
3047
|
var assert_1 = __webpack_require__(9);
|
|
2997
3048
|
var error_handler_1 = __webpack_require__(10);
|
|
2998
3049
|
var messages_1 = __webpack_require__(11);
|
|
@@ -3093,6 +3144,10 @@ var require_esprima = __commonJS({
|
|
|
3093
3144
|
};
|
|
3094
3145
|
}
|
|
3095
3146
|
Parser2.prototype.throwError = function(messageFormat) {
|
|
3147
|
+
var values = [];
|
|
3148
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
3149
|
+
values[_i - 1] = arguments[_i];
|
|
3150
|
+
}
|
|
3096
3151
|
var args = Array.prototype.slice.call(arguments, 1);
|
|
3097
3152
|
var msg = messageFormat.replace(/%(\d)/g, function(whole, idx) {
|
|
3098
3153
|
assert_1.assert(idx < args.length, "Message reference must be in range");
|
|
@@ -3104,6 +3159,10 @@ var require_esprima = __commonJS({
|
|
|
3104
3159
|
throw this.errorHandler.createError(index, line2, column2, msg);
|
|
3105
3160
|
};
|
|
3106
3161
|
Parser2.prototype.tolerateError = function(messageFormat) {
|
|
3162
|
+
var values = [];
|
|
3163
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
3164
|
+
values[_i - 1] = arguments[_i];
|
|
3165
|
+
}
|
|
3107
3166
|
var args = Array.prototype.slice.call(arguments, 1);
|
|
3108
3167
|
var msg = messageFormat.replace(/%(\d)/g, function(whole, idx) {
|
|
3109
3168
|
assert_1.assert(idx < args.length, "Message reference must be in range");
|
|
@@ -3741,6 +3800,8 @@ var require_esprima = __commonJS({
|
|
|
3741
3800
|
delete expr.operator;
|
|
3742
3801
|
this.reinterpretExpressionAsPattern(expr.left);
|
|
3743
3802
|
break;
|
|
3803
|
+
default:
|
|
3804
|
+
break;
|
|
3744
3805
|
}
|
|
3745
3806
|
};
|
|
3746
3807
|
Parser2.prototype.parseGroupExpression = function() {
|
|
@@ -4202,6 +4263,8 @@ var require_esprima = __commonJS({
|
|
|
4202
4263
|
this.checkPatternParam(options2, param.properties[i].value);
|
|
4203
4264
|
}
|
|
4204
4265
|
break;
|
|
4266
|
+
default:
|
|
4267
|
+
break;
|
|
4205
4268
|
}
|
|
4206
4269
|
options2.simple = options2.simple && param instanceof Node.Identifier;
|
|
4207
4270
|
};
|
|
@@ -5402,6 +5465,8 @@ var require_esprima = __commonJS({
|
|
|
5402
5465
|
return true;
|
|
5403
5466
|
case 7:
|
|
5404
5467
|
return token2.value === "[";
|
|
5468
|
+
default:
|
|
5469
|
+
break;
|
|
5405
5470
|
}
|
|
5406
5471
|
return false;
|
|
5407
5472
|
};
|
|
@@ -5454,6 +5519,8 @@ var require_esprima = __commonJS({
|
|
|
5454
5519
|
case 4:
|
|
5455
5520
|
start = value === "class" || value === "delete" || value === "function" || value === "let" || value === "new" || value === "super" || value === "this" || value === "typeof" || value === "void" || value === "yield";
|
|
5456
5521
|
break;
|
|
5522
|
+
default:
|
|
5523
|
+
break;
|
|
5457
5524
|
}
|
|
5458
5525
|
return start;
|
|
5459
5526
|
};
|
|
@@ -5825,23 +5892,25 @@ var require_esprima = __commonJS({
|
|
|
5825
5892
|
};
|
|
5826
5893
|
return Parser2;
|
|
5827
5894
|
})();
|
|
5828
|
-
|
|
5895
|
+
exports3.Parser = Parser;
|
|
5829
5896
|
},
|
|
5830
5897
|
/* 9 */
|
|
5831
5898
|
/***/
|
|
5832
|
-
function(
|
|
5833
|
-
|
|
5899
|
+
function(module3, exports3) {
|
|
5900
|
+
"use strict";
|
|
5901
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
5834
5902
|
function assert(condition, message) {
|
|
5835
5903
|
if (!condition) {
|
|
5836
5904
|
throw new Error("ASSERT: " + message);
|
|
5837
5905
|
}
|
|
5838
5906
|
}
|
|
5839
|
-
|
|
5907
|
+
exports3.assert = assert;
|
|
5840
5908
|
},
|
|
5841
5909
|
/* 10 */
|
|
5842
5910
|
/***/
|
|
5843
|
-
function(
|
|
5844
|
-
|
|
5911
|
+
function(module3, exports3) {
|
|
5912
|
+
"use strict";
|
|
5913
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
5845
5914
|
var ErrorHandler = (function() {
|
|
5846
5915
|
function ErrorHandler2() {
|
|
5847
5916
|
this.errors = [];
|
|
@@ -5890,13 +5959,14 @@ var require_esprima = __commonJS({
|
|
|
5890
5959
|
};
|
|
5891
5960
|
return ErrorHandler2;
|
|
5892
5961
|
})();
|
|
5893
|
-
|
|
5962
|
+
exports3.ErrorHandler = ErrorHandler;
|
|
5894
5963
|
},
|
|
5895
5964
|
/* 11 */
|
|
5896
5965
|
/***/
|
|
5897
|
-
function(
|
|
5898
|
-
|
|
5899
|
-
|
|
5966
|
+
function(module3, exports3) {
|
|
5967
|
+
"use strict";
|
|
5968
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
5969
|
+
exports3.Messages = {
|
|
5900
5970
|
BadGetterArity: "Getter must not have any formal parameters",
|
|
5901
5971
|
BadSetterArity: "Setter must have exactly one formal parameter",
|
|
5902
5972
|
BadSetterRestParameter: "Setter function argument must not be a rest parameter",
|
|
@@ -5959,8 +6029,9 @@ var require_esprima = __commonJS({
|
|
|
5959
6029
|
},
|
|
5960
6030
|
/* 12 */
|
|
5961
6031
|
/***/
|
|
5962
|
-
function(
|
|
5963
|
-
|
|
6032
|
+
function(module3, exports3, __webpack_require__) {
|
|
6033
|
+
"use strict";
|
|
6034
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
5964
6035
|
var assert_1 = __webpack_require__(9);
|
|
5965
6036
|
var character_1 = __webpack_require__(4);
|
|
5966
6037
|
var messages_1 = __webpack_require__(11);
|
|
@@ -6985,59 +7056,61 @@ var require_esprima = __commonJS({
|
|
|
6985
7056
|
};
|
|
6986
7057
|
return Scanner2;
|
|
6987
7058
|
})();
|
|
6988
|
-
|
|
7059
|
+
exports3.Scanner = Scanner;
|
|
6989
7060
|
},
|
|
6990
7061
|
/* 13 */
|
|
6991
7062
|
/***/
|
|
6992
|
-
function(
|
|
6993
|
-
|
|
6994
|
-
|
|
6995
|
-
|
|
7063
|
+
function(module3, exports3) {
|
|
7064
|
+
"use strict";
|
|
7065
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
7066
|
+
exports3.TokenName = {};
|
|
7067
|
+
exports3.TokenName[
|
|
6996
7068
|
1
|
|
6997
7069
|
/* BooleanLiteral */
|
|
6998
7070
|
] = "Boolean";
|
|
6999
|
-
|
|
7071
|
+
exports3.TokenName[
|
|
7000
7072
|
2
|
|
7001
7073
|
/* EOF */
|
|
7002
7074
|
] = "<end>";
|
|
7003
|
-
|
|
7075
|
+
exports3.TokenName[
|
|
7004
7076
|
3
|
|
7005
7077
|
/* Identifier */
|
|
7006
7078
|
] = "Identifier";
|
|
7007
|
-
|
|
7079
|
+
exports3.TokenName[
|
|
7008
7080
|
4
|
|
7009
7081
|
/* Keyword */
|
|
7010
7082
|
] = "Keyword";
|
|
7011
|
-
|
|
7083
|
+
exports3.TokenName[
|
|
7012
7084
|
5
|
|
7013
7085
|
/* NullLiteral */
|
|
7014
7086
|
] = "Null";
|
|
7015
|
-
|
|
7087
|
+
exports3.TokenName[
|
|
7016
7088
|
6
|
|
7017
7089
|
/* NumericLiteral */
|
|
7018
7090
|
] = "Numeric";
|
|
7019
|
-
|
|
7091
|
+
exports3.TokenName[
|
|
7020
7092
|
7
|
|
7021
7093
|
/* Punctuator */
|
|
7022
7094
|
] = "Punctuator";
|
|
7023
|
-
|
|
7095
|
+
exports3.TokenName[
|
|
7024
7096
|
8
|
|
7025
7097
|
/* StringLiteral */
|
|
7026
7098
|
] = "String";
|
|
7027
|
-
|
|
7099
|
+
exports3.TokenName[
|
|
7028
7100
|
9
|
|
7029
7101
|
/* RegularExpression */
|
|
7030
7102
|
] = "RegularExpression";
|
|
7031
|
-
|
|
7103
|
+
exports3.TokenName[
|
|
7032
7104
|
10
|
|
7033
7105
|
/* Template */
|
|
7034
7106
|
] = "Template";
|
|
7035
7107
|
},
|
|
7036
7108
|
/* 14 */
|
|
7037
7109
|
/***/
|
|
7038
|
-
function(
|
|
7039
|
-
|
|
7040
|
-
|
|
7110
|
+
function(module3, exports3) {
|
|
7111
|
+
"use strict";
|
|
7112
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
7113
|
+
exports3.XHTMLEntities = {
|
|
7041
7114
|
quot: '"',
|
|
7042
7115
|
amp: "&",
|
|
7043
7116
|
apos: "'",
|
|
@@ -7294,8 +7367,9 @@ var require_esprima = __commonJS({
|
|
|
7294
7367
|
},
|
|
7295
7368
|
/* 15 */
|
|
7296
7369
|
/***/
|
|
7297
|
-
function(
|
|
7298
|
-
|
|
7370
|
+
function(module3, exports3, __webpack_require__) {
|
|
7371
|
+
"use strict";
|
|
7372
|
+
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
7299
7373
|
var error_handler_1 = __webpack_require__(10);
|
|
7300
7374
|
var scanner_1 = __webpack_require__(12);
|
|
7301
7375
|
var token_1 = __webpack_require__(13);
|
|
@@ -7386,6 +7460,8 @@ var require_esprima = __commonJS({
|
|
|
7386
7460
|
regex = check ? !this.beforeFunctionExpression(check) : true;
|
|
7387
7461
|
}
|
|
7388
7462
|
break;
|
|
7463
|
+
default:
|
|
7464
|
+
break;
|
|
7389
7465
|
}
|
|
7390
7466
|
return regex;
|
|
7391
7467
|
};
|
|
@@ -7477,7 +7553,7 @@ var require_esprima = __commonJS({
|
|
|
7477
7553
|
};
|
|
7478
7554
|
return Tokenizer2;
|
|
7479
7555
|
})();
|
|
7480
|
-
|
|
7556
|
+
exports3.Tokenizer = Tokenizer;
|
|
7481
7557
|
}
|
|
7482
7558
|
/******/
|
|
7483
7559
|
])
|
|
@@ -7488,68 +7564,69 @@ var require_esprima = __commonJS({
|
|
|
7488
7564
|
|
|
7489
7565
|
// ../../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js
|
|
7490
7566
|
var require_util = __commonJS({
|
|
7491
|
-
"../../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js"(
|
|
7567
|
+
"../../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js"(exports2) {
|
|
7568
|
+
"use strict";
|
|
7492
7569
|
function isArray(arg) {
|
|
7493
7570
|
if (Array.isArray) {
|
|
7494
7571
|
return Array.isArray(arg);
|
|
7495
7572
|
}
|
|
7496
7573
|
return objectToString(arg) === "[object Array]";
|
|
7497
7574
|
}
|
|
7498
|
-
|
|
7575
|
+
exports2.isArray = isArray;
|
|
7499
7576
|
function isBoolean(arg) {
|
|
7500
7577
|
return typeof arg === "boolean";
|
|
7501
7578
|
}
|
|
7502
|
-
|
|
7579
|
+
exports2.isBoolean = isBoolean;
|
|
7503
7580
|
function isNull(arg) {
|
|
7504
7581
|
return arg === null;
|
|
7505
7582
|
}
|
|
7506
|
-
|
|
7583
|
+
exports2.isNull = isNull;
|
|
7507
7584
|
function isNullOrUndefined(arg) {
|
|
7508
7585
|
return arg == null;
|
|
7509
7586
|
}
|
|
7510
|
-
|
|
7587
|
+
exports2.isNullOrUndefined = isNullOrUndefined;
|
|
7511
7588
|
function isNumber(arg) {
|
|
7512
7589
|
return typeof arg === "number";
|
|
7513
7590
|
}
|
|
7514
|
-
|
|
7591
|
+
exports2.isNumber = isNumber;
|
|
7515
7592
|
function isString(arg) {
|
|
7516
7593
|
return typeof arg === "string";
|
|
7517
7594
|
}
|
|
7518
|
-
|
|
7595
|
+
exports2.isString = isString;
|
|
7519
7596
|
function isSymbol(arg) {
|
|
7520
7597
|
return typeof arg === "symbol";
|
|
7521
7598
|
}
|
|
7522
|
-
|
|
7599
|
+
exports2.isSymbol = isSymbol;
|
|
7523
7600
|
function isUndefined(arg) {
|
|
7524
7601
|
return arg === void 0;
|
|
7525
7602
|
}
|
|
7526
|
-
|
|
7603
|
+
exports2.isUndefined = isUndefined;
|
|
7527
7604
|
function isRegExp(re) {
|
|
7528
7605
|
return objectToString(re) === "[object RegExp]";
|
|
7529
7606
|
}
|
|
7530
|
-
|
|
7607
|
+
exports2.isRegExp = isRegExp;
|
|
7531
7608
|
function isObject(arg) {
|
|
7532
7609
|
return typeof arg === "object" && arg !== null;
|
|
7533
7610
|
}
|
|
7534
|
-
|
|
7611
|
+
exports2.isObject = isObject;
|
|
7535
7612
|
function isDate(d) {
|
|
7536
7613
|
return objectToString(d) === "[object Date]";
|
|
7537
7614
|
}
|
|
7538
|
-
|
|
7615
|
+
exports2.isDate = isDate;
|
|
7539
7616
|
function isError(e) {
|
|
7540
7617
|
return objectToString(e) === "[object Error]" || e instanceof Error;
|
|
7541
7618
|
}
|
|
7542
|
-
|
|
7619
|
+
exports2.isError = isError;
|
|
7543
7620
|
function isFunction(arg) {
|
|
7544
7621
|
return typeof arg === "function";
|
|
7545
7622
|
}
|
|
7546
|
-
|
|
7623
|
+
exports2.isFunction = isFunction;
|
|
7547
7624
|
function isPrimitive(arg) {
|
|
7548
7625
|
return arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || typeof arg === "symbol" || // ES6 symbol
|
|
7549
7626
|
typeof arg === "undefined";
|
|
7550
7627
|
}
|
|
7551
|
-
|
|
7552
|
-
|
|
7628
|
+
exports2.isPrimitive = isPrimitive;
|
|
7629
|
+
exports2.isBuffer = require("buffer").Buffer.isBuffer;
|
|
7553
7630
|
function objectToString(o) {
|
|
7554
7631
|
return Object.prototype.toString.call(o);
|
|
7555
7632
|
}
|
|
@@ -7558,7 +7635,8 @@ var require_util = __commonJS({
|
|
|
7558
7635
|
|
|
7559
7636
|
// ../../node_modules/.pnpm/array-timsort@1.0.3/node_modules/array-timsort/src/index.js
|
|
7560
7637
|
var require_src = __commonJS({
|
|
7561
|
-
"../../node_modules/.pnpm/array-timsort@1.0.3/node_modules/array-timsort/src/index.js"(
|
|
7638
|
+
"../../node_modules/.pnpm/array-timsort@1.0.3/node_modules/array-timsort/src/index.js"(exports2, module2) {
|
|
7639
|
+
"use strict";
|
|
7562
7640
|
var DEFAULT_MIN_MERGE = 32;
|
|
7563
7641
|
var DEFAULT_MIN_GALLOPING = 7;
|
|
7564
7642
|
var DEFAULT_TMP_STORAGE_LENGTH = 256;
|
|
@@ -8265,7 +8343,7 @@ var require_src = __commonJS({
|
|
|
8265
8343
|
ts.forceMergeRuns();
|
|
8266
8344
|
return results;
|
|
8267
8345
|
}
|
|
8268
|
-
|
|
8346
|
+
module2.exports = {
|
|
8269
8347
|
sort
|
|
8270
8348
|
};
|
|
8271
8349
|
}
|
|
@@ -8273,7 +8351,8 @@ var require_src = __commonJS({
|
|
|
8273
8351
|
|
|
8274
8352
|
// ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/common.js
|
|
8275
8353
|
var require_common = __commonJS({
|
|
8276
|
-
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/common.js"(
|
|
8354
|
+
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/common.js"(exports2, module2) {
|
|
8355
|
+
"use strict";
|
|
8277
8356
|
var {
|
|
8278
8357
|
isObject,
|
|
8279
8358
|
isArray,
|
|
@@ -8392,7 +8471,7 @@ var require_common = __commonJS({
|
|
|
8392
8471
|
return target;
|
|
8393
8472
|
};
|
|
8394
8473
|
var is_raw_json = isFunction(JSON.isRawJSON) ? JSON.isRawJSON : () => false;
|
|
8395
|
-
|
|
8474
|
+
module2.exports = {
|
|
8396
8475
|
PROP_SYMBOL_PREFIXES,
|
|
8397
8476
|
PREFIX_BEFORE,
|
|
8398
8477
|
PREFIX_AFTER_PROP,
|
|
@@ -8573,7 +8652,8 @@ var require_common = __commonJS({
|
|
|
8573
8652
|
|
|
8574
8653
|
// ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/array.js
|
|
8575
8654
|
var require_array = __commonJS({
|
|
8576
|
-
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/array.js"(
|
|
8655
|
+
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/array.js"(exports2, module2) {
|
|
8656
|
+
"use strict";
|
|
8577
8657
|
var { isArray } = require_util();
|
|
8578
8658
|
var { sort } = require_src();
|
|
8579
8659
|
var {
|
|
@@ -8749,7 +8829,7 @@ var require_array = __commonJS({
|
|
|
8749
8829
|
return this;
|
|
8750
8830
|
}
|
|
8751
8831
|
};
|
|
8752
|
-
|
|
8832
|
+
module2.exports = {
|
|
8753
8833
|
CommentArray
|
|
8754
8834
|
};
|
|
8755
8835
|
}
|
|
@@ -8757,7 +8837,8 @@ var require_array = __commonJS({
|
|
|
8757
8837
|
|
|
8758
8838
|
// ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/parse.js
|
|
8759
8839
|
var require_parse = __commonJS({
|
|
8760
|
-
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/parse.js"(
|
|
8840
|
+
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/parse.js"(exports2, module2) {
|
|
8841
|
+
"use strict";
|
|
8761
8842
|
var esprima = require_esprima();
|
|
8762
8843
|
var {
|
|
8763
8844
|
CommentArray
|
|
@@ -9066,7 +9147,7 @@ var require_parse = __commonJS({
|
|
|
9066
9147
|
free();
|
|
9067
9148
|
return result;
|
|
9068
9149
|
};
|
|
9069
|
-
|
|
9150
|
+
module2.exports = {
|
|
9070
9151
|
parse: parse3,
|
|
9071
9152
|
tokenize
|
|
9072
9153
|
};
|
|
@@ -9075,7 +9156,8 @@ var require_parse = __commonJS({
|
|
|
9075
9156
|
|
|
9076
9157
|
// ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/stringify.js
|
|
9077
9158
|
var require_stringify = __commonJS({
|
|
9078
|
-
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/stringify.js"(
|
|
9159
|
+
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/stringify.js"(exports2, module2) {
|
|
9160
|
+
"use strict";
|
|
9079
9161
|
var {
|
|
9080
9162
|
isArray,
|
|
9081
9163
|
isObject,
|
|
@@ -9243,6 +9325,8 @@ var require_stringify = __commonJS({
|
|
|
9243
9325
|
return value.rawJSON;
|
|
9244
9326
|
}
|
|
9245
9327
|
return isArray(value) ? array_stringify(value, gap) : object_stringify(value, gap);
|
|
9328
|
+
// undefined
|
|
9329
|
+
default:
|
|
9246
9330
|
}
|
|
9247
9331
|
}
|
|
9248
9332
|
var get_indent = (space) => isString(space) ? space : isNumber(space) ? SPACE.repeat(space) : EMPTY;
|
|
@@ -9259,7 +9343,7 @@ var require_stringify = __commonJS({
|
|
|
9259
9343
|
const str = toString.call(subject);
|
|
9260
9344
|
return PRIMITIVE_OBJECT_TYPES.includes(str);
|
|
9261
9345
|
};
|
|
9262
|
-
|
|
9346
|
+
module2.exports = (value, replacer_, space) => {
|
|
9263
9347
|
const indent_ = get_indent(space);
|
|
9264
9348
|
if (!indent_) {
|
|
9265
9349
|
return JSON.stringify(value, replacer_);
|
|
@@ -9278,7 +9362,8 @@ var require_stringify = __commonJS({
|
|
|
9278
9362
|
|
|
9279
9363
|
// ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/index.js
|
|
9280
9364
|
var require_src2 = __commonJS({
|
|
9281
|
-
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/index.js"(
|
|
9365
|
+
"../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/index.js"(exports2, module2) {
|
|
9366
|
+
"use strict";
|
|
9282
9367
|
var { parse: parse3, tokenize } = require_parse();
|
|
9283
9368
|
var stringify3 = require_stringify();
|
|
9284
9369
|
var { CommentArray } = require_array();
|
|
@@ -9294,7 +9379,7 @@ var require_src2 = __commonJS({
|
|
|
9294
9379
|
moveComments,
|
|
9295
9380
|
removeComments
|
|
9296
9381
|
} = require_common();
|
|
9297
|
-
|
|
9382
|
+
module2.exports = {
|
|
9298
9383
|
PREFIX_BEFORE,
|
|
9299
9384
|
PREFIX_AFTER_PROP,
|
|
9300
9385
|
PREFIX_AFTER_COLON,
|
|
@@ -9598,6 +9683,7 @@ function syntaxError(message) {
|
|
|
9598
9683
|
var Space_Separator, ID_Start, ID_Continue, unicode, util, source, parseState, stack, pos, line, column, token, key, root, parse, lexState, buffer, doubleQuote, sign, c, lexStates, parseStates, stringify, JSON5, lib, dist_default;
|
|
9599
9684
|
var init_dist = __esm({
|
|
9600
9685
|
"../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/dist/index.mjs"() {
|
|
9686
|
+
"use strict";
|
|
9601
9687
|
Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
|
|
9602
9688
|
ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
|
|
9603
9689
|
ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
|
|
@@ -10238,7 +10324,7 @@ var init_dist = __esm({
|
|
|
10238
10324
|
return "false";
|
|
10239
10325
|
}
|
|
10240
10326
|
if (typeof value2 === "string") {
|
|
10241
|
-
return quoteString(value2);
|
|
10327
|
+
return quoteString(value2, false);
|
|
10242
10328
|
}
|
|
10243
10329
|
if (typeof value2 === "number") {
|
|
10244
10330
|
return String(value2);
|
|
@@ -10337,15 +10423,15 @@ var init_dist = __esm({
|
|
|
10337
10423
|
}
|
|
10338
10424
|
function serializeKey(key2) {
|
|
10339
10425
|
if (key2.length === 0) {
|
|
10340
|
-
return quoteString(key2);
|
|
10426
|
+
return quoteString(key2, true);
|
|
10341
10427
|
}
|
|
10342
10428
|
const firstChar = String.fromCodePoint(key2.codePointAt(0));
|
|
10343
10429
|
if (!util.isIdStartChar(firstChar)) {
|
|
10344
|
-
return quoteString(key2);
|
|
10430
|
+
return quoteString(key2, true);
|
|
10345
10431
|
}
|
|
10346
10432
|
for (let i = firstChar.length; i < key2.length; i++) {
|
|
10347
10433
|
if (!util.isIdContinueChar(String.fromCodePoint(key2.codePointAt(i)))) {
|
|
10348
|
-
return quoteString(key2);
|
|
10434
|
+
return quoteString(key2, true);
|
|
10349
10435
|
}
|
|
10350
10436
|
}
|
|
10351
10437
|
return key2;
|
|
@@ -10474,6 +10560,7 @@ function detectIndent(text) {
|
|
|
10474
10560
|
var import_comment_json;
|
|
10475
10561
|
var init_jsonTools = __esm({
|
|
10476
10562
|
"../../packages/serviceme-core/src/json/jsonTools.ts"() {
|
|
10563
|
+
"use strict";
|
|
10477
10564
|
init_src();
|
|
10478
10565
|
import_comment_json = __toESM(require_src2());
|
|
10479
10566
|
init_dist();
|
|
@@ -10520,6 +10607,7 @@ function createConsoleLogger(prefix = "serviceme") {
|
|
|
10520
10607
|
var noopLogger;
|
|
10521
10608
|
var init_logger = __esm({
|
|
10522
10609
|
"../../packages/serviceme-core/src/logger.ts"() {
|
|
10610
|
+
"use strict";
|
|
10523
10611
|
noopLogger = {
|
|
10524
10612
|
debug() {
|
|
10525
10613
|
},
|
|
@@ -10535,8 +10623,9 @@ var init_logger = __esm({
|
|
|
10535
10623
|
|
|
10536
10624
|
// ../../node_modules/.pnpm/pend@1.2.0/node_modules/pend/index.js
|
|
10537
10625
|
var require_pend = __commonJS({
|
|
10538
|
-
"../../node_modules/.pnpm/pend@1.2.0/node_modules/pend/index.js"(
|
|
10539
|
-
|
|
10626
|
+
"../../node_modules/.pnpm/pend@1.2.0/node_modules/pend/index.js"(exports2, module2) {
|
|
10627
|
+
"use strict";
|
|
10628
|
+
module2.exports = Pend;
|
|
10540
10629
|
function Pend() {
|
|
10541
10630
|
this.pending = 0;
|
|
10542
10631
|
this.max = Infinity;
|
|
@@ -10590,19 +10679,20 @@ var require_pend = __commonJS({
|
|
|
10590
10679
|
|
|
10591
10680
|
// ../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/fd-slicer.js
|
|
10592
10681
|
var require_fd_slicer = __commonJS({
|
|
10593
|
-
"../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/fd-slicer.js"(
|
|
10594
|
-
|
|
10595
|
-
var
|
|
10596
|
-
var
|
|
10682
|
+
"../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/fd-slicer.js"(exports2) {
|
|
10683
|
+
"use strict";
|
|
10684
|
+
var fs19 = require("fs");
|
|
10685
|
+
var util2 = require("util");
|
|
10686
|
+
var stream = require("stream");
|
|
10597
10687
|
var Readable = stream.Readable;
|
|
10598
10688
|
var Writable = stream.Writable;
|
|
10599
10689
|
var PassThrough = stream.PassThrough;
|
|
10600
10690
|
var Pend = require_pend();
|
|
10601
|
-
var EventEmitter =
|
|
10602
|
-
|
|
10603
|
-
|
|
10604
|
-
|
|
10605
|
-
|
|
10691
|
+
var EventEmitter = require("events").EventEmitter;
|
|
10692
|
+
exports2.createFromBuffer = createFromBuffer;
|
|
10693
|
+
exports2.createFromFd = createFromFd;
|
|
10694
|
+
exports2.BufferSlicer = BufferSlicer;
|
|
10695
|
+
exports2.FdSlicer = FdSlicer;
|
|
10606
10696
|
util2.inherits(FdSlicer, EventEmitter);
|
|
10607
10697
|
function FdSlicer(fd, options2) {
|
|
10608
10698
|
options2 = options2 || {};
|
|
@@ -10860,8 +10950,9 @@ var require_fd_slicer = __commonJS({
|
|
|
10860
10950
|
|
|
10861
10951
|
// ../../node_modules/.pnpm/buffer-crc32@0.2.13/node_modules/buffer-crc32/index.js
|
|
10862
10952
|
var require_buffer_crc32 = __commonJS({
|
|
10863
|
-
"../../node_modules/.pnpm/buffer-crc32@0.2.13/node_modules/buffer-crc32/index.js"(
|
|
10864
|
-
|
|
10953
|
+
"../../node_modules/.pnpm/buffer-crc32@0.2.13/node_modules/buffer-crc32/index.js"(exports2, module2) {
|
|
10954
|
+
"use strict";
|
|
10955
|
+
var Buffer2 = require("buffer").Buffer;
|
|
10865
10956
|
var CRC_TABLE = [
|
|
10866
10957
|
0,
|
|
10867
10958
|
1996959894,
|
|
@@ -11161,35 +11252,36 @@ var require_buffer_crc32 = __commonJS({
|
|
|
11161
11252
|
crc32.unsigned = function() {
|
|
11162
11253
|
return _crc32.apply(null, arguments) >>> 0;
|
|
11163
11254
|
};
|
|
11164
|
-
|
|
11255
|
+
module2.exports = crc32;
|
|
11165
11256
|
}
|
|
11166
11257
|
});
|
|
11167
11258
|
|
|
11168
11259
|
// ../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/index.js
|
|
11169
11260
|
var require_yauzl = __commonJS({
|
|
11170
|
-
"../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/index.js"(
|
|
11171
|
-
|
|
11172
|
-
var
|
|
11261
|
+
"../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/index.js"(exports2) {
|
|
11262
|
+
"use strict";
|
|
11263
|
+
var fs19 = require("fs");
|
|
11264
|
+
var zlib = require("zlib");
|
|
11173
11265
|
var fd_slicer = require_fd_slicer();
|
|
11174
11266
|
var crc32 = require_buffer_crc32();
|
|
11175
|
-
var util2 =
|
|
11176
|
-
var EventEmitter =
|
|
11177
|
-
var Transform =
|
|
11178
|
-
var PassThrough =
|
|
11179
|
-
var Writable =
|
|
11180
|
-
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
|
|
11184
|
-
|
|
11185
|
-
|
|
11186
|
-
|
|
11187
|
-
|
|
11188
|
-
|
|
11189
|
-
|
|
11190
|
-
|
|
11191
|
-
|
|
11192
|
-
function
|
|
11267
|
+
var util2 = require("util");
|
|
11268
|
+
var EventEmitter = require("events").EventEmitter;
|
|
11269
|
+
var Transform = require("stream").Transform;
|
|
11270
|
+
var PassThrough = require("stream").PassThrough;
|
|
11271
|
+
var Writable = require("stream").Writable;
|
|
11272
|
+
exports2.open = open;
|
|
11273
|
+
exports2.fromFd = fromFd;
|
|
11274
|
+
exports2.fromBuffer = fromBuffer;
|
|
11275
|
+
exports2.fromRandomAccessReader = fromRandomAccessReader;
|
|
11276
|
+
exports2.dosDateTimeToDate = dosDateTimeToDate;
|
|
11277
|
+
exports2.getFileNameLowLevel = getFileNameLowLevel;
|
|
11278
|
+
exports2.validateFileName = validateFileName;
|
|
11279
|
+
exports2.parseExtraFields = parseExtraFields;
|
|
11280
|
+
exports2.ZipFile = ZipFile;
|
|
11281
|
+
exports2.Entry = Entry;
|
|
11282
|
+
exports2.LocalFileHeader = LocalFileHeader;
|
|
11283
|
+
exports2.RandomAccessReader = RandomAccessReader;
|
|
11284
|
+
function open(path15, options2, callback) {
|
|
11193
11285
|
if (typeof options2 === "function") {
|
|
11194
11286
|
callback = options2;
|
|
11195
11287
|
options2 = null;
|
|
@@ -11527,6 +11619,7 @@ var require_yauzl = __commonJS({
|
|
|
11527
11619
|
};
|
|
11528
11620
|
ZipFile.prototype.openReadStreamLowLevel = function(fileDataStart, compressedSize, relativeStart, relativeEnd, decompress, uncompressedSize, callback) {
|
|
11529
11621
|
var self = this;
|
|
11622
|
+
var fileDataEnd = fileDataStart + compressedSize;
|
|
11530
11623
|
var readStream = self.reader.createReadStream({
|
|
11531
11624
|
start: fileDataStart + relativeStart,
|
|
11532
11625
|
end: fileDataStart + relativeEnd
|
|
@@ -11904,111 +11997,106 @@ var require_yauzl = __commonJS({
|
|
|
11904
11997
|
}
|
|
11905
11998
|
}
|
|
11906
11999
|
});
|
|
11907
|
-
|
|
12000
|
+
|
|
12001
|
+
// ../../packages/serviceme-core/src/utils/fileUtils.ts
|
|
12002
|
+
var import_node_fs, import_promises, import_node_path, import_yauzl, unzipFile, tryLstat, mergeEntry, moveFiles;
|
|
11908
12003
|
var init_fileUtils = __esm({
|
|
11909
12004
|
"../../packages/serviceme-core/src/utils/fileUtils.ts"() {
|
|
12005
|
+
"use strict";
|
|
12006
|
+
import_node_fs = require("fs");
|
|
12007
|
+
import_promises = require("fs/promises");
|
|
12008
|
+
import_node_path = require("path");
|
|
11910
12009
|
import_yauzl = __toESM(require_yauzl());
|
|
11911
12010
|
unzipFile = (zipPath, dest) => {
|
|
11912
12011
|
return new Promise((resolve, reject) => {
|
|
11913
|
-
(
|
|
11914
|
-
|
|
11915
|
-
|
|
11916
|
-
(
|
|
11917
|
-
|
|
11918
|
-
if (
|
|
11919
|
-
|
|
11920
|
-
|
|
11921
|
-
|
|
11922
|
-
|
|
11923
|
-
|
|
11924
|
-
|
|
11925
|
-
|
|
11926
|
-
|
|
11927
|
-
|
|
11928
|
-
|
|
11929
|
-
entry
|
|
11930
|
-
(
|
|
11931
|
-
|
|
11932
|
-
|
|
11933
|
-
|
|
11934
|
-
|
|
11935
|
-
|
|
11936
|
-
|
|
11937
|
-
|
|
11938
|
-
|
|
11939
|
-
|
|
11940
|
-
|
|
11941
|
-
|
|
11942
|
-
|
|
11943
|
-
|
|
11944
|
-
|
|
11945
|
-
|
|
11946
|
-
|
|
11947
|
-
|
|
11948
|
-
|
|
11949
|
-
resolve();
|
|
11950
|
-
});
|
|
11951
|
-
zipfile.on("error", (zipError) => {
|
|
11952
|
-
reject(zipError);
|
|
11953
|
-
});
|
|
11954
|
-
}
|
|
11955
|
-
);
|
|
12012
|
+
import_yauzl.default.open(zipPath, { lazyEntries: true }, (err, zipfile) => {
|
|
12013
|
+
if (err) return reject(err);
|
|
12014
|
+
if (!zipfile) return reject(new Error("Failed to open zip file."));
|
|
12015
|
+
zipfile.readEntry();
|
|
12016
|
+
zipfile.on("entry", (entry) => {
|
|
12017
|
+
if (/\/$/.test(entry.fileName)) {
|
|
12018
|
+
void (0, import_promises.mkdir)((0, import_node_path.join)(dest, entry.fileName), { recursive: true }).then(() => {
|
|
12019
|
+
zipfile.readEntry();
|
|
12020
|
+
}).catch(reject);
|
|
12021
|
+
} else {
|
|
12022
|
+
const outputPath = (0, import_node_path.join)(dest, entry.fileName);
|
|
12023
|
+
void (0, import_promises.mkdir)((0, import_node_path.dirname)(outputPath), { recursive: true }).then(() => {
|
|
12024
|
+
zipfile.openReadStream(
|
|
12025
|
+
entry,
|
|
12026
|
+
(streamError, readStream) => {
|
|
12027
|
+
if (streamError) return reject(streamError);
|
|
12028
|
+
if (!readStream) return reject(new Error("Failed to open zip entry stream."));
|
|
12029
|
+
const writeStream = (0, import_node_fs.createWriteStream)(outputPath);
|
|
12030
|
+
readStream.on("error", reject);
|
|
12031
|
+
writeStream.on("error", reject);
|
|
12032
|
+
writeStream.on("close", () => {
|
|
12033
|
+
zipfile.readEntry();
|
|
12034
|
+
});
|
|
12035
|
+
readStream.pipe(writeStream);
|
|
12036
|
+
}
|
|
12037
|
+
);
|
|
12038
|
+
}).catch(reject);
|
|
12039
|
+
}
|
|
12040
|
+
});
|
|
12041
|
+
zipfile.on("end", () => {
|
|
12042
|
+
resolve();
|
|
12043
|
+
});
|
|
12044
|
+
zipfile.on("error", (zipError) => {
|
|
12045
|
+
reject(zipError);
|
|
12046
|
+
});
|
|
12047
|
+
});
|
|
11956
12048
|
});
|
|
11957
12049
|
};
|
|
11958
12050
|
tryLstat = async (targetPath) => {
|
|
11959
12051
|
try {
|
|
11960
|
-
return await
|
|
12052
|
+
return await (0, import_promises.lstat)(targetPath);
|
|
11961
12053
|
} catch {
|
|
11962
12054
|
return null;
|
|
11963
12055
|
}
|
|
11964
12056
|
};
|
|
11965
12057
|
mergeEntry = async (sourcePath, destPath, overwrite) => {
|
|
11966
|
-
const sourceStat = await
|
|
12058
|
+
const sourceStat = await (0, import_promises.lstat)(sourcePath);
|
|
11967
12059
|
const destStat = await tryLstat(destPath);
|
|
11968
12060
|
if (sourceStat.isDirectory()) {
|
|
11969
12061
|
if (destStat && !destStat.isDirectory()) {
|
|
11970
12062
|
if (!overwrite) {
|
|
11971
|
-
await
|
|
12063
|
+
await (0, import_promises.rm)(sourcePath, { recursive: true, force: true });
|
|
11972
12064
|
return;
|
|
11973
12065
|
}
|
|
11974
|
-
await
|
|
12066
|
+
await (0, import_promises.rm)(destPath, { recursive: true, force: true });
|
|
11975
12067
|
}
|
|
11976
|
-
await
|
|
11977
|
-
const children = await
|
|
12068
|
+
await (0, import_promises.mkdir)(destPath, { recursive: true });
|
|
12069
|
+
const children = await (0, import_promises.readdir)(sourcePath);
|
|
11978
12070
|
for (const child of children) {
|
|
11979
|
-
await mergeEntry(
|
|
11980
|
-
path11.join(sourcePath, child),
|
|
11981
|
-
path11.join(destPath, child),
|
|
11982
|
-
overwrite
|
|
11983
|
-
);
|
|
12071
|
+
await mergeEntry((0, import_node_path.join)(sourcePath, child), (0, import_node_path.join)(destPath, child), overwrite);
|
|
11984
12072
|
}
|
|
11985
|
-
await
|
|
12073
|
+
await (0, import_promises.rm)(sourcePath, { recursive: true, force: true });
|
|
11986
12074
|
return;
|
|
11987
12075
|
}
|
|
11988
12076
|
if (destStat) {
|
|
11989
12077
|
if (!overwrite) {
|
|
11990
|
-
await
|
|
12078
|
+
await (0, import_promises.rm)(sourcePath, { recursive: true, force: true });
|
|
11991
12079
|
return;
|
|
11992
12080
|
}
|
|
11993
|
-
await
|
|
12081
|
+
await (0, import_promises.rm)(destPath, { recursive: true, force: true });
|
|
11994
12082
|
}
|
|
11995
12083
|
try {
|
|
11996
|
-
await
|
|
12084
|
+
await (0, import_promises.rename)(sourcePath, destPath);
|
|
11997
12085
|
} catch {
|
|
11998
|
-
await
|
|
11999
|
-
await
|
|
12086
|
+
await (0, import_promises.copyFile)(sourcePath, destPath);
|
|
12087
|
+
await (0, import_promises.rm)(sourcePath, { recursive: true, force: true });
|
|
12000
12088
|
}
|
|
12001
12089
|
};
|
|
12002
12090
|
moveFiles = async (sourceDir, destDir, overwrite = false) => {
|
|
12003
|
-
await
|
|
12004
|
-
const files = await
|
|
12091
|
+
await (0, import_promises.mkdir)(destDir, { recursive: true });
|
|
12092
|
+
const files = await (0, import_promises.readdir)(sourceDir);
|
|
12005
12093
|
for (const file of files) {
|
|
12006
|
-
const sourceFile =
|
|
12007
|
-
const destFile =
|
|
12094
|
+
const sourceFile = (0, import_node_path.join)(sourceDir, file);
|
|
12095
|
+
const destFile = (0, import_node_path.join)(destDir, file);
|
|
12008
12096
|
if (!overwrite) {
|
|
12009
12097
|
try {
|
|
12010
|
-
await
|
|
12011
|
-
await
|
|
12098
|
+
await (0, import_promises.access)(destFile, import_node_fs.constants.F_OK);
|
|
12099
|
+
await (0, import_promises.rm)(sourceFile, { recursive: true, force: true });
|
|
12012
12100
|
continue;
|
|
12013
12101
|
} catch {
|
|
12014
12102
|
}
|
|
@@ -12018,22 +12106,27 @@ var init_fileUtils = __esm({
|
|
|
12018
12106
|
};
|
|
12019
12107
|
}
|
|
12020
12108
|
});
|
|
12109
|
+
|
|
12110
|
+
// ../../packages/serviceme-core/src/project/projectTools.ts
|
|
12021
12111
|
function createProjectTools() {
|
|
12022
12112
|
return new ProjectTools();
|
|
12023
12113
|
}
|
|
12024
|
-
var ProjectTools;
|
|
12114
|
+
var fs3, path3, ProjectTools;
|
|
12025
12115
|
var init_projectTools = __esm({
|
|
12026
12116
|
"../../packages/serviceme-core/src/project/projectTools.ts"() {
|
|
12117
|
+
"use strict";
|
|
12118
|
+
fs3 = __toESM(require("fs/promises"));
|
|
12119
|
+
path3 = __toESM(require("path"));
|
|
12027
12120
|
init_src();
|
|
12028
12121
|
init_runCommand();
|
|
12029
12122
|
init_fileUtils();
|
|
12030
12123
|
ProjectTools = class {
|
|
12031
12124
|
async extractTemplate(zipPath, workspacePath, tempExtractDir, input) {
|
|
12032
12125
|
await unzipFile(zipPath, tempExtractDir);
|
|
12033
|
-
let sourceDir =
|
|
12126
|
+
let sourceDir = path3.join(tempExtractDir, input.extractedDirName);
|
|
12034
12127
|
let actualDirName = input.extractedDirName;
|
|
12035
12128
|
if (!await this.pathExists(sourceDir)) {
|
|
12036
|
-
const entries = await
|
|
12129
|
+
const entries = await fs3.readdir(tempExtractDir, { withFileTypes: true });
|
|
12037
12130
|
const directories = entries.filter(
|
|
12038
12131
|
(entry) => entry.isDirectory() && !entry.name.startsWith(".")
|
|
12039
12132
|
);
|
|
@@ -12045,7 +12138,7 @@ var init_projectTools = __esm({
|
|
|
12045
12138
|
);
|
|
12046
12139
|
if (selectedDirectory) {
|
|
12047
12140
|
actualDirName = selectedDirectory;
|
|
12048
|
-
sourceDir =
|
|
12141
|
+
sourceDir = path3.join(tempExtractDir, actualDirName);
|
|
12049
12142
|
} else if (directories.length === 0) {
|
|
12050
12143
|
throw new Error(
|
|
12051
12144
|
`No directory found after extraction. Expected directory: ${input.extractedDirName}`
|
|
@@ -12079,23 +12172,15 @@ var init_projectTools = __esm({
|
|
|
12079
12172
|
}
|
|
12080
12173
|
async makeScriptsExecutable(workspacePath) {
|
|
12081
12174
|
const isWindows = process.platform === "win32";
|
|
12082
|
-
const scripts = await this.findScripts(
|
|
12083
|
-
workspacePath,
|
|
12084
|
-
isWindows ? [".ps1", ".bat"] : [".sh"]
|
|
12085
|
-
);
|
|
12175
|
+
const scripts = await this.findScripts(workspacePath, isWindows ? [".ps1", ".bat"] : [".sh"]);
|
|
12086
12176
|
let updatedCount = 0;
|
|
12087
12177
|
if (isWindows) {
|
|
12088
|
-
for (const scriptPath of scripts.filter(
|
|
12089
|
-
(script) => script.endsWith(".ps1")
|
|
12090
|
-
)) {
|
|
12178
|
+
for (const scriptPath of scripts.filter((script) => script.endsWith(".ps1"))) {
|
|
12091
12179
|
try {
|
|
12092
|
-
await runCommand(
|
|
12093
|
-
|
|
12094
|
-
|
|
12095
|
-
|
|
12096
|
-
shell: true
|
|
12097
|
-
}
|
|
12098
|
-
);
|
|
12180
|
+
await runCommand(`powershell -Command "Unblock-File -Path '${scriptPath}'"`, {
|
|
12181
|
+
cwd: workspacePath,
|
|
12182
|
+
shell: true
|
|
12183
|
+
});
|
|
12099
12184
|
updatedCount += 1;
|
|
12100
12185
|
} catch {
|
|
12101
12186
|
}
|
|
@@ -12103,7 +12188,7 @@ var init_projectTools = __esm({
|
|
|
12103
12188
|
} else {
|
|
12104
12189
|
for (const scriptPath of scripts) {
|
|
12105
12190
|
try {
|
|
12106
|
-
await
|
|
12191
|
+
await fs3.chmod(scriptPath, 493);
|
|
12107
12192
|
updatedCount += 1;
|
|
12108
12193
|
} catch {
|
|
12109
12194
|
}
|
|
@@ -12131,11 +12216,14 @@ var init_projectTools = __esm({
|
|
|
12131
12216
|
if (!preset) {
|
|
12132
12217
|
throw createServicemeError("invalid_params", "Expected scaffold preset.");
|
|
12133
12218
|
}
|
|
12134
|
-
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
];
|
|
12219
|
+
await this.ensurePresetManifest(workspacePath, preset);
|
|
12220
|
+
const pruneCommand = `pnpm run scaffold:prune -- --preset ${preset} --project-root .`;
|
|
12221
|
+
const initMetadataCommand = `pnpm run scaffold:init-metadata -- --preset ${preset} --project-root . --force`;
|
|
12222
|
+
const commands = [pruneCommand, initMetadataCommand];
|
|
12138
12223
|
for (const command of commands) {
|
|
12224
|
+
if (command === initMetadataCommand) {
|
|
12225
|
+
await this.ensurePresetManifest(workspacePath, preset);
|
|
12226
|
+
}
|
|
12139
12227
|
await runCommand(command, {
|
|
12140
12228
|
cwd: workspacePath,
|
|
12141
12229
|
shell: true
|
|
@@ -12147,16 +12235,50 @@ var init_projectTools = __esm({
|
|
|
12147
12235
|
commands
|
|
12148
12236
|
};
|
|
12149
12237
|
}
|
|
12238
|
+
async ensurePresetManifest(workspacePath, preset) {
|
|
12239
|
+
const presetManifestPath = path3.join(
|
|
12240
|
+
workspacePath,
|
|
12241
|
+
".ms-scaffold",
|
|
12242
|
+
"presets",
|
|
12243
|
+
`${preset}.json`
|
|
12244
|
+
);
|
|
12245
|
+
if (await this.pathExists(presetManifestPath)) {
|
|
12246
|
+
return;
|
|
12247
|
+
}
|
|
12248
|
+
const projectModePath = path3.join(workspacePath, ".ms-scaffold", "project-mode.json");
|
|
12249
|
+
if (!await this.pathExists(projectModePath)) {
|
|
12250
|
+
return;
|
|
12251
|
+
}
|
|
12252
|
+
const projectModeRaw = await fs3.readFile(projectModePath, "utf8");
|
|
12253
|
+
const projectMode = JSON.parse(projectModeRaw);
|
|
12254
|
+
const synthesizedPreset = {
|
|
12255
|
+
preset,
|
|
12256
|
+
selectedModules: Array.isArray(projectMode.selectedModules) ? projectMode.selectedModules : [],
|
|
12257
|
+
prunedModules: Array.isArray(projectMode.prunedModules) ? projectMode.prunedModules : [],
|
|
12258
|
+
exclude: [],
|
|
12259
|
+
recommendedFollowUps: [],
|
|
12260
|
+
managedFiles: [],
|
|
12261
|
+
mergeManagedFiles: [],
|
|
12262
|
+
userOwnedPaths: []
|
|
12263
|
+
};
|
|
12264
|
+
await fs3.mkdir(path3.dirname(presetManifestPath), { recursive: true });
|
|
12265
|
+
await fs3.writeFile(
|
|
12266
|
+
presetManifestPath,
|
|
12267
|
+
`${JSON.stringify(synthesizedPreset, null, 2)}
|
|
12268
|
+
`,
|
|
12269
|
+
"utf8"
|
|
12270
|
+
);
|
|
12271
|
+
}
|
|
12150
12272
|
async findScripts(dir, extensions) {
|
|
12151
12273
|
const results = [];
|
|
12152
12274
|
let entries;
|
|
12153
12275
|
try {
|
|
12154
|
-
entries = await
|
|
12276
|
+
entries = await fs3.readdir(dir, { withFileTypes: true });
|
|
12155
12277
|
} catch {
|
|
12156
12278
|
return results;
|
|
12157
12279
|
}
|
|
12158
12280
|
for (const entry of entries) {
|
|
12159
|
-
const fullPath =
|
|
12281
|
+
const fullPath = path3.join(dir, entry.name);
|
|
12160
12282
|
if (entry.isDirectory() && entry.name !== "node_modules" && !entry.name.startsWith(".")) {
|
|
12161
12283
|
results.push(...await this.findScripts(fullPath, extensions));
|
|
12162
12284
|
} else if (entry.isFile() && extensions.some((ext) => entry.name.endsWith(ext))) {
|
|
@@ -12167,7 +12289,7 @@ var init_projectTools = __esm({
|
|
|
12167
12289
|
}
|
|
12168
12290
|
async pathExists(targetPath) {
|
|
12169
12291
|
try {
|
|
12170
|
-
await
|
|
12292
|
+
await fs3.access(targetPath);
|
|
12171
12293
|
return true;
|
|
12172
12294
|
} catch {
|
|
12173
12295
|
return false;
|
|
@@ -12177,16 +12299,14 @@ var init_projectTools = __esm({
|
|
|
12177
12299
|
if (directoryNames.length === 1) {
|
|
12178
12300
|
return directoryNames[0] ?? null;
|
|
12179
12301
|
}
|
|
12180
|
-
const exactMatch = directoryNames.find(
|
|
12181
|
-
(directoryName) => directoryName === expectedDirName
|
|
12182
|
-
);
|
|
12302
|
+
const exactMatch = directoryNames.find((directoryName) => directoryName === expectedDirName);
|
|
12183
12303
|
if (exactMatch) {
|
|
12184
12304
|
return exactMatch;
|
|
12185
12305
|
}
|
|
12186
12306
|
const matches = [];
|
|
12187
12307
|
for (const directoryName of directoryNames) {
|
|
12188
12308
|
if (await this.directoryMatchesProjectPattern(
|
|
12189
|
-
|
|
12309
|
+
path3.join(tempExtractDir, directoryName),
|
|
12190
12310
|
projectFilePattern
|
|
12191
12311
|
)) {
|
|
12192
12312
|
matches.push(directoryName);
|
|
@@ -12198,7 +12318,7 @@ var init_projectTools = __esm({
|
|
|
12198
12318
|
return null;
|
|
12199
12319
|
}
|
|
12200
12320
|
async directoryMatchesProjectPattern(directoryPath, projectFilePattern) {
|
|
12201
|
-
const entries = await
|
|
12321
|
+
const entries = await fs3.readdir(directoryPath);
|
|
12202
12322
|
if (projectFilePattern.includes("*")) {
|
|
12203
12323
|
const regex = new RegExp(`^${projectFilePattern.replace("*", ".*")}$`);
|
|
12204
12324
|
return entries.some((entry) => regex.test(entry));
|
|
@@ -12208,18 +12328,23 @@ var init_projectTools = __esm({
|
|
|
12208
12328
|
};
|
|
12209
12329
|
}
|
|
12210
12330
|
});
|
|
12211
|
-
|
|
12331
|
+
|
|
12332
|
+
// ../../packages/serviceme-core/src/scheduled-tasks/daemon/DaemonLogger.ts
|
|
12333
|
+
var fs4, path4, CONFIG_DIR, LOG_FILE, MAX_LOG_SIZE, DaemonLogger;
|
|
12212
12334
|
var init_DaemonLogger = __esm({
|
|
12213
12335
|
"../../packages/serviceme-core/src/scheduled-tasks/daemon/DaemonLogger.ts"() {
|
|
12336
|
+
"use strict";
|
|
12337
|
+
fs4 = __toESM(require("fs"));
|
|
12338
|
+
path4 = __toESM(require("path"));
|
|
12214
12339
|
CONFIG_DIR = ".serviceme";
|
|
12215
12340
|
LOG_FILE = "scheduler.log";
|
|
12216
12341
|
MAX_LOG_SIZE = 1024 * 1024;
|
|
12217
12342
|
DaemonLogger = class {
|
|
12218
12343
|
constructor(workspacePath) {
|
|
12219
|
-
this.logPath =
|
|
12220
|
-
const dir =
|
|
12221
|
-
if (!
|
|
12222
|
-
|
|
12344
|
+
this.logPath = path4.join(workspacePath, CONFIG_DIR, LOG_FILE);
|
|
12345
|
+
const dir = path4.dirname(this.logPath);
|
|
12346
|
+
if (!fs4.existsSync(dir)) {
|
|
12347
|
+
fs4.mkdirSync(dir, { recursive: true });
|
|
12223
12348
|
}
|
|
12224
12349
|
}
|
|
12225
12350
|
getLogPath() {
|
|
@@ -12230,16 +12355,16 @@ var init_DaemonLogger = __esm({
|
|
|
12230
12355
|
const line2 = `[${ts}] [${level.toUpperCase()}] ${message}
|
|
12231
12356
|
`;
|
|
12232
12357
|
this.rotateIfNeeded();
|
|
12233
|
-
|
|
12358
|
+
fs4.appendFileSync(this.logPath, line2, "utf-8");
|
|
12234
12359
|
}
|
|
12235
12360
|
rotateIfNeeded() {
|
|
12236
12361
|
try {
|
|
12237
|
-
const stats =
|
|
12362
|
+
const stats = fs4.statSync(this.logPath);
|
|
12238
12363
|
if (stats.size > MAX_LOG_SIZE) {
|
|
12239
|
-
const content =
|
|
12364
|
+
const content = fs4.readFileSync(this.logPath, "utf-8");
|
|
12240
12365
|
const halfIdx = content.indexOf("\n", Math.floor(content.length / 2));
|
|
12241
12366
|
if (halfIdx > 0) {
|
|
12242
|
-
|
|
12367
|
+
fs4.writeFileSync(this.logPath, content.slice(halfIdx + 1), "utf-8");
|
|
12243
12368
|
}
|
|
12244
12369
|
}
|
|
12245
12370
|
} catch {
|
|
@@ -12248,34 +12373,39 @@ var init_DaemonLogger = __esm({
|
|
|
12248
12373
|
};
|
|
12249
12374
|
}
|
|
12250
12375
|
});
|
|
12251
|
-
|
|
12376
|
+
|
|
12377
|
+
// ../../packages/serviceme-core/src/scheduled-tasks/daemon/PidManager.ts
|
|
12378
|
+
var fs5, path5, CONFIG_DIR2, PID_FILE, PidManager;
|
|
12252
12379
|
var init_PidManager = __esm({
|
|
12253
12380
|
"../../packages/serviceme-core/src/scheduled-tasks/daemon/PidManager.ts"() {
|
|
12381
|
+
"use strict";
|
|
12382
|
+
fs5 = __toESM(require("fs"));
|
|
12383
|
+
path5 = __toESM(require("path"));
|
|
12254
12384
|
CONFIG_DIR2 = ".serviceme";
|
|
12255
12385
|
PID_FILE = "scheduler.pid";
|
|
12256
12386
|
PidManager = class {
|
|
12257
12387
|
constructor(workspacePath) {
|
|
12258
|
-
this.pidPath =
|
|
12388
|
+
this.pidPath = path5.join(workspacePath, CONFIG_DIR2, PID_FILE);
|
|
12259
12389
|
}
|
|
12260
12390
|
getPidPath() {
|
|
12261
12391
|
return this.pidPath;
|
|
12262
12392
|
}
|
|
12263
12393
|
writePid(pid) {
|
|
12264
|
-
const dir =
|
|
12265
|
-
if (!
|
|
12266
|
-
|
|
12394
|
+
const dir = path5.dirname(this.pidPath);
|
|
12395
|
+
if (!fs5.existsSync(dir)) {
|
|
12396
|
+
fs5.mkdirSync(dir, { recursive: true });
|
|
12267
12397
|
}
|
|
12268
|
-
|
|
12398
|
+
fs5.writeFileSync(this.pidPath, String(pid), "utf-8");
|
|
12269
12399
|
}
|
|
12270
12400
|
readPid() {
|
|
12271
|
-
if (!
|
|
12272
|
-
const raw =
|
|
12401
|
+
if (!fs5.existsSync(this.pidPath)) return null;
|
|
12402
|
+
const raw = fs5.readFileSync(this.pidPath, "utf-8").trim();
|
|
12273
12403
|
const pid = Number.parseInt(raw, 10);
|
|
12274
12404
|
return Number.isNaN(pid) ? null : pid;
|
|
12275
12405
|
}
|
|
12276
12406
|
removePid() {
|
|
12277
|
-
if (
|
|
12278
|
-
|
|
12407
|
+
if (fs5.existsSync(this.pidPath)) {
|
|
12408
|
+
fs5.unlinkSync(this.pidPath);
|
|
12279
12409
|
}
|
|
12280
12410
|
}
|
|
12281
12411
|
isProcessRunning(pid) {
|
|
@@ -12309,8 +12439,11 @@ function resolveConfiguredTimeoutMs(timeoutSeconds, defaultTimeoutMs) {
|
|
|
12309
12439
|
}
|
|
12310
12440
|
var init_timeout = __esm({
|
|
12311
12441
|
"../../packages/serviceme-core/src/scheduled-tasks/executors/timeout.ts"() {
|
|
12442
|
+
"use strict";
|
|
12312
12443
|
}
|
|
12313
12444
|
});
|
|
12445
|
+
|
|
12446
|
+
// ../../packages/serviceme-core/src/scheduled-tasks/executors/GithubCopilotCliExecutor.ts
|
|
12314
12447
|
function redactArgs(args) {
|
|
12315
12448
|
const redacted = [];
|
|
12316
12449
|
let redactNext = false;
|
|
@@ -12330,7 +12463,7 @@ function redactArgs(args) {
|
|
|
12330
12463
|
function writeDiagnostic(message) {
|
|
12331
12464
|
const logPath = process.env.SERVICEME_SCHEDULER_LOG_PATH;
|
|
12332
12465
|
if (logPath) {
|
|
12333
|
-
|
|
12466
|
+
fs6.appendFileSync(logPath, message);
|
|
12334
12467
|
return;
|
|
12335
12468
|
}
|
|
12336
12469
|
process.stderr.write(message);
|
|
@@ -12359,9 +12492,12 @@ function resolveGithubCopilotCliExecution(payload) {
|
|
|
12359
12492
|
promptLen: payload.prompt.length
|
|
12360
12493
|
};
|
|
12361
12494
|
}
|
|
12362
|
-
var MAX_OUTPUT_BYTES, DEFAULT_TIMEOUT_MS2, GithubCopilotCliExecutor;
|
|
12495
|
+
var import_node_child_process2, fs6, MAX_OUTPUT_BYTES, DEFAULT_TIMEOUT_MS2, GithubCopilotCliExecutor;
|
|
12363
12496
|
var init_GithubCopilotCliExecutor = __esm({
|
|
12364
12497
|
"../../packages/serviceme-core/src/scheduled-tasks/executors/GithubCopilotCliExecutor.ts"() {
|
|
12498
|
+
"use strict";
|
|
12499
|
+
import_node_child_process2 = require("child_process");
|
|
12500
|
+
fs6 = __toESM(require("fs"));
|
|
12365
12501
|
init_doctor();
|
|
12366
12502
|
init_timeout();
|
|
12367
12503
|
MAX_OUTPUT_BYTES = 2 * 1024 * 1024;
|
|
@@ -12414,16 +12550,14 @@ var init_GithubCopilotCliExecutor = __esm({
|
|
|
12414
12550
|
`[GithubCopilotCliExecutor] spawn: command=${execution.command}, args=${JSON.stringify(execution.diagnosticArgs)}, promptLen=${execution.promptLen}, cwd=${execution.cwd ?? "(default)"}, platform=${process.platform}, windowsHide=true, pid=${process.pid}
|
|
12415
12551
|
`
|
|
12416
12552
|
);
|
|
12417
|
-
const child =
|
|
12553
|
+
const child = (0, import_node_child_process2.spawn)(execution.command, execution.args, {
|
|
12418
12554
|
cwd: execution.cwd,
|
|
12419
12555
|
stdio: ["ignore", "pipe", "pipe"],
|
|
12420
12556
|
windowsHide: true
|
|
12421
12557
|
});
|
|
12422
12558
|
if (child.pid) {
|
|
12423
|
-
writeDiagnostic(
|
|
12424
|
-
|
|
12425
|
-
`
|
|
12426
|
-
);
|
|
12559
|
+
writeDiagnostic(`[GithubCopilotCliExecutor] spawned child PID=${child.pid}
|
|
12560
|
+
`);
|
|
12427
12561
|
}
|
|
12428
12562
|
const timeoutMs = execution.timeoutMs;
|
|
12429
12563
|
const timer = timeoutMs != null ? setTimeout(() => {
|
|
@@ -12441,15 +12575,13 @@ var init_GithubCopilotCliExecutor = __esm({
|
|
|
12441
12575
|
child.stdout.on("data", (chunk) => {
|
|
12442
12576
|
const data = chunk.toString();
|
|
12443
12577
|
stdoutBuf += data;
|
|
12444
|
-
if (stdoutBuf.length > MAX_OUTPUT_BYTES)
|
|
12445
|
-
stdoutBuf = stdoutBuf.slice(-MAX_OUTPUT_BYTES);
|
|
12578
|
+
if (stdoutBuf.length > MAX_OUTPUT_BYTES) stdoutBuf = stdoutBuf.slice(-MAX_OUTPUT_BYTES);
|
|
12446
12579
|
onOutput("stdout", data);
|
|
12447
12580
|
});
|
|
12448
12581
|
child.stderr.on("data", (chunk) => {
|
|
12449
12582
|
const data = chunk.toString();
|
|
12450
12583
|
stderrBuf += data;
|
|
12451
|
-
if (stderrBuf.length > MAX_OUTPUT_BYTES)
|
|
12452
|
-
stderrBuf = stderrBuf.slice(-MAX_OUTPUT_BYTES);
|
|
12584
|
+
if (stderrBuf.length > MAX_OUTPUT_BYTES) stderrBuf = stderrBuf.slice(-MAX_OUTPUT_BYTES);
|
|
12453
12585
|
onOutput("stderr", data);
|
|
12454
12586
|
});
|
|
12455
12587
|
child.on("close", (code) => {
|
|
@@ -12484,6 +12616,7 @@ var init_GithubCopilotCliExecutor = __esm({
|
|
|
12484
12616
|
var DEFAULT_TIMEOUT_MS3, HttpRequestExecutor;
|
|
12485
12617
|
var init_HttpRequestExecutor = __esm({
|
|
12486
12618
|
"../../packages/serviceme-core/src/scheduled-tasks/executors/HttpRequestExecutor.ts"() {
|
|
12619
|
+
"use strict";
|
|
12487
12620
|
init_timeout();
|
|
12488
12621
|
DEFAULT_TIMEOUT_MS3 = 3e4;
|
|
12489
12622
|
HttpRequestExecutor = class {
|
|
@@ -12552,10 +12685,12 @@ ${body}`.trim()
|
|
|
12552
12685
|
};
|
|
12553
12686
|
}
|
|
12554
12687
|
});
|
|
12688
|
+
|
|
12689
|
+
// ../../packages/serviceme-core/src/scheduled-tasks/executors/ShellExecutor.ts
|
|
12555
12690
|
function resolveShellExecution(script, options2 = {}) {
|
|
12556
12691
|
const platform = options2.platform ?? process.platform;
|
|
12557
12692
|
const env = options2.env ?? process.env;
|
|
12558
|
-
const fileExists = options2.fileExists ??
|
|
12693
|
+
const fileExists = options2.fileExists ?? fs7.existsSync;
|
|
12559
12694
|
if (platform === "win32") {
|
|
12560
12695
|
const posixShell = usesPosixShellSyntax(script) ? findWindowsPosixShell(env, fileExists) : null;
|
|
12561
12696
|
if (posixShell) {
|
|
@@ -12600,10 +12735,10 @@ function findWindowsPosixShell(env, fileExists) {
|
|
|
12600
12735
|
if (fileExists(candidate)) return candidate;
|
|
12601
12736
|
}
|
|
12602
12737
|
const pathValue = env.Path ?? env.PATH ?? "";
|
|
12603
|
-
for (const dir of pathValue.split(
|
|
12738
|
+
for (const dir of pathValue.split(path6.win32.delimiter)) {
|
|
12604
12739
|
if (!dir) continue;
|
|
12605
12740
|
for (const executable of POSIX_SHELL_CANDIDATES) {
|
|
12606
|
-
const candidate =
|
|
12741
|
+
const candidate = path6.win32.join(dir, executable);
|
|
12607
12742
|
if (fileExists(candidate) && !isWindowsWslLauncher(candidate)) {
|
|
12608
12743
|
return candidate;
|
|
12609
12744
|
}
|
|
@@ -12612,20 +12747,24 @@ function findWindowsPosixShell(env, fileExists) {
|
|
|
12612
12747
|
return null;
|
|
12613
12748
|
}
|
|
12614
12749
|
function isWindowsWslLauncher(candidate) {
|
|
12615
|
-
const normalized =
|
|
12750
|
+
const normalized = path6.win32.normalize(candidate).toLowerCase();
|
|
12616
12751
|
return normalized.endsWith("\\windows\\system32\\bash.exe") || normalized.endsWith("\\windows\\syswow64\\bash.exe");
|
|
12617
12752
|
}
|
|
12618
12753
|
function writeDiagnostic2(message) {
|
|
12619
12754
|
const logPath = process.env.SERVICEME_SCHEDULER_LOG_PATH;
|
|
12620
12755
|
if (logPath) {
|
|
12621
|
-
|
|
12756
|
+
fs7.appendFileSync(logPath, message);
|
|
12622
12757
|
return;
|
|
12623
12758
|
}
|
|
12624
12759
|
process.stderr.write(message);
|
|
12625
12760
|
}
|
|
12626
|
-
var MAX_OUTPUT_BYTES2, DEFAULT_TIMEOUT_MS4, POSIX_SHELL_CANDIDATES, ShellExecutor;
|
|
12761
|
+
var import_node_child_process3, fs7, path6, MAX_OUTPUT_BYTES2, DEFAULT_TIMEOUT_MS4, POSIX_SHELL_CANDIDATES, ShellExecutor;
|
|
12627
12762
|
var init_ShellExecutor = __esm({
|
|
12628
12763
|
"../../packages/serviceme-core/src/scheduled-tasks/executors/ShellExecutor.ts"() {
|
|
12764
|
+
"use strict";
|
|
12765
|
+
import_node_child_process3 = require("child_process");
|
|
12766
|
+
fs7 = __toESM(require("fs"));
|
|
12767
|
+
path6 = __toESM(require("path"));
|
|
12629
12768
|
init_timeout();
|
|
12630
12769
|
MAX_OUTPUT_BYTES2 = 1024 * 1024;
|
|
12631
12770
|
DEFAULT_TIMEOUT_MS4 = 6e4;
|
|
@@ -12687,7 +12826,7 @@ var init_ShellExecutor = __esm({
|
|
|
12687
12826
|
daemonPid=${process.pid}
|
|
12688
12827
|
`
|
|
12689
12828
|
);
|
|
12690
|
-
const child =
|
|
12829
|
+
const child = (0, import_node_child_process3.spawn)(shellExecution.command, shellExecution.args, spawnOpts);
|
|
12691
12830
|
if (shellExecution.stdinScript && child.stdin) {
|
|
12692
12831
|
child.stdin.end(shellExecution.stdinScript);
|
|
12693
12832
|
}
|
|
@@ -12759,6 +12898,7 @@ function isStreamingTaskExecutor(executor) {
|
|
|
12759
12898
|
}
|
|
12760
12899
|
var init_types2 = __esm({
|
|
12761
12900
|
"../../packages/serviceme-core/src/scheduled-tasks/executors/types.ts"() {
|
|
12901
|
+
"use strict";
|
|
12762
12902
|
}
|
|
12763
12903
|
});
|
|
12764
12904
|
|
|
@@ -12773,6 +12913,7 @@ function getExecutor(taskType) {
|
|
|
12773
12913
|
var executors;
|
|
12774
12914
|
var init_executors = __esm({
|
|
12775
12915
|
"../../packages/serviceme-core/src/scheduled-tasks/executors/index.ts"() {
|
|
12916
|
+
"use strict";
|
|
12776
12917
|
init_GithubCopilotCliExecutor();
|
|
12777
12918
|
init_HttpRequestExecutor();
|
|
12778
12919
|
init_ShellExecutor();
|
|
@@ -12784,6 +12925,8 @@ var init_executors = __esm({
|
|
|
12784
12925
|
};
|
|
12785
12926
|
}
|
|
12786
12927
|
});
|
|
12928
|
+
|
|
12929
|
+
// ../../packages/serviceme-core/src/scheduled-tasks/TaskConfigManager.ts
|
|
12787
12930
|
function emptyConfig() {
|
|
12788
12931
|
return { version: 1, tasks: [] };
|
|
12789
12932
|
}
|
|
@@ -12792,10 +12935,7 @@ function isRecord3(value) {
|
|
|
12792
12935
|
}
|
|
12793
12936
|
function requireNonEmptyString(payload, field, taskType) {
|
|
12794
12937
|
if (!isRecord3(payload) || typeof payload[field] !== "string" || !payload[field].trim()) {
|
|
12795
|
-
throw createServicemeError(
|
|
12796
|
-
"invalid_payload",
|
|
12797
|
-
`${taskType} payload ${field} is required`
|
|
12798
|
-
);
|
|
12938
|
+
throw createServicemeError("invalid_payload", `${taskType} payload ${field} is required`);
|
|
12799
12939
|
}
|
|
12800
12940
|
}
|
|
12801
12941
|
function validateTaskPayload(taskType, payload) {
|
|
@@ -12815,35 +12955,39 @@ function validateTaskPayload(taskType, payload) {
|
|
|
12815
12955
|
return;
|
|
12816
12956
|
}
|
|
12817
12957
|
}
|
|
12818
|
-
var CONFIG_DIR3, CONFIG_FILE, TaskConfigManager;
|
|
12958
|
+
var import_node_crypto, fs8, path7, CONFIG_DIR3, CONFIG_FILE, TaskConfigManager;
|
|
12819
12959
|
var init_TaskConfigManager = __esm({
|
|
12820
12960
|
"../../packages/serviceme-core/src/scheduled-tasks/TaskConfigManager.ts"() {
|
|
12961
|
+
"use strict";
|
|
12962
|
+
import_node_crypto = require("crypto");
|
|
12963
|
+
fs8 = __toESM(require("fs"));
|
|
12964
|
+
path7 = __toESM(require("path"));
|
|
12821
12965
|
init_src();
|
|
12822
12966
|
CONFIG_DIR3 = ".serviceme";
|
|
12823
12967
|
CONFIG_FILE = "scheduled-tasks.json";
|
|
12824
12968
|
TaskConfigManager = class {
|
|
12825
12969
|
constructor(workspacePath) {
|
|
12826
|
-
this.configPath =
|
|
12970
|
+
this.configPath = path7.join(workspacePath, CONFIG_DIR3, CONFIG_FILE);
|
|
12827
12971
|
}
|
|
12828
12972
|
getConfigPath() {
|
|
12829
12973
|
return this.configPath;
|
|
12830
12974
|
}
|
|
12831
12975
|
readConfig() {
|
|
12832
|
-
if (!
|
|
12976
|
+
if (!fs8.existsSync(this.configPath)) {
|
|
12833
12977
|
return emptyConfig();
|
|
12834
12978
|
}
|
|
12835
|
-
const raw =
|
|
12979
|
+
const raw = fs8.readFileSync(this.configPath, "utf-8");
|
|
12836
12980
|
const parsed = JSON.parse(raw);
|
|
12837
12981
|
return parsed;
|
|
12838
12982
|
}
|
|
12839
12983
|
writeConfig(config) {
|
|
12840
|
-
const dir =
|
|
12841
|
-
if (!
|
|
12842
|
-
|
|
12984
|
+
const dir = path7.dirname(this.configPath);
|
|
12985
|
+
if (!fs8.existsSync(dir)) {
|
|
12986
|
+
fs8.mkdirSync(dir, { recursive: true });
|
|
12843
12987
|
}
|
|
12844
12988
|
const tmp = `${this.configPath}.tmp`;
|
|
12845
|
-
|
|
12846
|
-
|
|
12989
|
+
fs8.writeFileSync(tmp, JSON.stringify(config, null, " "), "utf-8");
|
|
12990
|
+
fs8.renameSync(tmp, this.configPath);
|
|
12847
12991
|
}
|
|
12848
12992
|
listTasks() {
|
|
12849
12993
|
return this.readConfig().tasks;
|
|
@@ -12859,7 +13003,7 @@ var init_TaskConfigManager = __esm({
|
|
|
12859
13003
|
const config = this.readConfig();
|
|
12860
13004
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
12861
13005
|
const task = {
|
|
12862
|
-
id:
|
|
13006
|
+
id: (0, import_node_crypto.randomUUID)(),
|
|
12863
13007
|
name: input.name,
|
|
12864
13008
|
description: input.description,
|
|
12865
13009
|
enabled: input.enabled ?? true,
|
|
@@ -12954,6 +13098,7 @@ function resolveTaskExecutionPayload(taskType, payload, workspacePath) {
|
|
|
12954
13098
|
var TaskExecutionEngine;
|
|
12955
13099
|
var init_TaskExecutionEngine = __esm({
|
|
12956
13100
|
"../../packages/serviceme-core/src/scheduled-tasks/TaskExecutionEngine.ts"() {
|
|
13101
|
+
"use strict";
|
|
12957
13102
|
init_types2();
|
|
12958
13103
|
init_TaskConfigManager();
|
|
12959
13104
|
TaskExecutionEngine = class {
|
|
@@ -12971,9 +13116,7 @@ var init_TaskExecutionEngine = __esm({
|
|
|
12971
13116
|
if (policy === "reject") {
|
|
12972
13117
|
const existingIds = this.taskExecutions.get(snapshot.taskId);
|
|
12973
13118
|
if (existingIds && existingIds.size > 0) {
|
|
12974
|
-
throw new Error(
|
|
12975
|
-
`TASK_ALREADY_RUNNING: Task ${snapshot.taskId} is already running`
|
|
12976
|
-
);
|
|
13119
|
+
throw new Error(`TASK_ALREADY_RUNNING: Task ${snapshot.taskId} is already running`);
|
|
12977
13120
|
}
|
|
12978
13121
|
}
|
|
12979
13122
|
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -13120,6 +13263,8 @@ var init_TaskExecutionEngine = __esm({
|
|
|
13120
13263
|
};
|
|
13121
13264
|
}
|
|
13122
13265
|
});
|
|
13266
|
+
|
|
13267
|
+
// ../../packages/serviceme-core/src/scheduled-tasks/TaskLogManager.ts
|
|
13123
13268
|
function emptyLogFile() {
|
|
13124
13269
|
return { logs: [] };
|
|
13125
13270
|
}
|
|
@@ -13139,25 +13284,29 @@ function validateAndRepairLogFile(raw) {
|
|
|
13139
13284
|
const validLogs = file.logs.filter(isValidLogEntry);
|
|
13140
13285
|
return { logs: validLogs };
|
|
13141
13286
|
}
|
|
13142
|
-
var CONFIG_DIR4, LOG_FILE2, MAX_LOGS, TaskLogManager;
|
|
13287
|
+
var import_node_crypto2, fs9, path8, CONFIG_DIR4, LOG_FILE2, MAX_LOGS, TaskLogManager;
|
|
13143
13288
|
var init_TaskLogManager = __esm({
|
|
13144
13289
|
"../../packages/serviceme-core/src/scheduled-tasks/TaskLogManager.ts"() {
|
|
13290
|
+
"use strict";
|
|
13291
|
+
import_node_crypto2 = require("crypto");
|
|
13292
|
+
fs9 = __toESM(require("fs"));
|
|
13293
|
+
path8 = __toESM(require("path"));
|
|
13145
13294
|
CONFIG_DIR4 = ".serviceme";
|
|
13146
13295
|
LOG_FILE2 = "scheduled-tasks-log.json";
|
|
13147
13296
|
MAX_LOGS = 200;
|
|
13148
13297
|
TaskLogManager = class {
|
|
13149
13298
|
constructor(workspacePath) {
|
|
13150
|
-
this.logPath =
|
|
13299
|
+
this.logPath = path8.join(workspacePath, CONFIG_DIR4, LOG_FILE2);
|
|
13151
13300
|
}
|
|
13152
13301
|
getLogPath() {
|
|
13153
13302
|
return this.logPath;
|
|
13154
13303
|
}
|
|
13155
13304
|
readLogFile() {
|
|
13156
|
-
if (!
|
|
13305
|
+
if (!fs9.existsSync(this.logPath)) {
|
|
13157
13306
|
return emptyLogFile();
|
|
13158
13307
|
}
|
|
13159
13308
|
try {
|
|
13160
|
-
const raw =
|
|
13309
|
+
const raw = fs9.readFileSync(this.logPath, "utf-8");
|
|
13161
13310
|
const parsed = JSON.parse(raw);
|
|
13162
13311
|
const file = validateAndRepairLogFile(parsed);
|
|
13163
13312
|
if (!parsed || typeof parsed !== "object" || !Array.isArray(parsed.logs) || parsed.logs.length !== file.logs.length) {
|
|
@@ -13173,26 +13322,26 @@ var init_TaskLogManager = __esm({
|
|
|
13173
13322
|
}
|
|
13174
13323
|
backupCorruptedFile() {
|
|
13175
13324
|
try {
|
|
13176
|
-
if (
|
|
13325
|
+
if (fs9.existsSync(this.logPath)) {
|
|
13177
13326
|
const backupPath = `${this.logPath}.corrupted.${Date.now()}`;
|
|
13178
|
-
|
|
13327
|
+
fs9.copyFileSync(this.logPath, backupPath);
|
|
13179
13328
|
}
|
|
13180
13329
|
} catch {
|
|
13181
13330
|
}
|
|
13182
13331
|
}
|
|
13183
13332
|
writeLogFile(file) {
|
|
13184
|
-
const dir =
|
|
13185
|
-
if (!
|
|
13186
|
-
|
|
13333
|
+
const dir = path8.dirname(this.logPath);
|
|
13334
|
+
if (!fs9.existsSync(dir)) {
|
|
13335
|
+
fs9.mkdirSync(dir, { recursive: true });
|
|
13187
13336
|
}
|
|
13188
13337
|
const tmp = `${this.logPath}.tmp`;
|
|
13189
|
-
|
|
13190
|
-
|
|
13338
|
+
fs9.writeFileSync(tmp, JSON.stringify(file, null, " "), "utf-8");
|
|
13339
|
+
fs9.renameSync(tmp, this.logPath);
|
|
13191
13340
|
}
|
|
13192
13341
|
appendLog(input) {
|
|
13193
13342
|
const file = this.readLogFile();
|
|
13194
13343
|
const log = {
|
|
13195
|
-
id:
|
|
13344
|
+
id: (0, import_node_crypto2.randomUUID)(),
|
|
13196
13345
|
taskId: input.taskId,
|
|
13197
13346
|
taskName: input.taskName,
|
|
13198
13347
|
startedAt: input.startedAt,
|
|
@@ -13235,6 +13384,8 @@ var init_TaskLogManager = __esm({
|
|
|
13235
13384
|
};
|
|
13236
13385
|
}
|
|
13237
13386
|
});
|
|
13387
|
+
|
|
13388
|
+
// ../../packages/serviceme-core/src/scheduled-tasks/daemon/SchedulerDaemon.ts
|
|
13238
13389
|
function parseIntervalMs(schedule) {
|
|
13239
13390
|
const match = /^every\s+(\d+)\s*(s|sec|m|min|h|hr|d|day)s?$/i.exec(schedule);
|
|
13240
13391
|
if (!match) return 0;
|
|
@@ -13274,9 +13425,12 @@ function matchCronField(field, value) {
|
|
|
13274
13425
|
const values = field.split(",");
|
|
13275
13426
|
return values.some((v) => Number.parseInt(v, 10) === value);
|
|
13276
13427
|
}
|
|
13277
|
-
var TICK_INTERVAL, MIN_SCHEDULE_INTERVAL, SchedulerDaemon;
|
|
13428
|
+
var fs10, os, TICK_INTERVAL, MIN_SCHEDULE_INTERVAL, SchedulerDaemon;
|
|
13278
13429
|
var init_SchedulerDaemon = __esm({
|
|
13279
13430
|
"../../packages/serviceme-core/src/scheduled-tasks/daemon/SchedulerDaemon.ts"() {
|
|
13431
|
+
"use strict";
|
|
13432
|
+
fs10 = __toESM(require("fs"));
|
|
13433
|
+
os = __toESM(require("os"));
|
|
13280
13434
|
init_executors();
|
|
13281
13435
|
init_TaskConfigManager();
|
|
13282
13436
|
init_TaskExecutionEngine();
|
|
@@ -13286,7 +13440,7 @@ var init_SchedulerDaemon = __esm({
|
|
|
13286
13440
|
TICK_INTERVAL = 1e3;
|
|
13287
13441
|
MIN_SCHEDULE_INTERVAL = 1e3;
|
|
13288
13442
|
SchedulerDaemon = class {
|
|
13289
|
-
constructor(workspacePath) {
|
|
13443
|
+
constructor(workspacePath, options2 = {}) {
|
|
13290
13444
|
this.tickTimer = null;
|
|
13291
13445
|
this.watcher = null;
|
|
13292
13446
|
this.running = false;
|
|
@@ -13299,6 +13453,7 @@ var init_SchedulerDaemon = __esm({
|
|
|
13299
13453
|
this.logManager = new TaskLogManager(workspacePath);
|
|
13300
13454
|
this.pidManager = new PidManager(workspacePath);
|
|
13301
13455
|
this.logger = new DaemonLogger(workspacePath);
|
|
13456
|
+
this.getExecutor = options2.getExecutor ?? getExecutor;
|
|
13302
13457
|
}
|
|
13303
13458
|
start() {
|
|
13304
13459
|
if (this.running) return;
|
|
@@ -13313,10 +13468,10 @@ var init_SchedulerDaemon = __esm({
|
|
|
13313
13468
|
`Scheduler daemon started
|
|
13314
13469
|
PID: ${process.pid}
|
|
13315
13470
|
Node: ${process.version}
|
|
13316
|
-
OS: ${
|
|
13471
|
+
OS: ${os.type()} ${os.release()} (${process.arch})
|
|
13317
13472
|
Platform: ${process.platform}
|
|
13318
|
-
Hostname: ${
|
|
13319
|
-
User: ${
|
|
13473
|
+
Hostname: ${os.hostname()}
|
|
13474
|
+
User: ${os.userInfo().username}
|
|
13320
13475
|
Workspace: ${this.workspacePath}
|
|
13321
13476
|
Config: ${configPath}
|
|
13322
13477
|
LogPath: ${logPath}
|
|
@@ -13346,8 +13501,8 @@ var init_SchedulerDaemon = __esm({
|
|
|
13346
13501
|
const configPath = this.configManager.getConfigPath();
|
|
13347
13502
|
const dir = configPath.substring(0, configPath.lastIndexOf("/"));
|
|
13348
13503
|
try {
|
|
13349
|
-
if (
|
|
13350
|
-
this.watcher =
|
|
13504
|
+
if (fs10.existsSync(dir)) {
|
|
13505
|
+
this.watcher = fs10.watch(dir, (_eventType, filename) => {
|
|
13351
13506
|
if (filename === "scheduled-tasks.json") {
|
|
13352
13507
|
this.logger.log("info", "Config file changed, reconciling...");
|
|
13353
13508
|
}
|
|
@@ -13404,7 +13559,7 @@ var init_SchedulerDaemon = __esm({
|
|
|
13404
13559
|
this.workspacePath
|
|
13405
13560
|
);
|
|
13406
13561
|
validateTaskPayload(task.taskType, executionPayload);
|
|
13407
|
-
const executor = getExecutor(task.taskType);
|
|
13562
|
+
const executor = this.getExecutor(task.taskType);
|
|
13408
13563
|
const result = await executor.execute(executionPayload);
|
|
13409
13564
|
const finishedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
13410
13565
|
const durationMs = Date.now() - startMs;
|
|
@@ -13466,6 +13621,7 @@ var init_SchedulerDaemon = __esm({
|
|
|
13466
13621
|
// ../../packages/serviceme-core/src/scheduled-tasks/daemon/index.ts
|
|
13467
13622
|
var init_daemon = __esm({
|
|
13468
13623
|
"../../packages/serviceme-core/src/scheduled-tasks/daemon/index.ts"() {
|
|
13624
|
+
"use strict";
|
|
13469
13625
|
init_DaemonLogger();
|
|
13470
13626
|
init_PidManager();
|
|
13471
13627
|
init_SchedulerDaemon();
|
|
@@ -13475,6 +13631,7 @@ var init_daemon = __esm({
|
|
|
13475
13631
|
// ../../packages/serviceme-core/src/scheduled-tasks/index.ts
|
|
13476
13632
|
var init_scheduled_tasks2 = __esm({
|
|
13477
13633
|
"../../packages/serviceme-core/src/scheduled-tasks/index.ts"() {
|
|
13634
|
+
"use strict";
|
|
13478
13635
|
init_daemon();
|
|
13479
13636
|
init_executors();
|
|
13480
13637
|
init_TaskConfigManager();
|
|
@@ -13487,6 +13644,8 @@ var init_scheduled_tasks2 = __esm({
|
|
|
13487
13644
|
var SkillCatalogClient;
|
|
13488
13645
|
var init_SkillCatalogClient = __esm({
|
|
13489
13646
|
"../../packages/serviceme-core/src/skills/SkillCatalogClient.ts"() {
|
|
13647
|
+
"use strict";
|
|
13648
|
+
init_src();
|
|
13490
13649
|
SkillCatalogClient = class {
|
|
13491
13650
|
constructor(options2 = {}) {
|
|
13492
13651
|
this.fetchImpl = options2.fetchImpl ?? fetch;
|
|
@@ -13494,10 +13653,10 @@ var init_SkillCatalogClient = __esm({
|
|
|
13494
13653
|
}
|
|
13495
13654
|
async getCatalog() {
|
|
13496
13655
|
if (!this.baseUrl) {
|
|
13497
|
-
|
|
13498
|
-
|
|
13499
|
-
|
|
13500
|
-
|
|
13656
|
+
throw createServicemeError(
|
|
13657
|
+
"workspace_not_found",
|
|
13658
|
+
"Skill catalog baseUrl is not configured."
|
|
13659
|
+
);
|
|
13501
13660
|
}
|
|
13502
13661
|
const response = await this.fetchImpl(
|
|
13503
13662
|
`${this.baseUrl}/api/v1/marketplace/skills`
|
|
@@ -13511,6 +13670,30 @@ var init_SkillCatalogClient = __esm({
|
|
|
13511
13670
|
fetchedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
13512
13671
|
};
|
|
13513
13672
|
}
|
|
13673
|
+
async downloadSkill(remoteId) {
|
|
13674
|
+
if (!this.baseUrl) {
|
|
13675
|
+
throw createServicemeError(
|
|
13676
|
+
"workspace_not_found",
|
|
13677
|
+
"Skill catalog baseUrl is not configured."
|
|
13678
|
+
);
|
|
13679
|
+
}
|
|
13680
|
+
const response = await this.fetchImpl(
|
|
13681
|
+
`${this.baseUrl}/api/v1/marketplace/skills/download/${remoteId}`
|
|
13682
|
+
);
|
|
13683
|
+
if (!response.ok) {
|
|
13684
|
+
if (response.status === 404) {
|
|
13685
|
+
throw createServicemeError(
|
|
13686
|
+
"not_found",
|
|
13687
|
+
`Skill '${remoteId}' not found`
|
|
13688
|
+
);
|
|
13689
|
+
}
|
|
13690
|
+
throw new Error(
|
|
13691
|
+
`Failed to download skill ${remoteId}: ${response.status}`
|
|
13692
|
+
);
|
|
13693
|
+
}
|
|
13694
|
+
const payload = await response.json();
|
|
13695
|
+
return payload.data?.files ?? [];
|
|
13696
|
+
}
|
|
13514
13697
|
};
|
|
13515
13698
|
}
|
|
13516
13699
|
});
|
|
@@ -13519,6 +13702,7 @@ var init_SkillCatalogClient = __esm({
|
|
|
13519
13702
|
var SkillReconciler;
|
|
13520
13703
|
var init_SkillReconciler = __esm({
|
|
13521
13704
|
"../../packages/serviceme-core/src/skills/SkillReconciler.ts"() {
|
|
13705
|
+
"use strict";
|
|
13522
13706
|
SkillReconciler = class {
|
|
13523
13707
|
constructor(deps) {
|
|
13524
13708
|
this.deps = deps;
|
|
@@ -13570,15 +13754,20 @@ var init_SkillReconciler = __esm({
|
|
|
13570
13754
|
};
|
|
13571
13755
|
}
|
|
13572
13756
|
});
|
|
13757
|
+
|
|
13758
|
+
// ../../packages/serviceme-core/src/skills/SkillStore.ts
|
|
13573
13759
|
function assertSafeLocalSkillId(skillId) {
|
|
13574
13760
|
if (typeof skillId !== "string" || skillId.length === 0 || skillId === "." || skillId === ".." || skillId.includes("/") || skillId.includes("\\") || !SAFE_LOCAL_ID_PATTERN2.test(skillId)) {
|
|
13575
13761
|
throw new Error(`Invalid skill id: ${skillId}`);
|
|
13576
13762
|
}
|
|
13577
13763
|
return skillId;
|
|
13578
13764
|
}
|
|
13579
|
-
var USER_SKILL_MARKER_FILE, WORKSPACE_SKILLS_ROOT_RELATIVE, WORKSPACE_SKILLS_MARKER_RELATIVE, SAFE_LOCAL_ID_PATTERN2, SkillStore;
|
|
13765
|
+
var fs11, path9, USER_SKILL_MARKER_FILE, WORKSPACE_SKILLS_ROOT_RELATIVE, WORKSPACE_SKILLS_MARKER_RELATIVE, SAFE_LOCAL_ID_PATTERN2, SkillStore;
|
|
13580
13766
|
var init_SkillStore = __esm({
|
|
13581
13767
|
"../../packages/serviceme-core/src/skills/SkillStore.ts"() {
|
|
13768
|
+
"use strict";
|
|
13769
|
+
fs11 = __toESM(require("fs/promises"));
|
|
13770
|
+
path9 = __toESM(require("path"));
|
|
13582
13771
|
USER_SKILL_MARKER_FILE = ".ms-devtools-skill.json";
|
|
13583
13772
|
WORKSPACE_SKILLS_ROOT_RELATIVE = ".github/skills";
|
|
13584
13773
|
WORKSPACE_SKILLS_MARKER_RELATIVE = ".github/.ms-devtools-skills.yml";
|
|
@@ -13587,7 +13776,7 @@ var init_SkillStore = __esm({
|
|
|
13587
13776
|
constructor(options2) {
|
|
13588
13777
|
this.workspacePath = options2.workspacePath;
|
|
13589
13778
|
this.userSkillsRoot = options2.userSkillsRoot;
|
|
13590
|
-
this.fileSystem = options2.fileSystem ??
|
|
13779
|
+
this.fileSystem = options2.fileSystem ?? fs11;
|
|
13591
13780
|
}
|
|
13592
13781
|
normalizeRemoteSkillId(remoteId) {
|
|
13593
13782
|
if (remoteId.startsWith("official/")) {
|
|
@@ -13606,10 +13795,10 @@ var init_SkillStore = __esm({
|
|
|
13606
13795
|
return WORKSPACE_SKILLS_MARKER_RELATIVE;
|
|
13607
13796
|
}
|
|
13608
13797
|
getUserSkillPath(skillId) {
|
|
13609
|
-
return
|
|
13798
|
+
return path9.join(this.userSkillsRoot, skillId);
|
|
13610
13799
|
}
|
|
13611
13800
|
async listWorkspaceSkillIds() {
|
|
13612
|
-
const skillsRootPath =
|
|
13801
|
+
const skillsRootPath = path9.join(
|
|
13613
13802
|
this.workspacePath,
|
|
13614
13803
|
WORKSPACE_SKILLS_ROOT_RELATIVE
|
|
13615
13804
|
);
|
|
@@ -13636,7 +13825,7 @@ var init_SkillStore = __esm({
|
|
|
13636
13825
|
const targetDir = this.getUserSkillPath(skillId);
|
|
13637
13826
|
await this.fileSystem.mkdir(targetDir, { recursive: true });
|
|
13638
13827
|
await this.fileSystem.writeFile(
|
|
13639
|
-
|
|
13828
|
+
path9.join(targetDir, USER_SKILL_MARKER_FILE),
|
|
13640
13829
|
JSON.stringify({ skillId, installedBy: "ms-devtools" }, null, 2),
|
|
13641
13830
|
"utf-8"
|
|
13642
13831
|
);
|
|
@@ -13644,7 +13833,7 @@ var init_SkillStore = __esm({
|
|
|
13644
13833
|
async isManagedUserSkill(skillId) {
|
|
13645
13834
|
try {
|
|
13646
13835
|
const marker = await this.fileSystem.readFile(
|
|
13647
|
-
|
|
13836
|
+
path9.join(this.getUserSkillPath(skillId), USER_SKILL_MARKER_FILE),
|
|
13648
13837
|
"utf-8"
|
|
13649
13838
|
);
|
|
13650
13839
|
const parsed = JSON.parse(marker);
|
|
@@ -13653,6 +13842,22 @@ var init_SkillStore = __esm({
|
|
|
13653
13842
|
return false;
|
|
13654
13843
|
}
|
|
13655
13844
|
}
|
|
13845
|
+
async writeSkillFiles(skillId, scope, files) {
|
|
13846
|
+
const root2 = scope === "workspace" ? path9.join(this.workspacePath, WORKSPACE_SKILLS_ROOT_RELATIVE) : this.userSkillsRoot;
|
|
13847
|
+
const targetDir = path9.join(root2, skillId);
|
|
13848
|
+
await this.fileSystem.mkdir(targetDir, { recursive: true });
|
|
13849
|
+
for (const file of files) {
|
|
13850
|
+
const filePath = path9.join(targetDir, file.path);
|
|
13851
|
+
await this.fileSystem.mkdir(path9.dirname(filePath), { recursive: true });
|
|
13852
|
+
await this.fileSystem.writeFile(filePath, file.content, "utf-8");
|
|
13853
|
+
if (file.executable) {
|
|
13854
|
+
try {
|
|
13855
|
+
await this.fileSystem.chmod(filePath, 493);
|
|
13856
|
+
} catch {
|
|
13857
|
+
}
|
|
13858
|
+
}
|
|
13859
|
+
}
|
|
13860
|
+
}
|
|
13656
13861
|
};
|
|
13657
13862
|
}
|
|
13658
13863
|
});
|
|
@@ -13660,12 +13865,14 @@ var init_SkillStore = __esm({
|
|
|
13660
13865
|
// ../../packages/serviceme-core/src/skills/types.ts
|
|
13661
13866
|
var init_types3 = __esm({
|
|
13662
13867
|
"../../packages/serviceme-core/src/skills/types.ts"() {
|
|
13868
|
+
"use strict";
|
|
13663
13869
|
}
|
|
13664
13870
|
});
|
|
13665
13871
|
|
|
13666
13872
|
// ../../packages/serviceme-core/src/skills/index.ts
|
|
13667
13873
|
var init_skills = __esm({
|
|
13668
13874
|
"../../packages/serviceme-core/src/skills/index.ts"() {
|
|
13875
|
+
"use strict";
|
|
13669
13876
|
init_SkillCatalogClient();
|
|
13670
13877
|
init_SkillReconciler();
|
|
13671
13878
|
init_SkillStore();
|
|
@@ -13717,6 +13924,7 @@ __export(src_exports, {
|
|
|
13717
13924
|
});
|
|
13718
13925
|
var init_src2 = __esm({
|
|
13719
13926
|
"../../packages/serviceme-core/src/index.ts"() {
|
|
13927
|
+
"use strict";
|
|
13720
13928
|
init_agents();
|
|
13721
13929
|
init_copilot2();
|
|
13722
13930
|
init_environmentInspector();
|
|
@@ -13750,10 +13958,7 @@ function parseArgs(argv) {
|
|
|
13750
13958
|
const withoutPrefix = token2.slice(2);
|
|
13751
13959
|
const eqIndex = withoutPrefix.indexOf("=");
|
|
13752
13960
|
if (eqIndex >= 0) {
|
|
13753
|
-
flags.set(
|
|
13754
|
-
withoutPrefix.slice(0, eqIndex),
|
|
13755
|
-
withoutPrefix.slice(eqIndex + 1)
|
|
13756
|
-
);
|
|
13961
|
+
flags.set(withoutPrefix.slice(0, eqIndex), withoutPrefix.slice(eqIndex + 1));
|
|
13757
13962
|
continue;
|
|
13758
13963
|
}
|
|
13759
13964
|
const next = argv[index + 1];
|
|
@@ -13778,6 +13983,9 @@ function getStringFlag(parsed, name) {
|
|
|
13778
13983
|
}
|
|
13779
13984
|
|
|
13780
13985
|
// src/commands/agent.ts
|
|
13986
|
+
var fs12 = __toESM(require("fs/promises"));
|
|
13987
|
+
var os2 = __toESM(require("os"));
|
|
13988
|
+
var path10 = __toESM(require("path"));
|
|
13781
13989
|
init_src2();
|
|
13782
13990
|
init_src();
|
|
13783
13991
|
|
|
@@ -13806,14 +14014,11 @@ async function runAgentCommand(parsed) {
|
|
|
13806
14014
|
const action = parsed.positionals[1];
|
|
13807
14015
|
const workspacePath = getStringFlag(parsed, "workspacePath");
|
|
13808
14016
|
if (!workspacePath) {
|
|
13809
|
-
throw createServicemeError(
|
|
13810
|
-
"invalid_params",
|
|
13811
|
-
"Expected --workspacePath <path>."
|
|
13812
|
-
);
|
|
14017
|
+
throw createServicemeError("invalid_params", "Expected --workspacePath <path>.");
|
|
13813
14018
|
}
|
|
13814
14019
|
const store = new AgentStore({
|
|
13815
14020
|
workspacePath,
|
|
13816
|
-
userAgentsRoot:
|
|
14021
|
+
userAgentsRoot: path10.join(os2.homedir(), ".copilot", "agents")
|
|
13817
14022
|
});
|
|
13818
14023
|
const catalogClient = new AgentCatalogClient({
|
|
13819
14024
|
baseUrl: getStringFlag(parsed, "baseUrl")
|
|
@@ -13827,7 +14032,7 @@ async function runAgentCommand(parsed) {
|
|
|
13827
14032
|
writeSuccess(await handleList(store));
|
|
13828
14033
|
return;
|
|
13829
14034
|
case "install":
|
|
13830
|
-
writeSuccess(await handleInstall(store, parsed));
|
|
14035
|
+
writeSuccess(await handleInstall(store, parsed, catalogClient));
|
|
13831
14036
|
return;
|
|
13832
14037
|
case "uninstall":
|
|
13833
14038
|
writeSuccess(await handleUninstall(store, workspacePath, parsed));
|
|
@@ -13839,9 +14044,7 @@ async function runAgentCommand(parsed) {
|
|
|
13839
14044
|
writeSuccess(await handleMarketplace(store, catalogClient));
|
|
13840
14045
|
return;
|
|
13841
14046
|
case "permissions":
|
|
13842
|
-
writeSuccess(
|
|
13843
|
-
await handlePermissions(store, reconciler, workspacePath, parsed)
|
|
13844
|
-
);
|
|
14047
|
+
writeSuccess(await handlePermissions(store, reconciler, workspacePath, parsed));
|
|
13845
14048
|
return;
|
|
13846
14049
|
default:
|
|
13847
14050
|
throw new Error(
|
|
@@ -13859,13 +14062,10 @@ async function handleList(store) {
|
|
|
13859
14062
|
]
|
|
13860
14063
|
};
|
|
13861
14064
|
}
|
|
13862
|
-
async function handleInstall(store, parsed) {
|
|
14065
|
+
async function handleInstall(store, parsed, catalogClient) {
|
|
13863
14066
|
const remoteId = getStringFlag(parsed, "id");
|
|
13864
14067
|
if (!remoteId) {
|
|
13865
|
-
throw createServicemeError(
|
|
13866
|
-
"invalid_params",
|
|
13867
|
-
"Expected --id <remoteAgentId>."
|
|
13868
|
-
);
|
|
14068
|
+
throw createServicemeError("invalid_params", "Expected --id <remoteAgentId>.");
|
|
13869
14069
|
}
|
|
13870
14070
|
const agentId = normalizeAgentIdOrThrow(store, remoteId);
|
|
13871
14071
|
if (!getBooleanFlag(parsed, "confirmed")) {
|
|
@@ -13877,27 +14077,48 @@ async function handleInstall(store, parsed) {
|
|
|
13877
14077
|
message: "Install requires --confirmed."
|
|
13878
14078
|
};
|
|
13879
14079
|
}
|
|
13880
|
-
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
|
|
13884
|
-
|
|
13885
|
-
|
|
13886
|
-
|
|
13887
|
-
|
|
13888
|
-
|
|
13889
|
-
|
|
13890
|
-
|
|
13891
|
-
|
|
13892
|
-
|
|
13893
|
-
}
|
|
13894
|
-
|
|
13895
|
-
|
|
13896
|
-
|
|
13897
|
-
|
|
13898
|
-
|
|
13899
|
-
|
|
13900
|
-
|
|
14080
|
+
let files;
|
|
14081
|
+
try {
|
|
14082
|
+
files = await catalogClient.downloadAgent(remoteId);
|
|
14083
|
+
} catch (error) {
|
|
14084
|
+
const errCode = error?.code;
|
|
14085
|
+
const errMessage = error instanceof Error ? error.message : String(error);
|
|
14086
|
+
const isNotFound = errCode === "not_found" || /not found/i.test(errMessage);
|
|
14087
|
+
return {
|
|
14088
|
+
changed: false,
|
|
14089
|
+
scope: "workspace",
|
|
14090
|
+
agentId,
|
|
14091
|
+
status: "failed",
|
|
14092
|
+
message: isNotFound ? `Agent '${agentId}' not found in catalog.` : `Failed to download agent: ${errMessage}`
|
|
14093
|
+
};
|
|
14094
|
+
}
|
|
14095
|
+
if (files.length === 0) {
|
|
14096
|
+
return {
|
|
14097
|
+
changed: false,
|
|
14098
|
+
scope: "workspace",
|
|
14099
|
+
agentId,
|
|
14100
|
+
status: "failed",
|
|
14101
|
+
message: "Catalog returned no files for agent."
|
|
14102
|
+
};
|
|
14103
|
+
}
|
|
14104
|
+
try {
|
|
14105
|
+
await store.writeAgentFiles(agentId, "workspace", files);
|
|
14106
|
+
await store.addInstalledAgent({
|
|
14107
|
+
id: remoteId,
|
|
14108
|
+
name: agentId,
|
|
14109
|
+
scope: "workspace",
|
|
14110
|
+
installedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
14111
|
+
});
|
|
14112
|
+
} catch (error) {
|
|
14113
|
+
const errMessage = error instanceof Error ? error.message : String(error);
|
|
14114
|
+
return {
|
|
14115
|
+
changed: false,
|
|
14116
|
+
scope: "workspace",
|
|
14117
|
+
agentId,
|
|
14118
|
+
status: "failed",
|
|
14119
|
+
message: `Failed to write agent files: ${errMessage}`
|
|
14120
|
+
};
|
|
14121
|
+
}
|
|
13901
14122
|
return {
|
|
13902
14123
|
changed: true,
|
|
13903
14124
|
scope: "workspace",
|
|
@@ -13908,28 +14129,22 @@ tools:
|
|
|
13908
14129
|
async function handleUninstall(store, workspacePath, parsed) {
|
|
13909
14130
|
const remoteId = getStringFlag(parsed, "id");
|
|
13910
14131
|
if (!remoteId) {
|
|
13911
|
-
throw createServicemeError(
|
|
13912
|
-
"invalid_params",
|
|
13913
|
-
"Expected --id <remoteAgentId>."
|
|
13914
|
-
);
|
|
14132
|
+
throw createServicemeError("invalid_params", "Expected --id <remoteAgentId>.");
|
|
13915
14133
|
}
|
|
13916
14134
|
const agentId = normalizeAgentIdOrThrow(store, remoteId);
|
|
13917
|
-
await
|
|
13918
|
-
|
|
13919
|
-
|
|
13920
|
-
|
|
13921
|
-
|
|
13922
|
-
}
|
|
13923
|
-
);
|
|
13924
|
-
await fs12__namespace.rm(path11__namespace.join(workspacePath, ".github", "agents", agentId), {
|
|
14135
|
+
await fs12.rm(path10.join(workspacePath, ".github", "agents", `${agentId}.agent.md`), {
|
|
14136
|
+
recursive: true,
|
|
14137
|
+
force: true
|
|
14138
|
+
});
|
|
14139
|
+
await fs12.rm(path10.join(workspacePath, ".github", "agents", agentId), {
|
|
13925
14140
|
recursive: true,
|
|
13926
14141
|
force: true
|
|
13927
14142
|
});
|
|
13928
|
-
await
|
|
14143
|
+
await fs12.rm(path10.join(store.getUserAgentsRootPath(), `${agentId}.agent.md`), {
|
|
13929
14144
|
recursive: true,
|
|
13930
14145
|
force: true
|
|
13931
14146
|
});
|
|
13932
|
-
await
|
|
14147
|
+
await fs12.rm(path10.join(store.getUserAgentsRootPath(), agentId), {
|
|
13933
14148
|
recursive: true,
|
|
13934
14149
|
force: true
|
|
13935
14150
|
});
|
|
@@ -13949,22 +14164,11 @@ async function handleMove(store, workspacePath, parsed) {
|
|
|
13949
14164
|
);
|
|
13950
14165
|
}
|
|
13951
14166
|
if (to !== "workspace" && to !== "user") {
|
|
13952
|
-
throw createServicemeError(
|
|
13953
|
-
"invalid_params",
|
|
13954
|
-
"Expected --to value to be workspace or user."
|
|
13955
|
-
);
|
|
14167
|
+
throw createServicemeError("invalid_params", "Expected --to value to be workspace or user.");
|
|
13956
14168
|
}
|
|
13957
14169
|
const agentId = normalizeAgentIdOrThrow(store, remoteId);
|
|
13958
|
-
const workspaceFlatPath =
|
|
13959
|
-
|
|
13960
|
-
".github",
|
|
13961
|
-
"agents",
|
|
13962
|
-
`${agentId}.agent.md`
|
|
13963
|
-
);
|
|
13964
|
-
const userFlatPath = path11__namespace.join(
|
|
13965
|
-
store.getUserAgentsRootPath(),
|
|
13966
|
-
`${agentId}.agent.md`
|
|
13967
|
-
);
|
|
14170
|
+
const workspaceFlatPath = path10.join(workspacePath, ".github", "agents", `${agentId}.agent.md`);
|
|
14171
|
+
const userFlatPath = path10.join(store.getUserAgentsRootPath(), `${agentId}.agent.md`);
|
|
13968
14172
|
if (to === "user") {
|
|
13969
14173
|
await moveEntry(workspaceFlatPath, userFlatPath);
|
|
13970
14174
|
return {
|
|
@@ -14032,16 +14236,10 @@ async function handlePermissions(store, reconciler, workspacePath, parsed) {
|
|
|
14032
14236
|
const remoteId = getStringFlag(parsed, "id");
|
|
14033
14237
|
const scopeFlag = getStringFlag(parsed, "scope");
|
|
14034
14238
|
if (!remoteId) {
|
|
14035
|
-
throw createServicemeError(
|
|
14036
|
-
"invalid_params",
|
|
14037
|
-
"Expected --id <remoteAgentId>."
|
|
14038
|
-
);
|
|
14239
|
+
throw createServicemeError("invalid_params", "Expected --id <remoteAgentId>.");
|
|
14039
14240
|
}
|
|
14040
14241
|
if (scopeFlag !== void 0 && scopeFlag !== "workspace" && scopeFlag !== "user") {
|
|
14041
|
-
throw createServicemeError(
|
|
14042
|
-
"invalid_params",
|
|
14043
|
-
"Expected --scope value to be workspace or user."
|
|
14044
|
-
);
|
|
14242
|
+
throw createServicemeError("invalid_params", "Expected --scope value to be workspace or user.");
|
|
14045
14243
|
}
|
|
14046
14244
|
const agentId = normalizeAgentIdOrThrow(store, remoteId);
|
|
14047
14245
|
const requestedScope = scopeFlag ?? "workspace";
|
|
@@ -14055,45 +14253,58 @@ async function handlePermissions(store, reconciler, workspacePath, parsed) {
|
|
|
14055
14253
|
};
|
|
14056
14254
|
}
|
|
14057
14255
|
async function moveEntry(fromPath, toPath) {
|
|
14058
|
-
await
|
|
14256
|
+
await fs12.mkdir(path10.dirname(toPath), { recursive: true });
|
|
14059
14257
|
try {
|
|
14060
|
-
await
|
|
14258
|
+
await fs12.rename(fromPath, toPath);
|
|
14061
14259
|
} catch {
|
|
14062
|
-
await
|
|
14063
|
-
await
|
|
14260
|
+
await fs12.cp(fromPath, toPath, { recursive: true });
|
|
14261
|
+
await fs12.rm(fromPath, { recursive: true, force: true });
|
|
14064
14262
|
}
|
|
14065
14263
|
}
|
|
14066
14264
|
async function readAgentContent(store, workspacePath, agentId, scope) {
|
|
14067
|
-
const root2 = scope === "workspace" ?
|
|
14265
|
+
const root2 = scope === "workspace" ? path10.join(workspacePath, store.getWorkspaceAgentsRootPath()) : store.getUserAgentsRootPath();
|
|
14068
14266
|
const candidates = [
|
|
14069
|
-
|
|
14070
|
-
|
|
14267
|
+
path10.join(root2, `${agentId}.agent.md`),
|
|
14268
|
+
path10.join(root2, agentId, `${agentId}.agent.md`)
|
|
14071
14269
|
];
|
|
14072
14270
|
for (const candidate of candidates) {
|
|
14073
14271
|
try {
|
|
14074
|
-
return await
|
|
14272
|
+
return await fs12.readFile(candidate, "utf8");
|
|
14075
14273
|
} catch {
|
|
14076
14274
|
}
|
|
14077
14275
|
}
|
|
14078
|
-
throw createServicemeError(
|
|
14079
|
-
"not_found",
|
|
14080
|
-
`Agent file not found for ${agentId} in ${scope} scope.`
|
|
14081
|
-
);
|
|
14276
|
+
throw createServicemeError("not_found", `Agent file not found for ${agentId} in ${scope} scope.`);
|
|
14082
14277
|
}
|
|
14083
14278
|
|
|
14084
14279
|
// src/commands/bridge.ts
|
|
14085
14280
|
init_src2();
|
|
14086
14281
|
|
|
14087
14282
|
// src/bridge/BridgeServer.ts
|
|
14283
|
+
var readline = __toESM(require("readline"));
|
|
14088
14284
|
init_src();
|
|
14089
14285
|
|
|
14090
14286
|
// src/version.ts
|
|
14091
14287
|
var SERVICEME_CLI_NAME = "serviceme";
|
|
14092
|
-
var SERVICEME_CLI_VERSION = "0.1.
|
|
14288
|
+
var SERVICEME_CLI_VERSION = "0.1.8";
|
|
14093
14289
|
|
|
14094
14290
|
// src/bridge/AgentBridgeHandler.ts
|
|
14291
|
+
var fs13 = __toESM(require("fs/promises"));
|
|
14292
|
+
var os3 = __toESM(require("os"));
|
|
14293
|
+
var path11 = __toESM(require("path"));
|
|
14095
14294
|
init_src2();
|
|
14096
14295
|
init_src();
|
|
14296
|
+
|
|
14297
|
+
// src/bridge/marketplaceEnv.ts
|
|
14298
|
+
var SERVICEME_MARKETPLACE_BASE_URL_ENV = "SERVICEME_MARKETPLACE_BASE_URL";
|
|
14299
|
+
function readMarketplaceBaseUrl() {
|
|
14300
|
+
const raw = process.env[SERVICEME_MARKETPLACE_BASE_URL_ENV];
|
|
14301
|
+
if (typeof raw !== "string" || raw.length === 0) {
|
|
14302
|
+
return void 0;
|
|
14303
|
+
}
|
|
14304
|
+
return raw;
|
|
14305
|
+
}
|
|
14306
|
+
|
|
14307
|
+
// src/bridge/AgentBridgeHandler.ts
|
|
14097
14308
|
function normalizeAgentIdOrThrow2(store, remoteId) {
|
|
14098
14309
|
try {
|
|
14099
14310
|
return store.normalizeRemoteAgentId(remoteId);
|
|
@@ -14132,19 +14343,16 @@ var AgentBridgeHandler = class {
|
|
|
14132
14343
|
hasConflict: agent.hasConflict,
|
|
14133
14344
|
tools: agent.tools,
|
|
14134
14345
|
source: agent.source,
|
|
14135
|
-
localAgentPath: workspaceInstalled || userInstalled ? workspaceInstalled ?
|
|
14346
|
+
localAgentPath: workspaceInstalled || userInstalled ? workspaceInstalled ? path11.join(
|
|
14136
14347
|
context.workspacePath,
|
|
14137
14348
|
context.store.getWorkspaceAgentsRootPath(),
|
|
14138
14349
|
`${agentId}.agent.md`
|
|
14139
|
-
) :
|
|
14140
|
-
context.store.getUserAgentsRootPath(),
|
|
14141
|
-
`${agentId}.agent.md`
|
|
14142
|
-
) : void 0,
|
|
14350
|
+
) : path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`) : void 0,
|
|
14143
14351
|
canPublish: agent.canPublish,
|
|
14144
14352
|
workspaceState: this.makeScopeState(
|
|
14145
14353
|
"workspace",
|
|
14146
14354
|
workspaceInstalled,
|
|
14147
|
-
|
|
14355
|
+
path11.join(
|
|
14148
14356
|
context.workspacePath,
|
|
14149
14357
|
context.store.getWorkspaceAgentsRootPath(),
|
|
14150
14358
|
`${agentId}.agent.md`
|
|
@@ -14153,10 +14361,7 @@ var AgentBridgeHandler = class {
|
|
|
14153
14361
|
userState: this.makeScopeState(
|
|
14154
14362
|
"user",
|
|
14155
14363
|
userInstalled,
|
|
14156
|
-
|
|
14157
|
-
context.store.getUserAgentsRootPath(),
|
|
14158
|
-
`${agentId}.agent.md`
|
|
14159
|
-
)
|
|
14364
|
+
path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`)
|
|
14160
14365
|
)
|
|
14161
14366
|
});
|
|
14162
14367
|
}
|
|
@@ -14176,7 +14381,7 @@ var AgentBridgeHandler = class {
|
|
|
14176
14381
|
hasConflict: false,
|
|
14177
14382
|
tools: [],
|
|
14178
14383
|
source: "local",
|
|
14179
|
-
localAgentPath:
|
|
14384
|
+
localAgentPath: path11.join(
|
|
14180
14385
|
context.workspacePath,
|
|
14181
14386
|
context.store.getWorkspaceAgentsRootPath(),
|
|
14182
14387
|
`${agentId}.agent.md`
|
|
@@ -14184,7 +14389,7 @@ var AgentBridgeHandler = class {
|
|
|
14184
14389
|
workspaceState: this.makeScopeState(
|
|
14185
14390
|
"workspace",
|
|
14186
14391
|
true,
|
|
14187
|
-
|
|
14392
|
+
path11.join(
|
|
14188
14393
|
context.workspacePath,
|
|
14189
14394
|
context.store.getWorkspaceAgentsRootPath(),
|
|
14190
14395
|
`${agentId}.agent.md`
|
|
@@ -14193,10 +14398,7 @@ var AgentBridgeHandler = class {
|
|
|
14193
14398
|
userState: this.makeScopeState(
|
|
14194
14399
|
"user",
|
|
14195
14400
|
userSet.has(agentId),
|
|
14196
|
-
|
|
14197
|
-
context.store.getUserAgentsRootPath(),
|
|
14198
|
-
`${agentId}.agent.md`
|
|
14199
|
-
)
|
|
14401
|
+
path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`)
|
|
14200
14402
|
)
|
|
14201
14403
|
});
|
|
14202
14404
|
}
|
|
@@ -14216,14 +14418,11 @@ var AgentBridgeHandler = class {
|
|
|
14216
14418
|
hasConflict: false,
|
|
14217
14419
|
tools: [],
|
|
14218
14420
|
source: "local",
|
|
14219
|
-
localAgentPath:
|
|
14220
|
-
context.store.getUserAgentsRootPath(),
|
|
14221
|
-
`${agentId}.agent.md`
|
|
14222
|
-
),
|
|
14421
|
+
localAgentPath: path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`),
|
|
14223
14422
|
workspaceState: this.makeScopeState(
|
|
14224
14423
|
"workspace",
|
|
14225
14424
|
workspaceSet.has(agentId),
|
|
14226
|
-
|
|
14425
|
+
path11.join(
|
|
14227
14426
|
context.workspacePath,
|
|
14228
14427
|
context.store.getWorkspaceAgentsRootPath(),
|
|
14229
14428
|
`${agentId}.agent.md`
|
|
@@ -14232,18 +14431,12 @@ var AgentBridgeHandler = class {
|
|
|
14232
14431
|
userState: this.makeScopeState(
|
|
14233
14432
|
"user",
|
|
14234
14433
|
true,
|
|
14235
|
-
|
|
14236
|
-
context.store.getUserAgentsRootPath(),
|
|
14237
|
-
`${agentId}.agent.md`
|
|
14238
|
-
)
|
|
14434
|
+
path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`)
|
|
14239
14435
|
)
|
|
14240
14436
|
});
|
|
14241
14437
|
}
|
|
14242
14438
|
return {
|
|
14243
|
-
configPath:
|
|
14244
|
-
context.workspacePath,
|
|
14245
|
-
context.store.getWorkspaceStateFilePath()
|
|
14246
|
-
),
|
|
14439
|
+
configPath: path11.join(context.workspacePath, context.store.getWorkspaceStateFilePath()),
|
|
14247
14440
|
userAgentsPath: context.userAgentsRoot,
|
|
14248
14441
|
agents: [...byId.values()].sort((a, b) => a.id.localeCompare(b.id)),
|
|
14249
14442
|
installedAgentIds: [.../* @__PURE__ */ new Set([...workspaceAgentIds, ...userAgentIds])],
|
|
@@ -14285,12 +14478,15 @@ var AgentBridgeHandler = class {
|
|
|
14285
14478
|
}
|
|
14286
14479
|
createContext(workspacePath) {
|
|
14287
14480
|
const resolvedWorkspacePath = workspacePath ?? process.cwd();
|
|
14288
|
-
const userAgentsRoot =
|
|
14481
|
+
const userAgentsRoot = path11.join(os3.homedir(), ".copilot", "agents");
|
|
14289
14482
|
const store = new AgentStore({
|
|
14290
14483
|
workspacePath: resolvedWorkspacePath,
|
|
14291
14484
|
userAgentsRoot
|
|
14292
14485
|
});
|
|
14293
|
-
const
|
|
14486
|
+
const marketplaceBaseUrl = readMarketplaceBaseUrl();
|
|
14487
|
+
const catalogClient = new AgentCatalogClient(
|
|
14488
|
+
marketplaceBaseUrl ? { baseUrl: marketplaceBaseUrl } : {}
|
|
14489
|
+
);
|
|
14294
14490
|
const reconciler = new AgentReconciler({
|
|
14295
14491
|
agentStore: store,
|
|
14296
14492
|
catalogClient
|
|
@@ -14327,12 +14523,12 @@ var AgentBridgeHandler = class {
|
|
|
14327
14523
|
};
|
|
14328
14524
|
}
|
|
14329
14525
|
async applyMutationSideEffect(context, request) {
|
|
14330
|
-
const workspaceFlatPath =
|
|
14526
|
+
const workspaceFlatPath = path11.join(
|
|
14331
14527
|
context.workspacePath,
|
|
14332
14528
|
context.store.getWorkspaceAgentsRootPath(),
|
|
14333
14529
|
`${request.agentId}.agent.md`
|
|
14334
14530
|
);
|
|
14335
|
-
const userFlatPath =
|
|
14531
|
+
const userFlatPath = path11.join(
|
|
14336
14532
|
context.store.getUserAgentsRootPath(),
|
|
14337
14533
|
`${request.agentId}.agent.md`
|
|
14338
14534
|
);
|
|
@@ -14346,9 +14542,9 @@ var AgentBridgeHandler = class {
|
|
|
14346
14542
|
return;
|
|
14347
14543
|
case "uninstall":
|
|
14348
14544
|
if (request.targetScope === "workspace") {
|
|
14349
|
-
await
|
|
14545
|
+
await fs13.rm(workspaceFlatPath, { recursive: true, force: true });
|
|
14350
14546
|
} else {
|
|
14351
|
-
await
|
|
14547
|
+
await fs13.rm(userFlatPath, { recursive: true, force: true });
|
|
14352
14548
|
}
|
|
14353
14549
|
return;
|
|
14354
14550
|
case "move":
|
|
@@ -14363,17 +14559,17 @@ var AgentBridgeHandler = class {
|
|
|
14363
14559
|
}
|
|
14364
14560
|
}
|
|
14365
14561
|
async moveEntry(fromPath, toPath) {
|
|
14366
|
-
await
|
|
14562
|
+
await fs13.mkdir(path11.dirname(toPath), { recursive: true });
|
|
14367
14563
|
try {
|
|
14368
|
-
await
|
|
14564
|
+
await fs13.rename(fromPath, toPath);
|
|
14369
14565
|
} catch {
|
|
14370
|
-
await
|
|
14371
|
-
await
|
|
14566
|
+
await fs13.cp(fromPath, toPath, { recursive: true });
|
|
14567
|
+
await fs13.rm(fromPath, { recursive: true, force: true });
|
|
14372
14568
|
}
|
|
14373
14569
|
}
|
|
14374
14570
|
async writeDefaultAgentFile(targetPath, agentId) {
|
|
14375
|
-
await
|
|
14376
|
-
await
|
|
14571
|
+
await fs13.mkdir(path11.dirname(targetPath), { recursive: true });
|
|
14572
|
+
await fs13.writeFile(
|
|
14377
14573
|
targetPath,
|
|
14378
14574
|
`---
|
|
14379
14575
|
name: ${agentId}
|
|
@@ -14388,17 +14584,14 @@ tools:
|
|
|
14388
14584
|
);
|
|
14389
14585
|
}
|
|
14390
14586
|
async readAgentContent(context, agentId, scope) {
|
|
14391
|
-
const root2 = scope === "workspace" ?
|
|
14392
|
-
context.workspacePath,
|
|
14393
|
-
context.store.getWorkspaceAgentsRootPath()
|
|
14394
|
-
) : context.store.getUserAgentsRootPath();
|
|
14587
|
+
const root2 = scope === "workspace" ? path11.join(context.workspacePath, context.store.getWorkspaceAgentsRootPath()) : context.store.getUserAgentsRootPath();
|
|
14395
14588
|
const candidates = [
|
|
14396
|
-
|
|
14397
|
-
|
|
14589
|
+
path11.join(root2, `${agentId}.agent.md`),
|
|
14590
|
+
path11.join(root2, agentId, `${agentId}.agent.md`)
|
|
14398
14591
|
];
|
|
14399
14592
|
for (const candidate of candidates) {
|
|
14400
14593
|
try {
|
|
14401
|
-
return await
|
|
14594
|
+
return await fs13.readFile(candidate, "utf8");
|
|
14402
14595
|
} catch {
|
|
14403
14596
|
}
|
|
14404
14597
|
}
|
|
@@ -14416,6 +14609,9 @@ function writeBridgeMessage(message) {
|
|
|
14416
14609
|
}
|
|
14417
14610
|
|
|
14418
14611
|
// src/bridge/SkillBridgeHandler.ts
|
|
14612
|
+
var fs14 = __toESM(require("fs/promises"));
|
|
14613
|
+
var os4 = __toESM(require("os"));
|
|
14614
|
+
var path12 = __toESM(require("path"));
|
|
14419
14615
|
init_src2();
|
|
14420
14616
|
init_src();
|
|
14421
14617
|
function normalizeSkillIdOrThrow(store, remoteId) {
|
|
@@ -14461,18 +14657,12 @@ var SkillBridgeHandler = class {
|
|
|
14461
14657
|
hasScripts: skill.hasScripts,
|
|
14462
14658
|
hasHooks: skill.hasHooks,
|
|
14463
14659
|
source: skill.source,
|
|
14464
|
-
localSkillPath: workspaceInstalled || userInstalled ? workspaceInstalled ?
|
|
14465
|
-
context.workspacePath,
|
|
14466
|
-
context.store.getWorkspaceSkillPath(skillId)
|
|
14467
|
-
) : context.store.getUserSkillPath(skillId) : void 0,
|
|
14660
|
+
localSkillPath: workspaceInstalled || userInstalled ? workspaceInstalled ? path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId)) : context.store.getUserSkillPath(skillId) : void 0,
|
|
14468
14661
|
canPublish: skill.canPublish,
|
|
14469
14662
|
workspaceState: this.makeScopeState(
|
|
14470
14663
|
"workspace",
|
|
14471
14664
|
workspaceInstalled,
|
|
14472
|
-
|
|
14473
|
-
context.workspacePath,
|
|
14474
|
-
context.store.getWorkspaceSkillPath(skillId)
|
|
14475
|
-
)
|
|
14665
|
+
path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId))
|
|
14476
14666
|
),
|
|
14477
14667
|
userState: this.makeScopeState(
|
|
14478
14668
|
"user",
|
|
@@ -14496,17 +14686,14 @@ var SkillBridgeHandler = class {
|
|
|
14496
14686
|
installCount: 0,
|
|
14497
14687
|
hasConflict: false,
|
|
14498
14688
|
source: "local",
|
|
14499
|
-
localSkillPath:
|
|
14689
|
+
localSkillPath: path12.join(
|
|
14500
14690
|
context.workspacePath,
|
|
14501
14691
|
context.store.getWorkspaceSkillPath(skillId)
|
|
14502
14692
|
),
|
|
14503
14693
|
workspaceState: this.makeScopeState(
|
|
14504
14694
|
"workspace",
|
|
14505
14695
|
true,
|
|
14506
|
-
|
|
14507
|
-
context.workspacePath,
|
|
14508
|
-
context.store.getWorkspaceSkillPath(skillId)
|
|
14509
|
-
)
|
|
14696
|
+
path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId))
|
|
14510
14697
|
),
|
|
14511
14698
|
userState: this.makeScopeState(
|
|
14512
14699
|
"user",
|
|
@@ -14534,23 +14721,13 @@ var SkillBridgeHandler = class {
|
|
|
14534
14721
|
workspaceState: this.makeScopeState(
|
|
14535
14722
|
"workspace",
|
|
14536
14723
|
workspaceSet.has(skillId),
|
|
14537
|
-
|
|
14538
|
-
context.workspacePath,
|
|
14539
|
-
context.store.getWorkspaceSkillPath(skillId)
|
|
14540
|
-
)
|
|
14724
|
+
path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId))
|
|
14541
14725
|
),
|
|
14542
|
-
userState: this.makeScopeState(
|
|
14543
|
-
"user",
|
|
14544
|
-
true,
|
|
14545
|
-
context.store.getUserSkillPath(skillId)
|
|
14546
|
-
)
|
|
14726
|
+
userState: this.makeScopeState("user", true, context.store.getUserSkillPath(skillId))
|
|
14547
14727
|
});
|
|
14548
14728
|
}
|
|
14549
14729
|
return {
|
|
14550
|
-
configPath:
|
|
14551
|
-
context.workspacePath,
|
|
14552
|
-
context.store.getWorkspaceMarkerPath()
|
|
14553
|
-
),
|
|
14730
|
+
configPath: path12.join(context.workspacePath, context.store.getWorkspaceMarkerPath()),
|
|
14554
14731
|
userSkillsPath: context.userSkillsRoot,
|
|
14555
14732
|
skills: [...byId.values()].sort((a, b) => a.id.localeCompare(b.id)),
|
|
14556
14733
|
enabledSkillIds: [],
|
|
@@ -14604,21 +14781,21 @@ var SkillBridgeHandler = class {
|
|
|
14604
14781
|
skills: workspaceSkillIds.map((skillId) => ({
|
|
14605
14782
|
id: skillId,
|
|
14606
14783
|
displayName: skillId,
|
|
14607
|
-
path:
|
|
14608
|
-
context.workspacePath,
|
|
14609
|
-
context.store.getWorkspaceSkillPath(skillId)
|
|
14610
|
-
)
|
|
14784
|
+
path: path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId))
|
|
14611
14785
|
}))
|
|
14612
14786
|
};
|
|
14613
14787
|
}
|
|
14614
14788
|
createContext(workspacePath) {
|
|
14615
14789
|
const resolvedWorkspacePath = workspacePath ?? process.cwd();
|
|
14616
|
-
const userSkillsRoot =
|
|
14790
|
+
const userSkillsRoot = path12.join(os4.homedir(), ".agents", "skills");
|
|
14617
14791
|
const store = new SkillStore({
|
|
14618
14792
|
workspacePath: resolvedWorkspacePath,
|
|
14619
14793
|
userSkillsRoot
|
|
14620
14794
|
});
|
|
14621
|
-
const
|
|
14795
|
+
const marketplaceBaseUrl = readMarketplaceBaseUrl();
|
|
14796
|
+
const catalogClient = new SkillCatalogClient(
|
|
14797
|
+
marketplaceBaseUrl ? { baseUrl: marketplaceBaseUrl } : {}
|
|
14798
|
+
);
|
|
14622
14799
|
const reconciler = new SkillReconciler({
|
|
14623
14800
|
skillStore: store,
|
|
14624
14801
|
catalogClient
|
|
@@ -14655,7 +14832,7 @@ var SkillBridgeHandler = class {
|
|
|
14655
14832
|
};
|
|
14656
14833
|
}
|
|
14657
14834
|
async applyMutationSideEffect(context, request) {
|
|
14658
|
-
const workspaceSkillPath =
|
|
14835
|
+
const workspaceSkillPath = path12.join(
|
|
14659
14836
|
context.workspacePath,
|
|
14660
14837
|
context.store.getWorkspaceSkillPath(request.skillId)
|
|
14661
14838
|
);
|
|
@@ -14663,17 +14840,17 @@ var SkillBridgeHandler = class {
|
|
|
14663
14840
|
switch (request.action) {
|
|
14664
14841
|
case "install":
|
|
14665
14842
|
if (request.targetScope === "workspace") {
|
|
14666
|
-
await
|
|
14843
|
+
await fs14.mkdir(workspaceSkillPath, { recursive: true });
|
|
14667
14844
|
} else {
|
|
14668
|
-
await
|
|
14845
|
+
await fs14.mkdir(userSkillPath, { recursive: true });
|
|
14669
14846
|
await context.store.writeManagedUserSkillMarker(request.skillId);
|
|
14670
14847
|
}
|
|
14671
14848
|
return;
|
|
14672
14849
|
case "uninstall":
|
|
14673
14850
|
if (request.targetScope === "workspace") {
|
|
14674
|
-
await
|
|
14851
|
+
await fs14.rm(workspaceSkillPath, { recursive: true, force: true });
|
|
14675
14852
|
} else {
|
|
14676
|
-
await
|
|
14853
|
+
await fs14.rm(userSkillPath, { recursive: true, force: true });
|
|
14677
14854
|
}
|
|
14678
14855
|
return;
|
|
14679
14856
|
case "move":
|
|
@@ -14689,12 +14866,12 @@ var SkillBridgeHandler = class {
|
|
|
14689
14866
|
}
|
|
14690
14867
|
}
|
|
14691
14868
|
async moveDirectory(fromPath, toPath) {
|
|
14692
|
-
await
|
|
14869
|
+
await fs14.mkdir(path12.dirname(toPath), { recursive: true });
|
|
14693
14870
|
try {
|
|
14694
|
-
await
|
|
14871
|
+
await fs14.rename(fromPath, toPath);
|
|
14695
14872
|
} catch {
|
|
14696
|
-
await
|
|
14697
|
-
await
|
|
14873
|
+
await fs14.cp(fromPath, toPath, { recursive: true });
|
|
14874
|
+
await fs14.rm(fromPath, { recursive: true, force: true });
|
|
14698
14875
|
}
|
|
14699
14876
|
}
|
|
14700
14877
|
};
|
|
@@ -14705,9 +14882,7 @@ var TaskBridgeHandler = class {
|
|
|
14705
14882
|
constructor(logger, emitEvent) {
|
|
14706
14883
|
this.logger = logger;
|
|
14707
14884
|
this.emitEvent = emitEvent;
|
|
14708
|
-
this.engine = new TaskExecutionEngine(
|
|
14709
|
-
(taskType) => getExecutor(taskType)
|
|
14710
|
-
);
|
|
14885
|
+
this.engine = new TaskExecutionEngine((taskType) => getExecutor(taskType));
|
|
14711
14886
|
this.engine.setListener({
|
|
14712
14887
|
onStarted: (params) => this.emitEvent("task.started", params),
|
|
14713
14888
|
onOutput: (params) => this.emitEvent("task.output", params),
|
|
@@ -14762,7 +14937,7 @@ var BridgeServer = class {
|
|
|
14762
14937
|
this.agentHandler = new AgentBridgeHandler();
|
|
14763
14938
|
}
|
|
14764
14939
|
async run() {
|
|
14765
|
-
const reader =
|
|
14940
|
+
const reader = readline.createInterface({
|
|
14766
14941
|
input: process.stdin,
|
|
14767
14942
|
crlfDelay: Number.POSITIVE_INFINITY
|
|
14768
14943
|
});
|
|
@@ -14844,10 +15019,7 @@ var BridgeServer = class {
|
|
|
14844
15019
|
} catch (err) {
|
|
14845
15020
|
const message = err instanceof Error ? err.message : String(err);
|
|
14846
15021
|
if (message.includes("TASK_ALREADY_RUNNING")) {
|
|
14847
|
-
this.writeError(
|
|
14848
|
-
request.id,
|
|
14849
|
-
createServicemeError("task_already_running", message)
|
|
14850
|
-
);
|
|
15022
|
+
this.writeError(request.id, createServicemeError("task_already_running", message));
|
|
14851
15023
|
} else {
|
|
14852
15024
|
this.writeError(request.id, err);
|
|
14853
15025
|
}
|
|
@@ -14867,9 +15039,7 @@ var BridgeServer = class {
|
|
|
14867
15039
|
}
|
|
14868
15040
|
case "skill.marketplace-state": {
|
|
14869
15041
|
const skillRequest = request;
|
|
14870
|
-
const result = await this.skillHandler.getMarketplaceState(
|
|
14871
|
-
skillRequest.params
|
|
14872
|
-
);
|
|
15042
|
+
const result = await this.skillHandler.getMarketplaceState(skillRequest.params);
|
|
14873
15043
|
this.writeSuccess(request.id, result);
|
|
14874
15044
|
return;
|
|
14875
15045
|
}
|
|
@@ -14887,17 +15057,13 @@ var BridgeServer = class {
|
|
|
14887
15057
|
}
|
|
14888
15058
|
case "skill.publishable": {
|
|
14889
15059
|
const skillRequest = request;
|
|
14890
|
-
const result = await this.skillHandler.publishable(
|
|
14891
|
-
skillRequest.params
|
|
14892
|
-
);
|
|
15060
|
+
const result = await this.skillHandler.publishable(skillRequest.params);
|
|
14893
15061
|
this.writeSuccess(request.id, result);
|
|
14894
15062
|
return;
|
|
14895
15063
|
}
|
|
14896
15064
|
case "agent.marketplace-state": {
|
|
14897
15065
|
const agentRequest = request;
|
|
14898
|
-
const result = await this.agentHandler.getMarketplaceState(
|
|
14899
|
-
agentRequest.params
|
|
14900
|
-
);
|
|
15066
|
+
const result = await this.agentHandler.getMarketplaceState(agentRequest.params);
|
|
14901
15067
|
this.writeSuccess(request.id, result);
|
|
14902
15068
|
return;
|
|
14903
15069
|
}
|
|
@@ -14909,19 +15075,14 @@ var BridgeServer = class {
|
|
|
14909
15075
|
}
|
|
14910
15076
|
case "agent.permissions": {
|
|
14911
15077
|
const agentRequest = request;
|
|
14912
|
-
const result = await this.agentHandler.permissions(
|
|
14913
|
-
agentRequest.params
|
|
14914
|
-
);
|
|
15078
|
+
const result = await this.agentHandler.permissions(agentRequest.params);
|
|
14915
15079
|
this.writeSuccess(request.id, result);
|
|
14916
15080
|
return;
|
|
14917
15081
|
}
|
|
14918
15082
|
default:
|
|
14919
15083
|
this.writeError(
|
|
14920
15084
|
request.id,
|
|
14921
|
-
createServicemeError(
|
|
14922
|
-
"invalid_params",
|
|
14923
|
-
"Unsupported bridge method."
|
|
14924
|
-
)
|
|
15085
|
+
createServicemeError("invalid_params", "Unsupported bridge method.")
|
|
14925
15086
|
);
|
|
14926
15087
|
}
|
|
14927
15088
|
} catch (error) {
|
|
@@ -15024,10 +15185,7 @@ async function runEnvCommand(parsed) {
|
|
|
15024
15185
|
const tool = getStringFlag(parsed, "tool");
|
|
15025
15186
|
if (tool) {
|
|
15026
15187
|
if (!isKnownEnvironmentTool(tool)) {
|
|
15027
|
-
throw createServicemeError(
|
|
15028
|
-
"invalid_params",
|
|
15029
|
-
`Unsupported environment tool: ${tool}`
|
|
15030
|
-
);
|
|
15188
|
+
throw createServicemeError("invalid_params", `Unsupported environment tool: ${tool}`);
|
|
15031
15189
|
}
|
|
15032
15190
|
writeSuccess(await inspector.checkTool(tool));
|
|
15033
15191
|
return;
|
|
@@ -15057,10 +15215,7 @@ async function runImageCommand(parsed) {
|
|
|
15057
15215
|
case "compress": {
|
|
15058
15216
|
const format = getStringFlag(parsed, "format");
|
|
15059
15217
|
if (format && !IMAGE_FORMATS.has(format)) {
|
|
15060
|
-
throw createServicemeError(
|
|
15061
|
-
"invalid_params",
|
|
15062
|
-
`Unsupported image format: ${format}`
|
|
15063
|
-
);
|
|
15218
|
+
throw createServicemeError("invalid_params", `Unsupported image format: ${format}`);
|
|
15064
15219
|
}
|
|
15065
15220
|
const options2 = {
|
|
15066
15221
|
quality: Number(getStringFlag(parsed, "quality") ?? "75"),
|
|
@@ -15073,17 +15228,18 @@ async function runImageCommand(parsed) {
|
|
|
15073
15228
|
return;
|
|
15074
15229
|
}
|
|
15075
15230
|
default:
|
|
15076
|
-
throw new Error(
|
|
15077
|
-
"Unsupported image command. Use validate, info, or compress."
|
|
15078
|
-
);
|
|
15231
|
+
throw new Error("Unsupported image command. Use validate, info, or compress.");
|
|
15079
15232
|
}
|
|
15080
15233
|
}
|
|
15081
15234
|
|
|
15082
15235
|
// src/commands/json.ts
|
|
15083
15236
|
init_src2();
|
|
15237
|
+
|
|
15238
|
+
// src/input.ts
|
|
15239
|
+
var fs15 = __toESM(require("fs/promises"));
|
|
15084
15240
|
async function readCommandInput(options2) {
|
|
15085
15241
|
if (options2.filePath) {
|
|
15086
|
-
return
|
|
15242
|
+
return fs15.readFile(options2.filePath, "utf8");
|
|
15087
15243
|
}
|
|
15088
15244
|
if (options2.stdin) {
|
|
15089
15245
|
return readStdin();
|
|
@@ -15119,10 +15275,7 @@ async function runJsonCommand(parsed) {
|
|
|
15119
15275
|
}
|
|
15120
15276
|
case "format":
|
|
15121
15277
|
writeSuccess({
|
|
15122
|
-
output: jsonTools.format(
|
|
15123
|
-
input,
|
|
15124
|
-
Number(getStringFlag(parsed, "indent") ?? "2")
|
|
15125
|
-
)
|
|
15278
|
+
output: jsonTools.format(input, Number(getStringFlag(parsed, "indent") ?? "2"))
|
|
15126
15279
|
});
|
|
15127
15280
|
return;
|
|
15128
15281
|
case "minify":
|
|
@@ -15134,9 +15287,7 @@ async function runJsonCommand(parsed) {
|
|
|
15134
15287
|
writeSuccess(jsonTools.validate(input));
|
|
15135
15288
|
return;
|
|
15136
15289
|
default:
|
|
15137
|
-
throw new Error(
|
|
15138
|
-
"Unsupported json command. Use sort, format, minify, or validate."
|
|
15139
|
-
);
|
|
15290
|
+
throw new Error("Unsupported json command. Use sort, format, minify, or validate.");
|
|
15140
15291
|
}
|
|
15141
15292
|
}
|
|
15142
15293
|
|
|
@@ -15148,10 +15299,7 @@ async function runProjectCommand(parsed) {
|
|
|
15148
15299
|
const action = parsed.positionals[1];
|
|
15149
15300
|
const workspacePath = getStringFlag(parsed, "workspacePath");
|
|
15150
15301
|
if (!workspacePath) {
|
|
15151
|
-
throw createServicemeError(
|
|
15152
|
-
"invalid_params",
|
|
15153
|
-
"Expected --workspacePath <path>."
|
|
15154
|
-
);
|
|
15302
|
+
throw createServicemeError("invalid_params", "Expected --workspacePath <path>.");
|
|
15155
15303
|
}
|
|
15156
15304
|
switch (action) {
|
|
15157
15305
|
case "extract-template": {
|
|
@@ -15170,21 +15318,13 @@ async function runProjectCommand(parsed) {
|
|
|
15170
15318
|
projectFilePattern
|
|
15171
15319
|
};
|
|
15172
15320
|
writeSuccess(
|
|
15173
|
-
await projectTools.extractTemplate(
|
|
15174
|
-
zipPath,
|
|
15175
|
-
workspacePath,
|
|
15176
|
-
tempExtractDir,
|
|
15177
|
-
input
|
|
15178
|
-
)
|
|
15321
|
+
await projectTools.extractTemplate(zipPath, workspacePath, tempExtractDir, input)
|
|
15179
15322
|
);
|
|
15180
15323
|
return;
|
|
15181
15324
|
}
|
|
15182
15325
|
case "install-deps":
|
|
15183
15326
|
writeSuccess(
|
|
15184
|
-
await projectTools.installDependencies(
|
|
15185
|
-
workspacePath,
|
|
15186
|
-
getStringFlag(parsed, "command")
|
|
15187
|
-
)
|
|
15327
|
+
await projectTools.installDependencies(workspacePath, getStringFlag(parsed, "command"))
|
|
15188
15328
|
);
|
|
15189
15329
|
return;
|
|
15190
15330
|
case "make-scripts-executable":
|
|
@@ -15195,10 +15335,7 @@ async function runProjectCommand(parsed) {
|
|
|
15195
15335
|
return;
|
|
15196
15336
|
case "scaffold-prune":
|
|
15197
15337
|
writeSuccess(
|
|
15198
|
-
await projectTools.runScaffoldPrune(
|
|
15199
|
-
workspacePath,
|
|
15200
|
-
getStringFlag(parsed, "preset")
|
|
15201
|
-
)
|
|
15338
|
+
await projectTools.runScaffoldPrune(workspacePath, getStringFlag(parsed, "preset"))
|
|
15202
15339
|
);
|
|
15203
15340
|
return;
|
|
15204
15341
|
default:
|
|
@@ -15209,6 +15346,7 @@ async function runProjectCommand(parsed) {
|
|
|
15209
15346
|
}
|
|
15210
15347
|
|
|
15211
15348
|
// src/commands/schedule.ts
|
|
15349
|
+
var fs16 = __toESM(require("fs"));
|
|
15212
15350
|
init_src2();
|
|
15213
15351
|
init_src();
|
|
15214
15352
|
async function runScheduleCommand(parsed) {
|
|
@@ -15252,26 +15390,17 @@ async function runScheduleCommand(parsed) {
|
|
|
15252
15390
|
function requireWorkspace(parsed) {
|
|
15253
15391
|
const wp = getStringFlag(parsed, "workspacePath");
|
|
15254
15392
|
if (!wp) {
|
|
15255
|
-
throw createServicemeError(
|
|
15256
|
-
"invalid_params",
|
|
15257
|
-
"Missing required flag: --workspacePath"
|
|
15258
|
-
);
|
|
15393
|
+
throw createServicemeError("invalid_params", "Missing required flag: --workspacePath");
|
|
15259
15394
|
}
|
|
15260
|
-
if (!
|
|
15261
|
-
throw createServicemeError(
|
|
15262
|
-
"workspace_not_found",
|
|
15263
|
-
`Workspace path does not exist: ${wp}`
|
|
15264
|
-
);
|
|
15395
|
+
if (!fs16.existsSync(wp)) {
|
|
15396
|
+
throw createServicemeError("workspace_not_found", `Workspace path does not exist: ${wp}`);
|
|
15265
15397
|
}
|
|
15266
15398
|
return wp;
|
|
15267
15399
|
}
|
|
15268
15400
|
function requireId(parsed) {
|
|
15269
15401
|
const id = getStringFlag(parsed, "id");
|
|
15270
15402
|
if (!id) {
|
|
15271
|
-
throw createServicemeError(
|
|
15272
|
-
"invalid_params",
|
|
15273
|
-
"Missing required flag: --id <task-id>"
|
|
15274
|
-
);
|
|
15403
|
+
throw createServicemeError("invalid_params", "Missing required flag: --id <task-id>");
|
|
15275
15404
|
}
|
|
15276
15405
|
return id;
|
|
15277
15406
|
}
|
|
@@ -15292,10 +15421,7 @@ function parsePayload(parsed, taskType) {
|
|
|
15292
15421
|
try {
|
|
15293
15422
|
return JSON.parse(payloadJson);
|
|
15294
15423
|
} catch {
|
|
15295
|
-
throw createServicemeError(
|
|
15296
|
-
"invalid_payload",
|
|
15297
|
-
"Invalid --payload-json: must be valid JSON"
|
|
15298
|
-
);
|
|
15424
|
+
throw createServicemeError("invalid_payload", "Invalid --payload-json: must be valid JSON");
|
|
15299
15425
|
}
|
|
15300
15426
|
}
|
|
15301
15427
|
switch (taskType) {
|
|
@@ -15344,10 +15470,7 @@ function parsePayload(parsed, taskType) {
|
|
|
15344
15470
|
};
|
|
15345
15471
|
}
|
|
15346
15472
|
default:
|
|
15347
|
-
throw createServicemeError(
|
|
15348
|
-
"invalid_payload",
|
|
15349
|
-
`Unknown task type: ${taskType}`
|
|
15350
|
-
);
|
|
15473
|
+
throw createServicemeError("invalid_payload", `Unknown task type: ${taskType}`);
|
|
15351
15474
|
}
|
|
15352
15475
|
}
|
|
15353
15476
|
function parseScheduleType(schedule) {
|
|
@@ -15357,9 +15480,7 @@ function parseScheduleType(schedule) {
|
|
|
15357
15480
|
function validateSchedule(schedule) {
|
|
15358
15481
|
const scheduleType = parseScheduleType(schedule);
|
|
15359
15482
|
if (scheduleType === "interval") {
|
|
15360
|
-
const match = /^every\s+(\d+)\s*(s|sec|m|min|h|hr|d|day)s?$/i.exec(
|
|
15361
|
-
schedule
|
|
15362
|
-
);
|
|
15483
|
+
const match = /^every\s+(\d+)\s*(s|sec|m|min|h|hr|d|day)s?$/i.exec(schedule);
|
|
15363
15484
|
if (!match) {
|
|
15364
15485
|
throw createServicemeError(
|
|
15365
15486
|
"invalid_schedule",
|
|
@@ -15390,11 +15511,7 @@ function filterFields(obj, fields) {
|
|
|
15390
15511
|
async function handleCreate(parsed) {
|
|
15391
15512
|
const wp = requireWorkspace(parsed);
|
|
15392
15513
|
const name = getStringFlag(parsed, "name");
|
|
15393
|
-
if (!name)
|
|
15394
|
-
throw createServicemeError(
|
|
15395
|
-
"invalid_params",
|
|
15396
|
-
"Missing required flag: --name"
|
|
15397
|
-
);
|
|
15514
|
+
if (!name) throw createServicemeError("invalid_params", "Missing required flag: --name");
|
|
15398
15515
|
const typeStr = getStringFlag(parsed, "type");
|
|
15399
15516
|
if (!typeStr)
|
|
15400
15517
|
throw createServicemeError(
|
|
@@ -15409,11 +15526,7 @@ async function handleCreate(parsed) {
|
|
|
15409
15526
|
);
|
|
15410
15527
|
}
|
|
15411
15528
|
const schedule = getStringFlag(parsed, "schedule");
|
|
15412
|
-
if (!schedule)
|
|
15413
|
-
throw createServicemeError(
|
|
15414
|
-
"invalid_params",
|
|
15415
|
-
"Missing required flag: --schedule"
|
|
15416
|
-
);
|
|
15529
|
+
if (!schedule) throw createServicemeError("invalid_params", "Missing required flag: --schedule");
|
|
15417
15530
|
validateSchedule(schedule);
|
|
15418
15531
|
const payload = parsePayload(parsed, taskType);
|
|
15419
15532
|
const description = getStringFlag(parsed, "description");
|
|
@@ -15475,16 +15588,10 @@ function handleGet(parsed) {
|
|
|
15475
15588
|
const mgr = new TaskConfigManager(wp);
|
|
15476
15589
|
const task = mgr.getTask(id);
|
|
15477
15590
|
if (!task) {
|
|
15478
|
-
throw createServicemeError(
|
|
15479
|
-
"task_not_found",
|
|
15480
|
-
`Task '${id}' does not exist in this workspace`
|
|
15481
|
-
);
|
|
15591
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
15482
15592
|
}
|
|
15483
15593
|
const fields = getStringFlag(parsed, "fields");
|
|
15484
|
-
const result = filterFields(
|
|
15485
|
-
task,
|
|
15486
|
-
fields
|
|
15487
|
-
);
|
|
15594
|
+
const result = filterFields(task, fields);
|
|
15488
15595
|
writeSuccess({ task: result });
|
|
15489
15596
|
}
|
|
15490
15597
|
async function handleEdit(parsed) {
|
|
@@ -15493,10 +15600,7 @@ async function handleEdit(parsed) {
|
|
|
15493
15600
|
const mgr = new TaskConfigManager(wp);
|
|
15494
15601
|
const existing = mgr.getTask(id);
|
|
15495
15602
|
if (!existing) {
|
|
15496
|
-
throw createServicemeError(
|
|
15497
|
-
"task_not_found",
|
|
15498
|
-
`Task '${id}' does not exist in this workspace`
|
|
15499
|
-
);
|
|
15603
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
15500
15604
|
}
|
|
15501
15605
|
const input = {};
|
|
15502
15606
|
const name = getStringFlag(parsed, "name");
|
|
@@ -15518,10 +15622,7 @@ async function handleEdit(parsed) {
|
|
|
15518
15622
|
try {
|
|
15519
15623
|
input.payload = JSON.parse(payloadJson);
|
|
15520
15624
|
} catch {
|
|
15521
|
-
throw createServicemeError(
|
|
15522
|
-
"invalid_payload",
|
|
15523
|
-
"Invalid --payload-json: must be valid JSON"
|
|
15524
|
-
);
|
|
15625
|
+
throw createServicemeError("invalid_payload", "Invalid --payload-json: must be valid JSON");
|
|
15525
15626
|
}
|
|
15526
15627
|
}
|
|
15527
15628
|
if (getBooleanFlag(parsed, "dry-run")) {
|
|
@@ -15544,10 +15645,7 @@ function handleDelete(parsed) {
|
|
|
15544
15645
|
const mgr = new TaskConfigManager(wp);
|
|
15545
15646
|
const existing = mgr.getTask(id);
|
|
15546
15647
|
if (!existing) {
|
|
15547
|
-
throw createServicemeError(
|
|
15548
|
-
"task_not_found",
|
|
15549
|
-
`Task '${id}' does not exist in this workspace`
|
|
15550
|
-
);
|
|
15648
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
15551
15649
|
}
|
|
15552
15650
|
if (getBooleanFlag(parsed, "dry-run")) {
|
|
15553
15651
|
writeSuccess({ action: "delete", task: existing });
|
|
@@ -15561,19 +15659,13 @@ function handleToggle(parsed) {
|
|
|
15561
15659
|
const id = requireId(parsed);
|
|
15562
15660
|
const enabledStr = getStringFlag(parsed, "enabled");
|
|
15563
15661
|
if (enabledStr === void 0) {
|
|
15564
|
-
throw createServicemeError(
|
|
15565
|
-
"invalid_params",
|
|
15566
|
-
"Missing required flag: --enabled <true|false>"
|
|
15567
|
-
);
|
|
15662
|
+
throw createServicemeError("invalid_params", "Missing required flag: --enabled <true|false>");
|
|
15568
15663
|
}
|
|
15569
15664
|
const enabled = enabledStr !== "false";
|
|
15570
15665
|
const mgr = new TaskConfigManager(wp);
|
|
15571
15666
|
const existing = mgr.getTask(id);
|
|
15572
15667
|
if (!existing) {
|
|
15573
|
-
throw createServicemeError(
|
|
15574
|
-
"task_not_found",
|
|
15575
|
-
`Task '${id}' does not exist in this workspace`
|
|
15576
|
-
);
|
|
15668
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
15577
15669
|
}
|
|
15578
15670
|
const task = mgr.toggleTask(id, enabled);
|
|
15579
15671
|
writeSuccess({ task });
|
|
@@ -15584,17 +15676,10 @@ async function handleTrigger(parsed) {
|
|
|
15584
15676
|
const mgr = new TaskConfigManager(wp);
|
|
15585
15677
|
const task = mgr.getTask(id);
|
|
15586
15678
|
if (!task) {
|
|
15587
|
-
throw createServicemeError(
|
|
15588
|
-
"task_not_found",
|
|
15589
|
-
`Task '${id}' does not exist in this workspace`
|
|
15590
|
-
);
|
|
15679
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
15591
15680
|
}
|
|
15592
15681
|
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
15593
|
-
const executionPayload = resolveTaskExecutionPayload(
|
|
15594
|
-
task.taskType,
|
|
15595
|
-
task.payload,
|
|
15596
|
-
wp
|
|
15597
|
-
);
|
|
15682
|
+
const executionPayload = resolveTaskExecutionPayload(task.taskType, task.payload, wp);
|
|
15598
15683
|
validateTaskPayload(task.taskType, executionPayload);
|
|
15599
15684
|
const executor = getExecutor(task.taskType);
|
|
15600
15685
|
const result = await executor.execute(executionPayload);
|
|
@@ -15605,7 +15690,7 @@ async function handleTrigger(parsed) {
|
|
|
15605
15690
|
taskName: task.name,
|
|
15606
15691
|
startedAt,
|
|
15607
15692
|
finishedAt,
|
|
15608
|
-
status: result.status,
|
|
15693
|
+
status: result.status === "running" ? "failure" : result.status,
|
|
15609
15694
|
output: result.output,
|
|
15610
15695
|
error: result.error
|
|
15611
15696
|
});
|
|
@@ -15619,9 +15704,7 @@ function handleLogs(parsed) {
|
|
|
15619
15704
|
const fields = getStringFlag(parsed, "fields");
|
|
15620
15705
|
const logMgr = new TaskLogManager(wp);
|
|
15621
15706
|
const { logs, total } = logMgr.getLogs({ taskId, limit });
|
|
15622
|
-
const result = logs.map(
|
|
15623
|
-
(l) => filterFields(l, fields)
|
|
15624
|
-
);
|
|
15707
|
+
const result = logs.map((l) => filterFields(l, fields));
|
|
15625
15708
|
writeSuccess({ logs: result, total });
|
|
15626
15709
|
}
|
|
15627
15710
|
function writeDescribe(action) {
|
|
@@ -15790,6 +15873,9 @@ function writeDescribe(action) {
|
|
|
15790
15873
|
}
|
|
15791
15874
|
|
|
15792
15875
|
// src/commands/scheduler.ts
|
|
15876
|
+
var import_node_child_process4 = require("child_process");
|
|
15877
|
+
var fs17 = __toESM(require("fs"));
|
|
15878
|
+
var path13 = __toESM(require("path"));
|
|
15793
15879
|
init_src2();
|
|
15794
15880
|
init_src();
|
|
15795
15881
|
async function runSchedulerCommand(parsed) {
|
|
@@ -15821,16 +15907,10 @@ async function runSchedulerCommand(parsed) {
|
|
|
15821
15907
|
function requireWorkspace2(parsed) {
|
|
15822
15908
|
const wp = getStringFlag(parsed, "workspacePath");
|
|
15823
15909
|
if (!wp) {
|
|
15824
|
-
throw createServicemeError(
|
|
15825
|
-
"invalid_params",
|
|
15826
|
-
"Missing required flag: --workspacePath"
|
|
15827
|
-
);
|
|
15910
|
+
throw createServicemeError("invalid_params", "Missing required flag: --workspacePath");
|
|
15828
15911
|
}
|
|
15829
|
-
if (!
|
|
15830
|
-
throw createServicemeError(
|
|
15831
|
-
"workspace_not_found",
|
|
15832
|
-
`Workspace path does not exist: ${wp}`
|
|
15833
|
-
);
|
|
15912
|
+
if (!fs17.existsSync(wp)) {
|
|
15913
|
+
throw createServicemeError("workspace_not_found", `Workspace path does not exist: ${wp}`);
|
|
15834
15914
|
}
|
|
15835
15915
|
return wp;
|
|
15836
15916
|
}
|
|
@@ -15848,28 +15928,17 @@ function handleStart(parsed) {
|
|
|
15848
15928
|
}
|
|
15849
15929
|
const cliPath = process.argv[1];
|
|
15850
15930
|
if (!cliPath) {
|
|
15851
|
-
throw createServicemeError(
|
|
15852
|
-
"internal_error",
|
|
15853
|
-
"Cannot determine CLI path for daemon spawn"
|
|
15854
|
-
);
|
|
15931
|
+
throw createServicemeError("internal_error", "Cannot determine CLI path for daemon spawn");
|
|
15855
15932
|
}
|
|
15856
|
-
const logPath =
|
|
15857
|
-
const logDir =
|
|
15858
|
-
if (!
|
|
15859
|
-
|
|
15933
|
+
const logPath = path13.join(wp, ".serviceme", "scheduler.log");
|
|
15934
|
+
const logDir = path13.dirname(logPath);
|
|
15935
|
+
if (!fs17.existsSync(logDir)) {
|
|
15936
|
+
fs17.mkdirSync(logDir, { recursive: true });
|
|
15860
15937
|
}
|
|
15861
15938
|
const spawnCmd = process.execPath;
|
|
15862
|
-
const spawnArgs = [
|
|
15863
|
-
cliPath,
|
|
15864
|
-
"scheduler",
|
|
15865
|
-
"__daemon",
|
|
15866
|
-
"--workspacePath",
|
|
15867
|
-
wp,
|
|
15868
|
-
"--logPath",
|
|
15869
|
-
logPath
|
|
15870
|
-
];
|
|
15939
|
+
const spawnArgs = [cliPath, "scheduler", "__daemon", "--workspacePath", wp, "--logPath", logPath];
|
|
15871
15940
|
if (process.platform === "win32") {
|
|
15872
|
-
|
|
15941
|
+
fs17.appendFileSync(
|
|
15873
15942
|
logPath,
|
|
15874
15943
|
`[scheduler:start] spawning daemon via hidden PowerShell Start-Process: cmd=${spawnCmd}, args=${JSON.stringify(spawnArgs)}, platform=${process.platform}, windowsHide=true
|
|
15875
15944
|
`
|
|
@@ -15879,14 +15948,14 @@ function handleStart(parsed) {
|
|
|
15879
15948
|
writeSuccess({ pid: pid2, status: "started", workspacePath: wp });
|
|
15880
15949
|
return;
|
|
15881
15950
|
}
|
|
15882
|
-
const out =
|
|
15883
|
-
const err =
|
|
15884
|
-
|
|
15951
|
+
const out = fs17.openSync(logPath, "a");
|
|
15952
|
+
const err = fs17.openSync(logPath, "a");
|
|
15953
|
+
fs17.appendFileSync(
|
|
15885
15954
|
logPath,
|
|
15886
15955
|
`[scheduler:start] spawning daemon: cmd=${spawnCmd}, args=${JSON.stringify(spawnArgs)}, platform=${process.platform}, detached=true, windowsHide=true
|
|
15887
15956
|
`
|
|
15888
15957
|
);
|
|
15889
|
-
const child =
|
|
15958
|
+
const child = (0, import_node_child_process4.spawn)(spawnCmd, spawnArgs, {
|
|
15890
15959
|
detached: true,
|
|
15891
15960
|
stdio: ["ignore", out, err],
|
|
15892
15961
|
env: { ...process.env },
|
|
@@ -15895,10 +15964,7 @@ function handleStart(parsed) {
|
|
|
15895
15964
|
child.unref();
|
|
15896
15965
|
const pid = child.pid;
|
|
15897
15966
|
if (pid === void 0) {
|
|
15898
|
-
throw createServicemeError(
|
|
15899
|
-
"internal_error",
|
|
15900
|
-
"Failed to spawn daemon process"
|
|
15901
|
-
);
|
|
15967
|
+
throw createServicemeError("internal_error", "Failed to spawn daemon process");
|
|
15902
15968
|
}
|
|
15903
15969
|
pidMgr.writePid(pid);
|
|
15904
15970
|
writeSuccess({ pid, status: "started", workspacePath: wp });
|
|
@@ -15911,7 +15977,7 @@ function startWindowsDaemon(command, args) {
|
|
|
15911
15977
|
"Write-Output $process.Id"
|
|
15912
15978
|
].join("; ");
|
|
15913
15979
|
const encodedCommand = Buffer.from(script, "utf16le").toString("base64");
|
|
15914
|
-
const result =
|
|
15980
|
+
const result = (0, import_node_child_process4.spawnSync)(
|
|
15915
15981
|
"powershell.exe",
|
|
15916
15982
|
[
|
|
15917
15983
|
"-NoProfile",
|
|
@@ -15992,7 +16058,7 @@ function handleStatus(parsed) {
|
|
|
15992
16058
|
let uptimeSeconds = null;
|
|
15993
16059
|
if (pid !== null) {
|
|
15994
16060
|
try {
|
|
15995
|
-
const stat2 =
|
|
16061
|
+
const stat2 = fs17.statSync(pidMgr.getPidPath());
|
|
15996
16062
|
uptimeSeconds = Math.floor((Date.now() - stat2.mtimeMs) / 1e3);
|
|
15997
16063
|
} catch {
|
|
15998
16064
|
uptimeSeconds = null;
|
|
@@ -16064,6 +16130,9 @@ function writeDescribe2(action) {
|
|
|
16064
16130
|
}
|
|
16065
16131
|
|
|
16066
16132
|
// src/commands/skill.ts
|
|
16133
|
+
var fs18 = __toESM(require("fs/promises"));
|
|
16134
|
+
var os5 = __toESM(require("os"));
|
|
16135
|
+
var path14 = __toESM(require("path"));
|
|
16067
16136
|
init_src2();
|
|
16068
16137
|
init_src();
|
|
16069
16138
|
function normalizeSkillIdOrThrow2(store, remoteId) {
|
|
@@ -16077,14 +16146,11 @@ async function runSkillCommand(parsed) {
|
|
|
16077
16146
|
const action = parsed.positionals[1];
|
|
16078
16147
|
const workspacePath = getStringFlag(parsed, "workspacePath");
|
|
16079
16148
|
if (!workspacePath) {
|
|
16080
|
-
throw createServicemeError(
|
|
16081
|
-
"invalid_params",
|
|
16082
|
-
"Expected --workspacePath <path>."
|
|
16083
|
-
);
|
|
16149
|
+
throw createServicemeError("invalid_params", "Expected --workspacePath <path>.");
|
|
16084
16150
|
}
|
|
16085
16151
|
const store = new SkillStore({
|
|
16086
16152
|
workspacePath,
|
|
16087
|
-
userSkillsRoot:
|
|
16153
|
+
userSkillsRoot: path14.join(os5.homedir(), ".agents", "skills")
|
|
16088
16154
|
});
|
|
16089
16155
|
const catalogClient = new SkillCatalogClient({
|
|
16090
16156
|
baseUrl: getStringFlag(parsed, "baseUrl")
|
|
@@ -16098,7 +16164,7 @@ async function runSkillCommand(parsed) {
|
|
|
16098
16164
|
writeSuccess(await handleList3(store));
|
|
16099
16165
|
return;
|
|
16100
16166
|
case "install":
|
|
16101
|
-
writeSuccess(await handleInstall2(store, workspacePath, parsed));
|
|
16167
|
+
writeSuccess(await handleInstall2(store, workspacePath, parsed, catalogClient));
|
|
16102
16168
|
return;
|
|
16103
16169
|
case "uninstall":
|
|
16104
16170
|
writeSuccess(await handleUninstall2(store, workspacePath, parsed));
|
|
@@ -16134,13 +16200,10 @@ async function handleList3(store) {
|
|
|
16134
16200
|
]
|
|
16135
16201
|
};
|
|
16136
16202
|
}
|
|
16137
|
-
async function handleInstall2(store,
|
|
16203
|
+
async function handleInstall2(store, _workspacePath, parsed, catalogClient) {
|
|
16138
16204
|
const remoteId = getStringFlag(parsed, "id");
|
|
16139
16205
|
if (!remoteId) {
|
|
16140
|
-
throw createServicemeError(
|
|
16141
|
-
"invalid_params",
|
|
16142
|
-
"Expected --id <remoteSkillId>."
|
|
16143
|
-
);
|
|
16206
|
+
throw createServicemeError("invalid_params", "Expected --id <remoteSkillId>.");
|
|
16144
16207
|
}
|
|
16145
16208
|
const skillId = normalizeSkillIdOrThrow2(store, remoteId);
|
|
16146
16209
|
if (!getBooleanFlag(parsed, "confirmed")) {
|
|
@@ -16152,11 +16215,42 @@ async function handleInstall2(store, workspacePath, parsed) {
|
|
|
16152
16215
|
message: "Install requires --confirmed."
|
|
16153
16216
|
};
|
|
16154
16217
|
}
|
|
16155
|
-
|
|
16156
|
-
|
|
16157
|
-
|
|
16158
|
-
)
|
|
16159
|
-
|
|
16218
|
+
let files;
|
|
16219
|
+
try {
|
|
16220
|
+
files = await catalogClient.downloadSkill(remoteId);
|
|
16221
|
+
} catch (error) {
|
|
16222
|
+
const errCode = error?.code;
|
|
16223
|
+
const errMessage = error instanceof Error ? error.message : String(error);
|
|
16224
|
+
const isNotFound = errCode === "not_found" || /not found/i.test(errMessage);
|
|
16225
|
+
return {
|
|
16226
|
+
changed: false,
|
|
16227
|
+
scope: "workspace",
|
|
16228
|
+
skillId,
|
|
16229
|
+
status: "failed",
|
|
16230
|
+
message: isNotFound ? `Skill '${skillId}' not found in catalog.` : `Failed to download skill: ${errMessage}`
|
|
16231
|
+
};
|
|
16232
|
+
}
|
|
16233
|
+
if (files.length === 0) {
|
|
16234
|
+
return {
|
|
16235
|
+
changed: false,
|
|
16236
|
+
scope: "workspace",
|
|
16237
|
+
skillId,
|
|
16238
|
+
status: "failed",
|
|
16239
|
+
message: "Catalog returned no files for skill."
|
|
16240
|
+
};
|
|
16241
|
+
}
|
|
16242
|
+
try {
|
|
16243
|
+
await store.writeSkillFiles(skillId, "workspace", files);
|
|
16244
|
+
} catch (error) {
|
|
16245
|
+
const errMessage = error instanceof Error ? error.message : String(error);
|
|
16246
|
+
return {
|
|
16247
|
+
changed: false,
|
|
16248
|
+
scope: "workspace",
|
|
16249
|
+
skillId,
|
|
16250
|
+
status: "failed",
|
|
16251
|
+
message: `Failed to write skill files: ${errMessage}`
|
|
16252
|
+
};
|
|
16253
|
+
}
|
|
16160
16254
|
return {
|
|
16161
16255
|
changed: true,
|
|
16162
16256
|
scope: "workspace",
|
|
@@ -16167,17 +16261,14 @@ async function handleInstall2(store, workspacePath, parsed) {
|
|
|
16167
16261
|
async function handleUninstall2(store, workspacePath, parsed) {
|
|
16168
16262
|
const remoteId = getStringFlag(parsed, "id");
|
|
16169
16263
|
if (!remoteId) {
|
|
16170
|
-
throw createServicemeError(
|
|
16171
|
-
"invalid_params",
|
|
16172
|
-
"Expected --id <remoteSkillId>."
|
|
16173
|
-
);
|
|
16264
|
+
throw createServicemeError("invalid_params", "Expected --id <remoteSkillId>.");
|
|
16174
16265
|
}
|
|
16175
16266
|
const skillId = normalizeSkillIdOrThrow2(store, remoteId);
|
|
16176
|
-
await
|
|
16267
|
+
await fs18.rm(path14.join(workspacePath, store.getWorkspaceSkillPath(skillId)), {
|
|
16177
16268
|
recursive: true,
|
|
16178
16269
|
force: true
|
|
16179
16270
|
});
|
|
16180
|
-
await
|
|
16271
|
+
await fs18.rm(store.getUserSkillPath(skillId), {
|
|
16181
16272
|
recursive: true,
|
|
16182
16273
|
force: true
|
|
16183
16274
|
});
|
|
@@ -16196,16 +16287,10 @@ async function handleMove2(store, workspacePath, parsed) {
|
|
|
16196
16287
|
);
|
|
16197
16288
|
}
|
|
16198
16289
|
if (to !== "workspace" && to !== "user") {
|
|
16199
|
-
throw createServicemeError(
|
|
16200
|
-
"invalid_params",
|
|
16201
|
-
"Expected --to value to be workspace or user."
|
|
16202
|
-
);
|
|
16290
|
+
throw createServicemeError("invalid_params", "Expected --to value to be workspace or user.");
|
|
16203
16291
|
}
|
|
16204
16292
|
const skillId = normalizeSkillIdOrThrow2(store, remoteId);
|
|
16205
|
-
const workspacePathForSkill =
|
|
16206
|
-
workspacePath,
|
|
16207
|
-
store.getWorkspaceSkillPath(skillId)
|
|
16208
|
-
);
|
|
16293
|
+
const workspacePathForSkill = path14.join(workspacePath, store.getWorkspaceSkillPath(skillId));
|
|
16209
16294
|
const userPathForSkill = store.getUserSkillPath(skillId);
|
|
16210
16295
|
if (to === "user") {
|
|
16211
16296
|
await moveDirectory(workspacePathForSkill, userPathForSkill);
|
|
@@ -16226,12 +16311,12 @@ async function handleMove2(store, workspacePath, parsed) {
|
|
|
16226
16311
|
};
|
|
16227
16312
|
}
|
|
16228
16313
|
async function moveDirectory(fromPath, toPath) {
|
|
16229
|
-
await
|
|
16314
|
+
await fs18.mkdir(path14.dirname(toPath), { recursive: true });
|
|
16230
16315
|
try {
|
|
16231
|
-
await
|
|
16316
|
+
await fs18.rename(fromPath, toPath);
|
|
16232
16317
|
} catch {
|
|
16233
|
-
await
|
|
16234
|
-
await
|
|
16318
|
+
await fs18.cp(fromPath, toPath, { recursive: true });
|
|
16319
|
+
await fs18.rm(fromPath, { recursive: true, force: true });
|
|
16235
16320
|
}
|
|
16236
16321
|
}
|
|
16237
16322
|
async function handleMarketplace2(store, catalogClient) {
|
|
@@ -16283,10 +16368,7 @@ async function handleMarketplace2(store, catalogClient) {
|
|
|
16283
16368
|
async function handleFind(store, catalogClient, parsed) {
|
|
16284
16369
|
const query = getStringFlag(parsed, "query") ?? getStringFlag(parsed, "q");
|
|
16285
16370
|
if (!query) {
|
|
16286
|
-
throw createServicemeError(
|
|
16287
|
-
"invalid_params",
|
|
16288
|
-
"Expected --query <text> or --q <text>."
|
|
16289
|
-
);
|
|
16371
|
+
throw createServicemeError("invalid_params", "Expected --query <text> or --q <text>.");
|
|
16290
16372
|
}
|
|
16291
16373
|
const marketplace = await handleMarketplace2(store, catalogClient);
|
|
16292
16374
|
const loweredQuery = query.toLowerCase();
|
|
@@ -16312,8 +16394,12 @@ async function handleReconcile(store, reconciler) {
|
|
|
16312
16394
|
installGate: "open"
|
|
16313
16395
|
};
|
|
16314
16396
|
}
|
|
16397
|
+
const firstWorkspaceSkillId = workspaceSkillIds[0];
|
|
16398
|
+
if (!firstWorkspaceSkillId) {
|
|
16399
|
+
throw createServicemeError("not_found", "No workspace skill id available for gate check.");
|
|
16400
|
+
}
|
|
16315
16401
|
const gateCheck = await reconciler.mutate({
|
|
16316
|
-
skillId:
|
|
16402
|
+
skillId: firstWorkspaceSkillId,
|
|
16317
16403
|
targetScope: "workspace",
|
|
16318
16404
|
action: "install",
|
|
16319
16405
|
confirmed: false
|
|
@@ -16331,7 +16417,7 @@ async function handlePublishable(store, workspacePath) {
|
|
|
16331
16417
|
skills: workspaceSkillIds.map((skillId) => ({
|
|
16332
16418
|
id: skillId,
|
|
16333
16419
|
displayName: skillId,
|
|
16334
|
-
path:
|
|
16420
|
+
path: path14.join(workspacePath, store.getWorkspaceSkillPath(skillId))
|
|
16335
16421
|
}))
|
|
16336
16422
|
};
|
|
16337
16423
|
}
|