@xiuchang-midscene/shared 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/es/oss/index.mjs +1 -1
  2. package/dist/lib/oss/index.js +1 -1
  3. package/package.json +1 -1
  4. package/src/oss/index.ts +1 -1
  5. package/dist/es/baseDB.mjs.bak +0 -109
  6. package/dist/es/build/copy-static.mjs.bak +0 -31
  7. package/dist/es/build/rspack-config.mjs.bak +0 -4
  8. package/dist/es/cli/cli-runner.mjs.bak +0 -140
  9. package/dist/es/cli/index.mjs.bak +0 -2
  10. package/dist/es/common.mjs.bak +0 -37
  11. package/dist/es/constants/example-code.mjs.bak +0 -223
  12. package/dist/es/constants/index.mjs.bak +0 -23
  13. package/dist/es/env/basic.mjs.bak +0 -6
  14. package/dist/es/env/constants.mjs.bak +0 -70
  15. package/dist/es/env/global-config-manager.mjs.bak +0 -94
  16. package/dist/es/env/helper.mjs.bak +0 -43
  17. package/dist/es/env/index.mjs.bak +0 -5
  18. package/dist/es/env/init-debug.mjs.bak +0 -18
  19. package/dist/es/env/model-config-manager.mjs.bak +0 -79
  20. package/dist/es/env/parse-model-config.mjs.bak +0 -132
  21. package/dist/es/env/types.mjs.bak +0 -220
  22. package/dist/es/env/utils.mjs.bak +0 -26
  23. package/dist/es/extractor/constants.mjs.bak +0 -2
  24. package/dist/es/extractor/debug.mjs.bak +0 -6
  25. package/dist/es/extractor/dom-util.mjs.bak +0 -92
  26. package/dist/es/extractor/index.mjs.bak +0 -5
  27. package/dist/es/extractor/locator.mjs.bak +0 -250
  28. package/dist/es/extractor/tree.mjs.bak +0 -78
  29. package/dist/es/extractor/util.mjs.bak +0 -245
  30. package/dist/es/extractor/web-extractor.mjs.bak +0 -303
  31. package/dist/es/img/box-select.mjs.bak +0 -824
  32. package/dist/es/img/canvas-fallback.mjs.bak +0 -238
  33. package/dist/es/img/get-photon.mjs.bak +0 -45
  34. package/dist/es/img/get-sharp.mjs.bak +0 -11
  35. package/dist/es/img/index.mjs.bak +0 -4
  36. package/dist/es/img/info.mjs.bak +0 -29
  37. package/dist/es/img/transform.mjs.bak +0 -295
  38. package/dist/es/index.mjs.bak +0 -4
  39. package/dist/es/logger.mjs.bak +0 -64
  40. package/dist/es/mcp/base-server.mjs.bak +0 -281
  41. package/dist/es/mcp/base-tools.mjs.bak +0 -91
  42. package/dist/es/mcp/chrome-path.mjs.bak +0 -35
  43. package/dist/es/mcp/index.mjs.bak +0 -7
  44. package/dist/es/mcp/inject-report-html-plugin.mjs.bak +0 -53
  45. package/dist/es/mcp/launcher-helper.mjs.bak +0 -52
  46. package/dist/es/mcp/tool-generator.mjs.bak +0 -297
  47. package/dist/es/mcp/types.mjs.bak +0 -3
  48. package/dist/es/node/fs.mjs.bak +0 -44
  49. package/dist/es/node/index.mjs.bak +0 -2
  50. package/dist/es/node/port.mjs.bak +0 -24
  51. package/dist/es/oss/demo.mjs.bak +0 -30
  52. package/dist/es/oss/index.mjs.bak +0 -90
  53. package/dist/es/polyfills/async-hooks.mjs.bak +0 -2
  54. package/dist/es/polyfills/index.mjs.bak +0 -1
  55. package/dist/es/types/index.mjs.bak +0 -3
  56. package/dist/es/us-keyboard-layout.mjs.bak +0 -1414
  57. package/dist/es/utils.mjs.bak +0 -72
  58. package/dist/es/zod-schema-utils.mjs.bak +0 -54
  59. package/dist/lib/baseDB.js.bak +0 -149
  60. package/dist/lib/build/copy-static.js.bak +0 -79
  61. package/dist/lib/build/rspack-config.js.bak +0 -38
  62. package/dist/lib/cli/cli-runner.js.bak +0 -196
  63. package/dist/lib/cli/index.js.bak +0 -48
  64. package/dist/lib/common.js.bak +0 -93
  65. package/dist/lib/constants/example-code.js.bak +0 -260
  66. package/dist/lib/constants/index.js.bak +0 -96
  67. package/dist/lib/env/basic.js.bak +0 -40
  68. package/dist/lib/env/constants.js.bak +0 -113
  69. package/dist/lib/env/global-config-manager.js.bak +0 -128
  70. package/dist/lib/env/helper.js.bak +0 -80
  71. package/dist/lib/env/index.js.bak +0 -90
  72. package/dist/lib/env/init-debug.js.bak +0 -52
  73. package/dist/lib/env/model-config-manager.js.bak +0 -113
  74. package/dist/lib/env/parse-model-config.js.bak +0 -178
  75. package/dist/lib/env/types.js.bak +0 -554
  76. package/dist/lib/env/utils.js.bak +0 -72
  77. package/dist/lib/extractor/constants.js.bak +0 -42
  78. package/dist/lib/extractor/debug.js.bak +0 -12
  79. package/dist/lib/extractor/dom-util.js.bak +0 -153
  80. package/dist/lib/extractor/index.js.bak +0 -81
  81. package/dist/lib/extractor/locator.js.bak +0 -296
  82. package/dist/lib/extractor/tree.js.bak +0 -124
  83. package/dist/lib/extractor/util.js.bak +0 -336
  84. package/dist/lib/extractor/web-extractor.js.bak +0 -349
  85. package/dist/lib/img/box-select.js.bak +0 -875
  86. package/dist/lib/img/canvas-fallback.js.bak +0 -305
  87. package/dist/lib/img/get-photon.js.bak +0 -82
  88. package/dist/lib/img/get-sharp.js.bak +0 -45
  89. package/dist/lib/img/index.js.bak +0 -95
  90. package/dist/lib/img/info.js.bak +0 -83
  91. package/dist/lib/img/transform.js.bak +0 -387
  92. package/dist/lib/index.js.bak +0 -47
  93. package/dist/lib/logger.js.bak +0 -114
  94. package/dist/lib/mcp/base-server.js.bak +0 -331
  95. package/dist/lib/mcp/base-tools.js.bak +0 -125
  96. package/dist/lib/mcp/chrome-path.js.bak +0 -72
  97. package/dist/lib/mcp/index.js.bak +0 -100
  98. package/dist/lib/mcp/inject-report-html-plugin.js.bak +0 -98
  99. package/dist/lib/mcp/launcher-helper.js.bak +0 -86
  100. package/dist/lib/mcp/tool-generator.js.bak +0 -334
  101. package/dist/lib/mcp/types.js.bak +0 -40
  102. package/dist/lib/node/fs.js.bak +0 -97
  103. package/dist/lib/node/index.js.bak +0 -65
  104. package/dist/lib/node/port.js.bak +0 -61
  105. package/dist/lib/oss/demo.js.bak +0 -36
  106. package/dist/lib/oss/index.js.bak +0 -138
  107. package/dist/lib/polyfills/async-hooks.js.bak +0 -36
  108. package/dist/lib/polyfills/index.js.bak +0 -58
  109. package/dist/lib/types/index.js.bak +0 -37
  110. package/dist/lib/us-keyboard-layout.js.bak +0 -1457
  111. package/dist/lib/utils.js.bak +0 -148
  112. package/dist/lib/zod-schema-utils.js.bak +0 -97
  113. package/dist/types/baseDB.d.ts.bak +0 -25
  114. package/dist/types/build/copy-static.d.ts.bak +0 -31
  115. package/dist/types/build/rspack-config.d.ts.bak +0 -8
  116. package/dist/types/cli/cli-runner.d.ts.bak +0 -14
  117. package/dist/types/cli/index.d.ts.bak +0 -2
  118. package/dist/types/common.d.ts.bak +0 -12
  119. package/dist/types/constants/example-code.d.ts.bak +0 -2
  120. package/dist/types/constants/index.d.ts.bak +0 -21
  121. package/dist/types/env/basic.d.ts.bak +0 -6
  122. package/dist/types/env/constants.d.ts.bak +0 -40
  123. package/dist/types/env/global-config-manager.d.ts.bak +0 -32
  124. package/dist/types/env/helper.d.ts.bak +0 -4
  125. package/dist/types/env/index.d.ts.bak +0 -4
  126. package/dist/types/env/init-debug.d.ts.bak +0 -1
  127. package/dist/types/env/model-config-manager.d.ts.bak +0 -25
  128. package/dist/types/env/parse-model-config.d.ts.bak +0 -31
  129. package/dist/types/env/types.d.ts.bak +0 -318
  130. package/dist/types/env/utils.d.ts.bak +0 -38
  131. package/dist/types/extractor/constants.d.ts.bak +0 -1
  132. package/dist/types/extractor/debug.d.ts.bak +0 -1
  133. package/dist/types/extractor/dom-util.d.ts.bak +0 -56
  134. package/dist/types/extractor/index.d.ts.bak +0 -32
  135. package/dist/types/extractor/locator.d.ts.bak +0 -9
  136. package/dist/types/extractor/tree.d.ts.bak +0 -6
  137. package/dist/types/extractor/util.d.ts.bak +0 -47
  138. package/dist/types/extractor/web-extractor.d.ts.bak +0 -19
  139. package/dist/types/img/box-select.d.ts.bak +0 -26
  140. package/dist/types/img/canvas-fallback.d.ts.bak +0 -105
  141. package/dist/types/img/get-photon.d.ts.bak +0 -19
  142. package/dist/types/img/get-sharp.d.ts.bak +0 -3
  143. package/dist/types/img/index.d.ts.bak +0 -3
  144. package/dist/types/img/info.d.ts.bak +0 -29
  145. package/dist/types/img/transform.d.ts.bak +0 -107
  146. package/dist/types/index.d.ts.bak +0 -4
  147. package/dist/types/logger.d.ts.bak +0 -5
  148. package/dist/types/mcp/base-server.d.ts.bak +0 -93
  149. package/dist/types/mcp/base-tools.d.ts.bak +0 -79
  150. package/dist/types/mcp/chrome-path.d.ts.bak +0 -2
  151. package/dist/types/mcp/index.d.ts.bak +0 -7
  152. package/dist/types/mcp/inject-report-html-plugin.d.ts.bak +0 -18
  153. package/dist/types/mcp/launcher-helper.d.ts.bak +0 -94
  154. package/dist/types/mcp/tool-generator.d.ts.bak +0 -10
  155. package/dist/types/mcp/types.d.ts.bak +0 -103
  156. package/dist/types/node/fs.d.ts.bak +0 -15
  157. package/dist/types/node/index.d.ts.bak +0 -2
  158. package/dist/types/node/port.d.ts.bak +0 -8
  159. package/dist/types/oss/demo.d.ts.bak +0 -1
  160. package/dist/types/oss/index.d.ts.bak +0 -34
  161. package/dist/types/polyfills/async-hooks.d.ts.bak +0 -6
  162. package/dist/types/polyfills/index.d.ts.bak +0 -4
  163. package/dist/types/types/index.d.ts.bak +0 -34
  164. package/dist/types/us-keyboard-layout.d.ts.bak +0 -32
  165. package/dist/types/utils.d.ts.bak +0 -34
  166. package/dist/types/zod-schema-utils.d.ts.bak +0 -23
