extension-develop 4.0.16 → 4.0.17

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/349.mjs ADDED
@@ -0,0 +1,249 @@
1
+ import { createRequire as __extjsCreateRequire } from "node:module"; const require = __extjsCreateRequire(import.meta.url);
2
+ import pintor from "pintor";
3
+ const GLYPH = '⏵⏵⏵';
4
+ const DEBUG_GLYPH = '···';
5
+ const DEBUG_VALUES = new Set([
6
+ '1',
7
+ 'true',
8
+ 'yes',
9
+ 'on',
10
+ 'debug',
11
+ 'dev',
12
+ 'development'
13
+ ]);
14
+ function isDebug() {
15
+ const raw = process.env.EXTENSION_DEBUG ?? process.env.EXTENSION_AUTHOR_MODE;
16
+ return DEBUG_VALUES.has(String(raw ?? '').trim().toLowerCase());
17
+ }
18
+ function prefix(type) {
19
+ if ('error' === type) return pintor.red(GLYPH);
20
+ if ('warn' === type) return pintor.brightYellow(GLYPH);
21
+ if ('success' === type) return pintor.green(GLYPH);
22
+ if ('debug' === type) return pintor.dim(pintor.gray(DEBUG_GLYPH));
23
+ return pintor.gray(GLYPH);
24
+ }
25
+ const fmt = {
26
+ heading: (title)=>pintor.underline(pintor.blue(title)),
27
+ label: (key)=>pintor.gray(key.toUpperCase()),
28
+ val: (value)=>pintor.underline(value),
29
+ code: (value)=>pintor.blue(value),
30
+ bullet: (value)=>`- ${value}`,
31
+ block (title, rows) {
32
+ const head = fmt.heading(title);
33
+ const body = rows.map(([key, value])=>`${fmt.label(key)} ${value}`).join('\n');
34
+ return `${head}\n${body}`;
35
+ },
36
+ truncate (input, max = 800) {
37
+ const s = (()=>{
38
+ try {
39
+ return 'string' == typeof input ? input : JSON.stringify(input);
40
+ } catch {
41
+ return String(input);
42
+ }
43
+ })();
44
+ return s.length > max ? `${s.slice(0, max)}…` : s;
45
+ }
46
+ };
47
+ const CARD_LABEL_WIDTH = 15;
48
+ function card(input = {}) {
49
+ const version = String(input.version || '').trim();
50
+ const suffix = String(input.suffix || '').trim();
51
+ const head = ` 🧩 ${pintor.brightBlue('Extension.js')}` + (version ? ` ${pintor.gray(version)}` : '') + (suffix ? ` ${suffix}` : '');
52
+ const body = (input.rows || []).filter((row)=>String(row.value || '').trim().length > 0).map((row)=>{
53
+ const label = row.label.padEnd(CARD_LABEL_WIDTH);
54
+ return ` ${label}${pintor.gray(String(row.value).trim())}`;
55
+ });
56
+ return [
57
+ head,
58
+ ...body
59
+ ].join('\n');
60
+ }
61
+ const CARD_KEYS_ENV = 'EXTENSION_CLI_CARD_KEYS';
62
+ const CARD_KEYS_SEPARATOR = '\u001f';
63
+ function isCardKeyClaimed(key) {
64
+ const claimed = String(process.env[CARD_KEYS_ENV] || '');
65
+ if (!claimed) return false;
66
+ return claimed.split(CARD_KEYS_SEPARATOR).includes(key);
67
+ }
68
+ function claimCardKey(key) {
69
+ if (isCardKeyClaimed(key)) return false;
70
+ const claimed = String(process.env[CARD_KEYS_ENV] || '');
71
+ process.env[CARD_KEYS_ENV] = claimed ? `${claimed}${CARD_KEYS_SEPARATOR}${key}` : key;
72
+ return true;
73
+ }
74
+ const GECKO_BROWSERS = new Set([
75
+ 'firefox',
76
+ 'firefox-based',
77
+ 'gecko-based',
78
+ 'librewolf',
79
+ 'waterfox'
80
+ ]);
81
+ function artifactNoun(browser) {
82
+ const name = String(browser || '').trim().toLowerCase();
83
+ if (GECKO_BROWSERS.has(name)) return 'Add-on';
84
+ if (name.includes('gecko') || name.includes('firefox')) return 'Add-on';
85
+ return 'Extension';
86
+ }
87
+ const ENVELOPE_SCHEMA = 1;
88
+ const CODES = {
89
+ E_ARGS: 'E_ARGS',
90
+ E_PROJECT_NOT_FOUND: 'E_PROJECT_NOT_FOUND',
91
+ E_MANIFEST_NOT_FOUND: 'E_MANIFEST_NOT_FOUND',
92
+ E_MANIFEST_INVALID: 'E_MANIFEST_INVALID',
93
+ E_FIRST_COMPILE: 'E_FIRST_COMPILE',
94
+ E_COMPILE: 'E_COMPILE',
95
+ E_BROWSER_NOT_FOUND: 'E_BROWSER_NOT_FOUND',
96
+ E_BROWSER_LAUNCH: 'E_BROWSER_LAUNCH',
97
+ E_PROFILE_LOCKED: 'E_PROFILE_LOCKED',
98
+ E_READY_TIMEOUT: 'E_READY_TIMEOUT',
99
+ E_SESSION_EXISTS: 'E_SESSION_EXISTS',
100
+ E_CONTROL_DENIED: 'E_CONTROL_DENIED',
101
+ E_CONTROL_UNAVAILABLE: 'E_CONTROL_UNAVAILABLE',
102
+ E_TOKEN_MISSING: 'E_TOKEN_MISSING',
103
+ E_NETWORK: 'E_NETWORK',
104
+ E_INTERRUPTED: 'E_INTERRUPTED',
105
+ E_NOT_IMPLEMENTED: 'E_NOT_IMPLEMENTED',
106
+ E_INTERNAL: 'E_INTERNAL',
107
+ E_UNSUPPORTED_BROWSER: 'E_UNSUPPORTED_BROWSER',
108
+ E_INVALID_OPTION: 'E_INVALID_OPTION',
109
+ E_PORT_UNAVAILABLE: 'E_PORT_UNAVAILABLE',
110
+ E_DEPENDENCY_INSTALL: 'E_DEPENDENCY_INSTALL',
111
+ E_TEMPLATE_NOT_FOUND: 'E_TEMPLATE_NOT_FOUND',
112
+ E_DESTINATION_NOT_EMPTY: 'E_DESTINATION_NOT_EMPTY',
113
+ E_DESTINATION_NOT_WRITABLE: 'E_DESTINATION_NOT_WRITABLE',
114
+ E_BROWSER_DOWNLOAD: 'E_BROWSER_DOWNLOAD',
115
+ E_SESSION_NOT_FOUND: 'E_SESSION_NOT_FOUND',
116
+ E_EVAL_REFUSED: 'E_EVAL_REFUSED',
117
+ E_TARGET_NOT_FOUND: 'E_TARGET_NOT_FOUND',
118
+ E_TIMEOUT: 'E_TIMEOUT',
119
+ E_PUBLISH_REJECTED: 'E_PUBLISH_REJECTED',
120
+ E_AUTH_REQUIRED: 'E_AUTH_REQUIRED',
121
+ E_SAFARI_TOOLCHAIN: 'E_SAFARI_TOOLCHAIN',
122
+ E_EVAL: 'E_EVAL',
123
+ E_INSPECT: 'E_INSPECT',
124
+ E_STORAGE: 'E_STORAGE',
125
+ E_LOGS_NOT_FOUND: 'E_LOGS_NOT_FOUND',
126
+ E_READY_ERROR_STATUS: 'E_READY_ERROR_STATUS',
127
+ E_COMMAND_UNSUPPORTED_FOR_TARGET: 'E_COMMAND_UNSUPPORTED_FOR_TARGET',
128
+ E_FLAG_VALUE_INVALID: 'E_FLAG_VALUE_INVALID',
129
+ E_FLAG_NOT_SUPPORTED_HERE: 'E_FLAG_NOT_SUPPORTED_HERE',
130
+ E_DEV_SERVER_START: 'E_DEV_SERVER_START',
131
+ E_DOCTOR_CHECKS_FAILED: 'E_DOCTOR_CHECKS_FAILED',
132
+ E_TELEMETRY_WRITE: 'E_TELEMETRY_WRITE',
133
+ E_PREVIEW_NO_DIST: 'E_PREVIEW_NO_DIST',
134
+ E_BROWSER_UNINSTALL: 'E_BROWSER_UNINSTALL',
135
+ E_NODE_VERSION: 'E_NODE_VERSION',
136
+ E_UNKNOWN_COMMAND: 'E_UNKNOWN_COMMAND',
137
+ E_REMOVED_FLAG: 'E_REMOVED_FLAG',
138
+ E_BROWSER_NOT_INSTALLABLE: 'E_BROWSER_NOT_INSTALLABLE',
139
+ E_PARENT_GONE: 'E_PARENT_GONE',
140
+ E_REMOTE_URL_UNSUPPORTED: 'E_REMOTE_URL_UNSUPPORTED',
141
+ E_CONFIG_LOAD: 'E_CONFIG_LOAD',
142
+ E_MANAGED_DEP_CONFLICT: 'E_MANAGED_DEP_CONFLICT',
143
+ E_TYPES_EMIT: 'E_TYPES_EMIT',
144
+ E_TSCONFIG_MISSING: 'E_TSCONFIG_MISSING',
145
+ E_OPTIONAL_DEP_UNRESOLVED: 'E_OPTIONAL_DEP_UNRESOLVED',
146
+ E_OPTIONAL_DEP_LOAD: 'E_OPTIONAL_DEP_LOAD',
147
+ E_OPTIONAL_DEP_UNKNOWN: 'E_OPTIONAL_DEP_UNKNOWN',
148
+ E_COMPANION_EXTENSION_PATH: 'E_COMPANION_EXTENSION_PATH',
149
+ E_MANIFEST_IN_PUBLIC: 'E_MANIFEST_IN_PUBLIC',
150
+ E_RUNTIME_NOT_FOUND: 'E_RUNTIME_NOT_FOUND',
151
+ E_MANIFEST_SHAPE: 'E_MANIFEST_SHAPE',
152
+ E_MANIFEST_PAGE_MISSING: 'E_MANIFEST_PAGE_MISSING',
153
+ E_MANIFEST_VERSION_UNSUPPORTED: 'E_MANIFEST_VERSION_UNSUPPORTED',
154
+ E_MANIFEST_LOAD_BLOCKERS: 'E_MANIFEST_LOAD_BLOCKERS',
155
+ E_MANIFEST_PERMISSION_MISSING: 'E_MANIFEST_PERMISSION_MISSING',
156
+ E_MANIFEST_MSG_KEY_MISSING: 'E_MANIFEST_MSG_KEY_MISSING',
157
+ E_MANIFEST_EMIT: 'E_MANIFEST_EMIT',
158
+ E_RESTART_REQUIRED: 'E_RESTART_REQUIRED',
159
+ E_COMPILE_FATAL: 'E_COMPILE_FATAL',
160
+ E_MODULE_NOT_FOUND: 'E_MODULE_NOT_FOUND',
161
+ E_ENTRY_NOT_FOUND: 'E_ENTRY_NOT_FOUND',
162
+ E_ASSET_MISSING: 'E_ASSET_MISSING',
163
+ E_SCRIPT_DEP_MISSING: 'E_SCRIPT_DEP_MISSING',
164
+ E_RESERVED_FOLDER: 'E_RESERVED_FOLDER',
165
+ E_CSS_PARSE: 'E_CSS_PARSE',
166
+ E_CSS_PREPROCESSOR_MISSING: 'E_CSS_PREPROCESSOR_MISSING',
167
+ E_CSS_DEAD_REF: 'E_CSS_DEAD_REF',
168
+ E_INTEGRATION_INSTALL: 'E_INTEGRATION_INSTALL',
169
+ E_POLYFILL_NOT_FOUND: 'E_POLYFILL_NOT_FOUND',
170
+ E_LOCALES_LAYOUT: 'E_LOCALES_LAYOUT',
171
+ E_WAR_INVALID: 'E_WAR_INVALID',
172
+ E_MATCH_PATTERN_INVALID: 'E_MATCH_PATTERN_INVALID',
173
+ E_BACKGROUND_REQUIRED: 'E_BACKGROUND_REQUIRED',
174
+ E_CONTENT_SCRIPT_SYNTAX: 'E_CONTENT_SCRIPT_SYNTAX',
175
+ E_NO_ENTRYPOINTS: 'E_NO_ENTRYPOINTS',
176
+ E_REMOTE_RESOURCE_BLOCKED: 'E_REMOTE_RESOURCE_BLOCKED',
177
+ E_PERF_BUDGET: 'E_PERF_BUDGET',
178
+ E_ZIP_SKIPPED: 'E_ZIP_SKIPPED',
179
+ E_ENV_NO_MATCH: 'E_ENV_NO_MATCH',
180
+ E_REMOTE_FETCH_TIMEOUT: 'E_REMOTE_FETCH_TIMEOUT',
181
+ E_REMOTE_DOWNLOAD: 'E_REMOTE_DOWNLOAD',
182
+ E_REMOTE_ZIP_INVALID: 'E_REMOTE_ZIP_INVALID',
183
+ E_LOCAL_ZIP_NOT_FOUND: 'E_LOCAL_ZIP_NOT_FOUND',
184
+ E_PROJECT_DOWNLOAD_EMPTY: 'E_PROJECT_DOWNLOAD_EMPTY',
185
+ E_BROWSER_BINARY_REQUIRED: 'E_BROWSER_BINARY_REQUIRED',
186
+ E_BROWSER_BINARY_INVALID: 'E_BROWSER_BINARY_INVALID',
187
+ E_BROWSER_EXITED: 'E_BROWSER_EXITED',
188
+ E_BROWSER_START_TIMEOUT: 'E_BROWSER_START_TIMEOUT',
189
+ E_LAUNCH_SKIPPED_COMPILE_ERRORS: 'E_LAUNCH_SKIPPED_COMPILE_ERRORS',
190
+ E_INSTANCE_AMBIGUOUS: 'E_INSTANCE_AMBIGUOUS',
191
+ E_WSL_INTEROP: 'E_WSL_INTEROP',
192
+ E_EXTENSION_LOAD_REFUSED: 'E_EXTENSION_LOAD_REFUSED',
193
+ E_ADDON_INSTALL: 'E_ADDON_INSTALL',
194
+ E_BROWSER_CONNECT: 'E_BROWSER_CONNECT',
195
+ E_BROWSER_CONNECTION_CLOSED: 'E_BROWSER_CONNECTION_CLOSED',
196
+ E_CDP_NOT_CONNECTED: 'E_CDP_NOT_CONNECTED',
197
+ E_CDP_TIMEOUT: 'E_CDP_TIMEOUT',
198
+ E_CDP_OP_FAILED: 'E_CDP_OP_FAILED',
199
+ E_EXTENSION_ID_UNKNOWN: 'E_EXTENSION_ID_UNKNOWN',
200
+ E_RDP_PROTOCOL: 'E_RDP_PROTOCOL',
201
+ E_DEV_SERVER_TIMEOUT: 'E_DEV_SERVER_TIMEOUT',
202
+ E_PORT_IN_USE: 'E_PORT_IN_USE',
203
+ E_SESSION_STOPPED: 'E_SESSION_STOPPED',
204
+ E_LOGS_STREAM_GAP: 'E_LOGS_STREAM_GAP',
205
+ E_CREATE_DIR: 'E_CREATE_DIR',
206
+ E_CREATE_WRITE: 'E_CREATE_WRITE',
207
+ E_CREATE_TESTS_SETUP: 'E_CREATE_TESTS_SETUP',
208
+ E_GIT_SKIPPED: 'E_GIT_SKIPPED',
209
+ E_BROWSER_INSTALL_PRIVILEGE: 'E_BROWSER_INSTALL_PRIVILEGE',
210
+ E_UNINSTALL_NOOP: 'E_UNINSTALL_NOOP'
211
+ };
212
+ function withExtras(base, extras) {
213
+ return {
214
+ ...base,
215
+ ...extras.hint ? {
216
+ hint: extras.hint
217
+ } : {},
218
+ ...extras.truncated ? {
219
+ truncated: true
220
+ } : {},
221
+ warnings: extras.warnings || []
222
+ };
223
+ }
224
+ const ENVELOPE = {
225
+ schema: ENVELOPE_SCHEMA,
226
+ ok (command, status, value, extras = {}) {
227
+ return withExtras({
228
+ schema: ENVELOPE_SCHEMA,
229
+ ok: true,
230
+ command,
231
+ status,
232
+ value,
233
+ error: null,
234
+ warnings: []
235
+ }, extras);
236
+ },
237
+ fail (command, status, error, extras = {}) {
238
+ return withExtras({
239
+ schema: ENVELOPE_SCHEMA,
240
+ ok: false,
241
+ command,
242
+ status,
243
+ value: extras.value ?? null,
244
+ error,
245
+ warnings: []
246
+ }, extras);
247
+ }
248
+ };
249
+ export { CODES, ENVELOPE, artifactNoun, card, claimCardKey, fmt, isDebug, prefix };