@salesforce/core 4.0.0 → 4.1.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.
Files changed (151) hide show
  1. package/LICENSE.txt +1 -1
  2. package/README.md +93 -44
  3. package/lib/config/authInfoConfig.d.ts +19 -0
  4. package/lib/config/authInfoConfig.js +35 -0
  5. package/lib/config/config.d.ts +87 -22
  6. package/lib/config/config.js +117 -65
  7. package/lib/config/configAggregator.d.ts +41 -35
  8. package/lib/config/configAggregator.js +102 -73
  9. package/lib/config/configFile.d.ts +2 -2
  10. package/lib/config/configFile.js +38 -29
  11. package/lib/config/configStore.d.ts +9 -9
  12. package/lib/config/configStore.js +17 -15
  13. package/lib/config/envVars.d.ts +15 -9
  14. package/lib/config/envVars.js +71 -47
  15. package/lib/config/orgUsersConfig.js +2 -0
  16. package/lib/config/sandboxOrgConfig.js +2 -0
  17. package/lib/config/sandboxProcessCache.d.ts +16 -0
  18. package/lib/config/sandboxProcessCache.js +38 -0
  19. package/lib/config/tokensConfig.d.ts +10 -0
  20. package/lib/config/tokensConfig.js +29 -0
  21. package/lib/config/ttlConfig.d.ts +34 -0
  22. package/lib/config/ttlConfig.js +50 -0
  23. package/lib/crypto/crypto.js +15 -22
  24. package/lib/crypto/keyChain.js +2 -3
  25. package/lib/crypto/keyChainImpl.d.ts +5 -3
  26. package/lib/crypto/keyChainImpl.js +58 -61
  27. package/lib/crypto/secureBuffer.d.ts +1 -1
  28. package/lib/deviceOauthService.d.ts +3 -3
  29. package/lib/deviceOauthService.js +27 -25
  30. package/lib/exported.d.ts +15 -12
  31. package/lib/exported.js +28 -16
  32. package/lib/global.d.ts +11 -3
  33. package/lib/global.js +39 -12
  34. package/lib/lifecycleEvents.d.ts +1 -1
  35. package/lib/lifecycleEvents.js +3 -0
  36. package/lib/logger.d.ts +19 -9
  37. package/lib/logger.js +112 -86
  38. package/lib/messages.d.ts +53 -36
  39. package/lib/messages.js +81 -91
  40. package/lib/org/authInfo.d.ts +56 -20
  41. package/lib/org/authInfo.js +232 -131
  42. package/lib/org/authRemover.d.ts +8 -7
  43. package/lib/org/authRemover.js +32 -28
  44. package/lib/org/connection.d.ts +13 -37
  45. package/lib/org/connection.js +78 -124
  46. package/lib/org/index.js +5 -1
  47. package/lib/org/org.d.ts +151 -48
  48. package/lib/org/org.js +468 -225
  49. package/lib/org/orgConfigProperties.d.ts +64 -3
  50. package/lib/org/orgConfigProperties.js +96 -4
  51. package/lib/org/permissionSetAssignment.js +4 -13
  52. package/lib/org/scratchOrgCache.d.ts +20 -0
  53. package/lib/org/scratchOrgCache.js +33 -0
  54. package/lib/org/scratchOrgCreate.d.ts +28 -17
  55. package/lib/org/scratchOrgCreate.js +125 -53
  56. package/lib/org/scratchOrgErrorCodes.d.ts +9 -3
  57. package/lib/org/scratchOrgErrorCodes.js +34 -17
  58. package/lib/org/scratchOrgFeatureDeprecation.js +1 -6
  59. package/lib/org/scratchOrgInfoApi.d.ts +21 -47
  60. package/lib/org/scratchOrgInfoApi.js +129 -63
  61. package/lib/org/scratchOrgInfoGenerator.d.ts +6 -5
  62. package/lib/org/scratchOrgInfoGenerator.js +76 -62
  63. package/lib/org/scratchOrgLifecycleEvents.d.ts +10 -0
  64. package/lib/org/scratchOrgLifecycleEvents.js +41 -0
  65. package/lib/org/scratchOrgSettingsGenerator.d.ts +44 -21
  66. package/lib/org/scratchOrgSettingsGenerator.js +165 -98
  67. package/lib/org/scratchOrgTypes.d.ts +43 -0
  68. package/lib/org/scratchOrgTypes.js +9 -0
  69. package/lib/org/user.d.ts +1 -1
  70. package/lib/org/user.js +25 -34
  71. package/lib/schema/printer.d.ts +6 -0
  72. package/lib/schema/printer.js +34 -31
  73. package/lib/schema/validator.d.ts +12 -10
  74. package/lib/schema/validator.js +56 -76
  75. package/lib/{sfdxError.d.ts → sfError.d.ts} +12 -20
  76. package/lib/{sfdxError.js → sfError.js} +40 -30
  77. package/lib/{sfdxProject.d.ts → sfProject.d.ts} +75 -35
  78. package/lib/sfProject.js +651 -0
  79. package/lib/stateAggregator/accessors/aliasAccessor.d.ts +129 -0
  80. package/lib/stateAggregator/accessors/aliasAccessor.js +263 -0
  81. package/lib/stateAggregator/accessors/orgAccessor.d.ts +101 -0
  82. package/lib/stateAggregator/accessors/orgAccessor.js +240 -0
  83. package/lib/stateAggregator/accessors/sandboxAccessor.d.ts +8 -0
  84. package/lib/stateAggregator/accessors/sandboxAccessor.js +28 -0
  85. package/lib/stateAggregator/accessors/tokenAccessor.d.ts +63 -0
  86. package/lib/stateAggregator/accessors/tokenAccessor.js +80 -0
  87. package/lib/stateAggregator/index.d.ts +4 -0
  88. package/lib/stateAggregator/index.js +27 -0
  89. package/lib/stateAggregator/stateAggregator.d.ts +25 -0
  90. package/lib/stateAggregator/stateAggregator.js +46 -0
  91. package/lib/status/myDomainResolver.d.ts +1 -1
  92. package/lib/status/myDomainResolver.js +4 -4
  93. package/lib/status/pollingClient.js +4 -4
  94. package/lib/status/streamingClient.d.ts +2 -2
  95. package/lib/status/streamingClient.js +58 -63
  96. package/lib/status/types.d.ts +2 -2
  97. package/lib/testSetup.d.ts +204 -75
  98. package/lib/testSetup.js +468 -164
  99. package/lib/util/cache.d.ts +2 -2
  100. package/lib/util/cache.js +6 -6
  101. package/lib/util/checkLightningDomain.js +3 -4
  102. package/lib/util/directoryWriter.d.ts +12 -0
  103. package/lib/util/directoryWriter.js +54 -0
  104. package/lib/util/getJwtAudienceUrl.js +1 -1
  105. package/lib/util/internal.d.ts +28 -2
  106. package/lib/util/internal.js +65 -8
  107. package/lib/util/jsonXmlTools.js +2 -4
  108. package/lib/util/mapKeys.d.ts +9 -9
  109. package/lib/util/mapKeys.js +13 -9
  110. package/lib/util/sfdc.d.ts +51 -51
  111. package/lib/util/sfdc.js +74 -79
  112. package/lib/util/sfdcUrl.d.ts +5 -19
  113. package/lib/util/sfdcUrl.js +40 -49
  114. package/lib/util/structuredWriter.d.ts +9 -0
  115. package/lib/util/structuredWriter.js +3 -0
  116. package/lib/util/zipWriter.d.ts +8 -6
  117. package/lib/util/zipWriter.js +13 -13
  118. package/lib/webOAuthServer.d.ts +20 -6
  119. package/lib/webOAuthServer.js +102 -56
  120. package/messageTransformer/messageTransformer.ts +93 -0
  121. package/messages/auth.md +9 -1
  122. package/messages/config.md +42 -6
  123. package/messages/connection.md +8 -0
  124. package/messages/core.md +10 -0
  125. package/messages/envVars.md +37 -3
  126. package/messages/org.md +21 -1
  127. package/messages/scratchOrgCreate.md +2 -6
  128. package/messages/scratchOrgErrorCodes.md +17 -1
  129. package/messages/scratchOrgInfoApi.md +9 -0
  130. package/messages/scratchOrgInfoGenerator.md +9 -1
  131. package/package.json +123 -46
  132. package/CHANGELOG.md +0 -1244
  133. package/lib/config/keychainConfig.d.ts +0 -19
  134. package/lib/config/keychainConfig.js +0 -43
  135. package/lib/globalInfo/accessors/aliasAccessor.d.ts +0 -83
  136. package/lib/globalInfo/accessors/aliasAccessor.js +0 -130
  137. package/lib/globalInfo/accessors/orgAccessor.d.ts +0 -13
  138. package/lib/globalInfo/accessors/orgAccessor.js +0 -45
  139. package/lib/globalInfo/accessors/tokenAccessor.d.ts +0 -13
  140. package/lib/globalInfo/accessors/tokenAccessor.js +0 -35
  141. package/lib/globalInfo/globalInfoConfig.d.ts +0 -36
  142. package/lib/globalInfo/globalInfoConfig.js +0 -105
  143. package/lib/globalInfo/index.d.ts +0 -6
  144. package/lib/globalInfo/index.js +0 -29
  145. package/lib/globalInfo/sfdxDataHandler.d.ts +0 -43
  146. package/lib/globalInfo/sfdxDataHandler.js +0 -217
  147. package/lib/globalInfo/types.d.ts +0 -39
  148. package/lib/globalInfo/types.js +0 -10
  149. package/lib/sfdxProject.js +0 -557
  150. package/lib/util/fs.d.ts +0 -201
  151. package/lib/util/fs.js +0 -378
