@forge/cli-shared 7.1.0-next.6 → 8.0.0-experimental-71cedbc

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/out/app-logs/graphql-client.d.ts +1 -1
  3. package/out/app-logs/graphql-client.d.ts.map +1 -1
  4. package/out/app-logs/graphql-client.js +33 -18
  5. package/out/app-logs/view-logs.d.ts +4 -2
  6. package/out/app-logs/view-logs.d.ts.map +1 -1
  7. package/out/app-logs/view-logs.js +4 -3
  8. package/out/apps/create-an-app.d.ts +1 -1
  9. package/out/apps/create-an-app.d.ts.map +1 -1
  10. package/out/apps/create-an-app.js +4 -1
  11. package/out/apps/template.d.ts.map +1 -1
  12. package/out/apps/template.js +4 -2
  13. package/out/file-system/file-system-reader.d.ts +1 -0
  14. package/out/file-system/file-system-reader.d.ts.map +1 -1
  15. package/out/graphql/graphql-types.d.ts +2001 -387
  16. package/out/graphql/graphql-types.d.ts.map +1 -1
  17. package/out/graphql/graphql-types.js +329 -115
  18. package/out/service/bridge-script-service.d.ts +1 -0
  19. package/out/service/bridge-script-service.d.ts.map +1 -1
  20. package/out/service/i18n-resource-bundling-service.d.ts +1 -0
  21. package/out/service/i18n-resource-bundling-service.d.ts.map +1 -1
  22. package/out/service/iframe-resizer-script-service.d.ts +1 -0
  23. package/out/service/iframe-resizer-script-service.d.ts.map +1 -1
  24. package/out/service/statsig-service.d.ts +2 -1
  25. package/out/service/statsig-service.d.ts.map +1 -1
  26. package/out/service/statsig-service.js +3 -0
  27. package/out/shared/test.d.ts.map +1 -1
  28. package/out/shared/test.js +2 -3
  29. package/out/ui/command-line-ui.d.ts +0 -1
  30. package/out/ui/command-line-ui.d.ts.map +1 -1
  31. package/out/ui/command-line-ui.js +0 -5
  32. package/out/ui/logger.d.ts +0 -1
  33. package/out/ui/logger.d.ts.map +1 -1
  34. package/out/ui/logger.js +0 -2
  35. package/out/ui/text.d.ts +0 -14
  36. package/out/ui/text.d.ts.map +1 -1
  37. package/out/ui/text.js +1 -20
  38. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,121 @@
1
1
  # @forge/cli-shared
2
2
 
