@hexclave/shared 1.0.35 → 1.0.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 (86) hide show
  1. package/dist/ai/unified-prompts/reminders.js +1 -1
  2. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +2 -2
  3. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  4. package/dist/config/format.js +10 -0
  5. package/dist/config/format.js.map +1 -1
  6. package/dist/config/schema.d.ts +54 -54
  7. package/dist/config-eval.d.ts +31 -0
  8. package/dist/config-eval.d.ts.map +1 -0
  9. package/dist/config-eval.js +117 -0
  10. package/dist/config-eval.js.map +1 -0
  11. package/dist/config-rendering.d.ts +3 -6
  12. package/dist/config-rendering.d.ts.map +1 -1
  13. package/dist/config-rendering.js +21 -69
  14. package/dist/config-rendering.js.map +1 -1
  15. package/dist/esm/ai/unified-prompts/reminders.js +1 -1
  16. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +2 -2
  17. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  18. package/dist/esm/config/format.js +10 -0
  19. package/dist/esm/config/format.js.map +1 -1
  20. package/dist/esm/config/schema.d.ts +54 -54
  21. package/dist/esm/config-eval.d.ts +31 -0
  22. package/dist/esm/config-eval.d.ts.map +1 -0
  23. package/dist/esm/config-eval.js +112 -0
  24. package/dist/esm/config-eval.js.map +1 -0
  25. package/dist/esm/config-rendering.d.ts +3 -6
  26. package/dist/esm/config-rendering.d.ts.map +1 -1
  27. package/dist/esm/config-rendering.js +15 -58
  28. package/dist/esm/config-rendering.js.map +1 -1
  29. package/dist/esm/interface/admin-interface.d.ts +44 -2
  30. package/dist/esm/interface/admin-interface.d.ts.map +1 -1
  31. package/dist/esm/interface/admin-interface.js +56 -1
  32. package/dist/esm/interface/admin-interface.js.map +1 -1
  33. package/dist/esm/interface/admin-metrics.d.ts +3 -3
  34. package/dist/esm/interface/client-interface.js +1 -1
  35. package/dist/esm/interface/conversations.d.ts +34 -34
  36. package/dist/esm/interface/crud/current-user.d.ts +7 -7
  37. package/dist/esm/interface/crud/email-outbox.d.ts +128 -128
  38. package/dist/esm/interface/crud/projects.d.ts +28 -28
  39. package/dist/esm/interface/crud/team-member-profiles.d.ts +18 -18
  40. package/dist/esm/interface/crud/users.d.ts +12 -12
  41. package/dist/esm/interface/plan-usage.d.ts +1 -1
  42. package/dist/esm/interface/server-interface.js +1 -1
  43. package/dist/esm/interface/webhooks.d.ts +2 -2
  44. package/dist/esm/schema-fields.d.ts +34 -1
  45. package/dist/esm/schema-fields.d.ts.map +1 -1
  46. package/dist/esm/schema-fields.js +53 -2
  47. package/dist/esm/schema-fields.js.map +1 -1
  48. package/dist/esm/utils/jsx-editable-transpiler.js +2 -2
  49. package/dist/esm/utils/promises.js +1 -1
  50. package/dist/interface/admin-interface.d.ts +44 -2
  51. package/dist/interface/admin-interface.d.ts.map +1 -1
  52. package/dist/interface/admin-interface.js +56 -1
  53. package/dist/interface/admin-interface.js.map +1 -1
  54. package/dist/interface/admin-metrics.d.ts +3 -3
  55. package/dist/interface/client-interface.js +1 -1
  56. package/dist/interface/conversations.d.ts +34 -34
  57. package/dist/interface/crud/current-user.d.ts +7 -7
  58. package/dist/interface/crud/email-outbox.d.ts +128 -128
  59. package/dist/interface/crud/projects.d.ts +28 -28
  60. package/dist/interface/crud/team-member-profiles.d.ts +18 -18
  61. package/dist/interface/crud/users.d.ts +12 -12
  62. package/dist/interface/plan-usage.d.ts +1 -1
  63. package/dist/interface/server-interface.js +1 -1
  64. package/dist/interface/webhooks.d.ts +2 -2
  65. package/dist/schema-fields.d.ts +34 -1
  66. package/dist/schema-fields.d.ts.map +1 -1
  67. package/dist/schema-fields.js +55 -1
  68. package/dist/schema-fields.js.map +1 -1
  69. package/dist/utils/jsx-editable-transpiler.js +4 -4
  70. package/dist/utils/promises.js +1 -1
  71. package/package.json +2 -1
  72. package/src/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.ts +2 -2
  73. package/src/config/format.ts +18 -0
  74. package/src/config-eval.ts +140 -0
  75. package/src/config-rendering.ts +23 -79
  76. package/src/interface/admin-interface.ts +85 -5
  77. package/src/schema-fields.ts +59 -1
  78. package/dist/esm/hexclave-config-file.d.ts +0 -38
  79. package/dist/esm/hexclave-config-file.d.ts.map +0 -1
  80. package/dist/esm/hexclave-config-file.js +0 -144
  81. package/dist/esm/hexclave-config-file.js.map +0 -1
  82. package/dist/hexclave-config-file.d.ts +0 -38
  83. package/dist/hexclave-config-file.d.ts.map +0 -1
  84. package/dist/hexclave-config-file.js +0 -153
  85. package/dist/hexclave-config-file.js.map +0 -1
  86. package/src/hexclave-config-file.ts +0 -215