@@ -1,5 +1,6 @@
1
1
  import { AsyncOptionalCreatable } from '@salesforce/kit';
2
- import { SfOrg, SfOrgs } from '../globalInfo';
2
+ import { JsonMap } from '@salesforce/ts-types';
3
+ import { AuthFields } from '.';
3
4
  /**
4
5
  * Handles the removing of authorizations, which includes deleting the auth file
5
6
  * in the global .sfdx folder, deleting any configs that are associated with the username/alias,
@@ -25,7 +26,7 @@ import { SfOrg, SfOrgs } from '../globalInfo';
25
26
  */
26
27
  export declare class AuthRemover extends AsyncOptionalCreatable {
27
28
  private config;
28
- private globalInfo;
29
+ private stateAggregator;
29
30
  private logger;
30
31
  /**
31
32
  * Removes the authentication and any configs or aliases associated with it
@@ -39,19 +40,19 @@ export declare class AuthRemover extends AsyncOptionalCreatable {
39
40
  removeAllAuths(): Promise<void>;
40
41
  /**
41
42
  * Finds authorization files for username/alias in the global .sfdx folder
42
- * **Throws** *{@link SfdxError}{ name: 'TargetOrgNotSetError' }* if no target-org
43
- * **Throws** *{@link SfdxError}{ name: 'NamedOrgNotFoundError' }* if specified user is not found
43
+ * **Throws** *{@link SfError}{ name: 'TargetOrgNotSetError' }* if no target-org
44
+ * **Throws** *{@link SfError}{ name: 'NamedOrgNotFoundError' }* if specified user is not found
44
45
  *
45
46
  * @param usernameOrAlias username or alias of the auth you want to find, defaults to the configured target-org
46
47
  * @returns {Promise<SfOrg>}
47
48
  */
48
- findAuth(usernameOrAlias?: string): Promise<SfOrg>;
49
+ findAuth(usernameOrAlias?: string): Promise<AuthFields>;
49
50
  /**
50
51
  * Finds all org authorizations in the global info file (.sf/sf.json)
51
52
  *
52
- * @returns {SfOrgs}
53
+ * @returns {Record<string, AuthFields>}
53
54
  */
54
- findAllAuths(): SfOrgs;
55
+ findAllAuths(): Record<string, AuthFields & JsonMap>;
55
56
  protected init(): Promise<void>;
56
57
  /**
57
58
  * Returns the username for a given alias if the alias exists.
@@ -11,11 +11,9 @@ const kit_1 = require("@salesforce/kit");
11
11
  const configAggregator_1 = require("../config/configAggregator");
12
12
  const logger_1 = require("../logger");
13
13
  const messages_1 = require("../messages");
14
- const globalInfo_1 = require("../globalInfo");
14
+ const stateAggregator_1 = require("../stateAggregator");
15
15
  const orgConfigProperties_1 = require("./orgConfigProperties");
16
- messages_1.Messages.importMessagesDirectory(__dirname);
17
- const coreMessages = messages_1.Messages.load('@salesforce/core', 'core', ['namedOrgNotFound']);
18
- const messages = messages_1.Messages.load('@salesforce/core', 'auth', ['targetOrgNotSet']);
16
+ const messages = new messages_1.Messages('@salesforce/core', 'auth', new Map([["targetOrgNotSet", "A default user is not set."], ["targetOrgNotSet.actions", ["Run the \"sfdx auth\" commands with --setdefaultusername to connect to an org and set it as your default org.", "Run \"force:org:create\" with --setdefaultusername to create a scratch org and set it as your default org.", "Run \"sfdx config:set defaultusername=<username>\" to set your default username."]], ["portInUse", "Cannot start the OAuth redirect server on port %s."], ["portInUse.actions", ["Kill the process running on port %s or use a custom connected app and update OauthLocalPort in the sfdx-project.json file."]], ["invalidRequestMethod", "Invalid request method: %s"], ["invalidRequestUri", "Invalid request uri: %s"], ["pollingTimeout", "The device authorization request timed out. After executing force:auth:device:login, you must approve access to the device within 10 minutes. This can happen if the URL wasn\u2019t copied into the browser, login was not attempted, or the 2FA process was not completed within 10 minutes. Request authorization again."], ["serverErrorHTMLResponse", "<html><head><style>body {background-color:#F4F6F9; font-family: Arial, sans-serif; font-size: 0.8125rem; line-height: 1.5rem; color: #16325c;} #center {margin: auto; width: 370px; padding: 100px 0px 20px;} #logo-container {margin-left: auto; margin-right: auto; text-align: center;} #logo {max-width: 180px; max-height: 113px; margin-bottom: 2rem; border: 0;} #header {font-size: 1.5rem; text-align: center; margin-bottom: 1rem;} #message {background-color: #FFFFFF; margin: 0px auto; padding: 1.25rem; border-radius: 0.25rem; border: 1px solid #D8DDE6;} #footer {height: 24px; width: 370px; text-align: center; font-size: .75rem; position: absolute; bottom: 10;}</style></head><body><div id=\"center\"><div id=\"logo-container\"><img id=\"logo\" aria-hidden=\"true\" name=\"logo\" alt=\"Salesforce\" src=\"data:image/svg+xml;base64,%s\"></div><div id=\"header\">%s</div><div id=\"message\">%s<br/><br/>This is most likely <b>not</b> an error with the Salesforce CLI. Please ensure all information is accurate and try again.</div><div id=\"footer\">&copy; %s Salesforce, Inc. All rights reserved.</div></div></body></html>"], ["missingAuthCode", "No authentication code found on login response."], ["serverSuccessHTMLResponse", "<html><head><style>body {background-color:#F4F6F9; font-family: Arial, sans-serif; font-size: 0.8125rem; line-height: 1.5rem; color: #16325c;} #center {margin: auto; width: 300px; padding: 100px 0px 20px;} #logo-container {margin-left: auto; margin-right: auto; text-align: center;} #logo {max-width: 180px; max-height: 113px; margin-bottom: 2rem; border: 0;} #header {font-size: 1.5rem; text-align: center; margin-bottom: 1rem;} #message {background-color: #FFFFFF; margin: 0px auto; padding: 1.25rem; border-radius: 0.25rem; border: 1px solid #D8DDE6;} #footer {height: 24px; width: 300px; text-align: center; font-size: .75rem; position: absolute; bottom: 10;}</style></head><body><div id=\"center\"><div id=\"logo-container\"><img id=\"logo\" aria-hidden=\"true\" name=\"logo\" alt=\"Salesforce\" src=\"data:image/svg+xml;base64,%s\"></div><div id=\"header\">Authentication Successful</div><div id=\"message\">You've successfully logged in. You can now close this browser tab or window.</div><div id=\"footer\">&copy; %s Salesforce, Inc. All rights reserved.</div></div></body></html>"], ["serverSfdcImage", "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyNjIgMTg0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNjIgMTg0OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzAwQTFFMDt9Cgkuc3Qxe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+Cjx0aXRsZT5sb2dvLXNhbGVzZm9yY2U8L3RpdGxlPgo8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KPGcgaWQ9IlRlc3QtQiI+Cgk8ZyBpZD0iTW9iaWxlLU5hdi0tLVRlc3QtQi1feDI4XzBfeDI5XyI+CgkJPGcgaWQ9Ikdyb3VwIj4KCQkJPGcgaWQ9ImxvZ28tc2FsZXNmb3JjZSI+CgkJCQk8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QwIiBkPSJNMTA5LjIsMjAuOWM4LjQtOC43LDIwLjEtMTQuMiwzMy0xNC4yYzE3LjIsMCwzMi4xLDkuNiw0MC4xLDIzLjhjNi45LTMuMSwxNC42LTQuOCwyMi43LTQuOAoJCQkJCWMzMSwwLDU2LDI1LjMsNTYsNTYuNXMtMjUuMSw1Ni41LTU2LDU2LjVjLTMuOCwwLTcuNS0wLjQtMTEtMS4xYy03LDEyLjUtMjAuNCwyMS0zNS44LDIxYy02LjQsMC0xMi41LTEuNS0xNy45LTQuMQoJCQkJCWMtNy4xLDE2LjctMjMuNywyOC41LTQzLDI4LjVjLTIwLjEsMC0zNy4zLTEyLjctNDMuOS0zMC42Yy0yLjksMC42LTUuOSwwLjktOC45LDAuOWMtMjQsMC00My40LTE5LjYtNDMuNC00My45CgkJCQkJYzAtMTYuMiw4LjctMzAuNCwyMS43LTM4Yy0yLjctNi4xLTQuMi0xMi45LTQuMi0yMC4xQzE4LjUsMjMuNiw0MS4yLDEsNjksMUM4NS40LDEsMTAwLDguOCwxMDkuMiwyMC45Ii8+CgkJCQk8cGF0aCBpZD0iQ29tYmluZWQtU2hhcGUiIGNsYXNzPSJzdDEiIGQ9Ik0zOC43LDk1LjRsMS4xLTIuOWMwLjItMC41LDAuNS0wLjMsMC43LTAuMmMwLjMsMC4yLDAuNSwwLjMsMC45LDAuNmMzLjEsMiw2LDIsNi45LDIKCQkJCQljMi4zLDAsMy44LTEuMiwzLjgtMi45di0wLjFjMC0xLjgtMi4yLTIuNS00LjgtMy4zbC0wLjYtMC4yYy0zLjUtMS03LjMtMi41LTcuMy02Ljl2LTAuMWMwLTQuMiwzLjQtNy4yLDguMy03LjJsMC41LDAKCQkJCQljMi45LDAsNS42LDAuOCw3LjYsMi4xYzAuMiwwLjEsMC40LDAuMywwLjMsMC42Yy0wLjEsMC4zLTEsMi42LTEuMSwyLjljLTAuMiwwLjUtMC43LDAuMi0wLjcsMC4yYy0xLjgtMS00LjUtMS43LTYuOC0xLjcKCQkJCQljLTIuMSwwLTMuNCwxLjEtMy40LDIuNnYwLjFjMCwxLjcsMi4zLDIuNSw0LjksMy4zbDAuNSwwLjFjMy41LDEuMSw3LjIsMi42LDcuMiw2Ljl2MC4xYzAsNC42LTMuMyw3LjQtOC42LDcuNAoJCQkJCWMtMi42LDAtNS4xLTAuNC03LjgtMS44Yy0wLjUtMC4zLTEtMC41LTEuNS0wLjlDMzguNyw5NS45LDM4LjUsOTUuOCwzOC43LDk1LjR6IE0xMTYuNyw5NS40bDEuMS0yLjljMC4yLTAuNSwwLjYtMC4zLDAuNy0wLjIKCQkJCQljMC4zLDAuMiwwLjUsMC4zLDAuOSwwLjZjMy4xLDIsNiwyLDYuOSwyYzIuMywwLDMuOC0xLjIsMy44LTIuOXYtMC4xYzAtMS44LTIuMi0yLjUtNC44LTMuM2wtMC42LTAuMmMtMy41LTEtNy4zLTIuNS03LjMtNi45CgkJCQkJdi0wLjFjMC00LjIsMy40LTcuMiw4LjMtNy4ybDAuNSwwYzIuOSwwLDUuNiwwLjgsNy42LDIuMWMwLjIsMC4xLDAuNCwwLjMsMC4zLDAuNmMtMC4xLDAuMy0xLDIuNi0xLjEsMi45CgkJCQkJYy0wLjIsMC41LTAuNywwLjItMC43LDAuMmMtMS44LTEtNC41LTEuNy02LjgtMS43Yy0yLjEsMC0zLjQsMS4xLTMuNCwyLjZ2MC4xYzAsMS43LDIuMywyLjUsNC45LDMuM2wwLjUsMC4xCgkJCQkJYzMuNSwxLjEsNy4yLDIuNiw3LjIsNi45djAuMWMwLDQuNi0zLjMsNy40LTguNiw3LjRjLTIuNiwwLTUuMS0wLjQtNy44LTEuOGMtMC41LTAuMy0xLTAuNS0xLjUtMC45CgkJCQkJQzExNi44LDk1LjksMTE2LjYsOTUuOCwxMTYuNyw5NS40eiBNMTc0LjUsODEuN2MwLjQsMS41LDAuNywzLjEsMC43LDQuOHMtMC4yLDMuMy0wLjcsNC44Yy0wLjQsMS41LTEuMSwyLjgtMiwzLjkKCQkJCQljLTAuOSwxLjEtMi4xLDItMy40LDIuNmMtMS40LDAuNi0zLDAuOS00LjgsMC45Yy0xLjgsMC0zLjQtMC4zLTQuOC0wLjljLTEuNC0wLjYtMi41LTEuNS0zLjQtMi42Yy0wLjktMS4xLTEuNi0yLjQtMi0zLjkKCQkJCQljLTAuNC0xLjUtMC43LTMuMS0wLjctNC44YzAtMS43LDAuMi0zLjMsMC43LTQuOGMwLjQtMS41LDEuMS0yLjgsMi0zLjljMC45LTEuMSwyLjEtMiwzLjQtMi42YzEuNC0wLjYsMy0xLDQuOC0xCgkJCQkJYzEuOCwwLDMuNCwwLjMsNC44LDFjMS40LDAuNiwyLjUsMS41LDMuNCwyLjZDMTczLjQsNzguOSwxNzQuMSw4MC4yLDE3NC41LDgxLjd6IE0xNzAsODYuNGMwLTIuNi0wLjUtNC42LTEuNC02CgkJCQkJYy0wLjktMS40LTIuNC0yLjEtNC4zLTIuMWMtMiwwLTMuNCwwLjctNC4zLDIuMWMtMC45LDEuNC0xLjQsMy40LTEuNCw2YzAsMi42LDAuNSw0LjYsMS40LDYuMWMwLjksMS40LDIuMywyLjEsNC4zLDIuMQoJCQkJCWMyLDAsMy40LTAuNyw0LjMtMi4xQzE2OS42LDkxLjEsMTcwLDg5LDE3MCw4Ni40eiBNMjExLjEsOTMuOWwxLjEsM2MwLjEsMC40LTAuMiwwLjUtMC4yLDAuNWMtMS43LDAuNy00LDEuMS02LjMsMS4xCgkJCQkJYy0zLjksMC02LjgtMS4xLTguOC0zLjNjLTItMi4yLTMtNS4yLTMtOC45YzAtMS43LDAuMi0zLjMsMC43LTQuOGMwLjUtMS41LDEuMi0yLjgsMi4yLTMuOWMxLTEuMSwyLjItMiwzLjYtMi42CgkJCQkJYzEuNC0wLjYsMy4xLTEsNS0xYzEuMywwLDIuNCwwLjEsMy4zLDAuMmMxLDAuMiwyLjQsMC41LDMsMC44YzAuMSwwLDAuNCwwLjIsMC4zLDAuNWMtMC40LDEuMi0wLjcsMi0xLjEsMwoJCQkJCWMtMC4yLDAuNS0wLjUsMC4zLTAuNSwwLjNjLTEuNS0wLjUtMi45LTAuNy00LjctMC43Yy0yLjIsMC0zLjksMC43LTQuOSwyLjJjLTEuMSwxLjQtMS43LDMuMy0xLjcsNS45YzAsMi44LDAuNyw0LjgsMS45LDYuMQoJCQkJCWMxLjIsMS4zLDIuOSwxLjksNS4xLDEuOWMwLjksMCwxLjctMC4xLDIuNC0wLjJjMC43LTAuMSwxLjQtMC4zLDIuMS0wLjZDMjEwLjUsOTMuNiwyMTAuOSw5My41LDIxMS4xLDkzLjl6IE0yMzMuOCw4MC44CgkJCQkJYzEsMy40LDAuNSw2LjMsMC40LDYuNWMwLDAuNC0wLjQsMC40LTAuNCwwLjRsLTE1LjEsMGMwLjEsMi4zLDAuNiwzLjksMS44LDVjMS4xLDEuMSwyLjgsMS44LDUuMiwxLjhjMy42LDAsNS4xLTAuNyw2LjItMS4xCgkJCQkJYzAsMCwwLjQtMC4xLDAuNiwwLjNsMSwyLjhjMC4yLDAuNSwwLDAuNi0wLjEsMC43Yy0wLjksMC41LTMuMiwxLjUtNy42LDEuNWMtMi4xLDAtNC0wLjMtNS41LTAuOWMtMS41LTAuNi0yLjgtMS40LTMuOC0yLjUKCQkJCQljLTEtMS4xLTEuNy0yLjQtMi4yLTMuOGMtMC41LTEuNS0wLjctMy4xLTAuNy00LjhjMC0xLjcsMC4yLTMuMywwLjctNC44YzAuNC0xLjUsMS4xLTIuOCwyLTMuOWMwLjktMS4xLDIuMS0yLDMuNS0yLjYKCQkJCQljMS40LTAuNywzLjEtMSw1LTFjMS42LDAsMy4xLDAuMyw0LjMsMC45YzAuOSwwLjQsMS45LDEuMSwyLjksMi4yQzIzMi41LDc3LjksMjMzLjQsNzkuNCwyMzMuOCw4MC44eiBNMjE4LjgsODRoMTAuNwoJCQkJCWMtMC4xLTEuNC0wLjQtMi42LTEtMy42Yy0wLjktMS40LTIuMi0yLjItNC4yLTIuMmMtMiwwLTMuNCwwLjgtNC4zLDIuMkMyMTkuNCw4MS4zLDIxOS4xLDgyLjUsMjE4LjgsODR6IE0xMTMuMSw4MC44CgkJCQkJYzEsMy40LDAuNSw2LjMsMC41LDYuNWMwLDAuNC0wLjQsMC40LTAuNCwwLjRsLTE1LjEsMGMwLjEsMi4zLDAuNiwzLjksMS44LDVjMS4xLDEuMSwyLjgsMS44LDUuMiwxLjhjMy42LDAsNS4xLTAuNyw2LjItMS4xCgkJCQkJYzAsMCwwLjQtMC4xLDAuNiwwLjNsMSwyLjhjMC4yLDAuNSwwLDAuNi0wLjEsMC43Yy0wLjksMC41LTMuMiwxLjUtNy42LDEuNWMtMi4xLDAtNC0wLjMtNS41LTAuOWMtMS41LTAuNi0yLjgtMS40LTMuOC0yLjUKCQkJCQljLTEtMS4xLTEuNy0yLjQtMi4yLTMuOGMtMC41LTEuNS0wLjctMy4xLTAuNy00LjhjMC0xLjcsMC4yLTMuMywwLjctNC44YzAuNC0xLjUsMS4xLTIuOCwyLTMuOWMwLjktMS4xLDIuMS0yLDMuNS0yLjYKCQkJCQljMS40LTAuNywzLjEtMSw1LTFjMS42LDAsMy4xLDAuMyw0LjMsMC45YzAuOSwwLjQsMS45LDEuMSwyLjksMi4yQzExMS44LDc3LjksMTEyLjgsNzkuNCwxMTMuMSw4MC44eiBNOTguMSw4NGgxMC44CgkJCQkJYy0wLjEtMS40LTAuNC0yLjYtMS0zLjZjLTAuOS0xLjQtMi4yLTIuMi00LjItMi4yYy0yLDAtMy40LDAuOC00LjMsMi4yQzk4LjcsODEuMyw5OC40LDgyLjUsOTguMSw4NHogTTcxLjYsODMuMgoJCQkJCWMwLDAsMS4yLDAuMSwyLjUsMC4zdi0wLjZjMC0yLTAuNC0zLTEuMi0zLjZjLTAuOC0wLjYtMi4xLTEtMy43LTFjMCwwLTMuNywwLTYuNiwxLjVjLTAuMSwwLjEtMC4yLDAuMS0wLjIsMC4xCgkJCQkJcy0wLjQsMC4xLTAuNS0wLjJsLTEuMS0yLjljLTAuMi0wLjQsMC4xLTAuNiwwLjEtMC42YzEuNC0xLjEsNC42LTEuNyw0LjYtMS43YzEuMS0wLjIsMi45LTAuNCw0LTAuNGMzLDAsNS4zLDAuNyw2LjksMi4xCgkJCQkJYzEuNiwxLjQsMi40LDMuNiwyLjQsNi43bDAsMTMuOGMwLDAsMCwwLjQtMC4zLDAuNWMwLDAtMC42LDAuMi0xLjEsMC4zYy0wLjUsMC4xLTIuMywwLjUtMy44LDAuN2MtMS41LDAuMy0zLDAuNC00LjYsMC40CgkJCQkJYy0xLjUsMC0yLjgtMC4xLTQtMC40Yy0xLjItMC4zLTIuMi0wLjctMy4xLTEuM2MtMC44LTAuNi0xLjUtMS40LTItMi40Yy0wLjUtMC45LTAuNy0yLjEtMC43LTMuNGMwLTEuMywwLjMtMi41LDAuOC0zLjUKCQkJCQljMC41LTEsMS4zLTEuOCwyLjItMi41YzAuOS0wLjcsMi0xLjEsMy4xLTEuNWMxLjItMC4zLDIuNC0wLjUsMy43LTAuNUM3MC4yLDgzLjIsNzEsODMuMiw3MS42LDgzLjJ6IE02NS42LDkzLjgKCQkJCQljMCwwLDEuNCwxLjEsNC40LDAuOWMyLjItMC4xLDQuMS0wLjUsNC4xLTAuNXYtNi45YzAsMC0xLjktMC4zLTQuMS0wLjNjLTMuMSwwLTQuNCwxLjEtNC40LDEuMWMtMC45LDAuNi0xLjMsMS42LTEuMywyLjkKCQkJCQljMCwwLjgsMC4yLDEuNSwwLjUsMkM2NC45LDkzLjIsNjUsOTMuNCw2NS42LDkzLjh6IE0xOTMuMSw3NS41Yy0wLjEsMC40LTAuOSwyLjUtMS4xLDMuMmMtMC4xLDAuMy0wLjMsMC40LTAuNiwwLjQKCQkJCQljMCwwLTAuOS0wLjItMS43LTAuMmMtMC41LDAtMS4zLDAuMS0yLDAuM2MtMC43LDAuMi0xLjMsMC42LTEuOSwxLjFjLTAuNiwwLjUtMSwxLjMtMS4zLDIuMmMtMC4zLDAuOS0wLjUsMi40LTAuNSw0djExLjIKCQkJCQljMCwwLjMtMC4yLDAuNS0wLjUsMC41aC00Yy0wLjMsMC0wLjUtMC4yLTAuNS0wLjVWNzUuMmMwLTAuMywwLjItMC41LDAuNC0wLjVoMy45YzAuMywwLDAuNCwwLjIsMC40LDAuNVY3NwoJCQkJCWMwLjYtMC44LDEuNi0xLjUsMi41LTEuOWMwLjktMC40LDItMC43LDMuOS0wLjZjMSwwLjEsMi4zLDAuMywyLjUsMC40QzE5Myw3NSwxOTMuMiw3NS4xLDE5My4xLDc1LjV6IE0xNTYsNjUuMQoJCQkJCWMwLjEsMCwwLjQsMC4yLDAuMywwLjVsLTEuMiwzLjJjLTAuMSwwLjItMC4yLDAuNC0wLjcsMC4yYy0wLjEsMC0wLjMtMC4xLTAuOC0wLjJjLTAuMy0wLjEtMC44LTAuMS0xLjItMC4xCgkJCQkJYy0wLjYsMC0xLjEsMC4xLTEuNiwwLjJjLTAuNSwwLjEtMC45LDAuNC0xLjMsMC44Yy0wLjQsMC40LTAuOCwwLjktMS4xLDEuNmMtMC42LDEuNi0wLjgsMy4zLTAuOCwzLjRoNC44CgkJCQkJYzAuNCwwLDAuNSwwLjIsMC41LDAuNWwtMC42LDMuMWMtMC4xLDAuNS0wLjUsMC40LTAuNSwwLjRoLTVMMTQzLjYsOThjLTAuNCwyLTAuOCwzLjctMS4zLDUuMWMtMC41LDEuNC0xLjEsMi40LTIsMy40CgkJCQkJYy0wLjgsMC45LTEuNywxLjYtMi44LDEuOWMtMSwwLjQtMi4zLDAuNi0zLjcsMC42Yy0wLjcsMC0xLjQsMC0yLjItMC4yYy0wLjYtMC4xLTAuOS0wLjItMS40LTAuNGMtMC4yLTAuMS0wLjMtMC4zLTAuMi0wLjYKCQkJCQljMC4xLTAuMywxLTIuNywxLjEtMy4xYzAuMi0wLjQsMC41LTAuMiwwLjUtMC4yYzAuMywwLjEsMC41LDAuMiwwLjgsMC4zYzAuNCwwLjEsMC44LDAuMSwxLjIsMC4xYzAuNywwLDEuMy0wLjEsMS44LTAuMwoJCQkJCWMwLjYtMC4yLDEtMC42LDEuNC0xLjFjMC40LTAuNSwwLjctMS4yLDEuMS0yLjFjMC4zLTAuOSwwLjYtMi4yLDAuOS0zLjdsMy40LTE4LjloLTMuM2MtMC40LDAtMC41LTAuMi0wLjUtMC41bDAuNi0zLjEKCQkJCQljMC4xLTAuNSwwLjUtMC40LDAuNS0wLjRoMy40bDAuMi0xYzAuNS0zLDEuNS01LjMsMy02LjhjMS41LTEuNSwzLjctMi4zLDYuNC0yLjNjMC44LDAsMS41LDAuMSwyLjEsMC4yCgkJCQkJQzE1NSw2NC44LDE1NS41LDY0LjksMTU2LDY1LjF6IE04OC42LDk3LjZjMCwwLjMtMC4yLDAuNS0wLjQsMC41aC00Yy0wLjMsMC0wLjQtMC4yLTAuNC0wLjVWNjUuNWMwLTAuMiwwLjItMC41LDAuNC0wLjVoNAoJCQkJCWMwLjMsMCwwLjQsMC4yLDAuNCwwLjVWOTcuNnoiLz4KCQkJPC9nPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K"]]));
19
17
  /**
20
18
  * Handles the removing of authorizations, which includes deleting the auth file
21
19
  * in the global .sfdx folder, deleting any configs that are associated with the username/alias,
@@ -50,9 +48,8 @@ class AuthRemover extends kit_1.AsyncOptionalCreatable {
50
48
  this.logger.debug(`Removing authorization for user ${username}`);
51
49
  await this.unsetConfigValues(username);
52
50
  await this.unsetAliases(username);
53
- this.unsetTokens(username);
54
- this.globalInfo.orgs.unset(username);
55
- await this.globalInfo.write();
51
+ await this.unsetTokens(username);
52
+ await this.stateAggregator.orgs.remove(username);
56
53
  }
57
54
  /**
58
55
  * Removes all authentication files and any configs or aliases associated with them
@@ -61,37 +58,39 @@ class AuthRemover extends kit_1.AsyncOptionalCreatable {
61
58
  const auths = this.findAllAuths();
62
59
  const usernames = Object.keys(auths);
63
60
  for (const username of usernames) {
61
+ // prevent ConfigFile collision bug
62
+ // eslint-disable-next-line no-await-in-loop
64
63
  await this.removeAuth(username);
65
64
  }
66
65
  }
67
66
  /**
68
67
  * Finds authorization files for username/alias in the global .sfdx folder
69
- * **Throws** *{@link SfdxError}{ name: 'TargetOrgNotSetError' }* if no target-org
70
- * **Throws** *{@link SfdxError}{ name: 'NamedOrgNotFoundError' }* if specified user is not found
68
+ * **Throws** *{@link SfError}{ name: 'TargetOrgNotSetError' }* if no target-org
69
+ * **Throws** *{@link SfError}{ name: 'NamedOrgNotFoundError' }* if specified user is not found
71
70
  *
72
71
  * @param usernameOrAlias username or alias of the auth you want to find, defaults to the configured target-org
73
72
  * @returns {Promise<SfOrg>}
74
73
  */
75
74
  async findAuth(usernameOrAlias) {
76
- const username = usernameOrAlias ? await this.resolveUsername(usernameOrAlias) : this.getTargetOrg();
77
- const auth = this.globalInfo.orgs.get(username);
78
- if (!auth) {
79
- throw coreMessages.createError('namedOrgNotFound');
80
- }
81
- return auth;
75
+ const username = await this.resolveUsername(usernameOrAlias ?? this.getTargetOrg());
76
+ return this.stateAggregator.orgs.get(username, false, true);
82
77
  }
83
78
  /**
84
79
  * Finds all org authorizations in the global info file (.sf/sf.json)
85
80
  *
86
- * @returns {SfOrgs}
81
+ * @returns {Record<string, AuthFields>}
87
82
  */
88
83
  findAllAuths() {
89
- return this.globalInfo.orgs.getAll();
84
+ const orgs = this.stateAggregator.orgs.getAll();
85
+ return orgs.reduce((x, y) =>
86
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
87
+ ({ ...x, [y.username]: y }), {});
90
88
  }
91
89
  async init() {
92
90
  this.logger = await logger_1.Logger.child(this.constructor.name);
93
91
  this.config = await configAggregator_1.ConfigAggregator.create();
94
- this.globalInfo = await globalInfo_1.GlobalInfo.getInstance();
92
+ this.stateAggregator = await stateAggregator_1.StateAggregator.getInstance();
93
+ await this.stateAggregator.orgs.readAll();
95
94
  }
96
95
  /**
97
96
  * Returns the username for a given alias if the alias exists.
@@ -99,8 +98,9 @@ class AuthRemover extends kit_1.AsyncOptionalCreatable {
99
98
  * @param usernameOrAlias username or alias
100
99
  * @returns {Promise<string>}
101
100
  */
101
+ // eslint-disable-next-line @typescript-eslint/require-await
102
102
  async resolveUsername(usernameOrAlias) {
103
- return this.globalInfo.aliases.resolveUsername(usernameOrAlias);
103
+ return this.stateAggregator.aliases.resolveUsername(usernameOrAlias);
104
104
  }
105
105
  /**
106
106
  * @returns {string}
@@ -119,7 +119,7 @@ class AuthRemover extends kit_1.AsyncOptionalCreatable {
119
119
  * @returns {Promise<string[]>}
120
120
  */
121
121
  getAliases(username) {
122
- return this.globalInfo.aliases.getAll(username);
122
+ return this.stateAggregator.aliases.getAll(username);
123
123
  }
124
124
  /**
125
125
  * Unsets any configured values (both global and local) for provided username
@@ -128,7 +128,7 @@ class AuthRemover extends kit_1.AsyncOptionalCreatable {
128
128
  */
129
129
  async unsetConfigValues(username) {
130
130
  const aliases = this.getAliases(username);
131
- this.logger.debug(`Clearing config keys for username ${username} and aliases: ${aliases}`);
131
+ this.logger.debug(`Clearing config keys for username ${username} and aliases: ${aliases.join(',')}`);
132
132
  const configs = [this.config.getGlobalConfig(), this.config.getLocalConfig()];
133
133
  for (const config of configs) {
134
134
  if (config) {
@@ -138,7 +138,7 @@ class AuthRemover extends kit_1.AsyncOptionalCreatable {
138
138
  .filter((k) => !!k)
139
139
  .reduce((x, y) => x.concat(y), []);
140
140
  const allKeys = keysWithUsername.concat(keysWithAlias);
141
- this.logger.debug(`Found these config keys to remove: ${allKeys}`);
141
+ this.logger.debug(`Found these config keys to remove: ${allKeys.join(',')}`);
142
142
  allKeys.forEach((key) => {
143
143
  try {
144
144
  config.unset(key);
@@ -147,6 +147,8 @@ class AuthRemover extends kit_1.AsyncOptionalCreatable {
147
147
  this.logger.debug(`Failed to remove ${key}`);
148
148
  }
149
149
  });
150
+ // prevent ConfigFile collision bug
151
+ // eslint-disable-next-line no-await-in-loop
150
152
  await config.write();
151
153
  }
152
154
  }
@@ -158,20 +160,22 @@ class AuthRemover extends kit_1.AsyncOptionalCreatable {
158
160
  */
159
161
  async unsetAliases(username) {
160
162
  this.logger.debug(`Clearing aliases for username: ${username}`);
161
- const existingAliases = this.globalInfo.aliases.getAll(username);
163
+ const existingAliases = this.stateAggregator.aliases.getAll(username);
162
164
  if (existingAliases.length === 0)
163
165
  return;
164
- this.logger.debug(`Found these aliases to remove: ${existingAliases}`);
165
- existingAliases.forEach((alias) => this.globalInfo.aliases.unset(alias));
166
+ this.logger.debug(`Found these aliases to remove: ${existingAliases.join(',')}`);
167
+ existingAliases.forEach((alias) => this.stateAggregator.aliases.unset(alias));
168
+ await this.stateAggregator.aliases.write();
166
169
  }
167
- unsetTokens(username) {
170
+ async unsetTokens(username) {
168
171
  this.logger.debug(`Clearing tokens for username: ${username}`);
169
- const tokens = this.globalInfo.tokens.getAll();
172
+ const tokens = this.stateAggregator.tokens.getAll();
170
173
  for (const [key, token] of Object.entries(tokens)) {
171
174
  if (token.user === username) {
172
- this.globalInfo.tokens.unset(key);
175
+ this.stateAggregator.tokens.unset(key);
173
176
  }
174
177
  }
178
+ await this.stateAggregator.tokens.write();
175
179
  }
176
180
  }
177
181
  exports.AuthRemover = AuthRemover;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { AsyncResult, DeployOptions, DeployResultLocator } from 'jsforce/api/metadata';
3
- import { JsonCollection, JsonMap, Optional } from '@salesforce/ts-types';
3
+ import { JsonMap, Optional } from '@salesforce/ts-types';
4
4
  import { Connection as JSForceConnection, ConnectionConfig, HttpRequest, QueryOptions, QueryResult, Record, Schema } from 'jsforce';
5
5
  import { Tooling as JSForceTooling } from 'jsforce/lib/api/tooling';
6
6
  import { StreamPromise } from 'jsforce/lib/util/promise';
@@ -11,24 +11,11 @@ export declare const SFDX_HTTP_HEADERS: {
11
11
  'user-agent': string;
12
12
  };
13
13
  export declare const DNS_ERROR_NAME = "DomainNotFoundError";
14
- declare type recentValidationOptions = {
15
- id: string;
16
- rest?: boolean;
17
- };
18
- export declare type DeployOptionsWithRest = Partial<DeployOptions> & {
14
+ export type DeployOptionsWithRest = Partial<DeployOptions> & {
19
15
  rest?: boolean;
20
16
  };
21
17
  export interface Tooling<S extends Schema = Schema> extends JSForceTooling<S> {
22
18
  _logger: any;
23
- /**
24
- * Executes a query and auto-fetches (i.e., "queryMore") all results. This is especially
25
- * useful with large query result sizes, such as over 2000 records. The default maximum
26
- * fetch size is 10,000 records. Modify this via the options argument.
27
- *
28
- * @param soql The SOQL string.
29
- * @param options The query options. NOTE: the autoFetch option will always be true.
30
- */
31
- autoFetchQuery<T extends Schema = S>(soql: string, options?: QueryOptions): Promise<QueryResult<T>>;
32
19
  }
33
20
  /**
34
21
  * Handles connections and requests to Salesforce Orgs.
@@ -46,13 +33,11 @@ export interface Tooling<S extends Schema = Schema> extends JSForceTooling<S> {
46
33
  * ```
47
34
  */
48
35
  export declare class Connection<S extends Schema = Schema> extends JSForceConnection<S> {
49
- /**
50
- * Tooling api reference.
51
- */
52
- get tooling(): Tooling<S>;
53
36
  private logger;
54
37
  private options;
55
38
  private username;
39
+ private hasResolved;
40
+ private maxApiVersion;
56
41
  /**
57
42
  * Constructor
58
43
  * **Do not directly construct instances of this class -- use {@link Connection.create} instead.**
@@ -61,6 +46,10 @@ export declare class Connection<S extends Schema = Schema> extends JSForceConnec
61
46
  * @ignore
62
47
  */
63
48
  constructor(options: Connection.Options<S>);
49
+ /**
50
+ * Tooling api reference.
51
+ */
52
+ get tooling(): Tooling<S>;
64
53
  /**
65
54
  * Creates an instance of a Connection. Performs additional async initializations.
66
55
  *
@@ -72,14 +61,10 @@ export declare class Connection<S extends Schema = Schema> extends JSForceConnec
72
61
  */
73
62
  init(): Promise<void>;
74
63
  /**
75
- * TODO: This should be moved into JSForce V2 once ready
76
- * this is only a temporary solution to support both REST and SOAP APIs
77
- *
78
64
  * deploy a zipped buffer from the SDRL with REST or SOAP
79
65
  *
80
66
  * @param zipInput data to deploy
81
67
  * @param options JSForce deploy options + a boolean for rest
82
- * @param callback
83
68
  */
84
69
  deploy(zipInput: Buffer, options: DeployOptionsWithRest): Promise<DeployResultLocator<AsyncResult & Schema>>;
85
70
  /**
@@ -94,16 +79,6 @@ export declare class Connection<S extends Schema = Schema> extends JSForceConnec
94
79
  * The Force API base url for the instance.
95
80
  */
96
81
  baseUrl(): string;
97
- /**
98
- * TODO: This should be moved into JSForce V2 once ready
99
- * this is only a temporary solution to support both REST and SOAP APIs
100
- *
101
- * Will deploy a recently validated deploy request
102
- *
103
- * @param options.id = the deploy ID that's been validated already from a previous checkOnly deploy request
104
- * @param options.rest = a boolean whether or not to use the REST API
105
- */
106
- deployRecentValidation(options: recentValidationOptions): Promise<JsonCollection>;
107
82
  /**
108
83
  * Retrieves the highest api version that is supported by the target server instance.
109
84
  */
@@ -123,7 +98,7 @@ export declare class Connection<S extends Schema = Schema> extends JSForceConnec
123
98
  /**
124
99
  * Set the API version for all connection requests.
125
100
  *
126
- * **Throws** *{@link SfdxError}{ name: 'IncorrectAPIVersionError' }* Incorrect API version.
101
+ * **Throws** *{@link SfError}{ name: 'IncorrectAPIVersionError' }* Incorrect API version.
127
102
  *
128
103
  * @param version The API version.
129
104
  */
@@ -162,7 +137,9 @@ export declare class Connection<S extends Schema = Schema> extends JSForceConnec
162
137
  * @param soql The SOQL string.
163
138
  * @param queryOptions The query options. NOTE: the autoFetch option will always be true.
164
139
  */
165
- autoFetchQuery<T extends Schema = S>(soql: string, queryOptions?: Partial<QueryOptions>): Promise<QueryResult<T>>;
140
+ autoFetchQuery<T extends Schema = S>(soql: string, queryOptions?: Partial<QueryOptions & {
141
+ tooling: boolean;
142
+ }>): Promise<QueryResult<T>>;
166
143
  /**
167
144
  * Executes a query using either standard REST or Tooling API, returning a single record.
168
145
  * Will throw if either zero records are found OR multiple records are found.
@@ -176,7 +153,7 @@ export declare class Connection<S extends Schema = Schema> extends JSForceConnec
176
153
  * Useful for the raw methods (request, requestRaw) that use the accessToken directly and don't handle refreshes
177
154
  */
178
155
  refreshAuth(): Promise<void>;
179
- private loadInstanceApiVersion;
156
+ private getCachedApiVersion;
180
157
  }
181
158
  export declare const SingleRecordQueryErrors: {
182
159
  NoRecords: string;
@@ -206,4 +183,3 @@ export declare namespace Connection {
206
183
  connectionOptions?: ConnectionConfig<S>;
207
184
  }
208
185
  }
209
- export {};