Skip to content

Commit 56c266a

Browse files
authored
Chore: Release 10.5.0 (#3477)
* Chore: November dependabot updates (#3427) * feat: API Permissions and Collections redesign (#3391) * feat: add a notification banner to display for first time users (#3396) * chore(dev): release 10.5.0 (#3397)
1 parent b5e08be commit 56c266a

File tree

88 files changed

+5825
-3189
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+5825
-3189
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ module.exports = {
3333
accessibility: 'explicit'
3434
}
3535
],
36+
'indent': ['error', 2],
3637
'@typescript-eslint/interface-name-prefix': 'off',
3738
'@typescript-eslint/member-delimiter-style': [
3839
'off',

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "10.4.1"
2+
".": "10.5.0"
33
}

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,7 @@
2222
"*.tsx": "$(capture).ts, $(capture).d.ts, $(capture).spec.tsx, $(capture).styles.ts",
2323
"package.json": "package-lock.json, .npmrc"
2424
},
25+
"cSpell.words": [
26+
"fluentui"
27+
],
2528
}

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [10.5.0](https://github.com/microsoftgraph/microsoft-graph-explorer-v4/compare/v10.4.1...v10.5.0) (2024-12-02)
6+
7+
8+
### Features
9+
10+
* add a notification banner to display for first time users ([#3396](https://github.com/microsoftgraph/microsoft-graph-explorer-v4/issues/3396)) ([79e3b85](https://github.com/microsoftgraph/microsoft-graph-explorer-v4/commit/79e3b85083d305cbe2b8f851c48b3069aa180bdb))
11+
* API Permissions and Collections redesign ([#3391](https://github.com/microsoftgraph/microsoft-graph-explorer-v4/issues/3391)) ([d239f8f](https://github.com/microsoftgraph/microsoft-graph-explorer-v4/commit/d239f8fd53c2a937ef5d4c15a8e0ffd505c664f1))
12+
13+
14+
### Bug Fixes
15+
16+
* select only the required values from state and useEffect to get description error message ([#3395](https://github.com/microsoftgraph/microsoft-graph-explorer-v4/issues/3395)) ([9141255](https://github.com/microsoftgraph/microsoft-graph-explorer-v4/commit/914125564325f74f5e739835cfdf4afb353188fd))
17+
518
## [10.4.1](https://github.com/microsoftgraph/microsoft-graph-explorer-v4/compare/v10.4.0...v10.4.1) (2024-10-07)
619

720

azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,4 +381,4 @@ extends:
381381
tag: 'v$(Build.BuildNumber)'
382382
title: 'Graph Explorer - v$(Build.BuildNumber)'
383383
assets: '$(Build.ArtifactStagingDirectory)/*.zip'
384-
changeLogType: issueBased
384+
changeLogType: issueBased

package-lock.json

Lines changed: 3640 additions & 2054 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,29 @@
11
{
22
"name": "graph-explorer-v2",
3-
"version": "10.4.1",
3+
"version": "10.5.0",
44
"private": true,
55
"dependencies": {
66
"@augloop/types-core": "file:packages/types-core-2.16.189.tgz",
77
"@axe-core/webdriverjs": "4.10.0",
8-
"@azure/msal-browser": "3.14.0",
9-
"@babel/core": "7.25.2",
10-
"@babel/runtime": "7.25.6",
11-
"@fluentui/react": "8.120.7",
12-
"@fluentui/react-icons-mdl2": "1.3.63",
13-
"@microsoft/applicationinsights-react-js": "17.3.1",
14-
"@microsoft/applicationinsights-web": "3.3.1",
8+
"@fluentui/react-components": "9.55.1",
9+
"@azure/msal-browser": "3.26.1",
10+
"@babel/core": "7.26.0",
11+
"@babel/runtime": "7.26.0",
12+
"@fluentui/react": "8.121.1",
13+
"@fluentui/react-icons-mdl2": "1.3.76",
14+
"@microsoft/applicationinsights-react-js": "17.3.4",
15+
"@microsoft/applicationinsights-web": "3.3.3",
1516
"@microsoft/microsoft-graph-client": "3.0.7",
1617
"@monaco-editor/react": "4.6.0",
1718
"@ms-ofb/officebrowserfeedbacknpm": "file:packages/officebrowserfeedbacknpm-1.6.6.tgz",
18-
"@reduxjs/toolkit": "2.2.5",
19-
"adaptive-expressions": "4.22.2",
19+
"@reduxjs/toolkit": "2.2.7",
20+
"adaptive-expressions": "4.22.3",
2021
"adaptivecards": "3.0.2",
2122
"adaptivecards-templating": "2.3.1",
2223
"ajv": "8.17.1",
2324
"ajv-keywords": "5.1.0",
2425
"apg-js": "4.3.0",
25-
"babel-loader": "9.1.3",
26+
"babel-loader": "9.2.1",
2627
"babel-preset-react-app": "10.0.1",
2728
"bfj": "8.0.0",
2829
"bootstrap": "5.3.3",
@@ -31,39 +32,39 @@
3132
"dotenv": "16.4.5",
3233
"dotenv-expand": "11.0.6",
3334
"eslint-config-react-app": "7.0.1",
34-
"eslint-plugin-react": "7.33.2",
35+
"eslint-plugin-react": "7.37.2",
3536
"eslint-webpack-plugin": "4.1.0",
36-
"express": "4.21.0",
37+
"express": "4.21.1",
3738
"expvariantassignmentsdk": "file:packages/expvariantassignmentsdk-1.0.0.tgz",
3839
"file-loader": "6.2.0",
3940
"fork-ts-checker-webpack-plugin": "9.0.2",
4041
"fs-extra": "11.2.0",
4142
"guid-typescript": "1.0.9",
4243
"isomorphic-fetch": "3.0.0",
4344
"localforage": "1.10.0",
44-
"mini-css-extract-plugin": "2.9.1",
45+
"mini-css-extract-plugin": "2.9.2",
4546
"monaco-editor": "0.30.1",
4647
"monaco-editor-webpack-plugin": "6.0.0",
4748
"office-ui-fabric-core": "11.1.0",
4849
"postcss-flexbugs-fixes": "5.0.2",
4950
"postcss-loader": "8.1.1",
50-
"postcss-preset-env": "9.5.13",
51-
"re-resizable": "6.9.11",
51+
"postcss-preset-env": "10.1.0",
52+
"re-resizable": "6.10.0",
5253
"react": "18.2.0",
5354
"react-app-polyfill": "3.0.0",
5455
"react-dom": "18.2.0",
5556
"react-redux": "8.1.3",
5657
"resolve": "1.22.8",
57-
"sass": "1.72.0",
58-
"sass-loader": "14.2.1",
58+
"sass": "1.79.4",
59+
"sass-loader": "16.0.3",
5960
"style-loader": "4.0.0",
6061
"typescript": "5.5.4",
61-
"url": "0.11.3",
62+
"url": "0.11.4",
6263
"url-loader": "4.1.1",
63-
"webpack": "5.94.0",
64-
"webpack-dev-server": "5.0.4",
64+
"webpack": "5.96.1",
65+
"webpack-dev-server": "5.1.0",
6566
"webpack-manifest-plugin": "5.0.0",
66-
"workbox-webpack-plugin": "7.0.0"
67+
"workbox-webpack-plugin": "7.3.0"
6768
},
6869
"scripts": {
6970
"start": "node scripts/start.js",
@@ -90,25 +91,25 @@
9091
],
9192
"devDependencies": {
9293
"@axe-core/playwright": "4.10.0",
93-
"@playwright/test": "1.46.1",
94+
"@playwright/test": "1.48.2",
9495
"@types/chromedriver": "81.0.1",
9596
"@types/isomorphic-fetch": "0.0.39",
96-
"@types/jest": "29.5.12",
97+
"@types/jest": "29.5.14",
9798
"@types/lodash.debounce": "4.0.9",
9899
"@types/markdown-it": "14.1.2",
99100
"@types/react": "18.2.55",
100101
"@types/react-dom": "18.2.19",
101102
"@types/react-redux": "7.1.30",
102103
"@types/redux-logger": "3.0.11",
103104
"@types/redux-mock-store": "1.0.3",
104-
"@types/selenium-webdriver": "4.1.26",
105-
"@typescript-eslint/eslint-plugin": "7.0.0",
106-
"@typescript-eslint/parser": "6.17.0",
105+
"@types/selenium-webdriver": "4.1.27",
106+
"@typescript-eslint/eslint-plugin": "8.14.0",
107+
"@typescript-eslint/parser": "8.14.0",
107108
"acorn": "8.12.1",
108109
"babel-jest": "29.7.0",
109-
"chromedriver": "128.0.1",
110-
"eslint": "8.56.0",
111-
"html-webpack-plugin": "5.6.0",
110+
"chromedriver": "130.0.4",
111+
"eslint": "8.57.1",
112+
"html-webpack-plugin": "5.6.3",
112113
"jest": "29.7.0",
113114
"jest-canvas-mock": "2.5.2",
114115
"jest-environment-jsdom": "29.7.0",
@@ -120,8 +121,8 @@
120121
"react-dev-utils": "12.0.1",
121122
"redux-logger": "3.0.6",
122123
"redux-mock-store": "1.5.4",
123-
"selenium-webdriver": "4.24.0",
124-
"start-server-and-test": "2.0.5",
124+
"selenium-webdriver": "4.26.0",
125+
"start-server-and-test": "2.0.8",
125126
"ts-jest": "29.2.5"
126127
},
127128
"jestSonar": {

sonar-project.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ sonar.projectKey=microsoftgraph_microsoft-graph-explorer-v4
22
sonar.organization=microsoftgraph2
33
sonar.projectName=microsoft-graph-explorer-v4
44
// x-release-please-start-version
5-
sonar.projectVersion=10.4.1
5+
sonar.projectVersion=10.5.0
66
// x-release-please-end
77
sonar.host.url=https://sonarcloud.io
88

src/app/middleware/localStorageMiddleware.ts

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -7,50 +7,51 @@ import { CURRENT_THEME } from '../services/graph-constants';
77
import { getUniquePaths } from '../services/reducers/collections-reducer.util';
88
import {
99
CHANGE_THEME_SUCCESS, COLLECTION_CREATE_SUCCESS,
10-
RESOURCEPATHS_ADD_SUCCESS, RESOURCEPATHS_DELETE_SUCCESS, SAMPLES_FETCH_SUCCESS
10+
RESOURCEPATHS_ADD_SUCCESS, RESOURCEPATHS_DELETE_SUCCESS,
11+
SAMPLES_FETCH_SUCCESS
1112
} from '../services/redux-constants';
1213
import { saveToLocalStorage } from '../utils/local-storage';
1314

1415
const localStorageMiddleware: Middleware<{}, any, Dispatch<UnknownAction>> = () => (next) => async (value) => {
1516
const action = value as AppAction;
1617
switch (action.type) {
17-
case CHANGE_THEME_SUCCESS:
18-
saveToLocalStorage(CURRENT_THEME, action.payload);
19-
break;
20-
21-
case SAMPLES_FETCH_SUCCESS:
22-
samplesCache.saveSamples(action.payload);
23-
break;
24-
25-
case RESOURCEPATHS_ADD_SUCCESS: {
26-
const collections = await collectionsCache.read();
27-
const item = collections.find(k => k.isDefault)!;
28-
item.paths = getUniquePaths(item.paths, action.payload as ResourcePath[]);
29-
await collectionsCache.update(item.id, item);
30-
break;
31-
}
32-
33-
case RESOURCEPATHS_DELETE_SUCCESS: {
34-
const paths = action.payload as ResourcePath[];
35-
const collections = await collectionsCache.read();
36-
const collection = collections.find(k => k.isDefault)!;
37-
paths.forEach((path: ResourcePath) => {
38-
const index = collection.paths.findIndex(k => k.key === path.key);
39-
if (index > -1) {
40-
collection.paths.splice(index, 1);
41-
}
42-
})
43-
await collectionsCache.update(collection.id, collection);
44-
break;
45-
}
46-
47-
case COLLECTION_CREATE_SUCCESS: {
48-
await collectionsCache.create(action.payload as Collection);
49-
break;
50-
}
51-
52-
default:
53-
break;
18+
case CHANGE_THEME_SUCCESS:
19+
saveToLocalStorage(CURRENT_THEME, action.payload);
20+
break;
21+
22+
case SAMPLES_FETCH_SUCCESS:
23+
samplesCache.saveSamples(action.payload);
24+
break;
25+
26+
case RESOURCEPATHS_ADD_SUCCESS: {
27+
const collections = await collectionsCache.read();
28+
const item = collections.find(k => k.isDefault)!;
29+
item.paths = getUniquePaths(item.paths, action.payload as ResourcePath[]);
30+
await collectionsCache.update(item.id, item);
31+
break;
32+
}
33+
34+
case RESOURCEPATHS_DELETE_SUCCESS: {
35+
const paths = action.payload as ResourcePath[];
36+
const collections = await collectionsCache.read();
37+
const collection = collections.find(k => k.isDefault)!;
38+
paths.forEach((path: ResourcePath) => {
39+
const index = collection.paths.findIndex(k => k.key === path.key);
40+
if (index > -1) {
41+
collection.paths.splice(index, 1);
42+
}
43+
})
44+
await collectionsCache.update(collection.id, collection);
45+
break;
46+
}
47+
48+
case COLLECTION_CREATE_SUCCESS: {
49+
await collectionsCache.create(action.payload as Collection);
50+
break;
51+
}
52+
53+
default:
54+
break;
5455
}
5556
return next(action);
5657
}

src/app/middleware/telemetryMiddleware.ts

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -23,49 +23,49 @@ const telemetryMiddleware: Middleware<{}, any, Dispatch<UnknownAction>> = (store
2323
const state: ApplicationState = store.getState();
2424
const action = value as AppAction;
2525
switch (action.type) {
26-
case GET_SNIPPET_ERROR: {
27-
trackException(
28-
componentNames.GET_SNIPPET_ACTION,
29-
state.sampleQuery,
30-
action.payload.error,
31-
{
32-
Language: action.payload.language
33-
}
34-
);
35-
break;
36-
}
37-
case FETCH_SCOPES_ERROR: {
38-
trackException(
39-
componentNames.FETCH_PERMISSIONS_ACTION,
40-
state.sampleQuery,
41-
action.payload.error,
42-
{}
43-
);
44-
break;
45-
}
46-
case SAMPLES_FETCH_ERROR: {
47-
trackException(
48-
componentNames.FETCH_SAMPLES_ACTION,
49-
state.sampleQuery,
50-
action.payload,
51-
{}
52-
);
53-
break;
54-
}
55-
case RESOURCEPATHS_ADD_SUCCESS: {
56-
telemetry.trackEvent(eventTypes.LISTITEM_CLICK_EVENT, {
57-
ComponentName: componentNames.ADD_RESOURCE_TO_COLLECTION_LIST_ITEM,
58-
ResourcePath: action.payload[0].url
59-
});
60-
break;
61-
}
62-
case RESOURCEPATHS_DELETE_SUCCESS: {
63-
telemetry.trackEvent(eventTypes.LISTITEM_CLICK_EVENT, {
64-
ComponentName: componentNames.REMOVE_RESOURCE_FROM_COLLECTION_BUTTON,
65-
ResourceCount: action.payload.length
66-
});
67-
break;
68-
}
26+
case GET_SNIPPET_ERROR: {
27+
trackException(
28+
componentNames.GET_SNIPPET_ACTION,
29+
state.sampleQuery,
30+
action.payload.error,
31+
{
32+
Language: action.payload.language
33+
}
34+
);
35+
break;
36+
}
37+
case FETCH_SCOPES_ERROR: {
38+
trackException(
39+
componentNames.FETCH_PERMISSIONS_ACTION,
40+
state.sampleQuery,
41+
action.payload.error,
42+
{}
43+
);
44+
break;
45+
}
46+
case SAMPLES_FETCH_ERROR: {
47+
trackException(
48+
componentNames.FETCH_SAMPLES_ACTION,
49+
state.sampleQuery,
50+
action.payload,
51+
{}
52+
);
53+
break;
54+
}
55+
case RESOURCEPATHS_ADD_SUCCESS: {
56+
telemetry.trackEvent(eventTypes.LISTITEM_CLICK_EVENT, {
57+
ComponentName: componentNames.ADD_RESOURCE_TO_COLLECTION_LIST_ITEM,
58+
ResourcePath: action.payload[0].url
59+
});
60+
break;
61+
}
62+
case RESOURCEPATHS_DELETE_SUCCESS: {
63+
telemetry.trackEvent(eventTypes.LISTITEM_CLICK_EVENT, {
64+
ComponentName: componentNames.REMOVE_RESOURCE_FROM_COLLECTION_BUTTON,
65+
ResourceCount: action.payload.length
66+
});
67+
break;
68+
}
6969
}
7070
return next(action);
7171
};

0 commit comments

Comments
 (0)