microsoft-graph 1.0.7 → 2.0.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 (182) hide show
  1. package/.vscode/settings.json +0 -5
  2. package/README.md +59 -37
  3. package/dist/errors/ContextNotRegisteredError.d.ts +4 -0
  4. package/dist/errors/ContextNotRegisteredError.d.ts.map +1 -0
  5. package/dist/errors/ContextNotRegisteredError.js +6 -0
  6. package/dist/errors/InconsistentContextError.d.ts +4 -0
  7. package/dist/errors/InconsistentContextError.d.ts.map +1 -0
  8. package/dist/errors/InconsistentContextError.js +6 -0
  9. package/dist/graphApi.d.ts.map +1 -1
  10. package/dist/graphApi.js +17 -5
  11. package/dist/models/ClientId.d.ts +4 -0
  12. package/dist/models/ClientId.d.ts.map +1 -0
  13. package/dist/models/ClientId.js +1 -0
  14. package/dist/models/ClientSecret.d.ts +4 -0
  15. package/dist/models/ClientSecret.d.ts.map +1 -0
  16. package/dist/models/ClientSecret.js +1 -0
  17. package/dist/models/Context.d.ts +11 -0
  18. package/dist/models/Context.d.ts.map +1 -0
  19. package/dist/models/Context.js +1 -0
  20. package/dist/models/ContextId.d.ts +4 -0
  21. package/dist/models/ContextId.d.ts.map +1 -0
  22. package/dist/models/ContextId.js +1 -0
  23. package/dist/models/ContextRef.d.ts +5 -0
  24. package/dist/models/ContextRef.d.ts.map +1 -0
  25. package/dist/models/ContextRef.js +1 -0
  26. package/dist/models/GraphOperation.d.ts +3 -0
  27. package/dist/models/GraphOperation.d.ts.map +1 -1
  28. package/dist/models/GraphOperationDefinition.d.ts.map +1 -1
  29. package/dist/models/HttpProxy.d.ts +4 -0
  30. package/dist/models/HttpProxy.d.ts.map +1 -0
  31. package/dist/models/HttpProxy.js +1 -0
  32. package/dist/models/SiteRef.d.ts +2 -1
  33. package/dist/models/SiteRef.d.ts.map +1 -1
  34. package/dist/models/TenantId.d.ts +4 -0
  35. package/dist/models/TenantId.d.ts.map +1 -0
  36. package/dist/models/TenantId.js +1 -0
  37. package/dist/operations/drive/createFolder.d.ts.map +1 -1
  38. package/dist/operations/drive/createFolder.js +3 -2
  39. package/dist/operations/drive/listDrives.d.ts.map +1 -1
  40. package/dist/operations/drive/listDrives.js +4 -3
  41. package/dist/operations/driveItem/deleteDriveItem.d.ts.map +1 -1
  42. package/dist/operations/driveItem/deleteDriveItem.js +1 -0
  43. package/dist/operations/driveItem/getDriveItem.d.ts.map +1 -1
  44. package/dist/operations/driveItem/getDriveItem.js +1 -0
  45. package/dist/operations/driveItem/getDriveItemByPath.d.ts.map +1 -1
  46. package/dist/operations/driveItem/getDriveItemByPath.js +3 -2
  47. package/dist/operations/driveItem/getDriveItemContent.d.ts.map +1 -1
  48. package/dist/operations/driveItem/getDriveItemContent.js +5 -3
  49. package/dist/operations/driveItem/getDriveItemContent.test.js +6 -6
  50. package/dist/operations/driveItem/initiateCopyDriveItem.d.ts.map +1 -1
  51. package/dist/operations/driveItem/initiateCopyDriveItem.js +1 -0
  52. package/dist/operations/driveItem/listDriveItems.d.ts.map +1 -1
  53. package/dist/operations/driveItem/listDriveItems.js +3 -2
  54. package/dist/operations/site/getSite.d.ts.map +1 -1
  55. package/dist/operations/site/getSite.js +1 -0
  56. package/dist/operations/site/getSite.test.js +1 -5
  57. package/dist/operations/site/getSiteByName.d.ts +2 -1
  58. package/dist/operations/site/getSiteByName.d.ts.map +1 -1
  59. package/dist/operations/site/getSiteByName.js +6 -4
  60. package/dist/operations/site/getSiteByName.test.js +1 -6
  61. package/dist/operations/site/listSites.d.ts +2 -1
  62. package/dist/operations/site/listSites.d.ts.map +1 -1
  63. package/dist/operations/site/listSites.js +6 -4
  64. package/dist/operations/site/listSites.test.js +3 -1
  65. package/dist/operations/site/searchSites.d.ts +2 -1
  66. package/dist/operations/site/searchSites.d.ts.map +1 -1
  67. package/dist/operations/site/searchSites.js +6 -4
  68. package/dist/operations/site/searchSites.test.js +5 -8
  69. package/dist/operations/user/userSendMail.d.ts +2 -1
  70. package/dist/operations/user/userSendMail.d.ts.map +1 -1
  71. package/dist/operations/user/userSendMail.js +2 -1
  72. package/dist/operations/workbook/calculateWorkbook.d.ts.map +1 -1
  73. package/dist/operations/workbook/calculateWorkbook.js +1 -0
  74. package/dist/operations/workbook/createWorkbook.d.ts +3 -2
  75. package/dist/operations/workbook/createWorkbook.d.ts.map +1 -1
  76. package/dist/operations/workbook/createWorkbook.js +7 -5
  77. package/dist/operations/workbookRange/clearWorkbookRange.d.ts.map +1 -1
  78. package/dist/operations/workbookRange/clearWorkbookRange.js +1 -0
  79. package/dist/operations/workbookRange/clearWorkbookRange.test.js +6 -6
  80. package/dist/operations/workbookRange/deleteWorkbookRange.d.ts.map +1 -1
  81. package/dist/operations/workbookRange/deleteWorkbookRange.js +1 -0
  82. package/dist/operations/workbookRange/deleteWorkbookRange.test.js +6 -6
  83. package/dist/operations/workbookRange/getWorkbookNamedRange.d.ts.map +1 -1
  84. package/dist/operations/workbookRange/getWorkbookNamedRange.js +1 -0
  85. package/dist/operations/workbookRange/getWorkbookUsedRange.d.ts.map +1 -1
  86. package/dist/operations/workbookRange/getWorkbookUsedRange.js +3 -2
  87. package/dist/operations/workbookRange/getWorkbookUsedRange.test.js +6 -6
  88. package/dist/operations/workbookRange/getWorkbookVisibleRange.d.ts.map +1 -1
  89. package/dist/operations/workbookRange/getWorkbookVisibleRange.js +1 -0
  90. package/dist/operations/workbookRange/getWorkbookVisibleRange.test.js +12 -12
  91. package/dist/operations/workbookRange/insertWorkbookCells.d.ts.map +1 -1
  92. package/dist/operations/workbookRange/insertWorkbookCells.js +3 -2
  93. package/dist/operations/workbookRange/insertWorkbookCells.test.js +4 -4
  94. package/dist/operations/workbookRange/updateWorkbookNamedRange.d.ts.map +1 -1
  95. package/dist/operations/workbookRange/updateWorkbookNamedRange.js +1 -0
  96. package/dist/operations/workbookRange/updateWorkbookRange.d.ts.map +1 -1
  97. package/dist/operations/workbookRange/updateWorkbookRange.js +1 -0
  98. package/dist/operations/workbookRange/updateWorkbookRange.test.js +6 -6
  99. package/dist/operations/workbookSession/closeWorkbookSession.d.ts.map +1 -1
  100. package/dist/operations/workbookSession/closeWorkbookSession.js +1 -0
  101. package/dist/operations/workbookSession/createWorkbookSession.d.ts.map +1 -1
  102. package/dist/operations/workbookSession/createWorkbookSession.js +1 -0
  103. package/dist/operations/workbookSession/refreshWorkbookSession.d.ts.map +1 -1
  104. package/dist/operations/workbookSession/refreshWorkbookSession.js +1 -0
  105. package/dist/operations/workbookTable/createWorkbookTable.d.ts.map +1 -1
  106. package/dist/operations/workbookTable/createWorkbookTable.js +3 -2
  107. package/dist/operations/workbookTable/createWorkbookTable.test.js +2 -2
  108. package/dist/operations/workbookTable/getWorkbookTable.d.ts.map +1 -1
  109. package/dist/operations/workbookTable/getWorkbookTable.js +1 -0
  110. package/dist/operations/workbookTable/getWorkbookTable.test.js +2 -2
  111. package/dist/operations/workbookTable/getWorkbookTableBodyRange.d.ts.map +1 -1
  112. package/dist/operations/workbookTable/getWorkbookTableBodyRange.js +3 -2
  113. package/dist/operations/workbookTable/getWorkbookTableBodyRange.test.js +2 -2
  114. package/dist/operations/workbookTable/getWorkbookTableHeaderRange.d.ts.map +1 -1
  115. package/dist/operations/workbookTable/getWorkbookTableHeaderRange.js +3 -2
  116. package/dist/operations/workbookTable/getWorkbookTableHeaderRange.test.js +2 -2
  117. package/dist/operations/workbookTable/listWorkbookTableColumns.d.ts.map +1 -1
  118. package/dist/operations/workbookTable/listWorkbookTableColumns.js +1 -0
  119. package/dist/operations/workbookTable/listWorkbookTableColumns.test.js +2 -2
  120. package/dist/operations/workbookTable/listWorkbookTableRows.d.ts.map +1 -1
  121. package/dist/operations/workbookTable/listWorkbookTableRows.js +1 -0
  122. package/dist/operations/workbookTable/listWorkbookTableRows.test.js +2 -2
  123. package/dist/operations/workbookTable/listWorkbookTables.d.ts.map +1 -1
  124. package/dist/operations/workbookTable/listWorkbookTables.js +3 -2
  125. package/dist/operations/workbookTable/listWorkbookTables.test.js +2 -2
  126. package/dist/operations/workbookWorksheet/createWorkbookWorksheet.d.ts.map +1 -1
  127. package/dist/operations/workbookWorksheet/createWorkbookWorksheet.js +3 -2
  128. package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.d.ts.map +1 -1
  129. package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.js +1 -0
  130. package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.d.ts.map +1 -1
  131. package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.js +1 -0
  132. package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.test.js +4 -4
  133. package/dist/operations/workbookWorksheet/listWorkbookWorksheets.d.ts.map +1 -1
  134. package/dist/operations/workbookWorksheet/listWorkbookWorksheets.js +3 -2
  135. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.d.ts.map +1 -1
  136. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.js +1 -0
  137. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.test.js +7 -3
  138. package/dist/services/accessToken.d.ts +5 -2
  139. package/dist/services/accessToken.d.ts.map +1 -1
  140. package/dist/services/accessToken.js +9 -9
  141. package/dist/services/context.d.ts +13 -0
  142. package/dist/services/context.d.ts.map +1 -0
  143. package/dist/services/context.js +41 -0
  144. package/dist/services/drive.d.ts +2 -1
  145. package/dist/services/drive.d.ts.map +1 -1
  146. package/dist/services/drive.js +16 -6
  147. package/dist/services/driveItem.d.ts +1 -1
  148. package/dist/services/driveItem.d.ts.map +1 -1
  149. package/dist/services/driveItem.js +2 -1
  150. package/dist/services/environmentVariable.d.ts +3 -0
  151. package/dist/services/environmentVariable.d.ts.map +1 -0
  152. package/dist/services/environmentVariable.js +14 -0
  153. package/dist/services/httpAgent.d.ts +3 -2
  154. package/dist/services/httpAgent.d.ts.map +1 -1
  155. package/dist/services/httpAgent.js +3 -5
  156. package/dist/services/random.d.ts +2 -0
  157. package/dist/services/random.d.ts.map +1 -0
  158. package/dist/services/random.js +9 -0
  159. package/dist/services/site.d.ts +3 -1
  160. package/dist/services/site.d.ts.map +1 -1
  161. package/dist/services/site.js +9 -5
  162. package/dist/services/temporaryFiles.d.ts.map +1 -1
  163. package/dist/services/temporaryFiles.js +3 -9
  164. package/dist/services/workbookRange.d.ts +1 -1
  165. package/dist/services/workbookRange.d.ts.map +1 -1
  166. package/dist/services/workbookRange.js +2 -1
  167. package/dist/services/workbookRangeAddress.d.ts +1 -1
  168. package/dist/services/workbookRangeAddress.d.ts.map +1 -1
  169. package/dist/services/workbookRangeAddress.js +1 -1
  170. package/dist/services/workbookTable.d.ts +1 -1
  171. package/dist/services/workbookTable.d.ts.map +1 -1
  172. package/dist/services/workbookTable.js +2 -1
  173. package/dist/services/workbookWorksheet.d.ts +1 -1
  174. package/dist/services/workbookWorksheet.d.ts.map +1 -1
  175. package/dist/services/workbookWorksheet.js +2 -1
  176. package/dist/tasks/getRangeLastUsedCell.test.js +8 -8
  177. package/dist/tasks/getWorkbookTableVisibleBody.test.js +6 -6
  178. package/dist/tasks/setColumnHidden.test.js +5 -5
  179. package/dist/tasks/setRowHidden.test.js +5 -5
  180. package/package.json +479 -431
  181. package/update-exports.ts +1 -1
  182. package/docs/envs.md +0 -11
