@hexclave/shared 1.0.42 → 1.0.44

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 (41) hide show
  1. package/dist/{admin-interface-Y9EZqwD6.d.ts → admin-interface-BSW1mzGs.d.ts} +3 -3
  2. package/dist/{admin-interface-Y9EZqwD6.d.ts.map → admin-interface-BSW1mzGs.d.ts.map} +1 -1
  3. package/dist/ai/unified-prompts/reminders.js +3 -1
  4. package/dist/ai/unified-prompts/reminders.js.map +1 -1
  5. package/dist/config/schema-fuzzer.test.js +0 -4
  6. package/dist/config/schema-fuzzer.test.js.map +1 -1
  7. package/dist/config/schema.d.ts +1 -1
  8. package/dist/config/schema.js +9 -8
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/config-authoring.d.ts +1 -1
  11. package/dist/esm/ai/unified-prompts/reminders.js +2 -1
  12. package/dist/esm/ai/unified-prompts/reminders.js.map +1 -1
  13. package/dist/esm/config/schema-fuzzer.test.js +0 -4
  14. package/dist/esm/config/schema-fuzzer.test.js.map +1 -1
  15. package/dist/esm/config/schema.d.ts +46 -85
  16. package/dist/esm/config/schema.d.ts.map +1 -1
  17. package/dist/esm/config/schema.js +9 -8
  18. package/dist/esm/config/schema.js.map +1 -1
  19. package/dist/esm/interface/admin-interface.js +1 -1
  20. package/dist/esm/interface/client-interface.js +1 -1
  21. package/dist/esm/interface/conversations.d.ts +21 -21
  22. package/dist/esm/interface/plan-usage.d.ts +1 -1
  23. package/dist/esm/interface/server-interface.js +1 -1
  24. package/dist/esm/utils/promises.js +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/interface/admin-interface.d.ts +2 -2
  27. package/dist/interface/admin-interface.js +1 -1
  28. package/dist/interface/client-interface.js +1 -1
  29. package/dist/interface/conversations.d.ts +21 -21
  30. package/dist/interface/plan-usage.d.ts +1 -1
  31. package/dist/interface/server-interface.js +1 -1
  32. package/dist/{plan-usage-DfDoj5K4.d.ts → plan-usage-ChUZqQWw.d.ts} +2 -2
  33. package/dist/{plan-usage-DfDoj5K4.d.ts.map → plan-usage-ChUZqQWw.d.ts.map} +1 -1
  34. package/dist/{schema-CJwkGkdf.d.ts → schema-DIefUvKi.d.ts} +47 -86
  35. package/dist/schema-DIefUvKi.d.ts.map +1 -0
  36. package/dist/utils/promises.js +1 -1
  37. package/package.json +1 -1
  38. package/src/ai/unified-prompts/reminders.ts +1 -0
  39. package/src/config/schema-fuzzer.test.ts +11 -11
  40. package/src/config/schema.ts +35 -14
  41. package/dist/schema-CJwkGkdf.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schema-fuzzer.test.js","names":[],"sources":["../../../src/config/schema-fuzzer.test.ts"],"sourcesContent":["import { ALL_APPS } from \"../apps/apps-config\";\nimport { SUPPORTED_CURRENCIES } from \"../utils/currency-constants\";\nimport { HexclaveAssertionError } from \"../utils/errors\";\nimport { getOrUndefined, isObjectLike, set, typedEntries, typedFromEntries } from \"../utils/objects\";\nimport { nicify } from \"../utils/strings\";\nimport { normalize, override } from \"./format\";\nimport { BranchConfigNormalizedOverride, EnvironmentConfigNormalizedOverride, OrganizationConfigNormalizedOverride, ProjectConfigNormalizedOverride, applyBranchDefaults, applyEnvironmentDefaults, applyOrganizationDefaults, applyProjectDefaults, assertNoConfigOverrideErrors, branchConfigSchema, environmentConfigSchema, migrateConfigOverride, organizationConfigSchema, projectConfigSchema, sanitizeBranchConfig, sanitizeEnvironmentConfig, sanitizeOrganizationConfig, sanitizeProjectConfig } from \"./schema\";\n\ntype FuzzerConfig<T> = ReadonlyArray<T extends object ? ([T] extends [any[]] ? { readonly [K in keyof T]: FuzzerConfig<T[K]> } : Required<{\n [K in keyof T]: FuzzerConfig<T[K]>;\n}> & Record<string, FuzzerConfig<any>>) : T>;\n\nconst projectSchemaFuzzerConfig = [{\n sourceOfTruth: [{\n type: [\"hosted\"],\n }],\n project: [{\n requirePublishableClientKey: [true, false],\n }],\n}] satisfies FuzzerConfig<ProjectConfigNormalizedOverride>;\n\nconst branchSchemaFuzzerConfig = [{\n apiKeys: [{\n enabled: [{\n team: [true, false],\n user: [true, false],\n }],\n }],\n auth: [{\n allowSignUp: [true, false],\n password: [{\n allowSignIn: [true, false],\n }],\n otp: [{\n allowSignIn: [true, false],\n }],\n passkey: [{\n allowSignIn: [true, false],\n }],\n oauth: [{\n accountMergeStrategy: [\"link_method\", \"raise_error\", \"allow_duplicates\"],\n providers: [{\n \"google\": [{\n type: [\"google\", \"github\", \"x\"] as const,\n allowSignIn: [true, false],\n allowConnectedAccounts: [true, false],\n }],\n }],\n }],\n signUpRules: [{\n \"some-rule-id\": [{\n enabled: [true, false],\n displayName: [\"Block Test Emails\", \"Allow Only Company Domain\"],\n priority: [0, 1, 100],\n condition: ['email.endsWith(\"@test.com\")', 'emailDomain == \"company.com\"'],\n action: [{\n type: [\"allow\", \"reject\", \"restrict\", \"log\"] as const,\n message: [\"\", \"Sign up is not allowed for this email\"],\n }],\n }],\n }],\n signUpRulesDefaultAction: [\"allow\", \"reject\"],\n }],\n dbSync: [{\n externalDatabases: [{\n \"some-external-db-id\": [{\n type: [\"postgres\"] as const,\n connectionString: [\n \"postgres://user:password@host:port/database\",\n \"some-connection-string\",\n ],\n }],\n }],\n }],\n dataVault: [{\n stores: [{\n \"some-store-id\": [{\n displayName: [\"Some Store\", \"Some Other Store\"],\n }],\n \"some-other-store-id\": [{\n displayName: [\"Some Store\", \"Some Other Store\"],\n }],\n }],\n }],\n payments: [{\n blockNewPurchases: [false, true],\n autoPay: [{\n interval: [[[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n }],\n productLines: [{\n \"some-product-line-id\": [{\n displayName: [\"Some Product Line\", \"Some Other Product Line\"],\n customerType: [\"user\", \"team\", \"custom\"] as const,\n }],\n }],\n catalogs: [{ // ensure migration works\n \"some-product-line-id\": [{\n displayName: [\"Some Product Line\", \"Some Other Product Line\"],\n }],\n }],\n groups: [{ // ensure migration works\n \"some-product-line-id\": [{\n displayName: [\"Some Product Line\", \"Some Other Product Line\"],\n }],\n }],\n items: [{\n \"some-item-id\": [{\n customerType: [\"user\", \"team\", \"custom\"] as const,\n displayName: [\"Some Item\", \"Some Other Item\"],\n }],\n }],\n products: [{\n \"some-product-id\": [{\n displayName: [\"Some Product\", \"Some Other Product\"],\n customerType: [\"user\", \"team\", \"custom\"] as const,\n freeTrial: [[[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n serverOnly: [true, false],\n stackable: [true, false],\n productLineId: [\"some-product-line-id\", \"some-other-product-line-id\"],\n catalogId: [\"some-product-line-id\", \"some-other-product-line-id\"], // ensure migration works\n groupId: [\"some-product-line-id\", \"some-other-product-line-id\"], // ensure migration works\n isAddOnTo: [false, { \"some-product-id\": [true], \"some-other-product-id\": [true] }] as const,\n prices: [{\n \"some-price-id\": [{\n ...typedFromEntries(SUPPORTED_CURRENCIES.map(currency => [currency.code, [\"100_00\", \"not a number\", \"Infinity\", \"0\"]])),\n interval: [[[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n serverOnly: [true, false],\n freeTrial: [[[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n }],\n }],\n includedItems: [{\n \"some-item-id\": [{\n quantity: [0, 1, -3, 100, 0.333, Infinity],\n repeat: [\"never\", [[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n expires: [\"never\", \"when-purchase-expires\", \"when-repeated\"] as const,\n }],\n }],\n }],\n }],\n }],\n emails: [{\n themes: [{\n \"12345678-1234-4234-9234-123456789012\": [{\n displayName: [\"Some Theme\", \"Some Other Theme\"],\n tsxSource: [\"\", \"some typescript source code\"],\n }],\n }],\n selectedThemeId: [\"some-theme-id\", \"some-other-theme-id\"],\n templates: [{\n \"12345678-1234-4234-9234-123456789012\": [{\n themeId: [\"some-theme-id\", \"some-other-theme-id\"],\n displayName: [\"Some Template\", \"Some Other Template\"],\n tsxSource: [\"\", \"some typescript source code\"],\n }],\n }],\n }],\n teams: [{\n createPersonalTeamOnSignUp: [true, false],\n allowClientTeamCreation: [true, false],\n }],\n users: [{\n allowClientUserDeletion: [true, false],\n }],\n rbac: [{\n permissions: [{\n \"some_permission_id\": [{\n containedPermissionIds: [{\n \"some_permission_id\": [true],\n \"$some_other_permission_id\": [true],\n }] as const,\n description: [\"Some Permission\", \"Some Other Permission\"],\n scope: [\"team\", \"project\"] as const,\n }],\n }],\n defaultPermissions: [{\n teamCreator: [{\n \"some_permission_id\": [true],\n \"$some_other_permission_id\": [true],\n }] as const,\n teamMember: [{\n \"some_permission_id\": [true],\n \"$some_other_permission_id\": [true],\n }] as const,\n signUp: [{\n \"some_permission_id\": [true],\n \"$some_other_permission_id\": [true],\n }] as const,\n }],\n }],\n domains: [{}],\n apps: [{\n installed: [typedFromEntries(typedEntries(ALL_APPS).map(([key, value]) => [key, [{\n enabled: [true, false],\n }]]))],\n }],\n onboarding: [{\n requireEmailVerification: [true, false],\n }],\n}] satisfies FuzzerConfig<BranchConfigNormalizedOverride>;\n\nconst environmentSchemaFuzzerConfig = [{\n ...branchSchemaFuzzerConfig[0],\n auth: [{\n ...branchSchemaFuzzerConfig[0].auth[0],\n oauth: [{\n ...branchSchemaFuzzerConfig[0].auth[0].oauth[0],\n providers: [typedFromEntries(typedEntries(branchSchemaFuzzerConfig[0].auth[0].oauth[0].providers[0]).map(([key, value]) => [key, [{\n ...value[0],\n isShared: [true, false],\n clientId: [\"some-client-id\"],\n clientSecret: [\"some-client-secret\"],\n // Kept undefined: the schema forbids customCallbackUrl when isShared is\n // true, and the fuzzer randomizes each field independently so it cannot\n // honor that coupling. The accept path is covered by an e2e test.\n customCallbackUrl: [undefined] as (string | undefined)[],\n facebookConfigId: [\"some-facebook-config-id\"],\n microsoftTenantId: [\"some-microsoft-tenant-id\"],\n appleBundles: [{ \"some-bundle-id\": [{ bundleId: [\"com.example.app\"] }] }],\n issuerUrl: [undefined, \"https://accounts.google.com\"] as (string | undefined)[],\n scope: [undefined, \"openid email profile\"] as (string | undefined)[],\n displayName: [undefined, \"My OIDC Provider\"] as (string | undefined)[],\n }]]))] as const,\n }],\n }],\n domains: [{\n allowLocalhost: [true, false],\n trustedDomains: [{\n \"some-domain-id\": [{\n baseUrl: [\"https://example.com/something-here\"],\n handlerPath: [\"/something-here\"],\n }],\n }],\n }],\n emails: [{\n ...branchSchemaFuzzerConfig[0].emails[0],\n server: [{\n isShared: [true, false],\n provider: [\"resend\", \"smtp\", \"managed\"] as const,\n host: [\"example.com\", \"://super weird host that's not valid\"],\n port: [1234, 0.12543, -100, Infinity],\n username: [\"some-username\", \"some username with a space\"],\n password: [\"some-password\", \"some password with a space\"],\n senderName: [\"Some Sender\"],\n senderEmail: [\"some-sender@example.com\", \"some invalid email\"],\n managedSubdomain: [\"mail.example.com\", \"invalid subdomain\"],\n managedSenderLocalPart: [\"noreply\", \"some invalid local part\"],\n }],\n }],\n payments: [{\n ...branchSchemaFuzzerConfig[0].payments[0],\n testMode: [false, true],\n }],\n analytics: [{\n queryFolders: [{\n \"some-folder-id\": [{\n displayName: [\"Some Folder\", \"Some Other Folder\"],\n sortOrder: [0, 1, 10, -5],\n queries: [{\n \"some-query-id\": [{\n displayName: [\"Some Query\", \"Some Other Query\"],\n sqlQuery: [\"\", \"SELECT * FROM events\", \"SELECT * FROM users\"],\n description: [\"\", \"A query description\", \"Another description\"],\n }],\n }],\n }],\n }],\n }],\n customDashboards: [{\n \"12345678-1234-4234-9234-123456789012\": [{\n displayName: [\"My Dashboard\", \"User Growth Dashboard\"],\n tsxSource: [\"\", \"function Dashboard() { return <div>Hello</div>; }\"],\n }],\n }],\n}] satisfies FuzzerConfig<EnvironmentConfigNormalizedOverride>;\n\nconst organizationSchemaFuzzerConfig = environmentSchemaFuzzerConfig satisfies FuzzerConfig<OrganizationConfigNormalizedOverride>;\n\nfunction setDeep<T>(obj: T, path: string[], value: any) {\n if (!isObjectLike(obj)) return obj;\n\n if (path.length === 0) {\n throw new Error(\"Path is empty\");\n } else if (path.length === 1) {\n set(obj as any, path[0], value);\n } else {\n const [key, ...rest] = path;\n setDeep(getOrUndefined(obj as any, key), rest, value);\n }\n}\n\nfunction createFuzzerInput<T>(config: FuzzerConfig<T>, progress: number): T {\n progress = Math.min(1, 2 * progress);\n const createShouldRandom = (strength: number) => {\n const chance = Math.random() * strength * 1.2 - 0.1;\n return () => Math.random() < chance;\n };\n const createShouldObjectDependent = (strength: number) => {\n const objectChance = Math.random() * strength * 1.2 - 0.1;\n const primitiveChance = Math.random() * strength * 1.2 - 0.1;\n return (v: any) => Math.random() * Math.random() < (isObjectLike(v) ? objectChance : primitiveChance);\n };\n\n const shouldKeep = createShouldObjectDependent(progress * 1);\n const shouldMakeNested = createShouldObjectDependent(1.25);\n const shouldNull = createShouldRandom(0.25);\n\n let res: any;\n const recurse = <U>(outputPath: string[], config: FuzzerConfig<U>, forceNested: boolean, forceNonNull: boolean) => {\n let subConfig: any = config[Math.floor(Math.random() * config.length)];\n const originalValue = isObjectLike(subConfig) ? (Array.isArray(subConfig) ? [] : {}) : subConfig;\n\n const newValue = forceNonNull || !shouldNull() ? originalValue : null;\n const newOutputPath = forceNested || shouldMakeNested(originalValue) || outputPath.length === 0 ? outputPath : [outputPath.join(\".\")];\n if (outputPath.length === 0) {\n res = newValue;\n } else {\n if (forceNested || shouldKeep(originalValue)) {\n setDeep(res, newOutputPath, newValue);\n }\n }\n if (isObjectLike(subConfig)) {\n for (const [key, newValue] of typedEntries(subConfig)) {\n recurse([...newOutputPath, key], newValue, Array.isArray(subConfig), Array.isArray(subConfig));\n }\n }\n };\n recurse<T>([], config, false, true);\n return res;\n}\n\nimport.meta.vitest?.test(\"fuzz schemas\", async ({ expect }) => {\n const totalIterations = process.env.CI ? 1000 : 200;\n for (let i = 0; i < totalIterations; i++) {\n const projectInput = createFuzzerInput<ProjectConfigNormalizedOverride>(projectSchemaFuzzerConfig, i / totalIterations);\n const branchInput = createFuzzerInput<BranchConfigNormalizedOverride>(branchSchemaFuzzerConfig, i / totalIterations);\n const environmentInput = createFuzzerInput<EnvironmentConfigNormalizedOverride>(environmentSchemaFuzzerConfig, i / totalIterations);\n const organizationInput = createFuzzerInput<OrganizationConfigNormalizedOverride>(organizationSchemaFuzzerConfig, i / totalIterations);\n\n try {\n const projectMigrated = migrateConfigOverride(\"project\", projectInput);\n await assertNoConfigOverrideErrors(projectConfigSchema, projectMigrated);\n const projectOverridden = override({}, projectMigrated);\n await sanitizeProjectConfig(normalize(applyProjectDefaults(projectOverridden), { onDotIntoNonObject: \"ignore\" }) as any);\n\n const branchMigrated = migrateConfigOverride(\"branch\", branchInput);\n await assertNoConfigOverrideErrors(branchConfigSchema, branchMigrated);\n const branchOverridden = override(projectOverridden, branchMigrated);\n await sanitizeBranchConfig(normalize(applyBranchDefaults(branchOverridden), { onDotIntoNonObject: \"ignore\" }) as any);\n\n const environmentMigrated = migrateConfigOverride(\"environment\", environmentInput);\n await assertNoConfigOverrideErrors(environmentConfigSchema, environmentMigrated);\n const environmentOverridden = override(branchOverridden, environmentMigrated);\n await sanitizeEnvironmentConfig(normalize(applyEnvironmentDefaults(environmentOverridden), { onDotIntoNonObject: \"ignore\" }) as any);\n\n const organizationMigrated = migrateConfigOverride(\"organization\", organizationInput);\n await assertNoConfigOverrideErrors(organizationConfigSchema, organizationMigrated);\n const organizationOverridden = override(environmentOverridden, organizationMigrated);\n await sanitizeOrganizationConfig(normalize(applyOrganizationDefaults(organizationOverridden), { onDotIntoNonObject: \"ignore\" }) as any);\n\n } catch (e) {\n const data = {\n cause: e,\n inputs: {\n projectInput,\n branchInput,\n environmentInput,\n organizationInput,\n },\n } as const;\n console.error(\"Failed to fuzz schema in iteration ${i}/${totalIterations}!\", nicify(data));\n throw new HexclaveAssertionError(`Error in iteration ${i}/${totalIterations} of schema fuzz: ${e}`, { cause: e });\n }\n }\n});\n\nimport.meta.vitest?.test(\"rejects include-by-default product prices in config overrides\", async ({ expect }) => {\n await expect(assertNoConfigOverrideErrors(branchConfigSchema, {\n \"payments.products.free.prices\": \"include-by-default\",\n })).rejects.toThrow(/payments\\.products\\.free\\.prices must not be one of the following values: include-by-default/);\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"schema-fuzzer.test.js","names":[],"sources":["../../../src/config/schema-fuzzer.test.ts"],"sourcesContent":["import { ALL_APPS } from \"../apps/apps-config\";\nimport { SUPPORTED_CURRENCIES } from \"../utils/currency-constants\";\nimport { HexclaveAssertionError } from \"../utils/errors\";\nimport { getOrUndefined, isObjectLike, set, typedEntries, typedFromEntries } from \"../utils/objects\";\nimport { nicify } from \"../utils/strings\";\nimport { normalize, override } from \"./format\";\nimport { BranchConfigNormalizedOverride, EnvironmentConfigNormalizedOverride, OrganizationConfigNormalizedOverride, ProjectConfigNormalizedOverride, applyBranchDefaults, applyEnvironmentDefaults, applyOrganizationDefaults, applyProjectDefaults, assertNoConfigOverrideErrors, branchConfigSchema, environmentConfigSchema, migrateConfigOverride, organizationConfigSchema, projectConfigSchema, sanitizeBranchConfig, sanitizeEnvironmentConfig, sanitizeOrganizationConfig, sanitizeProjectConfig } from \"./schema\";\n\ntype FuzzerConfig<T> = ReadonlyArray<T extends object ? ([T] extends [any[]] ? { readonly [K in keyof T]: FuzzerConfig<T[K]> } : Required<{\n [K in keyof T]: FuzzerConfig<T[K]>;\n}> & Record<string, FuzzerConfig<any>>) : T>;\n\nconst projectSchemaFuzzerConfig = [{\n sourceOfTruth: [{\n type: [\"hosted\"],\n }],\n project: [{\n requirePublishableClientKey: [true, false],\n }],\n}] satisfies FuzzerConfig<ProjectConfigNormalizedOverride>;\n\nconst branchSchemaFuzzerConfig = [{\n apiKeys: [{\n enabled: [{\n team: [true, false],\n user: [true, false],\n }],\n }],\n auth: [{\n allowSignUp: [true, false],\n password: [{\n allowSignIn: [true, false],\n }],\n otp: [{\n allowSignIn: [true, false],\n }],\n passkey: [{\n allowSignIn: [true, false],\n }],\n oauth: [{\n accountMergeStrategy: [\"link_method\", \"raise_error\", \"allow_duplicates\"],\n providers: [{\n \"google\": [{\n type: [\"google\", \"github\", \"x\"] as const,\n allowSignIn: [true, false],\n allowConnectedAccounts: [true, false],\n }],\n }],\n }],\n signUpRules: [{\n \"some-rule-id\": [{\n enabled: [true, false],\n displayName: [\"Block Test Emails\", \"Allow Only Company Domain\"],\n priority: [0, 1, 100],\n condition: ['email.endsWith(\"@test.com\")', 'emailDomain == \"company.com\"'],\n action: [{\n type: [\"allow\", \"reject\", \"restrict\", \"log\"] as const,\n message: [\"\", \"Sign up is not allowed for this email\"],\n }],\n }],\n }],\n signUpRulesDefaultAction: [\"allow\", \"reject\"],\n }],\n dataVault: [{\n stores: [{\n \"some-store-id\": [{\n displayName: [\"Some Store\", \"Some Other Store\"],\n }],\n \"some-other-store-id\": [{\n displayName: [\"Some Store\", \"Some Other Store\"],\n }],\n }],\n }],\n payments: [{\n blockNewPurchases: [false, true],\n autoPay: [{\n interval: [[[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n }],\n productLines: [{\n \"some-product-line-id\": [{\n displayName: [\"Some Product Line\", \"Some Other Product Line\"],\n customerType: [\"user\", \"team\", \"custom\"] as const,\n }],\n }],\n catalogs: [{ // ensure migration works\n \"some-product-line-id\": [{\n displayName: [\"Some Product Line\", \"Some Other Product Line\"],\n }],\n }],\n groups: [{ // ensure migration works\n \"some-product-line-id\": [{\n displayName: [\"Some Product Line\", \"Some Other Product Line\"],\n }],\n }],\n items: [{\n \"some-item-id\": [{\n customerType: [\"user\", \"team\", \"custom\"] as const,\n displayName: [\"Some Item\", \"Some Other Item\"],\n }],\n }],\n products: [{\n \"some-product-id\": [{\n displayName: [\"Some Product\", \"Some Other Product\"],\n customerType: [\"user\", \"team\", \"custom\"] as const,\n freeTrial: [[[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n serverOnly: [true, false],\n stackable: [true, false],\n productLineId: [\"some-product-line-id\", \"some-other-product-line-id\"],\n catalogId: [\"some-product-line-id\", \"some-other-product-line-id\"], // ensure migration works\n groupId: [\"some-product-line-id\", \"some-other-product-line-id\"], // ensure migration works\n isAddOnTo: [false, { \"some-product-id\": [true], \"some-other-product-id\": [true] }] as const,\n prices: [{\n \"some-price-id\": [{\n ...typedFromEntries(SUPPORTED_CURRENCIES.map(currency => [currency.code, [\"100_00\", \"not a number\", \"Infinity\", \"0\"]])),\n interval: [[[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n serverOnly: [true, false],\n freeTrial: [[[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n }],\n }],\n includedItems: [{\n \"some-item-id\": [{\n quantity: [0, 1, -3, 100, 0.333, Infinity],\n repeat: [\"never\", [[0, 1, -3, 100, 0.333, Infinity], [\"day\", \"week\", \"month\", \"year\"]]] as const,\n expires: [\"never\", \"when-purchase-expires\", \"when-repeated\"] as const,\n }],\n }],\n }],\n }],\n }],\n emails: [{\n themes: [{\n \"12345678-1234-4234-9234-123456789012\": [{\n displayName: [\"Some Theme\", \"Some Other Theme\"],\n tsxSource: [\"\", \"some typescript source code\"],\n }],\n }],\n selectedThemeId: [\"some-theme-id\", \"some-other-theme-id\"],\n templates: [{\n \"12345678-1234-4234-9234-123456789012\": [{\n themeId: [\"some-theme-id\", \"some-other-theme-id\"],\n displayName: [\"Some Template\", \"Some Other Template\"],\n tsxSource: [\"\", \"some typescript source code\"],\n }],\n }],\n }],\n teams: [{\n createPersonalTeamOnSignUp: [true, false],\n allowClientTeamCreation: [true, false],\n }],\n users: [{\n allowClientUserDeletion: [true, false],\n }],\n rbac: [{\n permissions: [{\n \"some_permission_id\": [{\n containedPermissionIds: [{\n \"some_permission_id\": [true],\n \"$some_other_permission_id\": [true],\n }] as const,\n description: [\"Some Permission\", \"Some Other Permission\"],\n scope: [\"team\", \"project\"] as const,\n }],\n }],\n defaultPermissions: [{\n teamCreator: [{\n \"some_permission_id\": [true],\n \"$some_other_permission_id\": [true],\n }] as const,\n teamMember: [{\n \"some_permission_id\": [true],\n \"$some_other_permission_id\": [true],\n }] as const,\n signUp: [{\n \"some_permission_id\": [true],\n \"$some_other_permission_id\": [true],\n }] as const,\n }],\n }],\n domains: [{}],\n apps: [{\n installed: [typedFromEntries(typedEntries(ALL_APPS).map(([key, value]) => [key, [{\n enabled: [true, false],\n }]]))],\n }],\n onboarding: [{\n requireEmailVerification: [true, false],\n }],\n}] satisfies FuzzerConfig<BranchConfigNormalizedOverride>;\n\nconst environmentSchemaFuzzerConfig = [{\n ...branchSchemaFuzzerConfig[0],\n auth: [{\n ...branchSchemaFuzzerConfig[0].auth[0],\n oauth: [{\n ...branchSchemaFuzzerConfig[0].auth[0].oauth[0],\n providers: [typedFromEntries(typedEntries(branchSchemaFuzzerConfig[0].auth[0].oauth[0].providers[0]).map(([key, value]) => [key, [{\n ...value[0],\n isShared: [true, false],\n clientId: [\"some-client-id\"],\n clientSecret: [\"some-client-secret\"],\n // Kept undefined: the schema forbids customCallbackUrl when isShared is\n // true, and the fuzzer randomizes each field independently so it cannot\n // honor that coupling. The accept path is covered by an e2e test.\n customCallbackUrl: [undefined] as (string | undefined)[],\n facebookConfigId: [\"some-facebook-config-id\"],\n microsoftTenantId: [\"some-microsoft-tenant-id\"],\n appleBundles: [{ \"some-bundle-id\": [{ bundleId: [\"com.example.app\"] }] }],\n issuerUrl: [undefined, \"https://accounts.google.com\"] as (string | undefined)[],\n scope: [undefined, \"openid email profile\"] as (string | undefined)[],\n displayName: [undefined, \"My OIDC Provider\"] as (string | undefined)[],\n }]]))] as const,\n }],\n }],\n domains: [{\n allowLocalhost: [true, false],\n trustedDomains: [{\n \"some-domain-id\": [{\n baseUrl: [\"https://example.com/something-here\"],\n handlerPath: [\"/something-here\"],\n }],\n }],\n }],\n emails: [{\n ...branchSchemaFuzzerConfig[0].emails[0],\n server: [{\n isShared: [true, false],\n provider: [\"resend\", \"smtp\", \"managed\"] as const,\n host: [\"example.com\", \"://super weird host that's not valid\"],\n port: [1234, 0.12543, -100, Infinity],\n username: [\"some-username\", \"some username with a space\"],\n password: [\"some-password\", \"some password with a space\"],\n senderName: [\"Some Sender\"],\n senderEmail: [\"some-sender@example.com\", \"some invalid email\"],\n managedSubdomain: [\"mail.example.com\", \"invalid subdomain\"],\n managedSenderLocalPart: [\"noreply\", \"some invalid local part\"],\n }],\n }],\n payments: [{\n ...branchSchemaFuzzerConfig[0].payments[0],\n testMode: [false, true],\n }],\n dbSync: [{\n externalDatabases: [{\n \"some-external-db-id\": [{\n type: [\"postgres\"] as const,\n connectionString: [\n \"postgres://user:password@db.example.com:5432/database\",\n \"postgresql://user:password@db.example.net/database\",\n ],\n }],\n }],\n }],\n analytics: [{\n queryFolders: [{\n \"some-folder-id\": [{\n displayName: [\"Some Folder\", \"Some Other Folder\"],\n sortOrder: [0, 1, 10, -5],\n queries: [{\n \"some-query-id\": [{\n displayName: [\"Some Query\", \"Some Other Query\"],\n sqlQuery: [\"\", \"SELECT * FROM events\", \"SELECT * FROM users\"],\n description: [\"\", \"A query description\", \"Another description\"],\n }],\n }],\n }],\n }],\n }],\n customDashboards: [{\n \"12345678-1234-4234-9234-123456789012\": [{\n displayName: [\"My Dashboard\", \"User Growth Dashboard\"],\n tsxSource: [\"\", \"function Dashboard() { return <div>Hello</div>; }\"],\n }],\n }],\n}] satisfies FuzzerConfig<EnvironmentConfigNormalizedOverride>;\n\nconst organizationSchemaFuzzerConfig = environmentSchemaFuzzerConfig satisfies FuzzerConfig<OrganizationConfigNormalizedOverride>;\n\nfunction setDeep<T>(obj: T, path: string[], value: any) {\n if (!isObjectLike(obj)) return obj;\n\n if (path.length === 0) {\n throw new Error(\"Path is empty\");\n } else if (path.length === 1) {\n set(obj as any, path[0], value);\n } else {\n const [key, ...rest] = path;\n setDeep(getOrUndefined(obj as any, key), rest, value);\n }\n}\n\nfunction createFuzzerInput<T>(config: FuzzerConfig<T>, progress: number): T {\n progress = Math.min(1, 2 * progress);\n const createShouldRandom = (strength: number) => {\n const chance = Math.random() * strength * 1.2 - 0.1;\n return () => Math.random() < chance;\n };\n const createShouldObjectDependent = (strength: number) => {\n const objectChance = Math.random() * strength * 1.2 - 0.1;\n const primitiveChance = Math.random() * strength * 1.2 - 0.1;\n return (v: any) => Math.random() * Math.random() < (isObjectLike(v) ? objectChance : primitiveChance);\n };\n\n const shouldKeep = createShouldObjectDependent(progress * 1);\n const shouldMakeNested = createShouldObjectDependent(1.25);\n const shouldNull = createShouldRandom(0.25);\n\n let res: any;\n const recurse = <U>(outputPath: string[], config: FuzzerConfig<U>, forceNested: boolean, forceNonNull: boolean) => {\n let subConfig: any = config[Math.floor(Math.random() * config.length)];\n const originalValue = isObjectLike(subConfig) ? (Array.isArray(subConfig) ? [] : {}) : subConfig;\n\n const newValue = forceNonNull || !shouldNull() ? originalValue : null;\n const newOutputPath = forceNested || shouldMakeNested(originalValue) || outputPath.length === 0 ? outputPath : [outputPath.join(\".\")];\n if (outputPath.length === 0) {\n res = newValue;\n } else {\n if (forceNested || shouldKeep(originalValue)) {\n setDeep(res, newOutputPath, newValue);\n }\n }\n if (isObjectLike(subConfig)) {\n for (const [key, newValue] of typedEntries(subConfig)) {\n recurse([...newOutputPath, key], newValue, Array.isArray(subConfig), Array.isArray(subConfig));\n }\n }\n };\n recurse<T>([], config, false, true);\n return res;\n}\n\nimport.meta.vitest?.test(\"fuzz schemas\", async ({ expect }) => {\n const totalIterations = process.env.CI ? 1000 : 200;\n for (let i = 0; i < totalIterations; i++) {\n const projectInput = createFuzzerInput<ProjectConfigNormalizedOverride>(projectSchemaFuzzerConfig, i / totalIterations);\n const branchInput = createFuzzerInput<BranchConfigNormalizedOverride>(branchSchemaFuzzerConfig, i / totalIterations);\n const environmentInput = createFuzzerInput<EnvironmentConfigNormalizedOverride>(environmentSchemaFuzzerConfig, i / totalIterations);\n const organizationInput = createFuzzerInput<OrganizationConfigNormalizedOverride>(organizationSchemaFuzzerConfig, i / totalIterations);\n\n try {\n const projectMigrated = migrateConfigOverride(\"project\", projectInput);\n await assertNoConfigOverrideErrors(projectConfigSchema, projectMigrated);\n const projectOverridden = override({}, projectMigrated);\n await sanitizeProjectConfig(normalize(applyProjectDefaults(projectOverridden), { onDotIntoNonObject: \"ignore\" }) as any);\n\n const branchMigrated = migrateConfigOverride(\"branch\", branchInput);\n await assertNoConfigOverrideErrors(branchConfigSchema, branchMigrated);\n const branchOverridden = override(projectOverridden, branchMigrated);\n await sanitizeBranchConfig(normalize(applyBranchDefaults(branchOverridden), { onDotIntoNonObject: \"ignore\" }) as any);\n\n const environmentMigrated = migrateConfigOverride(\"environment\", environmentInput);\n await assertNoConfigOverrideErrors(environmentConfigSchema, environmentMigrated);\n const environmentOverridden = override(branchOverridden, environmentMigrated);\n await sanitizeEnvironmentConfig(normalize(applyEnvironmentDefaults(environmentOverridden), { onDotIntoNonObject: \"ignore\" }) as any);\n\n const organizationMigrated = migrateConfigOverride(\"organization\", organizationInput);\n await assertNoConfigOverrideErrors(organizationConfigSchema, organizationMigrated);\n const organizationOverridden = override(environmentOverridden, organizationMigrated);\n await sanitizeOrganizationConfig(normalize(applyOrganizationDefaults(organizationOverridden), { onDotIntoNonObject: \"ignore\" }) as any);\n\n } catch (e) {\n const data = {\n cause: e,\n inputs: {\n projectInput,\n branchInput,\n environmentInput,\n organizationInput,\n },\n } as const;\n console.error(\"Failed to fuzz schema in iteration ${i}/${totalIterations}!\", nicify(data));\n throw new HexclaveAssertionError(`Error in iteration ${i}/${totalIterations} of schema fuzz: ${e}`, { cause: e });\n }\n }\n});\n\nimport.meta.vitest?.test(\"rejects include-by-default product prices in config overrides\", async ({ expect }) => {\n await expect(assertNoConfigOverrideErrors(branchConfigSchema, {\n \"payments.products.free.prices\": \"include-by-default\",\n })).rejects.toThrow(/payments\\.products\\.free\\.prices must not be one of the following values: include-by-default/);\n});\n"],"mappings":";;;;;;;;AAqBA,MAAM,2BAA2B,CAAC;CAChC,SAAS,CAAC,EACR,SAAS,CAAC;EACR,MAAM,CAAC,MAAM,KAAK;EAClB,MAAM,CAAC,MAAM,KAAK;CACpB,CAAC,EACH,CAAC;CACD,MAAM,CAAC;EACL,aAAa,CAAC,MAAM,KAAK;EACzB,UAAU,CAAC,EACT,aAAa,CAAC,MAAM,KAAK,EAC3B,CAAC;EACD,KAAK,CAAC,EACJ,aAAa,CAAC,MAAM,KAAK,EAC3B,CAAC;EACD,SAAS,CAAC,EACR,aAAa,CAAC,MAAM,KAAK,EAC3B,CAAC;EACD,OAAO,CAAC;GACN,sBAAsB;IAAC;IAAe;IAAe;GAAkB;GACvE,WAAW,CAAC,EACV,UAAU,CAAC;IACT,MAAM;KAAC;KAAU;KAAU;IAAG;IAC9B,aAAa,CAAC,MAAM,KAAK;IACzB,wBAAwB,CAAC,MAAM,KAAK;GACtC,CAAC,EACH,CAAC;EACH,CAAC;EACD,aAAa,CAAC,EACZ,gBAAgB,CAAC;GACf,SAAS,CAAC,MAAM,KAAK;GACrB,aAAa,CAAC,qBAAqB,2BAA2B;GAC9D,UAAU;IAAC;IAAG;IAAG;GAAG;GACpB,WAAW,CAAC,iCAA+B,gCAA8B;GACzE,QAAQ,CAAC;IACP,MAAM;KAAC;KAAS;KAAU;KAAY;IAAK;IAC3C,SAAS,CAAC,IAAI,uCAAuC;GACvD,CAAC;EACH,CAAC,EACH,CAAC;EACD,0BAA0B,CAAC,SAAS,QAAQ;CAC9C,CAAC;CACD,WAAW,CAAC,EACV,QAAQ,CAAC;EACP,iBAAiB,CAAC,EAChB,aAAa,CAAC,cAAc,kBAAkB,EAChD,CAAC;EACD,uBAAuB,CAAC,EACtB,aAAa,CAAC,cAAc,kBAAkB,EAChD,CAAC;CACH,CAAC,EACH,CAAC;CACD,UAAU,CAAC;EACT,mBAAmB,CAAC,OAAO,IAAI;EAC/B,SAAS,CAAC,EACR,UAAU,CAAC,CAAC;GAAC;GAAG;GAAG;GAAI;GAAK;GAAO;EAAQ,GAAG;GAAC;GAAO;GAAQ;GAAS;EAAM,CAAC,CAAC,EACjF,CAAC;EACD,cAAc,CAAC,EACb,wBAAwB,CAAC;GACvB,aAAa,CAAC,qBAAqB,yBAAyB;GAC5D,cAAc;IAAC;IAAQ;IAAQ;GAAQ;EACzC,CAAC,EACH,CAAC;EACD,UAAU,CAAC,EACT,wBAAwB,CAAC,EACvB,aAAa,CAAC,qBAAqB,yBAAyB,EAC9D,CAAC,EACH,CAAC;EACD,QAAQ,CAAC,EACP,wBAAwB,CAAC,EACvB,aAAa,CAAC,qBAAqB,yBAAyB,EAC9D,CAAC,EACH,CAAC;EACD,OAAO,CAAC,EACN,gBAAgB,CAAC;GACf,cAAc;IAAC;IAAQ;IAAQ;GAAQ;GACvC,aAAa,CAAC,aAAa,iBAAiB;EAC9C,CAAC,EACH,CAAC;EACD,UAAU,CAAC,EACT,mBAAmB,CAAC;GAClB,aAAa,CAAC,gBAAgB,oBAAoB;GAClD,cAAc;IAAC;IAAQ;IAAQ;GAAQ;GACvC,WAAW,CAAC,CAAC;IAAC;IAAG;IAAG;IAAI;IAAK;IAAO;GAAQ,GAAG;IAAC;IAAO;IAAQ;IAAS;GAAM,CAAC,CAAC;GAChF,YAAY,CAAC,MAAM,KAAK;GACxB,WAAW,CAAC,MAAM,KAAK;GACvB,eAAe,CAAC,wBAAwB,4BAA4B;GACpE,WAAW,CAAC,wBAAwB,4BAA4B;GAChE,SAAS,CAAC,wBAAwB,4BAA4B;GAC9D,WAAW,CAAC,OAAO;IAAE,mBAAmB,CAAC,IAAI;IAAG,yBAAyB,CAAC,IAAI;GAAE,CAAC;GACjF,QAAQ,CAAC,EACP,iBAAiB,CAAC;IAChB,GAAG,iBAAiB,qBAAqB,KAAI,aAAY,CAAC,SAAS,MAAM;KAAC;KAAU;KAAgB;KAAY;IAAG,CAAC,CAAC,CAAC;IACtH,UAAU,CAAC,CAAC;KAAC;KAAG;KAAG;KAAI;KAAK;KAAO;IAAQ,GAAG;KAAC;KAAO;KAAQ;KAAS;IAAM,CAAC,CAAC;IAC/E,YAAY,CAAC,MAAM,KAAK;IACxB,WAAW,CAAC,CAAC;KAAC;KAAG;KAAG;KAAI;KAAK;KAAO;IAAQ,GAAG;KAAC;KAAO;KAAQ;KAAS;IAAM,CAAC,CAAC;GAClF,CAAC,EACH,CAAC;GACD,eAAe,CAAC,EACd,gBAAgB,CAAC;IACf,UAAU;KAAC;KAAG;KAAG;KAAI;KAAK;KAAO;IAAQ;IACzC,QAAQ,CAAC,SAAS,CAAC;KAAC;KAAG;KAAG;KAAI;KAAK;KAAO;IAAQ,GAAG;KAAC;KAAO;KAAQ;KAAS;IAAM,CAAC,CAAC;IACtF,SAAS;KAAC;KAAS;KAAyB;IAAe;GAC7D,CAAC,EACH,CAAC;EACH,CAAC,EACH,CAAC;CACH,CAAC;CACD,QAAQ,CAAC;EACP,QAAQ,CAAC,EACP,wCAAwC,CAAC;GACvC,aAAa,CAAC,cAAc,kBAAkB;GAC9C,WAAW,CAAC,IAAI,6BAA6B;EAC/C,CAAC,EACH,CAAC;EACD,iBAAiB,CAAC,iBAAiB,qBAAqB;EACxD,WAAW,CAAC,EACV,wCAAwC,CAAC;GACvC,SAAS,CAAC,iBAAiB,qBAAqB;GAChD,aAAa,CAAC,iBAAiB,qBAAqB;GACpD,WAAW,CAAC,IAAI,6BAA6B;EAC/C,CAAC,EACH,CAAC;CACH,CAAC;CACD,OAAO,CAAC;EACN,4BAA4B,CAAC,MAAM,KAAK;EACxC,yBAAyB,CAAC,MAAM,KAAK;CACvC,CAAC;CACD,OAAO,CAAC,EACN,yBAAyB,CAAC,MAAM,KAAK,EACvC,CAAC;CACD,MAAM,CAAC;EACL,aAAa,CAAC,EACZ,sBAAsB,CAAC;GACrB,wBAAwB,CAAC;IACvB,sBAAsB,CAAC,IAAI;IAC3B,6BAA6B,CAAC,IAAI;GACpC,CAAC;GACD,aAAa,CAAC,mBAAmB,uBAAuB;GACxD,OAAO,CAAC,QAAQ,SAAS;EAC3B,CAAC,EACH,CAAC;EACD,oBAAoB,CAAC;GACnB,aAAa,CAAC;IACZ,sBAAsB,CAAC,IAAI;IAC3B,6BAA6B,CAAC,IAAI;GACpC,CAAC;GACD,YAAY,CAAC;IACX,sBAAsB,CAAC,IAAI;IAC3B,6BAA6B,CAAC,IAAI;GACpC,CAAC;GACD,QAAQ,CAAC;IACP,sBAAsB,CAAC,IAAI;IAC3B,6BAA6B,CAAC,IAAI;GACpC,CAAC;EACH,CAAC;CACH,CAAC;CACD,SAAS,CAAC,CAAC,CAAC;CACZ,MAAM,CAAC,EACL,WAAW,CAAC,iBAAiB,aAAa,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,EAC/E,SAAS,CAAC,MAAM,KAAK,EACvB,CAAC,CAAC,CAAC,CAAC,CAAC,EACP,CAAC;CACD,YAAY,CAAC,EACX,0BAA0B,CAAC,MAAM,KAAK,EACxC,CAAC;AACH,CAAC;CAIC,EADA,GAAG,yBAAyB,GAsB3B,IAnBC,EADA,GAAG,yBAAyB,EAAE,CAAC,KAAK,GAmBnC,GAhBC,EADA,GAAG,yBAAyB,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,GAgB/B,GAfF,iBAAiB,aAAa,yBAAyB,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC;CAChI,GAAG,MAAM;CACT,UAAU,CAAC,MAAM,KAAK;CACtB,UAAU,CAAC,gBAAgB;CAC3B,cAAc,CAAC,oBAAoB;CAInC,mBAAmB,CAAC,KAAA,CAAS;CAC7B,kBAAkB,CAAC,yBAAyB;CAC5C,mBAAmB,CAAC,0BAA0B;CAC9C,cAAc,CAAC,EAAE,kBAAkB,CAAC,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC;CACxE,WAAW,CAAC,KAAA,GAAW,6BAA6B;CACpD,OAAO,CAAC,KAAA,GAAW,sBAAsB;CACzC,aAAa,CAAC,KAAA,GAAW,kBAAkB;AAC7C,CAAC,CAAC,CAAC,CAAC,GAcN,EADA,GAAG,yBAAyB,EAAE,CAAC,OAAO,GAYrC,GAID,EADA,GAAG,yBAAyB,EAAE,CAAC,SAAS,GAClB"}
