microsoft-graph 2.0.0 → 2.2.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 (223) hide show
  1. package/.github/workflows/check.yml +23 -0
  2. package/.vscode/settings.json +8 -2
  3. package/LICENCE.md +96 -325
  4. package/biome.jsonc +16 -46
  5. package/dist/docs/getItem.js +11 -0
  6. package/dist/errors/EnvironmentVariableMissingError.d.ts.map +1 -1
  7. package/dist/errors/InvalidArgumentError.d.ts.map +1 -1
  8. package/dist/errors/NeverError.d.ts +4 -0
  9. package/dist/errors/NeverError.d.ts.map +1 -0
  10. package/dist/errors/NeverError.js +6 -0
  11. package/dist/errors/RequestFailedError.d.ts +1 -2
  12. package/dist/errors/RequestFailedError.d.ts.map +1 -1
  13. package/dist/errors/RequestFailedError.js +5 -13
  14. package/dist/graphApi.d.ts +6 -5
  15. package/dist/graphApi.d.ts.map +1 -1
  16. package/dist/graphApi.js +118 -75
  17. package/dist/microsoftGraph/errors/BadTemplateError.js +6 -0
  18. package/dist/microsoftGraph/errors/InvalidArgumentError.js +6 -0
  19. package/dist/microsoftGraph/errors/RequestFailedError.js +6 -0
  20. package/dist/microsoftGraph/graphApi.js +49 -0
  21. package/dist/microsoftGraph/helpers/openSite.js +12 -0
  22. package/dist/microsoftGraph/helpers/openWorkbook.js +23 -0
  23. package/dist/microsoftGraph/helpers/openWorksheet.js +7 -0
  24. package/dist/microsoftGraph/models/AccessToken.js +1 -0
  25. package/dist/microsoftGraph/models/DriveId.js +1 -0
  26. package/dist/microsoftGraph/models/DriveItemId.js +1 -0
  27. package/dist/microsoftGraph/models/DriveItemPath.js +1 -0
  28. package/dist/microsoftGraph/models/DriveItemRef.js +1 -0
  29. package/dist/microsoftGraph/models/DriveRef.js +1 -0
  30. package/dist/microsoftGraph/models/GraphOperation.js +1 -0
  31. package/dist/microsoftGraph/models/GraphOptions.js +1 -0
  32. package/dist/microsoftGraph/models/HostName.js +1 -0
  33. package/dist/microsoftGraph/models/Scope.js +1 -0
  34. package/dist/microsoftGraph/models/SiteId.js +1 -0
  35. package/dist/microsoftGraph/models/SiteName.js +1 -0
  36. package/dist/microsoftGraph/models/SiteRef.js +1 -0
  37. package/dist/microsoftGraph/models/WorkbookNamedRangeRef.js +1 -0
  38. package/dist/microsoftGraph/models/WorkbookRangeAddress.js +1 -0
  39. package/dist/microsoftGraph/models/WorkbookRangeName.js +1 -0
  40. package/dist/microsoftGraph/models/WorkbookRangeRef.js +1 -0
  41. package/dist/microsoftGraph/models/WorkbookRef.js +1 -0
  42. package/dist/microsoftGraph/models/WorkbookSessionId.js +1 -0
  43. package/dist/microsoftGraph/models/WorkbookWorksheetId.js +1 -0
  44. package/dist/microsoftGraph/models/WorkbookWorksheetRef.js +1 -0
  45. package/dist/microsoftGraph/models/regenerate-dtos.js +68 -0
  46. package/dist/microsoftGraph/operations/drive/createFolder.js +17 -0
  47. package/dist/microsoftGraph/operations/drive/listDrives.js +11 -0
  48. package/dist/microsoftGraph/operations/driveItem/copyDriveItem.js +20 -0
  49. package/dist/microsoftGraph/operations/driveItem/deleteDriveItem.js +11 -0
  50. package/dist/microsoftGraph/operations/driveItem/getDriveItem.js +11 -0
  51. package/dist/microsoftGraph/operations/driveItem/getDriveItemByPath.js +11 -0
  52. package/dist/microsoftGraph/operations/driveItem/listDriveItems.js +11 -0
  53. package/dist/microsoftGraph/operations/site/getSite.js +11 -0
  54. package/dist/microsoftGraph/operations/site/getSiteByName.js +11 -0
  55. package/dist/microsoftGraph/operations/site/listSites.js +11 -0
  56. package/dist/microsoftGraph/operations/site/searchSites.js +11 -0
  57. package/dist/microsoftGraph/operations/workbook/createWorkbook.js +14 -0
  58. package/dist/microsoftGraph/operations/workbook/deleteWorkbook.js +5 -0
  59. package/dist/microsoftGraph/operations/workbookRange/clearWorkbookRange.js +16 -0
  60. package/dist/microsoftGraph/operations/workbookRange/deleteWorkbookRange.js +16 -0
  61. package/dist/microsoftGraph/operations/workbookRange/getWorkbookNamedRange.js +13 -0
  62. package/dist/microsoftGraph/operations/workbookRange/getWorkbookRange.js +13 -0
  63. package/dist/microsoftGraph/operations/workbookRange/getWorkbookUsedRange.js +13 -0
  64. package/dist/microsoftGraph/operations/workbookRange/insertWorkbookCells.js +16 -0
  65. package/dist/microsoftGraph/operations/workbookRange/updateWorkbookNamedRange.js +14 -0
  66. package/dist/microsoftGraph/operations/workbookRange/updateWorkbookRange.js +14 -0
  67. package/dist/microsoftGraph/operations/workbookSession/closeWorkbookSession.js +17 -0
  68. package/dist/microsoftGraph/operations/workbookSession/createWorkbookSession.js +15 -0
  69. package/dist/microsoftGraph/operations/workbookSession/refreshWorkbookSession.js +18 -0
  70. package/dist/microsoftGraph/operations/workbookWorksheet/createWorkbookWorksheet.js +16 -0
  71. package/dist/microsoftGraph/operations/workbookWorksheet/deleteWorkbookWorksheet.js +13 -0
  72. package/dist/microsoftGraph/operations/workbookWorksheet/listWorkbookWorksheets.js +13 -0
  73. package/dist/microsoftGraph/operations/workbookWorksheet/updateWorkbookWorksheet.js +14 -0
  74. package/dist/microsoftGraph/services/accessToken.js +12 -0
  75. package/dist/microsoftGraph/services/configuration.js +20 -0
  76. package/dist/microsoftGraph/services/sharepointUrl.js +23 -0
  77. package/dist/microsoftGraph/services/stringCaseConversion.js +3 -0
  78. package/dist/microsoftGraph/services/templatedPaths.js +19 -0
  79. package/dist/models/AccessToken.d.ts.map +1 -1
  80. package/dist/models/ClientId.d.ts.map +1 -1
  81. package/dist/models/ClientSecret.d.ts.map +1 -1
  82. package/dist/models/Context.d.ts.map +1 -1
  83. package/dist/models/ContextId.d.ts.map +1 -1
  84. package/dist/models/ContextRef.d.ts.map +1 -1
  85. package/dist/models/DriveId.d.ts.map +1 -1
  86. package/dist/models/DriveItemId.d.ts.map +1 -1
  87. package/dist/models/DriveItemPath.d.ts.map +1 -1
  88. package/dist/models/DriveItemRef.d.ts.map +1 -1
  89. package/dist/models/DriveRef.d.ts.map +1 -1
  90. package/dist/models/GraphOperation.d.ts.map +1 -1
  91. package/dist/models/GraphOperationDefinition.d.ts.map +1 -1
  92. package/dist/models/HostName.d.ts.map +1 -1
  93. package/dist/models/HttpProxy.d.ts.map +1 -1
  94. package/dist/models/Scope.d.ts.map +1 -1
  95. package/dist/models/SiteId.d.ts.map +1 -1
  96. package/dist/models/SiteName.d.ts.map +1 -1
  97. package/dist/models/SiteRef.d.ts.map +1 -1
  98. package/dist/models/TenantId.d.ts.map +1 -1
  99. package/dist/models/WorkbookNamedRangeRef.d.ts.map +1 -1
  100. package/dist/models/WorkbookRangeAddress.d.ts.map +1 -1
  101. package/dist/models/WorkbookRangeName.d.ts.map +1 -1
  102. package/dist/models/WorkbookRangeRef.d.ts.map +1 -1
  103. package/dist/models/WorkbookRef.d.ts.map +1 -1
  104. package/dist/models/WorkbookSessionId.d.ts.map +1 -1
  105. package/dist/models/WorkbookTableId.d.ts.map +1 -1
  106. package/dist/models/WorkbookTableRef.d.ts.map +1 -1
  107. package/dist/models/WorkbookWorksheetId.d.ts.map +1 -1
  108. package/dist/models/WorkbookWorksheetName.d.ts.map +1 -1
  109. package/dist/models/WorkbookWorksheetRef.d.ts.map +1 -1
  110. package/dist/operations/drive/createFolder.d.ts.map +1 -1
  111. package/dist/operations/drive/createFolder.js +3 -3
  112. package/dist/operations/drive/createFolder.test.js +2 -2
  113. package/dist/operations/drive/listDrives.d.ts.map +1 -1
  114. package/dist/operations/drive/listDrives.js +4 -4
  115. package/dist/operations/driveItem/deleteDriveItem.js +1 -1
  116. package/dist/operations/driveItem/deleteDriveItem.test.js +2 -2
  117. package/dist/operations/driveItem/getDriveItem.js +3 -3
  118. package/dist/operations/driveItem/getDriveItem.test.js +2 -2
  119. package/dist/operations/driveItem/getDriveItemByPath.js +3 -3
  120. package/dist/operations/driveItem/getDriveItemByPath.test.js +2 -2
  121. package/dist/operations/driveItem/getDriveItemContent.d.ts.map +1 -1
  122. package/dist/operations/driveItem/getDriveItemContent.js +3 -3
  123. package/dist/operations/driveItem/getDriveItemContent.test.js +1 -3
  124. package/dist/operations/driveItem/initiateCopyDriveItem.js +1 -1
  125. package/dist/operations/driveItem/initiateCopyDriveItem.test.js +2 -2
  126. package/dist/operations/driveItem/listDriveItems.d.ts.map +1 -1
  127. package/dist/operations/driveItem/listDriveItems.js +3 -3
  128. package/dist/operations/driveItem/listDriveItems.test.js +1 -1
  129. package/dist/operations/site/getSite.js +3 -3
  130. package/dist/operations/site/getSiteByName.js +2 -2
  131. package/dist/operations/site/listSites.js +3 -3
  132. package/dist/operations/site/listSites.test.js +1 -1
  133. package/dist/operations/site/searchSites.js +3 -3
  134. package/dist/operations/user/userSendMail.js +2 -3
  135. package/dist/operations/workbook/calculateWorkbook.d.ts.map +1 -1
  136. package/dist/operations/workbook/calculateWorkbook.js +2 -2
  137. package/dist/operations/workbook/calculateWorkbook.test.js +3 -3
  138. package/dist/operations/workbook/createWorkbook.js +3 -3
  139. package/dist/operations/workbook/deleteWorkbook.d.ts.map +1 -1
  140. package/dist/operations/workbookRange/clearWorkbookRange.d.ts.map +1 -1
  141. package/dist/operations/workbookRange/clearWorkbookRange.js +2 -2
  142. package/dist/operations/workbookRange/clearWorkbookRange.test.js +21 -9
  143. package/dist/operations/workbookRange/deleteWorkbookRange.d.ts.map +1 -1
  144. package/dist/operations/workbookRange/deleteWorkbookRange.js +2 -2
  145. package/dist/operations/workbookRange/deleteWorkbookRange.test.js +21 -9
  146. package/dist/operations/workbookRange/getWorkbookNamedRange.js +3 -3
  147. package/dist/operations/workbookRange/getWorkbookUsedRange.js +3 -3
  148. package/dist/operations/workbookRange/getWorkbookUsedRange.test.js +14 -8
  149. package/dist/operations/workbookRange/getWorkbookVisibleRange.d.ts.map +1 -1
  150. package/dist/operations/workbookRange/getWorkbookVisibleRange.js +4 -3
  151. package/dist/operations/workbookRange/getWorkbookVisibleRange.test.js +21 -15
  152. package/dist/operations/workbookRange/insertWorkbookCells.d.ts.map +1 -1
  153. package/dist/operations/workbookRange/insertWorkbookCells.js +4 -4
  154. package/dist/operations/workbookRange/insertWorkbookCells.test.js +3 -3
  155. package/dist/operations/workbookRange/updateWorkbookNamedRange.js +1 -1
  156. package/dist/operations/workbookRange/updateWorkbookRange.js +3 -3
  157. package/dist/operations/workbookRange/updateWorkbookRange.test.js +13 -7
  158. package/dist/operations/workbookSession/closeWorkbookSession.js +1 -1
  159. package/dist/operations/workbookSession/createWorkbookSession.js +5 -5
  160. package/dist/operations/workbookSession/refreshWorkbookSession.js +1 -1
  161. package/dist/operations/workbookTable/createWorkbookTable.js +4 -4
  162. package/dist/operations/workbookTable/createWorkbookTable.test.js +2 -2
  163. package/dist/operations/workbookTable/getWorkbookTable.js +3 -3
  164. package/dist/operations/workbookTable/getWorkbookTable.test.js +2 -2
  165. package/dist/operations/workbookTable/getWorkbookTableBodyRange.js +3 -3
  166. package/dist/operations/workbookTable/getWorkbookTableBodyRange.test.js +4 -4
  167. package/dist/operations/workbookTable/getWorkbookTableHeaderRange.js +3 -3
  168. package/dist/operations/workbookTable/getWorkbookTableHeaderRange.test.js +3 -3
  169. package/dist/operations/workbookTable/listWorkbookTableColumns.js +2 -2
  170. package/dist/operations/workbookTable/listWorkbookTableColumns.test.js +2 -2
  171. package/dist/operations/workbookTable/listWorkbookTableRows.js +2 -2
  172. package/dist/operations/workbookTable/listWorkbookTableRows.test.js +2 -2
  173. package/dist/operations/workbookTable/listWorkbookTables.js +3 -3
  174. package/dist/operations/workbookTable/listWorkbookTables.test.js +2 -2
  175. package/dist/operations/workbookWorksheet/createWorkbookWorksheet.js +4 -4
  176. package/dist/operations/workbookWorksheet/createWorkbookWorksheet.test.js +3 -3
  177. package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.d.ts.map +1 -1
  178. package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.js +1 -1
  179. package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.test.js +3 -3
  180. package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.js +3 -3
  181. package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.test.js +7 -4
  182. package/dist/operations/workbookWorksheet/listWorkbookWorksheets.js +3 -3
  183. package/dist/operations/workbookWorksheet/listWorkbookWorksheets.test.js +5 -5
  184. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.d.ts.map +1 -1
  185. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.js +3 -3
  186. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.test.js +3 -3
  187. package/dist/services/context.d.ts.map +1 -1
  188. package/dist/services/context.js +2 -2
  189. package/dist/services/drive.d.ts.map +1 -1
  190. package/dist/services/driveItem.d.ts.map +1 -1
  191. package/dist/services/driveItem.js +2 -6
  192. package/dist/services/httpStatus.d.ts +1 -0
  193. package/dist/services/httpStatus.d.ts.map +1 -1
  194. package/dist/services/httpStatus.js +3 -0
  195. package/dist/services/random.js +2 -2
  196. package/dist/services/sharepointUrl.test.js +6 -6
  197. package/dist/services/site.js +2 -2
  198. package/dist/services/sleep.js +1 -1
  199. package/dist/services/templatedPaths.d.ts.map +1 -1
  200. package/dist/services/workbookRange.d.ts.map +1 -1
  201. package/dist/services/workbookRange.js +1 -1
  202. package/dist/services/workbookTable.d.ts.map +1 -1
  203. package/dist/services/workbookTable.js +1 -1
  204. package/dist/services/workbookWorksheet.d.ts.map +1 -1
  205. package/dist/services/workbookWorksheet.js +1 -1
  206. package/dist/tasks/createWorkbookAndStartSession.js +1 -1
  207. package/dist/tasks/getRangeLastUsedCell.d.ts.map +1 -1
  208. package/dist/tasks/getRangeLastUsedCell.js +1 -1
  209. package/dist/tasks/getRangeLastUsedCell.test.js +9 -9
  210. package/dist/tasks/getWorkbookTableVisibleBody.test.js +21 -21
  211. package/dist/tasks/getWorkbookWorksheetRefByName.js +1 -1
  212. package/dist/tasks/safeDeleteWorkbook.d.ts +4 -0
  213. package/dist/tasks/safeDeleteWorkbook.d.ts.map +1 -0
  214. package/dist/tasks/safeDeleteWorkbook.js +9 -0
  215. package/dist/tasks/setColumnHidden.js +1 -2
  216. package/dist/tasks/setColumnHidden.test.js +5 -5
  217. package/dist/tasks/setRowHidden.js +1 -2
  218. package/dist/tasks/setRowHidden.test.js +5 -5
  219. package/dist/tsconfig.tsbuildinfo +1 -0
  220. package/docs/lockedWorkbook.md +2 -0
  221. package/docs/pivotTables.md +9 -0
  222. package/docs/requestRetrying.md +3 -0
  223. package/package.json +512 -3
