@mrxsys/mrx-core 2.4.0 → 2.5.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/CHANGELOG.md +318 -33
- package/README.md +3 -3
- package/dist/chunk-1a3wj3m1.js +272 -0
- package/dist/chunk-370444pc.js +43 -0
- package/dist/chunk-5qtpggzv.js +38 -0
- package/dist/chunk-84mqvfsk.js +69 -0
- package/dist/chunk-cq973ydc.js +82 -0
- package/dist/chunk-f5z7x01b.js +352 -0
- package/dist/chunk-pc66jgqv.js +220 -0
- package/dist/chunk-s07amdhx.js +77 -0
- package/dist/chunk-v8v7982b.js +58 -0
- package/dist/chunk-vknq69e0.js +23 -0
- package/dist/chunk-yvyahr2h.js +40 -0
- package/dist/errors/baseError.d.ts +9 -0
- package/dist/errors/enums/httpErrorStatusCodes.d.ts +42 -0
- package/dist/errors/httpError.d.ts +14 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.js +11 -0
- package/dist/errors/types/baseErrorOptions.d.ts +15 -0
- package/dist/errors/types/httpErrorOptions.d.ts +13 -0
- package/dist/errors/types/index.d.ts +2 -0
- package/dist/modules/data/data.d.ts +115 -0
- package/dist/modules/data/enums/dataErrorKeys.d.ts +3 -0
- package/dist/modules/data/index.d.ts +1 -0
- package/dist/modules/data/index.js +16 -0
- package/dist/modules/data/transformers/camelCase.d.ts +25 -0
- package/dist/modules/data/transformers/index.d.ts +4 -0
- package/dist/modules/data/transformers/index.js +32 -0
- package/dist/modules/data/transformers/kebabCase.d.ts +25 -0
- package/dist/modules/data/transformers/pascalCase.d.ts +25 -0
- package/dist/modules/data/transformers/snakeCase.d.ts +25 -0
- package/dist/modules/data/types/camelCase.d.ts +1 -0
- package/dist/modules/data/types/caseTransformer.d.ts +13 -0
- package/dist/modules/data/types/index.d.ts +10 -0
- package/dist/modules/data/types/kebabCase.d.ts +1 -0
- package/dist/modules/data/types/pascalCase.d.ts +2 -0
- package/dist/modules/data/types/snakeCase.d.ts +1 -0
- package/dist/modules/data/types/transformKeysCamelCase.d.ts +4 -0
- package/dist/modules/data/types/transformKeysKebabCase.d.ts +4 -0
- package/dist/modules/data/types/transformKeysPascalCase.d.ts +4 -0
- package/dist/modules/data/types/transformKeysSnakeCase.d.ts +4 -0
- package/dist/modules/data/types/transformObjectKeys.d.ts +9 -0
- package/dist/modules/database/enums/databaseErrorKeys.d.ts +28 -0
- package/dist/modules/database/enums/mssqlErrorCode.d.ts +25 -0
- package/dist/modules/database/events/index.d.ts +2 -0
- package/dist/modules/database/events/mssqlEventMap.d.ts +6 -0
- package/dist/modules/database/events/tableEventMap.d.ts +7 -0
- package/dist/modules/database/index.d.ts +2 -0
- package/dist/modules/database/index.js +14 -0
- package/dist/{database → modules/database}/mssql.d.ts +21 -25
- package/dist/{database → modules/database}/table.d.ts +6 -6
- package/dist/modules/database/types/index.d.ts +3 -0
- package/dist/{database → modules/database}/types/mssqlDatabaseOption.d.ts +16 -37
- package/dist/modules/database/types/mssqlEventLog.d.ts +14 -0
- package/dist/modules/database/types/queryContext.d.ts +11 -0
- package/dist/modules/elysia/crud/crud.d.ts +46 -0
- package/dist/modules/elysia/crud/index.d.ts +1 -0
- package/dist/modules/elysia/crud/index.js +299 -0
- package/dist/modules/elysia/crud/types/crudOperationBaseOptions.d.ts +6 -0
- package/dist/modules/elysia/crud/types/crudOperationCountOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationDeleteOneOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationDeleteOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationFindOneOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationFindOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationInsertOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationUpdateOneOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationUpdateOptions.d.ts +2 -0
- package/dist/modules/elysia/crud/types/crudOperationsOptions.d.ts +18 -0
- package/dist/modules/elysia/crud/types/crudOptions.d.ts +23 -0
- package/dist/modules/elysia/crud/types/index.d.ts +11 -0
- package/dist/modules/elysia/crudSchema/crudSchema.d.ts +18 -0
- package/dist/modules/elysia/crudSchema/index.d.ts +1 -0
- package/dist/modules/elysia/crudSchema/index.js +10 -0
- package/dist/modules/elysia/crudSchema/types/adaptiveWhereClauseSchema.d.ts +31 -0
- package/dist/modules/elysia/crudSchema/types/crudModelsType.d.ts +14 -0
- package/dist/modules/elysia/crudSchema/types/crudSchemaOperations.d.ts +10 -0
- package/dist/modules/elysia/crudSchema/types/crudSchemaOptions.d.ts +13 -0
- package/dist/modules/elysia/crudSchema/types/index.d.ts +8 -0
- package/dist/modules/elysia/crudSchema/types/orderSchema.d.ts +11 -0
- package/dist/modules/elysia/crudSchema/types/qSchema.d.ts +15 -0
- package/dist/modules/elysia/crudSchema/types/queryOptionsBuilderOptions.d.ts +11 -0
- package/dist/modules/elysia/crudSchema/types/selectedFieldSchema.d.ts +6 -0
- package/dist/modules/elysia/crudSchema/utils/createAdaptiveWhereClauseSchema.d.ts +17 -0
- package/dist/modules/elysia/crudSchema/utils/createCountResponse200Schema.d.ts +11 -0
- package/dist/modules/elysia/crudSchema/utils/createCountSchema.d.ts +16 -0
- package/dist/modules/elysia/crudSchema/utils/createDeleteSchema.d.ts +18 -0
- package/dist/modules/elysia/crudSchema/utils/createFiltersSchema.d.ts +17 -0
- package/dist/modules/elysia/crudSchema/utils/createFindSchema.d.ts +22 -0
- package/dist/modules/elysia/crudSchema/utils/createIdParamSchema.d.ts +4 -0
- package/dist/modules/elysia/crudSchema/utils/createInsertSchema.d.ts +8 -0
- package/dist/modules/elysia/crudSchema/utils/createOrderSchema.d.ts +12 -0
- package/dist/modules/elysia/crudSchema/utils/createPropertiesSchema.d.ts +12 -0
- package/dist/modules/elysia/crudSchema/utils/createQSchema.d.ts +12 -0
- package/dist/modules/elysia/crudSchema/utils/createResponse200Schema.d.ts +5 -0
- package/dist/modules/elysia/crudSchema/utils/createSelectedFieldsSchema.d.ts +12 -0
- package/dist/modules/elysia/crudSchema/utils/createUpdateOneSchema.d.ts +4 -0
- package/dist/modules/elysia/crudSchema/utils/createUpdateSchema.d.ts +10 -0
- package/dist/modules/elysia/crudSchema/utils/index.d.ts +15 -0
- package/dist/modules/elysia/crudSchema/utils/index.js +37 -0
- package/dist/modules/elysia/crudSchema/utils/isDateFromElysiaTypeBox.d.ts +2 -0
- package/dist/modules/elysia/dbResolver/dbResolver.d.ts +17 -0
- package/dist/modules/elysia/dbResolver/enums/dbResolverErrorKeys.d.ts +3 -0
- package/dist/modules/elysia/dbResolver/index.d.ts +1 -0
- package/dist/modules/elysia/dbResolver/index.js +14 -0
- package/dist/modules/elysia/dbResolver/types/dynamicDbOptions.d.ts +7 -0
- package/dist/modules/elysia/dbResolver/types/index.d.ts +1 -0
- package/dist/modules/elysia/error/error.d.ts +34 -0
- package/dist/modules/elysia/error/index.d.ts +1 -0
- package/dist/modules/elysia/error/index.js +58 -0
- package/dist/modules/elysia/jwt/enums/jwtErrorKeys.d.ts +4 -0
- package/dist/modules/elysia/jwt/index.d.ts +1 -0
- package/dist/modules/elysia/jwt/index.js +81 -0
- package/dist/modules/elysia/jwt/jwt.d.ts +119 -0
- package/dist/modules/elysia/jwt/types/index.d.ts +1 -0
- package/dist/modules/elysia/jwt/types/jwtOptions.d.ts +98 -0
- package/dist/modules/elysia/microservice/index.d.ts +1 -0
- package/dist/modules/elysia/microservice/index.js +96 -0
- package/dist/{elysia → modules/elysia/microservice}/microservice.d.ts +1 -1
- package/dist/modules/elysia/ratelimit/enums/ratelimitErrorKeys.d.ts +3 -0
- package/dist/modules/elysia/ratelimit/index.d.ts +1 -0
- package/dist/modules/elysia/ratelimit/index.js +55 -0
- package/dist/{elysia → modules/elysia/ratelimit}/ratelimit.d.ts +3 -13
- package/dist/modules/elysia/ratelimit/types/index.d.ts +1 -0
- package/dist/{elysia → modules/elysia/ratelimit}/types/rateLimitOptions.d.ts +6 -16
- package/dist/modules/logger/enums/loggerErrorKeys.d.ts +6 -0
- package/dist/modules/logger/events/index.d.ts +1 -0
- package/dist/modules/logger/events/loggerEvents.d.ts +11 -0
- package/dist/modules/logger/index.d.ts +1 -0
- package/dist/modules/logger/index.js +139 -0
- package/dist/modules/logger/logger.d.ts +189 -0
- package/dist/{logger → modules/logger}/strategies/consoleLogger.d.ts +4 -4
- package/dist/{logger → modules/logger}/strategies/fileLogger.d.ts +4 -4
- package/dist/modules/logger/strategies/index.d.ts +2 -0
- package/dist/modules/logger/strategies/index.js +44 -0
- package/dist/modules/logger/types/index.d.ts +6 -0
- package/dist/modules/logger/types/index.js +1 -0
- package/dist/{logger → modules/logger}/types/logStreamChunk.d.ts +4 -4
- package/dist/{logger → modules/logger}/types/loggerStrategy.d.ts +1 -1
- package/dist/modules/mailer/enums/mailerErrorKeys.d.ts +5 -0
- package/dist/modules/mailer/index.d.ts +1 -0
- package/dist/modules/mailer/index.js +64 -0
- package/dist/{mailer → modules/mailer}/smtp.d.ts +6 -6
- package/dist/modules/mailer/types/index.d.ts +3 -0
- package/dist/modules/mailer/types/index.js +1 -0
- package/dist/{mailer → modules/mailer}/types/smtpCredentials.d.ts +2 -2
- package/dist/{mailer → modules/mailer}/types/smtpOptions.d.ts +5 -5
- package/dist/{mailer → modules/mailer}/types/smtpPoolOptions.d.ts +1 -1
- package/dist/modules/repository/index.d.ts +1 -0
- package/dist/modules/repository/index.js +10 -0
- package/dist/modules/repository/repository.d.ts +421 -0
- package/dist/modules/repository/types/adaptiveWhereClause.d.ts +30 -0
- package/dist/modules/repository/types/filter.d.ts +43 -0
- package/dist/modules/repository/types/index.d.ts +8 -0
- package/dist/modules/repository/types/index.js +1 -0
- package/dist/modules/repository/types/orderByItem.d.ts +42 -0
- package/dist/modules/repository/types/queryOptions.d.ts +36 -0
- package/dist/{repository → modules/repository}/types/queryOptionsExtendPagination.d.ts +2 -2
- package/dist/{repository → modules/repository}/types/queryOptionsExtendStream.d.ts +1 -1
- package/dist/modules/repository/types/selectedFields.d.ts +37 -0
- package/dist/modules/singletonManager/enums/singletonManagerErrorKeys.d.ts +4 -0
- package/dist/modules/singletonManager/index.d.ts +1 -0
- package/dist/modules/singletonManager/index.js +8 -0
- package/dist/modules/singletonManager/singletonManager.d.ts +75 -0
- package/dist/modules/typedEventEmitter/index.d.ts +1 -0
- package/dist/modules/typedEventEmitter/index.js +7 -0
- package/dist/{typedEventEmitter → modules/typedEventEmitter}/typedEventEmitter.d.ts +33 -11
- package/dist/modules/typedEventEmitter/types/index.d.ts +1 -0
- package/dist/modules/typedEventEmitter/types/index.js +1 -0
- package/dist/utils/enums/utilsErrorKeys.d.ts +3 -0
- package/dist/utils/env.d.ts +1 -1
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/index.js +32 -1
- package/dist/utils/isDateString.d.ts +16 -0
- package/dist/utils/stream.d.ts +12 -1
- package/dist/utils/types/index.d.ts +1 -1
- package/dist/utils/types/streamWithAsyncIterable.d.ts +12 -5
- package/package.json +128 -128
- package/dist/chunk-1c7w5cx7.js +0 -3
- package/dist/chunk-40pg2cqx.js +0 -2
- package/dist/chunk-4v4tp5qj.js +0 -2
- package/dist/chunk-4w7nd4nw.js +0 -2
- package/dist/chunk-5nvsx7md.js +0 -2
- package/dist/chunk-89mnpfvy.js +0 -2
- package/dist/chunk-91srr77d.js +0 -2
- package/dist/chunk-9hj714bv.js +0 -2
- package/dist/chunk-9rss6865.js +0 -2
- package/dist/chunk-df9xr1f5.js +0 -2
- package/dist/chunk-dq00mfya.js +0 -2
- package/dist/chunk-fnb68m68.js +0 -2
- package/dist/chunk-g6a16nyh.js +0 -2
- package/dist/chunk-gtgpa8nc.js +0 -2
- package/dist/chunk-gxjax5n3.js +0 -2
- package/dist/chunk-h9er1sh5.js +0 -2
- package/dist/chunk-mwpajm9x.js +0 -2
- package/dist/chunk-n5w9cwwg.js +0 -2
- package/dist/chunk-pt7wrvtr.js +0 -2
- package/dist/chunk-qndyhwdn.js +0 -2
- package/dist/chunk-v5dfx8mh.js +0 -2
- package/dist/chunk-wgq0yyqw.js +0 -2
- package/dist/chunk-wtfcgg9s.js +0 -2
- package/dist/chunk-z00b1r18.js +0 -2
- package/dist/data/data.d.ts +0 -99
- package/dist/data/enums/dataErrorKeys.d.ts +0 -7
- package/dist/data/enums/index.d.ts +0 -1
- package/dist/data/enums/index.js +0 -2
- package/dist/data/index.d.ts +0 -1
- package/dist/data/index.js +0 -2
- package/dist/data/transformers/camelCase.d.ts +0 -25
- package/dist/data/transformers/index.d.ts +0 -4
- package/dist/data/transformers/index.js +0 -2
- package/dist/data/transformers/kebabCase.d.ts +0 -25
- package/dist/data/transformers/pascalCase.d.ts +0 -25
- package/dist/data/transformers/snakeCase.d.ts +0 -25
- package/dist/data/types/index.d.ts +0 -1
- package/dist/data/types/keyTransformer.d.ts +0 -11
- package/dist/database/enums/databaseErrorKeys.d.ts +0 -52
- package/dist/database/enums/index.d.ts +0 -2
- package/dist/database/enums/index.js +0 -2
- package/dist/database/enums/mssqlErrorCode.d.ts +0 -25
- package/dist/database/events/index.d.ts +0 -2
- package/dist/database/events/mssqlEventMap.d.ts +0 -6
- package/dist/database/events/tableEventMap.d.ts +0 -7
- package/dist/database/index.d.ts +0 -2
- package/dist/database/index.js +0 -2
- package/dist/database/types/index.d.ts +0 -3
- package/dist/database/types/mssqlEventLog.d.ts +0 -29
- package/dist/database/types/queryContext.d.ts +0 -11
- package/dist/elysia/advancedSearch.d.ts +0 -460
- package/dist/elysia/crud.d.ts +0 -609
- package/dist/elysia/dynamicDatabaseSelector.d.ts +0 -352
- package/dist/elysia/enums/elysiaErrorKeys.d.ts +0 -12
- package/dist/elysia/enums/httpStatusCode.d.ts +0 -241
- package/dist/elysia/enums/index.d.ts +0 -2
- package/dist/elysia/enums/index.js +0 -2
- package/dist/elysia/error.d.ts +0 -46
- package/dist/elysia/index.d.ts +0 -7
- package/dist/elysia/index.js +0 -2
- package/dist/elysia/jwt.d.ts +0 -46
- package/dist/elysia/schemas/index.d.ts +0 -2
- package/dist/elysia/schemas/index.js +0 -2
- package/dist/elysia/types/crudOptions.d.ts +0 -126
- package/dist/elysia/types/crudRoutes.d.ts +0 -2
- package/dist/elysia/types/dynamicDatabaseSelectorPluginOptions.d.ts +0 -30
- package/dist/elysia/types/index.d.ts +0 -5
- package/dist/elysia/types/jwtOptions.d.ts +0 -92
- package/dist/error/coreError.d.ts +0 -89
- package/dist/error/index.d.ts +0 -1
- package/dist/error/index.js +0 -2
- package/dist/error/types/coreErrorOptions.d.ts +0 -21
- package/dist/error/types/index.d.ts +0 -1
- package/dist/index.d.ts +0 -68
- package/dist/index.js +0 -2
- package/dist/logger/enums/index.d.ts +0 -1
- package/dist/logger/enums/index.js +0 -2
- package/dist/logger/enums/loggerErrorKeys.d.ts +0 -6
- package/dist/logger/events/index.d.ts +0 -1
- package/dist/logger/events/loggerEvents.d.ts +0 -4
- package/dist/logger/index.d.ts +0 -1
- package/dist/logger/index.js +0 -2
- package/dist/logger/logger.d.ts +0 -173
- package/dist/logger/strategies/index.d.ts +0 -2
- package/dist/logger/strategies/index.js +0 -2
- package/dist/logger/types/index.d.ts +0 -6
- package/dist/mailer/enums/index.d.ts +0 -1
- package/dist/mailer/enums/index.js +0 -2
- package/dist/mailer/enums/mailerErrorKeys.d.ts +0 -8
- package/dist/mailer/index.d.ts +0 -1
- package/dist/mailer/index.js +0 -2
- package/dist/mailer/types/index.d.ts +0 -3
- package/dist/repository/index.d.ts +0 -1
- package/dist/repository/index.js +0 -2
- package/dist/repository/repository.d.ts +0 -378
- package/dist/repository/types/advancedSearch.d.ts +0 -47
- package/dist/repository/types/index.d.ts +0 -8
- package/dist/repository/types/orderBy.d.ts +0 -21
- package/dist/repository/types/queryOptions.d.ts +0 -33
- package/dist/repository/types/selectedFields.d.ts +0 -16
- package/dist/repository/types/whereClause.d.ts +0 -15
- package/dist/singletonManager/enums/index.d.ts +0 -1
- package/dist/singletonManager/enums/index.js +0 -2
- package/dist/singletonManager/enums/singletonManagerErrorKeys.d.ts +0 -7
- package/dist/singletonManager/index.d.ts +0 -1
- package/dist/singletonManager/index.js +0 -2
- package/dist/singletonManager/singletonManager.d.ts +0 -112
- package/dist/store/index.d.ts +0 -1
- package/dist/store/index.js +0 -2
- package/dist/store/redis.d.ts +0 -6
- package/dist/typedEventEmitter/index.d.ts +0 -1
- package/dist/typedEventEmitter/index.js +0 -2
- package/dist/typedEventEmitter/types/index.d.ts +0 -1
- package/dist/utils/enums/index.d.ts +0 -1
- package/dist/utils/enums/index.js +0 -2
- package/dist/utils/enums/utilErrorKeys.d.ts +0 -4
- package/dist/utils/isIsoDateString.d.ts +0 -1
- /package/dist/{data → errors}/types/index.js +0 -0
- /package/dist/{database/events → modules/data/types}/index.js +0 -0
- /package/dist/{database/types → modules/database/events}/index.js +0 -0
- /package/dist/{elysia → modules/database}/types/index.js +0 -0
- /package/dist/{error → modules/elysia/crud}/types/index.js +0 -0
- /package/dist/{logger/events → modules/elysia/crudSchema/types}/index.js +0 -0
- /package/dist/{logger → modules/elysia/dbResolver}/types/index.js +0 -0
- /package/dist/{mailer → modules/elysia/jwt}/types/index.js +0 -0
- /package/dist/{elysia → modules/elysia/microservice}/schemas/info.d.ts +0 -0
- /package/dist/{elysia → modules/elysia/microservice}/schemas/ping.d.ts +0 -0
- /package/dist/{repository → modules/elysia/ratelimit}/types/index.js +0 -0
- /package/dist/{typedEventEmitter/types → modules/logger/events}/index.js +0 -0
- /package/dist/{logger → modules/logger}/types/bodiesIntersection.d.ts +0 -0
- /package/dist/{logger → modules/logger}/types/logLevels.d.ts +0 -0
- /package/dist/{logger → modules/logger}/types/strategyBody.d.ts +0 -0
- /package/dist/{logger → modules/logger}/types/strategyMap.d.ts +0 -0
- /package/dist/{repository → modules/repository}/types/transaction.d.ts +0 -0
- /package/dist/{typedEventEmitter → modules/typedEventEmitter}/types/eventMap.d.ts +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// source/errors/baseError.ts
|
|
2
|
+
import { randomUUID } from "crypto";
|
|
3
|
+
|
|
4
|
+
class BaseError extends Error {
|
|
5
|
+
cause;
|
|
6
|
+
_uuid = randomUUID();
|
|
7
|
+
_date = new Date;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super(options?.message, {
|
|
10
|
+
cause: options?.cause
|
|
11
|
+
});
|
|
12
|
+
super.name = "BaseError";
|
|
13
|
+
this.cause = options?.cause;
|
|
14
|
+
}
|
|
15
|
+
get uuid() {
|
|
16
|
+
return this._uuid;
|
|
17
|
+
}
|
|
18
|
+
get date() {
|
|
19
|
+
return this._date;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { BaseError };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// source/modules/typedEventEmitter/typedEventEmitter.ts
|
|
2
|
+
import { EventEmitter } from "events";
|
|
3
|
+
|
|
4
|
+
class TypedEventEmitter extends EventEmitter {
|
|
5
|
+
emit(event, ...args) {
|
|
6
|
+
return super.emit(event, ...args);
|
|
7
|
+
}
|
|
8
|
+
on(event, listener) {
|
|
9
|
+
return super.on(event, listener);
|
|
10
|
+
}
|
|
11
|
+
once(event, listener) {
|
|
12
|
+
return super.once(event, listener);
|
|
13
|
+
}
|
|
14
|
+
addListener(event, listener) {
|
|
15
|
+
return super.addListener(event, listener);
|
|
16
|
+
}
|
|
17
|
+
removeListener(event, listener) {
|
|
18
|
+
return super.removeListener(event, listener);
|
|
19
|
+
}
|
|
20
|
+
off(event, listener) {
|
|
21
|
+
return super.off(event, listener);
|
|
22
|
+
}
|
|
23
|
+
listenerCount(event) {
|
|
24
|
+
return super.listenerCount(event);
|
|
25
|
+
}
|
|
26
|
+
listeners(event) {
|
|
27
|
+
return super.listeners(event);
|
|
28
|
+
}
|
|
29
|
+
rawListeners(event) {
|
|
30
|
+
return super.rawListeners(event);
|
|
31
|
+
}
|
|
32
|
+
prependListener(event, listener) {
|
|
33
|
+
return super.prependListener(event, listener);
|
|
34
|
+
}
|
|
35
|
+
prependOnceListener(event, listener) {
|
|
36
|
+
return super.prependOnceListener(event, listener);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { TypedEventEmitter };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BaseErrorOptions } from './types/baseErrorOptions';
|
|
2
|
+
export declare class BaseError<const TCause = unknown> extends Error {
|
|
3
|
+
readonly cause: TCause | undefined;
|
|
4
|
+
private readonly _uuid;
|
|
5
|
+
private readonly _date;
|
|
6
|
+
constructor(options?: Readonly<BaseErrorOptions<TCause>>);
|
|
7
|
+
get uuid(): string;
|
|
8
|
+
get date(): Date;
|
|
9
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare const HTTP_ERROR_STATUS_CODES: {
|
|
2
|
+
readonly BAD_REQUEST: 400;
|
|
3
|
+
readonly UNAUTHORIZED: 401;
|
|
4
|
+
readonly PAYMENT_REQUIRED: 402;
|
|
5
|
+
readonly FORBIDDEN: 403;
|
|
6
|
+
readonly NOT_FOUND: 404;
|
|
7
|
+
readonly METHOD_NOT_ALLOWED: 405;
|
|
8
|
+
readonly NOT_ACCEPTABLE: 406;
|
|
9
|
+
readonly PROXY_AUTHENTICATION_REQUIRED: 407;
|
|
10
|
+
readonly REQUEST_TIMEOUT: 408;
|
|
11
|
+
readonly CONFLICT: 409;
|
|
12
|
+
readonly GONE: 410;
|
|
13
|
+
readonly LENGTH_REQUIRED: 411;
|
|
14
|
+
readonly PRECONDITION_FAILED: 412;
|
|
15
|
+
readonly PAYLOAD_TOO_LARGE: 413;
|
|
16
|
+
readonly URI_TOO_LONG: 414;
|
|
17
|
+
readonly UNSUPPORTED_MEDIA_TYPE: 415;
|
|
18
|
+
readonly RANGE_NOT_SATISFIABLE: 416;
|
|
19
|
+
readonly EXPECTATION_FAILED: 417;
|
|
20
|
+
readonly IM_A_TEAPOT: 418;
|
|
21
|
+
readonly MISDIRECTED_REQUEST: 421;
|
|
22
|
+
readonly UNPROCESSABLE_ENTITY: 422;
|
|
23
|
+
readonly LOCKED: 423;
|
|
24
|
+
readonly FAILED_DEPENDENCY: 424;
|
|
25
|
+
readonly TOO_EARLY: 425;
|
|
26
|
+
readonly UPGRADE_REQUIRED: 426;
|
|
27
|
+
readonly PRECONDITION_REQUIRED: 428;
|
|
28
|
+
readonly TOO_MANY_REQUESTS: 429;
|
|
29
|
+
readonly REQUEST_HEADER_FIELDS_TOO_LARGE: 431;
|
|
30
|
+
readonly UNAVAILABLE_FOR_LEGAL_REASONS: 451;
|
|
31
|
+
readonly INTERNAL_SERVER_ERROR: 500;
|
|
32
|
+
readonly NOT_IMPLEMENTED: 501;
|
|
33
|
+
readonly BAD_GATEWAY: 502;
|
|
34
|
+
readonly SERVICE_UNAVAILABLE: 503;
|
|
35
|
+
readonly GATEWAY_TIMEOUT: 504;
|
|
36
|
+
readonly HTTP_VERSION_NOT_SUPPORTED: 505;
|
|
37
|
+
readonly VARIANT_ALSO_NEGOTIATES: 506;
|
|
38
|
+
readonly INSUFFICIENT_STORAGE: 507;
|
|
39
|
+
readonly LOOP_DETECTED: 508;
|
|
40
|
+
readonly NOT_EXTENDED: 510;
|
|
41
|
+
readonly NETWORK_AUTHENTICATION_REQUIRED: 511;
|
|
42
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseError } from './baseError';
|
|
2
|
+
import type { HttpErrorOptions } from './types/httpErrorOptions';
|
|
3
|
+
/**
|
|
4
|
+
* Represents an HTTP error with a specific status code.
|
|
5
|
+
*
|
|
6
|
+
* @template TCause - The type of the cause of the error, if any.
|
|
7
|
+
*/
|
|
8
|
+
export declare class HttpError<const TCause = unknown> extends BaseError<TCause> {
|
|
9
|
+
private readonly _httpStatusCode;
|
|
10
|
+
constructor(options?: Readonly<HttpErrorOptions<TCause>>);
|
|
11
|
+
get httpStatusCode(): number;
|
|
12
|
+
get isClientError(): boolean;
|
|
13
|
+
get isServerError(): boolean;
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base options for all error types.
|
|
3
|
+
*
|
|
4
|
+
* @template TCause - The type of the cause of the error
|
|
5
|
+
*/
|
|
6
|
+
export interface BaseErrorOptions<TCause = unknown> {
|
|
7
|
+
/**
|
|
8
|
+
* The error message describing what went wrong
|
|
9
|
+
*/
|
|
10
|
+
message?: string;
|
|
11
|
+
/**
|
|
12
|
+
* The cause of the error, typically another error or additional context
|
|
13
|
+
*/
|
|
14
|
+
cause?: TCause;
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HTTP_ERROR_STATUS_CODES } from '../../errors/enums/httpErrorStatusCodes';
|
|
2
|
+
import type { BaseErrorOptions } from './baseErrorOptions';
|
|
3
|
+
/**
|
|
4
|
+
* Options for HTTP-related errors.
|
|
5
|
+
*
|
|
6
|
+
* @template TCause - The type of the cause of the error
|
|
7
|
+
*/
|
|
8
|
+
export interface HttpErrorOptions<TCause = unknown> extends BaseErrorOptions<TCause> {
|
|
9
|
+
/**
|
|
10
|
+
* The HTTP status code associated with the error
|
|
11
|
+
*/
|
|
12
|
+
httpStatusCode?: keyof typeof HTTP_ERROR_STATUS_CODES | typeof HTTP_ERROR_STATUS_CODES[keyof typeof HTTP_ERROR_STATUS_CODES];
|
|
13
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { CaseTransformer } from './types/caseTransformer';
|
|
2
|
+
import type { TransformObjectKeys } from './types/transformObjectKeys';
|
|
3
|
+
/**
|
|
4
|
+
* Filters the provided data by excluding the specified keys.
|
|
5
|
+
*
|
|
6
|
+
* @template TObject - The type of the data object to filter, must be an object.
|
|
7
|
+
* @template TExcludedKeys - The keys to exclude from the data object.
|
|
8
|
+
* @template TExcludeNullUndefined - Boolean flag type to determine if properties with null or undefined values should be excluded.
|
|
9
|
+
*
|
|
10
|
+
* @param data - The data object to be filtered.
|
|
11
|
+
* @param keys - The array of keys to exclude from the data object. (Can be empty)
|
|
12
|
+
* @param excludeNullUndefined - Flag to determine if properties with null or undefined values should be excluded.
|
|
13
|
+
*
|
|
14
|
+
* @throws ({@link BaseError}) - Throws an error if the data is null or undefined.
|
|
15
|
+
*
|
|
16
|
+
* @returns The filtered data object with the specified keys excluded.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* Excludes the specified keys from the data object and returns a new object with the remaining properties.
|
|
20
|
+
* ```ts
|
|
21
|
+
* const object = { test: 'test', exclude: 'exclude' }; // type is { test: string, exclude: string }
|
|
22
|
+
* const filtered = filterByKeyExclusion(object, ['exclude']); // new type is { test: string }
|
|
23
|
+
* ```
|
|
24
|
+
* @example
|
|
25
|
+
* Excludes the specified keys from the data object and returns a new object with the remaining properties, excluding null or undefined values.
|
|
26
|
+
* ```ts
|
|
27
|
+
* const object = { test: 'test', exclude: 'exclude', nullValue: null, undefinedValue: undefined }; // type is { test: string, exclude: string, nullValue: null, undefinedValue: undefined }
|
|
28
|
+
* const filtered = filterByKeyExclusion(object, ['exclude'], true); // new type is { test: string }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare const filterByKeyExclusion: <TObject extends Readonly<object>, TExcludedKeys extends keyof TObject = never, TExcludeNullUndefined extends boolean = false>(data: Readonly<TObject>, keys: readonly TExcludedKeys[], excludeNullUndefined?: TExcludeNullUndefined) => TExcludeNullUndefined extends true ? Partial<Omit<TObject, TExcludedKeys>> : Omit<TObject, TExcludedKeys>;
|
|
32
|
+
/**
|
|
33
|
+
* Recursively filters the provided data by excluding the specified keys, with an option to exclude null or undefined values.
|
|
34
|
+
* The keys to exclude can be any valid property key and will be applied recursively to all nested objects.
|
|
35
|
+
*
|
|
36
|
+
* @template TObject - The type of the data object to filter, must be an object.
|
|
37
|
+
* @template TExcludedKeys - The keys to exclude from the data object and all nested objects.
|
|
38
|
+
*
|
|
39
|
+
* @param data - The data object to be filtered.
|
|
40
|
+
* @param keys - The array of keys to exclude from the data object and all nested objects. (Can be empty)
|
|
41
|
+
* @param excludeNullUndefined - Flag to determine if properties with null or undefined values should be excluded. Default is false.
|
|
42
|
+
*
|
|
43
|
+
* @throws ({@link BaseError}) - Throws an error if the data is null or undefined and throwIfDataIsNull is true.
|
|
44
|
+
*
|
|
45
|
+
* @returns A new object with the specified keys excluded recursively.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const object = { test: 'test', nested: { exclude: 'exclude', value: 'value' } };
|
|
50
|
+
* const filtered = filterByKeyExclusionRecursive(object, ['exclude']); // new type is { test: string, nested: { value: string } } (add third parameter to exclude null/undefined values)
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare const filterByKeyExclusionRecursive: <TObject extends Readonly<object>, TExcludedKeys extends PropertyKey = never>(data: Readonly<TObject>, keys: readonly TExcludedKeys[], excludeNullUndefined?: boolean) => Record<string, unknown>;
|
|
54
|
+
/**
|
|
55
|
+
* Filters the provided data by including only the specified keys, with an option to exclude null or undefined values.
|
|
56
|
+
*
|
|
57
|
+
* @template TObject - The type of the data object to filter, must be an object.
|
|
58
|
+
* @template TIncludedKeys - The keys to include from the data object.
|
|
59
|
+
* @template TExcludeNullUndefined - Boolean flag type to determine if properties with null or undefined values should be excluded.
|
|
60
|
+
*
|
|
61
|
+
* @param data - The data object to be filtered.
|
|
62
|
+
* @param keys - The array of keys to include in the resulting data object. (Can be empty)
|
|
63
|
+
* @param excludeNullUndefined - Flag to determine if properties with null or undefined values should be excluded.
|
|
64
|
+
*
|
|
65
|
+
* @throws ({@link BaseError}) - Throws an error if the data is null or undefined.
|
|
66
|
+
*
|
|
67
|
+
* @returns The filtered data object with only the specified keys included.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const object = { test: 'test', exclude: 'exclude' }; // type is { test: string, exclude: string }
|
|
72
|
+
* const filtered = filterByKeyInclusion(object, ['test']); // new type is { test: string } (add third parameter to exclude null/undefined values)
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare const filterByKeyInclusion: <TObject extends Readonly<object>, TIncludedKeys extends keyof TObject = never, TExcludeNullUndefined extends boolean = false>(data: Readonly<TObject>, keys: readonly TIncludedKeys[], excludeNullUndefined?: TExcludeNullUndefined, throwIfDataIsNull?: boolean) => TExcludeNullUndefined extends true ? Partial<Pick<TObject, TIncludedKeys>> : Pick<TObject, TIncludedKeys>;
|
|
76
|
+
/**
|
|
77
|
+
* Filters the provided data based on a predicate applied to its values. The resulting object
|
|
78
|
+
* will only include properties whose values satisfy the predicate function. Properties with
|
|
79
|
+
* null or undefined values can be optionally excluded based on the 'excludeNullUndefined' flag.
|
|
80
|
+
* @template TObject - The type of the data to be filtered, constrained to an object type.
|
|
81
|
+
*
|
|
82
|
+
* @param data - The data object to be filtered.
|
|
83
|
+
* @param predicate - The predicate function to apply to the values.
|
|
84
|
+
* @param excludeNullUndefined - Flag to determine if properties with null or undefined values should be excluded. Default is false.
|
|
85
|
+
*
|
|
86
|
+
* @throws ({@link BaseError}) - Throws an error if the data is null or undefined.
|
|
87
|
+
*
|
|
88
|
+
* @returns The filtered data object with properties satisfying the predicate.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* const object = { test: 'test', exclude: 'exclude' };
|
|
93
|
+
* const filtered = filterByValue(object, (value: unknown): boolean => value === 'test'); // you can also add third parameter to exclude null/undefined values
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare const filterByValue: <TObject extends Readonly<object>>(data: Readonly<TObject>, predicate: (value: TObject[keyof TObject]) => boolean, excludeNullUndefined?: boolean, throwIfDataIsNull?: boolean) => TObject;
|
|
97
|
+
/**
|
|
98
|
+
* Transforms the keys of the given object using the current transformation strategy.
|
|
99
|
+
*
|
|
100
|
+
* @template TObject - The type of the object.
|
|
101
|
+
* @template TTransformer - The type of the key transformation strategy.
|
|
102
|
+
*
|
|
103
|
+
* @param data - The object whose keys are to be transformed.
|
|
104
|
+
* @param transformer - The key transformation strategy to use.
|
|
105
|
+
*
|
|
106
|
+
* @throws ({@link CoreError}) - If the provided data object is null or undefined.
|
|
107
|
+
*
|
|
108
|
+
* @returns A new object with transformed keys.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```ts
|
|
112
|
+
* transformKeys({ "my-key": "value" }, new CamelCaseTransformer()); // Returns { myKey: "value" }
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
export declare const transformKeys: <TObject extends Readonly<Record<string, unknown>>, TTransformer extends CaseTransformer>(data: Readonly<TObject>, transformer: Readonly<TTransformer>, throwIfDataIsNull?: boolean) => TransformObjectKeys<TObject, TTransformer>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { filterByKeyExclusion, filterByKeyInclusion, filterByKeyExclusionRecursive, filterByValue, transformKeys } from './data';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
filterByKeyExclusion,
|
|
4
|
+
filterByKeyExclusionRecursive,
|
|
5
|
+
filterByKeyInclusion,
|
|
6
|
+
filterByValue,
|
|
7
|
+
transformKeys
|
|
8
|
+
} from "../../chunk-cq973ydc.js";
|
|
9
|
+
import"../../chunk-vknq69e0.js";
|
|
10
|
+
export {
|
|
11
|
+
transformKeys,
|
|
12
|
+
filterByValue,
|
|
13
|
+
filterByKeyInclusion,
|
|
14
|
+
filterByKeyExclusionRecursive,
|
|
15
|
+
filterByKeyExclusion
|
|
16
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CamelCase } from '../../../modules/data/types/camelCase';
|
|
2
|
+
import type { CaseTransformer } from '../../../modules/data/types/caseTransformer';
|
|
3
|
+
/**
|
|
4
|
+
* Transforms string into `camelCase` format.
|
|
5
|
+
* Implements ({@link CaseTransformer}).
|
|
6
|
+
*/
|
|
7
|
+
export declare class CamelCaseTransformer implements CaseTransformer {
|
|
8
|
+
/**
|
|
9
|
+
* Transforms a string from any case to `camelCase`.
|
|
10
|
+
*
|
|
11
|
+
* @template S - The string type to be transformed.
|
|
12
|
+
*
|
|
13
|
+
* @param str - The string to transform into `camelCase`. {@link S}
|
|
14
|
+
*
|
|
15
|
+
* @returns The string transformed into `camelCase`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* convertCase('MyKeyName'); // "myKeyName"
|
|
19
|
+
* @example
|
|
20
|
+
* convertCase('my-key-name'); // "myKeyName"
|
|
21
|
+
* @example
|
|
22
|
+
* convertCase('my_key_name'); // "myKeyName"
|
|
23
|
+
*/
|
|
24
|
+
convertCase<S extends string>(str: S): CamelCase<S>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// source/modules/data/transformers/camelCase.ts
|
|
3
|
+
class CamelCaseTransformer {
|
|
4
|
+
convertCase(str) {
|
|
5
|
+
return str.replace(/(?:[-_][a-z])/giu, (group) => group[1].toUpperCase()).replace(/^[A-Z]/u, (firstLetter) => firstLetter.toLowerCase());
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
// source/modules/data/transformers/kebabCase.ts
|
|
9
|
+
class KebabCaseTransformer {
|
|
10
|
+
convertCase(str) {
|
|
11
|
+
return str.replace(/_/gu, "-").replace(/(?<=[a-z])(?=[A-Z])/gu, "-").replace(/(?<=[A-Z]+)(?=[A-Z][a-z])/gu, "-").toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
// source/modules/data/transformers/pascalCase.ts
|
|
15
|
+
class PascalCaseTransformer {
|
|
16
|
+
convertCase(str) {
|
|
17
|
+
const camelCaseKey = str.replace(/(?:[-_][a-z])/giu, (group) => group[1].toUpperCase());
|
|
18
|
+
return camelCaseKey.charAt(0).toUpperCase() + camelCaseKey.slice(1);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// source/modules/data/transformers/snakeCase.ts
|
|
22
|
+
class SnakeCaseTransformer {
|
|
23
|
+
convertCase(str) {
|
|
24
|
+
return str.replace(/(?<lower>[a-z])(?<upper>[A-Z])/gu, "$<lower>_$<upper>").replace(/[-\s]/gu, "_").toLowerCase();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
SnakeCaseTransformer,
|
|
29
|
+
PascalCaseTransformer,
|
|
30
|
+
KebabCaseTransformer,
|
|
31
|
+
CamelCaseTransformer
|
|
32
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CaseTransformer } from '../../../modules/data/types/caseTransformer';
|
|
2
|
+
import type { KebabCase } from '../../../modules/data/types/kebabCase';
|
|
3
|
+
/**
|
|
4
|
+
* Transforms string into `kebab-case` format.
|
|
5
|
+
* Implements ({@link CaseTransformer}).
|
|
6
|
+
*/
|
|
7
|
+
export declare class KebabCaseTransformer implements CaseTransformer {
|
|
8
|
+
/**
|
|
9
|
+
* Transforms a single string from any case to `kebab-case`.
|
|
10
|
+
*
|
|
11
|
+
* @template S - The string type to be transformed.
|
|
12
|
+
*
|
|
13
|
+
* @param str - The string to transform into `kebab-case`.
|
|
14
|
+
*
|
|
15
|
+
* @returns The string transformed into `kebab-case`, with all letters in lower case and words separated by hyphens.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* convertCase('myKeyName'); // "my-key-name"
|
|
19
|
+
* @example
|
|
20
|
+
* convertCase('MyKeyName'); // "my-key-name"
|
|
21
|
+
* @example
|
|
22
|
+
* convertCase('my_long_key_name'); // "my-long-key-name"
|
|
23
|
+
*/
|
|
24
|
+
convertCase<S extends string>(str: S): KebabCase<S>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CaseTransformer } from '../../../modules/data/types/caseTransformer';
|
|
2
|
+
import type { PascalCase } from '../../../modules/data/types/pascalCase';
|
|
3
|
+
/**
|
|
4
|
+
* Transforms string into `PascalCase` format.
|
|
5
|
+
* Implements ({@link CaseTransformer}).
|
|
6
|
+
*/
|
|
7
|
+
export declare class PascalCaseTransformer implements CaseTransformer {
|
|
8
|
+
/**
|
|
9
|
+
* Transforms a single string from any case to `PascalCase`.
|
|
10
|
+
*
|
|
11
|
+
* @template S - The string type to be transformed.
|
|
12
|
+
*
|
|
13
|
+
* @param str - The string to transform into `PascalCase`.
|
|
14
|
+
*
|
|
15
|
+
* @returns The string transformed into `PascalCase`, with the first letter of each word capitalized.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* convertCase('my_key_name'); // "MyKeyName"
|
|
19
|
+
* @example
|
|
20
|
+
* convertCase('my-key-name'); // "MyKeyName"
|
|
21
|
+
* @example
|
|
22
|
+
* convertCase('myLongKeyName'); // "MyKeyName"
|
|
23
|
+
*/
|
|
24
|
+
convertCase<S extends string>(str: S): PascalCase<S>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CaseTransformer } from '../../../modules/data/types/caseTransformer';
|
|
2
|
+
import type { SnakeCase } from '../../../modules/data/types/snakeCase';
|
|
3
|
+
/**
|
|
4
|
+
* Transforms string into `snake_case` format.
|
|
5
|
+
* Implements ({@link CaseTransformer}).
|
|
6
|
+
*/
|
|
7
|
+
export declare class SnakeCaseTransformer implements CaseTransformer {
|
|
8
|
+
/**
|
|
9
|
+
* Transforms a single string from any case to `snake_case`.
|
|
10
|
+
*
|
|
11
|
+
* @template S - The string type to be transformed.
|
|
12
|
+
*
|
|
13
|
+
* @param str - The string to transform into `snake_case`.
|
|
14
|
+
*
|
|
15
|
+
* @returns The string transformed into `snake_case`, with underscores between words.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* convertCase('myKeyName'); // "my_key_name"
|
|
19
|
+
* @example
|
|
20
|
+
* convertCase('MyKeyName'); // "my_key_name"
|
|
21
|
+
* @example
|
|
22
|
+
* convertCase('My-Key-Name'); // "my_key_name"
|
|
23
|
+
*/
|
|
24
|
+
convertCase<S extends string>(str: S): SnakeCase<S>;
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type CamelCase<S extends string> = S extends `${infer First}${infer Rest}` ? First extends Uppercase<First> ? `${Lowercase<First>}${CamelCase<Rest>}` : S extends `${infer P1}_${infer P2}${infer P3}` ? `${P1}${Uppercase<P2>}${CamelCase<P3>}` : S extends `${infer P1}-${infer P2}${infer P3}` ? `${P1}${Uppercase<P2>}${CamelCase<P3>}` : S : S;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface CaseTransformer<TTransform extends string = string> {
|
|
2
|
+
/**
|
|
3
|
+
* Transforms a single string from any case to another case.
|
|
4
|
+
*
|
|
5
|
+
* @template TTransform - The type of the transformed string.
|
|
6
|
+
* @template S - The type of the input string.
|
|
7
|
+
*
|
|
8
|
+
* @param str - The string to transform.
|
|
9
|
+
*
|
|
10
|
+
* @returns The string transformed into the desired case.
|
|
11
|
+
*/
|
|
12
|
+
convertCase<S extends string>(str: S): TTransform;
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type { CamelCase } from './camelCase';
|
|
2
|
+
export type { CaseTransformer } from './caseTransformer';
|
|
3
|
+
export type { KebabCase } from './kebabCase';
|
|
4
|
+
export type { PascalCase } from './pascalCase';
|
|
5
|
+
export type { SnakeCase } from './snakeCase';
|
|
6
|
+
export type { TransformKeysCamelCase } from './transformKeysCamelCase';
|
|
7
|
+
export type { TransformKeysKebabCase } from './transformKeysKebabCase';
|
|
8
|
+
export type { TransformKeysPascalCase } from './transformKeysPascalCase';
|
|
9
|
+
export type { TransformKeysSnakeCase } from './transformKeysSnakeCase';
|
|
10
|
+
export type { TransformObjectKeys } from './transformObjectKeys';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type KebabCase<S extends string> = S extends `${infer First}${infer Rest}` ? First extends Uppercase<First> ? `-${Lowercase<First>}${KebabCase<Rest>}` : `${First}${KebabCase<Rest>}` : S;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SnakeCase<S extends string> = S extends `${infer Head}${infer Tail}` ? Head extends Lowercase<Head> ? Tail extends '' ? Head : `${Head}${SnakeCase<Tail>}` : `_${Lowercase<Head>}${SnakeCase<Tail>}` : S;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CamelCaseTransformer } from '../../../modules/data/transformers/camelCase';
|
|
2
|
+
import type { KebabCaseTransformer } from '../../../modules/data/transformers/kebabCase';
|
|
3
|
+
import type { PascalCaseTransformer } from '../../../modules/data/transformers/pascalCase';
|
|
4
|
+
import type { SnakeCaseTransformer } from '../../../modules/data/transformers/snakeCase';
|
|
5
|
+
import type { TransformKeysCamelCase } from './transformKeysCamelCase';
|
|
6
|
+
import type { TransformKeysKebabCase } from './transformKeysKebabCase';
|
|
7
|
+
import type { TransformKeysPascalCase } from './transformKeysPascalCase';
|
|
8
|
+
import type { TransformKeysSnakeCase } from './transformKeysSnakeCase';
|
|
9
|
+
export type TransformObjectKeys<T, TTransformer> = TTransformer extends PascalCaseTransformer ? TransformKeysPascalCase<T> : TTransformer extends KebabCaseTransformer ? TransformKeysKebabCase<T> : TTransformer extends SnakeCaseTransformer ? TransformKeysSnakeCase<T> : TTransformer extends CamelCaseTransformer ? TransformKeysCamelCase<T> : Record<string, T[keyof T]>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const DATABASE_ERROR_KEYS: {
|
|
2
|
+
readonly MSSQL_CONNECTION_ERROR: "mssql.error.database.connection_error";
|
|
3
|
+
readonly MSSQL_DISCONNECT_ERROR: "mssql.error.database.disconnect_error";
|
|
4
|
+
readonly MSSQL_NOT_CONNECTED: "mssql.error.database.not_connected";
|
|
5
|
+
readonly MSSQL_NO_RESULT: "mssql.error.database.no_result";
|
|
6
|
+
readonly MSSQL_QUERY_ERROR: "mssql.error.database.query_error";
|
|
7
|
+
readonly MSSQL_DATABASE_ACCESS_DENIED: "mssql.error.database.access_denied";
|
|
8
|
+
readonly MSSQL_DATABASE_AUTHORIZATION8FAILED: "mssql.error.database.authorization_failed";
|
|
9
|
+
readonly MSSQL_DATABASE_SYNTAX_ERROR: "mssql.error.database.syntax_error";
|
|
10
|
+
readonly MSSQL_DATABASE_COLUMN_NOT_FOUND: "mssql.error.database.column_not_found";
|
|
11
|
+
readonly MSSQL_TABLE_NOT_FOUND: "mssql.error.database.table_not_found";
|
|
12
|
+
readonly MSSQL_DATABASE_AMBIGUOUS_COLUMN: "mssql.error.database.ambiguous_column";
|
|
13
|
+
readonly MSSQL_DATABASE_DUPLICATE_KEY: "mssql.error.database.duplicate_key";
|
|
14
|
+
readonly MSSQL_DATABASE_FOREIGN_KEY_VIOLATION: "mssql.error.database.foreign_key_violation";
|
|
15
|
+
readonly MSSQL_DATABASE_UNIQUE_CONSTRAINT_VIOLATION: "mssql.error.database.unique_constraint_violation";
|
|
16
|
+
readonly MSSQL_DATABASE_DEADLOCK_DETECTED: "mssql.error.database.deadlock_detected";
|
|
17
|
+
readonly MSSQL_DATABASE_RESOURCE_LOCKED: "mssql.error.database.resource_locked";
|
|
18
|
+
readonly MSSQL_DATABASE_TRANSACTION_ABORTED: "mssql.error.database.transaction_aborted";
|
|
19
|
+
readonly MSSQL_DATABASE_INSUFFICIENT_MEMORY: "mssql.error.database.insufficient_memory";
|
|
20
|
+
readonly MSSQL_DATABASE_INSUFFICIENT_STORAGE: "mssql.error.database.insufficient_storage";
|
|
21
|
+
readonly MSSQL_DATABASE_QUERY_TIMEOUT: "mssql.error.database.query_timeout";
|
|
22
|
+
readonly MSSQL_DATABASE_TRANSACTION_LOG_FULL: "mssql.error.database.transaction_log_full";
|
|
23
|
+
readonly MSSQL_DATABASE_DATA_TOO_LARGE: "mssql.error.database.data_too_large";
|
|
24
|
+
readonly MSSQL_DATABASE_PERMISSION_DENIED: "mssql.error.database.permission_denied";
|
|
25
|
+
readonly MSSQL_DATABASE_IDENTITY_INSERT_NOT_ALLOWED: "mssql.error.database.identity_insert_not_allowed";
|
|
26
|
+
readonly MSSQL_DATABSE_CANNOT_UPDATE_IDENTITY_COLUMN: "mssql.error.database.cannot_update_identity_column";
|
|
27
|
+
readonly MSSQL_DATABASE_CONVERSION_FAILED: "mssql.error.database.conversion_failed";
|
|
28
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const MSSQL_ERROR_CODE: {
|
|
2
|
+
readonly 0: "mssql.error.database.query_error";
|
|
3
|
+
readonly 4060: "mssql.error.database.access_denied";
|
|
4
|
+
readonly 18452: "mssql.error.database.authorization_failed";
|
|
5
|
+
readonly 18456: "mssql.error.database.authorization_failed";
|
|
6
|
+
readonly 102: "mssql.error.database.syntax_error";
|
|
7
|
+
readonly 207: "mssql.error.database.column_not_found";
|
|
8
|
+
readonly 208: "mssql.error.database.table_not_found";
|
|
9
|
+
readonly 209: "mssql.error.database.ambiguous_column";
|
|
10
|
+
readonly 2627: "mssql.error.database.duplicate_key";
|
|
11
|
+
readonly 547: "mssql.error.database.foreign_key_violation";
|
|
12
|
+
readonly 2601: "mssql.error.database.unique_constraint_violation";
|
|
13
|
+
readonly 1205: "mssql.error.database.deadlock_detected";
|
|
14
|
+
readonly 1222: "mssql.error.database.resource_locked";
|
|
15
|
+
readonly 3928: "mssql.error.database.transaction_aborted";
|
|
16
|
+
readonly 701: "mssql.error.database.insufficient_memory";
|
|
17
|
+
readonly 1105: "mssql.error.database.insufficient_storage";
|
|
18
|
+
readonly 8645: "mssql.error.database.query_timeout";
|
|
19
|
+
readonly 9002: "mssql.error.database.transaction_log_full";
|
|
20
|
+
readonly 8152: "mssql.error.database.data_too_large";
|
|
21
|
+
readonly 229: "mssql.error.database.permission_denied";
|
|
22
|
+
readonly 544: "mssql.error.database.identity_insert_not_allowed";
|
|
23
|
+
readonly 8102: "mssql.error.database.cannot_update_identity_column";
|
|
24
|
+
readonly 8169: "mssql.error.database.conversion_failed";
|
|
25
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { QueryContext } from '../../../modules/database/types/queryContext';
|
|
2
|
+
export interface TableEventMap {
|
|
3
|
+
readonly selected: [unknown, QueryContext];
|
|
4
|
+
readonly inserted: [unknown, QueryContext];
|
|
5
|
+
readonly updated: [unknown, QueryContext];
|
|
6
|
+
readonly deleted: [unknown, QueryContext];
|
|
7
|
+
}
|