@@ -83,7 +83,7 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
83
83
  sourceOfTruth: {
84
84
  type: "hosted";
85
85
  };
86
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
86
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
87
87
  payments?: {
88
88
  blockNewPurchases?: boolean | undefined;
89
89
  autoPay?: {
@@ -201,12 +201,6 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
201
201
  }>;
202
202
  };
203
203
  domains: {};
204
- dbSync: {
205
- externalDatabases: Record<string, {
206
- connectionString?: string | undefined;
207
- type: "postgres";
208
- }>;
209
- };
210
204
  dataVault: {
211
205
  stores: Record<string, {
212
206
  displayName?: string | undefined;
@@ -217,7 +211,7 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
217
211
  project: {
218
212
  requirePublishableClientKey: undefined;
219
213
  };
220
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
214
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
221
215
  rbac: {
222
216
  permissions: undefined;
223
217
  defaultPermissions: {
@@ -278,9 +272,6 @@ declare const branchConfigSchema: yup$1.Schema<Omit<Omit<{
278
272
  products: undefined;
279
273
  items: undefined;
280
274
  };
281
- dbSync: {
282
- externalDatabases: undefined;
283
- };
284
275
  dataVault: {
285
276
  stores: undefined;
286
277
  };
@@ -292,7 +283,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
292
283
  sourceOfTruth: {
293
284
  type: "hosted";
294
285
  };
295
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
286
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
296
287
  payments?: {
297
288
  blockNewPurchases?: boolean | undefined;
298
289
  autoPay?: {
@@ -410,18 +401,12 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
410
401
  }>;
411
402
  };
412
403
  domains: {};
413
- dbSync: {
414
- externalDatabases: Record<string, {
415
- connectionString?: string | undefined;
416
- type: "postgres";
417
- }>;
418
- };
419
404
  dataVault: {
420
405
  stores: Record<string, {
421
406
  displayName?: string | undefined;
422
407
  }>;
423
408
  };
424
- }>, "auth" | "analytics" | "payments" | "emails" | "domains" | "customDashboards"> & {
409
+ }>, "auth" | "analytics" | "payments" | "emails" | "domains" | "customDashboards" | "dbSync"> & {
425
410
  payments?: (Omit<{
426
411
  blockNewPurchases?: boolean | undefined;
427
412
  autoPay?: {
@@ -569,12 +554,18 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
569
554
  displayName: string;
570
555
  tsxSource: string;
571
556
  }>;
557
+ dbSync: {
558
+ externalDatabases: Record<string, {
559
+ connectionString?: string | undefined;
560
+ type: "postgres";
561
+ }>;
562
+ };
572
563
  }, yup$1.AnyObject, Omit<NonNullable<Omit<Omit<{
573
564
  sourceOfTruth: undefined;
574
565
  project: {
575
566
  requirePublishableClientKey: undefined;
576
567
  };
577
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
568
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
578
569
  rbac: {
579
570
  permissions: undefined;
580
571
  defaultPermissions: {
@@ -635,19 +626,16 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
635
626
  products: undefined;
636
627
  items: undefined;
637
628
  };
638
- dbSync: {
639
- externalDatabases: undefined;
640
- };
641
629
  dataVault: {
642
630
  stores: undefined;
643
631
  };
644
- }>, "auth" | "analytics" | "payments" | "emails" | "domains" | "customDashboards"> & {
632
+ }>, "auth" | "analytics" | "payments" | "emails" | "domains" | "customDashboards" | "dbSync"> & {
645
633
  auth: Omit<NonNullable<Omit<Omit<{
646
634
  sourceOfTruth: undefined;
647
635
  project: {
648
636
  requirePublishableClientKey: undefined;
649
637
  };
650
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
638
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
651
639
  rbac: {
652
640
  permissions: undefined;
653
641
  defaultPermissions: {
@@ -708,9 +696,6 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
708
696
  products: undefined;
709
697
  items: undefined;
710
698
  };
711
- dbSync: {
712
- externalDatabases: undefined;
713
- };
714
699
  dataVault: {
715
700
  stores: undefined;
716
701
  };
@@ -720,7 +705,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
720
705
  project: {
721
706
  requirePublishableClientKey: undefined;
722
707
  };
723
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
708
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
724
709
  rbac: {
725
710
  permissions: undefined;
726
711
  defaultPermissions: {
@@ -781,9 +766,6 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
781
766
  products: undefined;
782
767
  items: undefined;
783
768
  };
784
- dbSync: {
785
- externalDatabases: undefined;
786
- };
787
769
  dataVault: {
788
770
  stores: undefined;
789
771
  };
@@ -796,7 +778,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
796
778
  project: {
797
779
  requirePublishableClientKey: undefined;
798
780
  };
799
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
781
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
800
782
  rbac: {
801
783
  permissions: undefined;
802
784
  defaultPermissions: {
@@ -857,9 +839,6 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
857
839
  products: undefined;
858
840
  items: undefined;
859
841
  };
860
- dbSync: {
861
- externalDatabases: undefined;
862
- };
863
842
  dataVault: {
864
843
  stores: undefined;
865
844
  };
@@ -882,7 +861,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
882
861
  project: {
883
862
  requirePublishableClientKey: undefined;
884
863
  };
885
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
864
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
886
865
  rbac: {
887
866
  permissions: undefined;
888
867
  defaultPermissions: {
@@ -943,9 +922,6 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
943
922
  products: undefined;
944
923
  items: undefined;
945
924
  };
946
- dbSync: {
947
- externalDatabases: undefined;
948
- };
949
925
  dataVault: {
950
926
  stores: undefined;
951
927
  };
@@ -958,7 +934,7 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
958
934
  project: {
959
935
  requirePublishableClientKey: undefined;
960
936
  };
961
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
937
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
962
938
  rbac: {
963
939
  permissions: undefined;
964
940
  defaultPermissions: {
@@ -1019,15 +995,15 @@ declare const environmentConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<Omit<{
1019
995
  products: undefined;
1020
996
  items: undefined;
1021
997
  };
1022
- dbSync: {
1023
- externalDatabases: undefined;
1024
- };
1025
998
  dataVault: {
1026
999
  stores: undefined;
1027
1000
  };
1028
1001
  }>, "testMode"> & {
1029
1002
  testMode: undefined;
1030
1003
  };
1004
+ dbSync: {
1005
+ externalDatabases: undefined;
1006
+ };
1031
1007
  analytics: {
1032
1008
  queryFolders: undefined;
1033
1009
  };
@@ -1040,7 +1016,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1040
1016
  sourceOfTruth: {
1041
1017
  type: "hosted";
1042
1018
  };
1043
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1019
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
1044
1020
  payments?: {
1045
1021
  blockNewPurchases?: boolean | undefined;
1046
1022
  autoPay?: {
@@ -1158,18 +1134,12 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1158
1134
  }>;
1159
1135
  };
1160
1136
  domains: {};
1161
- dbSync: {
1162
- externalDatabases: Record<string, {
1163
- connectionString?: string | undefined;
1164
- type: "postgres";
1165
- }>;
1166
- };
1167
1137
  dataVault: {
1168
1138
  stores: Record<string, {
1169
1139
  displayName?: string | undefined;
1170
1140
  }>;
1171
1141
  };
1172
- }>, "auth" | "analytics" | "payments" | "emails" | "domains" | "customDashboards"> & {
1142
+ }>, "auth" | "analytics" | "payments" | "emails" | "domains" | "customDashboards" | "dbSync"> & {
1173
1143
  payments?: (Omit<{
1174
1144
  blockNewPurchases?: boolean | undefined;
1175
1145
  autoPay?: {
@@ -1317,12 +1287,18 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1317
1287
  displayName: string;
1318
1288
  tsxSource: string;
1319
1289
  }>;
1290
+ dbSync: {
1291
+ externalDatabases: Record<string, {
1292
+ connectionString?: string | undefined;
1293
+ type: "postgres";
1294
+ }>;
1295
+ };
1320
1296
  }>, never> & {}, yup$1.AnyObject, Omit<NonNullable<Omit<NonNullable<Omit<Omit<{
1321
1297
  sourceOfTruth: undefined;
1322
1298
  project: {
1323
1299
  requirePublishableClientKey: undefined;
1324
1300
  };
1325
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1301
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
1326
1302
  rbac: {
1327
1303
  permissions: undefined;
1328
1304
  defaultPermissions: {
@@ -1383,19 +1359,16 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1383
1359
  products: undefined;
1384
1360
  items: undefined;
1385
1361
  };
1386
- dbSync: {
1387
- externalDatabases: undefined;
1388
- };
1389
1362
  dataVault: {
1390
1363
  stores: undefined;
1391
1364
  };
1392
- }>, "auth" | "analytics" | "payments" | "emails" | "domains" | "customDashboards"> & {
1365
+ }>, "auth" | "analytics" | "payments" | "emails" | "domains" | "customDashboards" | "dbSync"> & {
1393
1366
  auth: Omit<NonNullable<Omit<Omit<{
1394
1367
  sourceOfTruth: undefined;
1395
1368
  project: {
1396
1369
  requirePublishableClientKey: undefined;
1397
1370
  };
1398
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1371
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
1399
1372
  rbac: {
1400
1373
  permissions: undefined;
1401
1374
  defaultPermissions: {
@@ -1456,9 +1429,6 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1456
1429
  products: undefined;
1457
1430
  items: undefined;
1458
1431
  };
1459
- dbSync: {
1460
- externalDatabases: undefined;
1461
- };
1462
1432
  dataVault: {
1463
1433
  stores: undefined;
1464
1434
  };
@@ -1468,7 +1438,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1468
1438
  project: {
1469
1439
  requirePublishableClientKey: undefined;
1470
1440
  };
1471
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1441
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
1472
1442
  rbac: {
1473
1443
  permissions: undefined;
1474
1444
  defaultPermissions: {
@@ -1529,9 +1499,6 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1529
1499
  products: undefined;
1530
1500
  items: undefined;
1531
1501
  };
1532
- dbSync: {
1533
- externalDatabases: undefined;
1534
- };
1535
1502
  dataVault: {
1536
1503
  stores: undefined;
1537
1504
  };
@@ -1544,7 +1511,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1544
1511
  project: {
1545
1512
  requirePublishableClientKey: undefined;
1546
1513
  };
1547
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1514
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
1548
1515
  rbac: {
1549
1516
  permissions: undefined;
1550
1517
  defaultPermissions: {
@@ -1605,9 +1572,6 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1605
1572
  products: undefined;
1606
1573
  items: undefined;
1607
1574
  };
1608
- dbSync: {
1609
- externalDatabases: undefined;
1610
- };
1611
1575
  dataVault: {
1612
1576
  stores: undefined;
1613
1577
  };
@@ -1630,7 +1594,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1630
1594
  project: {
1631
1595
  requirePublishableClientKey: undefined;
1632
1596
  };
1633
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1597
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
1634
1598
  rbac: {
1635
1599
  permissions: undefined;
1636
1600
  defaultPermissions: {
@@ -1691,9 +1655,6 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1691
1655
  products: undefined;
1692
1656
  items: undefined;
1693
1657
  };
1694
- dbSync: {
1695
- externalDatabases: undefined;
1696
- };
1697
1658
  dataVault: {
1698
1659
  stores: undefined;
1699
1660
  };
@@ -1706,7 +1667,7 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1706
1667
  project: {
1707
1668
  requirePublishableClientKey: undefined;
1708
1669
  };
1709
- }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dbSync" | "dataVault"> & {
1670
+ }, string>, "auth" | "onboarding" | "teams" | "rbac" | "payments" | "emails" | "users" | "apiKeys" | "apps" | "domains" | "dataVault"> & {
1710
1671
  rbac: {
1711
1672
  permissions: undefined;
1712
1673
  defaultPermissions: {
@@ -1767,15 +1728,15 @@ declare const organizationConfigSchema: yup$1.Schema<Omit<NonNullable<Omit<NonNu
1767
1728
  products: undefined;
1768
1729
  items: undefined;
1769
1730
  };
1770
- dbSync: {
1771
- externalDatabases: undefined;
1772
- };
1773
1731
  dataVault: {
1774
1732
  stores: undefined;
1775
1733
  };
1776
1734
  }>, "testMode"> & {
1777
1735
  testMode: undefined;
1778
1736
  };
1737
+ dbSync: {
1738
+ externalDatabases: undefined;
1739
+ };
1779
1740
  analytics: {
1780
1741
  queryFolders: undefined;
1781
1742
  };
@@ -2244,14 +2205,6 @@ declare function sanitizeOrganizationConfig(config: OrganizationRenderedConfigBe
2244
2205
  };
2245
2206
  };
2246
2207
  };
2247
- dbSync: {
2248
- externalDatabases: {
2249
- [x: string]: {
2250
- type: "postgres" | undefined;
2251
- connectionString: string | undefined;
2252
- };
2253
- };
2254
- };
2255
2208
  dataVault: {
2256
2209
  stores: {
2257
2210
  [x: string]: {
@@ -2265,6 +2218,14 @@ declare function sanitizeOrganizationConfig(config: OrganizationRenderedConfigBe
2265
2218
  tsxSource: string;
2266
2219
  };
2267
2220
  };
2221
+ dbSync: {
2222
+ externalDatabases: {
2223
+ [x: string]: {
2224
+ type: "postgres" | undefined;
2225
+ connectionString: string | undefined;
2226
+ };
2227
+ };
2228
+ };
2268
2229
  }>;
2269
2230
  /**
2270
2231
  * Does not require a base config, and hence solely relies on the override itself to validate the config. If it returns
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","names":[],"sources":["../../../src/config/schema.ts"],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","names":[],"sources":["../../../src/config/schema.ts"],"mappings":"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"}
@@ -145,14 +145,6 @@ const branchConfigSchema = canNoLongerBeOverridden(projectConfigSchema, ["source
145
145
  templates: schemaFields.emailTemplateListSchema
146
146
  }),
147
147
  payments: branchPaymentsSchema,
148
- dbSync: yupObject({ externalDatabases: yupRecord(userSpecifiedIdSchema("externalDatabaseId"), yupObject({
149
- type: yupString().oneOf(["postgres"]).defined(),
150
- connectionString: yupString().when("type", {
151
- is: "postgres",
152
- then: (schema) => schema.defined(),
153
- otherwise: (schema) => schema.optional()
154
- })
155
- })) }),
156
148
  dataVault: yupObject({ stores: yupRecord(userSpecifiedIdSchema("storeId"), yupObject({ displayName: yupString() })) })
157
149
  }));
158
150
  const environmentAnalyticsSchema = yupObject({ queryFolders: yupRecord(userSpecifiedIdSchema("folderId"), yupObject({
@@ -220,6 +212,14 @@ const environmentConfigSchema = branchConfigSchema.concat(yupObject({
220
212
  }))
221
213
  })),
222
214
  payments: branchConfigSchema.getNested("payments").concat(yupObject({ testMode: yupBoolean() })),
215
+ dbSync: yupObject({ externalDatabases: yupRecord(userSpecifiedIdSchema("externalDatabaseId"), yupObject({
216
+ type: yupString().oneOf(["postgres"]).defined(),
217
+ connectionString: yupString().when("type", {
218
+ is: "postgres",
219
+ then: (schema) => schema.defined(),
220
+ otherwise: (schema) => schema.optional()
221
+ })
222
+ })) }),
223
223
  analytics: environmentAnalyticsSchema,
224
224
  customDashboards: schemaFields.customDashboardsSchema
225
225
  }));
@@ -260,6 +260,7 @@ function migrateConfigOverride(type, oldUnmigratedConfigOverride) {
260
260
  return value;
261
261
  });
262
262
  if (type === "project") res = removeProperty(res, (p) => p[0] === "sourceOfTruth");
263
+ if (type === "branch") res = removeProperty(res, (p) => p[0] === "dbSync");
263
264
  return res;
264
265
  }
265
266
  function removeProperty(obj, pathCond) {