@authrim/setup 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +303 -0
  2. package/dist/__tests__/config.test.d.ts +5 -0
  3. package/dist/__tests__/config.test.d.ts.map +1 -0
  4. package/dist/__tests__/config.test.js +115 -0
  5. package/dist/__tests__/config.test.js.map +1 -0
  6. package/dist/__tests__/keys.test.d.ts +5 -0
  7. package/dist/__tests__/keys.test.d.ts.map +1 -0
  8. package/dist/__tests__/keys.test.js +87 -0
  9. package/dist/__tests__/keys.test.js.map +1 -0
  10. package/dist/__tests__/naming.test.d.ts +5 -0
  11. package/dist/__tests__/naming.test.d.ts.map +1 -0
  12. package/dist/__tests__/naming.test.js +84 -0
  13. package/dist/__tests__/naming.test.js.map +1 -0
  14. package/dist/cli/commands/config.d.ts +13 -0
  15. package/dist/cli/commands/config.d.ts.map +1 -0
  16. package/dist/cli/commands/config.js +231 -0
  17. package/dist/cli/commands/config.js.map +1 -0
  18. package/dist/cli/commands/deploy.d.ts +21 -0
  19. package/dist/cli/commands/deploy.d.ts.map +1 -0
  20. package/dist/cli/commands/deploy.js +304 -0
  21. package/dist/cli/commands/deploy.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts +14 -0
  23. package/dist/cli/commands/init.d.ts.map +1 -0
  24. package/dist/cli/commands/init.js +1248 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/core/admin.d.ts +64 -0
  27. package/dist/core/admin.d.ts.map +1 -0
  28. package/dist/core/admin.js +247 -0
  29. package/dist/core/admin.js.map +1 -0
  30. package/dist/core/cloudflare.d.ts +157 -0
  31. package/dist/core/cloudflare.d.ts.map +1 -0
  32. package/dist/core/cloudflare.js +452 -0
  33. package/dist/core/cloudflare.js.map +1 -0
  34. package/dist/core/config.d.ts +891 -0
  35. package/dist/core/config.d.ts.map +1 -0
  36. package/dist/core/config.js +208 -0
  37. package/dist/core/config.js.map +1 -0
  38. package/dist/core/deploy.d.ts +81 -0
  39. package/dist/core/deploy.d.ts.map +1 -0
  40. package/dist/core/deploy.js +389 -0
  41. package/dist/core/deploy.js.map +1 -0
  42. package/dist/core/keys.d.ts +111 -0
  43. package/dist/core/keys.d.ts.map +1 -0
  44. package/dist/core/keys.js +287 -0
  45. package/dist/core/keys.js.map +1 -0
  46. package/dist/core/lock.d.ts +220 -0
  47. package/dist/core/lock.d.ts.map +1 -0
  48. package/dist/core/lock.js +230 -0
  49. package/dist/core/lock.js.map +1 -0
  50. package/dist/core/naming.d.ts +151 -0
  51. package/dist/core/naming.d.ts.map +1 -0
  52. package/dist/core/naming.js +209 -0
  53. package/dist/core/naming.js.map +1 -0
  54. package/dist/core/source.d.ts +68 -0
  55. package/dist/core/source.d.ts.map +1 -0
  56. package/dist/core/source.js +285 -0
  57. package/dist/core/source.js.map +1 -0
  58. package/dist/core/wrangler.d.ts +87 -0
  59. package/dist/core/wrangler.d.ts.map +1 -0
  60. package/dist/core/wrangler.js +398 -0
  61. package/dist/core/wrangler.js.map +1 -0
  62. package/dist/index.d.ts +11 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +117 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/web/api.d.ts +21 -0
  67. package/dist/web/api.d.ts.map +1 -0
  68. package/dist/web/api.js +423 -0
  69. package/dist/web/api.js.map +1 -0
  70. package/dist/web/server.d.ts +12 -0
  71. package/dist/web/server.d.ts.map +1 -0
  72. package/dist/web/server.js +112 -0
  73. package/dist/web/server.js.map +1 -0
  74. package/dist/web/ui.d.ts +7 -0
  75. package/dist/web/ui.d.ts.map +1 -0
  76. package/dist/web/ui.js +765 -0
  77. package/dist/web/ui.js.map +1 -0
  78. package/package.json +61 -0
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Source Download Module
3
+ *
4
+ * Downloads Authrim source code from GitHub for deployment.
5
+ * Supports both degit (shallow clone) and tar.gz (release artifact) methods.
6
+ */
7
+ export interface SourceInfo {
8
+ /** GitHub repository (e.g., "sgrastar/authrim") */
9
+ repository: string;
10
+ /** Git reference (tag or branch) */
11
+ gitRef: string;
12
+ /** Full commit hash */
13
+ commitHash?: string;
14
+ /** SHA256 hash of the source artifact */
15
+ artifactHash?: string;
16
+ /** Download method used */
17
+ method: 'degit' | 'tarball';
18
+ }
19
+ export interface DownloadOptions {
20
+ /** Target directory to extract source */
21
+ targetDir: string;
22
+ /** GitHub repository (default: sgrastar/authrim) */
23
+ repository?: string;
24
+ /** Git tag or branch (default: latest release or main) */
25
+ gitRef?: string;
26
+ /** Force overwrite if directory exists */
27
+ force?: boolean;
28
+ /** Progress callback */
29
+ onProgress?: (message: string) => void;
30
+ }
31
+ /**
32
+ * Get the latest release tag from GitHub
33
+ */
34
+ export declare function getLatestRelease(repository?: string): Promise<string | null>;
35
+ /**
36
+ * Get commit hash for a given ref
37
+ */
38
+ export declare function getCommitHash(repository?: string, gitRef?: string): Promise<string | null>;
39
+ /**
40
+ * Get available tags from GitHub
41
+ */
42
+ export declare function getAvailableTags(repository?: string): Promise<string[]>;
43
+ /**
44
+ * Check if degit is available
45
+ */
46
+ export declare function isDegitAvailable(): Promise<boolean>;
47
+ /**
48
+ * Download source using degit (shallow clone)
49
+ */
50
+ export declare function downloadWithDegit(options: DownloadOptions): Promise<SourceInfo>;
51
+ /**
52
+ * Download source as tarball from GitHub
53
+ */
54
+ export declare function downloadTarball(options: DownloadOptions): Promise<SourceInfo>;
55
+ /**
56
+ * Download Authrim source code
57
+ *
58
+ * Attempts to use degit first, falls back to tarball download if degit is unavailable.
59
+ */
60
+ export declare function downloadSource(options: DownloadOptions): Promise<SourceInfo>;
61
+ /**
62
+ * Verify downloaded source contains expected structure
63
+ */
64
+ export declare function verifySourceStructure(sourceDir: string): Promise<{
65
+ valid: boolean;
66
+ errors: string[];
67
+ }>;
68
+ //# sourceMappingURL=source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/core/source.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAcD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,GAAE,MAA2B,GACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWxB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,GAAE,MAA2B,EACvC,MAAM,GAAE,MAAuB,GAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWxB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,GAAE,MAA2B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWjG;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAOzD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAuDrF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAoDnF;AAiED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAmClF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACtE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAqBD"}
@@ -0,0 +1,285 @@
1
+ /**
2
+ * Source Download Module
3
+ *
4
+ * Downloads Authrim source code from GitHub for deployment.
5
+ * Supports both degit (shallow clone) and tar.gz (release artifact) methods.
6
+ */
7
+ import { execa } from 'execa';
8
+ import { existsSync } from 'node:fs';
9
+ import { mkdir, rm, rename, readdir } from 'node:fs/promises';
10
+ import { join, dirname } from 'node:path';
11
+ import { pipeline } from 'node:stream/promises';
12
+ import { createGunzip } from 'node:zlib';
13
+ import { extract } from 'tar';
14
+ // =============================================================================
15
+ // Constants
16
+ // =============================================================================
17
+ const DEFAULT_REPOSITORY = 'sgrastar/authrim';
18
+ const DEFAULT_BRANCH = 'main';
19
+ const GITHUB_API_BASE = 'https://api.github.com';
20
+ // =============================================================================
21
+ // GitHub API Helpers
22
+ // =============================================================================
23
+ /**
24
+ * Get the latest release tag from GitHub
25
+ */
26
+ export async function getLatestRelease(repository = DEFAULT_REPOSITORY) {
27
+ try {
28
+ const response = await fetch(`${GITHUB_API_BASE}/repos/${repository}/releases/latest`);
29
+ if (!response.ok) {
30
+ return null;
31
+ }
32
+ const data = (await response.json());
33
+ return data.tag_name || null;
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ }
39
+ /**
40
+ * Get commit hash for a given ref
41
+ */
42
+ export async function getCommitHash(repository = DEFAULT_REPOSITORY, gitRef = DEFAULT_BRANCH) {
43
+ try {
44
+ const response = await fetch(`${GITHUB_API_BASE}/repos/${repository}/commits/${gitRef}`);
45
+ if (!response.ok) {
46
+ return null;
47
+ }
48
+ const data = (await response.json());
49
+ return data.sha || null;
50
+ }
51
+ catch {
52
+ return null;
53
+ }
54
+ }
55
+ /**
56
+ * Get available tags from GitHub
57
+ */
58
+ export async function getAvailableTags(repository = DEFAULT_REPOSITORY) {
59
+ try {
60
+ const response = await fetch(`${GITHUB_API_BASE}/repos/${repository}/tags`);
61
+ if (!response.ok) {
62
+ return [];
63
+ }
64
+ const data = (await response.json());
65
+ return data.map((tag) => tag.name);
66
+ }
67
+ catch {
68
+ return [];
69
+ }
70
+ }
71
+ // =============================================================================
72
+ // Download Methods
73
+ // =============================================================================
74
+ /**
75
+ * Check if degit is available
76
+ */
77
+ export async function isDegitAvailable() {
78
+ try {
79
+ await execa('npx', ['degit', '--help']);
80
+ return true;
81
+ }
82
+ catch {
83
+ return false;
84
+ }
85
+ }
86
+ /**
87
+ * Download source using degit (shallow clone)
88
+ */
89
+ export async function downloadWithDegit(options) {
90
+ const { targetDir, repository = DEFAULT_REPOSITORY, gitRef = DEFAULT_BRANCH, force = false, onProgress, } = options;
91
+ // Validate inputs to prevent command injection
92
+ if (!/^[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+$/.test(repository)) {
93
+ throw new Error('Invalid repository format. Expected: owner/repo');
94
+ }
95
+ if (!/^[a-zA-Z0-9._/-]+$/.test(gitRef)) {
96
+ throw new Error('Invalid git ref format');
97
+ }
98
+ // Check if target directory exists
99
+ if (existsSync(targetDir)) {
100
+ if (!force) {
101
+ throw new Error(`Target directory already exists: ${targetDir}`);
102
+ }
103
+ onProgress?.('Removing existing directory...');
104
+ await rm(targetDir, { recursive: true });
105
+ }
106
+ // Ensure parent directory exists
107
+ const parentDir = dirname(targetDir);
108
+ if (!existsSync(parentDir)) {
109
+ await mkdir(parentDir, { recursive: true });
110
+ }
111
+ onProgress?.(`Downloading ${repository}#${gitRef} using degit...`);
112
+ try {
113
+ // Use degit to clone the repository
114
+ const source = gitRef ? `${repository}#${gitRef}` : repository;
115
+ await execa('npx', ['degit', source, targetDir], {
116
+ timeout: 120000, // 2 minute timeout
117
+ });
118
+ // Get commit hash
119
+ const commitHash = await getCommitHash(repository, gitRef);
120
+ onProgress?.('Download completed successfully');
121
+ return {
122
+ repository,
123
+ gitRef,
124
+ commitHash: commitHash || undefined,
125
+ method: 'degit',
126
+ };
127
+ }
128
+ catch (error) {
129
+ throw new Error(`Failed to download source with degit: ${error}`);
130
+ }
131
+ }
132
+ /**
133
+ * Download source as tarball from GitHub
134
+ */
135
+ export async function downloadTarball(options) {
136
+ const { targetDir, repository = DEFAULT_REPOSITORY, gitRef = DEFAULT_BRANCH, force = false, onProgress, } = options;
137
+ // Validate inputs
138
+ if (!/^[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+$/.test(repository)) {
139
+ throw new Error('Invalid repository format. Expected: owner/repo');
140
+ }
141
+ if (!/^[a-zA-Z0-9._/-]+$/.test(gitRef)) {
142
+ throw new Error('Invalid git ref format');
143
+ }
144
+ // Check if target directory exists
145
+ if (existsSync(targetDir)) {
146
+ if (!force) {
147
+ throw new Error(`Target directory already exists: ${targetDir}`);
148
+ }
149
+ onProgress?.('Removing existing directory...');
150
+ await rm(targetDir, { recursive: true });
151
+ }
152
+ const parentDir = dirname(targetDir);
153
+ if (!existsSync(parentDir)) {
154
+ await mkdir(parentDir, { recursive: true });
155
+ }
156
+ // Download tarball
157
+ const tarballUrl = `https://github.com/${repository}/archive/refs/heads/${gitRef}.tar.gz`;
158
+ onProgress?.(`Downloading tarball from ${tarballUrl}...`);
159
+ try {
160
+ const response = await fetch(tarballUrl);
161
+ if (!response.ok) {
162
+ // Try as a tag instead
163
+ const tagUrl = `https://github.com/${repository}/archive/refs/tags/${gitRef}.tar.gz`;
164
+ const tagResponse = await fetch(tagUrl);
165
+ if (!tagResponse.ok) {
166
+ throw new Error(`Failed to download: ${response.status} ${response.statusText}`);
167
+ }
168
+ // Continue with tag response
169
+ return await extractTarball(tagResponse, targetDir, repository, gitRef, onProgress);
170
+ }
171
+ return await extractTarball(response, targetDir, repository, gitRef, onProgress);
172
+ }
173
+ catch (error) {
174
+ throw new Error(`Failed to download tarball: ${error}`);
175
+ }
176
+ }
177
+ /**
178
+ * Extract tarball response to target directory
179
+ */
180
+ async function extractTarball(response, targetDir, repository, gitRef, onProgress) {
181
+ const tempDir = join(dirname(targetDir), `.tmp-${Date.now()}`);
182
+ await mkdir(tempDir, { recursive: true });
183
+ try {
184
+ onProgress?.('Extracting tarball...');
185
+ // Extract to temp directory
186
+ const body = response.body;
187
+ if (!body) {
188
+ throw new Error('Empty response body');
189
+ }
190
+ // Use tar to extract
191
+ // Convert web ReadableStream to Node.js Readable
192
+ const { Readable } = await import('node:stream');
193
+ const nodeReadable = Readable.fromWeb(body);
194
+ await pipeline(nodeReadable, createGunzip(), extract({ cwd: tempDir }));
195
+ // Find the extracted directory (GitHub archives have a single root directory)
196
+ const entries = await readdir(tempDir);
197
+ if (entries.length !== 1) {
198
+ throw new Error('Unexpected tarball structure');
199
+ }
200
+ const extractedDir = join(tempDir, entries[0]);
201
+ // Move to target directory
202
+ await rename(extractedDir, targetDir);
203
+ // Get commit hash
204
+ const commitHash = await getCommitHash(repository, gitRef);
205
+ onProgress?.('Extraction completed successfully');
206
+ return {
207
+ repository,
208
+ gitRef,
209
+ commitHash: commitHash || undefined,
210
+ method: 'tarball',
211
+ };
212
+ }
213
+ finally {
214
+ // Clean up temp directory
215
+ if (existsSync(tempDir)) {
216
+ await rm(tempDir, { recursive: true }).catch(() => { });
217
+ }
218
+ }
219
+ }
220
+ // =============================================================================
221
+ // Main Download Function
222
+ // =============================================================================
223
+ /**
224
+ * Download Authrim source code
225
+ *
226
+ * Attempts to use degit first, falls back to tarball download if degit is unavailable.
227
+ */
228
+ export async function downloadSource(options) {
229
+ const { onProgress } = options;
230
+ // Determine git ref (use latest release if not specified)
231
+ let gitRef = options.gitRef || '';
232
+ if (!gitRef) {
233
+ onProgress?.('Checking for latest release...');
234
+ const latestRelease = await getLatestRelease(options.repository);
235
+ if (!latestRelease) {
236
+ gitRef = DEFAULT_BRANCH;
237
+ onProgress?.(`No release found, using ${gitRef}`);
238
+ }
239
+ else {
240
+ gitRef = latestRelease;
241
+ onProgress?.(`Found latest release: ${gitRef}`);
242
+ }
243
+ }
244
+ const optionsWithRef = { ...options, gitRef };
245
+ // Try degit first (faster, simpler)
246
+ onProgress?.('Checking degit availability...');
247
+ const degitAvailable = await isDegitAvailable();
248
+ if (degitAvailable) {
249
+ try {
250
+ return await downloadWithDegit(optionsWithRef);
251
+ }
252
+ catch (error) {
253
+ onProgress?.(`degit failed, falling back to tarball: ${error}`);
254
+ }
255
+ }
256
+ else {
257
+ onProgress?.('degit not available, using tarball download');
258
+ }
259
+ // Fall back to tarball
260
+ return await downloadTarball(optionsWithRef);
261
+ }
262
+ /**
263
+ * Verify downloaded source contains expected structure
264
+ */
265
+ export async function verifySourceStructure(sourceDir) {
266
+ const errors = [];
267
+ const requiredPaths = [
268
+ 'packages/ar-auth',
269
+ 'packages/ar-token',
270
+ 'packages/ar-lib-core',
271
+ 'packages/ar-discovery',
272
+ 'package.json',
273
+ ];
274
+ for (const path of requiredPaths) {
275
+ const fullPath = join(sourceDir, path);
276
+ if (!existsSync(fullPath)) {
277
+ errors.push(`Missing required path: ${path}`);
278
+ }
279
+ }
280
+ return {
281
+ valid: errors.length === 0,
282
+ errors,
283
+ };
284
+ }
285
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/core/source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Wrangler Configuration Generator
3
+ *
4
+ * Generates wrangler.toml files for each component based on environment
5
+ * configuration and resource IDs from authrim-lock.json.
6
+ */
7
+ import type { AuthrimConfig } from './config.js';
8
+ import { type WorkerComponent } from './naming.js';
9
+ export interface ResourceIds {
10
+ d1: Record<string, {
11
+ id: string;
12
+ name: string;
13
+ }>;
14
+ kv: Record<string, {
15
+ id: string;
16
+ name: string;
17
+ }>;
18
+ queues?: Record<string, {
19
+ id: string;
20
+ name: string;
21
+ }>;
22
+ r2?: Record<string, {
23
+ name: string;
24
+ }>;
25
+ }
26
+ export interface WranglerConfig {
27
+ name: string;
28
+ main: string;
29
+ compatibility_date: string;
30
+ compatibility_flags: string[];
31
+ workers_dev: boolean;
32
+ placement?: {
33
+ mode: string;
34
+ };
35
+ kv_namespaces?: Array<{
36
+ binding: string;
37
+ id: string;
38
+ preview_id?: string;
39
+ }>;
40
+ d1_databases?: Array<{
41
+ binding: string;
42
+ database_name: string;
43
+ database_id: string;
44
+ }>;
45
+ r2_buckets?: Array<{
46
+ binding: string;
47
+ bucket_name: string;
48
+ }>;
49
+ durable_objects?: {
50
+ bindings: Array<{
51
+ name: string;
52
+ class_name: string;
53
+ script_name?: string;
54
+ }>;
55
+ };
56
+ migrations?: Array<{
57
+ tag: string;
58
+ new_sqlite_classes?: string[];
59
+ }>;
60
+ vars: Record<string, string>;
61
+ routes?: Array<{
62
+ pattern: string;
63
+ zone_name: string;
64
+ }>;
65
+ queues?: {
66
+ producers?: Array<{
67
+ queue: string;
68
+ binding: string;
69
+ }>;
70
+ };
71
+ }
72
+ /**
73
+ * Generate wrangler.toml configuration for a component
74
+ */
75
+ export declare function generateWranglerConfig(component: WorkerComponent, config: AuthrimConfig, resourceIds: ResourceIds): WranglerConfig;
76
+ /**
77
+ * Convert WranglerConfig to TOML string
78
+ */
79
+ export declare function toToml(config: WranglerConfig): string;
80
+ /**
81
+ * Generate route configurations for custom domains
82
+ */
83
+ export declare function generateRoutes(component: WorkerComponent, domain: string, zoneName: string): Array<{
84
+ pattern: string;
85
+ zone_name: string;
86
+ }>;
87
+ //# sourceMappingURL=wrangler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrangler.d.ts","sourceRoot":"","sources":["../../src/core/wrangler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAML,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7E,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACnE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvD,CAAC;CACH;AAqFD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,WAAW,GACvB,cAAc,CA8FhB;AAuGD;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA2HrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA8C/C"}