@shopify/cli-kit 3.76.2 → 3.77.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/private/node/api.d.ts +27 -4
- package/dist/private/node/api.js +64 -8
- package/dist/private/node/api.js.map +1 -1
- package/dist/private/node/constants.d.ts +2 -0
- package/dist/private/node/constants.js +2 -0
- package/dist/private/node/constants.js.map +1 -1
- package/dist/private/node/session/device-authorization.js +3 -3
- package/dist/private/node/session/device-authorization.js.map +1 -1
- package/dist/private/node/session/schema.d.ts +40 -40
- package/dist/private/node/sleep-with-backoff.d.ts +16 -0
- package/dist/private/node/sleep-with-backoff.js +64 -0
- package/dist/private/node/sleep-with-backoff.js.map +1 -0
- package/dist/public/common/version.d.ts +1 -1
- package/dist/public/common/version.js +1 -1
- package/dist/public/common/version.js.map +1 -1
- package/dist/public/node/api/admin.js +2 -2
- package/dist/public/node/api/admin.js.map +1 -1
- package/dist/public/node/api/graphql.js +6 -1
- package/dist/public/node/api/graphql.js.map +1 -1
- package/dist/public/node/context/fqdn.js +1 -1
- package/dist/public/node/context/fqdn.js.map +1 -1
- package/dist/public/node/environment.d.ts +20 -0
- package/dist/public/node/environment.js +29 -0
- package/dist/public/node/environment.js.map +1 -1
- package/dist/public/node/github.d.ts +1 -0
- package/dist/public/node/github.js +31 -2
- package/dist/public/node/github.js.map +1 -1
- package/dist/public/node/http.d.ts +48 -3
- package/dist/public/node/http.js +134 -24
- package/dist/public/node/http.js.map +1 -1
- package/dist/public/node/monorail.js +1 -1
- package/dist/public/node/monorail.js.map +1 -1
- package/dist/public/node/notifications-system.d.ts +22 -22
- package/dist/public/node/notifications-system.js +6 -2
- package/dist/public/node/notifications-system.js.map +1 -1
- package/dist/public/node/system.d.ts +6 -0
- package/dist/public/node/system.js +8 -0
- package/dist/public/node/system.js.map +1 -1
- package/dist/public/node/testing/test-with-temp-dir.d.ts +9 -0
- package/dist/public/node/testing/test-with-temp-dir.js +14 -0
- package/dist/public/node/testing/test-with-temp-dir.js.map +1 -0
- package/dist/public/node/themes/types.d.ts +3 -2
- package/dist/public/node/themes/types.js.map +1 -1
- package/dist/public/node/vendor/dev_server/dev-server-2016.d.ts +9 -0
- package/dist/public/node/vendor/dev_server/dev-server-2016.js +38 -0
- package/dist/public/node/vendor/dev_server/dev-server-2016.js.map +1 -0
- package/dist/public/node/vendor/dev_server/dev-server-2024.d.ts +9 -0
- package/dist/public/node/vendor/dev_server/dev-server-2024.js +68 -0
- package/dist/public/node/vendor/dev_server/dev-server-2024.js.map +1 -0
- package/dist/public/node/vendor/dev_server/dev-server-spin.d.ts +5 -0
- package/dist/public/node/vendor/dev_server/dev-server-spin.js +28 -0
- package/dist/public/node/vendor/dev_server/dev-server-spin.js.map +1 -0
- package/dist/public/node/vendor/dev_server/dev-server.d.ts +15 -0
- package/dist/public/node/vendor/dev_server/dev-server.js +59 -0
- package/dist/public/node/vendor/dev_server/dev-server.js.map +1 -0
- package/dist/public/node/vendor/dev_server/env.d.ts +2 -0
- package/dist/public/node/vendor/dev_server/env.js +7 -0
- package/dist/public/node/vendor/dev_server/env.js.map +1 -0
- package/dist/public/node/vendor/dev_server/index.d.ts +2 -0
- package/dist/public/node/vendor/dev_server/index.js +3 -0
- package/dist/public/node/vendor/dev_server/index.js.map +1 -0
- package/dist/public/node/vendor/dev_server/network/host.d.ts +2 -0
- package/dist/public/node/vendor/dev_server/network/host.js +45 -0
- package/dist/public/node/vendor/dev_server/network/host.js.map +1 -0
- package/dist/public/node/vendor/dev_server/network/index.d.ts +9 -0
- package/dist/public/node/vendor/dev_server/network/index.js +36 -0
- package/dist/public/node/vendor/dev_server/network/index.js.map +1 -0
- package/dist/public/node/vendor/dev_server/types.d.ts +11 -0
- package/dist/public/node/vendor/dev_server/types.js +2 -0
- package/dist/public/node/vendor/dev_server/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -1
- package/dist/public/node/vendor/dev_server/DevServer.d.ts +0 -19
- package/dist/public/node/vendor/dev_server/DevServer.js +0 -170
- package/dist/public/node/vendor/dev_server/DevServer.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DevServer as DevServerType, DevServerCore as DevServerCoreType, HostOptions } from './types.js';
|
|
2
|
+
export { isDevServerEnvironment } from './env.js';
|
|
3
|
+
export declare class DevServer implements DevServerType {
|
|
4
|
+
private readonly projectName;
|
|
5
|
+
private readonly serverImpl;
|
|
6
|
+
constructor(projectName: string);
|
|
7
|
+
host(options?: HostOptions): string;
|
|
8
|
+
url(options?: HostOptions): string;
|
|
9
|
+
}
|
|
10
|
+
export declare class DevServerCore implements DevServerCoreType {
|
|
11
|
+
private readonly serverImpl;
|
|
12
|
+
constructor();
|
|
13
|
+
host(prefix: string): string;
|
|
14
|
+
url(prefix: string): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { createServer as createServer2024 } from './dev-server-2024.js';
|
|
3
|
+
import { createServer as createServer2016 } from './dev-server-2016.js';
|
|
4
|
+
import { createServer as createServerSpin } from './dev-server-spin.js';
|
|
5
|
+
export { isDevServerEnvironment } from './env.js';
|
|
6
|
+
export class DevServer {
|
|
7
|
+
constructor(projectName) {
|
|
8
|
+
this.projectName = projectName;
|
|
9
|
+
if (projectName === 'shopify') {
|
|
10
|
+
throw new Error("Use `import {DevServerCore}` for the 'shopify' project");
|
|
11
|
+
}
|
|
12
|
+
this.serverImpl = inferProjectServer(projectName);
|
|
13
|
+
}
|
|
14
|
+
host(options) {
|
|
15
|
+
return this.serverImpl.host(options);
|
|
16
|
+
}
|
|
17
|
+
url(options) {
|
|
18
|
+
return this.serverImpl.url(options);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class DevServerCore {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.serverImpl = inferProjectServer('shopify');
|
|
24
|
+
}
|
|
25
|
+
host(prefix) {
|
|
26
|
+
return this.serverImpl.host({ nonstandardHostPrefix: prefix });
|
|
27
|
+
}
|
|
28
|
+
url(prefix) {
|
|
29
|
+
return this.serverImpl.url({ nonstandardHostPrefix: prefix });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const INFERENCE_MODE_SENTINEL = '/opt/dev/misc/dev-server-inference-mode';
|
|
33
|
+
function inferProjectServer(projectName) {
|
|
34
|
+
if (process.env.SPIN === '1') {
|
|
35
|
+
return createServerSpin(projectName);
|
|
36
|
+
}
|
|
37
|
+
else if (inferenceModeAndProjectIsEdition2016(projectName)) {
|
|
38
|
+
return createServer2016(projectName);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return createServer2024(projectName);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function inferenceModeAndProjectIsEdition2016(projectName) {
|
|
45
|
+
try {
|
|
46
|
+
fs.accessSync(INFERENCE_MODE_SENTINEL);
|
|
47
|
+
try {
|
|
48
|
+
fs.accessSync(`/opt/nginx/etc/manifest/${projectName}/current/edition-2024`);
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=dev-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../../../../src/public/node/vendor/dev_server/dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,OAAO,EAAC,YAAY,IAAI,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAC,YAAY,IAAI,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAC,YAAY,IAAI,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AAGrE,OAAO,EAAC,sBAAsB,EAAC,MAAM,UAAU,CAAA;AAE/C,MAAM,OAAO,SAAS;IAGpB,YAA6B,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;QAC9C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,CAAC,OAAqB;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,GAAG,CAAC,OAAqB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IAGxB;QACE,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,CAAC,MAAc;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,qBAAqB,EAAE,MAAM,EAAC,CAAC,CAAA;IAC9D,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAC,qBAAqB,EAAE,MAAM,EAAC,CAAC,CAAA;IAC7D,CAAC;CACF;AAED,MAAM,uBAAuB,GAAG,yCAAyC,CAAA;AAEzE,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;SAAM,IAAI,oCAAoC,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;AACH,CAAC;AAED,SAAS,oCAAoC,CAAC,WAAmB;IAC/D,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAA;QAEtC,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,2BAA2B,WAAW,uBAAuB,CAAC,CAAA;YAC5E,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC","sourcesContent":["import fs from 'node:fs'\n\nimport {createServer as createServer2024} from './dev-server-2024.js'\nimport {createServer as createServer2016} from './dev-server-2016.js'\nimport {createServer as createServerSpin} from './dev-server-spin.js'\nimport type {DevServer as DevServerType, DevServerCore as DevServerCoreType, HostOptions} from './types.js'\n\nexport {isDevServerEnvironment} from './env.js'\n\nexport class DevServer implements DevServerType {\n private readonly serverImpl: DevServerType\n\n constructor(private readonly projectName: string) {\n if (projectName === 'shopify') {\n throw new Error(\"Use `import {DevServerCore}` for the 'shopify' project\")\n }\n this.serverImpl = inferProjectServer(projectName)\n }\n\n host(options?: HostOptions) {\n return this.serverImpl.host(options)\n }\n\n url(options?: HostOptions) {\n return this.serverImpl.url(options)\n }\n}\n\nexport class DevServerCore implements DevServerCoreType {\n private readonly serverImpl: DevServerType\n\n constructor() {\n this.serverImpl = inferProjectServer('shopify')\n }\n\n host(prefix: string) {\n return this.serverImpl.host({nonstandardHostPrefix: prefix})\n }\n\n url(prefix: string) {\n return this.serverImpl.url({nonstandardHostPrefix: prefix})\n }\n}\n\nconst INFERENCE_MODE_SENTINEL = '/opt/dev/misc/dev-server-inference-mode'\n\nfunction inferProjectServer(projectName: string) {\n if (process.env.SPIN === '1') {\n return createServerSpin(projectName)\n } else if (inferenceModeAndProjectIsEdition2016(projectName)) {\n return createServer2016(projectName)\n } else {\n return createServer2024(projectName)\n }\n}\n\nfunction inferenceModeAndProjectIsEdition2016(projectName: string): boolean {\n try {\n fs.accessSync(INFERENCE_MODE_SENTINEL)\n\n try {\n fs.accessSync(`/opt/nginx/etc/manifest/${projectName}/current/edition-2024`)\n return false\n } catch {\n return true\n }\n } catch {\n return false\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const isDevServerEnvironment = process.env.USING_DEV === "1" || process.env.SPIN === "1";
|
|
2
|
+
export function assertCompatibleEnvironment() {
|
|
3
|
+
if (!isDevServerEnvironment) {
|
|
4
|
+
throw new Error("DevServer is not supported in this environment");
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../../src/public/node/vendor/dev_server/env.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GACjC,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;AAE5D,MAAM,UAAU,2BAA2B;IACzC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;AACH,CAAC","sourcesContent":["export const isDevServerEnvironment =\n process.env.USING_DEV === \"1\" || process.env.SPIN === \"1\";\n\nexport function assertCompatibleEnvironment() {\n if (!isDevServerEnvironment) {\n throw new Error(\"DevServer is not supported in this environment\");\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/public/node/vendor/dev_server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAA","sourcesContent":["export {isDevServerEnvironment} from './env.js'\nexport {DevServer, DevServerCore} from './dev-server.js'\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
const HOSTS_FILE = '/etc/hosts';
|
|
3
|
+
let hostToIpCache = {};
|
|
4
|
+
let lastModifiedTime = 0;
|
|
5
|
+
function loadHostsFile() {
|
|
6
|
+
try {
|
|
7
|
+
const stats = fs.statSync(HOSTS_FILE);
|
|
8
|
+
const modifiedTime = stats.mtimeMs;
|
|
9
|
+
if (modifiedTime === lastModifiedTime)
|
|
10
|
+
return;
|
|
11
|
+
const hostsContent = fs.readFileSync(HOSTS_FILE, 'utf8');
|
|
12
|
+
const lines = hostsContent.split(/\r?\n/);
|
|
13
|
+
hostToIpCache = {};
|
|
14
|
+
for (const line of lines) {
|
|
15
|
+
if (line.trim().startsWith('#') || line.trim() === '') {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const matches = /^\s*(?<ipAddress>[^\s#]+)\s+(?<matchedHostName>[^\s#]+)\s*(#.*)?$/.exec(line);
|
|
19
|
+
if (matches && matches.groups) {
|
|
20
|
+
const { ipAddress, matchedHostName } = matches.groups;
|
|
21
|
+
if (matchedHostName && ipAddress) {
|
|
22
|
+
hostToIpCache[matchedHostName] = ipAddress;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
lastModifiedTime = modifiedTime;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
console.log('Error reading hosts file:', error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function getIpFromHosts(hostname) {
|
|
33
|
+
loadHostsFile();
|
|
34
|
+
const ipAddress = hostToIpCache[hostname];
|
|
35
|
+
if (ipAddress) {
|
|
36
|
+
return ipAddress;
|
|
37
|
+
}
|
|
38
|
+
throw new Error(`No IP found for hostname: ${hostname}`);
|
|
39
|
+
}
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
41
|
+
export function TEST_ClearCache() {
|
|
42
|
+
hostToIpCache = {};
|
|
43
|
+
lastModifiedTime = 0;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../../../src/public/node/vendor/dev_server/network/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AAGxB,MAAM,UAAU,GAAG,YAAY,CAAA;AAE/B,IAAI,aAAa,GAA2B,EAAE,CAAA;AAC9C,IAAI,gBAAgB,GAAG,CAAC,CAAA;AAExB,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACrC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAA;QAElC,IAAI,YAAY,KAAK,gBAAgB;YAAE,OAAM;QAE7C,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEzC,aAAa,GAAG,EAAE,CAAA;QAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtD,SAAQ;YACV,CAAC;YAED,MAAM,OAAO,GAAG,mEAAmE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9F,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,EAAC,SAAS,EAAE,eAAe,EAAC,GAAG,OAAO,CAAC,MAAM,CAAA;gBACnD,IAAI,eAAe,IAAI,SAAS,EAAE,CAAC;oBACjC,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAA;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAED,gBAAgB,GAAG,YAAY,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,aAAa,EAAE,CAAA;IAEf,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAA;AAC1D,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,eAAe;IAC7B,aAAa,GAAG,EAAE,CAAA;IAClB,gBAAgB,GAAG,CAAC,CAAA;AACtB,CAAC","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\n\nconst HOSTS_FILE = '/etc/hosts'\n\nlet hostToIpCache: Record<string, string> = {}\nlet lastModifiedTime = 0\n\nfunction loadHostsFile() {\n try {\n const stats = fs.statSync(HOSTS_FILE)\n const modifiedTime = stats.mtimeMs\n\n if (modifiedTime === lastModifiedTime) return\n\n const hostsContent = fs.readFileSync(HOSTS_FILE, 'utf8')\n const lines = hostsContent.split(/\\r?\\n/)\n\n hostToIpCache = {}\n\n for (const line of lines) {\n if (line.trim().startsWith('#') || line.trim() === '') {\n continue\n }\n\n const matches = /^\\s*(?<ipAddress>[^\\s#]+)\\s+(?<matchedHostName>[^\\s#]+)\\s*(#.*)?$/.exec(line)\n if (matches && matches.groups) {\n const {ipAddress, matchedHostName} = matches.groups\n if (matchedHostName && ipAddress) {\n hostToIpCache[matchedHostName] = ipAddress\n }\n }\n }\n\n lastModifiedTime = modifiedTime\n } catch (error) {\n console.log('Error reading hosts file:', error)\n }\n}\n\nexport function getIpFromHosts(hostname: string) {\n loadHostsFile()\n\n const ipAddress = hostToIpCache[hostname]\n if (ipAddress) {\n return ipAddress\n }\n\n throw new Error(`No IP found for hostname: ${hostname}`)\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function TEST_ClearCache() {\n hostToIpCache = {}\n lastModifiedTime = 0\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { getIpFromHosts } from './host.js';
|
|
2
|
+
export interface ConnectionArguments {
|
|
3
|
+
projectName: string;
|
|
4
|
+
addr: string;
|
|
5
|
+
port: number;
|
|
6
|
+
timeout?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function assertConnectable(options: ConnectionArguments): void;
|
|
9
|
+
export declare function TEST_testResetCheckPort(): void;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process';
|
|
2
|
+
export { getIpFromHosts } from './host.js';
|
|
3
|
+
// eslint-disable-next-line prettier/prettier
|
|
4
|
+
const DEFAULT_CONNECT_TIMEOUT = 100;
|
|
5
|
+
// Skip initialization on module load to prevent Spin trying to load a macOS dylib
|
|
6
|
+
// (port checks should never run on Spin anyway)
|
|
7
|
+
let checkPort;
|
|
8
|
+
export function assertConnectable(options) {
|
|
9
|
+
checkPort || (checkPort = getCheckPortHelper());
|
|
10
|
+
const { port, addr, timeout = DEFAULT_CONNECT_TIMEOUT } = options;
|
|
11
|
+
try {
|
|
12
|
+
const normalizedAddr = addr === 'localhost' ? '127.0.0.1' : addr;
|
|
13
|
+
const running = checkPort(normalizedAddr, port, timeout);
|
|
14
|
+
if (!running) {
|
|
15
|
+
throw new Error(`DevServer for '${options.projectName}' is not running on ${port} / ${addr}: \`dev up ${options.projectName}\` to start it.`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
throw new Error(`DevServer check for '${options.projectName}' on ${port} / ${addr} failed (${err})`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
23
|
+
export function TEST_testResetCheckPort() {
|
|
24
|
+
checkPort = getCheckPortHelper();
|
|
25
|
+
}
|
|
26
|
+
function getCheckPortHelper() {
|
|
27
|
+
return fallbackCheckPort;
|
|
28
|
+
}
|
|
29
|
+
function fallbackCheckPort(address, port, timeout) {
|
|
30
|
+
const result = spawnSync('nc', ['-z', '-w', '1', address, port.toString()], {
|
|
31
|
+
timeout,
|
|
32
|
+
stdio: 'ignore',
|
|
33
|
+
});
|
|
34
|
+
return result.status === 0;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/public/node/vendor/dev_server/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAA;AAG5C,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAA;AASxC,6CAA6C;AAC7C,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,kFAAkF;AAClF,gDAAgD;AAChD,IAAI,SAAgD,CAAA;AAEpD,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC5D,SAAS,KAAT,SAAS,GAAK,kBAAkB,EAAE,EAAA;IAElC,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,uBAAuB,EAAC,GAAG,OAAO,CAAA;IAC/D,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;QAChE,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,kBAAkB,OAAO,CAAC,WAAW,uBAAuB,IAAI,MAAM,IAAI,cAAc,OAAO,CAAC,WAAW,iBAAiB,CAC7H,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,WAAW,QAAQ,IAAI,MAAM,IAAI,YAAY,GAAG,GAAG,CAAC,CAAA;IACtG,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,uBAAuB;IACrC,SAAS,GAAG,kBAAkB,EAAE,CAAA;AAClC,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,IAAY,EAAE,OAAe;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;QAC1E,OAAO;QACP,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAA;AAC5B,CAAC","sourcesContent":["import {spawnSync} from 'node:child_process'\nimport path from 'node:path'\n\nexport {getIpFromHosts} from './host.js'\n\nexport interface ConnectionArguments {\n projectName: string\n addr: string\n port: number\n timeout?: number\n}\n\n// eslint-disable-next-line prettier/prettier\nconst DEFAULT_CONNECT_TIMEOUT = 100\n// Skip initialization on module load to prevent Spin trying to load a macOS dylib\n// (port checks should never run on Spin anyway)\nlet checkPort: ReturnType<typeof getCheckPortHelper>\n\nexport function assertConnectable(options: ConnectionArguments): void {\n checkPort ||= getCheckPortHelper()\n\n const {port, addr, timeout = DEFAULT_CONNECT_TIMEOUT} = options\n try {\n const normalizedAddr = addr === 'localhost' ? '127.0.0.1' : addr\n const running = checkPort(normalizedAddr, port, timeout)\n if (!running) {\n throw new Error(\n `DevServer for '${options.projectName}' is not running on ${port} / ${addr}: \\`dev up ${options.projectName}\\` to start it.`,\n )\n }\n } catch (err) {\n throw new Error(`DevServer check for '${options.projectName}' on ${port} / ${addr} failed (${err})`)\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function TEST_testResetCheckPort(): void {\n checkPort = getCheckPortHelper()\n}\n\nfunction getCheckPortHelper(): (addr: string, port: number, timeout: number) => boolean {\n return fallbackCheckPort\n}\n\nfunction fallbackCheckPort(address: string, port: number, timeout: number): boolean {\n const result = spawnSync('nc', ['-z', '-w', '1', address, port.toString()], {\n timeout,\n stdio: 'ignore',\n })\n\n return result.status === 0\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface DevServerCore {
|
|
2
|
+
url(prefix: string): string;
|
|
3
|
+
host(prefix: string): string;
|
|
4
|
+
}
|
|
5
|
+
export interface DevServer {
|
|
6
|
+
url(options?: HostOptions): string;
|
|
7
|
+
host(options?: HostOptions): string;
|
|
8
|
+
}
|
|
9
|
+
export interface HostOptions {
|
|
10
|
+
nonstandardHostPrefix?: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/public/node/vendor/dev_server/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface DevServerCore {\n url(prefix: string): string\n host(prefix: string): string\n}\n\nexport interface DevServer {\n url(options?: HostOptions): string\n host(options?: HostOptions): string\n}\n\nexport interface HostOptions {\n nonstandardHostPrefix?: string\n}\n"]}
|