@plyaz/db 0.0.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 +169 -0
- package/dist/adapters/drizzle/DrizzleAdapter.d.ts +269 -0
- package/dist/adapters/drizzle/DrizzleAdapter.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +20 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/sql/SQLAdapter.d.ts +282 -0
- package/dist/adapters/sql/SQLAdapter.d.ts.map +1 -0
- package/dist/adapters/supabase/SupabaseAdapter.d.ts +305 -0
- package/dist/adapters/supabase/SupabaseAdapter.d.ts.map +1 -0
- package/dist/advanced/backup/BackupService.d.ts +159 -0
- package/dist/advanced/backup/BackupService.d.ts.map +1 -0
- package/dist/advanced/backup/index.d.ts +2 -0
- package/dist/advanced/backup/index.d.ts.map +1 -0
- package/dist/advanced/caching/CacheEvict.decorator.d.ts +3 -0
- package/dist/advanced/caching/CacheEvict.decorator.d.ts.map +1 -0
- package/dist/advanced/caching/Cacheable.decorator.d.ts +99 -0
- package/dist/advanced/caching/Cacheable.decorator.d.ts.map +1 -0
- package/dist/advanced/caching/RedisCache.d.ts +417 -0
- package/dist/advanced/caching/RedisCache.d.ts.map +1 -0
- package/dist/advanced/caching/index.d.ts +4 -0
- package/dist/advanced/caching/index.d.ts.map +1 -0
- package/dist/advanced/connection-pool/DynamicPool.d.ts +234 -0
- package/dist/advanced/connection-pool/DynamicPool.d.ts.map +1 -0
- package/dist/advanced/connection-pool/index.d.ts +2 -0
- package/dist/advanced/connection-pool/index.d.ts.map +1 -0
- package/dist/advanced/index.d.ts +8 -0
- package/dist/advanced/index.d.ts.map +1 -0
- package/dist/advanced/monitoring/AlertManager.d.ts +72 -0
- package/dist/advanced/monitoring/AlertManager.d.ts.map +1 -0
- package/dist/advanced/monitoring/MetricsCollector.d.ts +81 -0
- package/dist/advanced/monitoring/MetricsCollector.d.ts.map +1 -0
- package/dist/advanced/monitoring/index.d.ts +3 -0
- package/dist/advanced/monitoring/index.d.ts.map +1 -0
- package/dist/advanced/multi-tenancy/TenantContext.d.ts +52 -0
- package/dist/advanced/multi-tenancy/TenantContext.d.ts.map +1 -0
- package/dist/advanced/multi-tenancy/TenantRepository.d.ts +292 -0
- package/dist/advanced/multi-tenancy/TenantRepository.d.ts.map +1 -0
- package/dist/advanced/multi-tenancy/index.d.ts +3 -0
- package/dist/advanced/multi-tenancy/index.d.ts.map +1 -0
- package/dist/advanced/read-replica/ReadReplicaAdapter.d.ts +516 -0
- package/dist/advanced/read-replica/ReadReplicaAdapter.d.ts.map +1 -0
- package/dist/advanced/read-replica/ReadReplicaManager.d.ts +68 -0
- package/dist/advanced/read-replica/ReadReplicaManager.d.ts.map +1 -0
- package/dist/advanced/read-replica/UseReplica.decorator.d.ts +24 -0
- package/dist/advanced/read-replica/UseReplica.decorator.d.ts.map +1 -0
- package/dist/advanced/read-replica/index.d.ts +3 -0
- package/dist/advanced/read-replica/index.d.ts.map +1 -0
- package/dist/advanced/sharding/ShardKey.d.ts +80 -0
- package/dist/advanced/sharding/ShardKey.d.ts.map +1 -0
- package/dist/advanced/sharding/ShardRouter.d.ts +66 -0
- package/dist/advanced/sharding/ShardRouter.d.ts.map +1 -0
- package/dist/advanced/sharding/index.d.ts +3 -0
- package/dist/advanced/sharding/index.d.ts.map +1 -0
- package/dist/builder/query/index.d.ts +7 -0
- package/dist/builder/query/index.d.ts.map +1 -0
- package/dist/builder/query/orm.d.ts +22 -0
- package/dist/builder/query/orm.d.ts.map +1 -0
- package/dist/builder/query/sql.d.ts +29 -0
- package/dist/builder/query/sql.d.ts.map +1 -0
- package/dist/extensions/AuditExtension.d.ts +468 -0
- package/dist/extensions/AuditExtension.d.ts.map +1 -0
- package/dist/extensions/CachingAdapter.d.ts +451 -0
- package/dist/extensions/CachingAdapter.d.ts.map +1 -0
- package/dist/extensions/EncryptionExtension.d.ts +95 -0
- package/dist/extensions/EncryptionExtension.d.ts.map +1 -0
- package/dist/extensions/ReadReplicaAdapter.d.ts +32 -0
- package/dist/extensions/ReadReplicaAdapter.d.ts.map +1 -0
- package/dist/extensions/SoftDeleteExtension.d.ts +430 -0
- package/dist/extensions/SoftDeleteExtension.d.ts.map +1 -0
- package/dist/extensions/index.d.ts +79 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/factory/AdapterFactory.d.ts +111 -0
- package/dist/factory/AdapterFactory.d.ts.map +1 -0
- package/dist/factory/createDatabaseService.d.ts +121 -0
- package/dist/factory/createDatabaseService.d.ts.map +1 -0
- package/dist/index.cjs +8518 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +8480 -0
- package/dist/index.mjs.map +1 -0
- package/dist/repository/BaseRepository.d.ts +209 -0
- package/dist/repository/BaseRepository.d.ts.map +1 -0
- package/dist/repository/index.d.ts +80 -0
- package/dist/repository/index.d.ts.map +1 -0
- package/dist/security/index.cjs +118 -0
- package/dist/security/index.cjs.map +1 -0
- package/dist/security/index.d.ts +3 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.mjs +114 -0
- package/dist/security/index.mjs.map +1 -0
- package/dist/security/sanitizers/html.sanitizer.d.ts +31 -0
- package/dist/security/sanitizers/html.sanitizer.d.ts.map +1 -0
- package/dist/security/serializers/DataValidation.d.ts +34 -0
- package/dist/security/serializers/DataValidation.d.ts.map +1 -0
- package/dist/service/DatabaseService.d.ts +136 -0
- package/dist/service/DatabaseService.d.ts.map +1 -0
- package/dist/service/EventEmitter.d.ts +110 -0
- package/dist/service/EventEmitter.d.ts.map +1 -0
- package/dist/service/HealthManager.d.ts +166 -0
- package/dist/service/HealthManager.d.ts.map +1 -0
- package/dist/utils/ConfigMerger.d.ts +227 -0
- package/dist/utils/ConfigMerger.d.ts.map +1 -0
- package/dist/utils/databaseResultHelpers.d.ts +98 -0
- package/dist/utils/databaseResultHelpers.d.ts.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/normalizeDetails.d.ts +111 -0
- package/dist/utils/normalizeDetails.d.ts.map +1 -0
- package/dist/utils/pagination.d.ts +77 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/regex.d.ts +199 -0
- package/dist/utils/regex.d.ts.map +1 -0
- package/dist/utils/typeGuards.d.ts +57 -0
- package/dist/utils/typeGuards.d.ts.map +1 -0
- package/dist/utils/validation.d.ts +146 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/package.json +156 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Validation utilities for @plyaz/db package
|
|
3
|
+
*
|
|
4
|
+
* This module provides comprehensive validation functions for database operations
|
|
5
|
+
* including filter validation, table name validation, ID validation, and input sanitization.
|
|
6
|
+
*
|
|
7
|
+
* Part of the @plyaz/db package - a TypeScript database abstraction layer with
|
|
8
|
+
* support for multiple adapters (Drizzle, Supabase, SQL), extensions (audit, encryption,
|
|
9
|
+
* soft delete), and advanced features (caching, read replicas, multi-tenancy).
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
import type { Filter } from "@plyaz/types/db";
|
|
13
|
+
/**
|
|
14
|
+
* Validates a filter object for database queries
|
|
15
|
+
*
|
|
16
|
+
* Performs comprehensive validation of filter objects used across all database adapters
|
|
17
|
+
* (DrizzleAdapter, SupabaseAdapter, SQLAdapter). Ensures field names are safe from
|
|
18
|
+
* SQL injection and operators are supported.
|
|
19
|
+
*
|
|
20
|
+
* @param {Filter} filter - The filter object from @plyaz/types/db to validate
|
|
21
|
+
* @returns {boolean} True if the filter is valid and safe for database operations
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { validateFilter } from '@plyaz/db';
|
|
26
|
+
*
|
|
27
|
+
* // Valid filter for DatabaseService operations
|
|
28
|
+
* const validFilter = { field: 'user_name', operator: 'eq', value: 'john_doe' };
|
|
29
|
+
* console.log(validateFilter(validFilter)); // true
|
|
30
|
+
*
|
|
31
|
+
* // Invalid filter (unsafe field name)
|
|
32
|
+
* const invalidFilter = { field: 'user; DROP TABLE users;', operator: 'eq', value: 'test' };
|
|
33
|
+
* console.log(validateFilter(invalidFilter)); // false
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* Valid database query operators supported across all adapters
|
|
39
|
+
*
|
|
40
|
+
* These operators are validated and supported by:
|
|
41
|
+
* - DrizzleAdapter: Maps to Drizzle ORM operators
|
|
42
|
+
* - SupabaseAdapter: Maps to Supabase query operators
|
|
43
|
+
* - SQLAdapter: Maps to raw SQL WHERE clause operators
|
|
44
|
+
*
|
|
45
|
+
* @constant {string[]} validOperators - List of supported query operators
|
|
46
|
+
*/
|
|
47
|
+
export declare const validOperators: string[];
|
|
48
|
+
export declare function validateFilter(filter: Filter): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Validates a database table name for all supported adapters
|
|
51
|
+
*
|
|
52
|
+
* Ensures table names are safe for use across DrizzleAdapter, SupabaseAdapter, and SQLAdapter.
|
|
53
|
+
* Follows PostgreSQL naming conventions (63 character limit) for maximum compatibility.
|
|
54
|
+
*
|
|
55
|
+
* Validation rules:
|
|
56
|
+
* - Must be a non-empty string
|
|
57
|
+
* - Must start with a letter or underscore
|
|
58
|
+
* - Can only contain letters, numbers, and underscores
|
|
59
|
+
* - Maximum length of 63 characters (PostgreSQL limit)
|
|
60
|
+
*
|
|
61
|
+
* @param {string} name - The table name to validate
|
|
62
|
+
* @returns {boolean} True if the table name is valid for database operations
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* import { validateTableName } from '@plyaz/db';
|
|
67
|
+
*
|
|
68
|
+
* // Valid table names for DatabaseService
|
|
69
|
+
* console.log(validateTableName('users')); // true
|
|
70
|
+
* console.log(validateTableName('user_profiles')); // true
|
|
71
|
+
* console.log(validateTableName('_audit_logs')); // true
|
|
72
|
+
*
|
|
73
|
+
* // Invalid table names
|
|
74
|
+
* console.log(validateTableName('123users')); // false - starts with number
|
|
75
|
+
* console.log(validateTableName('user-profiles')); // false - contains hyphen
|
|
76
|
+
* console.log(validateTableName('')); // false - empty string
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
*/
|
|
80
|
+
export declare function validateTableName(name: string): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Validates a database record ID for all adapter operations
|
|
83
|
+
*
|
|
84
|
+
* Performs security validation of record IDs used in DatabaseService operations
|
|
85
|
+
* across all adapters. Prevents control character injection and ensures reasonable
|
|
86
|
+
* length limits for database performance.
|
|
87
|
+
*
|
|
88
|
+
* Validation rules:
|
|
89
|
+
* - Must be a non-empty string
|
|
90
|
+
* - Maximum length of 255 characters
|
|
91
|
+
* - No control characters (ASCII 0-31, 127)
|
|
92
|
+
*
|
|
93
|
+
* @param {string} id - The record ID to validate
|
|
94
|
+
* @returns {boolean} True if the ID is safe for database operations
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* import { validateId } from '@plyaz/db';
|
|
99
|
+
*
|
|
100
|
+
* // Valid IDs for DatabaseService.findById()
|
|
101
|
+
* console.log(validateId('user_123')); // true
|
|
102
|
+
* console.log(validateId('550e8400-e29b-41d4-a716-446655440000')); // true - UUID
|
|
103
|
+
* console.log(validateId('abc-def-123')); // true
|
|
104
|
+
*
|
|
105
|
+
* // Invalid IDs
|
|
106
|
+
* console.log(validateId('')); // false - empty
|
|
107
|
+
* console.log(validateId('id\x00injection')); // false - control character
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
*/
|
|
111
|
+
export declare function validateId(id: string): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Sanitizes input strings to prevent SQL injection across all database adapters
|
|
114
|
+
*
|
|
115
|
+
* Provides defense-in-depth security for user input used in database operations.
|
|
116
|
+
* Used internally by SQLAdapter and as a fallback security measure for other adapters.
|
|
117
|
+
*
|
|
118
|
+
* **Security Note:** This function complements parameterized queries used by
|
|
119
|
+
* DrizzleAdapter and SupabaseAdapter. SQLAdapter uses this for additional protection.
|
|
120
|
+
*
|
|
121
|
+
* Escapes dangerous characters:
|
|
122
|
+
* - Null bytes, backspace, tab, newline, carriage return
|
|
123
|
+
* - Single and double quotes
|
|
124
|
+
* - Backslashes and percent signs
|
|
125
|
+
* - Control-Z character
|
|
126
|
+
*
|
|
127
|
+
* @param {string} input - The user input string to sanitize
|
|
128
|
+
* @returns {string} The sanitized string with escaped dangerous characters
|
|
129
|
+
* @throws {Error} If input is not a string or sanitization fails
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* import { sanitizeInput } from '@plyaz/db';
|
|
134
|
+
*
|
|
135
|
+
* // Sanitize user input before database operations
|
|
136
|
+
* const userInput = "Robert'); DROP TABLE users; --";
|
|
137
|
+
* const sanitized = sanitizeInput(userInput);
|
|
138
|
+
* console.log(sanitized); // "Robert\\'); DROP TABLE users; --"
|
|
139
|
+
*
|
|
140
|
+
* // Used internally by SQLAdapter for additional security
|
|
141
|
+
* const safeValue = sanitizeInput(userProvidedData);
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
*/
|
|
145
|
+
export declare function sanitizeInput(input: string): string;
|
|
146
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAM9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,UAa1B,CAAC;AAGF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA8EtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkCvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAsC9C;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA4DnD"}
|
package/package.json
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@plyaz/db",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Package description",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"keywords": [],
|
|
7
|
+
"packageManager": "pnpm@10.11.0",
|
|
8
|
+
"main": "./dist/index.cjs",
|
|
9
|
+
"module": "./dist/index.mjs",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.mjs",
|
|
15
|
+
"require": "./dist/index.cjs",
|
|
16
|
+
"default": "./dist/index.mjs"
|
|
17
|
+
},
|
|
18
|
+
"./security": {
|
|
19
|
+
"types": "./dist/security/index.d.ts",
|
|
20
|
+
"import": "./dist/security/index.mjs",
|
|
21
|
+
"require": "./dist/security/index.cjs",
|
|
22
|
+
"default": "./dist/security/index.mjs"
|
|
23
|
+
},
|
|
24
|
+
"./package.json": "./package.json"
|
|
25
|
+
},
|
|
26
|
+
"engines": {
|
|
27
|
+
"node": ">=22.4.0",
|
|
28
|
+
"pnpm": ">=8.0.0"
|
|
29
|
+
},
|
|
30
|
+
"author": "Redeemer Pace",
|
|
31
|
+
"license": "ISC",
|
|
32
|
+
"files": [
|
|
33
|
+
"dist"
|
|
34
|
+
],
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@nestjs/common": "^11.1.3",
|
|
37
|
+
"@plyaz/config": "^1.7.12",
|
|
38
|
+
"@plyaz/errors": "^1.3.5",
|
|
39
|
+
"@plyaz/logger": "^1.3.2",
|
|
40
|
+
"@plyaz/testing": "^1.5.1",
|
|
41
|
+
"@plyaz/types": "^1.15.13",
|
|
42
|
+
"@supabase/supabase-js": "^2.75.0",
|
|
43
|
+
"drizzle-orm": "^0.44.6",
|
|
44
|
+
"ioredis": "^5.8.1",
|
|
45
|
+
"next": "15.4.7",
|
|
46
|
+
"pg": "^8.16.3",
|
|
47
|
+
"react": "^19.1.0",
|
|
48
|
+
"sanitize-html": "^2.17.0",
|
|
49
|
+
"zod": "^4.1.11"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@changesets/cli": "^2.29.5",
|
|
53
|
+
"@darraghor/eslint-plugin-nestjs-typed": "^6.6.2",
|
|
54
|
+
"@eslint/eslintrc": "^3.2.0",
|
|
55
|
+
"@eslint/js": "^9.15.0",
|
|
56
|
+
"@eslint/markdown": "^6.5.0",
|
|
57
|
+
"@next/eslint-plugin-next": "^15.0.3",
|
|
58
|
+
"@plyaz/devtools": "^1.8.5",
|
|
59
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
60
|
+
"@testing-library/react": "^16.3.0",
|
|
61
|
+
"@testing-library/user-event": "^14.6.1",
|
|
62
|
+
"@types/jest": "^30.0.0",
|
|
63
|
+
"@types/node": "^22.14.0",
|
|
64
|
+
"@types/pg": "^8.15.5",
|
|
65
|
+
"@types/react": "^19.1.8",
|
|
66
|
+
"@types/react-dom": "^19.1.6",
|
|
67
|
+
"@types/sanitize-html": "^2.16.0",
|
|
68
|
+
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
|
69
|
+
"@typescript-eslint/parser": "^8.15.0",
|
|
70
|
+
"@vitest/coverage-istanbul": "3.2.4",
|
|
71
|
+
"@vitest/coverage-v8": "^3.1.3",
|
|
72
|
+
"eslint": "^9.29.0",
|
|
73
|
+
"eslint-config-next": "^15.3.3",
|
|
74
|
+
"eslint-config-prettier": "^9.1.0",
|
|
75
|
+
"eslint-import-resolver-typescript": "^3.10.1",
|
|
76
|
+
"eslint-mdx": "^3.5.0",
|
|
77
|
+
"eslint-plugin-better-tailwindcss": "3.2.1",
|
|
78
|
+
"eslint-plugin-functional": "^4.4.1",
|
|
79
|
+
"eslint-plugin-import": "^2.31.0",
|
|
80
|
+
"eslint-plugin-jest": "^28.13.5",
|
|
81
|
+
"eslint-plugin-jsdoc": "^50.8.0",
|
|
82
|
+
"eslint-plugin-jsonc": "^2.20.1",
|
|
83
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
84
|
+
"eslint-plugin-markdownlint": "^0.9.0",
|
|
85
|
+
"eslint-plugin-mdx": "^3.5.0",
|
|
86
|
+
"eslint-plugin-n": "^17.20.0",
|
|
87
|
+
"eslint-plugin-prettier": "^5.5.0",
|
|
88
|
+
"eslint-plugin-promise": "^7.2.1",
|
|
89
|
+
"eslint-plugin-react": "^7.37.2",
|
|
90
|
+
"eslint-plugin-react-hooks": "^5.0.0",
|
|
91
|
+
"eslint-plugin-react-refresh": "^0.4.19",
|
|
92
|
+
"eslint-plugin-regexp": "^2.9.0",
|
|
93
|
+
"eslint-plugin-security": "^3.0.1",
|
|
94
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
95
|
+
"eslint-plugin-sonarjs": "^0.23.0",
|
|
96
|
+
"eslint-plugin-storybook": "^0.12.0",
|
|
97
|
+
"eslint-plugin-testing-library": "^6.5.0",
|
|
98
|
+
"eslint-plugin-unicorn": "^56.0.1",
|
|
99
|
+
"eslint-plugin-unused-imports": "^4.1.4",
|
|
100
|
+
"jiti": "^2.4.2",
|
|
101
|
+
"jsdom": "^26.1.0",
|
|
102
|
+
"markdownlint": "^0.38.0",
|
|
103
|
+
"next": "15.3.3",
|
|
104
|
+
"prettier": "^3.5.3",
|
|
105
|
+
"standard-version": "^9.5.0",
|
|
106
|
+
"tailwindcss": "^4.1.8",
|
|
107
|
+
"tsup": "8.5.0",
|
|
108
|
+
"typescript": "^5",
|
|
109
|
+
"typescript-eslint": "^8.34.0",
|
|
110
|
+
"vite": "^6.3.5",
|
|
111
|
+
"vite-plugin-dts": "^4.5.3",
|
|
112
|
+
"vitest": "3.2.4"
|
|
113
|
+
},
|
|
114
|
+
"peerDependenciesMeta": {
|
|
115
|
+
"react": {
|
|
116
|
+
"optional": true
|
|
117
|
+
},
|
|
118
|
+
"react-dom": {
|
|
119
|
+
"optional": true
|
|
120
|
+
},
|
|
121
|
+
"next": {
|
|
122
|
+
"optional": true
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"scripts": {
|
|
126
|
+
"build": "pnpm clean && pnpm build:js && pnpm build:types",
|
|
127
|
+
"build:js": "tsup",
|
|
128
|
+
"build:types": "tsc -p tsconfig.build.json",
|
|
129
|
+
"build:watch": "tsup --watch",
|
|
130
|
+
"dev": "tsup --watch",
|
|
131
|
+
"lint": "eslint ./src ./tests",
|
|
132
|
+
"lint:fix": "eslint ./src ./tests --fix",
|
|
133
|
+
"format": "prettier --write './**/*.{ts,tsx,js,jsx}'",
|
|
134
|
+
"format:check": "prettier --check './**/*.{ts,tsx,js,jsx}'",
|
|
135
|
+
"type:check": "tsc --noEmit",
|
|
136
|
+
"test": "vitest run --no-watch",
|
|
137
|
+
"test:ci": "vitest run --no-watch",
|
|
138
|
+
"test:watch": "vitest --watch",
|
|
139
|
+
"test:coverage": "vitest run --coverage",
|
|
140
|
+
"test:ui": "vitest --ui",
|
|
141
|
+
"clean": "rm -rf dist",
|
|
142
|
+
"audit": "pnpm audit",
|
|
143
|
+
"audit:moderate": "pnpm audit --audit-level moderate",
|
|
144
|
+
"audit:high": "pnpm audit --audit-level high",
|
|
145
|
+
"audit:critical": "pnpm audit --audit-level critical",
|
|
146
|
+
"audit:fix": "pnpm audit --fix",
|
|
147
|
+
"audit:enhanced": "npx audit-ci --moderate",
|
|
148
|
+
"security:check": "pnpm audit:moderate && npx audit-ci --moderate",
|
|
149
|
+
"remove:unused": "pnpm remove:unused:fnc && pnpm remove:unused:interfaces",
|
|
150
|
+
"remove:unused:interfaces": "pnpm exec ./node_modules/@plyaz/devtools/scripts/check_types.ts --remove --report=./internal-reports/unused-types-report.md",
|
|
151
|
+
"remove:unused:fnc": "pnpm exec ./node_modules/@plyaz/devtools/scripts/check_fnc.ts --report=./internal-reports/unused-declarations.md",
|
|
152
|
+
"check:dependencies": "npx tsx ./node_modules/@plyaz/devtools/scripts/check_dependencies_versions.ts --report=./internal-reports/dependency-report.md",
|
|
153
|
+
"move:types": "npx tsx ./scripts/move_types.ts src/ --report=internal-reports/moved_types.md",
|
|
154
|
+
"move:constants": "npx tsx ./node_modules/@plyaz/devtools/scripts/move_constants.ts src/ --report=internal-reports/moved_consts.md"
|
|
155
|
+
}
|
|
156
|
+
}
|