@adaptic/backend-legacy 0.0.70 → 0.0.72
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/client.cjs +1 -1
- package/config/jwtConfig.cjs +52 -0
- package/config/jwtConfig.d.ts +16 -0
- package/config/jwtConfig.d.ts.map +1 -0
- package/config/jwtConfig.js.map +1 -0
- package/config/metrics.cjs +261 -0
- package/config/metrics.d.ts +88 -0
- package/config/metrics.d.ts.map +1 -0
- package/config/metrics.js.map +1 -0
- package/config/persisted-queries.cjs +122 -0
- package/config/persisted-queries.d.ts +40 -0
- package/config/persisted-queries.d.ts.map +1 -0
- package/config/persisted-queries.js.map +1 -0
- package/config/tracing.cjs +128 -0
- package/config/tracing.d.ts +24 -0
- package/config/tracing.d.ts.map +1 -0
- package/config/tracing.js.map +1 -0
- package/middleware/audit-logger.cjs +223 -0
- package/middleware/audit-logger.d.ts +85 -0
- package/middleware/audit-logger.d.ts.map +1 -0
- package/middleware/audit-logger.js.map +1 -0
- package/middleware/auth.cjs +44 -0
- package/middleware/auth.d.ts +6 -0
- package/middleware/auth.d.ts.map +1 -0
- package/middleware/auth.js.map +1 -0
- package/middleware/graphql-validation-plugin.cjs +164 -0
- package/middleware/graphql-validation-plugin.d.ts +37 -0
- package/middleware/graphql-validation-plugin.d.ts.map +1 -0
- package/middleware/graphql-validation-plugin.js.map +1 -0
- package/middleware/index.cjs +46 -0
- package/middleware/index.d.ts +13 -0
- package/middleware/index.d.ts.map +1 -0
- package/middleware/index.js.map +1 -0
- package/middleware/input-validator.cjs +220 -0
- package/middleware/input-validator.d.ts +63 -0
- package/middleware/input-validator.d.ts.map +1 -0
- package/middleware/input-validator.js.map +1 -0
- package/middleware/query-complexity.cjs +182 -0
- package/middleware/query-complexity.d.ts +56 -0
- package/middleware/query-complexity.d.ts.map +1 -0
- package/middleware/query-complexity.js.map +1 -0
- package/middleware/rate-limiter.cjs +112 -0
- package/middleware/rate-limiter.d.ts +16 -0
- package/middleware/rate-limiter.d.ts.map +1 -0
- package/middleware/rate-limiter.js.map +1 -0
- package/middleware/soft-delete.cjs +175 -0
- package/middleware/soft-delete.d.ts +146 -0
- package/middleware/soft-delete.d.ts.map +1 -0
- package/middleware/soft-delete.js.map +1 -0
- package/middleware/types.cjs +17 -0
- package/middleware/types.d.ts +87 -0
- package/middleware/types.d.ts.map +1 -0
- package/middleware/types.js.map +1 -0
- package/middleware/validation-examples.cjs +403 -0
- package/middleware/validation-examples.d.ts +76 -0
- package/middleware/validation-examples.d.ts.map +1 -0
- package/middleware/validation-examples.js.map +1 -0
- package/package.json +5 -1
- package/utils/index.cjs +75 -0
- package/utils/index.d.ts +20 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js.map +1 -0
- package/utils/logger.cjs +31 -0
- package/utils/logger.d.ts +9 -0
- package/utils/logger.d.ts.map +1 -0
- package/utils/logger.js.map +1 -0
- package/validators/allocation-validator.cjs +85 -0
- package/validators/allocation-validator.d.ts +32 -0
- package/validators/allocation-validator.d.ts.map +1 -0
- package/validators/allocation-validator.js.map +1 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example usage of validation functions in custom resolvers
|
|
3
|
+
*
|
|
4
|
+
* This file demonstrates how to use the validation utilities
|
|
5
|
+
* in custom resolver implementations.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Example: Portfolio allocation input with validation
|
|
9
|
+
*/
|
|
10
|
+
declare class PortfolioAllocationInput {
|
|
11
|
+
equitiesPct: number;
|
|
12
|
+
optionsPct: number;
|
|
13
|
+
cryptoPct: number;
|
|
14
|
+
portfolioName: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Example: Trade configuration input with validation
|
|
18
|
+
*/
|
|
19
|
+
declare class TradeConfigurationInput {
|
|
20
|
+
tradeAllocationPct: number;
|
|
21
|
+
minPercentageChange: number;
|
|
22
|
+
volumeThreshold: number;
|
|
23
|
+
quantity: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Example resolver demonstrating manual validation in custom resolvers
|
|
27
|
+
*
|
|
28
|
+
* Note: With the validation plugin enabled, these validations happen
|
|
29
|
+
* automatically. This example shows how to add ADDITIONAL custom validation
|
|
30
|
+
* logic beyond the automatic pattern-based validation.
|
|
31
|
+
*/
|
|
32
|
+
export declare class ValidationExamplesResolver {
|
|
33
|
+
/**
|
|
34
|
+
* Example 1: Basic field validation in a mutation
|
|
35
|
+
*/
|
|
36
|
+
updatePortfolioAllocation(input: PortfolioAllocationInput): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* Example 2: Batch validation using validateFields
|
|
39
|
+
*/
|
|
40
|
+
updateTradeConfiguration(input: TradeConfigurationInput): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Example 3: Conditional validation based on business logic
|
|
43
|
+
*/
|
|
44
|
+
createTrade(quantity: number, isPremiumUser: boolean): Promise<boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Example 4: Validating related fields together
|
|
47
|
+
*/
|
|
48
|
+
setTradingThresholds(minPrice: number, maxPrice: number, targetPrice: number): Promise<boolean>;
|
|
49
|
+
/**
|
|
50
|
+
* Example 5: Using manual validation for non-standard field names
|
|
51
|
+
*/
|
|
52
|
+
updateCustomSettings(customAllocation: number, customQuantity: number): Promise<boolean>;
|
|
53
|
+
/**
|
|
54
|
+
* Example 6: Accumulating multiple validation errors
|
|
55
|
+
*/
|
|
56
|
+
bulkUpdateAllocations(allocations: PortfolioAllocationInput[]): Promise<boolean>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Example: Reusable validation functions for complex business rules
|
|
60
|
+
*/
|
|
61
|
+
export declare class CustomValidators {
|
|
62
|
+
/**
|
|
63
|
+
* Validates that portfolio allocations sum to 100%
|
|
64
|
+
*/
|
|
65
|
+
static validatePortfolioAllocationSum(equities: number, options: number, crypto: number): void;
|
|
66
|
+
/**
|
|
67
|
+
* Validates that a price is within acceptable market bounds
|
|
68
|
+
*/
|
|
69
|
+
static validateMarketPrice(price: number, fieldName: string): void;
|
|
70
|
+
/**
|
|
71
|
+
* Validates Greeks values are within expected ranges
|
|
72
|
+
*/
|
|
73
|
+
static validateGreeks(delta: number, gamma: number, theta: number, vega: number): void;
|
|
74
|
+
}
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=validation-examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-examples.d.ts","sourceRoot":"","sources":["../../src/middleware/validation-examples.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH;;GAEG;AACH,cACM,wBAAwB;IAE5B,WAAW,EAAG,MAAM,CAAC;IAGrB,UAAU,EAAG,MAAM,CAAC;IAGpB,SAAS,EAAG,MAAM,CAAC;IAGnB,aAAa,EAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,cACM,uBAAuB;IAE3B,kBAAkB,EAAG,MAAM,CAAC;IAG5B,mBAAmB,EAAG,MAAM,CAAC;IAG7B,eAAe,EAAG,MAAM,CAAC;IAGzB,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBACa,0BAA0B;IACrC;;OAEG;IAEG,yBAAyB,CACH,KAAK,EAAE,wBAAwB,GACxD,OAAO,CAAC,OAAO,CAAC;IA0BnB;;OAEG;IAEG,wBAAwB,CACF,KAAK,EAAE,uBAAuB,GACvD,OAAO,CAAC,OAAO,CAAC;IA6BnB;;OAEG;IAEG,WAAW,CACc,QAAQ,EAAE,MAAM,EACX,aAAa,EAAE,OAAO,GACvD,OAAO,CAAC,OAAO,CAAC;IAmBnB;;OAEG;IAEG,oBAAoB,CACK,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClD,OAAO,CAAC,OAAO,CAAC;IA8BnB;;OAEG;IAEG,oBAAoB,CACa,gBAAgB,EAAE,MAAM,EAC1B,cAAc,EAAE,MAAM,GACxD,OAAO,CAAC,OAAO,CAAC;IAUnB;;OAEG;IAEG,qBAAqB,CAEzB,WAAW,EAAE,wBAAwB,EAAE,GACtC,OAAO,CAAC,OAAO,CAAC;CA+BpB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,8BAA8B,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,IAAI;IAeP;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAgBlE;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,IAAI;CAoDR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-examples.js","sourceRoot":"","sources":["../../src/middleware/validation-examples.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptic/backend-legacy",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.72",
|
|
4
4
|
"description": "Backend executable CRUD functions with dynamic variables construction, and type definitions for the Adaptic AI platform.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
"esm/",
|
|
21
21
|
"server/",
|
|
22
22
|
"resolvers/",
|
|
23
|
+
"utils/",
|
|
24
|
+
"validators/",
|
|
25
|
+
"config/",
|
|
26
|
+
"middleware/",
|
|
23
27
|
"*.d.ts",
|
|
24
28
|
"*.js",
|
|
25
29
|
"*.cjs",
|
package/utils/index.cjs
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Utils module index
|
|
4
|
+
* Re-exports utility functions for CRUD operations
|
|
5
|
+
*
|
|
6
|
+
* This file provides a utils/index.mjs export path for ESM imports
|
|
7
|
+
* from generated CRUD files that import from './utils/index.mjs'
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.removeUndefinedProps = removeUndefinedProps;
|
|
11
|
+
/**
|
|
12
|
+
* Recursively removes undefined and null properties from an object or array.
|
|
13
|
+
*
|
|
14
|
+
* This utility is called by generated CRUD functions to clean GraphQL variables
|
|
15
|
+
* before passing them to Apollo Client. The input objects contain Prisma-typed
|
|
16
|
+
* fields (Date, Decimal, bigint, JsonValue, nested relations, etc.) which cannot
|
|
17
|
+
* be enumerated exhaustively. The return value is used as Apollo OperationVariables.
|
|
18
|
+
*
|
|
19
|
+
* We use Record<string, unknown> for the parameter to accept all generated Prisma
|
|
20
|
+
* input shapes without needing to enumerate every possible field type.
|
|
21
|
+
*/
|
|
22
|
+
function removeUndefinedProps(obj) {
|
|
23
|
+
if (Array.isArray(obj)) {
|
|
24
|
+
return obj
|
|
25
|
+
.map((item) => removeUndefinedProps(item))
|
|
26
|
+
.filter((item) => item !== undefined &&
|
|
27
|
+
item !== null &&
|
|
28
|
+
(typeof item !== 'object' ||
|
|
29
|
+
Object.keys(item).length > 0));
|
|
30
|
+
}
|
|
31
|
+
else if (typeof obj === 'object' &&
|
|
32
|
+
obj !== null &&
|
|
33
|
+
!(obj instanceof Date)) {
|
|
34
|
+
const record = obj;
|
|
35
|
+
return Object.keys(record).reduce((acc, key) => {
|
|
36
|
+
const value = record[key];
|
|
37
|
+
if (value !== undefined && value !== null) {
|
|
38
|
+
let cleanedValue;
|
|
39
|
+
if (key === 'where' &&
|
|
40
|
+
typeof value === 'object' &&
|
|
41
|
+
value !== null &&
|
|
42
|
+
!(value instanceof Date)) {
|
|
43
|
+
const whereObj = value;
|
|
44
|
+
if (Object.prototype.hasOwnProperty.call(whereObj, 'id') &&
|
|
45
|
+
whereObj.id !== undefined) {
|
|
46
|
+
// Retain only the 'id' field within 'where'
|
|
47
|
+
cleanedValue = {
|
|
48
|
+
id: removeUndefinedProps(whereObj.id),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Process 'where' object normally if 'id' is undefined or doesn't exist
|
|
53
|
+
cleanedValue = removeUndefinedProps(value);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
// Process other keys normally
|
|
58
|
+
cleanedValue = removeUndefinedProps(value);
|
|
59
|
+
}
|
|
60
|
+
if (cleanedValue !== undefined &&
|
|
61
|
+
cleanedValue !== null &&
|
|
62
|
+
(typeof cleanedValue !== 'object' ||
|
|
63
|
+
cleanedValue instanceof Date ||
|
|
64
|
+
Object.keys(cleanedValue).length > 0)) {
|
|
65
|
+
acc[key] = cleanedValue;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return acc;
|
|
69
|
+
}, {});
|
|
70
|
+
}
|
|
71
|
+
return obj !== undefined && obj !== null
|
|
72
|
+
? obj
|
|
73
|
+
: undefined;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
package/utils/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utils module index
|
|
3
|
+
* Re-exports utility functions for CRUD operations
|
|
4
|
+
*
|
|
5
|
+
* This file provides a utils/index.mjs export path for ESM imports
|
|
6
|
+
* from generated CRUD files that import from './utils/index.mjs'
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Recursively removes undefined and null properties from an object or array.
|
|
10
|
+
*
|
|
11
|
+
* This utility is called by generated CRUD functions to clean GraphQL variables
|
|
12
|
+
* before passing them to Apollo Client. The input objects contain Prisma-typed
|
|
13
|
+
* fields (Date, Decimal, bigint, JsonValue, nested relations, etc.) which cannot
|
|
14
|
+
* be enumerated exhaustively. The return value is used as Apollo OperationVariables.
|
|
15
|
+
*
|
|
16
|
+
* We use Record<string, unknown> for the parameter to accept all generated Prisma
|
|
17
|
+
* input shapes without needing to enumerate every possible field type.
|
|
18
|
+
*/
|
|
19
|
+
export declare function removeUndefinedProps(obj: Record<string, unknown> | Record<string, unknown>[] | unknown): Record<string, unknown> | undefined;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,GACjE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAmErC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAaH,oDAqEC;AAhFD;;;;;;;;;;GAUG;AACH,SAAgB,oBAAoB,CAClC,GAAkE;IAElE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG;aACP,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;aACzC,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,IAAI;YACb,CAAC,OAAO,IAAI,KAAK,QAAQ;gBACvB,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CACvB,CAAC;IAC5C,CAAC;SAAM,IACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EACtB,CAAC;QACD,MAAM,MAAM,GAAG,GAA8B,CAAC;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAA4B,EAAE,GAAG,EAAE,EAAE;YACtE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAE1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,YAAqB,CAAC;gBAE1B,IACE,GAAG,KAAK,OAAO;oBACf,OAAO,KAAK,KAAK,QAAQ;oBACzB,KAAK,KAAK,IAAI;oBACd,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EACxB,CAAC;oBACD,MAAM,QAAQ,GAAG,KAAgC,CAAC;oBAClD,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;wBACpD,QAAQ,CAAC,EAAE,KAAK,SAAS,EACzB,CAAC;wBACD,4CAA4C;wBAC5C,YAAY,GAAG;4BACb,EAAE,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAA6B,CAAC;yBACjE,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,wEAAwE;wBACxE,YAAY,GAAG,oBAAoB,CACjC,KAAgC,CACjC,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,8BAA8B;oBAC9B,YAAY,GAAG,oBAAoB,CAAC,KAAgC,CAAC,CAAC;gBACxE,CAAC;gBAED,IACE,YAAY,KAAK,SAAS;oBAC1B,YAAY,KAAK,IAAI;oBACrB,CAAC,OAAO,YAAY,KAAK,QAAQ;wBAC/B,YAAY,YAAY,IAAI;wBAC5B,MAAM,CAAC,IAAI,CAAC,YAAuC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAClE,CAAC;oBACD,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QACtC,CAAC,CAAE,GAA+B;QAClC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
|
package/utils/logger.cjs
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logger = void 0;
|
|
4
|
+
function formatLogEntry(level, service, message, meta) {
|
|
5
|
+
const entry = {
|
|
6
|
+
level,
|
|
7
|
+
message,
|
|
8
|
+
timestamp: new Date().toISOString(),
|
|
9
|
+
service,
|
|
10
|
+
...meta,
|
|
11
|
+
};
|
|
12
|
+
return JSON.stringify(entry);
|
|
13
|
+
}
|
|
14
|
+
function createLogger(service) {
|
|
15
|
+
return {
|
|
16
|
+
info: (message, meta) => {
|
|
17
|
+
process.stdout.write(formatLogEntry('info', service, message, meta) + '\n');
|
|
18
|
+
},
|
|
19
|
+
warn: (message, meta) => {
|
|
20
|
+
process.stdout.write(formatLogEntry('warn', service, message, meta) + '\n');
|
|
21
|
+
},
|
|
22
|
+
error: (message, meta) => {
|
|
23
|
+
process.stderr.write(formatLogEntry('error', service, message, meta) + '\n');
|
|
24
|
+
},
|
|
25
|
+
debug: (message, meta) => {
|
|
26
|
+
process.stdout.write(formatLogEntry('debug', service, message, meta) + '\n');
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.logger = createLogger('backend-legacy');
|
|
31
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface Logger {
|
|
2
|
+
info: (message: string, meta?: Record<string, unknown>) => void;
|
|
3
|
+
warn: (message: string, meta?: Record<string, unknown>) => void;
|
|
4
|
+
error: (message: string, meta?: Record<string, unknown>) => void;
|
|
5
|
+
debug: (message: string, meta?: Record<string, unknown>) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const logger: Logger;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAUA,UAAU,MAAM;IACd,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACjE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClE;AA2CD,eAAO,MAAM,MAAM,QAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;AAiBA,SAAS,cAAc,CACrB,KAAe,EACf,OAAe,EACf,OAAe,EACf,IAA8B;IAE9B,MAAM,KAAK,GAAa;QACtB,KAAK;QACL,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;QACP,GAAG,IAAI;KACR,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO;QACL,IAAI,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAQ,EAAE;YAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAQ,EAAE;YAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CACtD,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAQ,EAAE;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CACvD,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAQ,EAAE;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CACvD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAEY,QAAA,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Validation utilities for Allocation model
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateAllocationPercentages = validateAllocationPercentages;
|
|
7
|
+
exports.assertValidAllocation = assertValidAllocation;
|
|
8
|
+
/**
|
|
9
|
+
* Validates allocation percentages ensuring they sum to 100% and meet other constraints
|
|
10
|
+
* @param values - Allocation values to validate
|
|
11
|
+
* @returns Validation result with errors if any
|
|
12
|
+
*/
|
|
13
|
+
function validateAllocationPercentages(values) {
|
|
14
|
+
var _a, _b, _c, _d, _e, _f;
|
|
15
|
+
const errors = [];
|
|
16
|
+
// Default values matching schema defaults
|
|
17
|
+
const equities = (_a = values.equities) !== null && _a !== void 0 ? _a : 70;
|
|
18
|
+
const optionsContracts = (_b = values.optionsContracts) !== null && _b !== void 0 ? _b : 5;
|
|
19
|
+
const futures = (_c = values.futures) !== null && _c !== void 0 ? _c : 0;
|
|
20
|
+
const etfs = (_d = values.etfs) !== null && _d !== void 0 ? _d : 10;
|
|
21
|
+
const forex = (_e = values.forex) !== null && _e !== void 0 ? _e : 0;
|
|
22
|
+
const crypto = (_f = values.crypto) !== null && _f !== void 0 ? _f : 15;
|
|
23
|
+
// Validate all values are numbers
|
|
24
|
+
const fields = [
|
|
25
|
+
{ name: 'equities', value: equities },
|
|
26
|
+
{ name: 'optionsContracts', value: optionsContracts },
|
|
27
|
+
{ name: 'futures', value: futures },
|
|
28
|
+
{ name: 'etfs', value: etfs },
|
|
29
|
+
{ name: 'forex', value: forex },
|
|
30
|
+
{ name: 'crypto', value: crypto },
|
|
31
|
+
];
|
|
32
|
+
for (const field of fields) {
|
|
33
|
+
if (typeof field.value !== 'number' || isNaN(field.value)) {
|
|
34
|
+
errors.push({
|
|
35
|
+
field: field.name,
|
|
36
|
+
message: `${field.name} must be a valid number`,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// If any field is not a number, return early
|
|
41
|
+
if (errors.length > 0) {
|
|
42
|
+
return { isValid: false, errors };
|
|
43
|
+
}
|
|
44
|
+
// Validate no negative values
|
|
45
|
+
for (const field of fields) {
|
|
46
|
+
if (field.value < 0) {
|
|
47
|
+
errors.push({
|
|
48
|
+
field: field.name,
|
|
49
|
+
message: `${field.name} cannot be negative`,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Calculate total sum
|
|
54
|
+
const sum = equities + optionsContracts + futures + etfs + forex + crypto;
|
|
55
|
+
// Validate sum is 100% with tolerance for floating point precision
|
|
56
|
+
const MIN_SUM = 99.99;
|
|
57
|
+
const MAX_SUM = 100.01;
|
|
58
|
+
if (sum < MIN_SUM || sum > MAX_SUM) {
|
|
59
|
+
errors.push({
|
|
60
|
+
field: 'allocation',
|
|
61
|
+
message: `Total allocation must sum to 100% (current: ${sum.toFixed(2)}%). ` +
|
|
62
|
+
`Please adjust: equities (${equities}%) + optionsContracts (${optionsContracts}%) + ` +
|
|
63
|
+
`futures (${futures}%) + etfs (${etfs}%) + forex (${forex}%) + crypto (${crypto}%)`,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
isValid: errors.length === 0,
|
|
68
|
+
errors,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Throws an error if allocation validation fails
|
|
73
|
+
* @param values - Allocation values to validate
|
|
74
|
+
* @throws Error with detailed validation message
|
|
75
|
+
*/
|
|
76
|
+
function assertValidAllocation(values) {
|
|
77
|
+
const result = validateAllocationPercentages(values);
|
|
78
|
+
if (!result.isValid) {
|
|
79
|
+
const errorMessages = result.errors
|
|
80
|
+
.map((error) => `${error.field}: ${error.message}`)
|
|
81
|
+
.join('; ');
|
|
82
|
+
throw new Error(`Allocation validation failed: ${errorMessages}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=allocation-validator.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation utilities for Allocation model
|
|
3
|
+
*/
|
|
4
|
+
export interface AllocationValidationError {
|
|
5
|
+
field: string;
|
|
6
|
+
message: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AllocationValidationResult {
|
|
9
|
+
isValid: boolean;
|
|
10
|
+
errors: AllocationValidationError[];
|
|
11
|
+
}
|
|
12
|
+
export interface AllocationValues {
|
|
13
|
+
equities?: number;
|
|
14
|
+
optionsContracts?: number;
|
|
15
|
+
futures?: number;
|
|
16
|
+
etfs?: number;
|
|
17
|
+
forex?: number;
|
|
18
|
+
crypto?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validates allocation percentages ensuring they sum to 100% and meet other constraints
|
|
22
|
+
* @param values - Allocation values to validate
|
|
23
|
+
* @returns Validation result with errors if any
|
|
24
|
+
*/
|
|
25
|
+
export declare function validateAllocationPercentages(values: AllocationValues): AllocationValidationResult;
|
|
26
|
+
/**
|
|
27
|
+
* Throws an error if allocation validation fails
|
|
28
|
+
* @param values - Allocation values to validate
|
|
29
|
+
* @throws Error with detailed validation message
|
|
30
|
+
*/
|
|
31
|
+
export declare function assertValidAllocation(values: AllocationValues): void;
|
|
32
|
+
//# sourceMappingURL=allocation-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allocation-validator.d.ts","sourceRoot":"","sources":["../../src/validators/allocation-validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,yBAAyB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,gBAAgB,GACvB,0BAA0B,CAkE5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAUpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allocation-validator.js","sourceRoot":"","sources":["../../src/validators/allocation-validator.ts"],"names":[],"mappings":"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"}
|