@titocandradev/neatcore 0.1.0 โ†’ 0.2.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 ADDED
@@ -0,0 +1,142 @@
1
+ # @tito/neatcore
2
+
3
+ > Zero-dependency, tree-shakeable, TypeScript-first utility library.
4
+
5
+ NeatCore is a lightweight utility library for JavaScript & TypeScript
6
+ focused on:
7
+
8
+ - โœ… Zero Dependency
9
+ - ๐ŸŒฒ Fully Tree-Shakeable
10
+ - ๐Ÿง  Strongly Typed (TypeScript First)
11
+ - โšก Small & Performant
12
+ - ๐Ÿ— Ecosystem-Ready Foundation
13
+
14
+ ---
15
+
16
+ ## ๐Ÿ“ฆ Installation
17
+
18
+ ```bash
19
+ npm install @tito/neatcore
20
+ ```
21
+
22
+ or
23
+
24
+ ```bash
25
+ pnpm add @tito/neatcore
26
+ ```
27
+
28
+ or
29
+
30
+ ```bash
31
+ bun add @tito/neatcore
32
+ ```
33
+
34
+ ---
35
+
36
+ ## ๐Ÿš€ Usage
37
+
38
+ ### ES Module
39
+
40
+ ```ts
41
+ import { firstUppercase } from "@tito/neatcore";
42
+
43
+ firstUppercase("tito candra");
44
+ // โ†’ "Tito Candra"
45
+ ```
46
+
47
+ ### CommonJS
48
+
49
+ ```js
50
+ const { firstUppercase } = require("@tito/neatcore");
51
+
52
+ firstUppercase("tito candra");
53
+ ```
54
+
55
+ ---
56
+
57
+ ## ๐Ÿงฐ Available Utilities (V1 Scope)
58
+
59
+ ### ๐Ÿ”ค String
60
+
61
+ - `firstUppercase(str: string): string`
62
+
63
+ Example:
64
+
65
+ ```ts
66
+ firstUppercase("hello world");
67
+ // โ†’ "Hello World"
68
+ ```
69
+
70
+ ---
71
+
72
+ ## ๐ŸŽฏ Design Principles
73
+
74
+ NeatCore is built with the following principles:
75
+
76
+ - Small surface API
77
+ - Explicit over magic
78
+ - Functional and predictable
79
+ - No hidden mutation
80
+ - Strong typing by default
81
+
82
+ ---
83
+
84
+ ## ๐ŸŒฒ Tree-Shaking Friendly
85
+
86
+ Import only what you need:
87
+
88
+ ```ts
89
+ import { firstUppercase } from "@tito/neatcore";
90
+ ```
91
+
92
+ Modern bundlers like Vite, Webpack, and Rollup will automatically remove
93
+ unused code.
94
+
95
+ ---
96
+
97
+ ## ๐Ÿงช Testing
98
+
99
+ This library uses:
100
+
101
+ - Vitest
102
+ - Coverage support
103
+
104
+ ---
105
+
106
+ ## ๐Ÿ— Build
107
+
108
+ Build tool: - tsup
109
+
110
+ Output: - ESM - CJS - Type Definitions
111
+
112
+ ---
113
+
114
+ ## ๐Ÿ›ฃ Roadmap
115
+
116
+ V1 Scope: - Array utilities - Object utilities - String utilities -
117
+ Function utilities
118
+
119
+ Future plans: - Advanced typing utilities - Performance helpers - DX
120
+ improvements - Plugin ecosystem
121
+
122
+ ---
123
+
124
+ ## ๐Ÿ“„ License
125
+
126
+ MIT
127
+
128
+ ---
129
+
130
+ ## ๐Ÿ‘จโ€๐Ÿ’ป Author
131
+
132
+ Tito Candra\
133
+ GitHub: https://github.com/tcandra24
134
+
135
+ ---
136
+
137
+ ## โญ Why NeatCore?
138
+
139
+ Because small utilities are often underestimated.
140
+
141
+ NeatCore is designed as a strongly-typed engineering utility foundation
142
+ --- not just another helper library.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/array/chunk.ts","../src/array/unique.ts","../src/function/debounce.ts","../src/object/get.ts","../src/string/capitalize.ts"],"names":["chunk","arr","size","result","i","unique","array","debounce","fn","delay","timeout","args","get","obj","path","defaultValue","keys","key","capitalize","str"],"mappings":"aAAO,SAASA,CAAAA,CAASC,CAAAA,CAAUC,CAAAA,CAAqB,CACtD,IAAMC,CAAAA,CAAgB,EAAC,CAEvB,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIH,CAAAA,CAAI,OAAQG,CAAAA,EAAKF,CAAAA,CACnCC,CAAAA,CAAO,IAAA,CAAKF,CAAAA,CAAI,KAAA,CAAMG,CAAAA,CAAGA,CAAAA,CAAIF,CAAI,CAAC,CAAA,CAGpC,OAAOC,CACT,CCRO,SAASE,CAAAA,CAAUC,CAAAA,CAAiB,CACzC,OAAO,CAAC,GAAG,IAAI,GAAA,CAAIA,CAAK,CAAC,CAC3B,CCFO,SAASC,CAAAA,CAA6CC,EAAOC,CAAAA,CAAe,CACjF,IAAIC,CAAAA,CAEJ,OAAO,SAAA,GAAaC,CAAAA,CAAqB,CACvC,YAAA,CAAaD,CAAO,CAAA,CAEpBA,CAAAA,CAAU,UAAA,CAAW,IAAM,CACzBF,CAAAA,CAAG,GAAGG,CAAI,EACZ,CAAA,CAAGF,CAAK,EACV,CACF,CCVO,SAASG,CAAAA,CAAIC,CAAAA,CAAUC,CAAAA,CAAcC,CAAAA,CAAoB,CAC9D,IAAMC,CAAAA,CAAOF,CAAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CACvBX,CAAAA,CAASU,CAAAA,CAEb,IAAA,IAAWI,CAAAA,IAAOD,CAAAA,CAAM,CACtB,GAAIb,CAAAA,EAAU,KAAM,OAAOY,CAAAA,CAC3BZ,CAAAA,CAASA,CAAAA,CAAOc,CAAG,EACrB,CAEA,OAAOd,CAAAA,GAAW,MAAA,CAAYY,CAAAA,CAAeZ,CAC/C,CCVO,SAASe,CAAAA,CAAWC,CAAAA,CAAqB,CAC9C,OAAKA,CAAAA,EACEA,CAAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,CAAIA,CAAAA,CAAI,KAAA,CAAM,CAAC,CAClD","file":"index.cjs","sourcesContent":["export function chunk<T>(arr: T[], size: number): T[][] {\n const result: T[][] = [];\n\n for (let i = 0; i < arr.length; i += size) {\n result.push(arr.slice(i, i + size));\n }\n\n return result;\n}\n","export function unique<T>(array: T[]): T[] {\n return [...new Set(array)];\n}\n","export function debounce<T extends (...args: any[]) => void>(fn: T, delay: number) {\n let timeout: ReturnType<typeof setTimeout>;\n\n return function (...args: Parameters<T>) {\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n","export function get(obj: any, path: string, defaultValue?: any) {\n const keys = path.split(\".\");\n let result = obj;\n\n for (const key of keys) {\n if (result == null) return defaultValue;\n result = result[key];\n }\n\n return result === undefined ? defaultValue : result;\n}\n","export function capitalize(str: string): string {\n if (!str) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n"]}
1
+ {"version":3,"sources":["../src/array/chunk.ts","../src/array/unique.ts","../src/function/debounce.ts","../src/object/get.ts","../src/string/capitalize.ts"],"names":["chunk","arr","size","result","i","unique","array","debounce","fn","delay","timeout","args","get","obj","path","defaultValue","keys","key","capitalize","str"],"mappings":"aAAO,SAASA,CAAAA,CAASC,CAAAA,CAAUC,CAAAA,CAAqB,CACtD,IAAMC,CAAAA,CAAgB,EAAC,CAEvB,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIH,CAAAA,CAAI,OAAQG,CAAAA,EAAKF,CAAAA,CACnCC,CAAAA,CAAO,IAAA,CAAKF,CAAAA,CAAI,KAAA,CAAMG,CAAAA,CAAGA,CAAAA,CAAIF,CAAI,CAAC,CAAA,CAGpC,OAAOC,CACT,CCRO,SAASE,CAAAA,CAAUC,CAAAA,CAAiB,CACzC,OAAO,CAAC,GAAG,IAAI,GAAA,CAAIA,CAAK,CAAC,CAC3B,CCFO,SAASC,CAAAA,CAA6CC,EAAOC,CAAAA,CAAe,CACjF,IAAIC,CAAAA,CAEJ,OAAO,SAAA,GAAaC,CAAAA,CAAqB,CACvC,YAAA,CAAaD,CAAO,CAAA,CAEpBA,CAAAA,CAAU,UAAA,CAAW,IAAM,CACzBF,CAAAA,CAAG,GAAGG,CAAI,EACZ,CAAA,CAAGF,CAAK,EACV,CACF,CCVO,SAASG,CAAAA,CAAIC,CAAAA,CAAUC,CAAAA,CAAcC,CAAAA,CAAoB,CAC9D,IAAMC,CAAAA,CAAOF,CAAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CACvBX,CAAAA,CAASU,CAAAA,CAEb,IAAA,IAAWI,CAAAA,IAAOD,CAAAA,CAAM,CACtB,GAAIb,CAAAA,EAAU,KAAM,OAAOY,CAAAA,CAC3BZ,CAAAA,CAASA,CAAAA,CAAOc,CAAG,EACrB,CAEA,OAAOd,CAAAA,GAAW,MAAA,CAAYY,CAAAA,CAAeZ,CAC/C,CCVO,SAASe,CAAAA,CAAWC,CAAAA,CAAqB,CAC9C,OAAKA,CAAAA,EACEA,CAAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,CAAIA,CAAAA,CAAI,KAAA,CAAM,CAAC,CAClD","file":"index.cjs","sourcesContent":["export function chunk<T>(arr: T[], size: number): T[][] {\r\n const result: T[][] = [];\r\n\r\n for (let i = 0; i < arr.length; i += size) {\r\n result.push(arr.slice(i, i + size));\r\n }\r\n\r\n return result;\r\n}\r\n","export function unique<T>(array: T[]): T[] {\r\n return [...new Set(array)];\r\n}\r\n","export function debounce<T extends (...args: any[]) => void>(fn: T, delay: number) {\r\n let timeout: ReturnType<typeof setTimeout>;\r\n\r\n return function (...args: Parameters<T>) {\r\n clearTimeout(timeout);\r\n\r\n timeout = setTimeout(() => {\r\n fn(...args);\r\n }, delay);\r\n };\r\n}\r\n","export function get(obj: any, path: string, defaultValue?: any) {\r\n const keys = path.split(\".\");\r\n let result = obj;\r\n\r\n for (const key of keys) {\r\n if (result == null) return defaultValue;\r\n result = result[key];\r\n }\r\n\r\n return result === undefined ? defaultValue : result;\r\n}\r\n","export function capitalize(str: string): string {\r\n if (!str) return str;\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/array/chunk.ts","../src/array/unique.ts","../src/function/debounce.ts","../src/object/get.ts","../src/string/capitalize.ts"],"names":["chunk","arr","size","result","i","unique","array","debounce","fn","delay","timeout","args","get","obj","path","defaultValue","keys","key","capitalize","str"],"mappings":"AAAO,SAASA,CAAAA,CAASC,CAAAA,CAAUC,CAAAA,CAAqB,CACtD,IAAMC,CAAAA,CAAgB,EAAC,CAEvB,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIH,CAAAA,CAAI,OAAQG,CAAAA,EAAKF,CAAAA,CACnCC,CAAAA,CAAO,IAAA,CAAKF,CAAAA,CAAI,KAAA,CAAMG,CAAAA,CAAGA,CAAAA,CAAIF,CAAI,CAAC,CAAA,CAGpC,OAAOC,CACT,CCRO,SAASE,CAAAA,CAAUC,CAAAA,CAAiB,CACzC,OAAO,CAAC,GAAG,IAAI,GAAA,CAAIA,CAAK,CAAC,CAC3B,CCFO,SAASC,CAAAA,CAA6CC,EAAOC,CAAAA,CAAe,CACjF,IAAIC,CAAAA,CAEJ,OAAO,SAAA,GAAaC,CAAAA,CAAqB,CACvC,YAAA,CAAaD,CAAO,CAAA,CAEpBA,CAAAA,CAAU,UAAA,CAAW,IAAM,CACzBF,CAAAA,CAAG,GAAGG,CAAI,EACZ,CAAA,CAAGF,CAAK,EACV,CACF,CCVO,SAASG,CAAAA,CAAIC,CAAAA,CAAUC,CAAAA,CAAcC,CAAAA,CAAoB,CAC9D,IAAMC,CAAAA,CAAOF,CAAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CACvBX,CAAAA,CAASU,CAAAA,CAEb,IAAA,IAAWI,CAAAA,IAAOD,CAAAA,CAAM,CACtB,GAAIb,CAAAA,EAAU,KAAM,OAAOY,CAAAA,CAC3BZ,CAAAA,CAASA,CAAAA,CAAOc,CAAG,EACrB,CAEA,OAAOd,CAAAA,GAAW,MAAA,CAAYY,CAAAA,CAAeZ,CAC/C,CCVO,SAASe,CAAAA,CAAWC,CAAAA,CAAqB,CAC9C,OAAKA,CAAAA,EACEA,CAAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,CAAIA,CAAAA,CAAI,KAAA,CAAM,CAAC,CAClD","file":"index.js","sourcesContent":["export function chunk<T>(arr: T[], size: number): T[][] {\n const result: T[][] = [];\n\n for (let i = 0; i < arr.length; i += size) {\n result.push(arr.slice(i, i + size));\n }\n\n return result;\n}\n","export function unique<T>(array: T[]): T[] {\n return [...new Set(array)];\n}\n","export function debounce<T extends (...args: any[]) => void>(fn: T, delay: number) {\n let timeout: ReturnType<typeof setTimeout>;\n\n return function (...args: Parameters<T>) {\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n","export function get(obj: any, path: string, defaultValue?: any) {\n const keys = path.split(\".\");\n let result = obj;\n\n for (const key of keys) {\n if (result == null) return defaultValue;\n result = result[key];\n }\n\n return result === undefined ? defaultValue : result;\n}\n","export function capitalize(str: string): string {\n if (!str) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n"]}
1
+ {"version":3,"sources":["../src/array/chunk.ts","../src/array/unique.ts","../src/function/debounce.ts","../src/object/get.ts","../src/string/capitalize.ts"],"names":["chunk","arr","size","result","i","unique","array","debounce","fn","delay","timeout","args","get","obj","path","defaultValue","keys","key","capitalize","str"],"mappings":"AAAO,SAASA,CAAAA,CAASC,CAAAA,CAAUC,CAAAA,CAAqB,CACtD,IAAMC,CAAAA,CAAgB,EAAC,CAEvB,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIH,CAAAA,CAAI,OAAQG,CAAAA,EAAKF,CAAAA,CACnCC,CAAAA,CAAO,IAAA,CAAKF,CAAAA,CAAI,KAAA,CAAMG,CAAAA,CAAGA,CAAAA,CAAIF,CAAI,CAAC,CAAA,CAGpC,OAAOC,CACT,CCRO,SAASE,CAAAA,CAAUC,CAAAA,CAAiB,CACzC,OAAO,CAAC,GAAG,IAAI,GAAA,CAAIA,CAAK,CAAC,CAC3B,CCFO,SAASC,CAAAA,CAA6CC,EAAOC,CAAAA,CAAe,CACjF,IAAIC,CAAAA,CAEJ,OAAO,SAAA,GAAaC,CAAAA,CAAqB,CACvC,YAAA,CAAaD,CAAO,CAAA,CAEpBA,CAAAA,CAAU,UAAA,CAAW,IAAM,CACzBF,CAAAA,CAAG,GAAGG,CAAI,EACZ,CAAA,CAAGF,CAAK,EACV,CACF,CCVO,SAASG,CAAAA,CAAIC,CAAAA,CAAUC,CAAAA,CAAcC,CAAAA,CAAoB,CAC9D,IAAMC,CAAAA,CAAOF,CAAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CACvBX,CAAAA,CAASU,CAAAA,CAEb,IAAA,IAAWI,CAAAA,IAAOD,CAAAA,CAAM,CACtB,GAAIb,CAAAA,EAAU,KAAM,OAAOY,CAAAA,CAC3BZ,CAAAA,CAASA,CAAAA,CAAOc,CAAG,EACrB,CAEA,OAAOd,CAAAA,GAAW,MAAA,CAAYY,CAAAA,CAAeZ,CAC/C,CCVO,SAASe,CAAAA,CAAWC,CAAAA,CAAqB,CAC9C,OAAKA,CAAAA,EACEA,CAAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,CAAIA,CAAAA,CAAI,KAAA,CAAM,CAAC,CAClD","file":"index.js","sourcesContent":["export function chunk<T>(arr: T[], size: number): T[][] {\r\n const result: T[][] = [];\r\n\r\n for (let i = 0; i < arr.length; i += size) {\r\n result.push(arr.slice(i, i + size));\r\n }\r\n\r\n return result;\r\n}\r\n","export function unique<T>(array: T[]): T[] {\r\n return [...new Set(array)];\r\n}\r\n","export function debounce<T extends (...args: any[]) => void>(fn: T, delay: number) {\r\n let timeout: ReturnType<typeof setTimeout>;\r\n\r\n return function (...args: Parameters<T>) {\r\n clearTimeout(timeout);\r\n\r\n timeout = setTimeout(() => {\r\n fn(...args);\r\n }, delay);\r\n };\r\n}\r\n","export function get(obj: any, path: string, defaultValue?: any) {\r\n const keys = path.split(\".\");\r\n let result = obj;\r\n\r\n for (const key of keys) {\r\n if (result == null) return defaultValue;\r\n result = result[key];\r\n }\r\n\r\n return result === undefined ? defaultValue : result;\r\n}\r\n","export function capitalize(str: string): string {\r\n if (!str) return str;\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,119 +1,123 @@
1
- {
2
- "name": "@titocandradev/neatcore",
3
- "version": "0.1.0",
4
- "private": false,
5
- "description": "A clean, zero-dependency, TypeScript-first utility core.",
6
- "homepage": "https://github.com/tcandra24/neat-core#readme",
7
- "bugs": {
8
- "url": "https://github.com/tcandra24/neat-core/issues"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/tcandra24/neat-core.git"
13
- },
14
- "license": "MIT",
15
- "author": "Tito Candra",
16
- "type": "module",
17
- "exports": {
18
- ".": {
19
- "import": "./dist/index.js",
20
- "require": "./dist/index.cjs"
21
- }
22
- },
23
- "main": "./dist/index.cjs",
24
- "types": "./dist/index.d.ts",
25
- "directories": {
26
- "test": "tests"
27
- },
28
- "files": [
29
- "dist"
30
- ],
31
- "scripts": {
32
- "dev": "tsup --watch",
33
- "build": "tsup",
34
- "test": "vitest",
35
- "test:run": "vitest run",
36
- "coverage": "vitest run --coverage"
37
- },
38
- "dependencies": {
39
- "acorn": "^8.15.0",
40
- "any-promise": "^1.3.0",
41
- "assertion-error": "^2.0.1",
42
- "ast-v8-to-istanbul": "^0.3.11",
43
- "bundle-require": "^5.1.0",
44
- "cac": "^6.7.14",
45
- "chai": "^6.2.2",
46
- "chokidar": "^4.0.3",
47
- "commander": "^4.1.1",
48
- "confbox": "^0.1.8",
49
- "consola": "^3.4.2",
50
- "debug": "^4.4.3",
51
- "es-module-lexer": "^1.7.0",
52
- "esbuild": "^0.27.3",
53
- "estree-walker": "^3.0.3",
54
- "expect-type": "^1.3.0",
55
- "fdir": "^6.5.0",
56
- "fix-dts-default-cjs-exports": "^1.0.1",
57
- "has-flag": "^4.0.0",
58
- "html-escaper": "^2.0.2",
59
- "istanbul-lib-coverage": "^3.2.2",
60
- "istanbul-lib-report": "^3.0.1",
61
- "istanbul-reports": "^3.2.0",
62
- "joycon": "^3.1.1",
63
- "js-tokens": "^10.0.0",
64
- "lilconfig": "^3.1.3",
65
- "lines-and-columns": "^1.2.4",
66
- "load-tsconfig": "^0.2.5",
67
- "magic-string": "^0.30.21",
68
- "magicast": "^0.5.2",
69
- "make-dir": "^4.0.0",
70
- "mlly": "^1.8.0",
71
- "ms": "^2.1.3",
72
- "mz": "^2.7.0",
73
- "nanoid": "^3.3.11",
74
- "object-assign": "^4.1.1",
75
- "obug": "^2.1.1",
76
- "pathe": "^2.0.3",
77
- "picocolors": "^1.1.1",
78
- "picomatch": "^4.0.3",
79
- "pirates": "^4.0.7",
80
- "pkg-types": "^1.3.1",
81
- "postcss": "^8.5.6",
82
- "postcss-load-config": "^6.0.1",
83
- "readdirp": "^4.1.2",
84
- "resolve-from": "^5.0.0",
85
- "rollup": "^4.57.1",
86
- "semver": "^7.7.4",
87
- "siginfo": "^2.0.0",
88
- "source-map": "^0.7.6",
89
- "source-map-js": "^1.2.1",
90
- "stackback": "^0.0.2",
91
- "std-env": "^3.10.0",
92
- "sucrase": "^3.35.1",
93
- "supports-color": "^7.2.0",
94
- "thenify": "^3.3.1",
95
- "thenify-all": "^1.6.0",
96
- "tinybench": "^2.9.0",
97
- "tinyexec": "^0.3.2",
98
- "tinyglobby": "^0.2.15",
99
- "tinyrainbow": "^3.0.3",
100
- "tree-kill": "^1.2.2",
101
- "ts-interface-checker": "^0.1.13",
102
- "ufo": "^1.6.3",
103
- "undici-types": "^7.16.0",
104
- "vite": "^7.3.1",
105
- "why-is-node-running": "^2.3.0"
106
- },
107
- "devDependencies": {
108
- "@types/node": "^25.2.3",
109
- "@vitest/coverage-v8": "^4.0.18",
110
- "tsup": "^8.5.1",
111
- "typescript": "^5.9.3",
112
- "vitest": "^4.0.18"
113
- },
114
- "publishConfig": {
115
- "access": "public"
116
- },
117
- "sideEffects": false,
118
- "module": "./dist/index.js"
119
- }
1
+ {
2
+ "name": "@titocandradev/neatcore",
3
+ "version": "0.2.0",
4
+ "private": false,
5
+ "description": "A clean, zero-dependency, TypeScript-first utility core.",
6
+ "homepage": "https://github.com/tcandra24/neat-core#readme",
7
+ "bugs": {
8
+ "url": "https://github.com/tcandra24/neat-core/issues"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/tcandra24/neat-core.git"
13
+ },
14
+ "license": "MIT",
15
+ "author": "Tito Candra",
16
+ "keywords": [
17
+ "module",
18
+ "util"
19
+ ],
20
+ "type": "module",
21
+ "exports": {
22
+ ".": {
23
+ "import": "./dist/index.js",
24
+ "require": "./dist/index.cjs"
25
+ }
26
+ },
27
+ "main": "./dist/index.cjs",
28
+ "types": "./dist/index.d.ts",
29
+ "directories": {
30
+ "test": "tests"
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "scripts": {
36
+ "dev": "tsup --watch",
37
+ "build": "tsup",
38
+ "test": "vitest",
39
+ "test:run": "vitest run",
40
+ "coverage": "vitest run --coverage"
41
+ },
42
+ "dependencies": {
43
+ "acorn": "^8.15.0",
44
+ "any-promise": "^1.3.0",
45
+ "assertion-error": "^2.0.1",
46
+ "ast-v8-to-istanbul": "^0.3.11",
47
+ "bundle-require": "^5.1.0",
48
+ "cac": "^6.7.14",
49
+ "chai": "^6.2.2",
50
+ "chokidar": "^4.0.3",
51
+ "commander": "^4.1.1",
52
+ "confbox": "^0.1.8",
53
+ "consola": "^3.4.2",
54
+ "debug": "^4.4.3",
55
+ "es-module-lexer": "^1.7.0",
56
+ "esbuild": "^0.27.3",
57
+ "estree-walker": "^3.0.3",
58
+ "expect-type": "^1.3.0",
59
+ "fdir": "^6.5.0",
60
+ "fix-dts-default-cjs-exports": "^1.0.1",
61
+ "has-flag": "^4.0.0",
62
+ "html-escaper": "^2.0.2",
63
+ "istanbul-lib-coverage": "^3.2.2",
64
+ "istanbul-lib-report": "^3.0.1",
65
+ "istanbul-reports": "^3.2.0",
66
+ "joycon": "^3.1.1",
67
+ "js-tokens": "^10.0.0",
68
+ "lilconfig": "^3.1.3",
69
+ "lines-and-columns": "^1.2.4",
70
+ "load-tsconfig": "^0.2.5",
71
+ "magic-string": "^0.30.21",
72
+ "magicast": "^0.5.2",
73
+ "make-dir": "^4.0.0",
74
+ "mlly": "^1.8.0",
75
+ "ms": "^2.1.3",
76
+ "mz": "^2.7.0",
77
+ "nanoid": "^3.3.11",
78
+ "object-assign": "^4.1.1",
79
+ "obug": "^2.1.1",
80
+ "pathe": "^2.0.3",
81
+ "picocolors": "^1.1.1",
82
+ "picomatch": "^4.0.3",
83
+ "pirates": "^4.0.7",
84
+ "pkg-types": "^1.3.1",
85
+ "postcss": "^8.5.6",
86
+ "postcss-load-config": "^6.0.1",
87
+ "readdirp": "^4.1.2",
88
+ "resolve-from": "^5.0.0",
89
+ "rollup": "^4.57.1",
90
+ "semver": "^7.7.4",
91
+ "siginfo": "^2.0.0",
92
+ "source-map": "^0.7.6",
93
+ "source-map-js": "^1.2.1",
94
+ "stackback": "^0.0.2",
95
+ "std-env": "^3.10.0",
96
+ "sucrase": "^3.35.1",
97
+ "supports-color": "^7.2.0",
98
+ "thenify": "^3.3.1",
99
+ "thenify-all": "^1.6.0",
100
+ "tinybench": "^2.9.0",
101
+ "tinyexec": "^0.3.2",
102
+ "tinyglobby": "^0.2.15",
103
+ "tinyrainbow": "^3.0.3",
104
+ "tree-kill": "^1.2.2",
105
+ "ts-interface-checker": "^0.1.13",
106
+ "ufo": "^1.6.3",
107
+ "undici-types": "^7.16.0",
108
+ "vite": "^7.3.1",
109
+ "why-is-node-running": "^2.3.0"
110
+ },
111
+ "devDependencies": {
112
+ "@types/node": "^25.2.3",
113
+ "@vitest/coverage-v8": "^4.0.18",
114
+ "tsup": "^8.5.1",
115
+ "typescript": "^5.9.3",
116
+ "vitest": "^4.0.18"
117
+ },
118
+ "publishConfig": {
119
+ "access": "public"
120
+ },
121
+ "sideEffects": false,
122
+ "module": "./dist/index.js"
123
+ }