@marktoflow/core 2.0.3 → 2.0.4

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 (181) hide show
  1. package/README.md +69 -6
  2. package/dist/built-in-operations.d.ts +2 -136
  3. package/dist/built-in-operations.d.ts.map +1 -1
  4. package/dist/built-in-operations.js +7 -743
  5. package/dist/built-in-operations.js.map +1 -1
  6. package/dist/engine/conditions.d.ts +29 -0
  7. package/dist/engine/conditions.d.ts.map +1 -0
  8. package/dist/engine/conditions.js +109 -0
  9. package/dist/engine/conditions.js.map +1 -0
  10. package/dist/engine/control-flow.d.ts +35 -0
  11. package/dist/engine/control-flow.d.ts.map +1 -0
  12. package/dist/engine/control-flow.js +653 -0
  13. package/dist/engine/control-flow.js.map +1 -0
  14. package/dist/engine/index.d.ts +12 -0
  15. package/dist/engine/index.d.ts.map +1 -0
  16. package/dist/engine/index.js +11 -0
  17. package/dist/engine/index.js.map +1 -0
  18. package/dist/engine/retry.d.ts +35 -0
  19. package/dist/engine/retry.d.ts.map +1 -0
  20. package/dist/engine/retry.js +86 -0
  21. package/dist/engine/retry.js.map +1 -0
  22. package/dist/engine/subworkflow.d.ts +31 -0
  23. package/dist/engine/subworkflow.d.ts.map +1 -0
  24. package/dist/engine/subworkflow.js +240 -0
  25. package/dist/engine/subworkflow.js.map +1 -0
  26. package/dist/engine/types.d.ts +55 -0
  27. package/dist/engine/types.d.ts.map +1 -0
  28. package/dist/engine/types.js +5 -0
  29. package/dist/{secrets → engine}/types.js.map +1 -1
  30. package/dist/engine/variable-resolution.d.ts +29 -0
  31. package/dist/engine/variable-resolution.d.ts.map +1 -0
  32. package/dist/engine/variable-resolution.js +130 -0
  33. package/dist/engine/variable-resolution.js.map +1 -0
  34. package/dist/engine.d.ts +17 -211
  35. package/dist/engine.d.ts.map +1 -1
  36. package/dist/engine.js +80 -1347
  37. package/dist/engine.js.map +1 -1
  38. package/dist/file-operations.js +1 -1
  39. package/dist/file-operations.js.map +1 -1
  40. package/dist/filters/array.d.ts +9 -0
  41. package/dist/filters/array.d.ts.map +1 -0
  42. package/dist/filters/array.js +41 -0
  43. package/dist/filters/array.js.map +1 -0
  44. package/dist/filters/date.d.ts +9 -0
  45. package/dist/filters/date.d.ts.map +1 -0
  46. package/dist/filters/date.js +51 -0
  47. package/dist/filters/date.js.map +1 -0
  48. package/dist/filters/index.d.ts +13 -0
  49. package/dist/filters/index.d.ts.map +1 -0
  50. package/dist/filters/index.js +13 -0
  51. package/dist/filters/index.js.map +1 -0
  52. package/dist/filters/json.d.ts +6 -0
  53. package/dist/filters/json.d.ts.map +1 -0
  54. package/dist/filters/json.js +15 -0
  55. package/dist/filters/json.js.map +1 -0
  56. package/dist/filters/logic.d.ts +8 -0
  57. package/dist/filters/logic.d.ts.map +1 -0
  58. package/dist/filters/logic.js +28 -0
  59. package/dist/filters/logic.js.map +1 -0
  60. package/dist/filters/math.d.ts +13 -0
  61. package/dist/filters/math.d.ts.map +1 -0
  62. package/dist/filters/math.js +39 -0
  63. package/dist/filters/math.js.map +1 -0
  64. package/dist/filters/object.d.ts +11 -0
  65. package/dist/filters/object.d.ts.map +1 -0
  66. package/dist/filters/object.js +64 -0
  67. package/dist/filters/object.js.map +1 -0
  68. package/dist/filters/regex.d.ts +7 -0
  69. package/dist/filters/regex.d.ts.map +1 -0
  70. package/dist/filters/regex.js +38 -0
  71. package/dist/filters/regex.js.map +1 -0
  72. package/dist/filters/string.d.ts +11 -0
  73. package/dist/filters/string.d.ts.map +1 -0
  74. package/dist/filters/string.js +35 -0
  75. package/dist/filters/string.js.map +1 -0
  76. package/dist/filters/type-checks.d.ts +10 -0
  77. package/dist/filters/type-checks.d.ts.map +1 -0
  78. package/dist/filters/type-checks.js +30 -0
  79. package/dist/filters/type-checks.js.map +1 -0
  80. package/dist/index.d.ts +5 -1
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +7 -1
  83. package/dist/index.js.map +1 -1
  84. package/dist/nunjucks-filters.d.ts +2 -261
  85. package/dist/nunjucks-filters.d.ts.map +1 -1
  86. package/dist/nunjucks-filters.js +24 -582
  87. package/dist/nunjucks-filters.js.map +1 -1
  88. package/dist/operations/compress.d.ts +6 -0
  89. package/dist/operations/compress.d.ts.map +1 -0
  90. package/dist/operations/compress.js +36 -0
  91. package/dist/operations/compress.js.map +1 -0
  92. package/dist/operations/crypto.d.ts +5 -0
  93. package/dist/operations/crypto.d.ts.map +1 -0
  94. package/dist/operations/crypto.js +61 -0
  95. package/dist/operations/crypto.js.map +1 -0
  96. package/dist/operations/data-ops.d.ts +10 -0
  97. package/dist/operations/data-ops.d.ts.map +1 -0
  98. package/dist/operations/data-ops.js +124 -0
  99. package/dist/operations/data-ops.js.map +1 -0
  100. package/dist/operations/datetime.d.ts +5 -0
  101. package/dist/operations/datetime.d.ts.map +1 -0
  102. package/dist/operations/datetime.js +86 -0
  103. package/dist/operations/datetime.js.map +1 -0
  104. package/dist/operations/extract.d.ts +23 -0
  105. package/dist/operations/extract.d.ts.map +1 -0
  106. package/dist/operations/extract.js +31 -0
  107. package/dist/operations/extract.js.map +1 -0
  108. package/dist/operations/format.d.ts +14 -0
  109. package/dist/operations/format.d.ts.map +1 -0
  110. package/dist/operations/format.js +84 -0
  111. package/dist/operations/format.js.map +1 -0
  112. package/dist/operations/index.d.ts +13 -0
  113. package/dist/operations/index.d.ts.map +1 -0
  114. package/dist/operations/index.js +13 -0
  115. package/dist/operations/index.js.map +1 -0
  116. package/dist/operations/parse.d.ts +5 -0
  117. package/dist/operations/parse.d.ts.map +1 -0
  118. package/dist/operations/parse.js +59 -0
  119. package/dist/operations/parse.js.map +1 -0
  120. package/dist/operations/set.d.ts +21 -0
  121. package/dist/operations/set.d.ts.map +1 -0
  122. package/dist/operations/set.js +25 -0
  123. package/dist/operations/set.js.map +1 -0
  124. package/dist/operations/transform.d.ts +15 -0
  125. package/dist/operations/transform.d.ts.map +1 -0
  126. package/dist/operations/transform.js +110 -0
  127. package/dist/operations/transform.js.map +1 -0
  128. package/dist/parallel.d.ts +114 -0
  129. package/dist/parallel.d.ts.map +1 -0
  130. package/dist/parallel.js +325 -0
  131. package/dist/parallel.js.map +1 -0
  132. package/dist/parser.d.ts.map +1 -1
  133. package/dist/parser.js +2 -0
  134. package/dist/parser.js.map +1 -1
  135. package/dist/sdk-registry.d.ts.map +1 -1
  136. package/dist/sdk-registry.js +9 -3
  137. package/dist/sdk-registry.js.map +1 -1
  138. package/dist/utils/duration.d.ts +23 -0
  139. package/dist/utils/duration.d.ts.map +1 -0
  140. package/dist/utils/duration.js +41 -0
  141. package/dist/utils/duration.js.map +1 -0
  142. package/dist/utils/errors.d.ts +20 -0
  143. package/dist/utils/errors.d.ts.map +1 -0
  144. package/dist/utils/errors.js +37 -0
  145. package/dist/utils/errors.js.map +1 -0
  146. package/dist/utils/index.d.ts +3 -0
  147. package/dist/utils/index.d.ts.map +1 -0
  148. package/dist/utils/index.js +3 -0
  149. package/dist/utils/index.js.map +1 -0
  150. package/dist/workflow-templates.d.ts +80 -0
  151. package/dist/workflow-templates.d.ts.map +1 -0
  152. package/dist/workflow-templates.js +248 -0
  153. package/dist/workflow-templates.js.map +1 -0
  154. package/package.json +30 -5
  155. package/dist/secrets/index.d.ts +0 -12
  156. package/dist/secrets/index.d.ts.map +0 -1
  157. package/dist/secrets/index.js +0 -11
  158. package/dist/secrets/index.js.map +0 -1
  159. package/dist/secrets/providers/aws.d.ts +0 -32
  160. package/dist/secrets/providers/aws.d.ts.map +0 -1
  161. package/dist/secrets/providers/aws.js +0 -118
  162. package/dist/secrets/providers/aws.js.map +0 -1
  163. package/dist/secrets/providers/azure.d.ts +0 -40
  164. package/dist/secrets/providers/azure.d.ts.map +0 -1
  165. package/dist/secrets/providers/azure.js +0 -170
  166. package/dist/secrets/providers/azure.js.map +0 -1
  167. package/dist/secrets/providers/env.d.ts +0 -26
  168. package/dist/secrets/providers/env.d.ts.map +0 -1
  169. package/dist/secrets/providers/env.js +0 -59
  170. package/dist/secrets/providers/env.js.map +0 -1
  171. package/dist/secrets/providers/vault.d.ts +0 -39
  172. package/dist/secrets/providers/vault.d.ts.map +0 -1
  173. package/dist/secrets/providers/vault.js +0 -180
  174. package/dist/secrets/providers/vault.js.map +0 -1
  175. package/dist/secrets/secret-manager.d.ts +0 -72
  176. package/dist/secrets/secret-manager.d.ts.map +0 -1
  177. package/dist/secrets/secret-manager.js +0 -226
  178. package/dist/secrets/secret-manager.js.map +0 -1
  179. package/dist/secrets/types.d.ts +0 -105
  180. package/dist/secrets/types.d.ts.map +0 -1
  181. package/dist/secrets/types.js +0 -8