3
+ ## 8.0.0-experimental-71cedbc
4
+
5
+ ### Minor Changes
6
+
7
+ - 71cedbc: Added support for Dashboards context for app creation
8
+
9
+ ## 8.0.0
10
+
11
+ ### Major Changes
12
+
13
+ - 8f2a3c9: Update the package to build on Node 20
14
+ - d33186c: Resolved sorting issue in the displayed log lines
15
+
16
+ ### Minor Changes
17
+
18
+ - e4ab25f: Rename forge containers list to forge containers repositories
19
+ - 9f050ff: Removed support for Sandbox Runtime and Sanpshots
20
+ - ba634d9: Remove further sandbox runtime related components
21
+
22
+ ### Patch Changes
23
+
24
+ - 75b7732: Remove feature flag for single wrapper packaging
25
+ - c3df542: Add an error for scoped token usage
26
+ - 64befbb: Refactor runtime version manifest check into a linter
27
+ - Updated dependencies [a7bd152]
28
+ - Updated dependencies [73a88f6]
29
+ - Updated dependencies [33c5750]
30
+ - Updated dependencies [0c92352]
31
+ - Updated dependencies [8f2a3c9]
32
+ - Updated dependencies [1992aaf]
33
+ - Updated dependencies [b44a5b3]
34
+ - Updated dependencies [9f050ff]
35
+ - Updated dependencies [e6cd96a]
36
+ - Updated dependencies [97255de]
37
+ - Updated dependencies [3d96d1c]
38
+ - Updated dependencies [18eab48]
39
+ - Updated dependencies [be59801]
40
+ - Updated dependencies [8a548ce]
41
+ - Updated dependencies [37eba69]
42
+ - Updated dependencies [c2e09b9]
43
+ - Updated dependencies [ba634d9]
44
+ - Updated dependencies [64befbb]
45
+ - @forge/manifest@10.0.0
46
+
47
+ ## 8.0.0-next.15
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [3d96d1c]
52
+ - @forge/manifest@10.0.0-next.13
53
+
54
+ ## 8.0.0-next.14
55
+
56
+ ### Minor Changes
57
+
58
+ - ba634d9: Remove further sandbox runtime related components
59
+
60
+ ### Patch Changes
61
+
62
+ - Updated dependencies [ba634d9]
63
+ - @forge/manifest@10.0.0-next.12
64
+
65
+ ## 8.0.0-next.13
66
+
67
+ ### Patch Changes
68
+
69
+ - Updated dependencies [1992aaf]
70
+ - Updated dependencies [c2e09b9]
71
+ - @forge/manifest@10.0.0-next.11
72
+
73
+ ## 8.0.0-next.12
74
+
75
+ ### Major Changes
76
+
77
+ - d33186c: Resolved sorting issue in the displayed log lines
78
+
79
+ ## 8.0.0-next.11
80
+
81
+ ### Patch Changes
82
+
83
+ - Updated dependencies [e6cd96a]
84
+ - @forge/manifest@10.0.0-next.10
85
+
86
+ ## 8.0.0-next.10
87
+
88
+ ### Patch Changes
89
+
90
+ - Updated dependencies [33c5750]
91
+ - @forge/manifest@10.0.0-next.9
92
+
93
+ ## 8.0.0-next.9
94
+
95
+ ### Patch Changes
96
+
97
+ - Updated dependencies [37eba69]
98
+ - @forge/manifest@10.0.0-next.8
99
+
100
+ ## 8.0.0-next.8
101
+
102
+ ### Major Changes
103
+
104
+ - 8f2a3c9: Update the package to build on Node 20
105
+
106
+ ### Patch Changes
107
+
108
+ - Updated dependencies [8f2a3c9]
109
+ - @forge/manifest@10.0.0-next.7
110
+
111
+ ## 7.1.0-next.7
112
+
113
+ ### Patch Changes
114
+
115
+ - Updated dependencies [a7bd152]
116
+ - Updated dependencies [8a548ce]
117
+ - @forge/manifest@9.5.0-next.6
118
+
3
119
  ## 7.1.0-next.6
4
120
 
5
121
  ### Minor Changes
@@ -18,7 +18,7 @@ export declare class LogsGraphQLClient implements ViewAppLogsClient {
18
18
  function?: string | undefined;
19
19
  trigger?: string | undefined;
20
20
  }>;
21
- viewAppLogsV2(details: AppLogsDetailsV2, invocationMap: Map<string, Invocation>, totalRecieved: number): Promise<Invocation[]>;
21
+ viewAppLogsV2(details: AppLogsDetailsV2, invocationMap: Map<string, Invocation>, logLinesWithInvocation: Invocation[], totalRecieved: number): Promise<Invocation[]>;
22
22
  viewAppLogs(details: AppLogsDetails): Promise<Invocation[]>;
23
23
  private extractInvocationInfo;
24
24
  private extractLogLines;
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/app-logs/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6E,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtH,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAwBrB,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AACjD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AACpD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAElD,qBAAa,iBAAkB,YAAW,iBAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,kBAAkB,CAAC,OAAO,EAAE,wBAAwB;;;;;;;IAapD,aAAa,CACxB,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,EAAE,CAAC;IAoFX,WAAW,CAAC,OAAO,EAAE,cAAc;IAwEhD,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;YAcT,iBAAiB;CAqDhC"}
1
+ {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/app-logs/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6E,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtH,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAwBrB,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AACjD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AACpD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAElD,qBAAa,iBAAkB,YAAW,iBAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,kBAAkB,CAAC,OAAO,EAAE,wBAAwB;;;;;;;IAapD,aAAa,CACxB,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,sBAAsB,EAAE,UAAU,EAAE,EACpC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,EAAE,CAAC;IAoGX,WAAW,CAAC,OAAO,EAAE,cAAc;IAwEhD,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;YAcT,iBAAiB;CAqDhC"}
@@ -34,7 +34,7 @@ class LogsGraphQLClient {
34
34
  logs: result.lines.map(sanitizeLogLine)
35
35
  };
36
36
  }
