Skip to content

Commit 5a68dbb

Browse files
tnorlinghectormmg
andauthored
Fix type resolution when using moduleResolution node16 (#7284)
Type resolution is broken for node16 resolution type due to several issues, this PR: - Updates all relative imports to include .js file extension, as required by node16 resolution - Includes type declaration files from lib folder in package publish - Adds package.json file to `lib` folder to indicate contents are commonjs - Updates package exports field to point to the appropriate type declaration files for ESM or CJS - Adds browser and node subpaths to msal-common export to separate node-only and browser-only features Fixes #6781 #6487 #6269 --------- Co-authored-by: Hector Morales <[email protected]>
1 parent 330e807 commit 5a68dbb

File tree

275 files changed

+6906
-17069
lines changed

Some content is hidden

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

275 files changed

+6906
-17069
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "Fix type resolution when using moduleResolution node16",
4+
"packageName": "@azure/msal-browser",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "Fix type resolution when using moduleResolution node16",
4+
"packageName": "@azure/msal-common",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "Fix type resolution when using moduleResolution node16",
4+
"packageName": "@azure/msal-node",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "Fix type resolution when using moduleResolution node16",
4+
"packageName": "@azure/msal-node-extensions",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "Fix type resolution when using moduleResolution node16",
4+
"packageName": "@azure/msal-react",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}

extensions/msal-node-extensions/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# Generated files
55
build
66
dist
7+
lib
78

89
# Logs
910
test/test-logs

extensions/msal-node-extensions/package.json

