@forge/cli-shared 0.0.0-experimental-e1cefc4 → 0.0.0-experimental-29a2cc1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-flag-service.d.ts","sourceRoot":"","sources":["../../src/service/feature-flag-service.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAe,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAKtG,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAyB/B,aAAK,eAAe,GAAG;IACrB,qBAAqB,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACpE,2BAA2B,EAAE,MAAM,CAAC;IACpC,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,oBAAY,WAAW,GAAG,MAAM,eAAe,CAAC;AAKhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAC9E;AAmBD,aAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAAC;AAMpE,aAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,aAAa,CAAC;AAEnG,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAa3F;AAKD,qBAAa,kBAAmB,YAAW,iBAAiB;IAExD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBALZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,SAAS,EACnD,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,mBAAmB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,EACpD,gBAAgB,GAAE,OAAO,cAA+B,EACxD,YAAY,GAAE,sBAAgD;IAOjF,OAAO,CAAC,KAAK,CAOV;IAMH,OAAO,CAAC,IAAI,CAkBT;IAEH,OAAO,CAAC,MAAM,CAYX;IAEG,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAUnF"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FeatureFlagService = exports.cachedMethod = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const launchdarkly_node_client_sdk_1 = tslib_1.__importStar(require("launchdarkly-node-client-sdk"));
6
+ const env_paths_1 = tslib_1.__importDefault(require("env-paths"));
7
+ const fs_1 = require("fs");
8
+ const util_1 = require("util");
9
+ const graphql_1 = require("../graphql");
10
+ var CLIENT_SIDE_ID;
11
+ (function (CLIENT_SIDE_ID) {
12
+ CLIENT_SIDE_ID["DEV"] = "5d22bfb52c6a0707aac5be90";
13
+ CLIENT_SIDE_ID["STG"] = "5d1eed1f47274b07674b9395";
14
+ CLIENT_SIDE_ID["PROD"] = "5d1eecfe47274b07674b938f";
15
+ })(CLIENT_SIDE_ID || (CLIENT_SIDE_ID = {}));
16
+ function cachedMethod(getter) {
17
+ const cacheDict = new Map();
18
+ return async function () {
19
+ const cached = cacheDict.get(this);
20
+ if (cached !== undefined) {
21
+ return cached;
22
+ }
23
+ const value = await getter.call(this);
24
+ cacheDict.set(this, value);
25
+ return value;
26
+ };
27
+ }
28
+ exports.cachedMethod = cachedMethod;
29
+ class FeatureFlagService {
30
+ constructor(logger, cliDetails, userCredentials, appConfigReader, getEnvironmentFn = graphql_1.getEnvironment, initializeLD = launchdarkly_node_client_sdk_1.default.initialize) {
31
+ this.logger = logger;
32
+ this.cliDetails = cliDetails;
33
+ this.userCredentials = userCredentials;
34
+ this.appConfigReader = appConfigReader;
35
+ this.getEnvironmentFn = getEnvironmentFn;
36
+ this.initializeLD = initializeLD;
37
+ this.appID = cachedMethod(async () => {
38
+ try {
39
+ const config = await this.appConfigReader.readConfigSection();
40
+ return config == 'missing' || config == 'invalid' ? null : config.id;
41
+ }
42
+ catch (e) {
43
+ return null;
44
+ }
45
+ });
46
+ this.user = cachedMethod(async () => {
47
+ const custom = {};
48
+ const appID = await this.appID();
49
+ if (appID) {
50
+ custom.appID = appID;
51
+ }
52
+ if (this.cliDetails) {
53
+ custom.version = this.cliDetails.version;
54
+ }
55
+ let key;
56
+ try {
57
+ key = (await this.userCredentials.getCredentials()).accountId;
58
+ }
59
+ catch (e) {
60
+ key = 'anonymous';
61
+ }
62
+ return { key, anonymous: true, custom };
63
+ });
64
+ this.client = cachedMethod(async () => {
65
+ const clientSideID = this.getEnvironmentFn(CLIENT_SIDE_ID);
66
+ const user = await this.user();
67
+ const cachePath = env_paths_1.default('@forge/cli').cache;
68
+ await util_1.promisify(fs_1.mkdir)(cachePath, { recursive: true });
69
+ const options = {
70
+ bootstrap: 'localStorage',
71
+ localStoragePath: cachePath,
72
+ logger: launchdarkly_node_client_sdk_1.basicLogger({ level: 'error' }),
73
+ sendEvents: false
74
+ };
75
+ return this.initializeLD(clientSideID, user, options);
76
+ });
77
+ }
78
+ async readFlag(flag) {
79
+ try {
80
+ const client = await this.client();
81
+ await client.waitUntilReady();
82
+ return client.variation(flag, null);
83
+ }
84
+ catch (e) {
85
+ this.logger.error(new Error('Failed to read feature flags. Proceeding with defaults.'));
86
+ return null;
87
+ }
88
+ }
89
+ }
90
+ exports.FeatureFlagService = FeatureFlagService;
@@ -1,3 +1,4 @@
1
1
  export * from './bridge-script-service';
