Skip to content

Commit d407908

Browse files
authored
chore(studio): drop @supabase/postgres-meta in favor of @supabase/pg-meta (supabase#45844)
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Refactor / dependency cleanup. ## What is the current behavior? `apps/studio` lists both `@supabase/pg-meta` (workspace package) as a runtime dep and `@supabase/postgres-meta` (external npm package, `^0.64.4`) as a devDependency. The external package is used only for type imports across 44 files — there is no runtime usage and no codegen pipeline that needs it. ## What is the new behavior? Every `Postgres*` type import (`PostgresTable`, `PostgresColumn`, `PostgresPolicy`, `PostgresTrigger`, `PostgresView`, `PostgresMaterializedView`, `PostgresForeignTable`, `PostgresSchema`, `PostgresPublication`, `PostgresRelationship`, `PostgresPrimaryKey`) is replaced with its `PG*` counterpart from `@supabase/pg-meta`, and the external dep is removed from \`apps/studio/package.json\`. Top-level type re-exports were added to \`packages/pg-meta/src/index.ts\` so consumers can import directly from the package root. Two latent issues surfaced by the stricter pg-meta types are also fixed: - \`data/foreign-tables/foreign-tables-query.ts\` was casting foreign-table results as \`PostgresView[]\`; corrected to \`PGForeignTable[]\`. - \`pg-meta\`'s \`PGTrigger\` Zod schema declared \`orientation\`/\`activation\` as \`z.string()\`, inconsistent with pg-meta's own \`getDatabaseTriggerUpdateSQL\` helper that requires the narrow literal unions; tightened to \`z.enum\`. ## Additional context <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated internal TypeScript type definitions across the codebase to use the latest type system from `@supabase/pg-meta`. * Removed `@supabase/postgres-meta` dependency. * Enhanced type validation for database triggers and schemas to enforce stricter constraints. [![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/45844) <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 6383150 commit d407908

50 files changed

Lines changed: 158 additions & 262 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PostgresTable } from '@supabase/postgres-meta'
1+
import type { PGTable } from '@supabase/pg-meta'
22
import { ArrowRight } from 'lucide-react'
33
import type { PropsWithChildren } from 'react'
44
import type { RenderCellProps } from 'react-data-grid'
@@ -38,7 +38,7 @@ export const ForeignKeyFormatter = (props: Props) => {
3838
r.source_column_name === column.name
3939
)
4040

