diff --git a/package.json b/package.json index b741d71..e58fcea 100644 --- a/package.json +++ b/package.json @@ -28,14 +28,13 @@ "bugs": { "url": "https://github.com/agentlab/sparql-jsld-client/issues" }, - "main": "es/index.mjs", - "module": "es/index.mjs", - "typings": "es/index.mjs.d.ts", + "main": "dist/index.cjs.js", + "module": "dist/index.esm.js", + "typings": "dist/index.d.ts", "files": [ - "es", + "dist", "src" ], - "type": "module", "engines": { "node": ">=22" }, @@ -87,6 +86,8 @@ "devDependencies": { "@eslint/js": "^9.8.0", "@jest/globals": "^29.7.0", + "@rollup/plugin-babel": "^6.0.4", + "@rollup/plugin-commonjs": "^26.0.1", "@rollup/plugin-json": "6.1.0", "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "^0.4.4", @@ -133,4 +134,4 @@ "fs": false, "path": false } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdb69ce..9f08189 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,6 +66,12 @@ importers: '@jest/globals': specifier: ^29.7.0 version: 29.7.0 + '@rollup/plugin-babel': + specifier: ^6.0.4 + version: 6.0.4(@babel/core@7.24.9)(@types/babel__core@7.20.5)(rollup@4.19.1) + '@rollup/plugin-commonjs': + specifier: ^26.0.1 + version: 26.0.1(rollup@4.19.1) '@rollup/plugin-json': specifier: 6.1.0 version: 6.1.0(rollup@4.19.1) @@ -124,8 +130,8 @@ importers: specifier: ^15.8.0 version: 15.8.0 husky: - specifier: ^9.1.3 - version: 9.1.4 + specifier: ^8.0.0 + version: 8.0.3 jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.0.0)(ts-node@10.9.2(@types/node@22.0.0)(typescript@5.5.4)) @@ -660,6 +666,28 @@ packages: '@rdfjs/types@1.1.0': resolution: {integrity: sha512-5zm8bN2/CC634dTcn/0AhTRLaQRjXDZs3QfcAsQKNturHT7XVWcKy/8p3P5gXl+YkZTAmy7T5M/LyiT/jbkENw==} + '@rollup/plugin-babel@6.0.4': + resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + rollup: + optional: true + + '@rollup/plugin-commonjs@26.0.1': + resolution: {integrity: sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-json@6.1.0': resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} engines: {node: '>=14.0.0'} @@ -1206,6 +1234,9 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1684,6 +1715,10 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@11.0.0: resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} engines: {node: 20 || >=22} @@ -1763,9 +1798,9 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - husky@9.1.4: - resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} - engines: {node: '>=18'} + husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} hasBin: true ieee754@1.2.1: @@ -1876,6 +1911,9 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -1940,6 +1978,9 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.0.1: resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} engines: {node: 20 || >=22} @@ -2203,6 +2244,9 @@ packages: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.0.0: resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} engines: {node: 20 || >=22} @@ -2416,6 +2460,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} @@ -3546,6 +3594,28 @@ snapshots: dependencies: '@types/node': 22.0.0 + '@rollup/plugin-babel@6.0.4(@babel/core@7.24.9)(@types/babel__core@7.20.5)(rollup@4.19.1)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-imports': 7.24.7 + '@rollup/pluginutils': 5.1.0(rollup@4.19.1) + optionalDependencies: + '@types/babel__core': 7.20.5 + rollup: 4.19.1 + transitivePeerDependencies: + - supports-color + + '@rollup/plugin-commonjs@26.0.1(rollup@4.19.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.19.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 10.4.5 + is-reference: 1.2.1 + magic-string: 0.30.11 + optionalDependencies: + rollup: 4.19.1 + '@rollup/plugin-json@6.1.0(rollup@4.19.1)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.19.1) @@ -4112,6 +4182,8 @@ snapshots: commander@2.20.3: {} + commondir@1.0.1: {} + concat-map@0.0.1: {} convert-source-map@2.0.0: {} @@ -4668,6 +4740,15 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.4.5: + dependencies: + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + glob@11.0.0: dependencies: foreground-child: 3.2.1 @@ -4742,7 +4823,7 @@ snapshots: human-signals@5.0.0: {} - husky@9.1.4: {} + husky@8.0.3: {} ieee754@1.2.1: {} @@ -4835,6 +4916,10 @@ snapshots: is-path-inside@3.0.3: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.5 + is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -4911,6 +4996,12 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jackspeak@4.0.1: dependencies: '@isaacs/cliui': 8.0.2 @@ -5362,6 +5453,8 @@ snapshots: strip-ansi: 7.1.0 wrap-ansi: 9.0.0 + lru-cache@10.4.3: {} + lru-cache@11.0.0: {} lru-cache@5.1.1: @@ -5557,6 +5650,11 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + path-scurry@2.0.0: dependencies: lru-cache: 11.0.0 diff --git a/rollup.config.mjs b/rollup.config.mjs index 4d6e745..a2c993a 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -1,15 +1,25 @@ // //https://gist.github.com/aleclarson/9900ed2a9a3119d865286b218e14d226 // -import { dts } from 'rollup-plugin-dts' -import { default as esbuild } from 'rollup-plugin-esbuild' +//import { dts } from 'rollup-plugin-dts' +//import { default as esbuild } from 'rollup-plugin-esbuild' -import packageJson from "./package.json" with { type: "json" }; +import babel from '@rollup/plugin-babel'; +import peerDepsExternal from 'rollup-plugin-peer-deps-external'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import typescript from '@rollup/plugin-typescript'; +import json from '@rollup/plugin-json'; +import dts from 'rollup-plugin-dts' + +//import { terser } from 'rollup-plugin-terser'; + +//import packageJson from "./package.json" with { type: "json" }; //console.log({ packageJson }); -const name = packageJson.main.replace(/\.js$/, '') +//const name = packageJson.main.replace(/\.js$/, '') -const bundle = config => ({ +/*const bundle = config => ({ ...config, input: 'src/index.ts', external: id => !/^[./]/.test(id), @@ -19,11 +29,6 @@ export default [ bundle({ plugins: [esbuild()], output: [ - /*{ - file: `${name}.js`, - format: 'cjs', - sourcemap: true, - },*/ { file: `${name}`, format: 'es', @@ -38,4 +43,93 @@ export default [ format: 'es', }, }), -]; +];*/ + +/*export default { + preserveModules: true, + input: 'src/index.ts', + output: [ + { + dir: './lib', + format: 'cjs', + sourcemap: true, + }, + { + dir: './es', + format: 'esm', + sourcemap: true, + }, + ], + plugins: [ + babel({ + exclude: 'node_modules/**', + }), + peerDepsExternal(), + json(), + resolve(), + commonjs(), + typescript({ + tsconfig: './tsconfig-build.json', + declaration: true, + //outDir: './es', + }), + //terser(), // minifies generated bundles + ], +};*/ + +const outputPath = 'dist/index' +const commonInputOptions = { + input: 'src/index.ts', + plugins: [ + babel({ + exclude: 'node_modules/**', + }), + peerDepsExternal(), + json(), + resolve(), + commonjs(), + typescript({ + tsconfig: './tsconfig-build.json', + outDir: './dist', + }) + ] +} + +const config = [ + { + ...commonInputOptions, + output: [ + { + file: `${outputPath}.esm.js`, + //dir: './dist', + format: 'esm', + sourcemap: true, + } + ] + }, + { + ...commonInputOptions, + output: [ + { + file: `${outputPath}.cjs.js`, + //dir: './dist', + format: 'cjs', + sourcemap: true, + } + ] + }, + { + ...commonInputOptions, + plugins: [commonInputOptions.plugins, dts()], + output: [ + { + file: `${outputPath}.d.ts`, + //dir: './dist', + //format: 'esm', + sourcemap: true, + } + ] + } +] + +export default config diff --git a/src/models/MstCollConstr.ts b/src/models/MstCollConstr.ts index 80ee3d3..82f406f 100644 --- a/src/models/MstCollConstr.ts +++ b/src/models/MstCollConstr.ts @@ -28,7 +28,6 @@ import { SparqlClient } from '../SparqlClient'; export const MstJsObject = types.frozen(); export const MstMapOfJsObject = types.map(MstJsObject); -//export interface IJsObject2 extends Instance {} /** * Entity Constraint, part of Collection Constraint (CollConstr) diff --git a/tsconfig-build.json b/tsconfig-build.json index e2da8d4..f6b078f 100644 --- a/tsconfig-build.json +++ b/tsconfig-build.json @@ -2,7 +2,7 @@ // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs "extends": "./tsconfig", "include": ["src"], - "exclude": ["es", "lib", "node_modules", "test"], + "exclude": ["es", "dist", "node_modules", "test"], "compilerOptions": { "module": "es2022", "target": "esnext", diff --git a/tsconfig.json b/tsconfig.json index 9a5448d..b2f8191 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,12 +1,12 @@ { // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs - "include": ["src", "stories", "test"], - "exclude": ["es", "lib", "node_modules"], + "include": ["src", "test"], + "exclude": ["es", "dist", "node_modules"], "compilerOptions": { "module": "ES2022", "target": "esnext", - "lib": ["dom", "esnext"], - "outDir": "./lib", + "lib": ["esnext"], + "outDir": "./", "allowJs": true, "importHelpers": true, // output .d.ts declaration files for consumers @@ -38,6 +38,15 @@ "skipLibCheck": true, // error out if import and file system have a casing mismatch. Recommended by TS "forceConsistentCasingInFileNames": true, - "noEmit": true + "noEmit": true, + //additional + "experimentalDecorators": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "noImplicitAny": true, + "noImplicitThis": true, + "stripInternal": true, + "downlevelIteration": true, + "useDefineForClassFields": true } }