monora-ai 2.0.0 → 2.1.3

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.
Files changed (202) hide show
  1. package/README.md +441 -150
  2. package/dist/aims_governance.d.ts +238 -0
  3. package/dist/aims_governance.d.ts.map +1 -0
  4. package/dist/aims_governance.js +922 -0
  5. package/dist/alerts.d.ts +16 -0
  6. package/dist/alerts.d.ts.map +1 -1
  7. package/dist/alerts.js +16 -0
  8. package/dist/api.d.ts +6 -0
  9. package/dist/api.d.ts.map +1 -1
  10. package/dist/api.js +6 -0
  11. package/dist/assessment.d.ts +269 -0
  12. package/dist/assessment.d.ts.map +1 -0
  13. package/dist/assessment.js +1232 -0
  14. package/dist/attestation.js +23 -1
  15. package/dist/attribution.d.ts +349 -0
  16. package/dist/attribution.d.ts.map +1 -0
  17. package/dist/attribution.js +987 -0
  18. package/dist/autodetect.d.ts +69 -1
  19. package/dist/autodetect.d.ts.map +1 -1
  20. package/dist/autodetect.js +644 -1
  21. package/dist/bias.d.ts +130 -0
  22. package/dist/bias.d.ts.map +1 -0
  23. package/dist/bias.js +223 -0
  24. package/dist/circuit_breaker.js +3 -3
  25. package/dist/cli/diagnostics.d.ts +5 -1
  26. package/dist/cli/diagnostics.d.ts.map +1 -1
  27. package/dist/cli/diagnostics.js +31 -8
  28. package/dist/cli/doctor.d.ts +25 -0
  29. package/dist/cli/doctor.d.ts.map +1 -0
  30. package/dist/cli/doctor.js +381 -0
  31. package/dist/cli/fix.d.ts +16 -0
  32. package/dist/cli/fix.d.ts.map +1 -0
  33. package/dist/cli/fix.js +284 -0
  34. package/dist/cli/init.d.ts +57 -0
  35. package/dist/cli/init.d.ts.map +1 -0
  36. package/dist/cli/init.js +205 -0
  37. package/dist/cli.js +1611 -126
  38. package/dist/complianceTargets.d.ts +111 -0
  39. package/dist/complianceTargets.d.ts.map +1 -0
  40. package/dist/complianceTargets.js +521 -0
  41. package/dist/config.d.ts +301 -17
  42. package/dist/config.d.ts.map +1 -1
  43. package/dist/config.js +428 -36
  44. package/dist/config_migrations.d.ts +41 -0
  45. package/dist/config_migrations.d.ts.map +1 -1
  46. package/dist/config_migrations.js +205 -0
  47. package/dist/config_schema.d.ts +2900 -731
  48. package/dist/config_schema.d.ts.map +1 -1
  49. package/dist/config_schema.js +257 -55
  50. package/dist/context.d.ts +34 -0
  51. package/dist/context.d.ts.map +1 -1
  52. package/dist/context.js +118 -7
  53. package/dist/control_backbone.d.ts +122 -0
  54. package/dist/control_backbone.d.ts.map +1 -0
  55. package/dist/control_backbone.js +698 -0
  56. package/dist/data-governance.d.ts +187 -0
  57. package/dist/data-governance.d.ts.map +1 -0
  58. package/dist/data-governance.js +424 -0
  59. package/dist/dataResidency.d.ts +44 -0
  60. package/dist/dataResidency.d.ts.map +1 -0
  61. package/dist/dataResidency.js +203 -0
  62. package/dist/dispatcher.d.ts +32 -0
  63. package/dist/dispatcher.d.ts.map +1 -1
  64. package/dist/dispatcher.js +91 -4
  65. package/dist/events.d.ts.map +1 -1
  66. package/dist/events.js +38 -0
  67. package/dist/evidence_store.d.ts +103 -0
  68. package/dist/evidence_store.d.ts.map +1 -0
  69. package/dist/evidence_store.js +459 -0
  70. package/dist/executiveSummary.d.ts +65 -8
  71. package/dist/executiveSummary.d.ts.map +1 -1
  72. package/dist/executiveSummary.js +289 -26
  73. package/dist/identity.d.ts +143 -0
  74. package/dist/identity.d.ts.map +1 -0
  75. package/dist/identity.js +231 -0
  76. package/dist/impact-assessment.d.ts +350 -0
  77. package/dist/impact-assessment.d.ts.map +1 -0
  78. package/dist/impact-assessment.js +580 -0
  79. package/dist/index.d.ts +25 -5
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +300 -4
  82. package/dist/instrumentation.d.ts +1 -1
  83. package/dist/instrumentation.d.ts.map +1 -1
  84. package/dist/instrumentation.js +243 -27
  85. package/dist/integrations/anthropic.d.ts +3 -0
  86. package/dist/integrations/anthropic.d.ts.map +1 -1
  87. package/dist/integrations/anthropic.js +284 -79
  88. package/dist/integrations/governance.d.ts +33 -0
  89. package/dist/integrations/governance.d.ts.map +1 -0
  90. package/dist/integrations/governance.js +208 -0
  91. package/dist/integrations/langchain.d.ts +7 -0
  92. package/dist/integrations/langchain.d.ts.map +1 -1
  93. package/dist/integrations/langchain.js +387 -143
  94. package/dist/integrations/openai.d.ts +9 -0
  95. package/dist/integrations/openai.d.ts.map +1 -1
  96. package/dist/integrations/openai.js +673 -73
  97. package/dist/iso42001_consolidation.d.ts +16 -0
  98. package/dist/iso42001_consolidation.d.ts.map +1 -0
  99. package/dist/iso42001_consolidation.js +413 -0
  100. package/dist/iso42001_workflows.d.ts +263 -0
  101. package/dist/iso42001_workflows.d.ts.map +1 -0
  102. package/dist/iso42001_workflows.js +781 -0
  103. package/dist/lifecycle.d.ts +299 -0
  104. package/dist/lifecycle.d.ts.map +1 -0
  105. package/dist/lifecycle.js +624 -0
  106. package/dist/lineage.d.ts +2 -2
  107. package/dist/lineage.d.ts.map +1 -1
  108. package/dist/lineage.js +12 -17
  109. package/dist/middleware/express.d.ts.map +1 -1
  110. package/dist/middleware/express.js +33 -3
  111. package/dist/middleware/nextjs.d.ts.map +1 -1
  112. package/dist/middleware/nextjs.js +42 -68
  113. package/dist/model.d.ts +143 -0
  114. package/dist/model.d.ts.map +1 -0
  115. package/dist/model.js +371 -0
  116. package/dist/onboarding.d.ts +42 -0
  117. package/dist/onboarding.d.ts.map +1 -0
  118. package/dist/onboarding.js +1022 -0
  119. package/dist/oversight.d.ts +264 -0
  120. package/dist/oversight.d.ts.map +1 -0
  121. package/dist/oversight.js +497 -0
  122. package/dist/pdf_report.d.ts.map +1 -1
  123. package/dist/pdf_report.js +42 -21
  124. package/dist/presets.d.ts +88 -0
  125. package/dist/presets.d.ts.map +1 -0
  126. package/dist/presets.js +520 -0
  127. package/dist/propagation.d.ts.map +1 -1
  128. package/dist/propagation.js +34 -2
  129. package/dist/quotas.d.ts +171 -0
  130. package/dist/quotas.d.ts.map +1 -0
  131. package/dist/quotas.js +259 -0
  132. package/dist/register.d.ts +13 -0
  133. package/dist/register.d.ts.map +1 -0
  134. package/dist/register.js +99 -0
  135. package/dist/registry.d.ts +1 -0
  136. package/dist/registry.d.ts.map +1 -1
  137. package/dist/registry.js +7 -0
  138. package/dist/registryData.json +43 -6
  139. package/dist/report.d.ts +2 -1
  140. package/dist/report.d.ts.map +1 -1
  141. package/dist/report.js +189 -2
  142. package/dist/reporting.d.ts +125 -0
  143. package/dist/reporting.d.ts.map +1 -1
  144. package/dist/reporting.js +196 -5
  145. package/dist/resources.d.ts +285 -0
  146. package/dist/resources.d.ts.map +1 -0
  147. package/dist/resources.js +643 -0
  148. package/dist/risk.d.ts +120 -0
  149. package/dist/risk.d.ts.map +1 -0
  150. package/dist/risk.js +220 -0
  151. package/dist/runtime.d.ts +74 -1
  152. package/dist/runtime.d.ts.map +1 -1
  153. package/dist/runtime.js +598 -22
  154. package/dist/schemaInference.d.ts +92 -0
  155. package/dist/schemaInference.d.ts.map +1 -0
  156. package/dist/schemaInference.js +466 -0
  157. package/dist/schema_validation.js +2 -2
  158. package/dist/schemas/config.schema.json +169 -6
  159. package/dist/schemas/event.schema.json +4 -0
  160. package/dist/security_report.js +4 -4
  161. package/dist/signing.d.ts +1 -1
  162. package/dist/signing.d.ts.map +1 -1
  163. package/dist/signing.js +4 -0
  164. package/dist/sinks/file.d.ts +19 -1
  165. package/dist/sinks/file.d.ts.map +1 -1
  166. package/dist/sinks/file.js +82 -13
  167. package/dist/sinks/https.d.ts +10 -0
  168. package/dist/sinks/https.d.ts.map +1 -1
  169. package/dist/sinks/https.js +76 -16
  170. package/dist/sinks/stdout.d.ts +1 -0
  171. package/dist/sinks/stdout.d.ts.map +1 -1
  172. package/dist/sinks/stdout.js +12 -1
  173. package/dist/spec.d.ts +159 -0
  174. package/dist/spec.d.ts.map +1 -0
  175. package/dist/spec.js +391 -0
  176. package/dist/stakeholders.d.ts +199 -0
  177. package/dist/stakeholders.d.ts.map +1 -0
  178. package/dist/stakeholders.js +398 -0
  179. package/dist/standards.d.ts.map +1 -1
  180. package/dist/standards.js +160 -2
  181. package/dist/standards_ingest.d.ts +2 -2
  182. package/dist/standards_ingest.d.ts.map +1 -1
  183. package/dist/standards_ingest.js +105 -23
  184. package/dist/streaming.d.ts.map +1 -1
  185. package/dist/streaming.js +7 -2
  186. package/dist/telemetry.d.ts +16 -2
  187. package/dist/telemetry.d.ts.map +1 -1
  188. package/dist/telemetry.js +79 -14
  189. package/dist/templates/controls/iso42001_control_catalog.json +1443 -0
  190. package/dist/traced_emitter.d.ts +3 -0
  191. package/dist/traced_emitter.d.ts.map +1 -1
  192. package/dist/traced_emitter.js +142 -25
  193. package/dist/trust_package.d.ts +21 -1
  194. package/dist/trust_package.d.ts.map +1 -1
  195. package/dist/trust_package.js +101 -4
  196. package/dist/verify.d.ts.map +1 -1
  197. package/dist/verify.js +9 -2
  198. package/dist/wal.d.ts.map +1 -1
  199. package/dist/wal.js +2 -1
  200. package/package.json +14 -1
  201. package/scripts/postinstall.js +119 -97
  202. package/templates/controls/iso42001_control_catalog.json +1443 -0
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Enterprise compliance presets and environment-aware configuration.
3
+ *
4
+ * This module provides pre-configured settings for different deployment
5
+ * scenarios and compliance requirements.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { init, getPreset, PRESETS } from 'monora-ai';
10
+ *
11
+ * // Use a preset
12
+ * init({ preset: 'strict_enterprise' });
13
+ *
14
+ * // Or get preset config directly
15
+ * const config = getPreset('default_secure');
16
+ * ```
17
+ */
18
+ import type { MonoraConfig } from './config';
19
+ /**
20
+ * Configuration preset definition.
21
+ */
22
+ export interface PresetConfig {
23
+ /** Preset name */
24
+ name: string;
25
+ /** Description of the preset */
26
+ description: string;
27
+ /** Target environment */
28
+ environment: 'development' | 'poc' | 'staging' | 'production';
29
+ /** Configuration object */
30
+ config: Partial<MonoraConfig>;
31
+ /** Whether this preset is compliance-ready */
32
+ complianceReady?: boolean;
33
+ /** Applicable compliance frameworks */
34
+ frameworks?: string[];
35
+ }
36
+ export declare const DEVELOPMENT: PresetConfig;
37
+ export declare const POC: PresetConfig;
38
+ export declare const STAGING: PresetConfig;
39
+ export declare const PRODUCTION: PresetConfig;
40
+ export declare const STRICT_ENTERPRISE: PresetConfig;
41
+ export declare const DEFAULT_SECURE: PresetConfig;
42
+ export declare const EXPERIMENTAL: PresetConfig;
43
+ export declare const AUDIT_FIRST: PresetConfig;
44
+ export declare const LOW_LATENCY: PresetConfig;
45
+ export declare const PRESETS: Record<string, PresetConfig>;
46
+ /**
47
+ * Get a preset configuration by name.
48
+ *
49
+ * @param name - Preset name (e.g., "strict_enterprise", "development").
50
+ * @returns PresetConfig object.
51
+ * @throws Error if preset name is not recognized.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const config = getPreset('strict_enterprise');
56
+ * console.log(config.description);
57
+ * ```
58
+ */
59
+ export declare function getPreset(name: string): PresetConfig;
60
+ /**
61
+ * List all available preset names.
62
+ *
63
+ * @returns Array of unique preset names.
64
+ */
65
+ export declare function listPresets(): string[];
66
+ /**
67
+ * Get preset configuration dictionary.
68
+ *
69
+ * @param name - Preset name.
70
+ * @returns Configuration object.
71
+ */
72
+ export declare function getPresetConfig(name: string): Partial<MonoraConfig>;
73
+ /**
74
+ * Merge preset config with custom overrides.
75
+ *
76
+ * @param presetName - Base preset name.
77
+ * @param overrides - Custom configuration to merge.
78
+ * @returns Merged configuration object.
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const config = mergeWithPreset('production', {
83
+ * sinks: [{ type: 'https', endpoint: 'https://api.example.com' }],
84
+ * });
85
+ * ```
86
+ */
87
+ export declare function mergeWithPreset(presetName: string, overrides?: Partial<MonoraConfig>): Partial<MonoraConfig>;
88
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,WAAW,EAAE,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,YAAY,CAAC;IAC9D,2BAA2B;IAC3B,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9B,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAMD,eAAO,MAAM,WAAW,EAAE,YA0CzB,CAAC;AAEF,eAAO,MAAM,GAAG,EAAE,YA8CjB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,YAoCrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAqCxB,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,YAmD/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,YA2C5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,YA6B1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,YAkDzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,YAsCzB,CAAC;AAMF,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAkBhD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAOpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAGtC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAEnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,CAQvB"}
@@ -0,0 +1,520 @@
1
+ "use strict";
2
+ /**
3
+ * Enterprise compliance presets and environment-aware configuration.
4
+ *
5
+ * This module provides pre-configured settings for different deployment
6
+ * scenarios and compliance requirements.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { init, getPreset, PRESETS } from 'monora-ai';
11
+ *
12
+ * // Use a preset
13
+ * init({ preset: 'strict_enterprise' });
14
+ *
15
+ * // Or get preset config directly
16
+ * const config = getPreset('default_secure');
17
+ * ```
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.PRESETS = exports.LOW_LATENCY = exports.AUDIT_FIRST = exports.EXPERIMENTAL = exports.DEFAULT_SECURE = exports.STRICT_ENTERPRISE = exports.PRODUCTION = exports.STAGING = exports.POC = exports.DEVELOPMENT = void 0;
21
+ exports.getPreset = getPreset;
22
+ exports.listPresets = listPresets;
23
+ exports.getPresetConfig = getPresetConfig;
24
+ exports.mergeWithPreset = mergeWithPreset;
25
+ // ============================================================================
26
+ // ENVIRONMENT PRESETS
27
+ // ============================================================================
28
+ exports.DEVELOPMENT = {
29
+ name: 'development',
30
+ description: 'Development mode with minimal friction and verbose logging',
31
+ environment: 'development',
32
+ config: {
33
+ defaults: {
34
+ environment: 'development',
35
+ data_classification: 'internal',
36
+ },
37
+ sinks: [{ type: 'stdout', format: 'pretty' }],
38
+ immutability: {
39
+ enabled: true,
40
+ scope: 'per_trace',
41
+ verify_on_emit: false,
42
+ verify_on_shutdown: false,
43
+ },
44
+ policies: {
45
+ enforce: false,
46
+ },
47
+ wal: {
48
+ enabled: false,
49
+ },
50
+ signing: {
51
+ enabled: false,
52
+ },
53
+ reporting: {
54
+ enabled: true,
55
+ emit_trust_summary: true,
56
+ },
57
+ telemetry: {
58
+ enabled: true,
59
+ backend: 'minimal',
60
+ },
61
+ attribution: {
62
+ enabled: false,
63
+ telemetry: {
64
+ enabled: false,
65
+ send_data: false,
66
+ data_residency: null,
67
+ },
68
+ },
69
+ },
70
+ };
71
+ exports.POC = {
72
+ name: 'poc',
73
+ description: 'Proof of concept mode - easy setup with basic safety',
74
+ environment: 'poc',
75
+ config: {
76
+ defaults: {
77
+ environment: 'poc',
78
+ data_classification: 'internal',
79
+ },
80
+ sinks: [
81
+ { type: 'stdout', format: 'json' },
82
+ { type: 'file', path: './monora_events.jsonl' },
83
+ ],
84
+ immutability: {
85
+ enabled: true,
86
+ scope: 'per_trace',
87
+ verify_on_emit: false,
88
+ verify_on_shutdown: true,
89
+ },
90
+ policies: {
91
+ enforce: true,
92
+ },
93
+ wal: {
94
+ enabled: false,
95
+ },
96
+ signing: {
97
+ enabled: false,
98
+ },
99
+ reporting: {
100
+ enabled: true,
101
+ emit_trust_summary: true,
102
+ output_dir: './monora_reports',
103
+ },
104
+ telemetry: {
105
+ enabled: true,
106
+ backend: 'minimal',
107
+ },
108
+ attribution: {
109
+ enabled: false,
110
+ telemetry: {
111
+ enabled: false,
112
+ send_data: false,
113
+ data_residency: null,
114
+ },
115
+ },
116
+ },
117
+ };
118
+ exports.STAGING = {
119
+ name: 'staging',
120
+ description: 'Staging mode - production-like with extra logging',
121
+ environment: 'staging',
122
+ config: {
123
+ defaults: {
124
+ environment: 'staging',
125
+ data_classification: 'confidential',
126
+ },
127
+ sinks: [{ type: 'file', path: './monora_events.jsonl' }],
128
+ immutability: {
129
+ enabled: true,
130
+ scope: 'per_trace',
131
+ verify_on_emit: true,
132
+ verify_on_shutdown: true,
133
+ },
134
+ policies: {
135
+ enforce: true,
136
+ },
137
+ wal: {
138
+ enabled: true,
139
+ path: './monora_wal',
140
+ sync_mode: 'async',
141
+ },
142
+ signing: {
143
+ enabled: false,
144
+ },
145
+ reporting: {
146
+ enabled: true,
147
+ emit_trust_summary: true,
148
+ },
149
+ telemetry: {
150
+ enabled: true,
151
+ backend: 'minimal',
152
+ },
153
+ },
154
+ };
155
+ exports.PRODUCTION = {
156
+ name: 'production',
157
+ description: 'Production mode - full safety with minimal overhead',
158
+ environment: 'production',
159
+ config: {
160
+ defaults: {
161
+ environment: 'production',
162
+ data_classification: 'confidential',
163
+ },
164
+ sinks: [{ type: 'file', path: './monora_events.jsonl', rotation: 'daily', symlink: true }],
165
+ immutability: {
166
+ enabled: true,
167
+ scope: 'per_trace',
168
+ verify_on_emit: true,
169
+ verify_on_shutdown: true,
170
+ },
171
+ policies: {
172
+ enforce: true,
173
+ },
174
+ wal: {
175
+ enabled: true,
176
+ path: './monora_wal',
177
+ sync_mode: 'async',
178
+ },
179
+ signing: {
180
+ enabled: false,
181
+ },
182
+ reporting: {
183
+ enabled: true,
184
+ emit_trust_summary: true,
185
+ },
186
+ telemetry: {
187
+ enabled: true,
188
+ backend: 'minimal',
189
+ },
190
+ },
191
+ complianceReady: true,
192
+ };
193
+ // ============================================================================
194
+ // COMPLIANCE PRESETS
195
+ // ============================================================================
196
+ exports.STRICT_ENTERPRISE = {
197
+ name: 'strict_enterprise',
198
+ description: 'Maximum security for enterprise deployments - all safety features enabled',
199
+ environment: 'production',
200
+ config: {
201
+ defaults: {
202
+ environment: 'production',
203
+ data_classification: 'restricted',
204
+ },
205
+ sinks: [{ type: 'file', path: './monora_events.jsonl', rotation: 'daily', symlink: true }],
206
+ immutability: {
207
+ enabled: true,
208
+ scope: 'per_trace',
209
+ hash_algorithm: 'sha256',
210
+ verify_on_emit: true,
211
+ verify_on_shutdown: true,
212
+ },
213
+ policies: {
214
+ enforce: true,
215
+ },
216
+ wal: {
217
+ enabled: true,
218
+ path: './monora_wal',
219
+ sync_mode: 'fsync',
220
+ max_file_size_mb: 100,
221
+ },
222
+ signing: {
223
+ enabled: true,
224
+ algorithm: 'ed25519',
225
+ },
226
+ data_handling: {
227
+ enabled: true,
228
+ mode: 'redact',
229
+ rules: [
230
+ { name: 'email', pattern: '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}' },
231
+ { name: 'ssn', pattern: '\\d{3}-\\d{2}-\\d{4}' },
232
+ { name: 'credit_card', pattern: '\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}' },
233
+ ],
234
+ },
235
+ reporting: {
236
+ enabled: true,
237
+ emit_trust_summary: true,
238
+ formats: ['json', 'markdown'],
239
+ },
240
+ telemetry: {
241
+ enabled: true,
242
+ backend: 'minimal',
243
+ },
244
+ },
245
+ complianceReady: true,
246
+ frameworks: ['SOC2', 'GDPR', 'ISO27001', 'ISO42001'],
247
+ };
248
+ exports.DEFAULT_SECURE = {
249
+ name: 'default_secure',
250
+ description: 'Balanced security with good defaults - recommended for most use cases',
251
+ environment: 'production',
252
+ config: {
253
+ defaults: {
254
+ environment: 'production',
255
+ data_classification: 'confidential',
256
+ },
257
+ sinks: [{ type: 'file', path: './monora_events.jsonl' }],
258
+ immutability: {
259
+ enabled: true,
260
+ scope: 'per_trace',
261
+ verify_on_emit: true,
262
+ verify_on_shutdown: true,
263
+ },
264
+ policies: {
265
+ enforce: true,
266
+ },
267
+ wal: {
268
+ enabled: true,
269
+ path: './monora_wal',
270
+ sync_mode: 'async',
271
+ },
272
+ signing: {
273
+ enabled: false,
274
+ },
275
+ data_handling: {
276
+ enabled: true,
277
+ mode: 'redact',
278
+ rules: [{ name: 'email', pattern: '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}' }],
279
+ },
280
+ reporting: {
281
+ enabled: true,
282
+ emit_trust_summary: true,
283
+ },
284
+ telemetry: {
285
+ enabled: true,
286
+ backend: 'minimal',
287
+ },
288
+ },
289
+ complianceReady: true,
290
+ frameworks: ['SOC2'],
291
+ };
292
+ exports.EXPERIMENTAL = {
293
+ name: 'experimental',
294
+ description: 'Minimal overhead for experiments and testing - not for production',
295
+ environment: 'development',
296
+ config: {
297
+ defaults: {
298
+ environment: 'development',
299
+ data_classification: 'internal',
300
+ },
301
+ sinks: [{ type: 'stdout', format: 'pretty' }],
302
+ immutability: {
303
+ enabled: false,
304
+ },
305
+ policies: {
306
+ enforce: false,
307
+ },
308
+ wal: {
309
+ enabled: false,
310
+ },
311
+ signing: {
312
+ enabled: false,
313
+ },
314
+ reporting: {
315
+ enabled: false,
316
+ },
317
+ telemetry: {
318
+ enabled: false,
319
+ },
320
+ },
321
+ };
322
+ exports.AUDIT_FIRST = {
323
+ name: 'audit_first',
324
+ description: 'Maximum auditability - all logging and verification enabled',
325
+ environment: 'production',
326
+ config: {
327
+ defaults: {
328
+ environment: 'production',
329
+ data_classification: 'restricted',
330
+ },
331
+ sinks: [{ type: 'file', path: './monora_events.jsonl', rotation: 'daily', symlink: true }],
332
+ immutability: {
333
+ enabled: true,
334
+ scope: 'per_trace',
335
+ hash_algorithm: 'sha256',
336
+ verify_on_emit: true,
337
+ verify_on_shutdown: true,
338
+ },
339
+ policies: {
340
+ enforce: true,
341
+ },
342
+ wal: {
343
+ enabled: true,
344
+ path: './monora_wal',
345
+ sync_mode: 'fsync',
346
+ },
347
+ signing: {
348
+ enabled: true,
349
+ algorithm: 'ed25519',
350
+ },
351
+ reporting: {
352
+ enabled: true,
353
+ emit_trust_summary: true,
354
+ formats: ['json', 'markdown'],
355
+ include_security_report: true,
356
+ },
357
+ telemetry: {
358
+ enabled: true,
359
+ backend: 'prometheus',
360
+ },
361
+ attribution: {
362
+ enabled: false,
363
+ telemetry: {
364
+ enabled: false,
365
+ send_data: false,
366
+ data_residency: null,
367
+ },
368
+ },
369
+ },
370
+ complianceReady: true,
371
+ frameworks: ['SOC2', 'GDPR', 'ISO27001', 'ISO42001'],
372
+ };
373
+ exports.LOW_LATENCY = {
374
+ name: 'low_latency',
375
+ description: 'Minimal overhead for latency-sensitive applications',
376
+ environment: 'production',
377
+ config: {
378
+ defaults: {
379
+ environment: 'production',
380
+ data_classification: 'internal',
381
+ },
382
+ sinks: [{ type: 'file', path: './monora_events.jsonl' }],
383
+ immutability: {
384
+ enabled: true,
385
+ scope: 'per_trace',
386
+ verify_on_emit: false,
387
+ verify_on_shutdown: true,
388
+ },
389
+ policies: {
390
+ enforce: true,
391
+ },
392
+ wal: {
393
+ enabled: false,
394
+ },
395
+ signing: {
396
+ enabled: false,
397
+ },
398
+ reporting: {
399
+ enabled: true,
400
+ emit_trust_summary: false,
401
+ },
402
+ telemetry: {
403
+ enabled: true,
404
+ backend: 'minimal',
405
+ },
406
+ buffering: {
407
+ batch_size: 100,
408
+ flush_interval_sec: 1.0,
409
+ },
410
+ },
411
+ };
412
+ // ============================================================================
413
+ // PRESET REGISTRY
414
+ // ============================================================================
415
+ exports.PRESETS = {
416
+ // Environment presets
417
+ development: exports.DEVELOPMENT,
418
+ dev: exports.DEVELOPMENT,
419
+ poc: exports.POC,
420
+ staging: exports.STAGING,
421
+ production: exports.PRODUCTION,
422
+ prod: exports.PRODUCTION,
423
+ // Compliance presets
424
+ strict_enterprise: exports.STRICT_ENTERPRISE,
425
+ enterprise: exports.STRICT_ENTERPRISE,
426
+ default_secure: exports.DEFAULT_SECURE,
427
+ secure: exports.DEFAULT_SECURE,
428
+ experimental: exports.EXPERIMENTAL,
429
+ audit_first: exports.AUDIT_FIRST,
430
+ audit: exports.AUDIT_FIRST,
431
+ low_latency: exports.LOW_LATENCY,
432
+ fast: exports.LOW_LATENCY,
433
+ };
434
+ /**
435
+ * Get a preset configuration by name.
436
+ *
437
+ * @param name - Preset name (e.g., "strict_enterprise", "development").
438
+ * @returns PresetConfig object.
439
+ * @throws Error if preset name is not recognized.
440
+ *
441
+ * @example
442
+ * ```typescript
443
+ * const config = getPreset('strict_enterprise');
444
+ * console.log(config.description);
445
+ * ```
446
+ */
447
+ function getPreset(name) {
448
+ const preset = exports.PRESETS[name.toLowerCase()];
449
+ if (!preset) {
450
+ const available = listPresets().join(', ');
451
+ throw new Error(`Unknown preset '${name}'. Available: ${available}`);
452
+ }
453
+ return preset;
454
+ }
455
+ /**
456
+ * List all available preset names.
457
+ *
458
+ * @returns Array of unique preset names.
459
+ */
460
+ function listPresets() {
461
+ const names = new Set(Object.values(exports.PRESETS).map((p) => p.name));
462
+ return Array.from(names).sort();
463
+ }
464
+ /**
465
+ * Get preset configuration dictionary.
466
+ *
467
+ * @param name - Preset name.
468
+ * @returns Configuration object.
469
+ */
470
+ function getPresetConfig(name) {
471
+ return deepClone(getPreset(name).config);
472
+ }
473
+ /**
474
+ * Merge preset config with custom overrides.
475
+ *
476
+ * @param presetName - Base preset name.
477
+ * @param overrides - Custom configuration to merge.
478
+ * @returns Merged configuration object.
479
+ *
480
+ * @example
481
+ * ```typescript
482
+ * const config = mergeWithPreset('production', {
483
+ * sinks: [{ type: 'https', endpoint: 'https://api.example.com' }],
484
+ * });
485
+ * ```
486
+ */
487
+ function mergeWithPreset(presetName, overrides) {
488
+ const baseConfig = getPresetConfig(presetName);
489
+ if (overrides) {
490
+ deepMerge(baseConfig, overrides);
491
+ }
492
+ return baseConfig;
493
+ }
494
+ /**
495
+ * Deep merge updates into base object.
496
+ */
497
+ function deepMerge(base, updates) {
498
+ for (const key of Object.keys(updates)) {
499
+ if (key in base &&
500
+ typeof base[key] === 'object' &&
501
+ base[key] !== null &&
502
+ !Array.isArray(base[key]) &&
503
+ typeof updates[key] === 'object' &&
504
+ updates[key] !== null &&
505
+ !Array.isArray(updates[key])) {
506
+ deepMerge(base[key], updates[key]);
507
+ }
508
+ else {
509
+ base[key] = deepClone(updates[key]);
510
+ }
511
+ }
512
+ }
513
+ function deepClone(value) {
514
+ const structuredCloneFn = globalThis
515
+ .structuredClone;
516
+ if (typeof structuredCloneFn === 'function') {
517
+ return structuredCloneFn(value);
518
+ }
519
+ return JSON.parse(JSON.stringify(value));
520
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"propagation.d.ts","sourceRoot":"","sources":["../src/propagation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAyB,IAAI,EAAE,MAAM,WAAW,CAAC;AAGxD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAK9C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,gBAAgB,GAAG,IAAI,CAkDzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GACpB,CAAC,CAcH;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CAEZ;AAuCD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAc,GACtB,MAAM,CAGR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAItE"}
1
+ {"version":3,"file":"propagation.d.ts","sourceRoot":"","sources":["../src/propagation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAyB,IAAI,EAAE,MAAM,WAAW,CAAC;AAGxD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAK9C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,gBAAgB,GAAG,IAAI,CAkDzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GACpB,CAAC,CAcH;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CAEZ;AAqCD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAc,GACtB,MAAM,CAGR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAItE"}
@@ -5,6 +5,39 @@
5
5
  * This module implements the W3C Trace Context specification
6
6
  * (https://www.w3.org/TR/trace-context/) for distributed tracing.
7
7
  */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  Object.defineProperty(exports, "__esModule", { value: true });
9
42
  exports.TRACESTATE_HEADER = exports.TRACEPARENT_HEADER = void 0;
10
43
  exports.injectHeaders = injectHeaders;
@@ -13,6 +46,7 @@ exports.continueTrace = continueTrace;
13
46
  exports.continueTraceAsync = continueTraceAsync;
14
47
  exports.makeTraceparent = makeTraceparent;
15
48
  exports.makeTracestate = makeTracestate;
49
+ const crypto = __importStar(require("crypto"));
16
50
  const context_1 = require("./context");
17
51
  // W3C Trace Context header names
18
52
  exports.TRACEPARENT_HEADER = 'traceparent';
@@ -162,7 +196,6 @@ async function continueTraceAsync(headers, name, fn) {
162
196
  function monoraToW3cTraceId(monoraId) {
163
197
  const raw = monoraId.replace('trc_', '').replace('spn_', '');
164
198
  // Create a simple hex representation by hashing
165
- const crypto = require('crypto');
166
199
  const hash = crypto.createHash('sha256').update(raw).digest('hex');
167
200
  return hash.slice(0, 32);
168
201
  }
@@ -173,7 +206,6 @@ function monoraToW3cTraceId(monoraId) {
173
206
  function monoraToW3cSpanId(monoraId) {
174
207
  const raw = monoraId.replace('spn_', '').replace('trc_', '');
175
208
  // Create a simple hex representation by hashing
176
- const crypto = require('crypto');
177
209
  const hash = crypto.createHash('sha256').update(raw).digest('hex');
178
210
  return hash.slice(0, 16);
179
211
  }