@@ -84,7 +84,7 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
84
84
  sourceOfTruth: {
85
85
  type: "hosted";
86
86
  };
87
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
87
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
88
88
  payments?: {
89
89
  blockNewPurchases?: boolean | undefined;
90
90
  autoPay?: {
@@ -125,6 +125,13 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
125
125
  }>;
126
126
  }>;
127
127
  } | undefined;
128
+ users: {
129
+ allowClientUserDeletion?: boolean | undefined;
130
+ };
131
+ teams: {
132
+ createPersonalTeamOnSignUp?: boolean | undefined;
133
+ allowClientTeamCreation?: boolean | undefined;
134
+ };
128
135
  auth: {
129
136
  allowSignUp?: boolean | undefined;
130
137
  signUpRulesDefaultAction?: string | undefined;
@@ -147,8 +154,8 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
147
154
  };
148
155
  signUpRules: Record<string, {
149
156
  displayName?: string | undefined;
150
- priority?: number | undefined;
151
157
  enabled?: boolean | undefined;
158
+ priority?: number | undefined;
152
159
  condition?: string | undefined;
153
160
  action: {
154
161
  message?: string | undefined;
@@ -159,10 +166,6 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
159
166
  onboarding: {
160
167
  requireEmailVerification?: boolean | undefined;
161
168
  };
162
- teams: {
163
- createPersonalTeamOnSignUp?: boolean | undefined;
164
- allowClientTeamCreation?: boolean | undefined;
165
- };
166
169
  rbac: {
167
170
  permissions: Record<string, {
168
171
  description?: string | undefined;
@@ -187,9 +190,6 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
187
190
  tsxSource: string;
188
191
  }>;
189
192
  };
190
- users: {
191
- allowClientUserDeletion?: boolean | undefined;
192
- };
193
193
  apiKeys: {
194
194
  enabled: {
195
195
  team?: boolean | undefined;
@@ -197,7 +197,7 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
197
197
  };
198
198
  };
199
199
  apps: {
200
- installed: Record<"authentication" | "fraud-protection" | "analytics" | "onboarding" | "teams" | "rbac" | "api-keys" | "payments" | "emails" | "support" | "email-api" | "data-vault" | "webhooks" | "tv-mode" | "launch-checklist" | "catalyst" | "neon" | "convex" | "vercel" | "tanstack-start" | "clickmaps" | "session-replays", {
200
+ installed: Record<"teams" | "authentication" | "fraud-protection" | "analytics" | "onboarding" | "rbac" | "api-keys" | "payments" | "emails" | "support" | "email-api" | "data-vault" | "webhooks" | "tv-mode" | "launch-checklist" | "catalyst" | "neon" | "convex" | "vercel" | "tanstack-start" | "clickmaps" | "session-replays", {
201
201
  enabled?: boolean | undefined;
202
202
  }>;
203
203
  };
@@ -218,7 +218,7 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
218
218
  project: {
219
219
  requirePublishableClientKey: undefined;
220
220
  };
221
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
221
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
222
222
  rbac: {
223
223
  permissions: undefined;
224
224
  defaultPermissions: {
@@ -293,7 +293,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
293
293
  sourceOfTruth: {
294
294
  type: "hosted";
295
295
  };
296
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
296
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
297
297
  payments?: {
298
298
  blockNewPurchases?: boolean | undefined;
299
299
  autoPay?: {
@@ -334,6 +334,13 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
334
334
  }>;
335
335
  }>;
336
336
  } | undefined;
337
+ users: {
338
+ allowClientUserDeletion?: boolean | undefined;
339
+ };
340
+ teams: {
341
+ createPersonalTeamOnSignUp?: boolean | undefined;
342
+ allowClientTeamCreation?: boolean | undefined;
343
+ };
337
344
  auth: {
338
345
  allowSignUp?: boolean | undefined;
339
346
  signUpRulesDefaultAction?: string | undefined;
@@ -356,8 +363,8 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
356
363
  };
357
364
  signUpRules: Record<string, {
358
365
  displayName?: string | undefined;
359
- priority?: number | undefined;
360
366
  enabled?: boolean | undefined;
367
+ priority?: number | undefined;
361
368
  condition?: string | undefined;
362
369
  action: {
363
370
  message?: string | undefined;
@@ -368,10 +375,6 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
368
375
  onboarding: {
369
376
  requireEmailVerification?: boolean | undefined;
370
377
  };
371
- teams: {
372
- createPersonalTeamOnSignUp?: boolean | undefined;
373
- allowClientTeamCreation?: boolean | undefined;
374
- };
375
378
  rbac: {
376
379
  permissions: Record<string, {
377
380
  description?: string | undefined;
@@ -396,9 +399,6 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
396
399
  tsxSource: string;
397
400
  }>;
398
401
  };
399
- users: {
400
- allowClientUserDeletion?: boolean | undefined;
401
- };
402
402
  apiKeys: {
403
403
  enabled: {
404
404
  team?: boolean | undefined;
@@ -406,7 +406,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
406
406
  };
407
407
  };
408
408
  apps: {
409
- installed: Record<"authentication" | "fraud-protection" | "analytics" | "onboarding" | "teams" | "rbac" | "api-keys" | "payments" | "emails" | "support" | "email-api" | "data-vault" | "webhooks" | "tv-mode" | "launch-checklist" | "catalyst" | "neon" | "convex" | "vercel" | "tanstack-start" | "clickmaps" | "session-replays", {
409
+ installed: Record<"teams" | "authentication" | "fraud-protection" | "analytics" | "onboarding" | "rbac" | "api-keys" | "payments" | "emails" | "support" | "email-api" | "data-vault" | "webhooks" | "tv-mode" | "launch-checklist" | "catalyst" | "neon" | "convex" | "vercel" | "tanstack-start" | "clickmaps" | "session-replays", {
410
410
  enabled?: boolean | undefined;
411
411
  }>;
412
412
  };
@@ -487,8 +487,8 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
487
487
  };
488
488
  signUpRules: Record<string, {
489
489
  displayName?: string | undefined;
490
- priority?: number | undefined;
491
490
  enabled?: boolean | undefined;
491
+ priority?: number | undefined;
492
492
  condition?: string | undefined;
493
493
  action: {
494
494
  message?: string | undefined;
@@ -575,7 +575,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
575
575
  project: {
576
576
  requirePublishableClientKey: undefined;
577
577
  };
578
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
578
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
579
579
  rbac: {
580
580
  permissions: undefined;
581
581
  defaultPermissions: {
@@ -648,7 +648,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
648
648
  project: {
649
649
  requirePublishableClientKey: undefined;
650
650
  };
651
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
651
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
652
652
  rbac: {
653
653
  permissions: undefined;
654
654
  defaultPermissions: {
@@ -721,7 +721,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
721
721
  project: {
722
722
  requirePublishableClientKey: undefined;
723
723
  };
724
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
724
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
725
725
  rbac: {
726
726
  permissions: undefined;
727
727
  defaultPermissions: {
@@ -797,7 +797,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
797
797
  project: {
798
798
  requirePublishableClientKey: undefined;
799
799
  };
800
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
800
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
801
801
  rbac: {
802
802
  permissions: undefined;
803
803
  defaultPermissions: {
@@ -883,7 +883,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
883
883
  project: {
884
884
  requirePublishableClientKey: undefined;
885
885
  };
886
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
886
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
887
887
  rbac: {
888
888
  permissions: undefined;
889
889
  defaultPermissions: {
@@ -959,7 +959,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
959
959
  project: {
960
960
  requirePublishableClientKey: undefined;
961
961
  };
962
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
962
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
963
963
  rbac: {
964
964
  permissions: undefined;
965
965
  defaultPermissions: {
@@ -1041,7 +1041,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1041
1041
  sourceOfTruth: {
1042
1042
  type: "hosted";
1043
1043
  };
1044
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1044
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1045
1045
  payments?: {
1046
1046
  blockNewPurchases?: boolean | undefined;
1047
1047
  autoPay?: {
@@ -1082,6 +1082,13 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1082
1082
  }>;
1083
1083
  }>;
1084
1084
  } | undefined;
1085
+ users: {
1086
+ allowClientUserDeletion?: boolean | undefined;
1087
+ };
1088
+ teams: {
1089
+ createPersonalTeamOnSignUp?: boolean | undefined;
1090
+ allowClientTeamCreation?: boolean | undefined;
1091
+ };
1085
1092
  auth: {
1086
1093
  allowSignUp?: boolean | undefined;
1087
1094
  signUpRulesDefaultAction?: string | undefined;
@@ -1104,8 +1111,8 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1104
1111
  };
1105
1112
  signUpRules: Record<string, {
1106
1113
  displayName?: string | undefined;
1107
- priority?: number | undefined;
1108
1114
  enabled?: boolean | undefined;
1115
+ priority?: number | undefined;
1109
1116
  condition?: string | undefined;
1110
1117
  action: {
1111
1118
  message?: string | undefined;
@@ -1116,10 +1123,6 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1116
1123
  onboarding: {
1117
1124
  requireEmailVerification?: boolean | undefined;
1118
1125
  };
1119
- teams: {
1120
- createPersonalTeamOnSignUp?: boolean | undefined;
1121
- allowClientTeamCreation?: boolean | undefined;
1122
- };
1123
1126
  rbac: {
1124
1127
  permissions: Record<string, {
1125
1128
  description?: string | undefined;
@@ -1144,9 +1147,6 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1144
1147
  tsxSource: string;
1145
1148
  }>;
1146
1149
  };
1147
- users: {
1148
- allowClientUserDeletion?: boolean | undefined;
1149
- };
1150
1150
  apiKeys: {
1151
1151
  enabled: {
1152
1152
  team?: boolean | undefined;
@@ -1154,7 +1154,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1154
1154
  };
1155
1155
  };
1156
1156
  apps: {
1157
- installed: Record<"authentication" | "fraud-protection" | "analytics" | "onboarding" | "teams" | "rbac" | "api-keys" | "payments" | "emails" | "support" | "email-api" | "data-vault" | "webhooks" | "tv-mode" | "launch-checklist" | "catalyst" | "neon" | "convex" | "vercel" | "tanstack-start" | "clickmaps" | "session-replays", {
1157
+ installed: Record<"teams" | "authentication" | "fraud-protection" | "analytics" | "onboarding" | "rbac" | "api-keys" | "payments" | "emails" | "support" | "email-api" | "data-vault" | "webhooks" | "tv-mode" | "launch-checklist" | "catalyst" | "neon" | "convex" | "vercel" | "tanstack-start" | "clickmaps" | "session-replays", {
1158
1158
  enabled?: boolean | undefined;
1159
1159
  }>;
1160
1160
  };
@@ -1235,8 +1235,8 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1235
1235
  };
1236
1236
  signUpRules: Record<string, {
1237
1237
  displayName?: string | undefined;
1238
- priority?: number | undefined;
1239
1238
  enabled?: boolean | undefined;
1239
+ priority?: number | undefined;
1240
1240
  condition?: string | undefined;
1241
1241
  action: {
1242
1242
  message?: string | undefined;
@@ -1323,7 +1323,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1323
1323
  project: {
1324
1324
  requirePublishableClientKey: undefined;
1325
1325
  };
1326
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1326
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1327
1327
  rbac: {
1328
1328
  permissions: undefined;
1329
1329
  defaultPermissions: {
@@ -1396,7 +1396,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1396
1396
  project: {
1397
1397
  requirePublishableClientKey: undefined;
1398
1398
  };
1399
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1399
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1400
1400
  rbac: {
1401
1401
  permissions: undefined;
1402
1402
  defaultPermissions: {
@@ -1469,7 +1469,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1469
1469
  project: {
1470
1470
  requirePublishableClientKey: undefined;
1471
1471
  };
1472
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1472
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1473
1473
  rbac: {
1474
1474
  permissions: undefined;
1475
1475
  defaultPermissions: {
@@ -1545,7 +1545,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1545
1545
  project: {
1546
1546
  requirePublishableClientKey: undefined;
1547
1547
  };
1548
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1548
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1549
1549
  rbac: {
1550
1550
  permissions: undefined;
1551
1551
  defaultPermissions: {
@@ -1631,7 +1631,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1631
1631
  project: {
1632
1632
  requirePublishableClientKey: undefined;
1633
1633
  };
1634
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1634
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1635
1635
  rbac: {
1636
1636
  permissions: undefined;
1637
1637
  defaultPermissions: {
@@ -1707,7 +1707,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1707
1707
  project: {
1708
1708
  requirePublishableClientKey: undefined;
1709
1709
  };
1710
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1710
+ }, string>, "users" | "teams" | "auth" | "onboarding" | "rbac" | "payments" | "emails" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1711
1711
  rbac: {
1712
1712
  permissions: undefined;
1713
1713
  defaultPermissions: {
@@ -2073,18 +2073,18 @@ declare function sanitizeOrganizationConfig(config: OrganizationRenderedConfigBe
2073
2073
  };
2074
2074
  signUpRules: Record<string, {
2075
2075
  displayName: string | undefined;
2076
- priority: number;
2077
2076
  enabled: boolean;
2077
+ priority: number;
2078
2078
  condition: string | undefined;
2079
2079
  action: {
2080
2080
  message: string | undefined;
2081
2081
  type: "allow" | "reject" | "restrict" | "log";
2082
2082
  };
2083
2083
  }>;
2084
- allowSignUp: boolean;
2085
2084
  password: {
2086
2085
  allowSignIn: boolean;
2087
2086
  };
2087
+ allowSignUp: boolean;
2088
2088
  otp: {
2089
2089
  allowSignIn: boolean;
2090
2090
  };
@@ -2183,6 +2183,13 @@ declare function sanitizeOrganizationConfig(config: OrganizationRenderedConfigBe
2183
2183
  } & {
2184
2184
  readonly type: "hosted";
2185
2185
  };
2186
+ users: {
2187
+ allowClientUserDeletion: boolean;
2188
+ };
2189
+ teams: {
2190
+ createPersonalTeamOnSignUp: boolean;
2191
+ allowClientTeamCreation: boolean;
2192
+ };
2186
2193
  analytics: {
2187
2194
  queryFolders: {
2188
2195
  [x: string]: {
@@ -2201,10 +2208,6 @@ declare function sanitizeOrganizationConfig(config: OrganizationRenderedConfigBe
2201
2208
  onboarding: {
2202
2209
  requireEmailVerification: boolean;
2203
2210
  };
2204
- teams: {
2205
- createPersonalTeamOnSignUp: boolean;
2206
- allowClientTeamCreation: boolean;
2207
- };
2208
2211
  rbac: {
2209
2212
  permissions: {
2210
2213
  [x: string]: {
@@ -2227,9 +2230,6 @@ declare function sanitizeOrganizationConfig(config: OrganizationRenderedConfigBe
2227
2230
  };
2228
2231
  };
2229
2232
  };
2230
- users: {
2231
- allowClientUserDeletion: boolean;
2232
- };
2233
2233
  apiKeys: {
2234
2234
  enabled: {
2235
2235
  team: boolean;
@@ -0,0 +1,31 @@
1
+ import { showOnboardingHexclaveConfigValue } from "./config-authoring.js";
2
+
3
+ //#region src/config-eval.d.ts
4
+ /**
5
+ * Thrown when a config file evaluates successfully but its exported `config`
6
+ * isn't a usable shape (missing, or not an object / "show-onboarding" string).
7
+ * Distinct from the underlying loader errors jiti throws, so callers can tell a
8
+ * malformed config apart from a file that simply failed to load.
9
+ */
10
+ declare class ConfigFileEvalError extends Error {
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * Walks up from `dir` to find the nearest `package.json` and returns the
15
+ * best SDK package to use for the `HexclaveConfig` type import.
16
+ */
17
+ declare function detectImportPackageFromDir(dir: string): string | undefined;
18
+ /** A config object, or the `"show-onboarding"` sentinel that stands in for one. */
19
+ type ParsedConfigValue = Record<string, unknown> | typeof showOnboardingHexclaveConfigValue;
20
+ /**
21
+ * Evaluates config file content using jiti and returns the exported `config`
22
+ * value.
23
+ *
24
+ * WARNING: This executes arbitrary code via `jiti.evalModule` — only use on
25
+ * content that is fully operator-controlled (local filesystem). Never call
26
+ * this on untrusted input (e.g. content fetched from a remote repository).
27
+ */
28
+ declare function evalConfigFileContent(content: string, filePath: string): ParsedConfigValue;
29
+ //#endregion
30
+ export { ConfigFileEvalError, ParsedConfigValue, detectImportPackageFromDir, evalConfigFileContent };
31
+ //# sourceMappingURL=config-eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-eval.d.ts","names":[],"sources":["../src/config-eval.ts"],"mappings":";;;;;AAcA;;;;cAAa,mBAAA,SAA4B,KAAA;cAC3B,OAAA;AAAA;;;AAUd;;iBAAgB,0BAAA,CAA2B,GAAA;;KA4B/B,iBAAA,GAAoB,MAAA,2BAAiC,iCAAA;AAAjE;;;;;AAcA;;;AAdA,iBAcgB,qBAAA,CAAsB,OAAA,UAAiB,QAAA,WAAmB,iBAAA"}
@@ -0,0 +1,117 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('./chunk-BE-pF4vm.js');
3
+ let __config_authoring_js = require("./config-authoring.js");
4
+ let fs = require("fs");
5
+ let jiti = require("jiti");
6
+ let path = require("path");
7
+ path = require_chunk.__toESM(path);
8
+ let __config_rendering_js = require("./config-rendering.js");
9
+
10
+ //#region src/config-eval.ts
11
+ const jiti$1 = (0, jiti.createJiti)(require("url").pathToFileURL(__filename).href, { moduleCache: false });
12
+ /**
13
+ * Thrown when a config file evaluates successfully but its exported `config`
14
+ * isn't a usable shape (missing, or not an object / "show-onboarding" string).
15
+ * Distinct from the underlying loader errors jiti throws, so callers can tell a
16
+ * malformed config apart from a file that simply failed to load.
17
+ */
18
+ var ConfigFileEvalError = class extends Error {
19
+ constructor(message) {
20
+ super(message);
21
+ this.name = "ConfigFileEvalError";
22
+ }
23
+ };
24
+ /**
25
+ * Walks up from `dir` to find the nearest `package.json` and returns the
26
+ * best SDK package to use for the `HexclaveConfig` type import.
27
+ */
28
+ function detectImportPackageFromDir(dir) {
29
+ let current = dir;
30
+ while (true) {
31
+ const pkgPath = path.default.join(current, "package.json");
32
+ if ((0, fs.existsSync)(pkgPath)) try {
33
+ const pkg = JSON.parse((0, fs.readFileSync)(pkgPath, "utf-8"));
34
+ return (0, __config_rendering_js.detectConfigImportPackage)([...Object.keys(pkg.dependencies ?? {}), ...Object.keys(pkg.devDependencies ?? {})]);
35
+ } catch {
36
+ return;
37
+ }
38
+ const parent = path.default.dirname(current);
39
+ if (parent === current) break;
40
+ current = parent;
41
+ }
42
+ }
43
+ function isRecord(value) {
44
+ return value != null && typeof value === "object" && !Array.isArray(value);
45
+ }
46
+ function invalidConfigShape(filePath) {
47
+ return new ConfigFileEvalError(`Invalid config in ${filePath}. The file must export a plain \`config\` object or "${__config_authoring_js.showOnboardingHexclaveConfigValue}".`);
48
+ }
49
+ /**
50
+ * Evaluates config file content using jiti and returns the exported `config`
51
+ * value.
52
+ *
53
+ * WARNING: This executes arbitrary code via `jiti.evalModule` — only use on
54
+ * content that is fully operator-controlled (local filesystem). Never call
55
+ * this on untrusted input (e.g. content fetched from a remote repository).
56
+ */
57
+ function evalConfigFileContent(content, filePath) {
58
+ if (content.trim() === "") return {};
59
+ const resolvedPath = path.default.isAbsolute(filePath) ? filePath : path.default.resolve(filePath);
60
+ const mod = jiti$1.evalModule(content, { filename: resolvedPath });
61
+ if (!isRecord(mod)) throw invalidConfigShape(filePath);
62
+ const config = mod.config;
63
+ if (config === void 0) throw invalidConfigShape(filePath);
64
+ if (typeof config === "string") {
65
+ if (config !== __config_authoring_js.showOnboardingHexclaveConfigValue) throw new ConfigFileEvalError(`Invalid config in ${filePath}. String config values must be "${__config_authoring_js.showOnboardingHexclaveConfigValue}", got "${config}".`);
66
+ return config;
67
+ }
68
+ if (isRecord(config)) return config;
69
+ throw invalidConfigShape(filePath);
70
+ }
71
+ (void 0)?.test("evalConfigFileContent parses static config exports", ({ expect }) => {
72
+ expect(evalConfigFileContent(`
73
+ import type { StackConfig } from "@hexclave/js";
74
+ export const config: StackConfig = {
75
+ auth: { allowSignUp: true },
76
+ payments: { testMode: false },
77
+ };
78
+ `, "stack.config.ts")).toMatchInlineSnapshot(`
79
+ {
80
+ "auth": {
81
+ "allowSignUp": true,
82
+ },
83
+ "payments": {
84
+ "testMode": false,
85
+ },
86
+ }
87
+ `);
88
+ });
89
+ (void 0)?.test("evalConfigFileContent parses show-onboarding", ({ expect }) => {
90
+ expect(evalConfigFileContent("export const config = \"show-onboarding\";", "stack.config.ts")).toBe("show-onboarding");
91
+ });
92
+ (void 0)?.test("evalConfigFileContent rejects content without config export", ({ expect }) => {
93
+ expect(() => evalConfigFileContent("export const other = {};", "stack.config.ts")).toThrow(/must export/);
94
+ });
95
+ (void 0)?.test("evalConfigFileContent rejects arbitrary string config values", ({ expect }) => {
96
+ expect(() => evalConfigFileContent("export const config = \"arbitrary-string\";", "stack.config.ts")).toThrow(/must be "show-onboarding"/);
97
+ });
98
+ (void 0)?.test("evalConfigFileContent rejects unresolvable config factories", ({ expect }) => {
99
+ expect(() => evalConfigFileContent("export const config = makeConfig();", "stack.config.ts")).toThrow();
100
+ });
101
+ (void 0)?.test("evalConfigFileContent rejects missing config import targets", ({ expect }) => {
102
+ expect(() => evalConfigFileContent(`
103
+ import missingConfigPart from "./missing-config-part";
104
+ export const config = { auth: missingConfigPart };
105
+ `, "/tmp/hexclave-missing-import-config.ts")).toThrow();
106
+ });
107
+ (void 0)?.test("evalConfigFileContent surfaces invalid syntax as a loader error, not ConfigFileEvalError", ({ expect }) => {
108
+ const evalInvalid = () => evalConfigFileContent("export const config = {", "stack.config.ts");
109
+ expect(evalInvalid).toThrow();
110
+ expect(evalInvalid).not.toThrow(ConfigFileEvalError);
111
+ });
112
+
113
+ //#endregion
114
+ exports.ConfigFileEvalError = ConfigFileEvalError;
115
+ exports.detectImportPackageFromDir = detectImportPackageFromDir;
116
+ exports.evalConfigFileContent = evalConfigFileContent;
117
+ //# sourceMappingURL=config-eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-eval.js","names":[],"sources":["../src/config-eval.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"fs\";\nimport { createJiti } from \"jiti\";\nimport path from \"path\";\nimport { showOnboardingHexclaveConfigValue } from \"./config-authoring\";\nimport { detectConfigImportPackage } from \"./config-rendering\";\n\nconst jiti = createJiti(import.meta.url, { moduleCache: false });\n\n/**\n * Thrown when a config file evaluates successfully but its exported `config`\n * isn't a usable shape (missing, or not an object / \"show-onboarding\" string).\n * Distinct from the underlying loader errors jiti throws, so callers can tell a\n * malformed config apart from a file that simply failed to load.\n */\nexport class ConfigFileEvalError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"ConfigFileEvalError\";\n }\n}\n\n/**\n * Walks up from `dir` to find the nearest `package.json` and returns the\n * best SDK package to use for the `HexclaveConfig` type import.\n */\nexport function detectImportPackageFromDir(dir: string): string | undefined {\n let current = dir;\n while (true) {\n const pkgPath = path.join(current, \"package.json\");\n if (existsSync(pkgPath)) {\n try {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\"));\n const deps = [\n ...Object.keys(pkg.dependencies ?? {}),\n ...Object.keys(pkg.devDependencies ?? {}),\n ];\n return detectConfigImportPackage(deps);\n } catch {\n return undefined;\n }\n }\n const parent = path.dirname(current);\n if (parent === current) break;\n current = parent;\n }\n return undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === \"object\" && !Array.isArray(value);\n}\n\n/** A config object, or the `\"show-onboarding\"` sentinel that stands in for one. */\nexport type ParsedConfigValue = Record<string, unknown> | typeof showOnboardingHexclaveConfigValue;\n\nfunction invalidConfigShape(filePath: string): ConfigFileEvalError {\n return new ConfigFileEvalError(`Invalid config in ${filePath}. The file must export a plain \\`config\\` object or \"${showOnboardingHexclaveConfigValue}\".`);\n}\n\n/**\n * Evaluates config file content using jiti and returns the exported `config`\n * value.\n *\n * WARNING: This executes arbitrary code via `jiti.evalModule` — only use on\n * content that is fully operator-controlled (local filesystem). Never call\n * this on untrusted input (e.g. content fetched from a remote repository).\n */\nexport function evalConfigFileContent(content: string, filePath: string): ParsedConfigValue {\n if (content.trim() === \"\") return {};\n const resolvedPath = path.isAbsolute(filePath) ? filePath : path.resolve(filePath);\n const mod: unknown = jiti.evalModule(content, { filename: resolvedPath });\n if (!isRecord(mod)) {\n throw invalidConfigShape(filePath);\n }\n const config = mod.config;\n if (config === undefined) {\n throw invalidConfigShape(filePath);\n }\n if (typeof config === \"string\") {\n if (config !== showOnboardingHexclaveConfigValue) {\n throw new ConfigFileEvalError(`Invalid config in ${filePath}. String config values must be \"${showOnboardingHexclaveConfigValue}\", got \"${config}\".`);\n }\n return config;\n }\n if (isRecord(config)) return config;\n throw invalidConfigShape(filePath);\n}\n\n// --- inline vitest tests ---\n\nimport.meta.vitest?.test(\"evalConfigFileContent parses static config exports\", ({ expect }) => {\n expect(evalConfigFileContent(`\n import type { StackConfig } from \"@hexclave/js\";\n export const config: StackConfig = {\n auth: { allowSignUp: true },\n payments: { testMode: false },\n };\n `, \"stack.config.ts\")).toMatchInlineSnapshot(`\n {\n \"auth\": {\n \"allowSignUp\": true,\n },\n \"payments\": {\n \"testMode\": false,\n },\n }\n `);\n});\n\nimport.meta.vitest?.test(\"evalConfigFileContent parses show-onboarding\", ({ expect }) => {\n expect(evalConfigFileContent('export const config = \"show-onboarding\";', \"stack.config.ts\")).toBe(\"show-onboarding\");\n});\n\nimport.meta.vitest?.test(\"evalConfigFileContent rejects content without config export\", ({ expect }) => {\n expect(() => evalConfigFileContent(\"export const other = {};\", \"stack.config.ts\")).toThrow(/must export/);\n});\n\nimport.meta.vitest?.test(\"evalConfigFileContent rejects arbitrary string config values\", ({ expect }) => {\n expect(() => evalConfigFileContent('export const config = \"arbitrary-string\";', \"stack.config.ts\")).toThrow(/must be \"show-onboarding\"/);\n});\n\nimport.meta.vitest?.test(\"evalConfigFileContent rejects unresolvable config factories\", ({ expect }) => {\n expect(() => evalConfigFileContent(\"export const config = makeConfig();\", \"stack.config.ts\")).toThrow();\n});\n\nimport.meta.vitest?.test(\"evalConfigFileContent rejects missing config import targets\", ({ expect }) => {\n expect(() => evalConfigFileContent(`\n import missingConfigPart from \"./missing-config-part\";\n export const config = { auth: missingConfigPart };\n `, \"/tmp/hexclave-missing-import-config.ts\")).toThrow();\n});\n\nimport.meta.vitest?.test(\"evalConfigFileContent surfaces invalid syntax as a loader error, not ConfigFileEvalError\", ({ expect }) => {\n // A malformed file fails inside jiti's parser, so the thrown error is a loader\n // error — NOT a ConfigFileEvalError. Callers depend on that distinction to route\n // it to \"Failed to load config file\" rather than \"Invalid config\".\n const evalInvalid = () => evalConfigFileContent(\"export const config = {\", \"stack.config.ts\");\n expect(evalInvalid).toThrow();\n expect(evalInvalid).not.toThrow(ConfigFileEvalError);\n});\n"],"mappings":";;;;;;;;;;AAMA,MAAM,6EAAmC,EAAE,aAAa,OAAO,CAAC;;;;;;;AAQhE,IAAa,sBAAb,cAAyC,MAAM;CAC7C,YAAY,SAAiB;AAC3B,QAAM,QAAQ;AACd,OAAK,OAAO;;;;;;;AAQhB,SAAgB,2BAA2B,KAAiC;CAC1E,IAAI,UAAU;AACd,QAAO,MAAM;EACX,MAAM,UAAU,aAAK,KAAK,SAAS,eAAe;AAClD,yBAAe,QAAQ,CACrB,KAAI;GACF,MAAM,MAAM,KAAK,2BAAmB,SAAS,QAAQ,CAAC;AAKtD,+DAJa,CACX,GAAG,OAAO,KAAK,IAAI,gBAAgB,EAAE,CAAC,EACtC,GAAG,OAAO,KAAK,IAAI,mBAAmB,EAAE,CAAC,CAC1C,CACqC;UAChC;AACN;;EAGJ,MAAM,SAAS,aAAK,QAAQ,QAAQ;AACpC,MAAI,WAAW,QAAS;AACxB,YAAU;;;AAKd,SAAS,SAAS,OAAkD;AAClE,QAAO,SAAS,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM;;AAM5E,SAAS,mBAAmB,UAAuC;AACjE,QAAO,IAAI,oBAAoB,qBAAqB,SAAS,uDAAuD,wDAAkC,IAAI;;;;;;;;;;AAW5J,SAAgB,sBAAsB,SAAiB,UAAqC;AAC1F,KAAI,QAAQ,MAAM,KAAK,GAAI,QAAO,EAAE;CACpC,MAAM,eAAe,aAAK,WAAW,SAAS,GAAG,WAAW,aAAK,QAAQ,SAAS;CAClF,MAAM,MAAe,OAAK,WAAW,SAAS,EAAE,UAAU,cAAc,CAAC;AACzE,KAAI,CAAC,SAAS,IAAI,CAChB,OAAM,mBAAmB,SAAS;CAEpC,MAAM,SAAS,IAAI;AACnB,KAAI,WAAW,OACb,OAAM,mBAAmB,SAAS;AAEpC,KAAI,OAAO,WAAW,UAAU;AAC9B,MAAI,WAAW,wDACb,OAAM,IAAI,oBAAoB,qBAAqB,SAAS,kCAAkC,wDAAkC,UAAU,OAAO,IAAI;AAEvJ,SAAO;;AAET,KAAI,SAAS,OAAO,CAAE,QAAO;AAC7B,OAAM,mBAAmB,SAAS;;CAKpC,SAAW,KAAC,uDAAyD,EAAA,aAAa;AAChF,QAAO,sBAAsB;;;;;;KAM1B,kBAAkB,CAAC,CAAC,sBAAsB;;;;;;;;;IAS3C;EACF;CAEF,SAAW,KAAC,iDAAgD,EAAA,aAAgB;AAC1E,QAAO,sBAAsB,8CAA4C,kBAAkB,CAAC,CAAC,KAAK,kBAAkB;EACpH;CAEF,SAAW,KAAC,gEAAmE,EAAA,aAAY;AACzF,cAAa,sBAAsB,4BAA4B,kBAAkB,CAAC,CAAC,QAAQ,cAAc;EACzG;CAEF,SAAW,KAAC,iEAAoE,EAAA,aAAY;AAC1F,cAAa,sBAAsB,+CAA6C,kBAAkB,CAAC,CAAC,QAAQ,4BAA4B;EACxI;CAEF,SAAW,KAAC,gEAAgE,EAAA,aAAe;AACzF,cAAa,sBAAsB,uCAAuC,kBAAkB,CAAC,CAAC,SAAS;EACvG;CAEF,SAAW,KAAC,gEAAkE,EAAA,aAAa;AACzF,cAAa,sBAAsB;;;KAGhC,yCAAyC,CAAC,CAAC,SAAS;EACvD;CAEF,SAAW,KAAC,6FAAmF,EAAA,aAAyB;CAItH,MAAM,oBAAoB,sBAAsB,2BAA2B,kBAAkB;AAC7F,QAAO,YAAY,CAAC,SAAS;AAC7B,QAAO,YAAY,CAAC,IAAI,QAAQ,oBAAoB;EACpD"}
@@ -1,5 +1,3 @@
1
- import { hexclaveConfigFileExportsConfig, parseHexclaveConfigFileContent, renderConfigFileContent, tryParseHexclaveConfigFileContent } from "./hexclave-config-file.js";
2
-
3
1
  //#region src/config-rendering.d.ts
4
2
  /**
5
3
  * Given a list of dependency names (from package.json), returns the SDK
@@ -8,10 +6,9 @@ import { hexclaveConfigFileExportsConfig, parseHexclaveConfigFileContent, render
8
6
  */
9
7
  declare function detectConfigImportPackage(dependencies: string[]): string | undefined;
10
8
  /**
11
- * Walks up from `dir` to find the nearest `package.json` and returns the
12
- * best SDK package to use for the `HexclaveConfig` type import.
9
+ * Renders a config object into the source text of a `stack.config.ts` file.
13
10
  */
14
- declare function detectImportPackageFromDir(dir: string): string | undefined;
11
+ declare function renderConfigFileContent(config: unknown, importPackage?: string): string;
15
12
  //#endregion
16
- export { detectConfigImportPackage, detectImportPackageFromDir, hexclaveConfigFileExportsConfig, parseHexclaveConfigFileContent, renderConfigFileContent, tryParseHexclaveConfigFileContent };
13
+ export { detectConfigImportPackage, renderConfigFileContent };
17
14
  //# sourceMappingURL=config-rendering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-rendering.d.ts","names":[],"sources":["../src/config-rendering.ts"],"mappings":";;;;AA6BA;;;;iBAAgB,yBAAA,CAA0B,YAAA;AAa1C;;;;AAAA,iBAAgB,0BAAA,CAA2B,GAAA"}
1
+ {"version":3,"file":"config-rendering.d.ts","names":[],"sources":["../src/config-rendering.ts"],"mappings":";;AA4BA;;;;iBAAgB,yBAAA,CAA0B,YAAA;AAY1C;;;AAAA,iBAAgB,uBAAA,CAAwB,MAAA,WAAiB,aAAA"}