@@ -1,40 +0,0 @@
1
- /**
2
- * Azure Key Vault Secret Provider
3
- *
4
- * Supports service principal and managed identity authentication.
5
- */
6
- import type { SecretProvider, Secret, AzureKeyVaultConfig } from '../types.js';
7
- export declare class AzureKeyVaultProvider implements SecretProvider {
8
- private config;
9
- private accessToken?;
10
- private tokenExpiresAt?;
11
- private initialized;
12
- constructor(config: AzureKeyVaultConfig);
13
- initialize(): Promise<void>;
14
- /**
15
- * Get or refresh access token
16
- */
17
- private refreshAccessToken;
18
- /**
19
- * Authenticate using service principal
20
- */
21
- private authenticateWithServicePrincipal;
22
- /**
23
- * Authenticate using managed identity
24
- */
25
- private authenticateWithManagedIdentity;
26
- /**
27
- * Get a secret from Azure Key Vault
28
- */
29
- getSecret(secretName: string): Promise<Secret>;
30
- /**
31
- * Check if a secret exists
32
- */
33
- exists(secretName: string): Promise<boolean>;
34
- /**
35
- * List secrets
36
- */
37
- listSecrets(): Promise<string[]>;
38
- destroy(): Promise<void>;
39
- }
40
- //# sourceMappingURL=azure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"azure.d.ts","sourceRoot":"","sources":["../../../src/secrets/providers/azure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE/E,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAC,CAAO;IAC9B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,mBAAmB;IAUjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBjC;;OAEG;YACW,kBAAkB;IAahC;;OAEG;YACW,gCAAgC;IA0B9C;;OAEG;YACW,+BAA+B;IAc7C;;OAEG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqDpD;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA2BhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
@@ -1,170 +0,0 @@
1
- /**
2
- * Azure Key Vault Secret Provider
3
- *
4
- * Supports service principal and managed identity authentication.
5
- */
6
- export class AzureKeyVaultProvider {
7
- config;
8
- accessToken;
9
- tokenExpiresAt;
10
- initialized = false;
11
- constructor(config) {
12
- this.config = {
13
- vaultUrl: config.vaultUrl,
14
- tenantId: config.tenantId ?? '',
15
- clientId: config.clientId ?? '',
16
- clientSecret: config.clientSecret ?? '',
17
- useManagedIdentity: config.useManagedIdentity ?? false,
18
- };
19
- }
20
- async initialize() {
21
- if (this.initialized)
22
- return;
23
- // Validate configuration
24
- if (!this.config.useManagedIdentity) {
25
- if (!this.config.tenantId || !this.config.clientId || !this.config.clientSecret) {
26
- throw new Error('Azure Key Vault requires tenantId, clientId, and clientSecret, or useManagedIdentity must be true');
27
- }
28
- }
29
- // Get initial access token
30
- await this.refreshAccessToken();
31
- this.initialized = true;
32
- }
33
- /**
34
- * Get or refresh access token
35
- */
36
- async refreshAccessToken() {
37
- // Check if token is still valid (with 5 min buffer)
38
- if (this.accessToken && this.tokenExpiresAt && this.tokenExpiresAt > new Date(Date.now() + 300000)) {
39
- return;
40
- }
41
- if (this.config.useManagedIdentity) {
42
- await this.authenticateWithManagedIdentity();
43
- }
44
- else {
45
- await this.authenticateWithServicePrincipal();
46
- }
47
- }
48
- /**
49
- * Authenticate using service principal
50
- */
51
- async authenticateWithServicePrincipal() {
52
- const url = `https://login.microsoftonline.com/${this.config.tenantId}/oauth2/v2.0/token`;
53
- const response = await fetch(url, {
54
- method: 'POST',
55
- headers: {
56
- 'Content-Type': 'application/x-www-form-urlencoded',
57
- },
58
- body: new URLSearchParams({
59
- client_id: this.config.clientId,
60
- client_secret: this.config.clientSecret,
61
- scope: 'https://vault.azure.net/.default',
62
- grant_type: 'client_credentials',
63
- }),
64
- });
65
- if (!response.ok) {
66
- const error = await response.text();
67
- throw new Error(`Azure authentication failed: ${response.status} ${error}`);
68
- }
69
- const data = (await response.json());
70
- this.accessToken = data.access_token;
71
- this.tokenExpiresAt = new Date(Date.now() + data.expires_in * 1000);
72
- }
73
- /**
74
- * Authenticate using managed identity
75
- */
76
- async authenticateWithManagedIdentity() {
77
- // This is a placeholder - real implementation would use Azure Instance Metadata Service
78
- throw new Error('Azure Managed Identity authentication requires @azure/identity package. ' +
79
- 'Install it with: npm install @azure/identity @azure/keyvault-secrets');
80
- // Production implementation would use:
81
- // import { DefaultAzureCredential } from '@azure/identity';
82
- // import { SecretClient } from '@azure/keyvault-secrets';
83
- // const credential = new DefaultAzureCredential();
84
- // const client = new SecretClient(this.config.vaultUrl, credential);
85
- }
86
- /**
87
- * Get a secret from Azure Key Vault
88
- */
89
- async getSecret(secretName) {
90
- if (!this.initialized) {
91
- await this.initialize();
92
- }
93
- await this.refreshAccessToken();
94
- // Clean secret name (Azure doesn't allow some characters)
95
- const cleanName = secretName.replace(/[^a-zA-Z0-9-]/g, '-');
96
- const url = `${this.config.vaultUrl}/secrets/${cleanName}?api-version=7.4`;
97
- const response = await fetch(url, {
98
- headers: {
99
- Authorization: `Bearer ${this.accessToken}`,
100
- },
101
- });
102
- if (!response.ok) {
103
- if (response.status === 404) {
104
- throw new Error(`Secret not found: ${secretName}`);
105
- }
106
- const error = await response.text();
107
- throw new Error(`Failed to fetch secret from Azure Key Vault: ${response.status} ${error}`);
108
- }
109
- const data = (await response.json());
110
- // Try to parse as JSON
111
- let value;
112
- try {
113
- value = JSON.parse(data.value);
114
- }
115
- catch {
116
- value = data.value;
117
- }
118
- return {
119
- value,
120
- metadata: {
121
- createdAt: new Date(data.attributes.created * 1000),
122
- updatedAt: new Date(data.attributes.updated * 1000),
123
- },
124
- };
125
- }
126
- /**
127
- * Check if a secret exists
128
- */
129
- async exists(secretName) {
130
- try {
131
- await this.getSecret(secretName);
132
- return true;
133
- }
134
- catch (error) {
135
- if (error instanceof Error && error.message.includes('not found')) {
136
- return false;
137
- }
138
- throw error;
139
- }
140
- }
141
- /**
142
- * List secrets
143
- */
144
- async listSecrets() {
145
- if (!this.initialized) {
146
- await this.initialize();
147
- }
148
- await this.refreshAccessToken();
149
- const url = `${this.config.vaultUrl}/secrets?api-version=7.4`;
150
- const response = await fetch(url, {
151
- headers: {
152
- Authorization: `Bearer ${this.accessToken}`,
153
- },
154
- });
155
- if (!response.ok) {
156
- const error = await response.text();
157
- throw new Error(`Failed to list secrets from Azure Key Vault: ${response.status} ${error}`);
158
- }
159
- const data = (await response.json());
160
- return data.value.map((secret) => {
161
- const parts = secret.id.split('/');
162
- return parts[parts.length - 1];
163
- });
164
- }
165
- async destroy() {
166
- this.accessToken = '';
167
- this.initialized = false;
168
- }
169
- }
170
- //# sourceMappingURL=azure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"azure.js","sourceRoot":"","sources":["../../../src/secrets/providers/azure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAgC;IACtC,WAAW,CAAU;IACrB,cAAc,CAAQ;IACtB,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;YACvC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,KAAK;SACvD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,yBAAyB;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAChF,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB;QAC9B,oDAAoD;QACpD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YACnG,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gCAAgC;QAC5C,MAAM,GAAG,GAAG,qCAAqC,IAAI,CAAC,MAAM,CAAC,QAAQ,oBAAoB,CAAC;QAE1F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;YACD,IAAI,EAAE,IAAI,eAAe,CAAC;gBACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAS;gBAChC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,YAAa;gBACxC,KAAK,EAAE,kCAAkC;gBACzC,UAAU,EAAE,oBAAoB;aACjC,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiD,CAAC;QACrF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,+BAA+B;QAC3C,wFAAwF;QACxF,MAAM,IAAI,KAAK,CACb,0EAA0E;YACxE,sEAAsE,CACzE,CAAC;QAEF,uCAAuC;QACvC,4DAA4D;QAC5D,0DAA0D;QAC1D,mDAAmD;QACnD,qEAAqE;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,0DAA0D;QAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QAE5D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,YAAY,SAAS,kBAAkB,CAAC;QAE3E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;aAC5C;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,gDAAgD,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAQlC,CAAC;QAEF,uBAAuB;QACvB,IAAI,KAAuC,CAAC;QAC5C,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,CAAC;QAED,OAAO;YACL,KAAK;YACL,QAAQ,EAAE;gBACR,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;gBACnD,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;aACpD;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,0BAA0B,CAAC;QAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;aAC5C;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,gDAAgD,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqC,CAAC;QACzE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Environment Variable Provider
3
- *
4
- * Simple provider that reads secrets from environment variables.
5
- * Useful for local development and simple deployments.
6
- */
7
- import type { SecretProvider, Secret } from '../types.js';
8
- export declare class EnvProvider implements SecretProvider {
9
- private prefix;
10
- constructor(prefix?: string);
11
- initialize(): Promise<void>;
12
- /**
13
- * Get a secret from environment variables
14
- * Path format: VAR_NAME or prefix_VAR_NAME if prefix is set
15
- */
16
- getSecret(path: string): Promise<Secret>;
17
- /**
18
- * Check if an environment variable exists
19
- */
20
- exists(path: string): Promise<boolean>;
21
- /**
22
- * List all environment variables with the prefix
23
- */
24
- listSecrets(): Promise<string[]>;
25
- }
26
- //# sourceMappingURL=env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/secrets/providers/env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1D,qBAAa,WAAY,YAAW,cAAc;IAChD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,MAAW;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB9C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAYvC"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Environment Variable Provider
3
- *
4
- * Simple provider that reads secrets from environment variables.
5
- * Useful for local development and simple deployments.
6
- */
7
- export class EnvProvider {
8
- prefix;
9
- constructor(prefix = '') {
10
- this.prefix = prefix;
11
- }
12
- async initialize() {
13
- // No initialization needed
14
- }
15
- /**
16
- * Get a secret from environment variables
17
- * Path format: VAR_NAME or prefix_VAR_NAME if prefix is set
18
- */
19
- async getSecret(path) {
20
- const envVar = this.prefix ? `${this.prefix}_${path}` : path;
21
- const value = process.env[envVar];
22
- if (value === undefined) {
23
- throw new Error(`Environment variable not found: ${envVar}`);
24
- }
25
- // Try to parse as JSON
26
- let parsedValue = value;
27
- try {
28
- parsedValue = JSON.parse(value);
29
- }
30
- catch {
31
- // Not JSON, use as string
32
- }
33
- return {
34
- value: parsedValue,
35
- };
36
- }
37
- /**
38
- * Check if an environment variable exists
39
- */
40
- async exists(path) {
41
- const envVar = this.prefix ? `${this.prefix}_${path}` : path;
42
- return process.env[envVar] !== undefined;
43
- }
44
- /**
45
- * List all environment variables with the prefix
46
- */
47
- async listSecrets() {
48
- if (!this.prefix) {
49
- // Return all env vars if no prefix
50
- return Object.keys(process.env);
51
- }
52
- // Return only vars with the prefix
53
- const prefixWithUnderscore = `${this.prefix}_`;
54
- return Object.keys(process.env)
55
- .filter((key) => key.startsWith(prefixWithUnderscore))
56
- .map((key) => key.slice(prefixWithUnderscore.length));
57
- }
58
- }
59
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/secrets/providers/env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,WAAW;IACd,MAAM,CAAS;IAEvB,YAAY,SAAiB,EAAE;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,2BAA2B;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,uBAAuB;QACvB,IAAI,WAAW,GAAqC,KAAK,CAAC;QAC1D,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,OAAO;YACL,KAAK,EAAE,WAAW;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,mCAAmC;YACnC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,mCAAmC;QACnC,MAAM,oBAAoB,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aAC5B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;aACrD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -1,39 +0,0 @@
1
- /**
2
- * HashiCorp Vault Secret Provider
3
- *
4
- * Supports KV v1 and v2 engines with token and AppRole authentication.
5
- */
6
- import type { SecretProvider, Secret, VaultConfig } from '../types.js';
7
- export declare class VaultProvider implements SecretProvider {
8
- private config;
9
- private token?;
10
- private initialized;
11
- constructor(config: VaultConfig);
12
- initialize(): Promise<void>;
13
- /**
14
- * Authenticate using AppRole
15
- */
16
- private authenticateAppRole;
17
- /**
18
- * Get a secret from Vault
19
- */
20
- getSecret(path: string): Promise<Secret>;
21
- /**
22
- * Check if a secret exists
23
- */
24
- exists(path: string): Promise<boolean>;
25
- /**
26
- * List secrets at a path
27
- */
28
- listSecrets(path: string): Promise<string[]>;
29
- /**
30
- * Build URL for secret access
31
- */
32
- private buildSecretUrl;
33
- /**
34
- * Build URL for listing secrets
35
- */
36
- private buildListUrl;
37
- destroy(): Promise<void>;
38
- }
39
- //# sourceMappingURL=vault.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../../src/secrets/providers/vault.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvE,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,WAAW;IAYzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;YACW,mBAAmB;IA4BjC;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkD9C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5C;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+BlD;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYd,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
@@ -1,180 +0,0 @@
1
- /**
2
- * HashiCorp Vault Secret Provider
3
- *
4
- * Supports KV v1 and v2 engines with token and AppRole authentication.
5
- */
6
- export class VaultProvider {
7
- config;
8
- token;
9
- initialized = false;
10
- constructor(config) {
11
- this.config = {
12
- address: config.address,
13
- token: config.token ?? '',
14
- namespace: config.namespace ?? '',
15
- roleId: config.roleId ?? '',
16
- secretId: config.secretId ?? '',
17
- kvVersion: config.kvVersion ?? 2,
18
- mountPath: config.mountPath ?? 'secret',
19
- };
20
- }
21
- async initialize() {
22
- if (this.initialized)
23
- return;
24
- // If using AppRole, authenticate to get token
25
- if (this.config.roleId && this.config.secretId) {
26
- await this.authenticateAppRole();
27
- }
28
- else if (!this.config.token) {
29
- throw new Error('Vault provider requires either token or AppRole credentials');
30
- }
31
- else {
32
- this.token = this.config.token;
33
- }
34
- this.initialized = true;
35
- }
36
- /**
37
- * Authenticate using AppRole
38
- */
39
- async authenticateAppRole() {
40
- const url = `${this.config.address}/v1/auth/approle/login`;
41
- const headers = {
42
- 'Content-Type': 'application/json',
43
- };
44
- if (this.config.namespace) {
45
- headers['X-Vault-Namespace'] = this.config.namespace;
46
- }
47
- const response = await fetch(url, {
48
- method: 'POST',
49
- headers,
50
- body: JSON.stringify({
51
- role_id: this.config.roleId,
52
- secret_id: this.config.secretId,
53
- }),
54
- });
55
- if (!response.ok) {
56
- const error = await response.text();
57
- throw new Error(`Vault AppRole authentication failed: ${response.status} ${error}`);
58
- }
59
- const data = (await response.json());
60
- this.token = data.auth.client_token;
61
- }
62
- /**
63
- * Get a secret from Vault
64
- */
65
- async getSecret(path) {
66
- if (!this.initialized) {
67
- await this.initialize();
68
- }
69
- const url = this.buildSecretUrl(path);
70
- const headers = {
71
- 'X-Vault-Token': this.token,
72
- };
73
- if (this.config.namespace) {
74
- headers['X-Vault-Namespace'] = this.config.namespace;
75
- }
76
- const response = await fetch(url, { headers });
77
- if (!response.ok) {
78
- if (response.status === 404) {
79
- throw new Error(`Secret not found: ${path}`);
80
- }
81
- const error = await response.text();
82
- throw new Error(`Failed to fetch secret from Vault: ${response.status} ${error}`);
83
- }
84
- const data = await response.json();
85
- // Handle KV v1 vs v2 response format
86
- if (this.config.kvVersion === 2) {
87
- const secretData = data.data;
88
- const metadata = {
89
- version: String(secretData.metadata.version),
90
- };
91
- if (secretData.metadata.created_time) {
92
- metadata.createdAt = new Date(secretData.metadata.created_time);
93
- }
94
- return {
95
- value: secretData.data,
96
- metadata,
97
- };
98
- }
99
- else {
100
- // KV v1
101
- const secretData = data.data;
102
- return {
103
- value: secretData,
104
- };
105
- }
106
- }
107
- /**
108
- * Check if a secret exists
109
- */
110
- async exists(path) {
111
- try {
112
- await this.getSecret(path);
113
- return true;
114
- }
115
- catch {
116
- return false;
117
- }
118
- }
119
- /**
120
- * List secrets at a path
121
- */
122
- async listSecrets(path) {
123
- if (!this.initialized) {
124
- await this.initialize();
125
- }
126
- const url = this.buildListUrl(path);
127
- const headers = {
128
- 'X-Vault-Token': this.token,
129
- };
130
- if (this.config.namespace) {
131
- headers['X-Vault-Namespace'] = this.config.namespace;
132
- }
133
- const response = await fetch(url, {
134
- method: 'LIST',
135
- headers,
136
- });
137
- if (!response.ok) {
138
- if (response.status === 404) {
139
- return [];
140
- }
141
- const error = await response.text();
142
- throw new Error(`Failed to list secrets from Vault: ${response.status} ${error}`);
143
- }
144
- const data = (await response.json());
145
- return data.data.keys || [];
146
- }
147
- /**
148
- * Build URL for secret access
149
- */
150
- buildSecretUrl(path) {
151
- const cleanPath = path.startsWith('/') ? path.slice(1) : path;
152
- if (this.config.kvVersion === 2) {
153
- // KV v2: /v1/{mount}/data/{path}
154
- return `${this.config.address}/v1/${this.config.mountPath}/data/${cleanPath}`;
155
- }
156
- else {
157
- // KV v1: /v1/{mount}/{path}
158
- return `${this.config.address}/v1/${this.config.mountPath}/${cleanPath}`;
159
- }
160
- }
161
- /**
162
- * Build URL for listing secrets
163
- */
164
- buildListUrl(path) {
165
- const cleanPath = path.startsWith('/') ? path.slice(1) : path;
166
- if (this.config.kvVersion === 2) {
167
- // KV v2: /v1/{mount}/metadata/{path}
168
- return `${this.config.address}/v1/${this.config.mountPath}/metadata/${cleanPath}`;
169
- }
170
- else {
171
- // KV v1: /v1/{mount}/{path}
172
- return `${this.config.address}/v1/${this.config.mountPath}/${cleanPath}`;
173
- }
174
- }
175
- async destroy() {
176
- this.token = '';
177
- this.initialized = false;
178
- }
179
- }
180
- //# sourceMappingURL=vault.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/secrets/providers/vault.ts"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- /**
2
- * Secret Manager
3
- *
4
- * Coordinates access to external secret managers with caching support.
5
- */
6
- import type { SecretProvider, SecretManagerOptions, Secret, SecretReference } from './types.js';
7
- export declare class SecretNotFoundError extends Error {
8
- constructor(message: string);
9
- }
10
- export declare class SecretProviderError extends Error {
11
- constructor(message: string);
12
- }
13
- export declare class SecretManager {
14
- private providers;
15
- private cache;
16
- private options;
17
- constructor(options: SecretManagerOptions);
18
- /**
19
- * Register a secret provider
20
- */
21
- registerProvider(type: string, provider: SecretProvider): void;
22
- /**
23
- * Initialize all configured providers
24
- */
25
- initialize(): Promise<void>;
26
- /**
27
- * Get a secret from the appropriate provider
28
- */
29
- getSecret(reference: string): Promise<Secret>;
30
- /**
31
- * Parse a secret reference
32
- * Formats:
33
- * ${secret:vault://path/to/secret}
34
- * ${secret:aws://secret-name}
35
- * ${secret:azure://secret-name}
36
- * ${secret:vault://path/to/secret#key}
37
- */
38
- parseReference(reference: string): SecretReference;
39
- /**
40
- * Extract a key from a JSON secret
41
- */
42
- private extractKey;
43
- /**
44
- * Get secret from cache if not expired
45
- */
46
- private getCached;
47
- /**
48
- * Cache a secret
49
- */
50
- private cacheSecret;
51
- /**
52
- * Clear cache
53
- */
54
- clearCache(): void;
55
- /**
56
- * Clear expired cache entries
57
- */
58
- clearExpiredCache(): void;
59
- /**
60
- * Check if a reference looks like a secret reference
61
- */
62
- static isSecretReference(value: string): boolean;
63
- /**
64
- * Replace secret references in a string
65
- */
66
- resolveSecrets(value: string): Promise<string>;
67
- /**
68
- * Clean up resources
69
- */
70
- destroy(): Promise<void>;
71
- }
72
- //# sourceMappingURL=secret-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret-manager.d.ts","sourceRoot":"","sources":["../../src/secrets/secret-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EAEpB,MAAM,EACN,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,OAAO,CAAiC;gBAEpC,OAAO,EAAE,oBAAoB;IASzC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAI9D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0CnD;;;;;;;OAOG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;IAwBlD;;OAEG;IACH,OAAO,CAAC,UAAU;IAqBlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IASzB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIhD;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BpD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAS/B"}