diff --git a/CHANGELOG.md b/CHANGELOG.md index ef73e92..dbb1aa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- Resolves "Cannot use import statement outside of module" when building with SSR [#20](https://github.com/bugsnag/cuid/pull/20) + ## [3.2.0] - 2025-02-18 ### Changed diff --git a/index.esm.js b/index.esm.mjs similarity index 83% rename from index.esm.js rename to index.esm.mjs index efa197b..eca112d 100644 --- a/index.esm.js +++ b/index.esm.mjs @@ -11,8 +11,8 @@ */ import fingerprint from '#fingerprint'; -import createCuid from './lib/cuid'; -import isCuid from './lib/is-cuid'; +import createCuid from './lib/cuid.mjs'; +import isCuid from './lib/is-cuid.mjs'; const cuid = createCuid(fingerprint); diff --git a/index.js b/index.mjs similarity index 78% rename from index.js rename to index.mjs index 4e16a47..013cd14 100644 --- a/index.js +++ b/index.mjs @@ -10,8 +10,8 @@ * MIT License */ -import fingerprint from './lib/fingerprint'; -import createCuid from './lib/cuid'; +import fingerprint from './lib/fingerprint.mjs'; +import createCuid from './lib/cuid.mjs'; const cuid = createCuid(fingerprint); diff --git a/lib/cuid.js b/lib/cuid.mjs similarity index 96% rename from lib/cuid.js rename to lib/cuid.mjs index 2c539bf..bd64ae3 100644 --- a/lib/cuid.js +++ b/lib/cuid.mjs @@ -10,8 +10,8 @@ * MIT License */ -import isCuid from './is-cuid'; -import pad from './pad'; +import isCuid from './is-cuid.mjs'; +import pad from './pad.mjs'; export default function createCuid (fingerprint) { const blockSize = 4, diff --git a/lib/fingerprint.browser.js b/lib/fingerprint.browser.mjs similarity index 93% rename from lib/fingerprint.browser.js rename to lib/fingerprint.browser.mjs index 6702307..d5f184e 100644 --- a/lib/fingerprint.browser.js +++ b/lib/fingerprint.browser.mjs @@ -1,4 +1,4 @@ -import pad from './pad'; +import pad from './pad.mjs'; var env = typeof window === 'object' ? window : self; var globalCount = 0; diff --git a/lib/fingerprint.js b/lib/fingerprint.mjs similarity index 97% rename from lib/fingerprint.js rename to lib/fingerprint.mjs index 5112538..8ebd9b7 100644 --- a/lib/fingerprint.js +++ b/lib/fingerprint.mjs @@ -1,4 +1,4 @@ -import pad from './pad'; +import pad from './pad.mjs'; import os from 'os'; function getHostname () { diff --git a/lib/fingerprint.react-native.js b/lib/fingerprint.react-native.mjs similarity index 83% rename from lib/fingerprint.react-native.js rename to lib/fingerprint.react-native.mjs index 9668233..53cf3ca 100644 --- a/lib/fingerprint.react-native.js +++ b/lib/fingerprint.react-native.mjs @@ -1,4 +1,4 @@ -import pad from './pad'; +import pad from './pad.mjs'; var globalCount = Object.keys(global); var clientId = pad(globalCount.toString(36), 4); diff --git a/lib/is-cuid.js b/lib/is-cuid.mjs similarity index 100% rename from lib/is-cuid.js rename to lib/is-cuid.mjs diff --git a/lib/pad.js b/lib/pad.mjs similarity index 100% rename from lib/pad.js rename to lib/pad.mjs diff --git a/package.json b/package.json index b2b3d2e..7499ac6 100644 --- a/package.json +++ b/package.json @@ -10,18 +10,20 @@ "types": "cuid.d.ts", "exports": { ".": { - "import": "./index.esm.js", + "import": "./index.esm.mjs", "require": "./dist/index.js" }, "./lib/fingerprint": { - "browser": "./lib/fingerprint.browser.js", - "node": "./lib/fingerprint.js" + "browser": "./lib/fingerprint.browser.mjs", + "node": "./lib/fingerprint.mjs", + "default": "./lib/fingerprint.react-native.mjs" } }, "imports": { "#fingerprint": { - "browser": "./lib/fingerprint.browser.js", - "node": "./lib/fingerprint.js" + "browser": "./lib/fingerprint.browser.mjs", + "node": "./lib/fingerprint.mjs", + "default": "./lib/fingerprint.react-native.mjs" } }, "browser": { @@ -45,7 +47,7 @@ "lib", "dist", "cuid.d.ts", - "index.esm.js" + "index.esm.mjs" ], "license": "MIT", "devDependencies": { @@ -65,7 +67,7 @@ "scripts": { "prebuild": "rm -rf dist", "build": "rollup -c", - "lint": "eslint index.js lib test", + "lint": "eslint index.mjs index.esm.mjs lib test", "test": "npm run lint && npm run test:server && npm run test:browser", "test:browser": "karma start test/karma.conf.js", "test:server": "jasmine test/**/*.js", diff --git a/rollup.config.mjs b/rollup.config.mjs index efc0c0d..a78b7ac 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -3,6 +3,7 @@ const sharedOutput = { dir: 'dist', preserveModules: true, exports: 'default', + entryFileNames: '[name].js', generatedCode: { preset: 'es2015' } @@ -11,18 +12,18 @@ const sharedOutput = { export default [ { external: ['os'], - input: 'index.js', + input: 'index.mjs', output: sharedOutput }, { - input: 'lib/fingerprint.browser.js', + input: 'lib/fingerprint.browser.mjs', output: { ...sharedOutput, dir: 'dist/lib' } }, { - input: 'lib/fingerprint.react-native.js', + input: 'lib/fingerprint.react-native.mjs', output: { ...sharedOutput, dir: 'dist/lib'