microsoft-graph 2.1.0 → 2.2.1

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 (180) hide show
  1. package/.github/workflows/check.yml +23 -0
  2. package/.vscode/settings.json +7 -2
  3. package/biome.jsonc +16 -46
  4. package/dist/errors/EnvironmentVariableMissingError.d.ts.map +1 -1
  5. package/dist/errors/InvalidArgumentError.d.ts.map +1 -1
  6. package/dist/errors/NeverError.d.ts +4 -0
  7. package/dist/errors/NeverError.d.ts.map +1 -0
  8. package/dist/errors/NeverError.js +6 -0
  9. package/dist/errors/NotFoundError.d.ts +4 -0
  10. package/dist/errors/NotFoundError.d.ts.map +1 -0
  11. package/dist/errors/NotFoundError.js +6 -0
  12. package/dist/errors/RequestFailedError.d.ts +1 -2
  13. package/dist/errors/RequestFailedError.d.ts.map +1 -1
  14. package/dist/errors/RequestFailedError.js +5 -13
  15. package/dist/graphApi.d.ts +6 -5
  16. package/dist/graphApi.d.ts.map +1 -1
  17. package/dist/graphApi.js +118 -75
  18. package/dist/models/AccessToken.d.ts.map +1 -1
  19. package/dist/models/ClientId.d.ts.map +1 -1
  20. package/dist/models/ClientSecret.d.ts.map +1 -1
  21. package/dist/models/Context.d.ts.map +1 -1
  22. package/dist/models/ContextId.d.ts.map +1 -1
  23. package/dist/models/ContextRef.d.ts.map +1 -1
  24. package/dist/models/DriveId.d.ts.map +1 -1
  25. package/dist/models/DriveItemId.d.ts.map +1 -1
  26. package/dist/models/DriveItemPath.d.ts.map +1 -1
  27. package/dist/models/DriveItemRef.d.ts.map +1 -1
  28. package/dist/models/DriveRef.d.ts.map +1 -1
  29. package/dist/models/GraphOperation.d.ts.map +1 -1
  30. package/dist/models/GraphOperationDefinition.d.ts.map +1 -1
  31. package/dist/models/HostName.d.ts.map +1 -1
  32. package/dist/models/HttpProxy.d.ts.map +1 -1
  33. package/dist/models/Scope.d.ts.map +1 -1
  34. package/dist/models/SiteId.d.ts.map +1 -1
  35. package/dist/models/SiteName.d.ts.map +1 -1
  36. package/dist/models/SiteRef.d.ts.map +1 -1
  37. package/dist/models/TenantId.d.ts.map +1 -1
  38. package/dist/models/WorkbookNamedRangeRef.d.ts.map +1 -1
  39. package/dist/models/WorkbookRangeAddress.d.ts.map +1 -1
  40. package/dist/models/WorkbookRangeName.d.ts.map +1 -1
  41. package/dist/models/WorkbookRangeRef.d.ts.map +1 -1
  42. package/dist/models/WorkbookRef.d.ts.map +1 -1
  43. package/dist/models/WorkbookSessionId.d.ts.map +1 -1
  44. package/dist/models/WorkbookTableId.d.ts.map +1 -1
  45. package/dist/models/WorkbookTableRef.d.ts.map +1 -1
  46. package/dist/models/WorkbookWorksheetId.d.ts.map +1 -1
  47. package/dist/models/WorkbookWorksheetName.d.ts.map +1 -1
  48. package/dist/models/WorkbookWorksheetRef.d.ts.map +1 -1
  49. package/dist/operations/drive/createFolder.d.ts.map +1 -1
  50. package/dist/operations/drive/createFolder.js +3 -3
  51. package/dist/operations/drive/createFolder.test.js +2 -2
  52. package/dist/operations/drive/listDrives.d.ts.map +1 -1
  53. package/dist/operations/drive/listDrives.js +4 -4
  54. package/dist/operations/driveItem/deleteDriveItem.js +1 -1
  55. package/dist/operations/driveItem/deleteDriveItem.test.js +2 -2
  56. package/dist/operations/driveItem/getDriveItem.js +3 -3
  57. package/dist/operations/driveItem/getDriveItem.test.js +2 -2
  58. package/dist/operations/driveItem/getDriveItemByPath.js +3 -3
  59. package/dist/operations/driveItem/getDriveItemByPath.test.js +2 -2
  60. package/dist/operations/driveItem/getDriveItemContent.d.ts.map +1 -1
  61. package/dist/operations/driveItem/getDriveItemContent.js +3 -3
  62. package/dist/operations/driveItem/getDriveItemContent.test.js +1 -3
  63. package/dist/operations/driveItem/initiateCopyDriveItem.js +1 -1
  64. package/dist/operations/driveItem/initiateCopyDriveItem.test.js +2 -2
  65. package/dist/operations/driveItem/listDriveItems.d.ts.map +1 -1
  66. package/dist/operations/driveItem/listDriveItems.js +3 -3
  67. package/dist/operations/driveItem/listDriveItems.test.js +1 -1
  68. package/dist/operations/site/getSite.js +3 -3
  69. package/dist/operations/site/getSiteByName.js +2 -2
  70. package/dist/operations/site/listSites.js +3 -3
  71. package/dist/operations/site/listSites.test.js +1 -1
  72. package/dist/operations/site/searchSites.js +3 -3
  73. package/dist/operations/user/userSendMail.js +2 -3
  74. package/dist/operations/workbook/calculateWorkbook.d.ts.map +1 -1
  75. package/dist/operations/workbook/calculateWorkbook.js +2 -2
  76. package/dist/operations/workbook/calculateWorkbook.test.js +3 -3
  77. package/dist/operations/workbook/createWorkbook.js +3 -3
  78. package/dist/operations/workbook/deleteWorkbook.d.ts.map +1 -1
  79. package/dist/operations/workbookRange/clearWorkbookRange.d.ts.map +1 -1
  80. package/dist/operations/workbookRange/clearWorkbookRange.js +2 -2
  81. package/dist/operations/workbookRange/clearWorkbookRange.test.js +21 -9
  82. package/dist/operations/workbookRange/deleteWorkbookRange.d.ts.map +1 -1
  83. package/dist/operations/workbookRange/deleteWorkbookRange.js +2 -2
  84. package/dist/operations/workbookRange/deleteWorkbookRange.test.js +21 -9
  85. package/dist/operations/workbookRange/getWorkbookNamedRange.js +3 -3
  86. package/dist/operations/workbookRange/getWorkbookUsedRange.js +3 -3
  87. package/dist/operations/workbookRange/getWorkbookUsedRange.test.js +14 -8
  88. package/dist/operations/workbookRange/getWorkbookVisibleRange.d.ts.map +1 -1
  89. package/dist/operations/workbookRange/getWorkbookVisibleRange.js +4 -3
  90. package/dist/operations/workbookRange/getWorkbookVisibleRange.test.js +21 -15
  91. package/dist/operations/workbookRange/insertWorkbookCells.d.ts.map +1 -1
  92. package/dist/operations/workbookRange/insertWorkbookCells.js +4 -4
  93. package/dist/operations/workbookRange/insertWorkbookCells.test.js +3 -3
  94. package/dist/operations/workbookRange/updateWorkbookNamedRange.js +1 -1
  95. package/dist/operations/workbookRange/updateWorkbookRange.js +3 -3
  96. package/dist/operations/workbookRange/updateWorkbookRange.test.js +13 -7
  97. package/dist/operations/workbookSession/closeWorkbookSession.js +1 -1
  98. package/dist/operations/workbookSession/createWorkbookSession.js +5 -5
  99. package/dist/operations/workbookSession/refreshWorkbookSession.js +1 -1
  100. package/dist/operations/workbookTable/createWorkbookTable.js +4 -4
  101. package/dist/operations/workbookTable/createWorkbookTable.test.js +2 -2
  102. package/dist/operations/workbookTable/getWorkbookTable.js +3 -3
  103. package/dist/operations/workbookTable/getWorkbookTable.test.js +2 -2
  104. package/dist/operations/workbookTable/getWorkbookTableBodyRange.js +3 -3
  105. package/dist/operations/workbookTable/getWorkbookTableBodyRange.test.js +4 -4
  106. package/dist/operations/workbookTable/getWorkbookTableHeaderRange.js +3 -3
  107. package/dist/operations/workbookTable/getWorkbookTableHeaderRange.test.js +3 -3
  108. package/dist/operations/workbookTable/listWorkbookTableColumns.js +2 -2
  109. package/dist/operations/workbookTable/listWorkbookTableColumns.test.js +2 -2
  110. package/dist/operations/workbookTable/listWorkbookTableRows.js +2 -2
  111. package/dist/operations/workbookTable/listWorkbookTableRows.test.js +2 -2
  112. package/dist/operations/workbookTable/listWorkbookTables.js +3 -3
  113. package/dist/operations/workbookTable/listWorkbookTables.test.js +2 -2
  114. package/dist/operations/workbookWorksheet/createWorkbookWorksheet.js +4 -4
  115. package/dist/operations/workbookWorksheet/createWorkbookWorksheet.test.js +3 -3
  116. package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.d.ts.map +1 -1
  117. package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.js +1 -1
  118. package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.test.js +3 -3
  119. package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.js +3 -3
  120. package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.test.js +7 -4
  121. package/dist/operations/workbookWorksheet/listWorkbookWorksheets.js +3 -3
  122. package/dist/operations/workbookWorksheet/listWorkbookWorksheets.test.js +5 -5
  123. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.d.ts.map +1 -1
  124. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.js +3 -3
  125. package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.test.js +4 -4
  126. package/dist/services/context.d.ts.map +1 -1
  127. package/dist/services/context.js +2 -2
  128. package/dist/services/drive.d.ts.map +1 -1
  129. package/dist/services/driveItem.d.ts.map +1 -1
  130. package/dist/services/driveItem.js +2 -6
  131. package/dist/services/httpStatus.d.ts +1 -0
  132. package/dist/services/httpStatus.d.ts.map +1 -1
  133. package/dist/services/httpStatus.js +3 -0
  134. package/dist/services/random.js +2 -2
  135. package/dist/services/sharepointUrl.test.js +6 -6
  136. package/dist/services/site.js +2 -2
  137. package/dist/services/sleep.js +1 -1
  138. package/dist/services/templatedPaths.d.ts.map +1 -1
  139. package/dist/services/workbookRange.d.ts.map +1 -1
  140. package/dist/services/workbookRange.js +1 -1
  141. package/dist/services/workbookTable.d.ts.map +1 -1
  142. package/dist/services/workbookTable.js +1 -1
  143. package/dist/services/workbookWorksheet.d.ts.map +1 -1
  144. package/dist/services/workbookWorksheet.js +1 -1
  145. package/dist/tasks/createWorkbookAndStartSession.d.ts +1 -0
  146. package/dist/tasks/createWorkbookAndStartSession.d.ts.map +1 -1
  147. package/dist/tasks/createWorkbookAndStartSession.js +2 -1
  148. package/dist/tasks/deleteDriveItemWithRetry.d.ts +1 -0
  149. package/dist/tasks/deleteDriveItemWithRetry.d.ts.map +1 -1
  150. package/dist/tasks/deleteDriveItemWithRetry.js +1 -0
  151. package/dist/tasks/downloadDriveItemContent.d.ts +1 -0
  152. package/dist/tasks/downloadDriveItemContent.d.ts.map +1 -1
  153. package/dist/tasks/downloadDriveItemContent.js +1 -0
  154. package/dist/tasks/getRangeLastUsedCell.d.ts +1 -0
  155. package/dist/tasks/getRangeLastUsedCell.d.ts.map +1 -1
  156. package/dist/tasks/getRangeLastUsedCell.js +2 -1
  157. package/dist/tasks/getRangeLastUsedCell.test.js +9 -9
  158. package/dist/tasks/getWorkbookTableVisibleBody.d.ts +1 -0
  159. package/dist/tasks/getWorkbookTableVisibleBody.d.ts.map +1 -1
  160. package/dist/tasks/getWorkbookTableVisibleBody.js +1 -17
  161. package/dist/tasks/getWorkbookTableVisibleBody.test.js +21 -21
  162. package/dist/tasks/getWorkbookWorksheetByName.d.ts +6 -0
  163. package/dist/tasks/getWorkbookWorksheetByName.d.ts.map +1 -0
  164. package/dist/tasks/getWorkbookWorksheetByName.js +12 -0
  165. package/dist/tasks/getWorkbookWorksheetRefByName.js +1 -1
  166. package/dist/tasks/safeDeleteWorkbook.d.ts +4 -0
  167. package/dist/tasks/safeDeleteWorkbook.d.ts.map +1 -0
  168. package/dist/tasks/safeDeleteWorkbook.js +9 -0
  169. package/dist/tasks/setColumnHidden.d.ts +1 -0
  170. package/dist/tasks/setColumnHidden.d.ts.map +1 -1
  171. package/dist/tasks/setColumnHidden.js +2 -2
  172. package/dist/tasks/setColumnHidden.test.js +5 -5
  173. package/dist/tasks/setRowHidden.d.ts +1 -0
  174. package/dist/tasks/setRowHidden.d.ts.map +1 -1
  175. package/dist/tasks/setRowHidden.js +2 -2
  176. package/dist/tasks/setRowHidden.test.js +5 -5
  177. package/docs/lockedWorkbook.md +2 -0
  178. package/docs/pivotTables.md +9 -0
  179. package/docs/requestRetrying.md +3 -0
  180. package/package.json +18 -1
