@forge/cli-shared 8.3.1-next.2 → 8.3.1-next.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @forge/cli-shared
2
2
 
3
+ ## 8.3.1-next.3
4
+
5
+ ### Patch Changes
6
+
7
+ - d77aea3: Cache credentials in credential store
8
+
3
9
  ## 8.3.1-next.2
4
10
 
5
11
  ### Patch Changes
@@ -43,6 +43,7 @@ export declare class CredentialStoreImpl implements CredentialStore {
43
43
  private readonly cachedConfig;
44
44
  private readonly userRepository;
45
45
  private keytarAccount;
46
+ private cached;
46
47
  constructor(logger: Logger, instructionsURL: string, keytar: Keytar | null, cachedConfig: CachedConf, userRepository: UserRepository);
47
48
  private wrapKeytarError;
48
49
  decodeCredentials(credentialsString: string | null): PersonalApiCredentialsValidated;
@@ -1 +1 @@
1
- {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../../src/auth/personal/credential-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAuB,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,MAAM,EAAQ,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,SAAS,gBAAgB,CAAC;AACvC,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAa/C,MAAM,WAAW,MAAM;IACrB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAUD,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;EAI/C,CAAC;AAEH,oBAAY,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAClF,oBAAY,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEpG,qBAAa,mBAAoB,SAAQ,SAAS;;CAIjD;AAED,qBAAa,aAAc,SAAQ,SAAS;;CAI3C;AAED,qBAAa,iBAAkB,SAAQ,SAAS;CAAG;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,cAAc,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,qBAAa,mBAAoB,YAAW,eAAe;IAIvD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPjC,OAAO,CAAC,aAAa,CAAS;gBAGX,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,cAAc;IAKjD,OAAO,CAAC,eAAe;IAoBvB,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,+BAA+B;IAoB9E,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC;IAehG,+BAA+B,IAAI,+BAA+B,GAAG,SAAS;IAS9E,kCAAkC,IAAI,IAAI;IAIpC,cAAc,IAAI,OAAO,CAAC,+BAA+B,CAAC;IA8B1D,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAWzC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,eAAe,CAKlG"}
1
+ {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../../src/auth/personal/credential-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAuB,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,MAAM,EAAQ,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,SAAS,gBAAgB,CAAC;AACvC,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAa/C,MAAM,WAAW,MAAM;IACrB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAUD,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;EAI/C,CAAC;AAEH,oBAAY,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAClF,oBAAY,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEpG,qBAAa,mBAAoB,SAAQ,SAAS;;CAIjD;AAED,qBAAa,aAAc,SAAQ,SAAS;;CAI3C;AAED,qBAAa,iBAAkB,SAAQ,SAAS;CAAG;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,cAAc,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,qBAAa,mBAAoB,YAAW,eAAe;IAKvD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IARjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAgD;gBAG3C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,cAAc;IAKjD,OAAO,CAAC,eAAe;IAoBvB,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,+BAA+B;IAoB9E,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC;IAehG,+BAA+B,IAAI,+BAA+B,GAAG,SAAS;IAS9E,kCAAkC,IAAI,IAAI;IAIpC,cAAc,IAAI,OAAO,CAAC,+BAA+B,CAAC;IAoC1D,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAYzC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,eAAe,CAKlG"}
@@ -61,6 +61,7 @@ class CredentialStoreImpl {
61
61
  cachedConfig;
62
62
  userRepository;
63
63
  keytarAccount;
64
+ cached = null;
64
65
  constructor(logger, instructionsURL, keytar, cachedConfig, userRepository) {
65
66
  this.logger = logger;
66
67
  this.instructionsURL = instructionsURL;
@@ -130,6 +131,10 @@ class CredentialStoreImpl {
130
131
  this.cachedConfig.delete(CACHE_CREDENTIALS_KEY);
131
132
  }
132
133
  async getCredentials() {
134
+ if (this.cached) {
135
+ return this.cached;
136
+ }
137
+ let result;
133
138
  const plaintextCredentials = this.popInsecurePlaintextCredentials();
134
139
  if (plaintextCredentials) {
135
140
  if (this.keytar) {
@@ -146,17 +151,19 @@ class CredentialStoreImpl {
146
151
  token: process.env[exports.API_TOKEN_KEY]
147
152
  };
148
153
  const { accountId } = await this.userRepository.getUser(credentials);
149
- return { ...credentials, accountId };
154
+ result = { ...credentials, accountId };
150
155
  }
151
- if (this.keytar) {
152
- const result = await this.getCredentialsKeytar(this.keytar);
153
- if (result) {
154
- return result;
155
- }
156
+ else if (this.keytar) {
157
+ result = await this.getCredentialsKeytar(this.keytar);
158
+ }
159
+ if (result) {
160
+ this.cached = result;
161
+ return result;
156
162
  }
157
163
  throw new NoTokenInStoreError();
158
164
  }
159
165
  async setCredentials(credentials) {
166
+ this.cached = null;
160
167
  if (this.keytar) {
161
168
  try {
162
169
  await this.keytar.setPassword(KEYTAR_SERVICE, this.keytarAccount, JSON.stringify(credentials));
@@ -170,6 +177,7 @@ class CredentialStoreImpl {
170
177
  }
171
178
  }
172
179
  async deleteCredentials() {
180
+ this.cached = null;
173
181
  if (this.keytar) {
174
182
  try {
175
183
  await this.keytar.deletePassword(KEYTAR_SERVICE, this.keytarAccount);
@@ -1734,6 +1734,41 @@ export declare type AgentStudioTeamsChannelDetails = {
1734
1734
  channelName?: Maybe<Scalars['String']['output']>;
1735
1735
  channelUrl?: Maybe<Scalars['String']['output']>;
1736
1736
  };
1737
+ export declare type AgentStudioTool = {
1738
+ __typename?: 'AgentStudioTool';
1739
+ description?: Maybe<Scalars['String']['output']>;
1740
+ displayName?: Maybe<Scalars['String']['output']>;
1741
+ iconUrl?: Maybe<Scalars['String']['output']>;
1742
+ id: Scalars['ID']['output'];
1743
+ integrationKey?: Maybe<Scalars['String']['output']>;
1744
+ };
1745
+ export declare type AgentStudioToolEdge = {
1746
+ __typename?: 'AgentStudioToolEdge';
1747
+ cursor?: Maybe<Scalars['String']['output']>;
1748
+ node?: Maybe<AgentStudioTool>;
1749
+ };
1750
+ export declare type AgentStudioToolIntegration = {
1751
+ __typename?: 'AgentStudioToolIntegration';
1752
+ displayName?: Maybe<Scalars['String']['output']>;
1753
+ iconUrl?: Maybe<Scalars['String']['output']>;
1754
+ id: Scalars['ID']['output'];
1755
+ integrationKey?: Maybe<Scalars['String']['output']>;
1756
+ };
1757
+ export declare type AgentStudioToolIntegrationEdge = {
1758
+ __typename?: 'AgentStudioToolIntegrationEdge';
1759
+ cursor?: Maybe<Scalars['String']['output']>;
1760
+ node?: Maybe<AgentStudioToolIntegration>;
1761
+ };
1762
+ export declare type AgentStudioToolIntegrationsConnection = {
1763
+ __typename?: 'AgentStudioToolIntegrationsConnection';
1764
+ edges?: Maybe<Array<AgentStudioToolIntegrationEdge>>;
1765
+ pageInfo?: Maybe<PageInfo>;
1766
+ };
1767
+ export declare type AgentStudioToolsConnection = {
1768
+ __typename?: 'AgentStudioToolsConnection';
1769
+ edges?: Maybe<Array<AgentStudioToolEdge>>;
1770
+ pageInfo?: Maybe<PageInfo>;
1771
+ };
1737
1772
  export declare type AgentStudioUpdateAgentActionsPayload = Payload & {
1738
1773
  __typename?: 'AgentStudioUpdateAgentActionsPayload';
1739
1774
  agent?: Maybe<AgentStudioAgent>;
@@ -23880,7 +23915,7 @@ export declare type ExternalAssociationEdge = {
23880
23915
  cursor?: Maybe<Scalars['String']['output']>;
23881
23916
  node?: Maybe<ExternalAssociation>;
23882
23917
  };
23883
- export declare type ExternalAssociationEntity = DevOpsService | ExternalBranch | ExternalBuildInfo | ExternalCalendarEvent | ExternalComment | ExternalCommit | ExternalConversation | ExternalCustomerOrg | ExternalDeal | ExternalDeployment | ExternalDesign | ExternalDocument | ExternalFeatureFlag | ExternalMessage | ExternalOrganisation | ExternalPosition | ExternalProject | ExternalPullRequest | ExternalRemoteLink | ExternalRepository | ExternalSoftwareService | ExternalSpace | ExternalTest | ExternalTestExecution | ExternalTestRun | ExternalVideo | ExternalVulnerability | ExternalWorkItem | ExternalWorker | JiraIssue | JiraProject | JiraVersion | ThirdPartyUser;
23918
+ export declare type ExternalAssociationEntity = DevOpsService | ExternalBranch | ExternalBuildInfo | ExternalCalendarEvent | ExternalComment | ExternalCommit | ExternalConversation | ExternalCustomerOrg | ExternalDeal | ExternalDeployment | ExternalDesign | ExternalDocument | ExternalFeatureFlag | ExternalMessage | ExternalOrganisation | ExternalPosition | ExternalProject | ExternalPullRequest | ExternalRemoteLink | ExternalRepository | ExternalSoftwareService | ExternalSpace | ExternalTest | ExternalTestExecution | ExternalTestPlan | ExternalTestRun | ExternalVideo | ExternalVulnerability | ExternalWorkItem | ExternalWorker | JiraIssue | JiraProject | JiraVersion | ThirdPartyUser;
23884
23919
  export declare type ExternalAttachment = {
23885
23920
  __typename?: 'ExternalAttachment';
23886
23921
  byteSize?: Maybe<Scalars['Long']['output']>;
@@ -24377,13 +24412,14 @@ export declare type ExternalEntities = {
24377
24412
  space?: Maybe<Array<Maybe<ExternalSpace>>>;
24378
24413
  test?: Maybe<Array<Maybe<ExternalTest>>>;
24379
24414
  testExecution?: Maybe<Array<Maybe<ExternalTestExecution>>>;
24415
+ testPlan?: Maybe<Array<Maybe<ExternalTestPlan>>>;
24380
24416
  testRun?: Maybe<Array<Maybe<ExternalTestRun>>>;
24381
24417
  video?: Maybe<Array<Maybe<ExternalVideo>>>;
24382
24418
  vulnerability?: Maybe<Array<Maybe<ExternalVulnerability>>>;
24383
24419
  workItem?: Maybe<Array<Maybe<ExternalWorkItem>>>;
24384
24420
  worker?: Maybe<Array<Maybe<ExternalWorker>>>;
24385
24421
  };
24386
- export declare type ExternalEntity = ExternalBranch | ExternalBuildInfo | ExternalCalendarEvent | ExternalComment | ExternalCommit | ExternalConversation | ExternalCustomerOrg | ExternalDeal | ExternalDeployment | ExternalDesign | ExternalDocument | ExternalFeatureFlag | ExternalMessage | ExternalOrganisation | ExternalPosition | ExternalProject | ExternalPullRequest | ExternalRemoteLink | ExternalRepository | ExternalSoftwareService | ExternalSpace | ExternalTest | ExternalTestExecution | ExternalTestRun | ExternalVideo | ExternalVulnerability | ExternalWorkItem | ExternalWorker;
24422
+ export declare type ExternalEntity = ExternalBranch | ExternalBuildInfo | ExternalCalendarEvent | ExternalComment | ExternalCommit | ExternalConversation | ExternalCustomerOrg | ExternalDeal | ExternalDeployment | ExternalDesign | ExternalDocument | ExternalFeatureFlag | ExternalMessage | ExternalOrganisation | ExternalPosition | ExternalProject | ExternalPullRequest | ExternalRemoteLink | ExternalRepository | ExternalSoftwareService | ExternalSpace | ExternalTest | ExternalTestExecution | ExternalTestPlan | ExternalTestRun | ExternalVideo | ExternalVulnerability | ExternalWorkItem | ExternalWorker;
24387
24423
  export declare type ExternalEnvironment = {
24388
24424
  __typename?: 'ExternalEnvironment';
24389
24425
  displayName?: Maybe<Scalars['String']['output']>;
@@ -24829,6 +24865,25 @@ export declare type ExternalTestInfo = {
24829
24865
  numberSkipped?: Maybe<Scalars['Int']['output']>;
24830
24866
  totalNumber?: Maybe<Scalars['Int']['output']>;
24831
24867
  };
24868
+ export declare type ExternalTestPlan = Node & {
24869
+ __typename?: 'ExternalTestPlan';
24870
+ associatedWith?: Maybe<ExternalAssociationConnection>;
24871
+ createdAt?: Maybe<Scalars['String']['output']>;
24872
+ createdBy?: Maybe<ExternalUser>;
24873
+ displayName?: Maybe<Scalars['String']['output']>;
24874
+ externalId?: Maybe<Scalars['String']['output']>;
24875
+ id: Scalars['ID']['output'];
24876
+ lastUpdated?: Maybe<Scalars['String']['output']>;
24877
+ lastUpdatedBy?: Maybe<ExternalUser>;
24878
+ owners?: Maybe<Array<Maybe<ExternalUser>>>;
24879
+ parent?: Maybe<ExternalEntity>;
24880
+ parentId?: Maybe<Scalars['ID']['output']>;
24881
+ provider?: Maybe<ExternalProvider>;
24882
+ thirdPartyId?: Maybe<Scalars['String']['output']>;
24883
+ thumbnail?: Maybe<ExternalThumbnail>;
24884
+ updateSequenceNumber?: Maybe<Scalars['Long']['output']>;
24885
+ url?: Maybe<Scalars['String']['output']>;
24886
+ };
24832
24887
  export declare type ExternalTestRun = Node & {
24833
24888
  __typename?: 'ExternalTestRun';
24834
24889
  assignee?: Maybe<ExternalUser>;
@@ -60462,11 +60517,11 @@ export declare type JiraFieldSchemeAssociatedFieldsEdge = {
60462
60517
  node?: Maybe<JiraFieldSchemeAssociatedField>;
60463
60518
  };
60464
60519
  export declare type JiraFieldSchemeAssociatedFieldsInput = {
60465
- nameFilter?: InputMaybe<Scalars['String']['input']>;
60520
+ nameOrDescriptionFilter?: InputMaybe<Scalars['String']['input']>;
60466
60521
  schemeId: Scalars['ID']['input'];
60467
60522
  };
60468
60523
  export declare type JiraFieldSchemeAvailableFieldsInput = {
60469
- nameFilter?: InputMaybe<Scalars['String']['input']>;
60524
+ nameOrDescriptionFilter?: InputMaybe<Scalars['String']['input']>;
60470
60525
  schemeId: Scalars['ID']['input'];
60471
60526
  };
60472
60527
  export declare type JiraFieldSchemePayload = Payload & {
@@ -88279,6 +88334,8 @@ export declare type Query = {
88279
88334
  agentStudio_scenarioListByContainerId?: Maybe<AgentStudioScenariosResult>;
88280
88335
  agentStudio_scenariosByIds?: Maybe<Array<Maybe<AgentStudioScenario>>>;
88281
88336
  agentStudio_suggestConversationStarters?: Maybe<AgentStudioSuggestConversationStartersResult>;
88337
+ agentStudio_toolIntegrations?: Maybe<AgentStudioToolIntegrationsConnection>;
88338
+ agentStudio_tools?: Maybe<AgentStudioToolsConnection>;
88282
88339
  agentStudio_validateScenario?: Maybe<AgentStudioScenarioValidationPayload>;
88283
88340
  agentStudio_validateScenarios?: Maybe<AgentStudioScenarioValidateModeOutput>;
88284
88341
  aiCoreApi_vsaQuestionsByProject?: Maybe<AiCoreApiVsaQuestionsResult>;
@@ -88990,6 +89047,18 @@ export declare type QueryAgentStudio_SuggestConversationStartersArgs = {
88990
89047
  cloudId: Scalars['String']['input'];
88991
89048
  input: AgentStudioSuggestConversationStartersInput;
88992
89049
  };
89050
+ export declare type QueryAgentStudio_ToolIntegrationsArgs = {
89051
+ after?: InputMaybe<Scalars['String']['input']>;
89052
+ cloudId: Scalars['String']['input'];
89053
+ first?: InputMaybe<Scalars['Int']['input']>;
89054
+ };
89055
+ export declare type QueryAgentStudio_ToolsArgs = {
89056
+ after?: InputMaybe<Scalars['String']['input']>;
89057
+ cloudId: Scalars['String']['input'];
89058
+ first?: InputMaybe<Scalars['Int']['input']>;
89059
+ integrationKeys?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
89060
+ searchQuery?: InputMaybe<Scalars['String']['input']>;
89061
+ };
88993
89062
  export declare type QueryAgentStudio_ValidateScenarioArgs = {
88994
89063
  cloudId: Scalars['String']['input'];
88995
89064
  containerId: Scalars['ID']['input'];