@@ -3,98 +3,98 @@ import calculateWorkbook from "../operations/workbook/calculateWorkbook.js";
3
3
  import createWorkbook from "../operations/workbook/createWorkbook.js";
4
4
  import updateWorkbookRange from "../operations/workbookRange/updateWorkbookRange.js";
5
5
  import createWorkbookTable from "../operations/workbookTable/createWorkbookTable.js";
6
- import createWorkbookWorksheet from "../operations/workbookWorksheet/createWorkbookWorksheet.js";
7
6
  import { getDefaultDriveRef } from "../services/drive.js";
8
7
  import { driveItemPath } from "../services/driveItem.js";
9
8
  import { generateTempFileName } from "../services/temporaryFiles.js";
10
9
  import { createWorkbookRangeRef } from "../services/workbookRange.js";
10
+ import { createWorkbookWorksheetRef, defaultWorkbookWorksheetId } from "../services/workbookWorksheet.js";
11
11
  import deleteDriveItemWithRetry from "./deleteDriveItemWithRetry.js";
12
12
  import { getWorkbookTableVisibleBody } from "./getWorkbookTableVisibleBody.js";
13
13
  describe("getWorkbookTableVisibleBody", () => {
14
- it("can retrieve the visible body range of a table", { timeout: 10000 }, async () => {
14
+ it("can retrieve the visible body range of a table", async () => {
15
15
  const workbookName = generateTempFileName("xlsx");
16
16
  const workbookPath = driveItemPath(workbookName);
17
17
  const driveRef = getDefaultDriveRef();
18
18
  const workbook = await createWorkbook(driveRef, workbookPath);
19
19
  try {
20
- const worksheet = await createWorkbookWorksheet(workbook);
21
- const rangeRef = createWorkbookRangeRef(worksheet, "A1:D4");
20
+ const worksheetRef = createWorkbookWorksheetRef(workbook, defaultWorkbookWorksheetId);
21
+ const rangeRef = createWorkbookRangeRef(worksheetRef, "A1:D4");
22
22
  const table = await createWorkbookTable(rangeRef, true);
23
23
  await updateWorkbookRange(rangeRef, {
24
24
  values: [
25
25
  ["Header1", "Header2", "Header3", "Header4"],
26
26
  ["Value1", "Value2", "Value3", "Value4"],
27
27
  ["Value5", "Value6", "Value7", "Value8"],
28
- ["Value9", "Value10", "Value11", "Value12"]
29
- ]
28
+ ["Value9", "Value10", "Value11", "Value12"],
29
+ ],
30
30
  });
31
31
  await calculateWorkbook(workbook);
32
32
  const visibleBodyRange = await getWorkbookTableVisibleBody(table);
33
33
  expect(visibleBodyRange.values).toEqual([
34
34
  ["Value1", "Value2", "Value3", "Value4"],
35
35
  ["Value5", "Value6", "Value7", "Value8"],
36
- ["Value9", "Value10", "Value11", "Value12"]
36
+ ["Value9", "Value10", "Value11", "Value12"],
37
37
  ]);
38
38
  }
39
39
  finally {
40
40
  await deleteDriveItemWithRetry(workbook);
41
41
  }
42
42
  });
43
- it("omits hidden rows from the visible body range of a table", { timeout: 10000 }, async () => {
43
+ it("omits hidden rows from the visible body range of a table", async () => {
44
44
  const workbookName = generateTempFileName("xlsx");
45
45
  const workbookPath = driveItemPath(workbookName);
46
46
  const driveRef = getDefaultDriveRef();
47
47
  const workbook = await createWorkbook(driveRef, workbookPath);
48
48
  try {
49
- const worksheet = await createWorkbookWorksheet(workbook);
50
- const rangeRef = createWorkbookRangeRef(worksheet, "A1:D4");
49
+ const worksheetRef = createWorkbookWorksheetRef(workbook, defaultWorkbookWorksheetId);
50
+ const rangeRef = createWorkbookRangeRef(worksheetRef, "A1:D4");
51
51
  const table = await createWorkbookTable(rangeRef, true);
52
52
  await updateWorkbookRange(rangeRef, {
53
53
  values: [
54
54
  ["Header1", "Header2", "Header3", "Header4"],
55
55
  ["Value1", "Value2", "Value3", "Value4"],
56
56
  ["Value5", "Value6", "Value7", "Value8"],
57
- ["Value9", "Value10", "Value11", "Value12"]
58
- ]
57
+ ["Value9", "Value10", "Value11", "Value12"],
58
+ ],
59
59
  });
60
- const hiddenRange = createWorkbookRangeRef(worksheet, "2:2");
60
+ const hiddenRange = createWorkbookRangeRef(worksheetRef, "2:2");
61
61
  await updateWorkbookRange(hiddenRange, { rowHidden: true });
62
62
  await calculateWorkbook(workbook);
63
63
  const visibleBodyRange = await getWorkbookTableVisibleBody(table);
64
64
  expect(visibleBodyRange.values).toEqual([
65
65
  ["Value5", "Value6", "Value7", "Value8"],
66
- ["Value9", "Value10", "Value11", "Value12"]
66
+ ["Value9", "Value10", "Value11", "Value12"],
67
67
  ]);
68
68
  }
69
69
  finally {
70
70
  await deleteDriveItemWithRetry(workbook);
71
71
  }
72
72
  });
73
- it("omits hidden columns from the visible body range of a table", { timeout: 10000 }, async () => {
73
+ it("omits hidden columns from the visible body range of a table", async () => {
74
74
  const workbookName = generateTempFileName("xlsx");
75
75
  const workbookPath = driveItemPath(workbookName);
76
76
  const driveRef = getDefaultDriveRef();
77
77
  const workbook = await createWorkbook(driveRef, workbookPath);
78
78
  try {
79
- const worksheet = await createWorkbookWorksheet(workbook);
80
- const rangeRef = createWorkbookRangeRef(worksheet, "A1:D4");
79
+ const worksheetRef = createWorkbookWorksheetRef(workbook, defaultWorkbookWorksheetId);
80
+ const rangeRef = createWorkbookRangeRef(worksheetRef, "A1:D4");
81
81
  const table = await createWorkbookTable(rangeRef, true);
82
82
  await updateWorkbookRange(rangeRef, {
83
83
  values: [
84
84
  ["Header1", "Header2", "Header3", "Header4"],
85
85
  ["Value1", "Value2", "Value3", "Value4"],
86
86
  ["Value5", "Value6", "Value7", "Value8"],
87
- ["Value9", "Value10", "Value11", "Value12"]
88
- ]
87
+ ["Value9", "Value10", "Value11", "Value12"],
88
+ ],
89
89
  });
90
- const hiddenRange = createWorkbookRangeRef(worksheet, "B:B");
90
+ const hiddenRange = createWorkbookRangeRef(worksheetRef, "B:B");
91
91
  await updateWorkbookRange(hiddenRange, { columnHidden: true });
92
92
  await calculateWorkbook(workbook);
93
93
  const visibleBodyRange = await getWorkbookTableVisibleBody(table);
94
94
  expect(visibleBodyRange.values).toEqual([
95
95
  ["Value1", "Value3", "Value4"],
96
96
  ["Value5", "Value7", "Value8"],
97
- ["Value9", "Value11", "Value12"]
97
+ ["Value9", "Value11", "Value12"],
98
98
  ]);
99
99
  }
100
100
  finally {
@@ -2,7 +2,7 @@ import listWorkbookWorksheets from "../operations/workbookWorksheet/listWorkbook
2
2
  export default async function getWorkbookWorksheetByName(workbookRef, name) {
3
3
  // TODO: Probably can get this from a direct API call without fetching all worksheets
4
4
  const worksheets = await listWorkbookWorksheets(workbookRef);
5
- const worksheet = worksheets.find(worksheetRef => worksheetRef.name === name);
5
+ const worksheet = worksheets.find((worksheetRef) => worksheetRef.name === name);
6
6
  if (!worksheet) {
7
7
  throw new Error(`Worksheet '${name}' not found.`); // TODO: Make NotFoundError
8
8
  }
@@ -0,0 +1,4 @@
1
+ import type { WorkbookRef } from "../models/WorkbookRef.ts";
2
+ /** Safely delete a workbook by first closing any open sessions and then delete with a back-off retry to allow for any outstanding locks to be closed. */
3
+ export default function safeDeleteWorkbook(workbookRef: WorkbookRef): Promise<void>;
4
+ //# sourceMappingURL=safeDeleteWorkbook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeDeleteWorkbook.d.ts","sourceRoot":"","sources":["../../src/tasks/safeDeleteWorkbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,yJAAyJ;AACzJ,wBAA8B,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxF"}
@@ -0,0 +1,9 @@
1
+ import closeWorkbookSession from "../operations/workbookSession/closeWorkbookSession.js";
2
+ import deleteDriveItemWithRetry from "./deleteDriveItemWithRetry.js";
3
+ /** Safely delete a workbook by first closing any open sessions and then delete with a back-off retry to allow for any outstanding locks to be closed. */
4
+ export default async function safeDeleteWorkbook(workbookRef) {
5
+ if (workbookRef.sessionId) {
6
+ await closeWorkbookSession(workbookRef);
7
+ }
8
+ await deleteDriveItemWithRetry(workbookRef);
9
+ }
@@ -1,7 +1,6 @@
1
1
  import updateWorkbookRange from "../operations/workbookRange/updateWorkbookRange.js";
2
2
  export default async function setColumnHidden(rangeRef, hidden) {
3
3
  await updateWorkbookRange(rangeRef, {
4
- columnHidden: hidden
4
+ columnHidden: hidden,
5
5
  });
6
6
  }
7
- ;
@@ -4,14 +4,14 @@ import createWorkbook from "../operations/workbook/createWorkbook.js";
4
4
  import getWorkbookVisibleRange from "../operations/workbookRange/getWorkbookVisibleRange.js";
5
5
  import updateWorkbookRange from "../operations/workbookRange/updateWorkbookRange.js";
6
6
  import { getDefaultDriveRef } from "../services/drive.js";
7
- import { driveItemPath, } from "../services/driveItem.js";
7
+ import { driveItemPath } from "../services/driveItem.js";
8
8
  import { generateTempFileName } from "../services/temporaryFiles.js";
9
9
  import { createWorkbookRangeRef } from "../services/workbookRange.js";
10
10
  import { createWorkbookWorksheetRef, defaultWorkbookWorksheetId } from "../services/workbookWorksheet.js";
11
11
  import deleteDriveItemWithRetry from "./deleteDriveItemWithRetry.js";
12
12
  import setColumnHidden from "./setColumnHidden.js";
13
13
  describe("setColumnHidden", () => {
14
- it("hides a column in an existing workbook", { timeout: 10000 }, async () => {
14
+ it("hides a column in an existing workbook", async () => {
15
15
  const workbookName = generateTempFileName("xlsx");
16
16
  const workbookPath = driveItemPath(workbookName);
17
17
  const driveRef = getDefaultDriveRef();
@@ -23,8 +23,8 @@ describe("setColumnHidden", () => {
23
23
  values: [
24
24
  [1, 2, 3],
25
25
  [4, 5, 6],
26
- [7, 8, 9]
27
- ]
26
+ [7, 8, 9],
27
+ ],
28
28
  });
29
29
  const hiddenRange = createWorkbookRangeRef(worksheetRef, "B:B");
30
30
  await setColumnHidden(hiddenRange, true);
@@ -33,7 +33,7 @@ describe("setColumnHidden", () => {
33
33
  expect(visibleView.values).toEqual([
34
34
  [1, 3],
35
35
  [4, 6],
36
- [7, 9]
36
+ [7, 9],
37
37
  ]);
38
38
  }
39
39
  finally {
@@ -1,7 +1,6 @@
1
1
  import updateWorkbookRange from "../operations/workbookRange/updateWorkbookRange.js";
2
2
  export default async function setRowHidden(rangeRef, hidden) {
3
3
  await updateWorkbookRange(rangeRef, {
4
- rowHidden: hidden
4
+ rowHidden: hidden,
5
5
  });
6
6
  }
7
- ;
@@ -4,14 +4,14 @@ import createWorkbook from "../operations/workbook/createWorkbook.js";
4
4
  import getWorkbookVisibleRange from "../operations/workbookRange/getWorkbookVisibleRange.js";
5
5
  import updateWorkbookRange from "../operations/workbookRange/updateWorkbookRange.js";
6
6
  import { getDefaultDriveRef } from "../services/drive.js";
7
- import { driveItemPath, } from "../services/driveItem.js";
7
+ import { driveItemPath } from "../services/driveItem.js";
8
8
  import { generateTempFileName } from "../services/temporaryFiles.js";
9
9
  import { createWorkbookRangeRef } from "../services/workbookRange.js";
10
10
  import { createWorkbookWorksheetRef, defaultWorkbookWorksheetId } from "../services/workbookWorksheet.js";
11
11
  import deleteDriveItemWithRetry from "./deleteDriveItemWithRetry.js";
12
12
  import setRowHidden from "./setRowHidden.js";
13
13
  describe("setRowHidden", () => {
14
- it("hides a row in an existing workbook", { timeout: 10000 }, async () => {
14
+ it("hides a row in an existing workbook", async () => {
15
15
  const workbookName = generateTempFileName("xlsx");
16
16
  const workbookPath = driveItemPath(workbookName);
17
17
  const driveRef = getDefaultDriveRef();
@@ -23,8 +23,8 @@ describe("setRowHidden", () => {
23
23
  values: [
24
24
  [1, 2, 3],
25
25
  [4, 5, 6],
26
- [7, 8, 9]
27
- ]
26
+ [7, 8, 9],
27
+ ],
28
28
  });
29
29
  const hiddenRange = createWorkbookRangeRef(worksheetRef, "2:2");
30
30
  await setRowHidden(hiddenRange, true);
@@ -32,7 +32,7 @@ describe("setRowHidden", () => {
32
32
  const visibleView = await getWorkbookVisibleRange(rangeRef);
33
33
  expect(visibleView.values).toEqual([
34
34
  [1, 2, 3],
35
- [7, 8, 9]
35
+ [7, 8, 9],
36
36
  ]);
37
37
  }
38
38
  finally {
@@ -0,0 +1 @@
1
+ {"root":["../src/index.ts"],"version":"5.7.3"}
@@ -0,0 +1,2 @@
1
+ # "The resource you are attempting to access is locked"
2
+ If you attempt to delete a workbook you may occasionally get this error. To mitigate this call [`safeDeleteWorkbook`](/src/tasks/safeDeleteWorkbook.ts) instead of `deleteDriveItem`. It will attempt to close any active session first, and then delete with a retry in case it takes some time for the lock to be removed.
@@ -0,0 +1,9 @@
1
+ # Pivot Tables
2
+
3
+ As of the time of writing, the Graph API does not support creating or modifying pivot tables. Consequently, this SDK does not include pivot table support. Additionally, most Excel manipulation libraries do not provide robust support for pivot tables. If you require pivot table functionality, your options are limited to the following:
4
+
5
+ * **Use a pre-designed template**: Create an Excel template with a pivot table, upload it to SharePoint (possibly using this SDK), and modify it using the Graph API.
6
+ * **Explore specialized Excel libraries**: Some commercial Excel libraries offer pivot table support, but they typically require a paid license.
7
+ * **Manually edit the workbook's XML**: This involves directly manipulating the XML structure of the workbook locally.
8
+
9
+ In summary: There are no straightforward solutions for working with pivot tables via the Graph API or this SDK. If possible, it is recommended to avoid relying on pivot tables.
@@ -0,0 +1,3 @@
1
+ # Request retrying
2
+
3
+ [GraphAPI has unmerciful throttling limits](https://learn.microsoft.com/en-us/graph/throttling). If the rate of requests exceed it's predefined limits it will reject requests with a HTTP 429. It appears there are general limits, and then more restrictive limits applied to workbook manipulation. To cater for these limits. This library supports retrying. If a request is throttled, and GraphAPI has provided a retry time, then the library will honour that request and retry automatically. Nothing needs to be done when consuming the library.