@geekmidas/cli 1.10.35 → 1.10.37

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 (100) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/{config-B62g483e.mjs → config-Bbu1JKvf.mjs} +2 -2
  3. package/dist/{config-B62g483e.mjs.map → config-Bbu1JKvf.mjs.map} +1 -1
  4. package/dist/{config-Cuo8vFsp.cjs → config-DujV8DbR.cjs} +2 -2
  5. package/dist/{config-Cuo8vFsp.cjs.map → config-DujV8DbR.cjs.map} +1 -1
  6. package/dist/config.cjs +2 -2
  7. package/dist/config.d.cts +1 -1
  8. package/dist/config.d.mts +1 -1
  9. package/dist/config.mjs +2 -2
  10. package/dist/deploy/sniffer-loader.cjs +1 -1
  11. package/dist/{fullstack-secrets-Bchl2MDd.cjs → fullstack-secrets-BYzi6Hwl.cjs} +3 -2
  12. package/dist/{fullstack-secrets-Bchl2MDd.cjs.map → fullstack-secrets-BYzi6Hwl.cjs.map} +1 -1
  13. package/dist/{fullstack-secrets-P84v8zWn.mjs → fullstack-secrets-l8s3II_H.mjs} +3 -2
  14. package/dist/{fullstack-secrets-P84v8zWn.mjs.map → fullstack-secrets-l8s3II_H.mjs.map} +1 -1
  15. package/dist/{index-Dt_dZ7K4.d.mts → index-BBvGMG_A.d.mts} +162 -68
  16. package/dist/index-BBvGMG_A.d.mts.map +1 -0
  17. package/dist/{index-C3t5VL4R.d.cts → index-Dz2a7xQU.d.cts} +162 -68
  18. package/dist/index-Dz2a7xQU.d.cts.map +1 -0
  19. package/dist/index.cjs +1366 -149
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.mjs +1366 -149
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/{openapi-B_rJjImN.cjs → openapi-0JUzU5Tv.cjs} +72 -15
  24. package/dist/openapi-0JUzU5Tv.cjs.map +1 -0
  25. package/dist/{openapi-CflxypuN.mjs → openapi-C5AycKTR.mjs} +73 -16
  26. package/dist/openapi-C5AycKTR.mjs.map +1 -0
  27. package/dist/openapi.cjs +3 -3
  28. package/dist/openapi.d.cts +7 -0
  29. package/dist/openapi.d.cts.map +1 -1
  30. package/dist/openapi.d.mts +7 -0
  31. package/dist/openapi.d.mts.map +1 -1
  32. package/dist/openapi.mjs +3 -3
  33. package/dist/{reconcile-DAAKa0YR.mjs → reconcile-CYGmqXvq.mjs} +2 -2
  34. package/dist/{reconcile-DAAKa0YR.mjs.map → reconcile-CYGmqXvq.mjs.map} +1 -1
  35. package/dist/{reconcile-CZtzdrnc.cjs → reconcile-D93YG7G5.cjs} +2 -2
  36. package/dist/{reconcile-CZtzdrnc.cjs.map → reconcile-D93YG7G5.cjs.map} +1 -1
  37. package/dist/workspace/index.cjs +4 -1
  38. package/dist/workspace/index.d.cts +2 -2
  39. package/dist/workspace/index.d.mts +2 -2
  40. package/dist/workspace/index.mjs +2 -2
  41. package/dist/{workspace-CGYykWfn.cjs → workspace-CQTT7HJQ.cjs} +107 -27
  42. package/dist/workspace-CQTT7HJQ.cjs.map +1 -0
  43. package/dist/{workspace-Bi4X7Yzy.mjs → workspace-D-37Ylqo.mjs} +90 -28
  44. package/dist/workspace-D-37Ylqo.mjs.map +1 -0
  45. package/docs/dev-server-resilience-design.md +189 -0
  46. package/package.json +4 -4
  47. package/src/__tests__/openapi.spec.ts +99 -9
  48. package/src/build/__tests__/workspace-build.spec.ts +7 -7
  49. package/src/build/index.ts +25 -9
  50. package/src/credentials/__tests__/helpers.ts +1 -1
  51. package/src/credentials/__tests__/workspaceCredentials.spec.ts +1 -1
  52. package/src/deploy/__tests__/domain.spec.ts +12 -12
  53. package/src/deploy/__tests__/env-resolver.spec.ts +29 -1
  54. package/src/deploy/__tests__/index.spec.ts +14 -14
  55. package/src/deploy/__tests__/sniffer.spec.ts +9 -9
  56. package/src/deploy/domain.ts +19 -11
  57. package/src/deploy/env-resolver.ts +5 -10
  58. package/src/deploy/index.ts +25 -8
  59. package/src/deploy/sniffer.ts +11 -5
  60. package/src/deploy/types.ts +1 -1
  61. package/src/dev/__tests__/index.spec.ts +11 -11
  62. package/src/dev/index.ts +43 -9
  63. package/src/docker/__tests__/compose.spec.ts +4 -4
  64. package/src/docker/compose.ts +5 -3
  65. package/src/docker/index.ts +34 -6
  66. package/src/docker/templates.ts +138 -0
  67. package/src/generators/OpenApiTsGenerator.ts +22 -0
  68. package/src/generators/__tests__/OpenApiTsGenerator.registry.spec.ts +77 -0
  69. package/src/index.ts +6 -2
  70. package/src/init/__tests__/generators.spec.ts +147 -0
  71. package/src/init/__tests__/init.spec.ts +1 -1
  72. package/src/init/generators/mobile-expo.ts +576 -0
  73. package/src/init/generators/monorepo.ts +42 -11
  74. package/src/init/generators/web-tanstack.ts +348 -0
  75. package/src/init/index.ts +40 -3
  76. package/src/init/templates/index.ts +31 -0
  77. package/src/init/versions.ts +2 -2
  78. package/src/openapi.ts +110 -23
  79. package/src/secrets/__tests__/reconcile.spec.ts +1 -1
  80. package/src/setup/__tests__/reconcile-secrets.spec.ts +2 -2
  81. package/src/setup/fullstack-secrets.ts +7 -1
  82. package/src/setup/index.ts +2 -1
  83. package/src/test/__tests__/__fixtures__/workspace.ts +1 -1
  84. package/src/test/__tests__/web.spec.ts +2 -2
  85. package/src/workspace/__tests__/client-generator.spec.ts +6 -6
  86. package/src/workspace/__tests__/index.spec.ts +96 -4
  87. package/src/workspace/__tests__/publicEnv.spec.ts +64 -0
  88. package/src/workspace/__tests__/schema.spec.ts +27 -30
  89. package/src/workspace/__tests__/type-inference.spec.ts +5 -5
  90. package/src/workspace/client-generator.ts +10 -7
  91. package/src/workspace/index.ts +17 -3
  92. package/src/workspace/publicEnv.ts +57 -0
  93. package/src/workspace/schema.ts +126 -27
  94. package/src/workspace/types.ts +40 -64
  95. package/dist/index-C3t5VL4R.d.cts.map +0 -1
  96. package/dist/index-Dt_dZ7K4.d.mts.map +0 -1
  97. package/dist/openapi-B_rJjImN.cjs.map +0 -1
  98. package/dist/openapi-CflxypuN.mjs.map +0 -1
  99. package/dist/workspace-Bi4X7Yzy.mjs.map +0 -1
  100. package/dist/workspace-CGYykWfn.cjs.map +0 -1