@@ -0,0 +1,23 @@
1
+ name: Biome check
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main]
6
+ paths:
7
+ - '**/*.ts'
8
+ - '**/*.js'
9
+ - 'biome.json'
10
+ jobs:
11
+ biome:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v3
16
+ - name: Set up Node.js
17
+ uses: actions/setup-node@v3
18
+ with:
19
+ node-version: 23
20
+ - name: Install packages
21
+ run: npm clean-install --include dev --no-audit --no-fund
22
+ - name: Run Biome check
23
+ run: npm run check || exit 1
@@ -1,7 +1,12 @@
1
1
  {
2
- "editor.formatOnSave": true,
3
2
  "[typescript]": {
4
- "editor.defaultFormatter": "vscode.typescript-language-features"
3
+ "editor.defaultFormatter": "biomejs.biome"
4
+ },
5
+ "[json]": {
6
+ "editor.defaultFormatter": "biomejs.biome"
7
+ },
8
+ "[jsonc]": {
9
+ "editor.defaultFormatter": "biomejs.biome"
5
10
  },
6
11
  "cSpell.words": [
7
12
  "Entra",
package/biome.jsonc CHANGED
@@ -7,77 +7,47 @@
7
7
  "defaultBranch": "main"
8
8
  },
9
9
  "files": {
10
- "ignoreUnknown": true,
11
10
  "include": ["src/*.ts"],
12
11
  "maxSize": 2097152 // 2MB to cover generated models
13
12
  },
14
13
  "formatter": {
15
- "enabled": false
14
+ "lineWidth": 320 // We have large monitors these days, 80 characters is crazy
16
15
  },
17
16
  "organizeImports": {
18
- "enabled": false // VSCode and Biome organize imports differently
17
+ "enabled": false // VSCode and Biome organize imports differently, and really, who cares
19
18
  },
20
19
  "linter": {
21
- "enabled": true,
22
20
  "rules": {
23
- "all": true
21
+ "all": true // Maximize consistency
24
22
  },
25
23
  "include": ["src/*.ts"]
26
24
  },
27
- "javascript": {
28
- "globals": ["exports"]
29
- },
30
25
  "overrides": [
31
26
  {
32
27
  "include": ["*.ts"],
33
- "linter":{
28
+ "linter": {
34
29
  "rules": {
35
- "correctness":{
36
- "noNodejsModules": "off"
30
+ "correctness": {
31
+ "noNodejsModules": "off" // We are in a Node environment, and need these
32
+ },
33
+ "style": {
34
+ "noDefaultExport": "off" // We are using this to discourage large files in some cases.
35
+ },
36
+ "suspicious": {
37
+ "noConsole": "off" // Logging is to be done through the logger, not directly to console\
37
38
  }
38
39
  }
39
40
  }
40
41
  },
41
42
  {
42
43
  "include": ["*.test.ts"],
43
- "linter":{
44
+ "linter": {
44
45
  "rules": {
45
- "suspicious":{
46
- "noConsole": "off"
46
+ "suspicious": {
47
+ "noConsole": "off" // Test can log to console, as the logger is impractical here.
47
48
  }
48
49
  }
49
50
  }
50
- },
51
- {
52
- "include": ["src/operations/*.ts", "src/errors/*.ts", "src/tasks/*.ts"],
53
- "linter":{
54
- "rules": {
55
- "style":{
56
- "noDefaultExport": "off"
57
- }
58
- }
59
- }
60
- },
61
- {
62
- "include": ["src/models/Dto.d.ts"],
63
- "linter": {
64
- "rules": {
65
- "style": {
66
- "useNamingConvention": "off",
67
- "noNamespace": "off",
68
- "useFilenamingConvention": "off"
69
- },
70
- "correctness": {
71
- "noUnusedVariables": "off"
72
- },
73
- "complexity":{
74
- "noBannedTypes": "off"
75
- },
76
- "suspicious": {
77
- "noEmptyInterface": "off"
78
- }
79
- }
80
- }
81
51
  }
82
- ]
52
+ ]
83
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentVariableMissingError.d.ts","sourceRoot":"","sources":["../../src/errors/EnvironmentVariableMissingError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,KAAK;gBAC3C,GAAG,EAAE,MAAM;CAIjC"}
1
+ {"version":3,"file":"EnvironmentVariableMissingError.d.ts","sourceRoot":"","sources":["../../src/errors/EnvironmentVariableMissingError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,KAAK;gBAC9C,GAAG,EAAE,MAAM;CAI9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"InvalidArgumentError.d.ts","sourceRoot":"","sources":["../../src/errors/InvalidArgumentError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;WAKpB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;WAM9E,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;WAMjE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAMjE"}
1
+ {"version":3,"file":"InvalidArgumentError.d.ts","sourceRoot":"","sources":["../../src/errors/InvalidArgumentError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;WAKpB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;WAM9E,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;WAMjE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAKjE"}
@@ -0,0 +1,4 @@
1
+ export default class NeverError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ //# sourceMappingURL=NeverError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NeverError.d.ts","sourceRoot":"","sources":["../../src/errors/NeverError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAIlC"}
@@ -0,0 +1,6 @@
1
+ export default class NeverError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = "NeverError";
5
+ }
6
+ }
@@ -0,0 +1,4 @@
1
+ export default class NotFoundError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ //# sourceMappingURL=NotFoundError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotFoundError.d.ts","sourceRoot":"","sources":["../../src/errors/NotFoundError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAIlC"}
@@ -0,0 +1,6 @@
1
+ export default class NotFoundError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = "NotFoundError";
5
+ }
6
+ }
@@ -1,6 +1,5 @@
1
1
  export default class RequestFailedError extends Error {
2
2
  constructor(message: string);
3
- static throwIfNotOkBatch(status: number, ops: unknown, error: unknown): void;
4
- static throwIfNotOkOperation(status: number, index: number, op: unknown, error: unknown): void;
3
+ static throw(message: string, request: unknown, response?: unknown): never;
5
4
  }
6
5
  //# sourceMappingURL=RequestFailedError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RequestFailedError.d.ts","sourceRoot":"","sources":["../../src/errors/RequestFailedError.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;WAKpB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;WAUrE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;CASrG"}
1
+ {"version":3,"file":"RequestFailedError.d.ts","sourceRoot":"","sources":["../../src/errors/RequestFailedError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;WAKpB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK;CAOjF"}
@@ -1,21 +1,13 @@
1
- import { isHttpOk } from "../services/httpStatus.js";
2
1
  export default class RequestFailedError extends Error {
3
2
  constructor(message) {
4
3
  super(message);
5
4
  this.name = "RequestFailedError";
6
5
  }
7
- static throwIfNotOkBatch(status, ops, error) {
8
- if (!isHttpOk(status)) {
9
- throw new RequestFailedError(`GraphAPI batch failed with HTTP ${status}\n` +
10
- `Operation: ${JSON.stringify(ops, null, 2)}\n` +
11
- `Error: ${JSON.stringify(error, null, 2)}}`);
12
- }
13
- }
14
- static throwIfNotOkOperation(status, index, op, error) {
15
- if (!isHttpOk(status)) {
16
- throw new RequestFailedError(`GraphAPI operation ${index} failed with HTTP ${status}\n` +
17
- `Operation: ${JSON.stringify(op, null, 2)}\n` +
18
- `Error: ${JSON.stringify(error, null, 2)}}`);
6
+ static throw(message, request, response) {
7
+ const r = request;
8
+ if (r?.headers?.authorization) {
9
+ r.headers.authorization = "<REDACTED>";
19
10
  }
11
+ throw new RequestFailedError(`${message}\n\nREQUEST: ${JSON.stringify(r, null, 2)}\n\nRESPONSE: ${JSON.stringify(response, null, 2)}`);
20
12
  }
21
13
  }
@@ -3,13 +3,14 @@ import type { Scope } from "./models/Scope.ts";
3
3
  export declare const authenticationScope: Scope;
4
4
  export declare const endpoint = "https://graph.microsoft.com/v1.0";
5
5
  export declare const batchEndpoint = "https://graph.microsoft.com/v1.0/$batch";
6
- type ExecutionResults<T> = {
7
- [K in keyof T]: T[K] extends GraphOperation<infer R> ? R : never;
8
- };
6
+ /** Define a operation, which can either be `await`d to execute independently, or passed with other operations ot `parallel` or `sequential` to execute as part of a batch. */
9
7
  export declare function operation<T>(definition: GraphOperationDefinition<T>): GraphOperation<T>;
10
8
  /** Execute a batch of GraphAPI operations in parallel. Provides the best performance for batch operations, however only useful if operations can logically be performed at the same time. */
11
- export declare function parallel<T extends GraphOperation<unknown>[]>(...ops: T): Promise<ExecutionResults<T>>;
9
+ export declare function parallel<T extends GraphOperation<unknown>[]>(...operations: T): Promise<OperationResponse<T>>;
12
10
  /** Execute a batch of GraphAPI operations sequentially. */
13
- export declare function sequential<T extends GraphOperation<unknown>[]>(...ops: T): Promise<ExecutionResults<T>>;
11
+ export declare function sequential<T extends GraphOperation<unknown>[]>(...operations: T): Promise<OperationResponse<T>>;
12
+ type OperationResponse<T> = {
13
+ [K in keyof T]: T[K] extends GraphOperation<infer R> ? R : never;
14
+ };
14
15
  export {};
15
16
  //# sourceMappingURL=graphApi.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"graphApi.d.ts","sourceRoot":"","sources":["../src/graphApi.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAgB,cAAc,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,eAAO,MAAM,mBAAmB,EAA6C,KAAK,CAAC;AACnF,eAAO,MAAM,QAAQ,qCAAqC,CAAC;AAC3D,eAAO,MAAM,aAAa,4CAAuB,CAAC;AAElD,8KAA8K;AAC9K,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAQvF;AAED,6LAA6L;AAC7L,wBAAsB,QAAQ,CAAC,CAAC,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAInH;AAED,2DAA2D;AAC3D,wBAAsB,UAAU,CAAC,CAAC,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAOrH;AAoBD,KAAK,iBAAiB,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAChE,CAAC"}
package/dist/graphApi.js CHANGED
@@ -1,107 +1,160 @@
1
- import fetch from 'node-fetch';
1
+ import fetch from "node-fetch";
2
2
  import InconsistentContextError from "./errors/InconsistentContextError.js";
3
3
  import InvalidArgumentError from "./errors/InvalidArgumentError.js";
4
+ import NeverError from "./errors/NeverError.js";
5
+ import ProtocolError from "./errors/ProtocolError.js";
4
6
  import RequestFailedError from "./errors/RequestFailedError.js";
5
7
  import { getCurrentAccessToken } from "./services/accessToken.js";
6
8
  import { getContext } from "./services/context.js";
7
9
  import { tryGetHttpAgent } from "./services/httpAgent.js";
10
+ import { isHttpOk, isHttpTooManyRequests } from "./services/httpStatus.js";
8
11
  import { operationIdToIndex, operationIndexToId } from "./services/operationId.js";
12
+ import { sleep } from "./services/sleep.js";
9
13
  export const authenticationScope = "https://graph.microsoft.com/.default";
10
14
  export const endpoint = "https://graph.microsoft.com/v1.0";
11
15
  export const batchEndpoint = `${endpoint}/$batch`;
12
- const maxBatchOperations = 20; // https://learn.microsoft.com/en-us/graph/json-batching?tabs=http#batch-size-limitations
16
+ /** Define a operation, which can either be `await`d to execute independently, or passed with other operations ot `parallel` or `sequential` to execute as part of a batch. */
13
17
  export function operation(definition) {
14
- // The returned operation can be called directly by simply `await`ing it, or it can be passed to the `parallel` or `sequential` functions to be executed in a batch.
18
+ const single = async (definition) => {
19
+ return await executeSingle(definition);
20
+ };
15
21
  const op = single(definition);
16
22
  op.definition = definition;
17
23
  return op;
18
24
  }
19
- async function single(definition) {
25
+ /** Execute a batch of GraphAPI operations in parallel. Provides the best performance for batch operations, however only useful if operations can logically be performed at the same time. */
26
+ export async function parallel(...operations) {
27
+ const definitions = operations.map((op) => op.definition);
28
+ return (await executeBatch(...definitions));
29
+ }
30
+ /** Execute a batch of GraphAPI operations sequentially. */
31
+ export async function sequential(...operations) {
32
+ const definitions = operations.map((definition, index) => ({
33
+ ...definition.definition,
34
+ dependsOn: index > 0 ? [index - 1] : undefined, // Each op is dependant on the previous op
35
+ }));
36
+ return (await executeBatch(...definitions));
37
+ }
38
+ const maxBatchOperations = 20; // https://learn.microsoft.com/en-us/graph/json-batching?tabs=http#batch-size-limitations
39
+ const maxRetries = 3;
40
+ const defaultRetryDelayMilliseconds = 1000;
41
+ const consecutiveRetryDelayMultiplier = 2;
42
+ async function executeSingle(definition) {
20
43
  const context = getContext(definition.contextId);
21
44
  const accessToken = await getCurrentAccessToken(context.tenantId, context.clientId, context.clientSecret, authenticationScope);
22
45
  const agent = tryGetHttpAgent(context.httpProxy);
23
- const requestHeaders = {
24
- "authorization": `Bearer ${accessToken}`,
25
- ...Object.fromEntries(Object.entries(definition.headers ?? {}).filter(([_, v]) => v !== undefined)), // TODO: Tidy
26
- };
27
- const reply = await fetch(`${endpoint}${definition.path}`, {
46
+ const response = await innerFetch({
47
+ url: `${endpoint}${definition.path}`,
28
48
  method: definition.method,
29
- headers: requestHeaders,
49
+ headers: {
50
+ authorization: createAuthorizationHeader(accessToken),
51
+ ...headersToObject(definition.headers),
52
+ },
30
53
  body: definition.body === null ? null : JSON.stringify(definition.body),
31
- agent
54
+ agent,
32
55
  });
33
- const replyContentType = reply.headers.get('content-type')?.toLowerCase();
34
- const body = replyContentType?.startsWith("application/json") ? await reply.json() : null;
35
- RequestFailedError.throwIfNotOkOperation(reply.status, 0, definition, body);
36
- return definition.responseTransform(body);
56
+ return definition.responseTransform(response);
37
57
  }
38
- /** Execute a batch of GraphAPI operations in parallel. Provides the best performance for batch operations, however only useful if operations can logically be performed at the same time. */
39
- export async function parallel(...ops) {
40
- const definitions = ops.map(op => op.definition);
41
- return await execute(...definitions);
42
- }
43
- /** Execute a batch of GraphAPI operations sequentially. */
44
- export async function sequential(...ops) {
45
- const definitions = ops.map(op => op.definition);
46
- const sequentialOps = definitions.map((definition, index) => ({
47
- ...definition,
48
- dependsOn: index > 0 ? [index - 1] : undefined // Each op is dependant on the previous op
49
- }));
50
- return await execute(...sequentialOps);
51
- }
52
- async function execute(...ops) {
58
+ async function executeBatch(...ops) {
53
59
  InvalidArgumentError.throwIfGreater(ops.length, maxBatchOperations, `At most ${maxBatchOperations} operations allowed, but ${ops.length} were provided.`);
54
60
  if (ops.length === 0) {
55
61
  return [];
56
62
  }
57
- const requestPayload = await composeRequestPayload(ops);
58
- const reply = await fetch(batchEndpoint, requestPayload);
59
- const replyPayload = await reply.json();
60
- RequestFailedError.throwIfNotOkBatch(reply.status, ops, replyPayload);
61
- const responses = parseResponses(replyPayload, ops);
62
- return responses;
63
- }
64
- async function composeRequestPayload(ops) {
65
63
  const firstOp = ops[0];
66
64
  if (!firstOp) {
67
- throw new Error("First op not found. Should be impossible");
65
+ throw new NeverError("First op not found. Should be impossible");
68
66
  }
69
67
  const contextId = firstOp.contextId;
70
- if (ops.some(op => op.contextId !== contextId)) {
68
+ if (ops.some((op) => op.contextId !== contextId)) {
71
69
  throw new InconsistentContextError("All operations in a batch must share the same contextId.");
72
70
  }
73
71
  const context = getContext(contextId);
74
72
  const accessToken = await getCurrentAccessToken(context.tenantId, context.clientId, context.clientSecret, authenticationScope);
75
73
  const agent = tryGetHttpAgent(context.httpProxy);
76
- const requestBody = {
77
- requests: ops.map((op, index) => ({
78
- id: operationIndexToId(index),
79
- method: op.method,
80
- url: op.path,
81
- headers: op.headers,
82
- body: op.body === null ? undefined : op.body,
83
- dependsOn: op.dependsOn?.map((id) => id.toString())
84
- }))
85
- };
86
- const requestPayload = {
74
+ const body = await innerFetch({
75
+ url: batchEndpoint,
87
76
  method: "POST",
88
77
  headers: {
89
- "authorization": `Bearer ${accessToken}`,
90
- "accept": "application/json",
91
- "content-type": "application/json"
78
+ authorization: createAuthorizationHeader(accessToken),
79
+ accept: "application/json",
80
+ "content-type": "application/json",
92
81
  },
93
- body: JSON.stringify(requestBody),
94
- agent
95
- };
96
- return requestPayload;
82
+ body: JSON.stringify({
83
+ requests: ops.map((op, index) => ({
84
+ id: operationIndexToId(index),
85
+ method: op.method,
86
+ url: op.path,
87
+ headers: op.headers,
88
+ body: op.body === null ? undefined : op.body,
89
+ dependsOn: op.dependsOn?.map((id) => id.toString()),
90
+ })),
91
+ }),
92
+ agent,
93
+ });
94
+ const responses = [];
95
+ for (const r of body.responses) {
96
+ const index = operationIdToIndex(r.id);
97
+ const headers = normalizeBatchHeaders(r.headers);
98
+ const contentType = headers["content-type"];
99
+ const body = normalizeBatchBody(contentType, r.body);
100
+ const op = ops[index];
101
+ if (!op) {
102
+ throw new ProtocolError("Reference to operation that was not submitted in the batch");
103
+ }
104
+ if (!isHttpOk(r.status)) {
105
+ const bodyError = body;
106
+ const errorMessage = bodyError?.error ? `[${bodyError.error.code}] ${bodyError.error.message}` : `HTTP ${r.status}`;
107
+ RequestFailedError.throw(`GraphAPI operation ${index} failed: '${errorMessage}'`, op, r);
108
+ }
109
+ responses[index] = op.responseTransform(body);
110
+ }
111
+ return responses; // TODO: Is there a neater way to massage the types correctly? This is functionally correct, but I do want to avoid using `unknown` here if possible.
112
+ }
113
+ /** Execute request, supporting GraphAPI retry logic */
114
+ async function innerFetch(args) {
115
+ const { url, ...options } = args;
116
+ let retryAfterMilliseconds = defaultRetryDelayMilliseconds;
117
+ let response = null;
118
+ let attempts = 0; // Track the number of attempts
119
+ while (attempts < maxRetries) {
120
+ // Retry at most 3 times
121
+ response = await fetch(url, options);
122
+ if (!isHttpTooManyRequests(response.status)) {
123
+ break;
124
+ }
125
+ const requestedRetryAfterSeconds = Number.parseInt(response.headers.get("Retry-After") ?? "0", 10);
126
+ if (requestedRetryAfterSeconds) {
127
+ retryAfterMilliseconds = requestedRetryAfterSeconds * 1000;
128
+ }
129
+ await sleep(retryAfterMilliseconds);
130
+ retryAfterMilliseconds *= consecutiveRetryDelayMultiplier;
131
+ attempts++; // Increment the attempt counter
132
+ }
133
+ if (attempts >= maxRetries) {
134
+ RequestFailedError.throw(`GraphAPI fetch exceed retry limit of ${maxRetries} attempts.`, args);
135
+ }
136
+ if (!response) {
137
+ throw new NeverError("Response is null. Should be impossible");
138
+ }
139
+ if (isHttpTooManyRequests(response.status)) {
140
+ RequestFailedError.throw("GraphAPI fetch failed after 3 retries due to too many requests.", args);
141
+ }
142
+ const replyContentType = response.headers.get("content-type")?.toLowerCase();
143
+ const body = replyContentType?.startsWith("application/json") ? await response.json() : null;
144
+ if (!isHttpOk(response.status)) {
145
+ const bodyError = body;
146
+ const errorMessage = bodyError?.error ? `[${bodyError.error.code}] ${bodyError.error.message}` : `HTTP ${response.status} ${response.statusText}`;
147
+ RequestFailedError.throw(`GraphAPI fetch failed: '${errorMessage}'`, args, body);
148
+ }
149
+ return body;
97
150
  }
98
- function normalizeBody(contentType, body) {
151
+ function normalizeBatchBody(contentType, body) {
99
152
  if (contentType?.startsWith("application/json") && typeof body === "string") {
100
153
  return JSON.parse(atob(body));
101
154
  }
102
155
  return body;
103
156
  }
104
- function normalizeHeaders(input) {
157
+ function normalizeBatchHeaders(input) {
105
158
  const headers = {};
106
159
  for (const key in input) {
107
160
  if (input[key]) {
@@ -110,19 +163,9 @@ function normalizeHeaders(input) {
110
163
  }
111
164
  return headers;
112
165
  }
113
- function parseResponses(replyPayload, ops) {
114
- const results = [];
115
- for (const response of replyPayload.responses) {
116
- const index = operationIdToIndex(response.id);
117
- const headers = normalizeHeaders(response.headers);
118
- const contentType = headers["content-type"];
119
- const body = normalizeBody(contentType, response.body);
120
- const op = ops[index];
121
- if (!op) {
122
- throw new Error("Op not found. Should be impossible");
123
- }
124
- RequestFailedError.throwIfNotOkOperation(response.status, index, op, body);
125
- results[index] = op.responseTransform(body);
126
- }
127
- return results; // TODO: Is there a neater way to massage the types correctly? This is functionally correct, but I do want to avoid using `unknown` here if possible.
166
+ function createAuthorizationHeader(accessToken) {
167
+ return `Bearer ${accessToken}`;
168
+ }
169
+ function headersToObject(obj) {
170
+ return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v !== undefined));
128
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccessToken.d.ts","sourceRoot":"","sources":["../../src/models/AccessToken.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAC/B,OAAO,EAAE,aAAa,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"AccessToken.d.ts","sourceRoot":"","sources":["../../src/models/AccessToken.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAClC,OAAO,EAAE,aAAa,CAAC;CACvB,CAAC"}
@@ -1 +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"}
1
+ {"version":3,"file":"ClientId.d.ts","sourceRoot":"","sources":["../../src/models/ClientId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC/B,OAAO,EAAE,UAAU,CAAC;CACpB,CAAC"}
@@ -1 +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"}
1
+ {"version":3,"file":"ClientSecret.d.ts","sourceRoot":"","sources":["../../src/models/ClientSecret.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IACnC,OAAO,EAAE,cAAc,CAAC;CACxB,CAAC"}
@@ -1 +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"}
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;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC"}
@@ -1 +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"}
1
+ {"version":3,"file":"ContextId.d.ts","sourceRoot":"","sources":["../../src/models/ContextId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAChC,OAAO,EAAE,WAAW,CAAC;CACrB,CAAC"}
@@ -1 +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"}
1
+ {"version":3,"file":"ContextRef.d.ts","sourceRoot":"","sources":["../../src/models/ContextRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,SAAS,CAAC;CACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DriveId.d.ts","sourceRoot":"","sources":["../../src/models/DriveId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAC3B,OAAO,EAAE,SAAS,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"DriveId.d.ts","sourceRoot":"","sources":["../../src/models/DriveId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAC9B,OAAO,EAAE,SAAS,CAAC;CACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DriveItemId.d.ts","sourceRoot":"","sources":["../../src/models/DriveItemId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAC/B,OAAO,EAAE,aAAa,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"DriveItemId.d.ts","sourceRoot":"","sources":["../../src/models/DriveItemId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAClC,OAAO,EAAE,aAAa,CAAC;CACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DriveItemPath.d.ts","sourceRoot":"","sources":["../../src/models/DriveItemPath.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IACjC,OAAO,EAAE,eAAe,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"DriveItemPath.d.ts","sourceRoot":"","sources":["../../src/models/DriveItemPath.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IACpC,OAAO,EAAE,eAAe,CAAC;CACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DriveItemRef.d.ts","sourceRoot":"","sources":["../../src/models/DriveItemRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG;IAClC,MAAM,EAAE,WAAW,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"DriveItemRef.d.ts","sourceRoot":"","sources":["../../src/models/DriveItemRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG;IACrC,MAAM,EAAE,WAAW,CAAC;CACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DriveRef.d.ts","sourceRoot":"","sources":["../../src/models/DriveRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"DriveRef.d.ts","sourceRoot":"","sources":["../../src/models/DriveRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC"}
@@ -1 +1 @@
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
+ {"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,CAAA;CAAE,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG;IAC1B,qBAAqB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,cAAc,CAAC,EAAE,kBAAkB,GAAG,mEAAmE,GAAG,SAAS,CAAC;CACtH,CAAC;AAGF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACzC,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;CAC5C,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAC5C,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;CACxC,CAAC"}
@@ -1 +1 @@
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"}
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,CAAA;CAAE,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG;IAC1B,qBAAqB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtD,cAAc,CAAC,EAAE,kBAAkB,GAAG,mEAAmE,GAAG,SAAS,CAAC;CACtH,CAAC;AAIF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACzC,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;CACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HostName.d.ts","sourceRoot":"","sources":["../../src/models/HostName.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC5B,OAAO,EAAE,UAAU,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"HostName.d.ts","sourceRoot":"","sources":["../../src/models/HostName.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC/B,OAAO,EAAE,UAAU,CAAC;CACpB,CAAC"}
@@ -1 +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"}
1
+ {"version":3,"file":"HttpProxy.d.ts","sourceRoot":"","sources":["../../src/models/HttpProxy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAChC,OAAO,EAAE,WAAW,CAAC;CACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/models/Scope.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/models/Scope.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SiteId.d.ts","sourceRoot":"","sources":["../../src/models/SiteId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAC1B,OAAO,EAAE,QAAQ,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"SiteId.d.ts","sourceRoot":"","sources":["../../src/models/SiteId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAC7B,OAAO,EAAE,QAAQ,CAAC;CAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SiteName.d.ts","sourceRoot":"","sources":["../../src/models/SiteName.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC5B,OAAO,EAAE,UAAU,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"SiteName.d.ts","sourceRoot":"","sources":["../../src/models/SiteName.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC/B,OAAO,EAAE,UAAU,CAAC;CACpB,CAAC"}
@@ -1 +1 @@
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"}
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;IAClC,MAAM,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -1 +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"}
1
+ {"version":3,"file":"TenantId.d.ts","sourceRoot":"","sources":["../../src/models/TenantId.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC/B,OAAO,EAAE,UAAU,CAAC;CACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkbookNamedRangeRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookNamedRangeRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IAC9C,SAAS,EAAE,iBAAiB,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"WorkbookNamedRangeRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookNamedRangeRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IACjD,SAAS,EAAE,iBAAiB,CAAC;CAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkbookRangeAddress.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookRangeAddress.ts"],"names":[],"mappings":"AAAA,KAAK,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AACrC,KAAK,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC;AAEvB,KAAK,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;AAC9B,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAEvE,MAAM,MAAM,8BAA8B,GAAG,IAAI,GAAG,GAAG,CAAC;AAExD,MAAM,MAAM,oBAAoB,GAAG,8BAA8B,GAAG;IAChE,OAAO,EAAE,sBAAsB,CAAC;CACnC,CAAC"}
1
+ {"version":3,"file":"WorkbookRangeAddress.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookRangeAddress.ts"],"names":[],"mappings":"AAAA,KAAK,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AACrC,KAAK,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC;AAEvB,KAAK,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;AAC9B,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAEvE,MAAM,MAAM,8BAA8B,GAAG,IAAI,GAAG,GAAG,CAAC;AAExD,MAAM,MAAM,oBAAoB,GAAG,8BAA8B,GAAG;IACnE,OAAO,EAAE,sBAAsB,CAAC;CAChC,CAAC"}