41-
const { data: targetTable, isPending: isLoadingTargetTable } = useTableQuery<PostgresTable>(
41+
const { data: targetTable, isPending: isLoadingTargetTable } = useTableQuery<PGTable>(
4242
{
4343
projectRef: project?.ref,
4444
connectionString: project?.connectionString,

apps/studio/components/grid/components/formatter/ReferenceRecordPeek.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { PostgresTable } from '@supabase/postgres-meta'
1+
import type { PGTable } from '@supabase/pg-meta'
22
import { keepPreviousData } from '@tanstack/react-query'
33
import { useParams } from 'common'
44
import { Key } from 'lucide-react'
@@ -29,7 +29,7 @@ import { useTableRowsQuery } from '@/data/table-rows/table-rows-query'
2929
import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
3030

3131
interface ReferenceRecordPeekProps {
32-
table: PostgresTable
32+
table: PGTable
3333
column: string
3434
value: string | number | Record<string, unknown>
3535
}

apps/studio/components/grid/components/grid/Grid.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { DndContext, DragOverlay, PointerSensor, useSensor, useSensors } from '@dnd-kit/core'
22
import { horizontalListSortingStrategy, SortableContext } from '@dnd-kit/sortable'
3-
import type { PostgresColumn } from '@supabase/postgres-meta'
3+
import type { PGColumn } from '@supabase/pg-meta'
44
import { forwardRef, memo, Ref, useCallback, useMemo, useRef, useState } from 'react'
55
import DataGrid, {
66
CalculatedColumn,
@@ -137,7 +137,7 @@ export const Grid = memo(
137137
tableEditorSnap.onEditForeignKeyColumnValue({
138138
foreignKey,
139139
row,
140-
column: column as unknown as PostgresColumn,
140+
column: column as unknown as PGColumn,
141141
})
142142
}
143143
}

apps/studio/components/interfaces/Auth/Policies/Policies.utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
import type { PGPolicy } from '@supabase/pg-meta'
12
import { ident } from '@supabase/pg-meta/src/pg-format'
2-
import type { PostgresPolicy } from '@supabase/postgres-meta'
33
import { has, isEmpty, isEqual } from 'lodash'
44

55
import {
@@ -19,7 +19,7 @@ import type { ForeignKeyConstraint } from '@/data/database/foreign-key-constrain
1919

2020
export const createSQLPolicy = (
2121
policyFormFields: PolicyFormField,
22-
originalPolicyFormFields?: PostgresPolicy
22+
originalPolicyFormFields?: PGPolicy
2323
) => {
2424
const { definition, check } = policyFormFields
2525
const formattedPolicyFormFields = {
@@ -129,7 +129,7 @@ export const createPayloadForCreatePolicy = (
129129

130130
export const createPayloadForUpdatePolicy = (
131131
policyFormFields: PolicyFormField,
132-
originalPolicyFormFields: PostgresPolicy
132+
originalPolicyFormFields: PGPolicy
133133
): PostgresPolicyUpdatePayload => {
134134
const { definition, check } = policyFormFields
135135
const formattedPolicyFormFields = {

apps/studio/components/interfaces/Auth/Policies/PolicyEditorModal/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { PostgresPolicy } from '@supabase/postgres-meta'
1+
import type { PGPolicy } from '@supabase/pg-meta'
22
import { isEmpty, noop } from 'lodash'
33
import { useCallback, useEffect, useState } from 'react'
44
import { toast } from 'sonner'
@@ -32,7 +32,7 @@ interface PolicyEditorModalProps {
3232
visible?: boolean
3333
schema?: string
3434
table?: string
35-
selectedPolicyToEdit?: PostgresPolicy
35+
selectedPolicyToEdit?: PGPolicy
3636
showAssistantPreview?: boolean
3737
onSelectCancel: () => void
3838
onCreatePolicy: (payload: PostgresPolicyCreatePayload) => Promise<boolean>

apps/studio/components/interfaces/Auth/Policies/PolicyEditorPanel/LockedQuerySection.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { PostgresPolicy } from '@supabase/postgres-meta'
1+
import type { PGPolicy } from '@supabase/pg-meta'
22
import { Lock } from 'lucide-react'
33

44
interface LockedCreateQuerySection {
55
schema: string
6-
selectedPolicy?: PostgresPolicy
6+
selectedPolicy?: PGPolicy
77
isRenamingPolicy: boolean
88
formFields: { name: string; table: string; behavior: string; command: string; roles: string }
99
}

apps/studio/components/interfaces/Auth/Policies/PolicyEditorPanel/PolicyEditorPanel.utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import type { PGPolicy } from '@supabase/pg-meta'
12
import { ident, keyword, safeSql, type SafeSqlFragment } from '@supabase/pg-meta/src/pg-format'
2-
import type { PostgresPolicy } from '@supabase/postgres-meta'
33
import { isEqual } from 'lodash'
44

55
// [Joshen] Not used but keeping this for now in case we do an inline editor
6-
export const generatePlaceholder = (policy?: PostgresPolicy) => {
6+
export const generatePlaceholder = (policy?: PGPolicy) => {
77
if (policy === undefined) {
88
return `
99
-- Press tab to use this code\n
@@ -78,7 +78,7 @@ export const generateCreatePolicyQuery = ({
7878
}
7979

8080
export const checkIfPolicyHasChanged = (
81-
selectedPolicy: PostgresPolicy,
81+
selectedPolicy: PGPolicy,
8282
policyForm: {
8383
name: string
8484
roles: string[]

apps/studio/components/interfaces/Auth/Policies/PolicyEditorPanel/PolicyEditorPanelHeader.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PostgresPolicy } from '@supabase/postgres-meta'
1+
import type { PGPolicy } from '@supabase/pg-meta'
22
import { ChevronDown, PanelLeftClose, PanelRightClose, X } from 'lucide-react'
33
import { useState } from 'react'
44
import {
@@ -19,7 +19,7 @@ export const PolicyEditorPanelHeader = ({
1919
showTools,
2020
setShowTools,
2121
}: {
22-
selectedPolicy?: PostgresPolicy
22+
selectedPolicy?: PGPolicy
2323
showTools: boolean
2424
setShowTools: (v: boolean) => void
2525
}) => {

apps/studio/components/interfaces/Auth/Policies/PolicyEditorPanel/PolicyTemplates.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { PostgresPolicy } from '@supabase/postgres-meta'
1+
import type { PGPolicy } from '@supabase/pg-meta'
22
import { Search } from 'lucide-react'
33
import { useState } from 'react'
44
import {
@@ -26,7 +26,7 @@ import { NoSearchResults } from '@/components/ui/NoSearchResults'
2626
interface PolicyTemplatesProps {
2727
schema: string
2828
table: string
29-
selectedPolicy?: PostgresPolicy
29+
selectedPolicy?: PGPolicy
3030
selectedTemplate?: string
3131
onSelectTemplate: (template: any) => void
3232
}

apps/studio/components/interfaces/Auth/Policies/PolicyTableRow/PolicyTableRow.utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { ident, joinSqlFragments, safeSql, type SafeSqlFragment } from '@supabase/pg-meta'
2-
import { PostgresPolicy } from '@supabase/postgres-meta'
2+
import type { PGPolicy } from '@supabase/pg-meta'
33

44
import type { TableApiAccessData } from '@/data/privileges/table-api-access-query'
55

6-
export type Policy = Omit<PostgresPolicy, 'definition' | 'check'> & {
6+
export type Policy = Omit<PGPolicy, 'definition' | 'check'> & {
77
definition: SafeSqlFragment | null
88
check: SafeSqlFragment | null
99
}

0 commit comments

Comments
 (0)