diff --git a/package.json b/package.json index e2d430ff..8d11e94d 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,48 @@ { "name": "@sqlitecloud/drivers", - "version": "1.0.837", + "version": "1.0.870", "description": "SQLiteCloud drivers for Typescript/Javascript in edge, web and node clients", "main": "./lib/index.js", + "module": "./lib/esm/index.js", "types": "./lib/index.d.ts", + "unpkg": "./lib/sqlitecloud.drivers.js", + "jsdelivr": "./lib/sqlitecloud.drivers.js", + "exports": { + ".": { + "types": "./lib/esm/index.d.ts", + "import": "./lib/esm/index.js", + "require": "./lib/index.js", + "default": "./lib/index.js" + }, + "./browser": { + "types": "./lib/esm/index.d.ts", + "import": "./lib/esm/index.js", + "require": "./lib/index.js", + "default": "./lib/esm/index.js" + }, + "./umd": { + "types": "./lib/esm/index.d.ts", + "default": "./lib/sqlitecloud.drivers.js" + }, + "./umd-dev": { + "types": "./lib/esm/index.d.ts", + "default": "./lib/sqlitecloud.drivers.dev.js" + }, + "./lib/*.js": "./lib/*.js", + "./lib/*.d.ts": "./lib/*.d.ts", + "./lib/*": { + "types": "./lib/*.d.ts", + "require": "./lib/*.js", + "default": "./lib/*.js" + }, + "./package.json": "./package.json" + }, "files": [ "lib/**/*" ], "scripts": { "test": "jest --silent --coverage", - "build": "rm -rf ./lib/ && tsc --project tsconfig.build.json && npx webpack", + "build": "rm -rf ./lib/ && tsc --project tsconfig.build.json && node scripts/write-esm-wrapper.cjs && npx webpack", "publish": "npm run build && npm publish --access public", "prettier": "prettier --write 'src/**/*'", "typedoc": "rm -rf ./docs/ && typedoc --out docs && typedoc --plugin typedoc-plugin-markdown --out docs/markdown", @@ -107,6 +140,7 @@ "buffer": "@craftzdog/react-native-buffer" }, "browser": { + "./lib/drivers/connection-tls.js": false, "tls": false } } \ No newline at end of file diff --git a/scripts/write-esm-wrapper.cjs b/scripts/write-esm-wrapper.cjs new file mode 100644 index 00000000..9b344e8b --- /dev/null +++ b/scripts/write-esm-wrapper.cjs @@ -0,0 +1,38 @@ +const fs = require('fs') +const path = require('path') + +const esmDir = path.join(__dirname, '..', 'lib', 'esm') + +fs.mkdirSync(esmDir, { recursive: true }) + +fs.writeFileSync(path.join(esmDir, 'package.json'), `${JSON.stringify({ type: 'module' }, null, 2)}\n`) + +fs.writeFileSync( + path.join(esmDir, 'index.js'), + `import sqlitecloud from '../index.js' + +export const Database = sqlitecloud.Database +export const SQLiteCloudConnection = sqlitecloud.SQLiteCloudConnection +export const SQLiteCloudError = sqlitecloud.SQLiteCloudError +export const SQLiteCloudRowset = sqlitecloud.SQLiteCloudRowset +export const SQLiteCloudRow = sqlitecloud.SQLiteCloudRow +export const parseconnectionstring = sqlitecloud.parseconnectionstring +export const validateConfiguration = sqlitecloud.validateConfiguration +export const getInitializationCommands = sqlitecloud.getInitializationCommands +export const sanitizeSQLiteIdentifier = sqlitecloud.sanitizeSQLiteIdentifier +export const parseSafeIntegerMode = sqlitecloud.parseSafeIntegerMode +export const encodeBigIntMarkers = sqlitecloud.encodeBigIntMarkers +export const decodeBigIntMarkers = sqlitecloud.decodeBigIntMarkers +export const protocol = sqlitecloud.protocol + +export default sqlitecloud +` +) + +fs.writeFileSync( + path.join(esmDir, 'index.d.ts'), + `export * from '../index' +import * as sqlitecloud from '../index' +export default sqlitecloud +` +)