+14-7
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,20 @@
66
"url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
77
},
88
"license": "MIT",
9+
"type": "module",
910
"module": "dist/index.mjs",
1011
"types": "dist/index.d.ts",
12+
"main": "lib/msal-node-extensions.cjs",
1113
"exports": {
1214
".": {
13-
"types": "./dist/index.d.ts",
14-
"module": "./dist/index.mjs",
15-
"import": "./dist/index.mjs",
16-
"require": "./dist/index.cjs",
17-
"default": "./dist/index.mjs"
15+
"import": {
16+
"types": "./dist/index.d.ts",
17+
"default": "./dist/index.mjs"
18+
},
19+
"require": {
20+
"types": "./lib/types/index.d.ts",
21+
"default": "./lib/msal-node-extensions.cjs"
22+
}
1823
},
1924
"./package.json": "./package.json"
2025
},
@@ -28,15 +33,16 @@
2833
],
2934
"files": [
3035
"dist",
31-
"bin"
36+
"bin",
37+
"lib"
3238
],
3339
"engines": {
3440
"node": ">=16"
3541
},
3642
"scripts": {
3743
"compile": "node-gyp rebuild",
3844
"install": "exit 0",
39-
"clean": "shx rm -rf dist bin",
45+
"clean": "shx rm -rf dist bin lib",
4046
"build": "npm run clean && rollup -c --strictDeprecations --bundleConfigAsCjs && node ./scripts/buildBinaries.cjs",
4147
"build:all": "cd ../.. && npm run build --workspace=@azure/msal-common --workspace=@azure/msal-node-extensions",
4248
"test": "jest",
@@ -71,6 +77,7 @@
7177
"jest": "^29.5.0",
7278
"node-addon-api": "^6.1.0",
7379
"rollup": "^3.20.2",
80+
"rollup-msal": "file:../../shared-configs/rollup-msal",
7481
"shx": "^0.3.4",
7582
"ts-jest": "^29.1.0",
7683
"ts-jest-mock-import-meta": "^1.1.0",

extensions/msal-node-extensions/rollup.config.js

+7-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import { nodeResolve } from "@rollup/plugin-node-resolve";
77
import typescript from "@rollup/plugin-typescript";
88
import pkg from "./package.json";
9+
import { createPackageJson } from "rollup-msal";
910

1011
const libraryHeader = `/*! ${pkg.name} v${pkg.version} ${new Date().toISOString().split("T")[0]} */`;
1112
const useStrictHeader = "'use strict';";
@@ -16,11 +17,9 @@ export default [
1617
// for cjs build
1718
input: "src/index.ts",
1819
output: {
19-
dir: "dist",
20+
dir: "lib",
2021
format: "cjs",
21-
preserveModules: true,
22-
preserveModulesRoot: "src",
23-
entryFileNames: "[name].cjs",
22+
entryFileNames: "msal-node-extensions.cjs",
2423
banner: fileHeader,
2524
sourcemap: true
2625
},
@@ -36,11 +35,13 @@ export default [
3635
plugins: [
3736
typescript({
3837
typescript: require("typescript"),
39-
tsconfig: "tsconfig.build.json"
38+
tsconfig: "tsconfig.build.json",
39+
compilerOptions: { outDir: "lib/types" }
4040
}),
4141
nodeResolve({
4242
preferBuiltins: true
43-
})
43+
}),
44+
createPackageJson({libPath: __dirname})
4445
]
4546
},
4647
{

extensions/msal-node-extensions/src/broker/NativeBrokerPlugin.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
PromptValue,
2424
ServerError,
2525
ServerTelemetryManager,
26-
} from "@azure/msal-common";
26+
} from "@azure/msal-common/node";
2727
import {
2828
msalNodeRuntime,
2929
Account,
@@ -36,9 +36,9 @@ import {
3636
SignOutResult,
3737
LogLevel as MsalRuntimeLogLevel,
3838
} from "@azure/msal-node-runtime";
39-
import { ErrorCodes } from "../utils/Constants";
40-
import { NativeAuthError } from "../error/NativeAuthError";
41-
import { version, name } from "../packageMetadata";
39+
import { ErrorCodes } from "../utils/Constants.js";
40+
import { NativeAuthError } from "../error/NativeAuthError.js";
41+
import { version, name } from "../packageMetadata.js";
4242

4343
export class NativeBrokerPlugin implements INativeBrokerPlugin {
4444
private logger: Logger;

extensions/msal-node-extensions/src/error/NativeAuthError.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License.
44
*/
55

6-
import { AuthError } from "@azure/msal-common";
6+
import { AuthError } from "@azure/msal-common/node";
77

88
export class NativeAuthError extends AuthError {
99
public statusCode: number;

extensions/msal-node-extensions/src/index.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
* Licensed under the MIT License.
44
*/
55

6-
export { PersistenceCachePlugin } from "./persistence/PersistenceCachePlugin";
7-
export { FilePersistence } from "./persistence/FilePersistence";
8-
export { FilePersistenceWithDataProtection } from "./persistence/FilePersistenceWithDataProtection";
9-
export { DataProtectionScope } from "./persistence/DataProtectionScope";
10-
export { KeychainPersistence } from "./persistence/KeychainPersistence";
11-
export { LibSecretPersistence } from "./persistence/LibSecretPersistence";
12-
export { IPersistence } from "./persistence/IPersistence";
13-
export { CrossPlatformLockOptions } from "./lock/CrossPlatformLockOptions";
14-
export { PersistenceCreator } from "./persistence/PersistenceCreator";
15-
export { IPersistenceConfiguration } from "./persistence/IPersistenceConfiguration";
16-
export { Environment } from "./utils/Environment";
17-
export { NativeBrokerPlugin } from "./broker/NativeBrokerPlugin";
6+
export { PersistenceCachePlugin } from "./persistence/PersistenceCachePlugin.js";
7+
export { FilePersistence } from "./persistence/FilePersistence.js";
8+
export { FilePersistenceWithDataProtection } from "./persistence/FilePersistenceWithDataProtection.js";
9+
export { DataProtectionScope } from "./persistence/DataProtectionScope.js";
10+
export { KeychainPersistence } from "./persistence/KeychainPersistence.js";
11+
export { LibSecretPersistence } from "./persistence/LibSecretPersistence.js";
12+
export { IPersistence } from "./persistence/IPersistence.js";
13+
export { CrossPlatformLockOptions } from "./lock/CrossPlatformLockOptions.js";
14+
export { PersistenceCreator } from "./persistence/PersistenceCreator.js";
15+
export { IPersistenceConfiguration } from "./persistence/IPersistenceConfiguration.js";
16+
export { Environment } from "./utils/Environment.js";
17+
export { NativeBrokerPlugin } from "./broker/NativeBrokerPlugin.js";

extensions/msal-node-extensions/src/lock/CrossPlatformLock.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
import { promises as fs } from "fs";
77
import { pid } from "process";
8-
import { CrossPlatformLockOptions } from "./CrossPlatformLockOptions";
9-
import { Constants } from "../utils/Constants";
10-
import { PersistenceError } from "../error/PersistenceError";
11-
import { Logger } from "@azure/msal-common";
12-
import { isNodeError } from "../utils/TypeGuards";
8+
import { CrossPlatformLockOptions } from "./CrossPlatformLockOptions.js";
9+
import { Constants } from "../utils/Constants.js";
10+
import { PersistenceError } from "../error/PersistenceError.js";
11+
import { Logger } from "@azure/msal-common/node";
12+
import { isNodeError } from "../utils/TypeGuards.js";
1313

1414
/**
1515
* Cross-process lock that works on all platforms.

extensions/msal-node-extensions/src/persistence/BasePersistence.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
* Licensed under the MIT License.
44
*/
55

6-
import { PersistenceError } from "../error/PersistenceError";
7-
import { Constants } from "../utils/Constants";
8-
import { IPersistence } from "./IPersistence";
6+
import { PersistenceError } from "../error/PersistenceError.js";
7+
import { Constants } from "../utils/Constants.js";
8+
import { IPersistence } from "./IPersistence.js";
99

1010
export abstract class BasePersistence {
1111
public abstract createForPersistenceValidation(): Promise<IPersistence>;

extensions/msal-node-extensions/src/persistence/FilePersistence.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
import { promises as fs } from "fs";
77
import { dirname } from "path";
8-
import { IPersistence } from "./IPersistence";
9-
import { Constants, ErrorCodes } from "../utils/Constants";
10-
import { PersistenceError } from "../error/PersistenceError";
11-
import { Logger, LoggerOptions, LogLevel } from "@azure/msal-common";
12-
import { BasePersistence } from "./BasePersistence";
13-
import { isNodeError } from "../utils/TypeGuards";
8+
import { IPersistence } from "./IPersistence.js";
9+
import { Constants, ErrorCodes } from "../utils/Constants.js";
10+
import { PersistenceError } from "../error/PersistenceError.js";
11+
import { Logger, LoggerOptions, LogLevel } from "@azure/msal-common/node";
12+
import { BasePersistence } from "./BasePersistence.js";
13+
import { isNodeError } from "../utils/TypeGuards.js";
1414

1515
/**
1616
* Reads and writes data to file specified by file location. File contents are not

extensions/msal-node-extensions/src/persistence/FilePersistenceWithDataProtection.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
* Licensed under the MIT License.
44
*/
55

6-
import { IPersistence } from "./IPersistence";
7-
import { FilePersistence } from "./FilePersistence";
8-
import { PersistenceError } from "../error/PersistenceError";
9-
import { Dpapi } from "../Dpapi";
10-
import { DataProtectionScope } from "./DataProtectionScope";
11-
import { Logger, LoggerOptions } from "@azure/msal-common";
6+
import { IPersistence } from "./IPersistence.js";
7+
import { FilePersistence } from "./FilePersistence.js";
8+
import { PersistenceError } from "../error/PersistenceError.js";
9+
import { Dpapi } from "../Dpapi.js";
10+
import { DataProtectionScope } from "./DataProtectionScope.js";
11+
import { Logger, LoggerOptions } from "@azure/msal-common/node";
1212
import { dirname } from "path";
13-
import { BasePersistence } from "./BasePersistence";
14-
import { isNodeError } from "../utils/TypeGuards";
13+
import { BasePersistence } from "./BasePersistence.js";
14+
import { isNodeError } from "../utils/TypeGuards.js";
1515

1616
/**
1717
* Uses CryptProtectData and CryptUnprotectData on Windows to encrypt and decrypt file contents.

extensions/msal-node-extensions/src/persistence/IPersistence.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License.
44
*/
55

6-
import { Logger } from "@azure/msal-common";
6+
import { Logger } from "@azure/msal-common/node";
77

88
export interface IPersistence {
99
save(contents: string): Promise<void>;

extensions/msal-node-extensions/src/persistence/IPersistenceConfiguration.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
* Licensed under the MIT License.
44
*/
55

6-
import type { LoggerOptions } from "@azure/msal-common";
6+
import type { LoggerOptions } from "@azure/msal-common/node";
77

8-
import { DataProtectionScope } from "./DataProtectionScope";
8+
import { DataProtectionScope } from "./DataProtectionScope.js";
99

1010
export interface IPersistenceConfiguration {
1111
cachePath?: string;

extensions/msal-node-extensions/src/persistence/KeychainPersistence.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
*/
55

66
import keytar from "keytar";
7-
import { FilePersistence } from "./FilePersistence";
8-
import { IPersistence } from "./IPersistence";
9-
import { PersistenceError } from "../error/PersistenceError";
10-
import { Logger, LoggerOptions } from "@azure/msal-common";
7+
import { FilePersistence } from "./FilePersistence.js";
8+
import { IPersistence } from "./IPersistence.js";
9+
import { PersistenceError } from "../error/PersistenceError.js";
10+
import { Logger, LoggerOptions } from "@azure/msal-common/node";
1111
import { dirname } from "path";
12-
import { BasePersistence } from "./BasePersistence";
13-
import { isNodeError } from "../utils/TypeGuards";
12+
import { BasePersistence } from "./BasePersistence.js";
13+
import { isNodeError } from "../utils/TypeGuards.js";
1414

1515
/**
1616
* Uses reads and writes passwords to macOS keychain

extensions/msal-node-extensions/src/persistence/LibSecretPersistence.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
*/
55

66
import keytar from "keytar";
7-
import { FilePersistence } from "./FilePersistence";
8-
import { IPersistence } from "./IPersistence";
9-
import { PersistenceError } from "../error/PersistenceError";
10-
import { Logger, LoggerOptions } from "@azure/msal-common";
7+
import { FilePersistence } from "./FilePersistence.js";
8+
import { IPersistence } from "./IPersistence.js";
9+
import { PersistenceError } from "../error/PersistenceError.js";
10+
import { Logger, LoggerOptions } from "@azure/msal-common/node";
1111
import { dirname } from "path";
12-
import { BasePersistence } from "./BasePersistence";
13-
import { isNodeError } from "../utils/TypeGuards";
12+
import { BasePersistence } from "./BasePersistence.js";
13+
import { isNodeError } from "../utils/TypeGuards.js";
1414

1515
/**
1616
* Uses reads and writes passwords to Secret Service API/libsecret. Requires libsecret

extensions/msal-node-extensions/src/persistence/PersistenceCachePlugin.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@
33
* Licensed under the MIT License.
44
*/
55

6-
import { IPersistence } from "./IPersistence";
7-
import { CrossPlatformLock } from "../lock/CrossPlatformLock";
8-
import { CrossPlatformLockOptions } from "../lock/CrossPlatformLockOptions";
6+
import { IPersistence } from "./IPersistence.js";
7+
import { CrossPlatformLock } from "../lock/CrossPlatformLock.js";
8+
import { CrossPlatformLockOptions } from "../lock/CrossPlatformLockOptions.js";
99
import { pid } from "process";
10-
import { TokenCacheContext, ICachePlugin, Logger } from "@azure/msal-common";
10+
import {
11+
TokenCacheContext,
12+
ICachePlugin,
13+
Logger,
14+
} from "@azure/msal-common/node";
1115

1216
/**
1317
* MSAL cache plugin which enables callers to write the MSAL cache to disk on Windows,

extensions/msal-node-extensions/src/persistence/PersistenceCreator.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
* Licensed under the MIT License.
44
*/
55

6-
import { FilePersistenceWithDataProtection } from "./FilePersistenceWithDataProtection";
7-
import { LibSecretPersistence } from "./LibSecretPersistence";
8-
import { KeychainPersistence } from "./KeychainPersistence";
9-
import { DataProtectionScope } from "./DataProtectionScope";
10-
import { Environment } from "../utils/Environment";
11-
import { IPersistence } from "./IPersistence";
12-
import { FilePersistence } from "./FilePersistence";
13-
import { PersistenceError } from "../error/PersistenceError";
14-
import { IPersistenceConfiguration } from "./IPersistenceConfiguration";
6+
import { FilePersistenceWithDataProtection } from "./FilePersistenceWithDataProtection.js";
7+
import { LibSecretPersistence } from "./LibSecretPersistence.js";
8+
import { KeychainPersistence } from "./KeychainPersistence.js";
9+
import { DataProtectionScope } from "./DataProtectionScope.js";
10+
import { Environment } from "../utils/Environment.js";
11+
import { IPersistence } from "./IPersistence.js";
12+
import { FilePersistence } from "./FilePersistence.js";
13+
import { PersistenceError } from "../error/PersistenceError.js";
14+
import { IPersistenceConfiguration } from "./IPersistenceConfiguration.js";
1515

1616
export class PersistenceCreator {
1717
static async createPersistence(

extensions/msal-node-extensions/src/utils/Environment.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*/
55

66
import path from "path";
7-
import { Constants, Platform } from "./Constants";
8-
import { PersistenceError } from "../error/PersistenceError";
7+
import { Constants, Platform } from "./Constants.js";
8+
import { PersistenceError } from "../error/PersistenceError.js";
99

1010
export class Environment {
1111
static get homeEnvVar(): string {

extensions/msal-node-extensions/test/performance-test/CachePerformanceTest.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ async function runMultipleProcesses(
5555
let count = 0;
5656
for (let i = 0; i < numProcesses; i++) {
5757
const proc = fork(
58-
"./test/performance-test/LockAndWriteToStorageScript.js",
58+
"./test/performance-test/LockAndWriteToStorageScript.cjs",
5959
options
6060
);
6161
proc.on("exit", (code) => {

0 commit comments

Comments
 (0)