37
- async viewAppLogsV2(details, invocationMap, totalRecieved) {
37
+ async viewAppLogsV2(details, invocationMap, logLinesWithInvocation, totalRecieved) {
38
38
  const query = `
39
39
  query forge_cli_getApplicationLogsV2(
40
40
  $appId: String!,
@@ -79,33 +79,48 @@ class LogsGraphQLClient {
79
79
  throw new MissingAppLogsError();
80
80
  }
81
81
  for (const logLine of result.appLogsWithMetaData.appLogs) {
82
- let logsMetadata = invocationMap.get(logLine.invocationId);
83
- if (!logsMetadata) {
84
- logsMetadata = {
85
- id: logLine.invocationId,
86
- appVersion: logLine.appVersion,
87
- function: logLine.functionKey || undefined,
88
- trigger: undefined,
89
- logs: []
90
- };
82
+ if (details.grouped) {
83
+ let logsMetadata = invocationMap.get(logLine.invocationId);
84
+ if (!logsMetadata) {
85
+ logsMetadata = {
86
+ id: logLine.invocationId,
87
+ appVersion: logLine.appVersion,
88
+ function: logLine.functionKey || undefined,
89
+ trigger: undefined,
90
+ logs: []
91
+ };
92
+ }
93
+ logsMetadata.logs.push({
94
+ message: logLine.message || undefined,
95
+ other: logLine.other ? JSON.parse(logLine.other) : [],
96
+ level: logLine.lvl || undefined,
97
+ timestamp: logLine.ts
98
+ });
99
+ invocationMap.set(logLine.invocationId, logsMetadata);
91
100
  }
92
- logsMetadata.logs.push({
93
- message: logLine.message || undefined,
94
- other: logLine.other ? JSON.parse(logLine.other) : [],
95
- level: logLine.lvl || undefined,
96
- timestamp: logLine.ts
101
+ logLinesWithInvocation.push({
102
+ id: logLine.invocationId,
103
+ appVersion: logLine.appVersion,
104
+ function: logLine.functionKey || undefined,
105
+ logs: [
106
+ {
107
+ message: logLine.message || undefined,
108
+ other: logLine.other ? JSON.parse(logLine.other) : [],
109
+ level: logLine.lvl || undefined,
110
+ timestamp: logLine.ts
111
+ }
112
+ ]
97
113
  });
98
- invocationMap.set(logLine.invocationId, logsMetadata);
99
114
  }
100
115
  const serverSideMaxLimit = result.appLogsWithMetaData.appLogs.length;
101
116
  totalRecieved += serverSideMaxLimit;
102
117
  if (result.appLogsWithMetaData.hasNextPage && details.maxLimit > totalRecieved) {
103
118
  details.offset = details.offset + serverSideMaxLimit;
104
119
  details.limit = details.limit - serverSideMaxLimit;
105
- return this.viewAppLogsV2(details, invocationMap, totalRecieved);
120
+ return this.viewAppLogsV2(details, invocationMap, logLinesWithInvocation, totalRecieved);
106
121
  }
107
122
  const invocations = [...invocationMap.values()];
108
- return invocations;
123
+ return details.grouped ? invocations : logLinesWithInvocation;
109
124
  }
110
125
  async viewAppLogs(details) {
111
126
  const query = `
@@ -18,11 +18,13 @@ export interface QueryDetails {
18
18
  context?: InstallContext;
19
19
  startTime?: string | null;
20
20
  containers?: boolean;
21
+ grouped?: boolean;
21
22
  }
22
23
  export declare type AppLogsDetails = {
23
24
  appId: string;
24
25
  environmentId: string;
25
26
  limit: number;
27
+ grouped?: boolean;
26
28
  startTime?: string | null;
27
29
  contextAri?: [Ari];
28
30
  runtime?: string | null;
@@ -60,7 +62,7 @@ export declare enum Runtime {
60
62
  }
61
63
  export interface ViewAppLogsClient {
62
64
  viewAppLogs(details: AppLogsDetails): Promise<Invocation[]>;
63
- viewAppLogsV2(details: AppLogsDetailsV2, invocationMap: Map<string, Invocation>, totalRecieved: number): Promise<Invocation[]>;
65
+ viewAppLogsV2(details: AppLogsDetailsV2, invocationMap: Map<string, Invocation>, logLinesWithInvocation: Invocation[], totalRecieved: number): Promise<Invocation[]>;
64
66
  viewInvocationLogs(details: AppInvocationLogsDetails): Promise<Invocation>;
65
67
  }
66
68
  export declare class ViewAppLogsCommand {
@@ -70,7 +72,7 @@ export declare class ViewAppLogsCommand {
70
72
  private readonly logsClient;
71
73
  private readonly statsigService;
72
74
  constructor(getAppConfig: AppConfigProvider, appEnvironmentClient: AppEnvironmentClient, globalEdgeClient: GlobalEdgeClient, logsClient: ViewAppLogsClient, statsigService: StatsigService);
73
- getAll({ environmentKey, limit, context, startTime, containers }: QueryDetails): Promise<Invocation[]>;
75
+ getAll({ environmentKey, limit, context, startTime, grouped, containers }: QueryDetails): Promise<Invocation[]>;
74
76
  getLogs(details: AppLogsDetails): Promise<Invocation[]>;
75
77
  getOne(details: InvocationQueryDetails): Promise<Invocation>;
76
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"view-logs.d.ts","sourceRoot":"","sources":["../../src/app-logs/view-logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-logs.d.ts","sourceRoot":"","sources":["../../src/app-logs/view-logs.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ class ViewAppLogsCommand {
21
21
  this.logsClient = logsClient;
22
22
  this.statsigService = statsigService;
23
23
  }
24
- async getAll({ environmentKey, limit, context, startTime = null, containers = false }) {
24
+ async getAll({ environmentKey, limit, context, startTime = null, grouped = false, containers = false }) {
25
25
  const { id: appId } = await this.getAppConfig();
26
26
  const [environmentId, cloudId] = await Promise.all([
27
27
  this.appEnvironmentClient.getAppEnvironmentId(appId, environmentKey),
@@ -33,7 +33,8 @@ class ViewAppLogsCommand {
33
33
  environmentId,
34
34
  limit,
35
35
  startTime,
36
- contextAri: contextAri ? [contextAri] : undefined
36
+ contextAri: contextAri ? [contextAri] : undefined,
37
+ grouped
37
38
  };
38
39
  if (containers) {
39
40
  details.runtime = Runtime.CONTAINER.toLowerCase();
@@ -63,7 +64,7 @@ class ViewAppLogsCommand {
63
64
  dateSearchInput,
64
65
  queryStartTime: earliestStart.toISOString(),
65
66
  maxLimit: details.limit
66
- }, new Map(), 0);
67
+ }, new Map(), [], 0);
67
68
  }
68
69
  async getOne(details) {
69
70
  return this.logsClient.viewInvocationLogs({ invocationId: details.invocationId });
@@ -23,6 +23,6 @@ export declare class CreateAppCommand {
23
23
  constructor(templater: Templater, registerAppCommand: RegisterAppCommand, packageInstaller: PackageInstaller, statsig: StatsigService);
24
24
  execute({ name, description, template, directory, requiredProduct }: CreateAppCommandInput): Promise<CreateAppCommandResult>;
25
25
  getAvailableTemplates(): Promise<string[]>;
26
- filterAvailableProducts<T extends string>(products: T[], teamworkGraph: T, crossContext: T): Promise<T[]>;
26
+ filterAvailableProducts<T extends string>(products: T[], teamworkGraph: T, crossContext: T, dashboards: T): Promise<T[]>;
27
27
  }
28
28
  //# sourceMappingURL=create-an-app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-an-app.d.ts","sourceRoot":"","sources":["../../src/apps/create-an-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAI1C;AAED,oBAAY,sBAAsB,GAAG,iBAAiB,GAAG;IACvD,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,cAAc;IAG7B,OAAO,CAAC,EACnB,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,eAAe,EAChB,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAa7C,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAS1C,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACnD,QAAQ,EAAE,CAAC,EAAE,EACb,aAAa,EAAE,CAAC,EAChB,YAAY,EAAE,CAAC,GACd,OAAO,CAAC,CAAC,EAAE,CAAC;CAehB"}
1
+ {"version":3,"file":"create-an-app.d.ts","sourceRoot":"","sources":["../../src/apps/create-an-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAI1C;AAED,oBAAY,sBAAsB,GAAG,iBAAiB,GAAG;IACvD,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,cAAc;IAG7B,OAAO,CAAC,EACnB,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,eAAe,EAChB,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAa7C,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAS1C,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACnD,QAAQ,EAAE,CAAC,EAAE,EACb,aAAa,EAAE,CAAC,EAChB,YAAY,EAAE,CAAC,EACf,UAAU,EAAE,CAAC,GACZ,OAAO,CAAC,CAAC,EAAE,CAAC;CAkBhB"}
@@ -38,15 +38,18 @@ class CreateAppCommand {
38
38
  }
39
39
  return availableTemplates;
40
40
  }
41
- async filterAvailableProducts(products, teamworkGraph, crossContext) {
41
+ async filterAvailableProducts(products, teamworkGraph, crossContext, dashboards) {
42
42
  const useTeamworkGraph = await this.statsig.isTeamworkGraphProductSupported();
43
43
  const useCrossProduct = await this.statsig.enableCrossProductAppInstallation();
44
+ const useDashboards = await this.statsig.isDashboardsContextSupported();
44
45
  return products.filter((product) => {
45
46
  switch (product) {
46
47
  case teamworkGraph:
47
48
  return useTeamworkGraph;
48
49
  case crossContext:
49
50
  return useCrossProduct;
51
+ case dashboards:
52
+ return useDashboards;
50
53
  default:
51
54
  return true;
52
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/apps/template.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAM/B,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,QAAQ,EAAE,MAAM;CAG7B;AAED,qBAAa,2BAA4B,SAAQ,KAAK;CAAG;AAEzD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,cAAc;IAC7B,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,qBAAa,yBAA0B,YAAW,kBAAkB;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAevE,OAAO,CAAC,WAAW;CAGpB;AAED,qBAAa,oBAAqB,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAExC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAc7D,2BAA2B;CAe1C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAG5B;AAKD,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,wBAAwB;IAOnB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAcxD;AAED,qBAAa,mBAAoB,YAAW,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM;IAEpB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnF,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAG3C"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/apps/template.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAM/B,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,QAAQ,EAAE,MAAM;CAG7B;AAED,qBAAa,2BAA4B,SAAQ,KAAK;CAAG;AAEzD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,cAAc;IAC7B,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,qBAAa,yBAA0B,YAAW,kBAAkB;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvE,OAAO,CAAC,WAAW;CAGpB;AAED,qBAAa,oBAAqB,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAExC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAc7D,2BAA2B;CAe1C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAG5B;AAKD,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,wBAAwB;IAOnB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAcxD;AAED,qBAAa,mBAAoB,YAAW,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM;IAEpB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnF,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAG3C"}
@@ -10,7 +10,7 @@ const tmp_1 = tslib_1.__importDefault(require("tmp"));
10
10
  const url_1 = require("url");
11
11
  const error_handling_1 = require("../shared/error-handling");
12
12
  const ui_1 = require("../ui");
13
- const TEMPLATE_SERVICE_URL = 'https://forge-templates.us-west-2.prod.public.atl-paas.net/';
13
+ const TEMPLATE_SERVICE_URL = 'https://forge-templates.ap-southeast-2.dev.public.atl-paas.net';
14
14
  const TEMPLATE_MAP = 'templates.json';
15
15
  class NoTemplateError extends error_handling_1.UserError {
16
16
  constructor(template) {
@@ -30,7 +30,9 @@ class TemplateServiceDownloader {
30
30
  throw new NoTemplateError(template);
31
31
  }
32
32
  await new Promise((resolve) => {
33
- fileStream.on('finish', resolve);
33
+ fileStream.on('finish', (...args) => {
34
+ resolve(args);
35
+ });
34
36
  response.body.pipe(fileStream);
35
37
  });
36
38
  }
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
+ /// <reference types="node" />
3
4
  import fs from 'fs';
4
5
  declare type IgnoreFunction = (file: string, stats: fs.Stats) => boolean;
5
6
  export declare class FileSystemReader {
@@ -1 +1 @@
1
- {"version":3,"file":"file-system-reader.d.ts","sourceRoot":"","sources":["../../src/file-system/file-system-reader.ts"],"names":[],"mappings":";;AAAA,OAAO,EAA4B,MAAM,IAAI,CAAC;AAW9C,aAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC;AAEjE,qBAAa,gBAAgB;IACpB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQxC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS5D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBtG,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAiB,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmB3G,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQ9C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IASxE,gBAAgB,IAAI,MAAM;IAI1B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;IAO3C,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQvC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW/E,OAAO,CAAC,eAAe;IAQV,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAIpE"}
1
+ {"version":3,"file":"file-system-reader.d.ts","sourceRoot":"","sources":["../../src/file-system/file-system-reader.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAA4B,MAAM,IAAI,CAAC;AAW9C,aAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC;AAEjE,qBAAa,gBAAgB;IACpB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQxC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS5D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBtG,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAiB,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmB3G,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQ9C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IASxE,gBAAgB,IAAI,MAAM;IAI1B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;IAO3C,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQvC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW/E,OAAO,CAAC,eAAe;IAQV,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAIpE"}