From fa09d03aaf0008b2790656871ca6b2c4be12d14c Mon Sep 17 00:00:00 2001 From: David Worms Date: Wed, 8 Feb 2023 09:46:28 +0100 Subject: [PATCH] fix: support ts node16 resolution in cjs (#354) --- demo/browser/package.json | 7 +++- demo/cjs/package.json | 5 +++ demo/issues-cjs/package.json | 4 ++ demo/issues-esm/package.json | 3 ++ demo/ts-cjs-node16/lib/index.ts | 28 +++++++++++++ .../package.json | 8 +++- .../tsconfig.json | 0 .../CHANGELOG.md | 0 .../lib/stringify-import.ts | 0 .../lib/stringify.ts | 0 .../package.json | 6 +++ .../test/loaders/all.js | 0 .../test/loaders/coffee.js | 0 .../test/loaders/legacy/all.js | 0 .../test/loaders/legacy/coffee.js | 0 .../test/samples.coffee | 0 .../tsconfig.json | 0 .../lib/stringify.ts | 32 --------------- demo/webpack-ts/package.json | 18 +++++---- demo/webpack/package.json | 7 +++- .../dist/cjs/{index.d.ts => index.d.cts} | 0 .../dist/cjs/{stream.d.ts => stream.d.cts} | 0 .../dist/cjs/{sync.d.ts => sync.d.cts} | 0 packages/csv-generate/package.json | 39 +++++++++++++------ .../dist/cjs/{index.d.ts => index.d.cts} | 0 .../dist/cjs/{sync.d.ts => sync.d.cts} | 0 packages/csv-parse/package.json | 28 ++++++++----- .../dist/cjs/{index.d.ts => index.d.cts} | 0 .../dist/cjs/{sync.d.ts => sync.d.cts} | 0 packages/csv-stringify/package.json | 28 ++++++++----- .../dist/cjs/{index.d.ts => index.d.cts} | 0 .../dist/cjs/{sync.d.ts => sync.d.cts} | 0 packages/stream-transform/package.json | 28 ++++++++----- 33 files changed, 160 insertions(+), 81 deletions(-) create mode 100644 demo/ts-cjs-node16/lib/index.ts rename demo/{ts-moduleresolution-node16-cjs => ts-cjs-node16}/package.json (55%) rename demo/{ts-moduleresolution-node16-cjs => ts-cjs-node16}/tsconfig.json (100%) rename demo/{ts-module-node16 => ts-esm-node16}/CHANGELOG.md (100%) rename demo/{ts-module-node16 => ts-esm-node16}/lib/stringify-import.ts (100%) rename demo/{ts-module-node16 => ts-esm-node16}/lib/stringify.ts (100%) rename demo/{ts-module-node16 => ts-esm-node16}/package.json (82%) rename demo/{ts-module-node16 => ts-esm-node16}/test/loaders/all.js (100%) rename demo/{ts-module-node16 => ts-esm-node16}/test/loaders/coffee.js (100%) rename demo/{ts-module-node16 => ts-esm-node16}/test/loaders/legacy/all.js (100%) rename demo/{ts-module-node16 => ts-esm-node16}/test/loaders/legacy/coffee.js (100%) rename demo/{ts-module-node16 => ts-esm-node16}/test/samples.coffee (100%) rename demo/{ts-module-node16 => ts-esm-node16}/tsconfig.json (100%) delete mode 100644 demo/ts-moduleresolution-node16-cjs/lib/stringify.ts rename packages/csv-generate/dist/cjs/{index.d.ts => index.d.cts} (100%) rename packages/csv-generate/dist/cjs/{stream.d.ts => stream.d.cts} (100%) rename packages/csv-generate/dist/cjs/{sync.d.ts => sync.d.cts} (100%) rename packages/csv-parse/dist/cjs/{index.d.ts => index.d.cts} (100%) rename packages/csv-parse/dist/cjs/{sync.d.ts => sync.d.cts} (100%) rename packages/csv-stringify/dist/cjs/{index.d.ts => index.d.cts} (100%) rename packages/csv-stringify/dist/cjs/{sync.d.ts => sync.d.cts} (100%) rename packages/stream-transform/dist/cjs/{index.d.ts => index.d.cts} (100%) rename packages/stream-transform/dist/cjs/{sync.d.ts => sync.d.cts} (100%) diff --git a/demo/browser/package.json b/demo/browser/package.json index 2a12851be..d18abba88 100644 --- a/demo/browser/package.json +++ b/demo/browser/package.json @@ -20,6 +20,11 @@ "start": "node server.js" }, "dependencies": { - "express": "^4.18.2" + "csv": "^6.2.6", + "csv-generate": "^4.2.1", + "csv-parse": "^5.3.4", + "csv-stringify": "^6.2.3", + "express": "^4.18.2", + "stream-transform": "^3.2.1" } } diff --git a/demo/cjs/package.json b/demo/cjs/package.json index 8d63b76ed..458a0a1f9 100644 --- a/demo/cjs/package.json +++ b/demo/cjs/package.json @@ -5,6 +5,11 @@ "license": "MIT", "type": "commonjs", "private": true, + "dependencies": { + "csv": "^6.2.6", + "csv-parse": "^5.3.4", + "csv-stringify": "^6.2.3" + }, "devDependencies": { "@types/node": "^18.8.4", "coffeescript": "^2.7.0", diff --git a/demo/issues-cjs/package.json b/demo/issues-cjs/package.json index 0d914f13a..b2932cd53 100644 --- a/demo/issues-cjs/package.json +++ b/demo/issues-cjs/package.json @@ -4,6 +4,10 @@ "main": "index.js", "license": "MIT", "private": true, + "dependencies": { + "csv-parse": "^5.3.4", + "csv-stringify": "^6.2.3" + }, "devDependencies": { "coffeescript": "^2.7.0", "mocha": "^10.1.0", diff --git a/demo/issues-esm/package.json b/demo/issues-esm/package.json index 8e54972ae..194d8576a 100644 --- a/demo/issues-esm/package.json +++ b/demo/issues-esm/package.json @@ -26,6 +26,9 @@ "test": "mocha 'test/**/*.coffee'" }, "dependencies": { + "csv-generate": "^4.2.1", + "csv-parse": "^5.3.4", + "csv-stringify": "^6.2.3", "desm": "^1.3.0" } } diff --git a/demo/ts-cjs-node16/lib/index.ts b/demo/ts-cjs-node16/lib/index.ts new file mode 100644 index 000000000..dc885b67d --- /dev/null +++ b/demo/ts-cjs-node16/lib/index.ts @@ -0,0 +1,28 @@ + +import assert from 'assert' +import { generate, Generator } from 'csv-generate'; +import { parse, Parser } from 'csv-parse'; +import { transform, Transformer } from 'stream-transform'; +import { stringify, Stringifier } from 'csv-stringify'; + +let chunks: string[] = []; + +// Create the parser +const generator: Generator = generate({length: 2, seed: true}); +const parser: Parser = parse(); +const transformer: Transformer = transform((record) => record); +const stringifier: Stringifier = stringify(); +generator.pipe(parser).pipe(transformer).pipe(stringifier) + .on('data', function(data) { + chunks.push(data.toString()) + }) + .on('end', () => { + assert.strictEqual( + chunks.join(''), + [ + 'OMH,ONKCHhJmjadoA,D,GeACHiN,nnmiN,CGfDKB,NIl,JnnmjadnmiNL', + 'KB,dmiM,fENL,Jn,opEMIkdmiOMFckep,MIj,bgIjadnn,fENLEOMIkbhLDK', + '', + ].join('\n') + ) + }) diff --git a/demo/ts-moduleresolution-node16-cjs/package.json b/demo/ts-cjs-node16/package.json similarity index 55% rename from demo/ts-moduleresolution-node16-cjs/package.json rename to demo/ts-cjs-node16/package.json index bb8f054b3..2f86e4c13 100644 --- a/demo/ts-moduleresolution-node16-cjs/package.json +++ b/demo/ts-cjs-node16/package.json @@ -1,6 +1,12 @@ { "name": "csv-demo-ts-moduleresolution-node16-cjs", "version": "0.2.1", + "dependencies": { + "csv-generate": "^4.2.1", + "csv-parse": "^5.3.4", + "csv-stringify": "^6.2.3", + "stream-transform": "^3.2.1" + }, "main": "index.js", "license": "MIT", "private": true, @@ -8,6 +14,6 @@ "typescript": "^4.9.5" }, "scripts": { - "typecheck": "tsc --noEmit" + "test": "tsc --noEmit" } } diff --git a/demo/ts-moduleresolution-node16-cjs/tsconfig.json b/demo/ts-cjs-node16/tsconfig.json similarity index 100% rename from demo/ts-moduleresolution-node16-cjs/tsconfig.json rename to demo/ts-cjs-node16/tsconfig.json diff --git a/demo/ts-module-node16/CHANGELOG.md b/demo/ts-esm-node16/CHANGELOG.md similarity index 100% rename from demo/ts-module-node16/CHANGELOG.md rename to demo/ts-esm-node16/CHANGELOG.md diff --git a/demo/ts-module-node16/lib/stringify-import.ts b/demo/ts-esm-node16/lib/stringify-import.ts similarity index 100% rename from demo/ts-module-node16/lib/stringify-import.ts rename to demo/ts-esm-node16/lib/stringify-import.ts diff --git a/demo/ts-module-node16/lib/stringify.ts b/demo/ts-esm-node16/lib/stringify.ts similarity index 100% rename from demo/ts-module-node16/lib/stringify.ts rename to demo/ts-esm-node16/lib/stringify.ts diff --git a/demo/ts-module-node16/package.json b/demo/ts-esm-node16/package.json similarity index 82% rename from demo/ts-module-node16/package.json rename to demo/ts-esm-node16/package.json index a0467ce31..86acad28a 100644 --- a/demo/ts-module-node16/package.json +++ b/demo/ts-esm-node16/package.json @@ -5,6 +5,12 @@ "license": "MIT", "type": "module", "private": true, + "dependencies": { + "csv-generate": "^4.2.1", + "csv-parse": "^5.3.4", + "csv-stringify": "^6.2.3", + "stream-transform": "^3.2.1" + }, "devDependencies": { "@types/node": "^18.11.9", "coffeescript": "^2.7.0", diff --git a/demo/ts-module-node16/test/loaders/all.js b/demo/ts-esm-node16/test/loaders/all.js similarity index 100% rename from demo/ts-module-node16/test/loaders/all.js rename to demo/ts-esm-node16/test/loaders/all.js diff --git a/demo/ts-module-node16/test/loaders/coffee.js b/demo/ts-esm-node16/test/loaders/coffee.js similarity index 100% rename from demo/ts-module-node16/test/loaders/coffee.js rename to demo/ts-esm-node16/test/loaders/coffee.js diff --git a/demo/ts-module-node16/test/loaders/legacy/all.js b/demo/ts-esm-node16/test/loaders/legacy/all.js similarity index 100% rename from demo/ts-module-node16/test/loaders/legacy/all.js rename to demo/ts-esm-node16/test/loaders/legacy/all.js diff --git a/demo/ts-module-node16/test/loaders/legacy/coffee.js b/demo/ts-esm-node16/test/loaders/legacy/coffee.js similarity index 100% rename from demo/ts-module-node16/test/loaders/legacy/coffee.js rename to demo/ts-esm-node16/test/loaders/legacy/coffee.js diff --git a/demo/ts-module-node16/test/samples.coffee b/demo/ts-esm-node16/test/samples.coffee similarity index 100% rename from demo/ts-module-node16/test/samples.coffee rename to demo/ts-esm-node16/test/samples.coffee diff --git a/demo/ts-module-node16/tsconfig.json b/demo/ts-esm-node16/tsconfig.json similarity index 100% rename from demo/ts-module-node16/tsconfig.json rename to demo/ts-esm-node16/tsconfig.json diff --git a/demo/ts-moduleresolution-node16-cjs/lib/stringify.ts b/demo/ts-moduleresolution-node16-cjs/lib/stringify.ts deleted file mode 100644 index f4cf1db94..000000000 --- a/demo/ts-moduleresolution-node16-cjs/lib/stringify.ts +++ /dev/null @@ -1,32 +0,0 @@ - -import assert from 'assert' -import { stringify, Stringifier } from 'csv-stringify'; - -let output: string = ''; -// Create the parser -const stringifier: Stringifier = stringify({ - delimiter: ':', - encoding: 'utf8' -}); -// Use the readable stream api to consume records -stringifier.on('readable', function(){ - let record; while ((record = stringifier.read()) !== null) { - output += record - } -}); -// Catch any error -stringifier.on('error', function(err){ - console.error(err.message) -}); -// Test that the parsed records matched what's expected -stringifier.on('end', function(){ - assert.deepStrictEqual( - output, - 'a:b:c\n1:2:3\n' - ) -}); -// Write data to the stream -stringifier.write(["a", "b", "c"]); -stringifier.write([1, 2, 3]); -// Close the readable stream -stringifier.end(); diff --git a/demo/webpack-ts/package.json b/demo/webpack-ts/package.json index 7326b9eb3..35dc04085 100644 --- a/demo/webpack-ts/package.json +++ b/demo/webpack-ts/package.json @@ -3,14 +3,16 @@ "version": "0.1.3", "description": "", "private": true, - "scripts": { - "build": "npx webpack --config webpack.config.js", - "start": "http-server ./dist -p 8080", - "test": "npm run build >/dev/null" - }, "keywords": [], "author": "", "license": "ISC", + "dependencies": { + "csv-generate": "^4.2.1", + "csv-parse": "^5.3.4", + "csv-stringify": "^6.2.3", + "http-server": "^14.1.1", + "stream-transform": "^3.2.1" + }, "devDependencies": { "buffer-browserify": "^0.2.5", "node-polyfill-webpack-plugin": "^2.0.1", @@ -20,7 +22,9 @@ "webpack": "^5.74.0", "webpack-cli": "^4.10.0" }, - "dependencies": { - "http-server": "^14.1.1" + "scripts": { + "build": "npx webpack --config webpack.config.js", + "start": "http-server ./dist -p 8080", + "test": "npm run build >/dev/null" } } diff --git a/demo/webpack/package.json b/demo/webpack/package.json index 9393f3e5c..e05823f9f 100644 --- a/demo/webpack/package.json +++ b/demo/webpack/package.json @@ -16,7 +16,12 @@ "webpack-cli": "^4.10.0" }, "dependencies": { + "csv": "^6.2.6", + "csv-generate": "^4.2.1", + "csv-parse": "^5.3.4", + "csv-stringify": "^6.2.3", "http-server": "^14.1.1", - "stream-browserify": "^3.0.0" + "stream-browserify": "^3.0.0", + "stream-transform": "^3.2.1" } } diff --git a/packages/csv-generate/dist/cjs/index.d.ts b/packages/csv-generate/dist/cjs/index.d.cts similarity index 100% rename from packages/csv-generate/dist/cjs/index.d.ts rename to packages/csv-generate/dist/cjs/index.d.cts diff --git a/packages/csv-generate/dist/cjs/stream.d.ts b/packages/csv-generate/dist/cjs/stream.d.cts similarity index 100% rename from packages/csv-generate/dist/cjs/stream.d.ts rename to packages/csv-generate/dist/cjs/stream.d.cts diff --git a/packages/csv-generate/dist/cjs/sync.d.ts b/packages/csv-generate/dist/cjs/sync.d.cts similarity index 100% rename from packages/csv-generate/dist/cjs/sync.d.ts rename to packages/csv-generate/dist/cjs/sync.d.cts diff --git a/packages/csv-generate/package.json b/packages/csv-generate/package.json index 32c4bf170..9457793d4 100644 --- a/packages/csv-generate/package.json +++ b/packages/csv-generate/package.json @@ -29,26 +29,41 @@ }, "exports": { ".": { - "import": "./lib/index.js", - "require": "./dist/cjs/index.cjs", - "types": "./lib/index.d.ts" + "import": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "require": { + "types": "./dist/cjs/index.d.cts", + "default": "./dist/cjs/index.cjs" + } }, "./sync": { - "import": "./lib/sync.js", - "require": "./dist/cjs/sync.cjs", - "types": "./lib/sync.d.ts" + "import": { + "types": "./lib/sync.d.ts", + "default": "./lib/sync.js" + }, + "require": { + "types": "./dist/cjs/sync.d.cts", + "default": "./dist/cjs/sync.cjs" + } }, "./stream": { - "import": "./lib/stream.js", - "require": "./dist/cjs/stream.cjs", - "types": "./lib/stream.d.ts" + "import": { + "types": "./lib/stream.d.ts", + "default": "./lib/stream.js" + }, + "require": { + "types": "./dist/cjs/stream.d.cts", + "default": "./dist/cjs/stream.cjs" + } }, "./browser/esm": { - "types": "./lib/index.d.ts", + "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" }, "./browser/esm/sync": { - "types": "./lib/sync.d.ts", + "types": "./dist/esm/sync.d.ts", "default": "./dist/esm/sync.js" } }, @@ -78,7 +93,7 @@ "scripts": { "build": "npm run build:rollup && npm run build:ts", "build:rollup": "npx rollup -c", - "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:ts": "cp lib/index.d.ts dist/cjs/index.d.cts && cp lib/stream.d.ts dist/cjs/stream.d.cts && cp lib/sync.d.ts dist/cjs/sync.d.cts && cp lib/*.ts dist/esm", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js", diff --git a/packages/csv-parse/dist/cjs/index.d.ts b/packages/csv-parse/dist/cjs/index.d.cts similarity index 100% rename from packages/csv-parse/dist/cjs/index.d.ts rename to packages/csv-parse/dist/cjs/index.d.cts diff --git a/packages/csv-parse/dist/cjs/sync.d.ts b/packages/csv-parse/dist/cjs/sync.d.cts similarity index 100% rename from packages/csv-parse/dist/cjs/sync.d.ts rename to packages/csv-parse/dist/cjs/sync.d.cts diff --git a/packages/csv-parse/package.json b/packages/csv-parse/package.json index 3aa8f472f..ced36247c 100644 --- a/packages/csv-parse/package.json +++ b/packages/csv-parse/package.json @@ -31,21 +31,31 @@ ], "exports": { ".": { - "import": "./lib/index.js", - "require": "./dist/cjs/index.cjs", - "types": "./lib/index.d.ts" + "import": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "require": { + "types": "./dist/cjs/index.d.cts", + "default": "./dist/cjs/index.cjs" + } }, "./sync": { - "import": "./lib/sync.js", - "require": "./dist/cjs/sync.cjs", - "types": "./lib/sync.d.ts" + "import": { + "types": "./lib/sync.d.ts", + "default": "./lib/sync.js" + }, + "require": { + "types": "./dist/cjs/sync.d.cts", + "default": "./dist/cjs/sync.cjs" + } }, "./browser/esm": { - "types": "./lib/index.d.ts", + "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" }, "./browser/esm/sync": { - "types": "./lib/sync.d.ts", + "types": "./dist/esm/sync.d.ts", "default": "./dist/esm/sync.js" } }, @@ -96,7 +106,7 @@ "scripts": { "build": "npm run build:rollup && npm run build:ts", "build:rollup": "npx rollup -c", - "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:ts": "cp lib/index.d.ts dist/cjs/index.d.cts && cp lib/sync.d.ts dist/cjs/sync.d.cts && cp lib/*.ts dist/esm", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js", diff --git a/packages/csv-stringify/dist/cjs/index.d.ts b/packages/csv-stringify/dist/cjs/index.d.cts similarity index 100% rename from packages/csv-stringify/dist/cjs/index.d.ts rename to packages/csv-stringify/dist/cjs/index.d.cts diff --git a/packages/csv-stringify/dist/cjs/sync.d.ts b/packages/csv-stringify/dist/cjs/sync.d.cts similarity index 100% rename from packages/csv-stringify/dist/cjs/sync.d.ts rename to packages/csv-stringify/dist/cjs/sync.d.cts diff --git a/packages/csv-stringify/package.json b/packages/csv-stringify/package.json index 73c41908c..2a89ccdde 100644 --- a/packages/csv-stringify/package.json +++ b/packages/csv-stringify/package.json @@ -29,21 +29,31 @@ }, "exports": { ".": { - "import": "./lib/index.js", - "require": "./dist/cjs/index.cjs", - "types": "./lib/index.d.ts" + "import": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "require": { + "types": "./dist/cjs/index.d.cts", + "default": "./dist/cjs/index.cjs" + } }, "./sync": { - "import": "./lib/sync.js", - "require": "./dist/cjs/sync.cjs", - "types": "./lib/sync.d.ts" + "import": { + "types": "./lib/sync.d.ts", + "default": "./lib/sync.js" + }, + "require": { + "types": "./dist/cjs/sync.d.cts", + "default": "./dist/cjs/sync.cjs" + } }, "./browser/esm": { - "types": "./lib/index.d.ts", + "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" }, "./browser/esm/sync": { - "types": "./lib/sync.d.ts", + "types": "./dist/esm/sync.d.ts", "default": "./dist/esm/sync.js" } }, @@ -73,7 +83,7 @@ "scripts": { "build": "npm run build:rollup && npm run build:ts", "build:rollup": "npx rollup -c", - "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:ts": "cp lib/index.d.ts dist/cjs/index.d.cts && cp lib/sync.d.ts dist/cjs/sync.d.cts && cp lib/*.ts dist/esm", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js", diff --git a/packages/stream-transform/dist/cjs/index.d.ts b/packages/stream-transform/dist/cjs/index.d.cts similarity index 100% rename from packages/stream-transform/dist/cjs/index.d.ts rename to packages/stream-transform/dist/cjs/index.d.cts diff --git a/packages/stream-transform/dist/cjs/sync.d.ts b/packages/stream-transform/dist/cjs/sync.d.cts similarity index 100% rename from packages/stream-transform/dist/cjs/sync.d.ts rename to packages/stream-transform/dist/cjs/sync.d.cts diff --git a/packages/stream-transform/package.json b/packages/stream-transform/package.json index 536765e75..801ac29e6 100644 --- a/packages/stream-transform/package.json +++ b/packages/stream-transform/package.json @@ -29,21 +29,31 @@ }, "exports": { ".": { - "import": "./lib/index.js", - "require": "./dist/cjs/index.cjs", - "types": "./lib/index.d.ts" + "import": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "require": { + "types": "./dist/cjs/index.d.cts", + "default": "./dist/cjs/index.cjs" + } }, "./sync": { - "import": "./lib/sync.js", - "require": "./dist/cjs/sync.cjs", - "types": "./lib/sync.d.ts" + "import": { + "types": "./lib/sync.d.ts", + "default": "./lib/sync.js" + }, + "require": { + "types": "./dist/cjs/sync.d.cts", + "default": "./dist/cjs/sync.cjs" + } }, "./browser/esm": { - "types": "./lib/index.d.ts", + "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" }, "./browser/esm/sync": { - "types": "./lib/sync.d.ts", + "types": "./dist/esm/sync.d.ts", "default": "./dist/esm/sync.js" } }, @@ -73,7 +83,7 @@ "scripts": { "build": "npm run build:rollup && npm run build:ts", "build:rollup": "npx rollup -c", - "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:ts": "cp lib/index.d.ts dist/cjs/index.d.cts && cp lib/sync.d.ts dist/cjs/sync.d.cts && cp lib/*.ts dist/esm", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js",