@@ -154,6 +154,101 @@ type StateConfig = LocalStateConfig | SSMStateConfig | CustomStateConfig;
154
154
  */
155
155
  //#endregion
156
156
  //#region src/workspace/schema.d.ts
157
+ /**
158
+ * Backend framework schema for non-gkm apps.
159
+ */
160
+ declare const BackendFrameworkSchema: z.ZodEnum<{
161
+ hono: "hono";
162
+ "better-auth": "better-auth";
163
+ express: "express";
164
+ fastify: "fastify";
165
+ }>;
166
+ /**
167
+ * Backend framework types for apps that don't use gkm routes.
168
+ * Derived from {@link BackendFrameworkSchema}.
169
+ *
170
+ * Used with `entry` to specify the framework for proper Docker builds.
171
+ *
172
+ * @example
173
+ * ```ts
174
+ * // Better Auth server
175
+ * {
176
+ * entry: './src/index.ts',
177
+ * framework: 'better-auth',
178
+ * port: 3001,
179
+ * }
180
+ *
181
+ * // Hono app without gkm routes
182
+ * {
183
+ * entry: './src/server.ts',
184
+ * framework: 'hono',
185
+ * port: 3000,
186
+ * }
187
+ * ```
188
+ */
189
+ type BackendFramework = z.infer<typeof BackendFrameworkSchema>;
190
+ /**
191
+ * Frontend framework schema.
192
+ */
193
+ declare const FrontendFrameworkSchema: z.ZodEnum<{
194
+ nextjs: "nextjs";
195
+ remix: "remix";
196
+ vite: "vite";
197
+ "tanstack-start": "tanstack-start";
198
+ }>;
199
+ /**
200
+ * Frontend framework types. Derived from {@link FrontendFrameworkSchema}.
201
+ *
202
+ * @example
203
+ * ```ts
204
+ * // Next.js app
205
+ * {
206
+ * type: 'web',
207
+ * framework: 'nextjs',
208
+ * port: 3000,
209
+ * }
210
+ *
211
+ * // Vite SPA
212
+ * {
213
+ * type: 'web',
214
+ * framework: 'vite',
215
+ * port: 5173,
216
+ * }
217
+ *
218
+ * // TanStack Start (Vite-based, full-stack)
219
+ * {
220
+ * type: 'web',
221
+ * framework: 'tanstack-start',
222
+ * port: 3000,
223
+ * }
224
+ * ```
225
+ */
226
+ type FrontendFramework = z.infer<typeof FrontendFrameworkSchema>;
227
+ /**
228
+ * Mobile framework schema.
229
+ */
230
+
231
+ /**
232
+ * Combined framework schema (backend, frontend, or mobile).
233
+ */
234
+ declare const FrameworkSchema: z.ZodUnion<readonly [z.ZodEnum<{
235
+ hono: "hono";
236
+ "better-auth": "better-auth";
237
+ express: "express";
238
+ fastify: "fastify";
239
+ }>, z.ZodEnum<{
240
+ nextjs: "nextjs";
241
+ remix: "remix";
242
+ vite: "vite";
243
+ "tanstack-start": "tanstack-start";
244
+ }>, z.ZodEnum<{
245
+ expo: "expo";
246
+ }>]>;
247
+ /**
248
+ * Any framework value across backend, frontend, or mobile.
249
+ * Derived from {@link FrameworkSchema}.
250
+ */
251
+ type Framework = z.infer<typeof FrameworkSchema>;
157
252
  /**
158
253
  * Supported deploy targets (Phase 1).
159
254
  */
@@ -344,8 +439,8 @@ declare const WorkspaceConfigSchema: z.ZodObject<{
344
439
  apps: z.ZodRecord<z.ZodString, z.ZodObject<{
345
440
  type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
346
441
  backend: "backend";
347
- frontend: "frontend";
348
- auth: "auth";
442
+ web: "web";
443
+ mobile: "mobile";
349
444
  }>>>;
350
445
  path: z.ZodString;
351
446
  port: z.ZodNumber;
@@ -411,14 +506,14 @@ declare const WorkspaceConfigSchema: z.ZodObject<{
411
506
  nextjs: "nextjs";
412
507
  remix: "remix";
413
508
  vite: "vite";
509
+ "tanstack-start": "tanstack-start";
510
+ }>, z.ZodEnum<{
511
+ expo: "expo";
414
512
  }>]>>;
415
513
  config: z.ZodOptional<z.ZodObject<{
416
514
  client: z.ZodOptional<z.ZodString>;
417
515
  server: z.ZodOptional<z.ZodString>;
418
516
  }, z.core.$strip>>;