@@ -1,9 +1,4 @@
1
1
  {
2
- "editor.codeActionsOnSave": {
3
- "source.organizeImports": "explicit",
4
- "source.addMissingImports":"explicit",
5
- "source.fixAll": "explicit",
6
- },
7
2
  "editor.formatOnSave": true,
8
3
  "[typescript]": {
9
4
  "editor.defaultFormatter": "vscode.typescript-language-features"
package/README.md CHANGED
@@ -4,44 +4,66 @@ This is an extensible library that allows access to Microsoft's GraphAPI, includ
4
4
 
5
5
  Note that this is a THIRD PARTY library and not associated with Microsoft.
6
6
 
7
+ ## Breaking changes
8
+ ### v2.0.0
9
+ * Contextual authentication. Authentication details are no longer automatically loaded from envs. You need to call `const contextRef = register(tenantId, clientId, clientSecret, httpProxy);`
10
+ * References are created with new funcs. Like `createSiteRef`.
11
+
7
12
  ## Usage
8
- 1. Make sure the environment variables `AZURE_TENANT_ID`, `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET` and [any others you require](docs/envs.md) are set.
9
- 2. Install the NPM package `npm i microsoft-graph`
10
- 3. Then make calls:
11
-
12
- ### List drives
13
- ```typescript
14
- for (const drive of await listDrives()) {
15
- console.log(drive.name);
16
- }
17
- ```
18
-
19
- ### List files
20
- ```typescript
21
- for (const item of await listDriveItems()) {
22
- console.log(item.name);
23
- }
24
- ```
25
-
26
- ### Getting a used range
27
- ```typescript
28
- const range = await getWorkbookUsedRange({
29
- siteId: args.siteId,
30
- driveId: args.driveId,
31
- itemId: args.itemId,
32
- worksheetId: args.worksheetId,
33
- });
34
- ```
35
-
36
- ### Updating a range
37
- ```typescript
38
- await updateWorkbookRange(range, {
39
- values: [
40
- [1, 2],
41
- [3, 4]
42
- ]
43
- });
44
- ```
13
+ Install the NPM package `npm i microsoft-graph`, then:
14
+
15
+ ### Prepare configuration
16
+ Something like this, but whatever works in your context.
17
+
18
+ ```typescript
19
+ const tenantId = getEnvironmentVariable("AZURE_TENANT_ID") as TenantId;
20
+ const clientId = getEnvironmentVariable("AZURE_CLIENT_ID") as ClientId;
21
+ const clientSecret = getEnvironmentVariable("AZURE_CLIENT_SECRET") as ClientSecret;
22
+ const siteId = getEnvironmentVariable("SHAREPOINT_DEFAULT_SITE_ID") as SiteId;
23
+ const driveId = getEnvironmentVariable("SHAREPOINT_DEFAULT_DRIVE_ID") as DriveId;
24
+ ```
25
+
26
+ ### Get reference to drive
27
+ ```typescript
28
+ const contextRef = register(tenantId, clientId, clientSecret);
29
+ const siteRef = createSiteRef(contextRef, siteId);
30
+ const driveRef = createDriveRef(siteRef, driveId);
31
+ ```
32
+
33
+ ### Create folder
34
+ ```typescript
35
+ const folder = await createFolder(driveRef, "folder-name");
36
+ ```
37
+
38
+ ### Create workbook
39
+ ```typescript
40
+ const workbook = await createWorkbookAndStartSession(folder, "workbook-name");
41
+ ```
42
+
43
+ ### Update range
44
+ ```typescript
45
+ const worksheet = await getWorkbookWorksheetByName(workbook, "Sheet1");
46
+ const rangeRef = createWorkbookRangeRef(worksheet, "A1:B2");
47
+ await updateWorkbookRange(rangeRef, {
48
+ values: [
49
+ [1, 2],
50
+ [3, 4]
51
+ ]
52
+ });
53
+ ```
54
+
55
+ ### List files
56
+ ```typescript
57
+ for (const item of await listDriveItems(folder)) {
58
+ console.debug(` - ${item.name}`);
59
+ }
60
+ ```
61
+
62
+ ### Cleanup
63
+ ```typescript
64
+ await closeWorkbookSession(workbook);
65
+ await deleteDriveItemWithRetry(folder); // May take a moment to unlock the file
66
+ ```
45
67
 
46
68
  From here, have a look at:
47
69
  * [`/docs`](https://github.com/ProspectSafe/microsoft-graph/tree/main/docs) for more general documentation and advice.
@@ -0,0 +1,4 @@
1
+ export default class ContextNotRegisteredError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ //# sourceMappingURL=ContextNotRegisteredError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextNotRegisteredError.d.ts","sourceRoot":"","sources":["../../src/errors/ContextNotRegisteredError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAIlC"}
@@ -0,0 +1,6 @@
1
+ export default class ContextNotRegisteredError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = "ContextNotRegisteredError";
5
+ }
6
+ }
@@ -0,0 +1,4 @@
1
+ export default class InconsistentContextError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ //# sourceMappingURL=InconsistentContextError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InconsistentContextError.d.ts","sourceRoot":"","sources":["../../src/errors/InconsistentContextError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAIlC"}
@@ -0,0 +1,6 @@
1
+ export default class InconsistentContextError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = "InconsistentContextError";
5
+ }
6
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"graphApi.d.ts","sourceRoot":"","sources":["../src/graphApi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAK/C,eAAO,MAAM,mBAAmB,EAA6C,KAAK,CAAC;AACnF,eAAO,MAAM,QAAQ,qCAAqC,CAAC;AAC3D,eAAO,MAAM,aAAa,4CAAuB,CAAC;AAiBlD,KAAK,gBAAgB,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACnE,CAAC;AAGF,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAMvF;AA0BD,6LAA6L;AAC7L,wBAAsB,QAAQ,CAAC,CAAC,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAG3G;AAED,2DAA2D;AAC3D,wBAAsB,UAAU,CAAC,CAAC,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAQ7G"}
1
+ {"version":3,"file":"graphApi.d.ts","sourceRoot":"","sources":["../src/graphApi.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAM/C,eAAO,MAAM,mBAAmB,EAA6C,KAAK,CAAC;AACnF,eAAO,MAAM,QAAQ,qCAAqC,CAAC;AAC3D,eAAO,MAAM,aAAa,4CAAuB,CAAC;AAiBlD,KAAK,gBAAgB,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACnE,CAAC;AAGF,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAMvF;AA2BD,6LAA6L;AAC7L,wBAAsB,QAAQ,CAAC,CAAC,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAG3G;AAED,2DAA2D;AAC3D,wBAAsB,UAAU,CAAC,CAAC,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAQ7G"}
package/dist/graphApi.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import fetch from 'node-fetch';
2
+ import InconsistentContextError from "./errors/InconsistentContextError.js";
2
3
  import InvalidArgumentError from "./errors/InvalidArgumentError.js";
3
4
  import RequestFailedError from "./errors/RequestFailedError.js";
4
5
  import { getCurrentAccessToken } from "./services/accessToken.js";
5
- import { getHttpAgent } from "./services/httpAgent.js";
6
+ import { getContext } from "./services/context.js";
7
+ import { tryGetHttpAgent } from "./services/httpAgent.js";
6
8
  import { operationIdToIndex, operationIndexToId } from "./services/operationId.js";
7
9
  export const authenticationScope = "https://graph.microsoft.com/.default";
8
10
  export const endpoint = "https://graph.microsoft.com/v1.0";
@@ -15,8 +17,9 @@ export function operation(definition) {
15
17
  return op;
16
18
  }
17
19
  async function single(definition) {
18
- const accessToken = await getCurrentAccessToken(authenticationScope);
19
- const agent = getHttpAgent();
20
+ const context = getContext(definition.contextId);
21
+ const accessToken = await getCurrentAccessToken(context.tenantId, context.clientId, context.clientSecret, authenticationScope);
22
+ const agent = tryGetHttpAgent(context.httpProxy);
20
23
  const requestHeaders = {
21
24
  "authorization": `Bearer ${accessToken}`,
22
25
  ...Object.fromEntries(Object.entries(definition.headers ?? {}).filter(([_, v]) => v !== undefined)), // TODO: Tidy
@@ -59,8 +62,17 @@ async function execute(...ops) {
59
62
  return responses;
60
63
  }
61
64
  async function composeRequestPayload(ops) {
62
- const accessToken = await getCurrentAccessToken(authenticationScope);
63
- const agent = await getHttpAgent();
65
+ const firstOp = ops[0];
66
+ if (!firstOp) {
67
+ throw new Error("First op not found. Should be impossible");
68
+ }
69
+ const contextId = firstOp.contextId;
70
+ if (ops.some(op => op.contextId !== contextId)) {
71
+ throw new InconsistentContextError("All operations in a batch must share the same contextId.");
72
+ }
73
+ const context = getContext(contextId);
74
+ const accessToken = await getCurrentAccessToken(context.tenantId, context.clientId, context.clientSecret, authenticationScope);
75
+ const agent = tryGetHttpAgent(context.httpProxy);
64
76
  const requestBody = {
65
77
  requests: ops.map((op, index) => ({
66
78
  id: operationIndexToId(index),
@@ -0,0 +1,4 @@
1
+ export type ClientId = string & {
2
+ __brand: "ClientId";
3
+ };
4
+ //# sourceMappingURL=ClientId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientId.d.ts","sourceRoot":"","sources":["../../src/models/ClientId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC5B,OAAO,EAAE,UAAU,CAAC;CACvB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export type ClientSecret = string & {
2
+ __brand: "ClientSecret";
3
+ };
4
+ //# sourceMappingURL=ClientSecret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientSecret.d.ts","sourceRoot":"","sources":["../../src/models/ClientSecret.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAChC,OAAO,EAAE,cAAc,CAAC;CAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { ClientId } from "./ClientId.ts";
2
+ import type { ClientSecret } from "./ClientSecret.ts";
3
+ import type { HttpProxy } from "./HttpProxy.ts";
4
+ import type { TenantId } from "./TenantId.ts";
5
+ export type Context = {
6
+ tenantId: TenantId;
7
+ clientId: ClientId;
8
+ clientSecret: ClientSecret;
9
+ httpProxy: HttpProxy | undefined;
10
+ };
11
+ //# sourceMappingURL=Context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/models/Context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;CACpC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export type ContextId = string & {
2
+ __brand: "ContextId";
3
+ };
4
+ //# sourceMappingURL=ContextId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextId.d.ts","sourceRoot":"","sources":["../../src/models/ContextId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAC7B,OAAO,EAAE,WAAW,CAAC;CACxB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { ContextId } from "./ContextId.ts";
2
+ export type ContextRef = {
3
+ contextId: ContextId;
4
+ };
5
+ //# sourceMappingURL=ContextRef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextRef.d.ts","sourceRoot":"","sources":["../../src/models/ContextRef.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG;IACrB,SAAS,EAAE,SAAS,CAAA;CACvB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,4 @@
1
+ import type { ContextId } from "./ContextId.ts";
1
2
  import type { WorkbookSessionId } from "./WorkbookSessionId.ts";
2
3
  export type GraphMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
3
4
  export type GraphPath = string & {
@@ -8,6 +9,8 @@ export type GraphHeaders = {
8
9
  "content-type"?: "application/json" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | undefined;
9
10
  };
10
11
  export type GraphOperationDefinition<T> = {
12
+ /** Context to match the operation to. Used for authentication etc. */
13
+ contextId: ContextId;
11
14
  /** HTTP method to be used. */
12
15
  method: GraphMethod;
13
16
  /** Relative resource URL for the individual request. Ie, if the absolute URL is `https://graph.microsoft.com/v1.0/users`, this path is `/users`. */
@@ -1 +1 @@
1
- {"version":3,"file":"GraphOperation.d.ts","sourceRoot":"","sources":["../../src/models/GraphOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AACtE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;CAAE,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG;IACvB,qBAAqB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,cAAc,CAAC,EAAE,kBAAkB,GAAG,mEAAmE,GAAG,SAAS,CAAC;CACzH,CAAC;AAGF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACtC,8BAA8B;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,oJAAoJ;IACpJ,IAAI,EAAE,SAAS,CAAC;IAChB,kGAAkG;IAClG,OAAO,EAAE,YAAY,CAAC;IACtB,6LAA6L;IAC7L,IAAI,EAAE,OAAO,CAAC;IACd,wDAAwD;IACxD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IACzC,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAA;CAC1C,CAAC"}
1
+ {"version":3,"file":"GraphOperation.d.ts","sourceRoot":"","sources":["../../src/models/GraphOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AACtE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;CAAE,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG;IACvB,qBAAqB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,cAAc,CAAC,EAAE,kBAAkB,GAAG,mEAAmE,GAAG,SAAS,CAAC;CACzH,CAAC;AAGF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACtC,sEAAsE;IACtE,SAAS,EAAE,SAAS,CAAC;IACrB,8BAA8B;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,oJAAoJ;IACpJ,IAAI,EAAE,SAAS,CAAC;IAChB,kGAAkG;IAClG,OAAO,EAAE,YAAY,CAAC;IACtB,6LAA6L;IAC7L,IAAI,EAAE,OAAO,CAAC;IACd,wDAAwD;IACxD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IACzC,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAA;CAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GraphOperationDefinition.d.ts","sourceRoot":"","sources":["../../src/models/GraphOperationDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AACtE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;CAAE,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG;IACvB,qBAAqB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,cAAc,CAAC,EAAE,kBAAkB,GAAG,mEAAmE,GAAG,SAAS,CAAC;CACzH,CAAC;AAIF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACtC,8BAA8B;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,oJAAoJ;IACpJ,IAAI,EAAE,SAAS,CAAC;IAChB,kGAAkG;IAClG,OAAO,EAAE,YAAY,CAAC;IACtB,6LAA6L;IAC7L,IAAI,EAAE,OAAO,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"GraphOperationDefinition.d.ts","sourceRoot":"","sources":["../../src/models/GraphOperationDefinition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AACtE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;CAAE,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG;IACvB,qBAAqB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,cAAc,CAAC,EAAE,kBAAkB,GAAG,mEAAmE,GAAG,SAAS,CAAC;CACzH,CAAC;AAIF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACtC,8BAA8B;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,oJAAoJ;IACpJ,IAAI,EAAE,SAAS,CAAC;IAChB,kGAAkG;IAClG,OAAO,EAAE,YAAY,CAAC;IACtB,6LAA6L;IAC7L,IAAI,EAAE,OAAO,CAAC;CACjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type HttpProxy = string & {
2
+ __brand: "HttpProxy";
3
+ };
4
+ //# sourceMappingURL=HttpProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpProxy.d.ts","sourceRoot":"","sources":["../../src/models/HttpProxy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAC7B,OAAO,EAAE,WAAW,CAAC;CACxB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,6 @@
1
+ import type { ContextRef } from "./ContextRef.ts";
1
2
  import type { SiteId } from "./SiteId.ts";
2
- export type SiteRef = {
3
+ export type SiteRef = ContextRef & {
3
4
  siteId: SiteId;
4
5
  };
5
6
  //# sourceMappingURL=SiteRef.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SiteRef.d.ts","sourceRoot":"","sources":["../../src/models/SiteRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,OAAO,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"SiteRef.d.ts","sourceRoot":"","sources":["../../src/models/SiteRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type TenantId = string & {
2
+ __brand: "TenantId";
3
+ };
4
+ //# sourceMappingURL=TenantId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TenantId.d.ts","sourceRoot":"","sources":["../../src/models/TenantId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC5B,OAAO,EAAE,UAAU,CAAC;CACvB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"createFolder.d.ts","sourceRoot":"","sources":["../../../src/operations/drive/createFolder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,wNAAwN;AACxN,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,SAAS,EAAE,QAAQ,GAAG,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC,CAwBrI"}
1
+ {"version":3,"file":"createFolder.d.ts","sourceRoot":"","sources":["../../../src/operations/drive/createFolder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,wNAAwN;AACxN,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,SAAS,EAAE,QAAQ,GAAG,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC,CAyBrI"}
@@ -1,10 +1,11 @@
1
1
  import { operation } from "../../graphApi.js";
2
- import { driveItemRef } from "../../services/driveItem.js";
2
+ import { createDriveItemRef } from "../../services/driveItem.js";
3
3
  import { generatePath } from "../../services/templatedPaths.js";
4
4
  /** Create folder if it doesn't exist, and return the folder. Use a `DriveRef` to create in root or `DriveItemRef` to create in a subfolder. @see https://learn.microsoft.com/en-us/graph/api/driveitem-post-children */
5
5
  export default function createFolder(parentRef, folderName) {
6
6
  const pathSegment = parentRef.itemId ? "items/{item-id}" : "root";
7
7
  return operation({
8
+ contextId: parentRef.contextId,
8
9
  method: "POST",
9
10
  path: generatePath(`/sites/{site-id}/drives/{drive-id}/${pathSegment}/children`, parentRef),
10
11
  headers: {
@@ -17,7 +18,7 @@ export default function createFolder(parentRef, folderName) {
17
18
  },
18
19
  responseTransform: response => {
19
20
  const item = response;
20
- const itemRef = driveItemRef(parentRef, item.id);
21
+ const itemRef = createDriveItemRef(parentRef, item.id);
21
22
  return {
22
23
  ...item,
23
24
  ...itemRef
@@ -1 +1 @@
1
- {"version":3,"file":"listDrives.d.ts","sourceRoot":"","sources":["../../../src/operations/drive/listDrives.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAKvD,6HAA6H;AAC7H,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAO,GAAE,OAA6B,GAAG,cAAc,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,CAiBnH"}
1
+ {"version":3,"file":"listDrives.d.ts","sourceRoot":"","sources":["../../../src/operations/drive/listDrives.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAKvD,6HAA6H;AAC7H,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAO,GAAE,OAA6B,GAAG,cAAc,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,CAkBnH"}
@@ -1,10 +1,11 @@
1
1
  import { operation } from "../../graphApi.js";
2
- import { driveRef } from "../../services/drive.js";
3
- import { generatePath } from "../../services/templatedPaths.js";
2
+ import { createDriveRef } from "../../services/drive.js";
4
3
  import { getDefaultSiteRef } from "../../services/site.js";
4
+ import { generatePath } from "../../services/templatedPaths.js";
5
5
  /** Retrieve the list of Drive resources available for a Site. @see https://learn.microsoft.com/en-us/graph/api/drive-list */
6
6
  export default function listDrives(siteRef = getDefaultSiteRef()) {
7
7
  return operation({
8
+ contextId: siteRef.contextId,
8
9
  method: "GET",
9
10
  path: generatePath("/sites/{site-id}/drives", siteRef),
10
11
  headers: {},
@@ -12,7 +13,7 @@ export default function listDrives(siteRef = getDefaultSiteRef()) {
12
13
  responseTransform: response => {
13
14
  const list = response;
14
15
  return list.value.map(drive => {
15
- const ref = driveRef(siteRef, drive.id);
16
+ const ref = createDriveRef(siteRef, drive.id);
16
17
  return {
17
18
  ...drive,
18
19
  ...ref
@@ -1 +1 @@
1
- {"version":3,"file":"deleteDriveItem.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/deleteDriveItem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,wFAAwF;AACxF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAQnF"}
1
+ {"version":3,"file":"deleteDriveItem.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/deleteDriveItem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,wFAAwF;AACxF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CASnF"}
@@ -3,6 +3,7 @@ import { generatePath } from "../../services/templatedPaths.js";
3
3
  /** Delete an item. @see https://learn.microsoft.com/en-us/graph/api/driveitem-delete */
4
4
  export default function deleteDriveItem(itemRef) {
5
5
  return operation({
6
+ contextId: itemRef.contextId,
6
7
  method: "DELETE",
7
8
  path: generatePath("/sites/{site-id}/drives/{drive-id}/items/{item-id}", itemRef),
8
9
  headers: {},
@@ -1 +1 @@
1
- {"version":3,"file":"getDriveItem.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/getDriveItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,mHAAmH;AACnH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC,CAepG"}
1
+ {"version":3,"file":"getDriveItem.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/getDriveItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,mHAAmH;AACnH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC,CAgBpG"}
@@ -3,6 +3,7 @@ import { generatePath } from "../../services/templatedPaths.js";
3
3
  /** Retrieve the metadata for an item in a drive. @see https://learn.microsoft.com/en-us/graph/api/driveitem-get */
4
4
  export default function getDriveItem(itemRef) {
5
5
  return operation({
6
+ contextId: itemRef.contextId,
6
7
  method: "GET",
7
8
  path: generatePath("/sites/{site-id}/drives/{drive-id}/items/{item-id}", itemRef),
8
9
  headers: {},
@@ -1 +1 @@
1
- {"version":3,"file":"getDriveItemByPath.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/getDriveItemByPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,qLAAqL;AACrL,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,GAAG,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC,CAgBhI"}
1
+ {"version":3,"file":"getDriveItemByPath.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/getDriveItemByPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,qLAAqL;AACrL,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,GAAG,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC,CAiBhI"}
@@ -1,16 +1,17 @@
1
1
  import { operation } from "../../graphApi.js";
2
- import { driveItemRef } from "../../services/driveItem.js";
2
+ import { createDriveItemRef } from "../../services/driveItem.js";
3
3
  import { generatePath } from "../../services/templatedPaths.js";
4
4
  /** Retrieve the metadata for an item in a drive by file path. If the target file is moved this will cease working. @see https://learn.microsoft.com/en-us/graph/api/driveitem-get */
5
5
  export default function getDriveItemByPath(driveRef, itemPath) {
6
6
  return operation({
7
+ contextId: driveRef.contextId,
7
8
  method: "GET",
8
9
  path: generatePath(`/sites/{site-id}/drives/{drive-id}/root:${itemPath}`, driveRef),
9
10
  headers: {},
10
11
  body: null,
11
12
  responseTransform: response => {
12
13
  const item = response;
13
- const itemRef = driveItemRef(driveRef, item.id);
14
+ const itemRef = createDriveItemRef(driveRef, item.id);
14
15
  return {
15
16
  ...item,
16
17
  ...itemRef
@@ -1 +1 @@
1
- {"version":3,"file":"getDriveItemContent.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/getDriveItemContent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAKjE,kGAAkG;AAClG,wBAA8B,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAkB7F"}
1
+ {"version":3,"file":"getDriveItemContent.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/getDriveItemContent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAMjE,kGAAkG;AAClG,wBAA8B,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAmB7F"}
@@ -1,14 +1,16 @@
1
1
  import fetch from 'node-fetch';
2
2
  import { authenticationScope, endpoint } from "../../graphApi.js";
3
3
  import { getCurrentAccessToken } from "../../services/accessToken.js";
4
- import { getHttpAgent } from "../../services/httpAgent.js";
4
+ import { getContext } from "../../services/context.js";
5
+ import { tryGetHttpAgent } from "../../services/httpAgent.js";
5
6
  import { generatePath } from "../../services/templatedPaths.js";
6
7
  /** Download drive item. @see https://learn.microsoft.com/en-us/graph/api/driveitem-get-content */
7
8
  export default async function getDriveItemContent(itemRef) {
8
9
  // Note this method doesn't match the standard pattern since the batching library doesn't support non-JSON return types, and there appears to be no value in adding support.
9
10
  const url = `${endpoint}${generatePath("/sites/{site-id}/drives/{drive-id}/items/{item-id}/content", itemRef)}`;
10
- const accessToken = await getCurrentAccessToken(authenticationScope);
11
- const agent = getHttpAgent();
11
+ const context = getContext(itemRef.contextId);
12
+ const accessToken = await getCurrentAccessToken(context.tenantId, context.clientId, context.clientSecret, authenticationScope);
13
+ const agent = tryGetHttpAgent(context.httpProxy);
12
14
  const response = await fetch(url, {
13
15
  headers: {
14
16
  "authorization": `Bearer ${accessToken}`
@@ -1,9 +1,9 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { getDefaultDriveRef } from "../../services/drive.js";
3
- import { driveItemPath, driveItemRef } from "../../services/driveItem.js";
3
+ import { createDriveItemRef, driveItemPath } from "../../services/driveItem.js";
4
4
  import { generateTempFileName } from "../../services/temporaryFiles.js";
5
- import { workbookRangeRef } from "../../services/workbookRange.js";
6
- import { defaultWorkbookWorksheetId, workbookWorksheetRef } from "../../services/workbookWorksheet.js";
5
+ import { createWorkbookRangeRef } from "../../services/workbookRange.js";
6
+ import { createWorkbookWorksheetRef, defaultWorkbookWorksheetId } from "../../services/workbookWorksheet.js";
7
7
  import deleteDriveItemWithRetry from "../../tasks/deleteDriveItemWithRetry.js";
8
8
  import calculateWorkbook from "../workbook/calculateWorkbook.js";
9
9
  import createWorkbook from "../workbook/createWorkbook.js";
@@ -14,8 +14,8 @@ describe("getDriveItemContent", () => {
14
14
  const workbookPath = driveItemPath(generateTempFileName("xlsx"));
15
15
  const workbook = await createWorkbook(getDefaultDriveRef(), workbookPath);
16
16
  try {
17
- const worksheetRef = workbookWorksheetRef(workbook, defaultWorkbookWorksheetId);
18
- const rangeRef = workbookRangeRef(worksheetRef, "A1:B1");
17
+ const worksheetRef = createWorkbookWorksheetRef(workbook, defaultWorkbookWorksheetId);
18
+ const rangeRef = createWorkbookRangeRef(worksheetRef, "A1:B1");
19
19
  await updateWorkbookRange(rangeRef, {
20
20
  values: [
21
21
  ["Hello", "World"]
@@ -31,7 +31,7 @@ describe("getDriveItemContent", () => {
31
31
  }
32
32
  });
33
33
  it("throws an error when trying to download a non-existent item", async () => {
34
- const nonExistentItemRef = driveItemRef(getDefaultDriveRef(), "non-existent-item-id");
34
+ const nonExistentItemRef = createDriveItemRef(getDefaultDriveRef(), "non-existent-item-id");
35
35
  await expect(getDriveItemContent(nonExistentItemRef)).rejects.toThrow();
36
36
  });
37
37
  });
@@ -1 +1 @@
1
- {"version":3,"file":"initiateCopyDriveItem.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/initiateCopyDriveItem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,gMAAgM;AAChM,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAiB7I"}
1
+ {"version":3,"file":"initiateCopyDriveItem.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/initiateCopyDriveItem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,gMAAgM;AAChM,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAkB7I"}
@@ -3,6 +3,7 @@ import { generatePath } from "../../services/templatedPaths.js";
3
3
  /** Initiate an asynchronous copy of an item. NOTE: The copied file may not be immediately available and polling is required. @see https://learn.microsoft.com/en-us/graph/api/driveitem-copy */
4
4
  export default function initiateCopyDriveItem(srcFileRef, dstFolderRef, dstFileName) {
5
5
  return operation({
6
+ contextId: srcFileRef.contextId,
6
7
  method: "POST",
7
8
  path: generatePath("/sites/{site-id}/drives/{drive-id}/items/{item-id}/copy", srcFileRef),
8
9
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"listDriveItems.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/listDriveItems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKrE,MAAM,MAAM,qBAAqB,GAAG;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,sNAAsN;AACtN,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,SAAS,GAAE,QAAQ,GAAG,YAAmC,GAAG,cAAc,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC,CAuB9I"}
1
+ {"version":3,"file":"listDriveItems.d.ts","sourceRoot":"","sources":["../../../src/operations/driveItem/listDriveItems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKrE,MAAM,MAAM,qBAAqB,GAAG;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,sNAAsN;AACtN,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,SAAS,GAAE,QAAQ,GAAG,YAAmC,GAAG,cAAc,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC,CAwB9I"}
@@ -1,11 +1,12 @@
1
1
  import { operation } from "../../graphApi.js";
2
2
  import { getDefaultDriveRef } from "../../services/drive.js";
3
- import { driveItemRef } from "../../services/driveItem.js";
3
+ import { createDriveItemRef } from "../../services/driveItem.js";
4
4
  import { generatePath } from "../../services/templatedPaths.js";
5
5
  /** Retrieve the metadata for items in a drive by file path. Use a `DriveRef` to reference a drive root or `DriveItemRef` for a subfolder. @see https://learn.microsoft.com/en-us/graph/api/driveitem-list-children */
6
6
  export default function listDriveItems(parentRef = getDefaultDriveRef()) {
7
7
  const pathSegment = parentRef.itemId ? "items/{item-id}" : "root";
8
8
  return operation({
9
+ contextId: parentRef.contextId,
9
10
  method: "GET",
10
11
  path: generatePath(`/sites/{site-id}/drives/{drive-id}/${pathSegment}/children`, parentRef),
11
12
  headers: {},
@@ -13,7 +14,7 @@ export default function listDriveItems(parentRef = getDefaultDriveRef()) {
13
14
  responseTransform: response => {
14
15
  const list = response;
15
16
  const items = list.value.map(item => {
16
- const itemRef = driveItemRef(parentRef, item.id);
17
+ const itemRef = createDriveItemRef(parentRef, item.id);
17
18
  return {
18
19
  ...item,
19
20
  ...itemRef,
@@ -1 +1 @@
1
- {"version":3,"file":"getSite.d.ts","sourceRoot":"","sources":["../../../src/operations/site/getSite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,yGAAyG;AACzG,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,CAchF"}
1
+ {"version":3,"file":"getSite.d.ts","sourceRoot":"","sources":["../../../src/operations/site/getSite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,yGAAyG;AACzG,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,CAehF"}
@@ -3,6 +3,7 @@ import { generatePath } from "../../services/templatedPaths.js";
3
3
  /** Retrieve properties for a site resource. @see https://learn.microsoft.com/en-us/graph/api/site-get */
4
4
  export default function getSite(siteRef) {
5
5
  return operation({
6
+ contextId: siteRef.contextId,
6
7
  method: "GET",
7
8
  path: generatePath("/sites/{site-id}", siteRef),
8
9
  headers: {},
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { getDefaultSiteRef, siteRef } from "../../services/site.js";
2
+ import { getDefaultSiteRef } from "../../services/site.js";
3
3
  import getSite from "./getSite.js";
4
4
  describe("getSite", () => {
5
5
  it("can retrieve an existing site", async () => {
@@ -8,8 +8,4 @@ describe("getSite", () => {
8
8
  expect(site.id).toBeDefined();
9
9
  expect(site.name).toBeDefined();
10
10
  });
11
- it("throws an error when trying to retrieve a non-existent site", async () => {
12
- const nonExistentSiteRef = siteRef("non-existent-site-id");
13
- await expect(getSite(nonExistentSiteRef)).rejects.toThrow();
14
- });
15
11
  });