@servicetitan/install 33.0.1 → 33.1.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/cli/install.d.ts +0 -1
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli/install.js +16 -5
- package/dist/cli/install.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/install.ts +12 -6
package/dist/cli/install.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,IAAI;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,OAAO;IAChB,IAAI,EAAE,IAAI,CAAC;gBAEC,IAAI,EAAE,IAAI;IAItB,OAAO;IASP,OAAO,CAAC,iBAAiB;IA0CzB,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,eAAe;CAmB1B"}
|
package/dist/cli/install.js
CHANGED
|
@@ -32,7 +32,8 @@ function _interop_require_default(obj) {
|
|
|
32
32
|
}
|
|
33
33
|
const REPO_NAME = 'frontend-dev-config';
|
|
34
34
|
const AUTH_TOKEN_KEY = '//registry.npmjs.org/:_authToken';
|
|
35
|
-
const AUTH_TOKEN_REGEX = /^\/\/registry\.npmjs\.org\/:_authToken=\s
|
|
35
|
+
const AUTH_TOKEN_REGEX = /^\/\/registry\.npmjs\.org\/:_authToken=\s*(?<authToken>.+)/m;
|
|
36
|
+
const ENVIRONMENT_VARIABLE_REGEX = /\${(?<environmentVariable>[^}]+)}/;
|
|
36
37
|
class Install {
|
|
37
38
|
execute() {
|
|
38
39
|
if (!this.args.quiet) {
|
|
@@ -42,6 +43,7 @@ class Install {
|
|
|
42
43
|
this.installPackages(env);
|
|
43
44
|
}
|
|
44
45
|
configureNpmToken() {
|
|
46
|
+
var _AUTH_TOKEN_REGEX_exec, _ENVIRONMENT_VARIABLE_REGEX_exec;
|
|
45
47
|
if ((0, _utils.isCI)() || this.args.fix || this.args.token === false) {
|
|
46
48
|
return;
|
|
47
49
|
}
|
|
@@ -66,13 +68,22 @@ class Install {
|
|
|
66
68
|
return;
|
|
67
69
|
}
|
|
68
70
|
const npmrc = _fs.default.readFileSync('.npmrc', 'utf-8');
|
|
69
|
-
|
|
71
|
+
var _AUTH_TOKEN_REGEX_exec_groups;
|
|
72
|
+
const { authToken } = (_AUTH_TOKEN_REGEX_exec_groups = (_AUTH_TOKEN_REGEX_exec = AUTH_TOKEN_REGEX.exec(npmrc)) === null || _AUTH_TOKEN_REGEX_exec === void 0 ? void 0 : _AUTH_TOKEN_REGEX_exec.groups) !== null && _AUTH_TOKEN_REGEX_exec_groups !== void 0 ? _AUTH_TOKEN_REGEX_exec_groups : {};
|
|
70
73
|
(0, _utils.debug)({
|
|
71
|
-
|
|
74
|
+
authToken
|
|
72
75
|
});
|
|
73
|
-
if (
|
|
76
|
+
if (!authToken) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
var _ENVIRONMENT_VARIABLE_REGEX_exec_groups;
|
|
80
|
+
const { environmentVariable } = (_ENVIRONMENT_VARIABLE_REGEX_exec_groups = (_ENVIRONMENT_VARIABLE_REGEX_exec = ENVIRONMENT_VARIABLE_REGEX.exec(authToken)) === null || _ENVIRONMENT_VARIABLE_REGEX_exec === void 0 ? void 0 : _ENVIRONMENT_VARIABLE_REGEX_exec.groups) !== null && _ENVIRONMENT_VARIABLE_REGEX_exec_groups !== void 0 ? _ENVIRONMENT_VARIABLE_REGEX_exec_groups : {};
|
|
81
|
+
(0, _utils.debug)({
|
|
82
|
+
environmentVariable
|
|
83
|
+
});
|
|
84
|
+
if (environmentVariable) {
|
|
74
85
|
return {
|
|
75
|
-
[
|
|
86
|
+
[environmentVariable]: token
|
|
76
87
|
};
|
|
77
88
|
}
|
|
78
89
|
(0, _utils.runCommand)('npm', [
|
package/dist/cli/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/install.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport path from 'path';\nimport fs from 'fs';\nimport os from 'os';\nimport { debug, getVersion, gitCloneRepo, isCI, npmWhoAmI, readJson, runCommand } from '../utils';\n\nconst REPO_NAME = 'frontend-dev-config';\nconst AUTH_TOKEN_KEY = '//registry.npmjs.org/:_authToken';\nconst AUTH_TOKEN_REGEX = /^\\/\\/registry\\.npmjs\\.org\\/:_authToken=\\s
|
|
1
|
+
{"version":3,"sources":["../../src/cli/install.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport path from 'path';\nimport fs from 'fs';\nimport os from 'os';\nimport { debug, getVersion, gitCloneRepo, isCI, npmWhoAmI, readJson, runCommand } from '../utils';\n\nconst REPO_NAME = 'frontend-dev-config';\nconst AUTH_TOKEN_KEY = '//registry.npmjs.org/:_authToken';\nconst AUTH_TOKEN_REGEX = /^\\/\\/registry\\.npmjs\\.org\\/:_authToken=\\s*(?<authToken>.+)/m;\nconst ENVIRONMENT_VARIABLE_REGEX = /\\${(?<environmentVariable>[^}]+)}/;\n\nexport interface Args {\n fix?: boolean;\n quiet?: boolean;\n token?: boolean;\n}\n\nexport class Install {\n args: Args;\n\n constructor(args: Args) {\n this.args = args;\n }\n\n execute() {\n if (!this.args.quiet) {\n console.log(`install cli v${getVersion()}`);\n }\n\n const env = this.configureNpmToken();\n this.installPackages(env);\n }\n\n private configureNpmToken() {\n if (isCI() || this.args.fix || this.args.token === false) {\n return;\n }\n\n if (!this.args.quiet) {\n console.log('Configuring NPM token ...');\n }\n\n if (this.args.token !== true) {\n if (npmWhoAmI() === 'st-team') {\n return;\n }\n }\n\n const token = this.fetchNpmToken();\n if (!token) {\n return;\n }\n\n runCommand('npm', ['config', 'set', `${AUTH_TOKEN_KEY}=${token}`]);\n\n if (!fs.existsSync('.npmrc')) {\n return;\n }\n\n const npmrc = fs.readFileSync('.npmrc', 'utf-8');\n const { authToken } = AUTH_TOKEN_REGEX.exec(npmrc)?.groups ?? {};\n debug({ authToken });\n if (!authToken) {\n return;\n }\n\n const { environmentVariable } = ENVIRONMENT_VARIABLE_REGEX.exec(authToken)?.groups ?? {};\n debug({ environmentVariable });\n if (environmentVariable) {\n return { [environmentVariable]: token };\n }\n\n runCommand('npm', ['config', 'delete', '--location=project', AUTH_TOKEN_KEY]);\n }\n\n private fetchNpmToken() {\n const tempDirPath = fs.mkdtempSync(path.join(os.tmpdir(), 'st-install-'));\n try {\n if (!gitCloneRepo({ destination: tempDirPath, name: REPO_NAME })) {\n throw new Error(`could not clone servicetitan/${REPO_NAME}`);\n }\n\n const npmJson = readJson(path.join(tempDirPath, '.npm.json'));\n debug('install:fetch-npm-token', { npmJson });\n\n if (!((npmJson && typeof npmJson === 'object') || Array.isArray(npmJson))) {\n throw new Error('.npm.json is not an object');\n }\n\n const { readOnlyToken: authToken } = npmJson;\n if (!authToken) {\n throw new Error('.npm.json does not contain auth token');\n }\n\n if (typeof authToken !== 'string') {\n throw new Error('.npm.json auth token is not a string');\n }\n\n return Buffer.from(authToken, 'base64').toString('utf-8');\n } catch (e) {\n console.warn(String(e));\n } finally {\n try {\n fs.rmSync(tempDirPath, { recursive: true, force: true });\n } catch {\n // ignore\n }\n }\n }\n\n private installPackages(env?: Record<string, string>) {\n if (this.args.token) {\n return;\n }\n\n const npmArguments = [\n isCI() ? 'ci' : 'i',\n '--audit=false',\n '--fund=false',\n '--legacy-peer-deps',\n ...(this.args.fix ? ['--package-lock-only', '--prefer-dedupe'] : []),\n ];\n\n if (!this.args.quiet) {\n console.log(`Running npm ${npmArguments.join(' ')}`);\n }\n\n runCommand('npm', npmArguments, { env, stdio: 'inherit' });\n }\n}\n"],"names":["Install","REPO_NAME","AUTH_TOKEN_KEY","AUTH_TOKEN_REGEX","ENVIRONMENT_VARIABLE_REGEX","execute","args","quiet","console","log","getVersion","env","configureNpmToken","installPackages","isCI","fix","token","npmWhoAmI","fetchNpmToken","runCommand","fs","existsSync","npmrc","readFileSync","authToken","exec","groups","debug","environmentVariable","tempDirPath","mkdtempSync","path","join","os","tmpdir","gitCloneRepo","destination","name","Error","npmJson","readJson","Array","isArray","readOnlyToken","Buffer","from","toString","e","warn","String","rmSync","recursive","force","npmArguments","stdio"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/install",
|
|
3
|
-
"version": "33.
|
|
3
|
+
"version": "33.1.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"homepage": "https://docs.st.dev/docs/frontend/install",
|
|
6
6
|
"repository": {
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"ts-node": "~10.9.2"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "36ff4078b07d6c86bdf968b7f8b3c0adbe03fd4c"
|
|
36
36
|
}
|
package/src/cli/install.ts
CHANGED
|
@@ -6,10 +6,10 @@ import { debug, getVersion, gitCloneRepo, isCI, npmWhoAmI, readJson, runCommand
|
|
|
6
6
|
|
|
7
7
|
const REPO_NAME = 'frontend-dev-config';
|
|
8
8
|
const AUTH_TOKEN_KEY = '//registry.npmjs.org/:_authToken';
|
|
9
|
-
const AUTH_TOKEN_REGEX = /^\/\/registry\.npmjs\.org\/:_authToken=\s
|
|
9
|
+
const AUTH_TOKEN_REGEX = /^\/\/registry\.npmjs\.org\/:_authToken=\s*(?<authToken>.+)/m;
|
|
10
|
+
const ENVIRONMENT_VARIABLE_REGEX = /\${(?<environmentVariable>[^}]+)}/;
|
|
10
11
|
|
|
11
12
|
export interface Args {
|
|
12
|
-
debug?: boolean;
|
|
13
13
|
fix?: boolean;
|
|
14
14
|
quiet?: boolean;
|
|
15
15
|
token?: boolean;
|
|
@@ -58,10 +58,16 @@ export class Install {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
const npmrc = fs.readFileSync('.npmrc', 'utf-8');
|
|
61
|
-
const
|
|
62
|
-
debug({
|
|
63
|
-
if (
|
|
64
|
-
return
|
|
61
|
+
const { authToken } = AUTH_TOKEN_REGEX.exec(npmrc)?.groups ?? {};
|
|
62
|
+
debug({ authToken });
|
|
63
|
+
if (!authToken) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const { environmentVariable } = ENVIRONMENT_VARIABLE_REGEX.exec(authToken)?.groups ?? {};
|
|
68
|
+
debug({ environmentVariable });
|
|
69
|
+
if (environmentVariable) {
|
|
70
|
+
return { [environmentVariable]: token };
|
|
65
71
|
}
|
|
66
72
|
|
|
67
73
|
runCommand('npm', ['config', 'delete', '--location=project', AUTH_TOKEN_KEY]);
|