poku 1.19.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -37,11 +37,11 @@ Enjoying **Poku**? Give him a star to show your support 🌟
37
37
 
38
38
  ## Why does Poku exist?
39
39
 
40
- **Poku** makes testing easy and takes on the testers' difficulties to _let you focus on your tests_:
40
+ 💡 **Poku** makes testing easy and brings the [native **JavaScript** syntax back to tests](https://poku.io/docs/philosophy), letting you to write tests intuitively — _just like in real **JavaScript** code_.
41
41
 
42
42
  <img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> No configurations<br />
43
43
  <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Auto detect **ESM**, **CJS**, and **TypeScript** files<br />
44
- <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Run the same test suite for [**Node.js**][node-version-url] _(6+)_, [**Bun**][bun-version-url] and [**Deno**][deno-version-url]<br />
44
+ <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Run the same test suite for [**Node.js**][node-version-url], [**Bun**][bun-version-url] and [**Deno**][deno-version-url]<br />
45
45
 
46
46
  <img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Easier and Less Verbose<br />
47
47
  <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> [**Node.js**][node-version-url] familiar **API**<br />
@@ -54,8 +54,6 @@ Enjoying **Poku**? Give him a star to show your support 🌟
54
54
  <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> **Performant** and **lightweight**<br />
55
55
  <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Compatible with **coverage** tools
56
56
 
57
- > 💡 **Poku** brings the [essence of **JavaScript** back to testing](https://poku.io/docs/philosophy), allowing to use your knowledge to create tests intuitively.
58
-
59
57
  ---
60
58
 
61
59
  ## Quickstart
@@ -180,6 +178,7 @@ deno run npm:poku
180
178
  - [**startService**](https://poku.io/docs/documentation/helpers/startService) _(run files in background)_
181
179
  - [**kill**](https://poku.io/docs/documentation/helpers/processes/kill) _(terminate ports, port ranges, and PIDs)_
182
180
  - [**waitForPort**](https://poku.io/docs/documentation/helpers/processes/wait-for-port) _(wait for specified ports to become active)_
181
+ - [**waitForExpectedResult**](https://poku.io/docs/documentation/helpers/processes/wait-for-expected-result) _(retry until an expected result or times out)_
183
182
  - [**getPIDs**](https://poku.io/docs/documentation/helpers/processes/get-pids) _(debug processes IDs using ports and port ranges)_
184
183
  - _and much more_ 👇🏻
185
184
 
@@ -227,6 +226,8 @@ Please check the [**SECURITY.md**](https://github.com/wellwelwel/poku/blob/main/
227
226
  - [~**170x** lighter than **Jest**](https://pkg-size.dev/jest)
228
227
  - [~**40x** lighter than **Mocha** + **Chai**](https://pkg-size.dev/mocha%20chai)
229
228
 
229
+ > **Poku** size is highly significant in development to ensure cost-saving **CI** that require servers that charge for storage and usage.
230
+
230
231
  ---
231
232
 
232
233
  ### Limitations
@@ -1,4 +1,4 @@
1
- export type WaitForPortOptions = {
1
+ export type WaitForExpectedResultOptions = {
2
2
  /**
3
3
  * Retry interval in milliseconds
4
4
  *
@@ -23,6 +23,18 @@ export type WaitForPortOptions = {
23
23
  * @default 0
24
24
  */
25
25
  delay?: number;
26
+ /**
27
+ * Ensure strict comparisons.
28
+ *
29
+ * - For **Bun** users, this option isn't necessary.
30
+ *
31
+ * ---
32
+ *
33
+ * @default false
34
+ */
35
+ strict?: boolean;
36
+ };
37
+ export type WaitForPortOptions = {
26
38
  /**
27
39
  * Host to check the port on.
28
40
  *
@@ -31,4 +43,4 @@ export type WaitForPortOptions = {
31
43
  * @default "localhost"
32
44
  */
33
45
  host?: string;
34
- };
46
+ } & Omit<WaitForExpectedResultOptions, 'strict'>;
package/lib/index.d.ts CHANGED
@@ -3,18 +3,18 @@ export { assert } from './modules/assert.js';
3
3
  export { test } from './modules/test.js';
4
4
  export { describe } from './modules/describe.js';
5
5
  export { it } from './modules/it.js';
6
- export { log } from './modules/log.js';
7
- export { assertPromise } from './modules/assert-promise.js';
8
6
  export { beforeEach, afterEach } from './modules/each.js';
9
- export { publicListFiles as listFiles } from './modules/list-files-sync.js';
10
- export { startService, startScript } from './modules/create-service.js';
11
- export { getPIDs, kill } from './modules/processes.js';
12
- export { sleep, waitForPort } from './modules/wait-for.js';
13
- export { exit } from './modules/exit.js';
14
7
  export { docker } from './modules/container.js';
8
+ export { startScript, startService } from './modules/create-service.js';
9
+ export { waitForExpectedResult, waitForPort, sleep, } from './modules/wait-for.js';
10
+ export { kill, getPIDs } from './modules/processes.js';
11
+ export { exit } from './modules/exit.js';
12
+ export { log } from './modules/log.js';
13
+ export { publicListFiles as listFiles } from './modules/list-files-sync.js';
14
+ export { assertPromise } from './modules/assert-promise.js';
15
15
  export type { Code } from './@types/code.js';
16
16
  export type { Configs } from './@types/poku.js';
17
- export type { WaitForPortOptions } from './@types/processes.js';
18
- export type { Configs as ListFilesConfigs } from './@types/list-files.js';
19
17
  export type { DockerComposeConfigs, DockerfileConfigs, } from './@types/container.js';
20
18
  export type { StartServiceOptions, StartScriptOptions, } from './@types/background-process.js';
19
+ export type { WaitForExpectedResultOptions, WaitForPortOptions, } from './@types/wait-for.js';
20
+ export type { Configs as ListFilesConfigs } from './@types/list-files.js';
package/lib/index.js CHANGED
@@ -1,37 +1,40 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.docker = exports.exit = exports.waitForPort = exports.sleep = exports.kill = exports.getPIDs = exports.startScript = exports.startService = exports.listFiles = exports.afterEach = exports.beforeEach = exports.assertPromise = exports.log = exports.it = exports.describe = exports.test = exports.assert = exports.poku = void 0;
4
2
  /* c8 ignore start */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.assertPromise = exports.listFiles = exports.log = exports.exit = exports.getPIDs = exports.kill = exports.sleep = exports.waitForPort = exports.waitForExpectedResult = exports.startService = exports.startScript = exports.docker = exports.afterEach = exports.beforeEach = exports.it = exports.describe = exports.test = exports.assert = exports.poku = void 0;
5
+ // Essentials
5
6
  var poku_js_1 = require("./modules/poku.js");
6
7
  Object.defineProperty(exports, "poku", { enumerable: true, get: function () { return poku_js_1.poku; } });
7
8
  var assert_js_1 = require("./modules/assert.js");
8
9
  Object.defineProperty(exports, "assert", { enumerable: true, get: function () { return assert_js_1.assert; } });
10
+ // Helpers
9
11
  var test_js_1 = require("./modules/test.js");
10
12
  Object.defineProperty(exports, "test", { enumerable: true, get: function () { return test_js_1.test; } });
11
13
  var describe_js_1 = require("./modules/describe.js");
12
14
  Object.defineProperty(exports, "describe", { enumerable: true, get: function () { return describe_js_1.describe; } });
13
15
  var it_js_1 = require("./modules/it.js");
14
16
  Object.defineProperty(exports, "it", { enumerable: true, get: function () { return it_js_1.it; } });
15
- var log_js_1 = require("./modules/log.js");
16
- Object.defineProperty(exports, "log", { enumerable: true, get: function () { return log_js_1.log; } });
17
- var assert_promise_js_1 = require("./modules/assert-promise.js");
18
- Object.defineProperty(exports, "assertPromise", { enumerable: true, get: function () { return assert_promise_js_1.assertPromise; } });
19
17
  var each_js_1 = require("./modules/each.js");
20
18
  Object.defineProperty(exports, "beforeEach", { enumerable: true, get: function () { return each_js_1.beforeEach; } });
21
19
  Object.defineProperty(exports, "afterEach", { enumerable: true, get: function () { return each_js_1.afterEach; } });
22
- var list_files_sync_js_1 = require("./modules/list-files-sync.js");
23
- Object.defineProperty(exports, "listFiles", { enumerable: true, get: function () { return list_files_sync_js_1.publicListFiles; } });
20
+ var container_js_1 = require("./modules/container.js");
21
+ Object.defineProperty(exports, "docker", { enumerable: true, get: function () { return container_js_1.docker; } });
24
22
  var create_service_js_1 = require("./modules/create-service.js");
25
- Object.defineProperty(exports, "startService", { enumerable: true, get: function () { return create_service_js_1.startService; } });
26
23
  Object.defineProperty(exports, "startScript", { enumerable: true, get: function () { return create_service_js_1.startScript; } });
27
- var processes_js_1 = require("./modules/processes.js");
28
- Object.defineProperty(exports, "getPIDs", { enumerable: true, get: function () { return processes_js_1.getPIDs; } });
29
- Object.defineProperty(exports, "kill", { enumerable: true, get: function () { return processes_js_1.kill; } });
24
+ Object.defineProperty(exports, "startService", { enumerable: true, get: function () { return create_service_js_1.startService; } });
30
25
  var wait_for_js_1 = require("./modules/wait-for.js");
31
- Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return wait_for_js_1.sleep; } });
26
+ Object.defineProperty(exports, "waitForExpectedResult", { enumerable: true, get: function () { return wait_for_js_1.waitForExpectedResult; } });
32
27
  Object.defineProperty(exports, "waitForPort", { enumerable: true, get: function () { return wait_for_js_1.waitForPort; } });
28
+ Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return wait_for_js_1.sleep; } });
29
+ var processes_js_1 = require("./modules/processes.js");
30
+ Object.defineProperty(exports, "kill", { enumerable: true, get: function () { return processes_js_1.kill; } });
31
+ Object.defineProperty(exports, "getPIDs", { enumerable: true, get: function () { return processes_js_1.getPIDs; } });
33
32
  var exit_js_1 = require("./modules/exit.js");
34
33
  Object.defineProperty(exports, "exit", { enumerable: true, get: function () { return exit_js_1.exit; } });
35
- var container_js_1 = require("./modules/container.js");
36
- Object.defineProperty(exports, "docker", { enumerable: true, get: function () { return container_js_1.docker; } });
34
+ var log_js_1 = require("./modules/log.js");
35
+ Object.defineProperty(exports, "log", { enumerable: true, get: function () { return log_js_1.log; } });
36
+ var list_files_sync_js_1 = require("./modules/list-files-sync.js");
37
+ Object.defineProperty(exports, "listFiles", { enumerable: true, get: function () { return list_files_sync_js_1.publicListFiles; } });
38
+ var assert_promise_js_1 = require("./modules/assert-promise.js");
39
+ Object.defineProperty(exports, "assertPromise", { enumerable: true, get: function () { return assert_promise_js_1.assertPromise; } });
37
40
  /* c8 ignore stop */
@@ -1,9 +1,7 @@
1
- import type { WaitForPortOptions } from '../@types/processes.js';
2
- /**
3
- * Wait until the defined milliseconds.
4
- */
1
+ import type { WaitForExpectedResultOptions, WaitForPortOptions } from '../@types/wait-for.js';
2
+ /** Wait until the defined milliseconds. */
5
3
  export declare const sleep: (milliseconds: number) => Promise<void>;
6
- /**
7
- * Wait until the defined port is active.
8
- */
4
+ /** Wait until a result is equal the expected value */
5
+ export declare const waitForExpectedResult: (callback: () => unknown | Promise<unknown>, expectedResult: unknown, options?: WaitForExpectedResultOptions) => Promise<void>;
6
+ /** Wait until the defined port is active. */
9
7
  export declare const waitForPort: (port: number, options?: WaitForPortOptions) => Promise<void>;
@@ -9,8 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.waitForPort = exports.sleep = void 0;
12
+ exports.waitForPort = exports.waitForExpectedResult = exports.sleep = void 0;
13
13
  const node_net_1 = require("net");
14
+ const node_assert_1 = require("assert");
14
15
  const checkPort = (port, host) => new Promise((resolve) => {
15
16
  const client = (0, node_net_1.createConnection)(port, host);
16
17
  client.on('connect', () => {
@@ -23,9 +24,7 @@ const checkPort = (port, host) => new Promise((resolve) => {
23
24
  });
24
25
  /* c8 ignore stop */
25
26
  });
26
- /**
27
- * Wait until the defined milliseconds.
28
- */
27
+ /** Wait until the defined milliseconds. */
29
28
  const sleep = (milliseconds) => {
30
29
  /* c8 ignore start */
31
30
  if (!Number.isInteger(milliseconds)) {
@@ -35,19 +34,14 @@ const sleep = (milliseconds) => {
35
34
  return new Promise((resolve) => setTimeout(resolve, milliseconds));
36
35
  };
37
36
  exports.sleep = sleep;
38
- /* c8 ignore start */ // c8 bug
39
- /**
40
- * Wait until the defined port is active.
41
- */
42
- const waitForPort = (port, options) => __awaiter(void 0, void 0, void 0, function* () {
43
- /* c8 ignore stop */
37
+ /** Wait until a result is equal the expected value */
38
+ const waitForExpectedResult = (callback, expectedResult, options) => __awaiter(void 0, void 0, void 0, function* () {
44
39
  const delay = (options === null || options === void 0 ? void 0 : options.delay) || 0;
45
40
  const interval = (options === null || options === void 0 ? void 0 : options.interval) || 100;
46
41
  const timeout = (options === null || options === void 0 ? void 0 : options.timeout) || 60000;
47
- const host = (options === null || options === void 0 ? void 0 : options.host) || 'localhost';
48
42
  /* c8 ignore start */
49
- if (!Number.isInteger(port)) {
50
- throw new Error('Port must be an integer.');
43
+ if (typeof callback !== 'function') {
44
+ throw new Error('Callback must be a function.');
51
45
  }
52
46
  if (!Number.isInteger(interval)) {
53
47
  throw new Error('Interval must be an integer.');
@@ -63,16 +57,46 @@ const waitForPort = (port, options) => __awaiter(void 0, void 0, void 0, functio
63
57
  const startTime = Date.now();
64
58
  // eslint-disable-next-line no-constant-condition
65
59
  while (true) {
66
- const hasPort = yield checkPort(port, host);
67
- if (hasPort)
68
- break;
60
+ const result = yield callback();
61
+ if (typeof expectedResult === 'function') {
62
+ if (typeof result === 'function' && result.name === expectedResult.name)
63
+ break;
64
+ }
65
+ else if (typeof expectedResult === 'symbol') {
66
+ if (typeof result === 'symbol' &&
67
+ String(result) === String(expectedResult))
68
+ break;
69
+ }
70
+ else {
71
+ try {
72
+ (options === null || options === void 0 ? void 0 : options.strict)
73
+ ? (0, node_assert_1.deepStrictEqual)(result, expectedResult)
74
+ : (0, node_assert_1.deepEqual)(result, expectedResult);
75
+ break;
76
+ /* c8 ignore next */
77
+ }
78
+ catch (_a) { }
79
+ }
69
80
  /* c8 ignore start */
70
81
  if (Date.now() - startTime >= timeout) {
71
- throw new Error(`Timeout waiting for port ${port} to become active`);
82
+ throw new Error(`Timeout`);
72
83
  }
73
84
  /* c8 ignore stop */
74
85
  yield (0, exports.sleep)(interval);
75
86
  }
76
87
  yield (0, exports.sleep)(delay);
77
88
  });
89
+ exports.waitForExpectedResult = waitForExpectedResult;
90
+ /* c8 ignore start */ // c8 bug
91
+ /** Wait until the defined port is active. */
92
+ const waitForPort = (port, options) => __awaiter(void 0, void 0, void 0, function* () {
93
+ /* c8 ignore stop */
94
+ const host = (options === null || options === void 0 ? void 0 : options.host) || 'localhost';
95
+ /* c8 ignore start */
96
+ if (!Number.isInteger(port)) {
97
+ throw new Error('Port must be an integer.');
98
+ }
99
+ /* c8 ignore stop */
100
+ yield (0, exports.waitForExpectedResult)(() => __awaiter(void 0, void 0, void 0, function* () { return yield checkPort(port, host); }), true, options);
101
+ });
78
102
  exports.waitForPort = waitForPort;
@@ -27,7 +27,9 @@ const getDeepImports = (content) => {
27
27
  const paths = new Set();
28
28
  const lines = content.split('\n');
29
29
  for (const line of lines) {
30
- if (line.includes('import') || line.includes('require')) {
30
+ if (line.indexOf('import') !== -1 ||
31
+ line.indexOf('require') !== -1 ||
32
+ line.indexOf(' from ') !== -1) {
31
33
  const path = line.match(/['"](\.{1,2}\/[^'"]+)['"]/);
32
34
  if (path)
33
35
  paths.add((0, exports.normalizePath)(path[1].replace(extFilter, '')));
package/package.json CHANGED
@@ -1,35 +1,54 @@
1
1
  {
2
2
  "name": "poku",
3
- "version": "1.19.0",
3
+ "version": "1.20.0",
4
4
  "description": "🐷 Poku makes testing easy for Node.js, Bun, Deno, and you at the same time.",
5
+ "license": "MIT",
5
6
  "main": "./lib/index.js",
7
+ "bin": {
8
+ "poku": "./lib/bin/index.js"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/wellwelwel/poku.git"
13
+ },
14
+ "homepage": "https://poku.io",
15
+ "bugs": {
16
+ "url": "https://github.com/wellwelwel/poku/issues"
17
+ },
18
+ "author": "https://github.com/wellwelwel",
19
+ "files": [
20
+ "lib"
21
+ ],
22
+ "engines": {
23
+ "node": ">=6.0.0"
24
+ },
6
25
  "scripts": {
7
26
  "test": "npm run test:parallel && npm run test:sequential",
8
27
  "test:bun": "npm run test:bun:parallel && npm run test:bun:sequential",
9
28
  "test:deno": "npm run test:deno:parallel && npm run test:deno:sequential",
10
- "test:sequential": "tsx src/bin/index.ts --include=\"test/unit,test/integration,test/e2e\"",
11
- "test:parallel": "tsx src/bin/index.ts --parallel --include=\"test/unit,test/integration,test/e2e\"",
12
- "test:bun:sequential": "bun src/bin/index.ts --platform=\"bun\" --include=\"test/unit,test/integration,test/e2e\"",
13
- "test:bun:parallel": "bun src/bin/index.ts --platform=\"bun\" --parallel --include=\"test/unit,test/integration,test/e2e\"",
14
- "test:deno:sequential": "tsx src/bin/index.ts --platform=\"deno\" --deno-allow=\"all\" --deno-cjs --include=\"ci/test/unit,ci/test/integration,ci/test/e2e\"",
15
- "test:deno:parallel": "tsx src/bin/index.ts --platform=\"deno\" --deno-allow=\"all\" --deno-cjs --parallel --include=\"ci/test/unit,ci/test/integration,ci/test/e2e\"",
16
- "test:c8:sequential": "c8 tsx src/bin/index.ts --include=\"test/unit,test/integration,test/e2e\"",
17
- "test:c8:parallel": "c8 tsx src/bin/index.ts --parallel --include=\"test/unit,test/integration,test/e2e\"",
18
- "test:c8:sequential:options": "c8 tsx src/bin/index.ts --platform=\"node\" --fast-fail --debug --exclude=\".bak\" --kill-port=\"4000\" --kill-range=\"4000-4001\" --include=\"test/unit,test/integration,test/e2e\" --filter=\".test.|.spec.\"",
19
- "test:c8:parallel:options": "c8 tsx src/bin/index.ts --parallel --concurrency=\"4\" --platform=\"node\" --fast-fail --debug --exclude=\".bak\" --kill-port=\"4000\" --kill-range=\"4000-4001\" --include=\"test/unit,test/integration,test/e2e\" --filter=\".test.|.spec.\"",
20
- "test:ci": "tsx ./test/ci.test.ts",
29
+ "test:sequential": "tsx src/bin/index.ts --include=test/unit,test/integration,test/e2e",
30
+ "test:parallel": "tsx src/bin/index.ts --parallel --include=test/unit,test/integration,test/e2e",
31
+ "test:bun:sequential": "bun src/bin/index.ts --platform=bun --include=test/unit,test/integration,test/e2e",
32
+ "test:bun:parallel": "bun src/bin/index.ts --platform=bun --parallel --include=test/unit,test/integration,test/e2e",
33
+ "test:deno:sequential": "tsx src/bin/index.ts --platform=deno --deno-allow=all --deno-cjs --include=ci/test/unit,ci/test/integration,ci/test/e2e",
34
+ "test:deno:parallel": "tsx src/bin/index.ts --platform=deno --deno-allow=all --deno-cjs --parallel --include=ci/test/unit,ci/test/integration,ci/test/e2e",
35
+ "test:c8:sequential": "c8 tsx src/bin/index.ts --include=test/unit,test/integration,test/e2e",
36
+ "test:c8:parallel": "c8 tsx src/bin/index.ts --parallel --include=test/unit,test/integration,test/e2e",
37
+ "test:c8:sequential:options": "c8 tsx src/bin/index.ts --platform=node --fast-fail --debug --exclude=\".bak\" --kill-port=4000 --kill-range=\"4000-4001\" --include=test/unit,test/integration,test/e2e --filter=\".test.|.spec.\"",
38
+ "test:c8:parallel:options": "c8 tsx src/bin/index.ts --parallel --concurrency=4 --platform=node --fast-fail --debug --exclude=\".bak\" --kill-port=4000 --kill-range=\"4000-4001\" --include=test/unit,test/integration,test/e2e --filter=\".test.|.spec.\"",
39
+ "test:ci": "tsx test/ci.test.ts",
21
40
  "test:ci:node": "FILTER='node-' npm run test:ci",
22
41
  "test:ci:bun": "FILTER='bun-' npm run test:ci",
23
42
  "test:ci:deno": "FILTER='deno-' npm run test:ci",
24
- "predocker:deno": "docker compose -f ./test/docker/playground/deno/docker-compose.yml down",
25
- "docker:deno": "docker compose -f ./test/docker/playground/deno/docker-compose.yml up --build",
26
- "clear": "shx rm -rf ./lib ./ci ./coverage",
43
+ "predocker:deno": "docker compose -f test/docker/playground/deno/docker-compose.yml down",
44
+ "docker:deno": "docker compose -f test/docker/playground/deno/docker-compose.yml up --build",
45
+ "clear": "shx rm -rf lib ci coverage",
27
46
  "prebuild": "npm run clear",
28
- "build": "tsc && shx rm -rf ./lib/@types && tsc -p tsconfig.types.json && tsc -p tsconfig.test.json",
29
- "postbuild": "tsx ./tools/compatibility/node.ts && shx cp fixtures/server/package.json ci/fixtures/server/package.json && npm run build:deno && shx chmod +x lib/bin/index.js",
47
+ "build": "tsc && shx rm -rf lib/@types && tsc -p tsconfig.types.json && tsc -p tsconfig.test.json",
48
+ "postbuild": "tsx tools/compatibility/node.ts && shx cp fixtures/server/package.json ci/fixtures/server/package.json && npm run build:deno && shx chmod +x lib/bin/index.js",
30
49
  "build:deno": "esbuild src/polyfills/deno.mts --outfile=lib/polyfills/deno.mjs --format=esm",
31
50
  "eslint:checker": "eslint . --ext .js,.ts",
32
- "eslint:fix": "eslint . --fix --config ./.eslintrc.json",
51
+ "eslint:fix": "eslint . --fix --config .eslintrc.json",
33
52
  "lint:checker": "npm run eslint:checker && npm run prettier:checker",
34
53
  "lint:fix": "npm run eslint:fix && npm run prettier:fix",
35
54
  "prettier:checker": "prettier --check .",
@@ -38,14 +57,22 @@
38
57
  "postupdate": "npm run lint:fix",
39
58
  "benchmark": "cd benchmark && npm ci && npm start"
40
59
  },
41
- "license": "MIT",
42
- "repository": {
43
- "type": "git",
44
- "url": "git+https://github.com/wellwelwel/poku.git"
45
- },
46
- "homepage": "https://poku.io",
47
- "bin": {
48
- "poku": "./lib/bin/index.js"
60
+ "devDependencies": {
61
+ "@types/node": "^20.14.8",
62
+ "@typescript-eslint/eslint-plugin": "^7.13.1",
63
+ "@typescript-eslint/parser": "^7.13.1",
64
+ "c8": "^10.1.2",
65
+ "esbuild": "^0.21.5",
66
+ "eslint": "^8.57.0",
67
+ "eslint-config-prettier": "^9.1.0",
68
+ "eslint-import-resolver-typescript": "^3.6.1",
69
+ "eslint-plugin-import": "^2.29.1",
70
+ "eslint-plugin-prettier": "^5.1.3",
71
+ "packages-update": "^2.0.0",
72
+ "prettier": "^3.3.2",
73
+ "shx": "^0.3.4",
74
+ "tsx": "4.15.7",
75
+ "typescript": "^5.5.2"
49
76
  },
50
77
  "keywords": [
51
78
  "🐷",
@@ -54,30 +81,30 @@
54
81
  "assert",
55
82
  "assertion",
56
83
  "testing",
84
+ "node",
57
85
  "bun",
58
86
  "deno",
59
- "cli",
87
+ "typescript",
88
+ "tsx",
60
89
  "concurrent",
61
90
  "concurrency",
62
- "parallelism",
63
91
  "parallel",
64
92
  "sequential",
93
+ "run",
94
+ "cli",
65
95
  "unit",
66
96
  "integration",
67
- "typescript",
97
+ "e2e",
98
+ "end-to-end",
99
+ "tdd",
100
+ "bdd",
68
101
  "isolate",
69
102
  "isolation",
70
- "run",
71
- "queue",
72
- "queuing",
73
103
  "watch",
74
- "nodejs",
75
- "node",
76
- "cli-app",
77
- "expect",
104
+ "jest",
78
105
  "mocha",
79
106
  "chai",
80
- "jest",
107
+ "vitest",
81
108
  "ava",
82
109
  "uvu",
83
110
  "tap",
@@ -85,59 +112,19 @@
85
112
  "karma",
86
113
  "urun",
87
114
  "supertest",
88
- "e2e",
89
- "end-to-end",
90
- "tdd",
91
- "bdd",
92
- "framework",
93
- "tool",
94
- "tools",
95
115
  "filter",
96
116
  "exclude",
97
117
  "list",
98
118
  "files",
99
- "list-files",
100
- "tsx",
101
119
  "kill",
120
+ "container",
102
121
  "process",
103
122
  "port",
104
123
  "cross-platform",
105
124
  "commonjs",
106
125
  "cjs",
126
+ "esmodules",
107
127
  "esm",
108
- "runtime",
109
- "poku",
110
- "pokujs"
111
- ],
112
- "author": "https://github.com/wellwelwel",
113
- "bugs": {
114
- "url": "https://github.com/wellwelwel/poku/issues"
115
- },
116
- "engines": {
117
- "node": ">=6.0.0",
118
- "bun": ">=0.5.3",
119
- "deno": ">=1.17.0",
120
- "typescript": ">=5.0.2"
121
- },
122
- "files": [
123
- "lib"
124
- ],
125
- "type": "commonjs",
126
- "devDependencies": {
127
- "@types/node": "^20.14.8",
128
- "@typescript-eslint/eslint-plugin": "^7.13.1",
129
- "@typescript-eslint/parser": "^7.13.1",
130
- "c8": "^10.1.2",
131
- "esbuild": "^0.21.5",
132
- "eslint": "^8.57.0",
133
- "eslint-config-prettier": "^9.1.0",
134
- "eslint-import-resolver-typescript": "^3.6.1",
135
- "eslint-plugin-import": "^2.29.1",
136
- "eslint-plugin-prettier": "^5.1.3",
137
- "packages-update": "^2.0.0",
138
- "prettier": "^3.3.2",
139
- "shx": "^0.3.4",
140
- "tsx": "4.15.7",
141
- "typescript": "^5.5.2"
142
- }
128
+ "poku"
129
+ ]
143
130
  }