@@ -1,72 +0,0 @@
1
- import { sha256 } from "js-sha256";
2
- import { v4 } from "uuid";
3
- const ifInBrowser = 'undefined' != typeof window;
4
- const ifInWorker = 'undefined' != typeof WorkerGlobalScope;
5
- const ifInNode = 'undefined' != typeof process && process.versions?.node;
6
- function uuid() {
7
- return v4();
8
- }
9
- const hashMap = {};
10
- function generateHashId(rect, content = '') {
11
- const combined = JSON.stringify({
12
- content,
13
- rect
14
- });
15
- let sliceLength = 5;
16
- let slicedHash = '';
17
- const hashHex = sha256.create().update(combined).hex();
18
- const toLetters = (hex)=>hex.split('').map((char)=>{
19
- const code = Number.parseInt(char, 16);
20
- return String.fromCharCode(97 + code % 26);
21
- }).join('');
22
- const hashLetters = toLetters(hashHex);
23
- while(sliceLength < hashLetters.length - 1){
24
- slicedHash = hashLetters.slice(0, sliceLength);
25
- if (hashMap[slicedHash] && hashMap[slicedHash] !== combined) {
26
- sliceLength++;
27
- continue;
28
- }
29
- hashMap[slicedHash] = combined;
30
- break;
31
- }
32
- return slicedHash;
33
- }
34
- function assert(condition, message) {
35
- if (!condition) throw new Error(message || 'Assertion failed');
36
- }
37
- let isMcp = false;
38
- function setIsMcp(value) {
39
- isMcp = value;
40
- }
41
- function logMsg(...message) {
42
- if (!isMcp) console.log(...message);
43
- }
44
- async function repeat(times, fn) {
45
- for(let i = 0; i < times; i++)await fn(i);
46
- }
47
- const utils_REGEXP_LT = /</g;
48
- const utils_REGEXP_GT = />/g;
49
- const REGEXP_LT_ESCAPE = '__midscene_lt__';
50
- const REGEXP_GT_ESCAPE = '__midscene_gt__';
51
- const escapeScriptTag = (html)=>html.replace(utils_REGEXP_LT, REGEXP_LT_ESCAPE).replace(utils_REGEXP_GT, REGEXP_GT_ESCAPE);
52
- const antiEscapeScriptTag = (html)=>{
53
- const REGEXP_LT = new RegExp(REGEXP_LT_ESCAPE, 'g');
54
- const REGEXP_GT = new RegExp(REGEXP_GT_ESCAPE, 'g');
55
- return html.replace(REGEXP_LT, '<').replace(REGEXP_GT, '>');
56
- };
57
- function replaceIllegalPathCharsAndSpace(str) {
58
- return str.replace(/[:*?"<>|# ]/g, '-');
59
- }
60
- function isPlainObject(value) {
61
- return 'object' == typeof value && null !== value && !Array.isArray(value);
62
- }
63
- function normalizeForComparison(str) {
64
- return str.toLowerCase().replace(/[\s\-_]+/g, '');
65
- }
66
- function mergeAndNormalizeAppNameMapping(defaultMapping, userMapping) {
67
- const result = {};
68
- for (const [key, value] of Object.entries(defaultMapping))result[normalizeForComparison(key)] = value;
69
- if (userMapping) for (const [key, value] of Object.entries(userMapping))result[normalizeForComparison(key)] = value;
70
- return result;
71
- }
72
- export { antiEscapeScriptTag, assert, escapeScriptTag, generateHashId, ifInBrowser, ifInNode, ifInWorker, isPlainObject, logMsg, mergeAndNormalizeAppNameMapping, normalizeForComparison, repeat, replaceIllegalPathCharsAndSpace, setIsMcp, uuid };
@@ -1,54 +0,0 @@
1
- function unwrapZodField(field) {
2
- const f = field;
3
- if (!f._def) return f;
4
- const typeName = f._def.typeName;
5
- if ('ZodOptional' === typeName || 'ZodNullable' === typeName || 'ZodDefault' === typeName) return unwrapZodField(f._def.innerType);
6
- if ('ZodEffects' === typeName) {
7
- if (f._def.schema) return unwrapZodField(f._def.schema);
8
- }
9
- return f;
10
- }
11
- function isMidsceneLocatorField(field) {
12
- const actualField = unwrapZodField(field);
13
- if (actualField._def?.typeName === 'ZodObject') {
14
- const shape = actualField._def.shape?.();
15
- if (shape) {
16
- if ('midscene_location_field_flag' in shape) return true;
17
- if ('prompt' in shape && shape.prompt) return true;
18
- }
19
- }
20
- return false;
21
- }
22
- function getZodTypeName(field, locatorTypeDescription) {
23
- const actualField = unwrapZodField(field);
24
- const fieldTypeName = actualField._def?.typeName;
25
- if ('ZodString' === fieldTypeName) return 'string';
26
- if ('ZodNumber' === fieldTypeName) return 'number';
27
- if ('ZodBoolean' === fieldTypeName) return 'boolean';
28
- if ('ZodArray' === fieldTypeName) return 'array';
29
- if ('ZodObject' === fieldTypeName) {
30
- if (isMidsceneLocatorField(actualField)) return locatorTypeDescription || 'object';
31
- return 'object';
32
- }
33
- if ('ZodEnum' === fieldTypeName) {
34
- const values = actualField._def?.values?.map((option)=>String(`'${option}'`)).join(', ') ?? 'enum';
35
- return `enum(${values})`;
36
- }
37
- if ('ZodUnion' === fieldTypeName) {
38
- const options = actualField._def?.options;
39
- if (options && options.length > 0) {
40
- const types = options.map((opt)=>getZodTypeName(opt, locatorTypeDescription));
41
- return types.join(' | ');
42
- }
43
- return 'union';
44
- }
45
- return 'unknown';
46
- }
47
- function getZodDescription(field) {
48
- if ("description" in field) return field.description || null;
49
- const actualField = unwrapZodField(field);
50
- if ("description" in actualField) return actualField.description || null;
51
- if (isMidsceneLocatorField(actualField)) return 'Location information for the target element';
52
- return null;
53
- }
54
- export { getZodDescription, getZodTypeName, isMidsceneLocatorField, unwrapZodField };
@@ -1,149 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
9
- };
10
- })();
11
- (()=>{
12
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
- })();
14
- (()=>{
15
- __webpack_require__.r = (exports1)=>{
16
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
- value: 'Module'
18
- });
19
- Object.defineProperty(exports1, '__esModule', {
20
- value: true
21
- });
22
- };
23
- })();
24
- var __webpack_exports__ = {};
25
- __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- IndexedDBManager: ()=>IndexedDBManager,
28
- createCleanupFunction: ()=>createCleanupFunction,
29
- withErrorHandling: ()=>withErrorHandling
30
- });
31
- function _define_property(obj, key, value) {
32
- if (key in obj) Object.defineProperty(obj, key, {
33
- value: value,
34
- enumerable: true,
35
- configurable: true,
36
- writable: true
37
- });
38
- else obj[key] = value;
39
- return obj;
40
- }
41
- class IndexedDBManager {
42
- initDB() {
43
- return new Promise((resolve, reject)=>{
44
- const request = indexedDB.open(this.dbName, this.version);
45
- request.onerror = ()=>reject(request.error);
46
- request.onsuccess = ()=>resolve(request.result);
47
- request.onupgradeneeded = (event)=>{
48
- const db = event.target.result;
49
- this.storeConfigs.forEach(({ name, keyPath })=>{
50
- if (!db.objectStoreNames.contains(name)) {
51
- const store = db.createObjectStore(name, {
52
- keyPath
53
- });
54
- store.createIndex('timestamp', 'timestamp', {
55
- unique: false
56
- });
57
- }
58
- });
59
- };
60
- });
61
- }
62
- async withTransaction(storeNames, mode, operation) {
63
- const db = await this.dbPromise;
64
- const transaction = db.transaction(storeNames, mode);
65
- const stores = Array.isArray(storeNames) ? storeNames.map((name)=>transaction.objectStore(name)) : transaction.objectStore(storeNames);
66
- return operation(stores);
67
- }
68
- promisifyRequest(request) {
69
- return new Promise((resolve, reject)=>{
70
- request.onsuccess = ()=>resolve(request.result);
71
- request.onerror = ()=>reject(request.error);
72
- });
73
- }
74
- async put(storeName, data) {
75
- await this.withTransaction(storeName, 'readwrite', async (store)=>{
76
- await this.promisifyRequest(store.put(data));
77
- });
78
- }
79
- async get(storeName, key) {
80
- return this.withTransaction(storeName, 'readonly', async (store)=>this.promisifyRequest(store.get(key)));
81
- }
82
- async getAll(storeName, sortByTimestamp = true) {
83
- return this.withTransaction(storeName, 'readonly', async (store)=>{
84
- const objectStore = store;
85
- const results = sortByTimestamp ? await this.promisifyRequest(objectStore.index('timestamp').getAll()) : await this.promisifyRequest(objectStore.getAll());
86
- return sortByTimestamp ? results.sort((a, b)=>a.timestamp - b.timestamp) : results;
87
- });
88
- }
89
- async clear(storeName) {
90
- await this.withTransaction(storeName, 'readwrite', async (store)=>{
91
- await this.promisifyRequest(store.clear());
92
- });
93
- }
94
- async delete(storeName, key) {
95
- await this.withTransaction(storeName, 'readwrite', async (store)=>{
96
- await this.promisifyRequest(store.delete(key));
97
- });
98
- }
99
- async count(storeName) {
100
- return this.withTransaction(storeName, 'readonly', async (store)=>this.promisifyRequest(store.count()));
101
- }
102
- getDBPromise() {
103
- return this.dbPromise;
104
- }
105
- constructor(dbName, version, storeConfigs){
106
- _define_property(this, "dbPromise", void 0);
107
- _define_property(this, "dbName", void 0);
108
- _define_property(this, "version", void 0);
109
- _define_property(this, "storeConfigs", void 0);
110
- this.dbName = dbName;
111
- this.version = version;
112
- this.storeConfigs = storeConfigs;
113
- this.dbPromise = this.initDB();
114
- }
115
- }
116
- const withErrorHandling = async (operation, errorMessage, defaultValue, onQuotaExceeded)=>{
117
- try {
118
- return await operation();
119
- } catch (e) {
120
- console.error(errorMessage, e);
121
- if (e instanceof Error && 'QuotaExceededError' === e.name && onQuotaExceeded) {
122
- console.log('Storage quota exceeded, running cleanup...');
123
- await onQuotaExceeded();
124
- }
125
- return defaultValue;
126
- }
127
- };
128
- const createCleanupFunction = (dbManager, storeName, maxItems)=>async ()=>{
129
- try {
130
- const results = await dbManager.getAll(storeName);
131
- if (results.length > maxItems) {
132
- const toDelete = results.sort((a, b)=>a.timestamp - b.timestamp).slice(0, results.length - maxItems);
133
- await Promise.all(toDelete.map((item)=>dbManager.delete(storeName, item.id)));
134
- }
135
- } catch (e) {
136
- console.error(`Failed to cleanup ${storeName}:`, e);
137
- }
138
- };
139
- exports.IndexedDBManager = __webpack_exports__.IndexedDBManager;
140
- exports.createCleanupFunction = __webpack_exports__.createCleanupFunction;
141
- exports.withErrorHandling = __webpack_exports__.withErrorHandling;
142
- for(var __rspack_i in __webpack_exports__)if (-1 === [
143
- "IndexedDBManager",
144
- "createCleanupFunction",
145
- "withErrorHandling"
146
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
147
- Object.defineProperty(exports, '__esModule', {
148
- value: true
149
- });
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.n = (module)=>{
5
- var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
- __webpack_require__.d(getter, {
7
- a: getter
8
- });
9
- return getter;
10
- };
11
- })();
12
- (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
18
- };
19
- })();
20
- (()=>{
21
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
- })();
23
- (()=>{
24
- __webpack_require__.r = (exports1)=>{
25
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
- value: 'Module'
27
- });
28
- Object.defineProperty(exports1, '__esModule', {
29
- value: true
30
- });
31
- };
32
- })();
33
- var __webpack_exports__ = {};
34
- __webpack_require__.r(__webpack_exports__);
35
- __webpack_require__.d(__webpack_exports__, {
36
- createCopyStaticPlugin: ()=>createCopyStaticPlugin,
37
- createPlaygroundCopyPlugin: ()=>createPlaygroundCopyPlugin
38
- });
39
- const external_node_fs_namespaceObject = require("node:fs");
40
- var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
41
- const external_node_path_namespaceObject = require("node:path");
42
- var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
43
- const createCopyStaticPlugin = (options)=>({
44
- name: options.pluginName || 'copy-static',
45
- setup (api) {
46
- api.onAfterBuild(async ()=>{
47
- const { srcDir, destDir, faviconPath } = options;
48
- const stat = await external_node_fs_default().promises.lstat(destDir).catch(()=>null);
49
- if (stat?.isSymbolicLink()) await external_node_fs_default().promises.unlink(destDir);
50
- await external_node_fs_default().promises.mkdir(destDir, {
51
- recursive: true
52
- });
53
- await external_node_fs_default().promises.cp(srcDir, destDir, {
54
- recursive: true
55
- });
56
- console.log(`Copied build artifacts from ${srcDir} to ${destDir}`);
57
- if (faviconPath) {
58
- const faviconDest = external_node_path_default().join(destDir, 'favicon.ico');
59
- await external_node_fs_default().promises.copyFile(faviconPath, faviconDest);
60
- console.log(`Copied favicon from ${faviconPath} to ${faviconDest}`);
61
- }
62
- });
63
- }
64
- });
65
- const createPlaygroundCopyPlugin = (srcDir, destDir, pluginName, faviconSrc)=>createCopyStaticPlugin({
66
- srcDir,
67
- destDir,
68
- faviconPath: faviconSrc,
69
- pluginName
70
- });
71
- exports.createCopyStaticPlugin = __webpack_exports__.createCopyStaticPlugin;
72
- exports.createPlaygroundCopyPlugin = __webpack_exports__.createPlaygroundCopyPlugin;
73
- for(var __rspack_i in __webpack_exports__)if (-1 === [
74
- "createCopyStaticPlugin",
75
- "createPlaygroundCopyPlugin"
76
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
77
- Object.defineProperty(exports, '__esModule', {
78
- value: true
79
- });
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
9
- };
10
- })();
11
- (()=>{
12
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
- })();
14
- (()=>{
15
- __webpack_require__.r = (exports1)=>{
16
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
- value: 'Module'
18
- });
19
- Object.defineProperty(exports1, '__esModule', {
20
- value: true
21
- });
22
- };
23
- })();
24
- var __webpack_exports__ = {};
25
- __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- commonIgnoreWarnings: ()=>commonIgnoreWarnings
28
- });
29
- const commonIgnoreWarnings = [
30
- /Critical dependency: the request of a dependency is an expression/
31
- ];
32
- exports.commonIgnoreWarnings = __webpack_exports__.commonIgnoreWarnings;
33
- for(var __rspack_i in __webpack_exports__)if (-1 === [
34
- "commonIgnoreWarnings"
35
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
36
- Object.defineProperty(exports, '__esModule', {
37
- value: true
38
- });
@@ -1,196 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.n = (module)=>{
5
- var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
- __webpack_require__.d(getter, {
7
- a: getter
8
- });
9
- return getter;
10
- };
11
- })();
12
- (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
18
- };
19
- })();
20
- (()=>{
21
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
- })();
23
- (()=>{
24
- __webpack_require__.r = (exports1)=>{
25
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
- value: 'Module'
27
- });
28
- Object.defineProperty(exports1, '__esModule', {
29
- value: true
30
- });
31
- };
32
- })();
33
- var __webpack_exports__ = {};
34
- __webpack_require__.r(__webpack_exports__);
35
- __webpack_require__.d(__webpack_exports__, {
36
- CLIError: ()=>CLIError,
37
- parseCliArgs: ()=>parseCliArgs,
38
- parseValue: ()=>parseValue,
39
- runToolsCLI: ()=>runToolsCLI,
40
- removePrefix: ()=>removePrefix
41
- });
42
- const external_node_fs_namespaceObject = require("node:fs");
43
- const external_node_os_namespaceObject = require("node:os");
44
- const external_node_path_namespaceObject = require("node:path");
45
- const external_dotenv_namespaceObject = require("dotenv");
46
- var external_dotenv_default = /*#__PURE__*/ __webpack_require__.n(external_dotenv_namespaceObject);
47
- const external_logger_js_namespaceObject = require("../logger.js");
48
- function _define_property(obj, key, value) {
49
- if (key in obj) Object.defineProperty(obj, key, {
50
- value: value,
51
- enumerable: true,
52
- configurable: true,
53
- writable: true
54
- });
55
- else obj[key] = value;
56
- return obj;
57
- }
58
- const debug = (0, external_logger_js_namespaceObject.getDebug)('cli-runner');
59
- class CLIError extends Error {
60
- constructor(message, exitCode = 1){
61
- super(message), _define_property(this, "exitCode", void 0), this.exitCode = exitCode;
62
- }
63
- }
64
- function parseValue(raw) {
65
- if (raw.startsWith('{') || raw.startsWith('[')) try {
66
- return JSON.parse(raw);
67
- } catch {}
68
- if (/^-?\d+(\.\d+)?$/.test(raw)) return Number(raw);
69
- return raw;
70
- }
71
- function parseCliArgs(args) {
72
- const result = {};
73
- for(let i = 0; i < args.length; i++){
74
- const arg = args[i];
75
- if (!arg.startsWith('--')) continue;
76
- const body = arg.slice(2);
77
- const eqIdx = body.indexOf('=');
78
- if (eqIdx >= 0) result[body.slice(0, eqIdx)] = parseValue(body.slice(eqIdx + 1));
79
- else if (args[i + 1] && !args[i + 1].startsWith('--')) {
80
- i++;
81
- result[body] = parseValue(args[i]);
82
- } else result[body] = true;
83
- }
84
- return result;
85
- }
86
- function outputContentItem(item, isError) {
87
- switch(item.type){
88
- case 'text':
89
- if (isError) console.error(item.text);
90
- else console.log(item.text);
91
- break;
92
- case 'image':
93
- {
94
- const filename = `screenshot-${Date.now()}.png`;
95
- const filepath = (0, external_node_path_namespaceObject.join)((0, external_node_os_namespaceObject.tmpdir)(), filename);
96
- (0, external_node_fs_namespaceObject.writeFileSync)(filepath, Buffer.from(item.data, 'base64'));
97
- console.log(`Screenshot saved: ${filepath}`);
98
- break;
99
- }
100
- default:
101
- console.log(`[${item.type} content not displayed in CLI]`);
102
- }
103
- }
104
- function outputResult(result) {
105
- for (const item of result.content)outputContentItem(item, result.isError ?? false);
106
- }
107
- function removePrefix(name, prefix) {
108
- if (prefix && name.startsWith(prefix)) return name.slice(prefix.length);
109
- return name;
110
- }
111
- function printCommandHelp(scriptName, cmd) {
112
- const { def } = cmd;
113
- console.log(`\nUsage: ${scriptName} ${cmd.name} [options]\n`);
114
- console.log(def.description);
115
- const schemaEntries = Object.entries(def.schema);
116
- if (schemaEntries.length > 0) {
117
- console.log('\nOptions:');
118
- for (const [key, zodType] of schemaEntries){
119
- const desc = zodType.description ?? '';
120
- console.log(` --${key.padEnd(20)} ${desc}`);
121
- }
122
- }
123
- }
124
- function printVersion(scriptName, version) {
125
- console.log(`${scriptName} v${version}`);
126
- }
127
- function printHelp(scriptName, commands, version) {
128
- if (version) {
129
- printVersion(scriptName, version);
130
- console.log('');
131
- }
132
- console.log(`\nUsage: ${scriptName} <command> [options]\n`);
133
- console.log('Commands:');
134
- for (const { name, def } of commands)console.log(` ${name.padEnd(30)} ${def.description}`);
135
- console.log(` ${'version'.padEnd(30)} Show CLI version`);
136
- console.log(`\nRun "${scriptName} <command> --help" for more info.`);
137
- }
138
- async function runToolsCLI(tools, scriptName, options) {
139
- const rawArgs = options?.argv ?? process.argv.slice(2);
140
- debug('CLI invoked: %s %s', scriptName, rawArgs.join(' '));
141
- const envFile = (0, external_node_path_namespaceObject.join)(process.cwd(), '.env');
142
- if ((0, external_node_fs_namespaceObject.existsSync)(envFile)) external_dotenv_default().config({
143
- path: envFile
144
- });
145
- await tools.initTools();
146
- const commands = tools.getToolDefinitions().map((def)=>({
147
- name: removePrefix(def.name, options?.stripPrefix).toLowerCase(),
148
- def
149
- }));
150
- const cliVersion = options?.version;
151
- const [commandName, ...restArgs] = rawArgs;
152
- if (!commandName || '--help' === commandName || '-h' === commandName) {
153
- debug('showing help (no command or --help flag)');
154
- printHelp(scriptName, commands, cliVersion);
155
- return;
156
- }
157
- if ('--version' === commandName || '-v' === commandName || 'version' === commandName.toLowerCase()) {
158
- if (!cliVersion) throw new CLIError('Failed to determine CLI version');
159
- printVersion(scriptName, cliVersion);
160
- return;
161
- }
162
- const match = commands.find((c)=>c.name.toLowerCase() === commandName.toLowerCase());
163
- if (!match) {
164
- debug('unknown command: %s', commandName);
165
- console.error(`Unknown command: ${commandName}`);
166
- printHelp(scriptName, commands, cliVersion);
167
- throw new CLIError(`Unknown command: ${commandName}`);
168
- }
169
- const parsedArgs = parseCliArgs(restArgs);
170
- debug('command: %s, args: %s', match.name, JSON.stringify(parsedArgs));
171
- if (true === parsedArgs.help) {
172
- debug('showing command help for: %s', match.name);
173
- printCommandHelp(scriptName, match);
174
- return;
175
- }
176
- const result = await match.def.handler(parsedArgs);
177
- debug('command %s completed, isError: %s', match.name, result.isError ?? false);
178
- outputResult(result);
179
- await tools.destroy();
180
- if (result.isError) throw new CLIError('Command failed', 1);
181
- }
182
- exports.CLIError = __webpack_exports__.CLIError;
183
- exports.parseCliArgs = __webpack_exports__.parseCliArgs;
184
- exports.parseValue = __webpack_exports__.parseValue;
185
- exports.removePrefix = __webpack_exports__.removePrefix;
186
- exports.runToolsCLI = __webpack_exports__.runToolsCLI;
187
- for(var __rspack_i in __webpack_exports__)if (-1 === [
188
- "CLIError",
189
- "parseCliArgs",
190
- "parseValue",
191
- "removePrefix",
192
- "runToolsCLI"
193
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
194
- Object.defineProperty(exports, '__esModule', {
195
- value: true
196
- });
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
9
- };
10
- })();
11
- (()=>{
12
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
- })();
14
- (()=>{
15
- __webpack_require__.r = (exports1)=>{
16
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
- value: 'Module'
18
- });
19
- Object.defineProperty(exports1, '__esModule', {
20
- value: true
21
- });
22
- };
23
- })();
24
- var __webpack_exports__ = {};
25
- __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- CLIError: ()=>external_cli_runner_js_namespaceObject.CLIError,
28
- parseCliArgs: ()=>external_cli_runner_js_namespaceObject.parseCliArgs,
29
- parseValue: ()=>external_cli_runner_js_namespaceObject.parseValue,
30
- runToolsCLI: ()=>external_cli_runner_js_namespaceObject.runToolsCLI,
31
- removePrefix: ()=>external_cli_runner_js_namespaceObject.removePrefix
32
- });
33
- const external_cli_runner_js_namespaceObject = require("./cli-runner.js");
34
- exports.CLIError = __webpack_exports__.CLIError;
35
- exports.parseCliArgs = __webpack_exports__.parseCliArgs;
36
- exports.parseValue = __webpack_exports__.parseValue;
37
- exports.removePrefix = __webpack_exports__.removePrefix;
38
- exports.runToolsCLI = __webpack_exports__.runToolsCLI;
39
- for(var __rspack_i in __webpack_exports__)if (-1 === [
40
- "CLIError",
41
- "parseCliArgs",
42
- "parseValue",
43
- "removePrefix",
44
- "runToolsCLI"
45
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
46
- Object.defineProperty(exports, '__esModule', {
47
- value: true
48
- });