microsoft-graph 2.1.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.
- package/.github/workflows/check.yml +23 -0
- package/.vscode/settings.json +7 -2
- package/biome.jsonc +16 -46
- package/dist/errors/EnvironmentVariableMissingError.d.ts.map +1 -1
- package/dist/errors/InvalidArgumentError.d.ts.map +1 -1
- package/dist/errors/NeverError.d.ts +4 -0
- package/dist/errors/NeverError.d.ts.map +1 -0
- package/dist/errors/NeverError.js +6 -0
- package/dist/errors/RequestFailedError.d.ts +1 -2
- package/dist/errors/RequestFailedError.d.ts.map +1 -1
- package/dist/errors/RequestFailedError.js +5 -13
- package/dist/graphApi.d.ts +6 -5
- package/dist/graphApi.d.ts.map +1 -1
- package/dist/graphApi.js +118 -75
- package/dist/models/AccessToken.d.ts.map +1 -1
- package/dist/models/ClientId.d.ts.map +1 -1
- package/dist/models/ClientSecret.d.ts.map +1 -1
- package/dist/models/Context.d.ts.map +1 -1
- package/dist/models/ContextId.d.ts.map +1 -1
- package/dist/models/ContextRef.d.ts.map +1 -1
- package/dist/models/DriveId.d.ts.map +1 -1
- package/dist/models/DriveItemId.d.ts.map +1 -1
- package/dist/models/DriveItemPath.d.ts.map +1 -1
- package/dist/models/DriveItemRef.d.ts.map +1 -1
- package/dist/models/DriveRef.d.ts.map +1 -1
- package/dist/models/GraphOperation.d.ts.map +1 -1
- package/dist/models/GraphOperationDefinition.d.ts.map +1 -1
- package/dist/models/HostName.d.ts.map +1 -1
- package/dist/models/HttpProxy.d.ts.map +1 -1
- package/dist/models/Scope.d.ts.map +1 -1
- package/dist/models/SiteId.d.ts.map +1 -1
- package/dist/models/SiteName.d.ts.map +1 -1
- package/dist/models/SiteRef.d.ts.map +1 -1
- package/dist/models/TenantId.d.ts.map +1 -1
- package/dist/models/WorkbookNamedRangeRef.d.ts.map +1 -1
- package/dist/models/WorkbookRangeAddress.d.ts.map +1 -1
- package/dist/models/WorkbookRangeName.d.ts.map +1 -1
- package/dist/models/WorkbookRangeRef.d.ts.map +1 -1
- package/dist/models/WorkbookRef.d.ts.map +1 -1
- package/dist/models/WorkbookSessionId.d.ts.map +1 -1
- package/dist/models/WorkbookTableId.d.ts.map +1 -1
- package/dist/models/WorkbookTableRef.d.ts.map +1 -1
- package/dist/models/WorkbookWorksheetId.d.ts.map +1 -1
- package/dist/models/WorkbookWorksheetName.d.ts.map +1 -1
- package/dist/models/WorkbookWorksheetRef.d.ts.map +1 -1
- package/dist/operations/drive/createFolder.d.ts.map +1 -1
- package/dist/operations/drive/createFolder.js +3 -3
- package/dist/operations/drive/createFolder.test.js +2 -2
- package/dist/operations/drive/listDrives.d.ts.map +1 -1
- package/dist/operations/drive/listDrives.js +4 -4
- package/dist/operations/driveItem/deleteDriveItem.js +1 -1
- package/dist/operations/driveItem/deleteDriveItem.test.js +2 -2
- package/dist/operations/driveItem/getDriveItem.js +3 -3
- package/dist/operations/driveItem/getDriveItem.test.js +2 -2
- package/dist/operations/driveItem/getDriveItemByPath.js +3 -3
- package/dist/operations/driveItem/getDriveItemByPath.test.js +2 -2
- package/dist/operations/driveItem/getDriveItemContent.d.ts.map +1 -1
- package/dist/operations/driveItem/getDriveItemContent.js +3 -3
- package/dist/operations/driveItem/getDriveItemContent.test.js +1 -3
- package/dist/operations/driveItem/initiateCopyDriveItem.js +1 -1
- package/dist/operations/driveItem/initiateCopyDriveItem.test.js +2 -2
- package/dist/operations/driveItem/listDriveItems.d.ts.map +1 -1
- package/dist/operations/driveItem/listDriveItems.js +3 -3
- package/dist/operations/driveItem/listDriveItems.test.js +1 -1
- package/dist/operations/site/getSite.js +3 -3
- package/dist/operations/site/getSiteByName.js +2 -2
- package/dist/operations/site/listSites.js +3 -3
- package/dist/operations/site/listSites.test.js +1 -1
- package/dist/operations/site/searchSites.js +3 -3
- package/dist/operations/user/userSendMail.js +2 -3
- package/dist/operations/workbook/calculateWorkbook.d.ts.map +1 -1
- package/dist/operations/workbook/calculateWorkbook.js +2 -2
- package/dist/operations/workbook/calculateWorkbook.test.js +3 -3
- package/dist/operations/workbook/createWorkbook.js +3 -3
- package/dist/operations/workbook/deleteWorkbook.d.ts.map +1 -1
- package/dist/operations/workbookRange/clearWorkbookRange.d.ts.map +1 -1
- package/dist/operations/workbookRange/clearWorkbookRange.js +2 -2
- package/dist/operations/workbookRange/clearWorkbookRange.test.js +21 -9
- package/dist/operations/workbookRange/deleteWorkbookRange.d.ts.map +1 -1
- package/dist/operations/workbookRange/deleteWorkbookRange.js +2 -2
- package/dist/operations/workbookRange/deleteWorkbookRange.test.js +21 -9
- package/dist/operations/workbookRange/getWorkbookNamedRange.js +3 -3
- package/dist/operations/workbookRange/getWorkbookUsedRange.js +3 -3
- package/dist/operations/workbookRange/getWorkbookUsedRange.test.js +14 -8
- package/dist/operations/workbookRange/getWorkbookVisibleRange.d.ts.map +1 -1
- package/dist/operations/workbookRange/getWorkbookVisibleRange.js +4 -3
- package/dist/operations/workbookRange/getWorkbookVisibleRange.test.js +21 -15
- package/dist/operations/workbookRange/insertWorkbookCells.d.ts.map +1 -1
- package/dist/operations/workbookRange/insertWorkbookCells.js +4 -4
- package/dist/operations/workbookRange/insertWorkbookCells.test.js +3 -3
- package/dist/operations/workbookRange/updateWorkbookNamedRange.js +1 -1
- package/dist/operations/workbookRange/updateWorkbookRange.js +3 -3
- package/dist/operations/workbookRange/updateWorkbookRange.test.js +13 -7
- package/dist/operations/workbookSession/closeWorkbookSession.js +1 -1
- package/dist/operations/workbookSession/createWorkbookSession.js +5 -5
- package/dist/operations/workbookSession/refreshWorkbookSession.js +1 -1
- package/dist/operations/workbookTable/createWorkbookTable.js +4 -4
- package/dist/operations/workbookTable/createWorkbookTable.test.js +2 -2
- package/dist/operations/workbookTable/getWorkbookTable.js +3 -3
- package/dist/operations/workbookTable/getWorkbookTable.test.js +2 -2
- package/dist/operations/workbookTable/getWorkbookTableBodyRange.js +3 -3
- package/dist/operations/workbookTable/getWorkbookTableBodyRange.test.js +4 -4
- package/dist/operations/workbookTable/getWorkbookTableHeaderRange.js +3 -3
- package/dist/operations/workbookTable/getWorkbookTableHeaderRange.test.js +3 -3
- package/dist/operations/workbookTable/listWorkbookTableColumns.js +2 -2
- package/dist/operations/workbookTable/listWorkbookTableColumns.test.js +2 -2
- package/dist/operations/workbookTable/listWorkbookTableRows.js +2 -2
- package/dist/operations/workbookTable/listWorkbookTableRows.test.js +2 -2
- package/dist/operations/workbookTable/listWorkbookTables.js +3 -3
- package/dist/operations/workbookTable/listWorkbookTables.test.js +2 -2
- package/dist/operations/workbookWorksheet/createWorkbookWorksheet.js +4 -4
- package/dist/operations/workbookWorksheet/createWorkbookWorksheet.test.js +3 -3
- package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.d.ts.map +1 -1
- package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.js +1 -1
- package/dist/operations/workbookWorksheet/deleteWorkbookWorksheet.test.js +3 -3
- package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.js +3 -3
- package/dist/operations/workbookWorksheet/getWorkbookWorksheetRange.test.js +7 -4
- package/dist/operations/workbookWorksheet/listWorkbookWorksheets.js +3 -3
- package/dist/operations/workbookWorksheet/listWorkbookWorksheets.test.js +5 -5
- package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.d.ts.map +1 -1
- package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.js +3 -3
- package/dist/operations/workbookWorksheet/updateWorkbookWorksheet.test.js +3 -3
- package/dist/services/context.d.ts.map +1 -1
- package/dist/services/context.js +2 -2
- package/dist/services/drive.d.ts.map +1 -1
- package/dist/services/driveItem.d.ts.map +1 -1
- package/dist/services/driveItem.js +2 -6
- package/dist/services/httpStatus.d.ts +1 -0
- package/dist/services/httpStatus.d.ts.map +1 -1
- package/dist/services/httpStatus.js +3 -0
- package/dist/services/random.js +2 -2
- package/dist/services/sharepointUrl.test.js +6 -6
- package/dist/services/site.js +2 -2
- package/dist/services/sleep.js +1 -1
- package/dist/services/templatedPaths.d.ts.map +1 -1
- package/dist/services/workbookRange.d.ts.map +1 -1
- package/dist/services/workbookRange.js +1 -1
- package/dist/services/workbookTable.d.ts.map +1 -1
- package/dist/services/workbookTable.js +1 -1
- package/dist/services/workbookWorksheet.d.ts.map +1 -1
- package/dist/services/workbookWorksheet.js +1 -1
- package/dist/tasks/createWorkbookAndStartSession.js +1 -1
- package/dist/tasks/getRangeLastUsedCell.d.ts.map +1 -1
- package/dist/tasks/getRangeLastUsedCell.js +1 -1
- package/dist/tasks/getRangeLastUsedCell.test.js +9 -9
- package/dist/tasks/getWorkbookTableVisibleBody.test.js +21 -21
- package/dist/tasks/getWorkbookWorksheetRefByName.js +1 -1
- package/dist/tasks/safeDeleteWorkbook.d.ts +4 -0
- package/dist/tasks/safeDeleteWorkbook.d.ts.map +1 -0
- package/dist/tasks/safeDeleteWorkbook.js +9 -0
- package/dist/tasks/setColumnHidden.js +1 -2
- package/dist/tasks/setColumnHidden.test.js +5 -5
- package/dist/tasks/setRowHidden.js +1 -2
- package/dist/tasks/setRowHidden.test.js +5 -5
- package/docs/lockedWorkbook.md +2 -0
- package/docs/pivotTables.md +9 -0
- package/docs/requestRetrying.md +3 -0
- package/package.json +10 -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
|
package/.vscode/settings.json
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"editor.formatOnSave": true,
|
|
3
2
|
"[typescript]": {
|
|
4
|
-
"editor.defaultFormatter": "
|
|
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
|
-
"
|
|
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;
|
|
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;
|
|
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 @@
|
|
|
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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export default class RequestFailedError extends Error {
|
|
2
2
|
constructor(message: string);
|
|
3
|
-
static
|
|
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":"
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
}
|
package/dist/graphApi.d.ts
CHANGED
|
@@ -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
|
-
|
|
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>[]>(...
|
|
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>[]>(...
|
|
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
|
package/dist/graphApi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphApi.d.ts","sourceRoot":"","sources":["../src/graphApi.ts"],"names":[],"mappings":"
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
24
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
77
|
-
|
|
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
|
-
|
|
90
|
-
|
|
91
|
-
"content-type": "application/json"
|
|
78
|
+
authorization: createAuthorizationHeader(accessToken),
|
|
79
|
+
accept: "application/json",
|
|
80
|
+
"content-type": "application/json",
|
|
92
81
|
},
|
|
93
|
-
body: JSON.stringify(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
|
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
|
|
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
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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":"
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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,
|
|
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":"
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkbookRangeName.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookRangeName.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;
|
|
1
|
+
{"version":3,"file":"WorkbookRangeName.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookRangeName.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IACxC,OAAO,EAAE,mBAAmB,CAAC;CAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkbookRangeRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookRangeRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,IAAI,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AACvG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;
|
|
1
|
+
{"version":3,"file":"WorkbookRangeRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookRangeRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,IAAI,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AACvG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACrD,OAAO,EAAE,6BAA6B,CAAC;CACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkbookRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;
|
|
1
|
+
{"version":3,"file":"WorkbookRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkbookRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACxC,SAAS,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC1C,CAAC"}
|