@netlify/build-info 6.5.1 → 6.6.0

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/lib/node/bin.js CHANGED
@@ -2,6 +2,7 @@ import { argv, exit } from 'process';
2
2
  import yargs from 'yargs';
3
3
  import { hideBin } from 'yargs/helpers';
4
4
  import { report } from '../metrics.js';
5
+ import { getFeatureFlags } from './feature-flags.js';
5
6
  import { getBuildInfo } from './get-build-info.js';
6
7
  import { initializeMetrics } from './metrics.js';
7
8
  yargs(hideBin(argv))
@@ -10,18 +11,23 @@ yargs(hideBin(argv))
10
11
  string: true,
11
12
  describe: `The root directory of the project if different from projectDir`,
12
13
  },
13
- featureFlags: {
14
+ devCycleUser: {
14
15
  string: true,
15
- describe: 'comma separated list of feature flags',
16
- coerce: (value = '') => value
17
- .split(',')
18
- .map((flag) => flag.trim())
19
- .filter((flag) => flag.length)
20
- .reduce((prev, cur) => ({ ...prev, [cur]: true }), {}),
16
+ default: '{}',
17
+ describe: 'DevCycle user that is used for the feature flag client',
18
+ coerce: (value) => {
19
+ try {
20
+ return JSON.parse(value);
21
+ }
22
+ catch {
23
+ return {};
24
+ }
25
+ },
21
26
  },
22
- }), async ({ projectDir, rootDir, featureFlags }) => {
27
+ }), async ({ projectDir, rootDir, devCycleUser }) => {
23
28
  // start bugsnag reporting
24
29
  await initializeMetrics();
30
+ const featureFlags = await getFeatureFlags(devCycleUser);
25
31
  try {
26
32
  console.log(JSON.stringify(await getBuildInfo({ projectDir, rootDir, featureFlags }), null, 2));
27
33
  }
@@ -29,6 +35,7 @@ yargs(hideBin(argv))
29
35
  report(error);
30
36
  exit(1);
31
37
  }
38
+ exit(0);
32
39
  })
33
40
  .strict()
34
41
  .parse();
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/node/bin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAoB,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACjB,OAAO,CACN,gBAAgB,EAChB,kDAAkD,EAClD,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,OAAO,CAAC;IACd,OAAO,EAAE;QACP,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,gEAAgE;KAC3E;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,uCAAuC;QACjD,MAAM,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CACrB,KAAK;aACF,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;aAC7B,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;KAC3D;CACF,CAAC,EACJ,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAQ,EAAE,EAAE;IACpD,0BAA0B;IAC1B,MAAM,iBAAiB,EAAE,CAAA;IACzB,IAAI;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;KAChG;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,CAAA;QACb,IAAI,CAAC,CAAC,CAAC,CAAA;KACR;AACH,CAAC,CACF;KACA,MAAM,EAAE;KACR,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/node/bin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAGpC,OAAO,KAAoB,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACjB,OAAO,CACN,gBAAgB,EAChB,kDAAkD,EAClD,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,OAAO,CAAC;IACd,OAAO,EAAE;QACP,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,gEAAgE;KAC3E;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,wDAAwD;QAClE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;aACzB;YAAC,MAAM;gBACN,OAAO,EAAE,CAAA;aACV;QACH,CAAC;KACF;CACF,CAAC,EACJ,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAQ,EAAE,EAAE;IACpD,0BAA0B;IAC1B,MAAM,iBAAiB,EAAE,CAAA;IACzB,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAA;IAExD,IAAI;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;KAChG;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,CAAA;QACb,IAAI,CAAC,CAAC,CAAC,CAAA;KACR;IACD,IAAI,CAAC,CAAC,CAAC,CAAA;AACT,CAAC,CACF;KACA,MAAM,EAAE;KACR,KAAK,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { DVCUser } from '@devcycle/nodejs-server-sdk';
2
+ /** Get a list of feature flags for a provided user */
3
+ export declare function getFeatureFlags(user?: DVCUser): Promise<Record<string, boolean>>;
@@ -0,0 +1,16 @@
1
+ import { initialize } from '@devcycle/nodejs-server-sdk';
2
+ /** Get a list of feature flags for a provided user */
3
+ export async function getFeatureFlags(user) {
4
+ try {
5
+ if (!process.env.DEV_CYCLE_KEY || !user?.user_id) {
6
+ return {};
7
+ }
8
+ const dvcClient = await initialize(process.env.DEV_CYCLE_KEY).onClientInitialized();
9
+ const features = dvcClient.allFeatures(user);
10
+ return Object.values(features || {}).reduce((prev, feature) => ({ ...prev, [feature.key]: true }), {});
11
+ }
12
+ catch {
13
+ return {};
14
+ }
15
+ }
16
+ //# sourceMappingURL=feature-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/node/feature-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAEjE,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAc;IAClD,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;YAChD,OAAO,EAAE,CAAA;SACV;QAED,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,mBAAmB,EAAE,CAAA;QACnF,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE5C,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;KACvG;IAAC,MAAM;QACN,OAAO,EAAE,CAAA;KACV;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netlify/build-info",
3
- "version": "6.5.1",
3
+ "version": "6.6.0",
4
4
  "description": "Build info utility",
5
5
  "type": "module",
6
6
  "exports": {
@@ -37,6 +37,7 @@
37
37
  "author": "Netlify Inc.",
38
38
  "dependencies": {
39
39
  "@bugsnag/js": "^7.20.0",
40
+ "@devcycle/nodejs-server-sdk": "^1.8.0",
40
41
  "@netlify/framework-info": "^9.8.5",
41
42
  "find-up": "^6.3.0",
42
43
  "minimatch": "^6.2.0",
@@ -63,5 +64,5 @@
63
64
  "engines": {
64
65
  "node": "^14.16.0 || >=16.0.0"
65
66
  },
66
- "gitHead": "9cebb5810464680fb8dd7f9a579d6679f7a9030b"
67
+ "gitHead": "510b8254c66cbadd3e6065ceacd96faabe4d7f89"
67
68
  }