2
2
  export * from './iframe-resizer-script-service';
3
+ export * from './feature-flag-service';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAEA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAEA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC"}
@@ -3,3 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./bridge-script-service"), exports);
5
5
  tslib_1.__exportStar(require("./iframe-resizer-script-service"), exports);
6
+ tslib_1.__exportStar(require("./feature-flag-service"), exports);
@@ -1,5 +1,7 @@
1
1
  import { Logger } from '../ui';
2
2
  export declare class HiddenError extends Error {
3
3
  }
4
- export declare const exitOnError: (logger: Logger) => (error?: HiddenError | undefined) => never;
4
+ export declare const exitOnError: (logger: Logger) => (error?: Error | undefined) => never;
5
+ export declare const wrapError: (error: unknown) => Error;
6
+ export declare const assertIsError: (error: unknown) => asserts error is Error;
5
7
  //# sourceMappingURL=error-handling.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../src/shared/error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG/B,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAUzC,eAAO,MAAM,WAAW,WAAY,MAAM,0CAA4B,KAarE,CAAC"}
1
+ {"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../src/shared/error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG/B,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAezC,eAAO,MAAM,WAAW,WAAY,MAAM,oCAAsB,KAa/D,CAAC;AAOF,eAAO,MAAM,SAAS,UAAW,OAAO,KAAG,KAK1C,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,KAIhE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.exitOnError = exports.HiddenError = void 0;
3
+ exports.assertIsError = exports.wrapError = exports.exitOnError = exports.HiddenError = void 0;
4
4
  const ui_1 = require("../ui");
5
5
  class HiddenError extends Error {
6
6
  }
@@ -23,3 +23,14 @@ exports.exitOnError = (logger) => (error) => {
23
23
  }
24
24
  return process.exit(0);
25
25
  };
26
+ exports.wrapError = (error) => {
27
+ if (error instanceof Error) {
28
+ return error;
29
+ }
30
+ return new Error(JSON.stringify(error));
31
+ };
32
+ exports.assertIsError = (error) => {
33
+ if (!(error instanceof Error)) {
34
+ throw new Error(`A non Error type object ${JSON.stringify(error)} of type '${typeof error}' was thrown.`);
35
+ }
36
+ };
@@ -10,5 +10,6 @@ export interface Logger {
10
10
  }): void;
11
11
  snapshotLog(message: string, level: 'INFO' | 'WARNING' | 'ERROR'): void;
12
12
  }
13
+ export declare const NullLogger: Logger;
13
14
  export declare function errorMessage(error: Error): string;
14
15
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/ui/logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IAEtB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;CACzE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/ui/logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IAEtB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;CACzE;AAED,eAAO,MAAM,UAAU,EAAE,MAsBxB,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEjD"}
package/out/ui/logger.js CHANGED
@@ -1,6 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.errorMessage = void 0;
3
+ exports.errorMessage = exports.NullLogger = void 0;
4
+ exports.NullLogger = {
5
+ traceEnabled: false,
6
+ debugEnabled: false,
7
+ trace() {
8
+ },
9
+ debug() {
10
+ },
11
+ info() {
12
+ },
13
+ warn() {
14
+ },
15
+ error() {
16
+ },
17
+ snapshotLog() {
18
+ }
19
+ };
4
20
  function errorMessage(error) {
5
21
  return error.message ? error.message : error.constructor.name;
6
22
  }
package/out/ui/text.d.ts CHANGED
@@ -13,8 +13,6 @@ export declare const Text: {
13
13
  };
14
14
  outdatedCLIVersion: (installed: string, latest: string) => string;
15
15
  outdatedNodeVersion: (compatibleNodeVersion: string, currentNodeVersion: string) => string;
