@ironbackend/core 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -100,7 +100,7 @@ getWarnRules(): DesignRule[]
100
100
 
101
101
  ## Related Packages
102
102
 
103
- - [`ironbackend`](https://www.npmjs.com/package/ironbackend) - CLI tool
103
+ - [`@ironbackend/cli`](https://www.npmjs.com/package/@ironbackend/cli) - CLI tool
104
104
  - [`@ironbackend/prompts`](https://www.npmjs.com/package/@ironbackend/prompts) - Prompt builders
105
105
 
106
106
  ## License
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@
9
9
  * - Security & reliability playbooks
10
10
  */
11
11
  export * from './types.js';
12
+ export * from './schema.js';
12
13
  export * as styles from './styles/index.js';
13
14
  export { getStyle, getStyleIds, findStyles, cleanMonolith, modularMonolith, hexagonal, eventDriven, cqrs, microservicesSync, microservicesAsync, serverless, readHeavy, automation, } from './styles/index.js';
14
15
  export * as stacks from './stacks/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAkB7B,eAAO,MAAM,OAAO,QAAe,CAAC;AAOpC;;GAEG;AACH,wBAAgB,UAAU;;;;;EAOzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAkB7B,eAAO,MAAM,OAAO,QAAe,CAAC;AAOpC;;GAEG;AACH,wBAAgB,UAAU;;;;;EAOzB"}
package/dist/index.js CHANGED
@@ -10,6 +10,8 @@
10
10
  */
11
11
  // Types
12
12
  export * from './types.js';
13
+ // Schema Validation
14
+ export * from './schema.js';
13
15
  // Architecture Styles
14
16
  export * as styles from './styles/index.js';
15
17
  export { getStyle, getStyleIds, findStyles, cleanMonolith, modularMonolith, hexagonal, eventDriven, cqrs, microservicesSync, microservicesAsync, serverless, readHeavy, automation, } from './styles/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,sBAAsB;AACtB,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,MAAM,mBAAmB,CAAC;AAE3B,cAAc;AACd,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAE3B,eAAe;AACf,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACb,MAAM,kBAAkB,CAAC;AAE1B,WAAW;AACX,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,GAAG,GAAW,EAAE;IAC5B,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,OAAO,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACL,0BAA0B;QAC1B,OAAO,OAAO,CAAC;IACnB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAEpC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,UAAU;IACtB,OAAO;QACH,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,QAAQ,EAAE,SAAS,CAAC,gBAAgB;KACvC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,oBAAoB;AACpB,cAAc,aAAa,CAAC;AAE5B,sBAAsB;AACtB,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,MAAM,mBAAmB,CAAC;AAE3B,cAAc;AACd,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAE3B,eAAe;AACf,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACb,MAAM,kBAAkB,CAAC;AAE1B,WAAW;AACX,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,GAAG,GAAW,EAAE;IAC5B,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,OAAO,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACL,0BAA0B;QAC1B,OAAO,OAAO,CAAC;IACnB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAEpC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,UAAU;IACtB,OAAO;QACH,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,QAAQ,EAAE,SAAS,CAAC,gBAAgB;KACvC,CAAC;AACN,CAAC"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * IronBackend Configuration Schema
3
+ * Runtime validation using Zod
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const RuleSeveritySchema: z.ZodEnum<["ERROR", "WARN"]>;
7
+ export declare const RuleCategorySchema: z.ZodEnum<["API", "DOMAIN", "ERROR_HANDLING", "TRANSACTIONS", "DATA_ACCESS", "NAMING", "VALIDATION", "ASYNC"]>;
8
+ export declare const RulesConfigSchema: z.ZodObject<{
9
+ enabled: z.ZodArray<z.ZodString, "many">;
10
+ overrides: z.ZodRecord<z.ZodString, z.ZodString>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ enabled: string[];
13
+ overrides: Record<string, string>;
14
+ }, {
15
+ enabled: string[];
16
+ overrides: Record<string, string>;
17
+ }>;
18
+ export declare const SecurityConfigSchema: z.ZodObject<{
19
+ authStrategy: z.ZodOptional<z.ZodEnum<["JWT", "SESSION", "API_KEY", "OAUTH2", "MTLS"]>>;
20
+ authorizationModel: z.ZodOptional<z.ZodEnum<["RBAC", "ABAC"]>>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ authStrategy?: "JWT" | "SESSION" | "API_KEY" | "OAUTH2" | "MTLS" | undefined;
23
+ authorizationModel?: "RBAC" | "ABAC" | undefined;
24
+ }, {
25
+ authStrategy?: "JWT" | "SESSION" | "API_KEY" | "OAUTH2" | "MTLS" | undefined;
26
+ authorizationModel?: "RBAC" | "ABAC" | undefined;
27
+ }>;
28
+ /**
29
+ * Schema for .ironbackend/config.json
30
+ */
31
+ export declare const IronBackendLocalConfigSchema: z.ZodObject<{
32
+ version: z.ZodString;
33
+ tool: z.ZodNullable<z.ZodString>;
34
+ style: z.ZodNullable<z.ZodString>;
35
+ stack: z.ZodNullable<z.ZodString>;
36
+ rules: z.ZodObject<{
37
+ enabled: z.ZodArray<z.ZodString, "many">;
38
+ overrides: z.ZodRecord<z.ZodString, z.ZodString>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ enabled: string[];
41
+ overrides: Record<string, string>;
42
+ }, {
43
+ enabled: string[];
44
+ overrides: Record<string, string>;
45
+ }>;
46
+ createdAt: z.ZodOptional<z.ZodString>;
47
+ updatedAt: z.ZodOptional<z.ZodString>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ version: string;
50
+ tool: string | null;
51
+ style: string | null;
52
+ stack: string | null;
53
+ rules: {
54
+ enabled: string[];
55
+ overrides: Record<string, string>;
56
+ };
57
+ createdAt?: string | undefined;
58
+ updatedAt?: string | undefined;
59
+ }, {
60
+ version: string;
61
+ tool: string | null;
62
+ style: string | null;
63
+ stack: string | null;
64
+ rules: {
65
+ enabled: string[];
66
+ overrides: Record<string, string>;
67
+ };
68
+ createdAt?: string | undefined;
69
+ updatedAt?: string | undefined;
70
+ }>;
71
+ /**
72
+ * Full IronBackend configuration schema
73
+ */
74
+ export declare const IronBackendConfigSchema: z.ZodObject<{
75
+ version: z.ZodString;
76
+ style: z.ZodOptional<z.ZodString>;
77
+ stack: z.ZodOptional<z.ZodString>;
78
+ rules: z.ZodObject<{
79
+ enabled: z.ZodArray<z.ZodEnum<["API", "DOMAIN", "ERROR_HANDLING", "TRANSACTIONS", "DATA_ACCESS", "NAMING", "VALIDATION", "ASYNC"]>, "many">;
80
+ overrides: z.ZodRecord<z.ZodString, z.ZodEnum<["ERROR", "WARN"]>>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ enabled: ("API" | "DOMAIN" | "ERROR_HANDLING" | "TRANSACTIONS" | "DATA_ACCESS" | "NAMING" | "VALIDATION" | "ASYNC")[];
83
+ overrides: Record<string, "ERROR" | "WARN">;
84
+ }, {
85
+ enabled: ("API" | "DOMAIN" | "ERROR_HANDLING" | "TRANSACTIONS" | "DATA_ACCESS" | "NAMING" | "VALIDATION" | "ASYNC")[];
86
+ overrides: Record<string, "ERROR" | "WARN">;
87
+ }>;
88
+ security: z.ZodOptional<z.ZodObject<{
89
+ authStrategy: z.ZodOptional<z.ZodEnum<["JWT", "SESSION", "API_KEY", "OAUTH2", "MTLS"]>>;
90
+ authorizationModel: z.ZodOptional<z.ZodEnum<["RBAC", "ABAC"]>>;
91
+ }, "strip", z.ZodTypeAny, {
92
+ authStrategy?: "JWT" | "SESSION" | "API_KEY" | "OAUTH2" | "MTLS" | undefined;
93
+ authorizationModel?: "RBAC" | "ABAC" | undefined;
94
+ }, {
95
+ authStrategy?: "JWT" | "SESSION" | "API_KEY" | "OAUTH2" | "MTLS" | undefined;
96
+ authorizationModel?: "RBAC" | "ABAC" | undefined;
97
+ }>>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ version: string;
100
+ rules: {
101
+ enabled: ("API" | "DOMAIN" | "ERROR_HANDLING" | "TRANSACTIONS" | "DATA_ACCESS" | "NAMING" | "VALIDATION" | "ASYNC")[];
102
+ overrides: Record<string, "ERROR" | "WARN">;
103
+ };
104
+ style?: string | undefined;
105
+ stack?: string | undefined;
106
+ security?: {
107
+ authStrategy?: "JWT" | "SESSION" | "API_KEY" | "OAUTH2" | "MTLS" | undefined;
108
+ authorizationModel?: "RBAC" | "ABAC" | undefined;
109
+ } | undefined;
110
+ }, {
111
+ version: string;
112
+ rules: {
113
+ enabled: ("API" | "DOMAIN" | "ERROR_HANDLING" | "TRANSACTIONS" | "DATA_ACCESS" | "NAMING" | "VALIDATION" | "ASYNC")[];
114
+ overrides: Record<string, "ERROR" | "WARN">;
115
+ };
116
+ style?: string | undefined;
117
+ stack?: string | undefined;
118
+ security?: {
119
+ authStrategy?: "JWT" | "SESSION" | "API_KEY" | "OAUTH2" | "MTLS" | undefined;
120
+ authorizationModel?: "RBAC" | "ABAC" | undefined;
121
+ } | undefined;
122
+ }>;
123
+ export type ValidatedLocalConfig = z.infer<typeof IronBackendLocalConfigSchema>;
124
+ export type ValidatedConfig = z.infer<typeof IronBackendConfigSchema>;
125
+ /**
126
+ * Validate and parse local config file
127
+ * @param config - Raw config object to validate
128
+ * @returns Validated config object
129
+ * @throws ZodError if validation fails
130
+ */
131
+ export declare function validateLocalConfig(config: unknown): ValidatedLocalConfig;
132
+ /**
133
+ * Safely validate local config without throwing
134
+ * @param config - Raw config object to validate
135
+ * @returns Result object with success/error
136
+ */
137
+ export declare function safeValidateLocalConfig(config: unknown): z.SafeParseReturnType<unknown, ValidatedLocalConfig>;
138
+ /**
139
+ * Validate full IronBackend config
140
+ * @param config - Raw config object to validate
141
+ * @returns Validated config object
142
+ * @throws ZodError if validation fails
143
+ */
144
+ export declare function validateConfig(config: unknown): ValidatedConfig;
145
+ /**
146
+ * Format Zod validation errors for user display
147
+ * @param error - Zod error object
148
+ * @returns Formatted error message
149
+ */
150
+ export declare function formatValidationError(error: z.ZodError): string;
151
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,kBAAkB,8BAA4B,CAAC;AAE5D,eAAO,MAAM,kBAAkB,gHAS7B,CAAC;AAMH,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASlC,CAAC;AAMH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMtE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,oBAAoB,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAE7G;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAI/D"}
package/dist/schema.js ADDED
@@ -0,0 +1,97 @@
1
+ /**
2
+ * IronBackend Configuration Schema
3
+ * Runtime validation using Zod
4
+ */
5
+ import { z } from 'zod';
6
+ // ============================================================================
7
+ // Rule Categories and Severities
8
+ // ============================================================================
9
+ export const RuleSeveritySchema = z.enum(['ERROR', 'WARN']);
10
+ export const RuleCategorySchema = z.enum([
11
+ 'API',
12
+ 'DOMAIN',
13
+ 'ERROR_HANDLING',
14
+ 'TRANSACTIONS',
15
+ 'DATA_ACCESS',
16
+ 'NAMING',
17
+ 'VALIDATION',
18
+ 'ASYNC'
19
+ ]);
20
+ // ============================================================================
21
+ // Configuration Schema
22
+ // ============================================================================
23
+ export const RulesConfigSchema = z.object({
24
+ enabled: z.array(z.string()),
25
+ overrides: z.record(z.string())
26
+ });
27
+ export const SecurityConfigSchema = z.object({
28
+ authStrategy: z.enum(['JWT', 'SESSION', 'API_KEY', 'OAUTH2', 'MTLS']).optional(),
29
+ authorizationModel: z.enum(['RBAC', 'ABAC']).optional()
30
+ });
31
+ /**
32
+ * Schema for .ironbackend/config.json
33
+ */
34
+ export const IronBackendLocalConfigSchema = z.object({
35
+ version: z.string().regex(/^\d+\.\d+\.\d+$/, {
36
+ message: 'Version must be in format x.y.z (e.g., 1.0.0)'
37
+ }),
38
+ tool: z.string().nullable(),
39
+ style: z.string().nullable(),
40
+ stack: z.string().nullable(),
41
+ rules: RulesConfigSchema,
42
+ createdAt: z.string().optional(),
43
+ updatedAt: z.string().optional()
44
+ });
45
+ /**
46
+ * Full IronBackend configuration schema
47
+ */
48
+ export const IronBackendConfigSchema = z.object({
49
+ version: z.string(),
50
+ style: z.string().optional(),
51
+ stack: z.string().optional(),
52
+ rules: z.object({
53
+ enabled: z.array(RuleCategorySchema),
54
+ overrides: z.record(RuleSeveritySchema)
55
+ }),
56
+ security: SecurityConfigSchema.optional()
57
+ });
58
+ // ============================================================================
59
+ // Validation Functions
60
+ // ============================================================================
61
+ /**
62
+ * Validate and parse local config file
63
+ * @param config - Raw config object to validate
64
+ * @returns Validated config object
65
+ * @throws ZodError if validation fails
66
+ */
67
+ export function validateLocalConfig(config) {
68
+ return IronBackendLocalConfigSchema.parse(config);
69
+ }
70
+ /**
71
+ * Safely validate local config without throwing
72
+ * @param config - Raw config object to validate
73
+ * @returns Result object with success/error
74
+ */
75
+ export function safeValidateLocalConfig(config) {
76
+ return IronBackendLocalConfigSchema.safeParse(config);
77
+ }
78
+ /**
79
+ * Validate full IronBackend config
80
+ * @param config - Raw config object to validate
81
+ * @returns Validated config object
82
+ * @throws ZodError if validation fails
83
+ */
84
+ export function validateConfig(config) {
85
+ return IronBackendConfigSchema.parse(config);
86
+ }
87
+ /**
88
+ * Format Zod validation errors for user display
89
+ * @param error - Zod error object
90
+ * @returns Formatted error message
91
+ */
92
+ export function formatValidationError(error) {
93
+ return error.issues
94
+ .map(issue => ` - ${issue.path.join('.')}: ${issue.message}`)
95
+ .join('\n');
96
+ }
97
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,9 @@ import type { ArchitectureStyle } from '../types.js';
14
14
  */
15
15
  export declare const styles: Record<string, ArchitectureStyle>;
16
16
  /**
17
- * Get a style by ID
17
+ * Get a style by ID (memoized for performance)
18
18
  */
19
- export declare function getStyle(id: string): ArchitectureStyle | undefined;
19
+ export declare const getStyle: (arg: string) => ArchitectureStyle | undefined;
20
20
  /**
21
21
  * Get all style IDs
22
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAWpD,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAElE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE;IACjC,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;CACzC,GAAG,iBAAiB,EAAE,CAiBtB;AAGD,OAAO,EACH,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAWpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,gDAEnB,CAAC;AAEH;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE;IACjC,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;CACzC,GAAG,iBAAiB,EAAE,CAiBtB;AAGD,OAAO,EACH,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,CAAC"}
@@ -8,6 +8,7 @@ import { hexagonal } from './hexagonal.js';
8
8
  import { eventDriven, cqrs } from './event-driven.js';
9
9
  import { microservicesSync, microservicesAsync } from './microservices.js';
10
10
  import { serverless, readHeavy, automation } from './specialized.js';
11
+ import { memoize } from '../utils/performance.js';
11
12
  /**
12
13
  * All available architecture styles
13
14
  */
@@ -24,11 +25,11 @@ export const styles = {
24
25
  'automation': automation,
25
26
  };
26
27
  /**
27
- * Get a style by ID
28
+ * Get a style by ID (memoized for performance)
28
29
  */
29
- export function getStyle(id) {
30
+ export const getStyle = memoize((id) => {
30
31
  return styles[id];
31
- }
32
+ });
32
33
  /**
33
34
  * Get all style IDs
34
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGrE;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAsC;IACrD,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,eAAe;IACnC,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,WAAW;IAC3B,MAAM,EAAE,IAAI;IACZ,oBAAoB,EAAE,iBAAiB;IACvC,qBAAqB,EAAE,kBAAkB;IACzC,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,UAAU;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAU;IAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACvB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAI1B;IACG,mCAAmC;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,8BAA8B;AAC9B,OAAO,EACH,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAsC;IACrD,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,eAAe;IACnC,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,WAAW;IAC3B,MAAM,EAAE,IAAI;IACZ,oBAAoB,EAAE,iBAAiB;IACvC,qBAAqB,EAAE,kBAAkB;IACzC,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,UAAU;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAU,EAAiC,EAAE;IAC1E,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,WAAW;IACvB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAI1B;IACG,mCAAmC;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,8BAA8B;AAC9B,OAAO,EACH,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,CAAC"}
package/dist/types.d.ts CHANGED
@@ -139,5 +139,60 @@ export interface IronBackendConfig {
139
139
  authStrategy?: AuthStrategy;
140
140
  authorizationModel?: AuthorizationModel;
141
141
  };
142
+ plugins?: string[];
143
+ }
144
+ /**
145
+ * Plugin interface for extending IronBackend
146
+ * Allows adding custom styles, stacks, and rules
147
+ */
148
+ export interface IronBackendPlugin {
149
+ /** Unique plugin identifier */
150
+ name: string;
151
+ /** Plugin version (semver) */
152
+ version: string;
153
+ /** Human-readable description */
154
+ description?: string;
155
+ /** Custom architecture styles */
156
+ styles?: ArchitectureStyle[];
157
+ /** Custom tech stacks */
158
+ stacks?: TechStack[];
159
+ /** Custom design rules */
160
+ rules?: DesignRule[];
161
+ /** Lifecycle hook: called when plugin is loaded */
162
+ onLoad?: () => void | Promise<void>;
163
+ /** Lifecycle hook: called when plugin is unloaded */
164
+ onUnload?: () => void | Promise<void>;
165
+ }
166
+ /**
167
+ * Plugin metadata for the registry
168
+ */
169
+ export interface PluginMetadata {
170
+ name: string;
171
+ version: string;
172
+ description?: string;
173
+ path: string;
174
+ enabled: boolean;
175
+ loadedAt?: Date;
176
+ }
177
+ /**
178
+ * Plugin registry for managing loaded plugins
179
+ */
180
+ export interface PluginRegistry {
181
+ /** All registered plugins */
182
+ plugins: Map<string, IronBackendPlugin>;
183
+ /** Plugin metadata */
184
+ metadata: Map<string, PluginMetadata>;
185
+ /** Register a new plugin */
186
+ register: (plugin: IronBackendPlugin, path: string) => void;
187
+ /** Unregister a plugin by name */
188
+ unregister: (name: string) => boolean;
189
+ /** Get a plugin by name */
190
+ get: (name: string) => IronBackendPlugin | undefined;
191
+ /** Get all styles from plugins */
192
+ getAllStyles: () => ArchitectureStyle[];
193
+ /** Get all stacks from plugins */
194
+ getAllStacks: () => TechStack[];
195
+ /** Get all rules from plugins */
196
+ getAllRules: () => DesignRule[];
142
197
  }
143
198
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Performance Utilities
3
+ * Memoization and caching for frequently accessed data
4
+ */
5
+ /**
6
+ * Simple memoization function for single-argument functions
7
+ * @param fn - Function to memoize
8
+ * @returns Memoized function
9
+ */
10
+ export declare function memoize<A, R>(fn: (arg: A) => R): (arg: A) => R;
11
+ /**
12
+ * Memoization with time-to-live (TTL)
13
+ * Cache entries expire after specified duration
14
+ * @param fn - Function to memoize
15
+ * @param ttlMs - Time-to-live in milliseconds
16
+ * @returns Memoized function with TTL
17
+ */
18
+ export declare function memoizeWithTTL<A, R>(fn: (arg: A) => R, ttlMs: number): (arg: A) => R;
19
+ /**
20
+ * Lazy initialization wrapper
21
+ * Value is only computed on first access
22
+ */
23
+ export declare function lazy<T>(factory: () => T): {
24
+ value: T;
25
+ };
26
+ /**
27
+ * Create a singleton instance
28
+ * Ensures only one instance is created
29
+ */
30
+ export declare function singleton<T>(factory: () => T): () => T;
31
+ //# sourceMappingURL=performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../src/utils/performance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAY9D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAC/B,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EACjB,KAAK,EAAE,MAAM,GACd,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAef;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAatD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAStD"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Performance Utilities
3
+ * Memoization and caching for frequently accessed data
4
+ */
5
+ /**
6
+ * Simple memoization function for single-argument functions
7
+ * @param fn - Function to memoize
8
+ * @returns Memoized function
9
+ */
10
+ export function memoize(fn) {
11
+ const cache = new Map();
12
+ return (arg) => {
13
+ if (cache.has(arg)) {
14
+ return cache.get(arg);
15
+ }
16
+ const result = fn(arg);
17
+ cache.set(arg, result);
18
+ return result;
19
+ };
20
+ }
21
+ /**
22
+ * Memoization with time-to-live (TTL)
23
+ * Cache entries expire after specified duration
24
+ * @param fn - Function to memoize
25
+ * @param ttlMs - Time-to-live in milliseconds
26
+ * @returns Memoized function with TTL
27
+ */
28
+ export function memoizeWithTTL(fn, ttlMs) {
29
+ const cache = new Map();
30
+ return (arg) => {
31
+ const now = Date.now();
32
+ const cached = cache.get(arg);
33
+ if (cached && cached.expiry > now) {
34
+ return cached.value;
35
+ }
36
+ const result = fn(arg);
37
+ cache.set(arg, { value: result, expiry: now + ttlMs });
38
+ return result;
39
+ };
40
+ }
41
+ /**
42
+ * Lazy initialization wrapper
43
+ * Value is only computed on first access
44
+ */
45
+ export function lazy(factory) {
46
+ let cached;
47
+ let initialized = false;
48
+ return {
49
+ get value() {
50
+ if (!initialized) {
51
+ cached = factory();
52
+ initialized = true;
53
+ }
54
+ return cached;
55
+ }
56
+ };
57
+ }
58
+ /**
59
+ * Create a singleton instance
60
+ * Ensures only one instance is created
61
+ */
62
+ export function singleton(factory) {
63
+ let instance;
64
+ return () => {
65
+ if (instance === undefined) {
66
+ instance = factory();
67
+ }
68
+ return instance;
69
+ };
70
+ }
71
+ //# sourceMappingURL=performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/utils/performance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAO,EAAiB;IAC3C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE9B,OAAO,CAAC,GAAM,EAAK,EAAE;QACjB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC3B,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC1B,EAAiB,EACjB,KAAa;IAEb,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEzD,OAAO,CAAC,GAAM,EAAK,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAI,OAAgB;IACpC,IAAI,MAAqB,CAAC;IAC1B,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,OAAO;QACH,IAAI,KAAK;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,GAAG,OAAO,EAAE,CAAC;gBACnB,WAAW,GAAG,IAAI,CAAC;YACvB,CAAC;YACD,OAAO,MAAO,CAAC;QACnB,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,OAAgB;IACzC,IAAI,QAAuB,CAAC;IAE5B,OAAO,GAAG,EAAE;QACR,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,GAAG,OAAO,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ironbackend/core",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "type": "module",
5
5
  "description": "Backend architecture styles, rules, stacks, and security playbooks",
6
6
  "main": "./dist/index.js",
@@ -43,9 +43,12 @@
43
43
  "license": "MIT",
44
44
  "repository": {
45
45
  "type": "git",
46
- "url": "https://github.com/ironbackend/ironbackend.git",
46
+ "url": "https://github.com/txqt/IronBackend.git",
47
47
  "directory": "packages/core"
48
48
  },
49
+ "dependencies": {
50
+ "zod": "^3.22.0"
51
+ },
49
52
  "devDependencies": {
50
53
  "typescript": "^5.3.0"
51
54
  },