419
- provider: z.ZodOptional<z.ZodEnum<{
420
- "better-auth": "better-auth";
421
- }>>;
422
517
  }, z.core.$strip>>;
423
518
  shared: z.ZodOptional<z.ZodObject<{
424
519
  packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -697,50 +792,6 @@ declare function formatValidationErrors(error: z.ZodError): string;
697
792
  * ```
698
793
  */
699
794
  type DeployTarget = 'dokploy' | 'vercel' | 'cloudflare';
700
- /**
701
- * Backend framework types for apps that don't use gkm routes.
702
- *
703
- * Used with `entry` to specify the framework for proper Docker builds.
704
- *
705
- * @example
706
- * ```ts
707
- * // Better Auth server
708
- * {
709
- * entry: './src/index.ts',
710
- * framework: 'better-auth',
711
- * port: 3001,
712
- * }
713
- *
714
- * // Hono app without gkm routes
715
- * {
716
- * entry: './src/server.ts',
717
- * framework: 'hono',
718
- * port: 3000,
719
- * }
720
- * ```
721
- */
722
- type BackendFramework = 'hono' | 'better-auth' | 'express' | 'fastify';
723
- /**
724
- * Frontend framework types.
725
- *
726
- * @example
727
- * ```ts
728
- * // Next.js app
729
- * {
730
- * type: 'frontend',
731
- * framework: 'nextjs',
732
- * port: 3000,
733
- * }
734
- *
735
- * // Vite SPA
736
- * {
737
- * type: 'frontend',
738
- * framework: 'vite',
739
- * port: 5173,
740
- * }
741
- * ```
742
- */
743
- type FrontendFramework = 'nextjs' | 'remix' | 'vite';
744
795
  /**
745
796
  * Service image configuration for custom Docker images.
746
797
  *
@@ -1077,7 +1128,7 @@ interface SecretsConfig {
1077
1128
  *
1078
1129
  * // Frontend app
1079
1130
  * web: {
1080
- * type: 'frontend',
1131
+ * type: 'web',
1081
1132
  * path: 'apps/web',
1082
1133
  * port: 3002,
1083
1134
  * framework: 'nextjs',
@@ -1089,10 +1140,12 @@ interface AppConfigBase {
1089
1140
  /**
1090
1141
  * App type.
1091
1142
  * - 'backend': Server-side app (API, auth service, etc.)
1092
- * - 'frontend': Client-side app (Next.js, Vite, etc.)
1143
+ * - 'web': Client-side web app (Next.js, Vite, TanStack Start, etc.)
1144
+ * - 'mobile': Native mobile app (Expo). Built/deployed via its own
1145
+ * toolchain (e.g. EAS Build) — Docker/Dokploy steps are skipped.
1093
1146
  * @default 'backend'
1094
1147
  */
1095
- type?: 'backend' | 'frontend';
1148
+ type?: 'backend' | 'web' | 'mobile';
1096
1149
  /**
1097
1150
  * Path to the app relative to workspace root.
1098
1151
  * @example 'apps/api', 'apps/web', 'services/auth'
@@ -1190,29 +1243,33 @@ interface AppConfigBase {
1190
1243
  * Framework for the app.
1191
1244
  *
1192
1245
  * Backend frameworks: 'hono', 'better-auth', 'express', 'fastify'
1193
- * Frontend frameworks: 'nextjs', 'remix', 'vite'
1246
+ * Frontend frameworks: 'nextjs', 'remix', 'vite', 'tanstack-start'
1247
+ * Mobile frameworks: 'expo'
1194
1248
  *
1195
- * @example 'nextjs', 'better-auth', 'hono'
1249
+ * @example 'nextjs', 'better-auth', 'hono', 'expo'
1196
1250
  */
1197
- framework?: BackendFramework | FrontendFramework;
1251
+ framework?: Framework;
1198
1252
  /**
1199
1253
  * Config file paths for frontend environment sniffing.
1200
1254
  *
1201
1255
  * Points to file(s) that call EnvironmentParser.parse() at import time.
1202
1256
  * The sniffer imports these files and captures all env vars accessed.
1203
1257
  *
1204
- * Dependencies are auto-generated as NEXT_PUBLIC_{DEP}_URL variables.
1258
+ * Dependencies are auto-generated as public-prefixed URL vars based on
1259
+ * the app's framework (e.g. `NEXT_PUBLIC_{DEP}_URL` for Next.js,
1260
+ * `VITE_{DEP}_URL` for Vite/TanStack Start, `EXPO_PUBLIC_{DEP}_URL`
1261
+ * for Expo).
1205
1262
  *
1206
1263
  * @example
1207
1264
  * ```ts
1208
1265
  * config: {
1209
- * client: './src/config/client.ts', // NEXT_PUBLIC_* vars for browser
1210
- * server: './src/config/server.ts', // Server-only vars for SSR
1266
+ * client: './src/config/client.ts', // public-prefixed vars for browser
1267
+ * server: './src/config/server.ts', // server-only vars for SSR
1211
1268
  * }
1212
1269
  * ```
1213
1270
  */
1214
1271
  config?: {
1215
- /** Client-side config (NEXT_PUBLIC_* vars, available in browser) */
1272
+ /** Client-side config (public-prefixed vars, available in browser/device) */
1216
1273
  client?: string;
1217
1274
  /** Server-side config (all env vars, for SSR/API routes) */
1218
1275
  server?: string;
@@ -1261,7 +1318,7 @@ interface AppConfigBase {
1261
1318
  * web: {
1262
1319
  * path: 'apps/web',
1263
1320
  * port: 3002,
1264
- * type: 'frontend',
1321
+ * type: 'web',
1265
1322
  * dependencies: ['api', 'auth'], // ✓ Valid
1266
1323
  * // dependencies: ['invalid'], // ✗ Type error
1267
1324
  * },
@@ -1313,7 +1370,7 @@ type ConstrainedApps<TApps extends AppsRecord> = { [K in keyof TApps]: Omit<TApp
1313
1370
  * routes: './src/endpoints/**\/*.ts',
1314
1371
  * },
1315
1372
  * web: {
1316
- * type: 'frontend',
1373
+ * type: 'web',
1317
1374
  * path: 'apps/web',
1318
1375
  * port: 3001,
1319
1376
  * framework: 'nextjs',
@@ -1403,7 +1460,7 @@ type InferredWorkspaceConfig<TApps extends AppsRecord> = {
1403
1460
  *
1404
1461
  * // Next.js frontend
1405
1462
  * web: {
1406
- * type: 'frontend',
1463
+ * type: 'web',
1407
1464
  * path: 'apps/web',
1408
1465
  * port: 3002,
1409
1466
  * framework: 'nextjs',
@@ -1465,7 +1522,7 @@ interface WorkspaceConfig {
1465
1522
  */
1466
1523
  interface NormalizedAppConfig extends Omit<AppConfigBase, 'type'> {
1467
1524
  /** App type (always defined after normalization) */
1468
- type: 'backend' | 'frontend';
1525
+ type: 'backend' | 'web' | 'mobile';
1469
1526
  /** Path to the app */
1470
1527
  path: string;
1471
1528
  /** Development server port */
@@ -1477,7 +1534,7 @@ interface NormalizedAppConfig extends Omit<AppConfigBase, 'type'> {
1477
1534
  /** Entry file path for non-gkm apps */
1478
1535
  entry?: string;
1479
1536
  /** Framework for the app */
1480
- framework?: BackendFramework | FrontendFramework;
1537
+ framework?: Framework;
1481
1538
  /** Override domain for this app */
1482
1539
  domain?: AppDomainConfig;
1483
1540
  /** Required environment variables for entry-based apps */
@@ -1532,6 +1589,38 @@ interface LoadedConfig {
1532
1589
  */
1533
1590
  declare function isWorkspaceConfig(config: GkmConfig | WorkspaceConfig): config is WorkspaceConfig;
1534
1591
  //# sourceMappingURL=types.d.ts.map
1592
+ //#endregion
1593
+ //#region src/workspace/publicEnv.d.ts
1594
+ /**
1595
+ * All public env-var prefixes the toolbox understands.
1596
+ *
1597
+ * Used when resolving incoming var names back to a dependency
1598
+ * (e.g. `VITE_AUTH_URL` → `auth`). A var matching any of these
1599
+ * is considered safe to inline into a client bundle.
1600
+ */
1601
+ declare const PUBLIC_ENV_PREFIXES: readonly ["NEXT_PUBLIC_", "VITE_", "EXPO_PUBLIC_"];
1602
+ /**
1603
+ * Resolve the public env-var prefix that a frontend framework's bundler
1604
+ * inlines into client code at build time:
1605
+ *
1606
+ * - `nextjs` → `NEXT_PUBLIC_`
1607
+ * - `vite` → `VITE_`
1608
+ * - `tanstack-start` → `VITE_` (uses Vite under the hood)
1609
+ * - `expo` → `EXPO_PUBLIC_`
1610
+ * - `remix` → `''` (Remix exposes via loaders, no prefix convention)
1611
+ *
1612
+ * For backend frameworks or unspecified, falls back to `NEXT_PUBLIC_` to
1613
+ * preserve the historical default. Backend apps never read these vars
1614
+ * from a bundle, so the prefix only affects scaffolding/symmetry.
1615
+ */
1616
+ declare function getPublicEnvPrefix(framework?: Framework): string;
1617
+ /**
1618
+ * Strip a known public prefix from a var name.
1619
+ * Returns the un-prefixed name, or `null` if no prefix matched.
1620
+ */
1621
+ declare function stripPublicPrefix(name: string): string | null;
1622
+ //# sourceMappingURL=publicEnv.d.ts.map
1623
+
1535
1624
  //#endregion
1536
1625
  //#region src/workspace/index.d.ts
1537
1626
  /**
@@ -1559,7 +1648,7 @@ declare function isWorkspaceConfig(config: GkmConfig | WorkspaceConfig): config
1559
1648
  * logger: './src/logger',
1560
1649
  * },
1561
1650
  * web: {
1562
- * type: 'frontend',
1651
+ * type: 'web',
1563
1652
  * framework: 'nextjs',
1564
1653
  * path: 'apps/web',
1565
1654
  * port: 3001,
@@ -1603,7 +1692,12 @@ declare function getAppGkmConfig(workspace: NormalizedWorkspace, appName: string
1603
1692
  declare function getAppBuildOrder(workspace: NormalizedWorkspace): string[];
1604
1693
  /**
1605
1694
  * Generate environment variables for app dependencies.
1606
- * Each dependency gets both a `{DEP_NAME}_URL` and `NEXT_PUBLIC_{DEP_NAME}_URL` variable.
1695
+ *
1696
+ * Each dependency gets the un-prefixed `{DEP}_URL` (for server-side use) and,
1697
+ * when the consuming app's framework supports a public-var prefix, also the
1698
+ * prefixed form (e.g. `NEXT_PUBLIC_{DEP}_URL` for Next.js, `VITE_{DEP}_URL`
1699
+ * for Vite/TanStack Start). The prefixed form is what gets bundled into the
1700
+ * client at build time.
1607
1701
  */
1608
1702
  declare function getDependencyEnvVars(workspace: NormalizedWorkspace, appName: string, urlPrefix?: string): Record<string, string>;
1609
1703
  /**
@@ -1639,5 +1733,5 @@ declare function getEndpointForStage(dokployConfig: {
1639
1733
  //# sourceMappingURL=index.d.ts.map
1640
1734
 
1641
1735
  //#endregion
1642
- export { AppConfig, AppConfigInput, AppInput, AppsRecord, BackendFramework, ConstrainedApps, DeployConfig, DeployTarget, DokployWorkspaceConfig, FrontendFramework, InferAppNames, InferredWorkspaceConfig, LoadedConfig, MailServiceConfig, ModelsConfig, NormalizedAppConfig, NormalizedWorkspace, PHASE_2_DEPLOY_TARGETS, SUPPORTED_DEPLOY_TARGETS, SecretsConfig, ServiceImageConfig, ServicesConfig, SharedConfig, WorkspaceConfig, WorkspaceConfigSchema, WorkspaceInput, defineWorkspace, formatValidationErrors, getAppBuildOrder, getAppGkmConfig, getDependencyEnvVars, getDeployTargetError, getEndpointForStage, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, validateWorkspaceConfig, wrapSingleAppAsWorkspace };
1643
- //# sourceMappingURL=index-C3t5VL4R.d.cts.map
1736
+ export { AppConfig, AppConfigInput, AppInput, AppsRecord, BackendFramework, ConstrainedApps, DeployConfig, DeployTarget, DokployWorkspaceConfig, FrontendFramework, InferAppNames, InferredWorkspaceConfig, LoadedConfig, MailServiceConfig, ModelsConfig, NormalizedAppConfig, NormalizedWorkspace, PHASE_2_DEPLOY_TARGETS, PUBLIC_ENV_PREFIXES, SUPPORTED_DEPLOY_TARGETS, SecretsConfig, ServiceImageConfig, ServicesConfig, SharedConfig, WorkspaceConfig, WorkspaceConfigSchema, WorkspaceInput, defineWorkspace, formatValidationErrors, getAppBuildOrder, getAppGkmConfig, getDependencyEnvVars, getDeployTargetError, getEndpointForStage, getPublicEnvPrefix, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, stripPublicPrefix, validateWorkspaceConfig, wrapSingleAppAsWorkspace };
1737
+ //# sourceMappingURL=index-Dz2a7xQU.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dz2a7xQU.d.cts","names":[],"sources":["../src/deploy/state.ts","../src/deploy/StateProvider.ts","../src/workspace/schema.ts","../src/workspace/types.ts","../src/workspace/publicEnv.ts","../src/workspace/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAaA;AAQA;AAQA;AAkBA;AAwBA;AAAkC,UA1DjB,gBAAA,CA0DiB;EAAA,MAMnB,EAAA,MAAA;EAAM,UAMY,EAAA,MAAA;;;;;AAIlB,UAlEE,qBAAA,CAkEF;EAAM,QAEQ,EAAA,MAAA;EAAgB,UAA/B,EAAA,MAAA;;AAEQ;;;UA9DL,gBAAA;ECZA;EAAa,MAAA,EAAA,MAAA;EAAA;EAOiB,IAAzB,EAAA,MAAA;EAAO;EAQiB,IAAG,EAAA,MAAA;EAAO;EAM5C,KAAA,EAAA,MAAS;EAgCJ;EAOA,GAAA,EAAA,MAAA;EAWA;EAQL,SAAA,EAAA,MAAW;;;;;AAAwD,UDjD9D,WAAA,CCiD8D;;;;ECrClE,SAAA,EAAA,MAAA;EA8BD;EAAgB,WAAA,EAAA,MAAA;EAAA;EAAwC,cAAnC,EAAA,MAAA;EAAK;EAKzB,kBAAA,EAAA,MAKX;EA6BU;EAAiB,aAAA,EAAA,MAAA;EAAA;EAAyC,gBAApC,CAAA,EAAA,MAAA;EAAK;EA8B1B,MAAA,EAAA,MAAA;EAIX;EAAA,SAJ0B,EAAA,MAAA;;;;AAAA;AAUhB,UFjGK,iBAAA,CEiGI;EAAA,QAAA,EAAA,SAAA;EAAA,KAAkB,EAAA,MAAA;EAAe;EAAvB,SAAA,EAAA,MAAA;EAuBzB,aAAA,EAAA,MAAA;EAKA,YAAA,EFvHS,MEuHT,CAAA,MAA0D,EAAA,MAAA,CAAA;EAKhD,QAAA,EAAA;IASA,UAAA,CAAA,EAAA,MAAoB;IASpB,OAAA,CAAA,EAAA,MAAA;EAuSH,CAAA;EAGX;EAAA,cAHoC,CAAA,EF/apB,ME+aoB,CAAA,MAAA,EF/aL,gBE+aK,CAAA;EAAA;qBF7alB,eAAe;;gBAEpB,eAAe;;EE2aQ,UAAA,CAAA,EFzaxB,MEyawB,CAAA,MAAA,EFzaT,gBEyaS,CAAA;;YFva3B;;;;;;;;;AApBX;;;;;;;AAgB8B,UCtEb,aAAA,CDsEa;EAAqB;;;;AAI7B;;uBCnEA,QAAQ;;AAP9B;;;;;EAe8C,KAAG,CAAA,KAAA,EAAA,MAAA,EAAA,KAAA,EAApB,iBAAoB,CAAA,EAAA,OAAA,CAAA,IAAA,CAAA;AAAO;AAMxD;AAgCA;AAOA;AAWiB,KAlDL,SAAA,GAkDsB,WAAA,GAEvB,WAAa,GAAA,WAAA,GAAA,WAAA,GAAA,YAAA,GAAA,WAAA,GAAA,YAAA,GAAA,YAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,cAAA,GAAA,cAAA,GAAA,cAAA,GAAA,WAAA,GAAA,WAAA,GAAA,WAAA,GAAA,YAAA,GAAA,YAAA,GAAA,YAAA,GAAA,YAAA,GAAA,cAAA,GAAA,WAAA;AAMxB;;;AAA6C,UA1B5B,gBAAA,CA0B4B;EAAc,QAAG,EAAA,OAAA;AAAiB;;;;ACrClE,UDkBI,cAAA,CCbf;EAyBU,QAAA,EAAA,KAAA;EAAgB;EAAA,MAAkB,EDTrC,SCSqC;EAAsB;EAA9B,OAAA,CAAA,EAAA,MAAA;AAKtC;AAkCA;;;AAAgC,UDxCf,iBAAA,CCwCiB;EAAK;EA8B1B,QAAA,EDpEF,aCwET;;;;;AAJ0B,KD9DhB,WAAA,GAAc,gBC8DE,GD9DiB,cC8DjB,GD9DkC,iBC8DlC;AAAA;AAU5B;;;;;;;AF3JiB,cE8CJ,sBF9CoB,EE8CE,CAAA,CAAA,OF9CF,CAAA;EAQhB,IAAA,EAAA,MAAA;EAQA,aAAA,EAAA,aAAgB;EAkBhB,OAAA,EAAA,SAAW;EAwBX,OAAA,EAAA,SAAA;CAAiB,CAAA;;;;;;;;;;;AAoBZ;;;;AC1EtB;;;;;;AAewD;AAMxD;AAgCA;AAOiB,KCYL,gBAAA,GAAmB,CAAA,CAAE,KDTxB,CAAA,OCSqC,sBDT5B,CAAA;AAQlB;AAQA;;AAA0B,cCFb,uBDEa,ECFU,CAAA,CAAA,ODEV,CAAA;EAAgB,MAAG,EAAA,QAAA;EAAc,KAAG,EAAA,OAAA;EAAiB,IAAA,EAAA,MAAA;;;;ACrC/E;AA8BA;;;;AAAsC;AAKtC;AAkCA;;;;AAAuC;AA8BvC;;;;;;AAA4B;AAU5B;;;;AAA+B;AAAyB;AAuBH;AAUrC,KAzEJ,iBAAA,GAAoB,CAAA,CAAE,KAyEK,CAAA,OAzEQ,uBAyER,CAAA;AASvC;AASA;AAuSA;;;;;cApWa,iBAAe,CAAA,CAAA,mBAAA,CAAA,CAAA;MAoWU,EAAA,MAAA;EAAA,aAzFxB,EAAA,aAAA;EAAQ,OACL,EAAA,SAAA;EAAQ,OADX,EAAA,SAAA;CAAQ,CAAA,EA3QM,CAAA,CAAA,OA4QX,CAAA;EAAQ,MAAA,EAAA,QAAA;;;;;MAwFa,EAAA,MAAA;CAAA,CAAA,CAAA,CAAA;;;;;KA1V1B,SAAA,GAAY,CAAA,CAAE,aAAa;;;;cAuBjC;;;;cAKA;;;;iBAKU,uBAAA;;;;iBASA,oBAAA;;;;iBASA,oBAAA;;;;;;;;ACknBN,cD3UG,yBC2UH,ED3U4B,CAAA,CAAA,QC2U5B,CAAA,SAAA,CD3U4B,CAAA,CAAA,SC2U5B,CD3U4B,CAAA,CAAA,SC2U5B,ED3U4B,CAAA,CAAA,QC2U5B,CAAA,SAAA,CD3U4B,CAAA,CAAA,qBC2U5B,CAAA,CD3U4B,CAAA,CAAA,SC2U5B,CAAA;EAAY,QAGV,ED9U0B,CAAA,CAAA,UC8U1B,CAAA,WAAA,CAAA;EAAc,GAGf,eAAA,YAAA,CAAA;CAAa,eAGf,CAAA,aAAA,CAAA;EAAW,QAAA,EDpVkB,CAAA,CAAA,UCoVlB,CAAA,SAAA,CAAA;EASH,MAAA,eAAA,UAAoB,CAAA;IAAA,WAAA,EAAA,WAAA;IAAa,WAAA,EAAA,WAAA;IAU3B,WAAA,EAAA,WAAA;IAIV,WAAA,EAAA,WAAA;IAEH,YAAA,EAAA,YAAA;IAhBmC,WAAA,EAAA,WAAA;IAAI,YAAA,EAAA,YAAA;IA2BhC,YAAA,EAAA,YAAmB;IAAA,gBAAA,EAAA,gBAAA;IAMd,gBAAA,EAAA,gBAAA;IAAf,gBAAA,EAAA,gBAAA;IAEI,gBAAA,EAAA,gBAAA;IAEF,gBAAA,EAAA,gBAAA;IAEA,gBAAA,EAAA,gBAAA;IAEC,gBAAA,EAAA,gBAAA;IAED,cAAA,EAAA,cAAA;IAAW,cAAA,EAAA,cAAA;IAMH,cAAY,EAAA,cAAA;IAAA,WAAA,EAAA,WAAA;IAIvB,WAAA,EAAA,WAAA;IAAY,WAAA,EAAA,WAAA;IAEN,YAAA,EAAA,YAAA;IAAmB,YAAA,EAAA,YAAA;IAef,YAAA,EAAA,YAAiB;IAAA,YAAA,EAAA,YAAA;IACxB,cAAA,EAAA,cAAA;IAAY,WAAA,EAAA,WAAA;EAAe,CAAA,CAAA,CACvB;EAAe,OAAA,eAAA,YAAA,CAAA;;;;EC95Bf,QAAA,cAIH,CAAA,YAAA,CAAA;EAgBM,GAAA,eAAA,YAAkB,CAAA;AAoBlC,CAAA,eAAgB,CAAA,aAAiB,CAAA;;;YFyXR,CAAA,CAAA;IGxST,IAAA,EAAA,MAAA;IAAe,UAAA,EHuSjB,QGvSiB;IAAqB,aAAA,EHwSnC,QGxSmC;EAAU,CAAA,EACtC;IAAf,IAAA,EAAA,MAAA;IACkB,UAAA,EHqSb,QGrSa;IAAxB,aAAA,EHsSc,QGtSd;EAAuB,CAAA,CAAA;EA8BV,GAAA,eAAA,YAAkB,CAAA;CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,SAAA,wBAAA,CAAA,YAAA,CAAA;EAAA,QACzB,EH+V6B,CAAA,CAAA,UG/V7B,CAAA,WAAA,CAAA;EAAe,GAErB,eAAA,YAAA,CAAA;EAAmB,MAAA,aAAA;AA6CtB,CAAA,eAAgB,CAAA,aAAA,CAAwB;EAAA,QAAA,cAAA,CAAA,SAAA,CAAA;EAAA,MAC/B,eAAA,UAAA,CAAA;IAEN,WAAA,EAAA,WAAA;IAAmB,WAAA,EAAA,WAAA;IAyDN,WAAA,EAAa,WAAA;IAAA,WAAA,EAAA,WAAA;IACpB,YAAA,EAAA,YAAA;IAAY,WAAA,EAAA,WAAA;IAElB,YAAA,EAAA,YAAA;IAAY,YAAA,EAAA,YAAA;IA2BC,gBAAe,EAAA,gBAAA;IAAA,gBAAA,EAAA,gBAAA;IACnB,gBAAA,EAAA,gBAAA;IAET,gBAAA,EAAA,gBAAA;IAAS,gBAAA,EAAA,gBAAA;IA2BI,gBAAgB,EAAA,gBAAY;IAmC5B,gBAAA,EAAA,gBAAoB;IAAA,cAAA,EAAA,cAAA;IACxB,cAAA,EAAA,cAAA;IAGT,cAAA,EAAA,cAAA;IAAM,WAAA,EAAA,WAAA;IAgDO,WAAA,EAAA,WAAmB;;;;;;;;;;;;;;;;;;;;;YHSV,CAAA,CAAA;;gBADX;mBACG;;;gBADH;mBACG;;;;;KA6FL,SAAA,GAAY,CAAA,CAAE,aAAa;;;;;;;cAQ1B,qBAAmB,CAAA,CAAA;QAW9B,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEU,aAAA,GAAgB,CAAA,CAAE,aAAa;;;;cAiL9B,uBAAqB,CAAA,CAAA;sBAsG/B,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAzYsB,CAAA,CAAA;;oBADX;uBACG;;;oBADH;uBACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAAQ,CAAA,CAAA;;oBADX;uBACG;;;oBADH;uBACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkLoC,CAAA,CAAA;YAAzB;aAAiB;;YAAjB;aAAiB;;;;;;;;iBA6N7B,uBAAA,mBAEb,CAAA,CAAE,aAAa;;;;iBAOF,2BAAA;;SAER,CAAA,CAAE,aAAa;UACd,CAAA,CAAE;;;;;iBAYK,sBAAA,QAA8B,CAAA,CAAE;;;AF5zBhD;AAQA;AAkBA;AAwBA;;;;;;;;;;;;AAoBsB,KG1CV,YAAA,GH0CU,SAAA,GAAA,QAAA,GAAA,YAAA;;;;AC1EtB;;;;;;AAewD;AAMxD;AAgCA;AAOiB,UEdA,kBAAA,CFiBR;EAQQ;EAQL,OAAA,CAAA,EAAA,MAAW;EAAA;EAAA,KAAG,CAAA,EAAA,MAAA;;;AAAqD;;;;ACrC/E;AA8BA;;;;AAAsC;AAKtC;AAkCA;;;;AAAuC;AA8BvC;;;AAA4B,UCpEX,iBAAA,SAA0B,kBDoEf,CAAA;;MAAA,CAAA,EAAA;IAAA,IAAA,EAAA,MAAA;IAUhB,IAAA,EAAA,MAAS;IAAA,IAAA,CAAA,EAAA,MAAA;IAAkB,IAAA,CAAA,EAAA,MAAA;EAAe,CAAA;AAAvB;AAAyB;AAuBH;AAUrD;AASA;AASA;AAuSA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAsC,UCpXrB,cAAA,CDoXqB;EAAA;EAAA,EAAA,CAAA,EAAA,OAAA,GClXtB,kBDkXsB;;oBChXnB;;mBAED;;sBAEG;;WAAkB;;;;;;;;;;;;;;;;;;;;;;ADoRtB,KC3PL,oBAAA,GAAuB,MD2PlB,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;AAwFqB;AAKtC;;;;AAA+B;AAQ/B;;;KC3UY,eAAA,YAA2B;;;;;;;;;AD2UP;AAahC;;;;AAAmC;AAiLnC;;;;;;;;;;;;;;;;;;UCveiB,sBAAA;;;;cAIJ;;;;;;;;;;YAUF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwCM,YAAA;;YAEN;;YAEA;;QAEJ;;YAEI;;;;;;;;;;;;;;;;;;UAmBM,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;UA4BA,YAAA;;;;WAIP;;;;;;;;;;;;;;;;;;UAmBO,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA4CP,aAAA;;;;;;;;;;;;;;EDoBe,IADX,EAAA,MAAA;EAAQ;;;;;;;;;;;WCUZ;;;;;WAUA;;;;;cAMG;;;;;UAMJ;;;;;gBAMM;;;;;;;;;;EDrCU,MAAA,CAAA,EAAA,MAAA;;cCoDZ;;;;;UAMJ;;;;;iCAMuB;;;;;8BAMH;;;;;sBAMR;;;;;YAMV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAwCE;;;;;;;;;;;;;;;;;;;;;;;;;;EDwDuB;;;;;;;;;;AAiHF;AA4GlC;;;;AAEU;AAOV;;EAA2C,MAEpB,CAAA,EC9Ob,eD8Oa;EAAqB;;AACzB;AAYnB;;;;AChyBA;AAcA;EA2BiB,WAAA,CAAA,EAAA,MAAkB,EAAA;AAoDnC;;;;;;;AAU6C;AAuB7C;AAqBA;AAkCA;;;;AAc+B;AAwC/B;;;;;;AAQwB;AAmBP,UAkUA,cAlUY,CAAA,kBAAA,MAAA,GAAA,MAAA,CAAA,SAmUpB,aAnUoB,CAAA;EA4BZ;EAuBA,YAAA,CAAA,EAkRD,SAlRc,EAAA;AAO7B;;;;;AAwFQ,UA0LQ,SAAA,SAAkB,aA1L1B,CAAA;EAAM;EAMM,YAeR,CAAA,EAAA,MAAA,EAAA;;;;;AA8BF,KA+IC,QAAA,GAAW,aA/IZ,GAAA;EAAO,YAwCL,CAAA,EAAA,SAAA,MAAA,EAAA;CAAS;AAkDG;AAmCzB;;AAGgB,KAsBJ,UAAA,GAAa,MAtBT,CAAA,MAAA,EAsBwB,QAtBxB,CAAA;;AAFM;AAStB;AAQA;AAOY,KAMA,eANU,CAAA,cAMoB,UANpB,CAAA,GAAA,QAAA,MAOT,KAPS,GAOD,IAPC,CAOI,KAPJ,CAOU,CAPV,CAAA,EAAA,cAAA,CAAA,GAAA;EAAkB,YAAA,CAAA,EAAA,SAAA,CAAA,MAQP,KARO,GAAA,MAAA,CAAA,EAAA;AAAQ,CAAA,EAAjB;AAM/B;;;;;;;;AAEsC;AAqCtC;;;;;;;;;;AAcoB;AAMpB;;;;AAAiE;AAKjE;;;;;;;;AAIkB,KA7BN,cA6BM,CAAA,cA7BuB,UA6BvB,CAAA,GAAA;EAAa;EAGT,IACZ,CAAA,EAAA,MAAA;EAAY;EACI,IACf,EA/BJ,eA+BI,CA/BY,KA+BZ,CAAA;EAAa;EACJ,MAAA,CAAA,EA9BV,YA8BU;EA+FH;EAAe,MAAA,CAAA,EA3HtB,YA2HsB;EAAA;EAKD,QAAxB,CAAA,EA9HK,cA8HL;EAAM;EAGS,OAGZ,CAAA,EAlIC,aAkID;EAAY;EAGI,KAGf,CAAA,EAtIF,WAsIE;CAAa;AAGJ;AASpB;;AAAkD,KA5ItC,aA4IsC,CAAA,cA5IV,UA4IU,CAAA,GAAA,MA5IU,KA4IV,GAAA,MAAA;;;;AAAL,KAvIjC,uBAuIiC,CAAA,cAvIK,UAuIL,CAAA,GAAA;EAAI,IAAA,CAAA,EAAA,MAAA;EA2BhC,IAAA,EAAA,QAAmB,MA/JtB,KA+JsB,GA/Jd,IA+Jc,CA/JT,KA+JS,CA/JH,CA+JG,CAAA,EAAA,cAAA,CAAA,GAAA;IAMd,YAAA,CAAA,EApKJ,aAoKI,CApKU,KAoKV,CAAA,EAAA;EAAf,CAAA,EAAM;EAEY,MAEhB,CAAA,EArKC,YAqKD;EAAY,MAEZ,CAAA,EAtKC,YAsKD;EAAY,QAEX,CAAA,EAvKE,cAuKF;EAAa,OAEd,CAAA,EAxKE,aAwKF;EAAW,KAAA,CAAA,EAvKX,WAuKW;AAMpB,CAAA;;;;;ACv4BA;AAoBA;AAoBA;;;;ACiFA;;;;;;;AAE0B;AA8B1B;;;;AAGsB;AA6CtB;;;;AAGsB;AAyDtB;;;;;AAGe;AA2Bf;;;;AAGY;AA2BZ;AAmCA;;;;AAIS;AAgDT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UFiaiB,eAAA;;;;QAKV,eAAe;;WAGZ;;WAGA;;aAGE;;YAGD;;UAGF;;;;;;;;UASQ,mBAAA,SAA4B,KAAK;;;;;;;;;;wBAU3B;;;;cAIV;;WAEH;;;;;;;;;;UAWO,mBAAA;;;;;;QAMV,eAAe;;YAEX;;UAEF;;UAEA;;WAEC;;UAED;;;;;UAMQ,YAAA;;;;OAIX,YAAY;;aAEN;;;;;;;;;;;;;;iBAeI,iBAAA,SACP,YAAY,4BACR;;;;;;;AH15Bb;AAQA;AAQA;AAkBA;AAwBiB,cI9DJ,mBJ8DqB,EAAA,SAAA,CAAA,cAAA,EAAA,OAAA,EAAA,cAAA,CAAA;;;;;;;;;;;;AAoBZ;;;iBI9DN,kBAAA,aAA+B;AHZ/C;;;;AAe6B,iBGiBb,iBAAA,CHjBa,IAAA,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;;;;;ADH7B;AAkBA;AAwBA;;;;;;;;;;;;AAoBsB;;;;AC1EtB;;;;;;AAewD;AAMxD;AAgCA;AAOA;AAWA;AAQA;;;;;AAA+E;;;;ACrC/E;AA8BA;;;AAA+B,iBGyCf,eHzCiB,CAAA,oBGyCmB,UHzCnB,CAAA,CAAA,MAAA,EG0CxB,cH1CwB,CG0CT,KH1CS,CAAA,CAAA,EG2C9B,uBH3C8B,CG2CN,KH3CM,CAAA;AAAK;AAKtC;AAkCA;AAA6B,iBGkCb,kBAAA,CHlCa,MAAA,EGmCpB,eHnCoB,EAAA,GAAA,EAAA,MAAA,CAAA,EGqC1B,mBHrC0B;;;AAAU;AA8BvC;AAIE,iBGgDc,wBAAA,CHhDd,MAAA,EGiDO,SHjDP,EAAA,GAAA,EAAA,MAAA,CAAA,EGmDC,mBHnDD;;;;;AAJ0B,iBGgHZ,aAAA,CHhHY,MAAA,EGiHnB,SHjHmB,GGiHP,eHjHO,EAAA,GAAA,EAAA,MAAA,CAAA,EGmHzB,YHnHyB;AAU5B;;;;AAA+B,iBGoIf,eAAA,CHpIe,SAAA,EGqInB,mBHrImB,EAAA,OAAA,EAAA,MAAA,CAAA,EGuI5B,SHvI4B,GAAA,SAAA;AAAyB;AAuBH;AAUrD;AASA;AASgB,iBG+GA,gBAAA,CH/GoB,SAAA,EG+GQ,mBH/GR,CAAA,EAAA,MAAA,EAAA;AAuSpC;;;;;;;;;iBGrJgB,oBAAA,YACJ,2DAGT;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgDa,mBAAA;UHiGsB,CAAA,EAAA,MAAA;EAAA,SAAA,CAAA,EG/FD,MH+FC,CAAA,MAAA,EAAA,MAAA,CAAA;CAAA,GAAA,SAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA"}