16
- failedGettingPythonVersion: (err: Error) => string;
17
- invalidPythonVersion: (version: string) => string;
18
16
  invalidProduct: string;
19
17
  invalidSite: string;
20
18
  invalidTokenInKeytarOrCache: string;
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"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"}
package/out/ui/text.js CHANGED
@@ -41,8 +41,6 @@ exports.Text = {
41
41
  `\nRun ${chalk_1.default.bold(`npm uninstall -g @forge/cli`)} followed by ${chalk_1.default.bold(`npm install -g @forge/cli`)} to update from version ${chalk_1.default.bold(installed)} to ${chalk_1.default.bold(latest)}.` +
42
42
  `\n`,
43
43
  outdatedNodeVersion: (compatibleNodeVersion, currentNodeVersion) => fatalError(`Unsupported Node.js version. The CLI requires Node.js ${compatibleNodeVersion}, but you're using Node.js ${currentNodeVersion}.`),
44
- failedGettingPythonVersion: (err) => fatalError(`Couldn't get the Python version: ${err.message}.`),
45
- invalidPythonVersion: (version) => fatalError(`Unsupported Python version. The CLI requires Python 2, but you're using Python ${version}.`),
46
44
  invalidProduct: 'Invalid product. Rerun the command with a valid product.',
47
45
  invalidSite: 'The site you entered is not an Atlassian site. Rerun the command with the URL to an Atlassian site to install the app.',
48
46
  invalidTokenInKeytarOrCache: `Your API token is no longer valid. Run ${chalk_1.default.bold('forge login')} to reset your login credentials.`,
@@ -576,8 +574,8 @@ ${buildTerminalLink(link)}\n`,
576
574
  promptFuncKey: 'Select a web trigger:',
577
575
  error: {
578
576
  funcKey: "The given web trigger key doesn't exist in the manifest.yml file.",
579
- noWebtriggers: "The manifest.yml file doesn't contain any web triggers. Add a web trigger before " + 'rerunning this command.',
580
- creationError: (message) => `Installation error: ${message}`
577
+ noWebtriggers: "The manifest.yml file doesn't contain any web triggers. Add a web trigger before rerunning this command.",
578
+ creationError: (message) => `Web trigger URL creation error: ${message}`
581
579
  }
582
580
  },
583
581
  logs: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli-shared",
3
- "version": "0.0.0-experimental-e1cefc4",
3
+ "version": "0.0.0-experimental-29a2cc1",
4
4
  "description": "Common functionality for Forge CLI",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -12,7 +12,7 @@
12
12
  "generate-graphql-types": "graphql-codegen --config src/graphql/codegen.yml"
13
13
  },
14
14
  "dependencies": {
15
- "@forge/manifest": "0.0.0-experimental-e1cefc4",
15
+ "@forge/manifest": "0.0.0-experimental-29a2cc1",
16
16
  "@forge/util": "1.2.0",
17
17
  "array.prototype.flatmap": "^1.2.3",
18
18
  "case": "^1.6.2",
@@ -21,16 +21,18 @@
21
21
  "cli-table3": "^0.6.1",
22
22
  "conf": "^6.2.0",
23
23
  "cross-spawn": "^7.0.1",
24
+ "env-paths": "^2.2.0",
24
25
  "figures": "^3.2.0",
25
26
  "fp-ts": "^2.0.1",
26
27
  "fs-extra": "^8.1.0",
27
28
  "get-folder-size": "^2.0.1",
28
29
  "glob": "^7.1.6",
29
- "graphql": "^15.0.0",
30
+ "graphql": "^15.8.0",
30
31
  "graphql-request": "3.4.0",
31
32
  "ignore-walk": "^3.0.3",
32
33
  "inquirer": "^7.0.4",
33
34
  "io-ts": "^2.0.6",
35
+ "launchdarkly-node-client-sdk": "^2.0.3",
34
36
  "node-fetch": "2.6.1",
35
37
  "ora": "^4.0.3",
36
38
  "recursive-readdir": "^2.2.2",
@@ -41,7 +43,7 @@
41
43
  "yaml": "^1.10.0"
42
44
  },
43
45
  "optionalDependencies": {
44
- "keytar": "^7.0.0"
46
+ "keytar": "^7.9.0"
45
47
  },
46
48
  "devDependencies": {
47
49
  "@graphql-codegen/add": "^2.0.1",