@supabase/pg-delta 1.0.0-alpha.10 → 1.0.0-alpha.12
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.
- package/dist/cli/commands/declarative-export.js +12 -17
- package/dist/cli/commands/plan.js +10 -13
- package/dist/cli/commands/sync.js +8 -12
- package/dist/cli/utils/integrations.d.ts +30 -6
- package/dist/cli/utils/integrations.js +98 -6
- package/dist/core/change-utils.d.ts +9 -0
- package/dist/core/change-utils.js +71 -0
- package/dist/core/change.types.d.ts +22 -0
- package/dist/core/change.types.js +37 -1
- package/dist/core/depend.js +25 -0
- package/dist/core/expand-replace-dependencies.js +23 -0
- package/dist/core/export/file-mapper.d.ts +2 -2
- package/dist/core/integrations/filter/dsl.d.ts +78 -74
- package/dist/core/integrations/filter/dsl.js +127 -79
- package/dist/core/integrations/filter/flatten.d.ts +51 -0
- package/dist/core/integrations/filter/flatten.js +116 -0
- package/dist/core/integrations/integration-dsl.d.ts +17 -1
- package/dist/core/integrations/merge.d.ts +20 -0
- package/dist/core/integrations/merge.js +60 -0
- package/dist/core/integrations/serialize/dsl.d.ts +8 -12
- package/dist/core/integrations/serialize/dsl.js +2 -2
- package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
- package/dist/core/integrations/supabase.js +42 -8
- package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.alter.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +3 -2
- package/dist/core/objects/aggregate/changes/aggregate.comment.js +2 -2
- package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.create.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +4 -3
- package/dist/core/objects/aggregate/changes/aggregate.privilege.js +3 -3
- package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +1 -0
- package/dist/core/objects/base.change.d.ts +12 -1
- package/dist/core/objects/base.change.js +10 -0
- package/dist/core/objects/base.model.d.ts +4 -1
- package/dist/core/objects/base.model.js +5 -2
- package/dist/core/objects/collation/changes/collation.alter.d.ts +3 -2
- package/dist/core/objects/collation/changes/collation.alter.js +2 -2
- package/dist/core/objects/collation/changes/collation.comment.d.ts +3 -2
- package/dist/core/objects/collation/changes/collation.comment.js +2 -2
- package/dist/core/objects/collation/changes/collation.create.d.ts +2 -1
- package/dist/core/objects/collation/changes/collation.create.js +1 -1
- package/dist/core/objects/collation/changes/collation.drop.d.ts +2 -1
- package/dist/core/objects/collation/changes/collation.drop.js +1 -1
- package/dist/core/objects/collation/changes/collation.types.d.ts +1 -0
- package/dist/core/objects/domain/changes/domain.alter.d.ts +9 -8
- package/dist/core/objects/domain/changes/domain.alter.js +8 -8
- package/dist/core/objects/domain/changes/domain.comment.d.ts +3 -2
- package/dist/core/objects/domain/changes/domain.comment.js +2 -2
- package/dist/core/objects/domain/changes/domain.create.d.ts +3 -2
- package/dist/core/objects/domain/changes/domain.create.js +8 -2
- package/dist/core/objects/domain/changes/domain.drop.d.ts +2 -1
- package/dist/core/objects/domain/changes/domain.drop.js +1 -1
- package/dist/core/objects/domain/changes/domain.privilege.d.ts +4 -3
- package/dist/core/objects/domain/changes/domain.privilege.js +3 -3
- package/dist/core/objects/domain/changes/domain.types.d.ts +1 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +3 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +2 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +3 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +2 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +2 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.create.js +1 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +2 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +1 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +1 -0
- package/dist/core/objects/extension/changes/extension.alter.d.ts +3 -2
- package/dist/core/objects/extension/changes/extension.alter.js +2 -2
- package/dist/core/objects/extension/changes/extension.comment.d.ts +3 -2
- package/dist/core/objects/extension/changes/extension.comment.js +2 -2
- package/dist/core/objects/extension/changes/extension.create.d.ts +2 -1
- package/dist/core/objects/extension/changes/extension.create.js +4 -2
- package/dist/core/objects/extension/changes/extension.drop.d.ts +2 -1
- package/dist/core/objects/extension/changes/extension.drop.js +1 -1
- package/dist/core/objects/extension/changes/extension.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +10 -9
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +9 -9
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +1 -0
- package/dist/core/objects/index/changes/index.alter.d.ts +4 -3
- package/dist/core/objects/index/changes/index.alter.js +3 -3
- package/dist/core/objects/index/changes/index.comment.d.ts +3 -2
- package/dist/core/objects/index/changes/index.comment.js +2 -2
- package/dist/core/objects/index/changes/index.create.d.ts +2 -1
- package/dist/core/objects/index/changes/index.create.js +1 -1
- package/dist/core/objects/index/changes/index.drop.d.ts +2 -1
- package/dist/core/objects/index/changes/index.drop.js +1 -1
- package/dist/core/objects/index/changes/index.types.d.ts +1 -0
- package/dist/core/objects/language/changes/language.alter.d.ts +2 -1
- package/dist/core/objects/language/changes/language.alter.js +1 -1
- package/dist/core/objects/language/changes/language.comment.d.ts +3 -2
- package/dist/core/objects/language/changes/language.comment.js +2 -2
- package/dist/core/objects/language/changes/language.create.d.ts +2 -1
- package/dist/core/objects/language/changes/language.create.js +1 -1
- package/dist/core/objects/language/changes/language.drop.d.ts +2 -1
- package/dist/core/objects/language/changes/language.drop.js +1 -1
- package/dist/core/objects/language/changes/language.privilege.d.ts +4 -3
- package/dist/core/objects/language/changes/language.privilege.js +3 -3
- package/dist/core/objects/language/changes/language.types.d.ts +1 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +3 -2
- package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +2 -2
- package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +5 -4
- package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +4 -4
- package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +2 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.create.js +1 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +2 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +1 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +4 -3
- package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +3 -3
- package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +1 -0
- package/dist/core/objects/procedure/changes/procedure.alter.d.ts +8 -7
- package/dist/core/objects/procedure/changes/procedure.alter.js +7 -7
- package/dist/core/objects/procedure/changes/procedure.comment.d.ts +3 -2
- package/dist/core/objects/procedure/changes/procedure.comment.js +2 -2
- package/dist/core/objects/procedure/changes/procedure.create.d.ts +2 -1
- package/dist/core/objects/procedure/changes/procedure.create.js +1 -1
- package/dist/core/objects/procedure/changes/procedure.drop.d.ts +2 -1
- package/dist/core/objects/procedure/changes/procedure.drop.js +1 -1
- package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +4 -3
- package/dist/core/objects/procedure/changes/procedure.privilege.js +3 -3
- package/dist/core/objects/procedure/changes/procedure.types.d.ts +1 -0
- package/dist/core/objects/publication/changes/publication.alter.d.ts +9 -7
- package/dist/core/objects/publication/changes/publication.alter.js +12 -7
- package/dist/core/objects/publication/changes/publication.comment.d.ts +3 -2
- package/dist/core/objects/publication/changes/publication.comment.js +2 -2
- package/dist/core/objects/publication/changes/publication.create.d.ts +2 -1
- package/dist/core/objects/publication/changes/publication.create.js +1 -1
- package/dist/core/objects/publication/changes/publication.drop.d.ts +2 -1
- package/dist/core/objects/publication/changes/publication.drop.js +1 -1
- package/dist/core/objects/publication/changes/publication.types.d.ts +1 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +4 -3
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +3 -3
- package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +3 -2
- package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +2 -2
- package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +2 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.create.js +1 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +2 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +1 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +1 -0
- package/dist/core/objects/role/changes/role.alter.d.ts +3 -2
- package/dist/core/objects/role/changes/role.alter.js +2 -2
- package/dist/core/objects/role/changes/role.comment.d.ts +3 -2
- package/dist/core/objects/role/changes/role.comment.js +2 -2
- package/dist/core/objects/role/changes/role.create.d.ts +2 -1
- package/dist/core/objects/role/changes/role.create.js +1 -1
- package/dist/core/objects/role/changes/role.drop.d.ts +2 -1
- package/dist/core/objects/role/changes/role.drop.js +1 -1
- package/dist/core/objects/role/changes/role.privilege.d.ts +6 -5
- package/dist/core/objects/role/changes/role.privilege.js +5 -5
- package/dist/core/objects/role/changes/role.types.d.ts +1 -0
- package/dist/core/objects/rule/changes/rule.alter.d.ts +3 -2
- package/dist/core/objects/rule/changes/rule.alter.js +2 -2
- package/dist/core/objects/rule/changes/rule.comment.d.ts +3 -2
- package/dist/core/objects/rule/changes/rule.comment.js +2 -2
- package/dist/core/objects/rule/changes/rule.create.d.ts +2 -1
- package/dist/core/objects/rule/changes/rule.create.js +1 -1
- package/dist/core/objects/rule/changes/rule.drop.d.ts +2 -1
- package/dist/core/objects/rule/changes/rule.drop.js +1 -1
- package/dist/core/objects/rule/changes/rule.types.d.ts +1 -0
- package/dist/core/objects/schema/changes/schema.alter.d.ts +2 -1
- package/dist/core/objects/schema/changes/schema.alter.js +1 -1
- package/dist/core/objects/schema/changes/schema.comment.d.ts +3 -2
- package/dist/core/objects/schema/changes/schema.comment.js +2 -2
- package/dist/core/objects/schema/changes/schema.create.d.ts +3 -5
- package/dist/core/objects/schema/changes/schema.drop.d.ts +2 -1
- package/dist/core/objects/schema/changes/schema.drop.js +1 -1
- package/dist/core/objects/schema/changes/schema.privilege.d.ts +4 -3
- package/dist/core/objects/schema/changes/schema.privilege.js +3 -3
- package/dist/core/objects/schema/changes/schema.types.d.ts +1 -0
- package/dist/core/objects/sequence/changes/sequence.alter.d.ts +3 -2
- package/dist/core/objects/sequence/changes/sequence.alter.js +2 -2
- package/dist/core/objects/sequence/changes/sequence.comment.d.ts +3 -2
- package/dist/core/objects/sequence/changes/sequence.comment.js +2 -2
- package/dist/core/objects/sequence/changes/sequence.create.d.ts +2 -1
- package/dist/core/objects/sequence/changes/sequence.create.js +1 -1
- package/dist/core/objects/sequence/changes/sequence.drop.d.ts +2 -1
- package/dist/core/objects/sequence/changes/sequence.drop.js +11 -3
- package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +4 -3
- package/dist/core/objects/sequence/changes/sequence.privilege.js +3 -3
- package/dist/core/objects/sequence/changes/sequence.types.d.ts +1 -0
- package/dist/core/objects/sequence/sequence.diff.d.ts +4 -1
- package/dist/core/objects/sequence/sequence.diff.js +12 -0
- package/dist/core/objects/subscription/changes/subscription.alter.d.ts +7 -6
- package/dist/core/objects/subscription/changes/subscription.alter.js +6 -6
- package/dist/core/objects/subscription/changes/subscription.comment.d.ts +3 -2
- package/dist/core/objects/subscription/changes/subscription.comment.js +2 -2
- package/dist/core/objects/subscription/changes/subscription.create.d.ts +2 -1
- package/dist/core/objects/subscription/changes/subscription.create.js +1 -1
- package/dist/core/objects/subscription/changes/subscription.drop.d.ts +2 -1
- package/dist/core/objects/subscription/changes/subscription.drop.js +1 -1
- package/dist/core/objects/subscription/changes/subscription.types.d.ts +1 -0
- package/dist/core/objects/table/changes/table.alter.d.ts +65 -22
- package/dist/core/objects/table/changes/table.alter.js +107 -22
- package/dist/core/objects/table/changes/table.comment.d.ts +7 -6
- package/dist/core/objects/table/changes/table.comment.js +6 -6
- package/dist/core/objects/table/changes/table.create.d.ts +2 -1
- package/dist/core/objects/table/changes/table.create.js +1 -1
- package/dist/core/objects/table/changes/table.drop.d.ts +4 -3
- package/dist/core/objects/table/changes/table.drop.js +7 -1
- package/dist/core/objects/table/changes/table.privilege.d.ts +4 -3
- package/dist/core/objects/table/changes/table.privilege.js +3 -3
- package/dist/core/objects/table/changes/table.types.d.ts +1 -0
- package/dist/core/objects/table/table.diff.js +46 -1
- package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.alter.js +1 -1
- package/dist/core/objects/trigger/changes/trigger.comment.d.ts +3 -2
- package/dist/core/objects/trigger/changes/trigger.comment.js +2 -2
- package/dist/core/objects/trigger/changes/trigger.create.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.create.js +1 -1
- package/dist/core/objects/trigger/changes/trigger.drop.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.drop.js +1 -1
- package/dist/core/objects/trigger/changes/trigger.types.d.ts +1 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +5 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +4 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +5 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +4 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +2 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.create.js +1 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +2 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +1 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +4 -3
- package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +3 -3
- package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +1 -0
- package/dist/core/objects/type/enum/changes/enum.alter.d.ts +3 -2
- package/dist/core/objects/type/enum/changes/enum.alter.js +2 -2
- package/dist/core/objects/type/enum/changes/enum.comment.d.ts +3 -2
- package/dist/core/objects/type/enum/changes/enum.comment.js +2 -2
- package/dist/core/objects/type/enum/changes/enum.create.d.ts +2 -1
- package/dist/core/objects/type/enum/changes/enum.create.js +1 -1
- package/dist/core/objects/type/enum/changes/enum.drop.d.ts +2 -1
- package/dist/core/objects/type/enum/changes/enum.drop.js +1 -1
- package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +4 -3
- package/dist/core/objects/type/enum/changes/enum.privilege.js +3 -3
- package/dist/core/objects/type/enum/changes/enum.types.d.ts +1 -0
- package/dist/core/objects/type/range/changes/range.alter.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.alter.js +1 -1
- package/dist/core/objects/type/range/changes/range.comment.d.ts +3 -2
- package/dist/core/objects/type/range/changes/range.comment.js +2 -2
- package/dist/core/objects/type/range/changes/range.create.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.create.js +1 -1
- package/dist/core/objects/type/range/changes/range.drop.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.drop.js +1 -1
- package/dist/core/objects/type/range/changes/range.privilege.d.ts +4 -3
- package/dist/core/objects/type/range/changes/range.privilege.js +3 -3
- package/dist/core/objects/type/range/changes/range.types.d.ts +1 -0
- package/dist/core/objects/type/type.types.d.ts +1 -0
- package/dist/core/objects/view/changes/view.alter.d.ts +4 -3
- package/dist/core/objects/view/changes/view.alter.js +3 -3
- package/dist/core/objects/view/changes/view.comment.d.ts +3 -2
- package/dist/core/objects/view/changes/view.comment.js +2 -2
- package/dist/core/objects/view/changes/view.create.d.ts +2 -1
- package/dist/core/objects/view/changes/view.create.js +1 -1
- package/dist/core/objects/view/changes/view.drop.d.ts +2 -1
- package/dist/core/objects/view/changes/view.drop.js +1 -1
- package/dist/core/objects/view/changes/view.privilege.d.ts +4 -3
- package/dist/core/objects/view/changes/view.privilege.js +3 -3
- package/dist/core/objects/view/changes/view.types.d.ts +1 -0
- package/dist/core/objects/view/view.diff.js +24 -13
- package/dist/core/postgres-config.d.ts +2 -2
- package/dist/core/sort/custom-constraints.js +65 -1
- package/dist/core/sort/logical-sort.js +3 -24
- package/package.json +5 -1
- package/src/cli/commands/declarative-export.ts +19 -27
- package/src/cli/commands/plan.ts +14 -20
- package/src/cli/commands/sync.ts +8 -15
- package/src/cli/utils/integrations.test.ts +210 -3
- package/src/cli/utils/integrations.ts +134 -6
- package/src/core/catalog.snapshot.test.ts +11 -2
- package/src/core/change-utils.test.ts +61 -0
- package/src/core/change-utils.ts +73 -0
- package/src/core/change.types.ts +50 -0
- package/src/core/depend.ts +25 -0
- package/src/core/expand-replace-dependencies.test.ts +126 -1
- package/src/core/expand-replace-dependencies.ts +50 -0
- package/src/core/export/file-mapper.ts +7 -2
- package/src/core/integrations/filter/dsl.test.ts +299 -60
- package/src/core/integrations/filter/dsl.ts +208 -169
- package/src/core/integrations/filter/flatten.test.ts +282 -0
- package/src/core/integrations/filter/flatten.ts +150 -0
- package/src/core/integrations/integration-dsl.ts +17 -1
- package/src/core/integrations/merge.test.ts +128 -0
- package/src/core/integrations/merge.ts +72 -0
- package/src/core/integrations/serialize/dsl.test.ts +26 -7
- package/src/core/integrations/serialize/dsl.ts +8 -14
- package/src/core/integrations/serialize/serialize.types.ts +37 -0
- package/src/core/integrations/supabase.ts +42 -8
- package/src/core/objects/aggregate/changes/aggregate.alter.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.comment.ts +3 -2
- package/src/core/objects/aggregate/changes/aggregate.create.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.drop.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.privilege.ts +4 -3
- package/src/core/objects/aggregate/changes/aggregate.types.ts +1 -0
- package/src/core/objects/base.change.ts +13 -1
- package/src/core/objects/base.model.test.ts +43 -0
- package/src/core/objects/base.model.ts +5 -2
- package/src/core/objects/collation/changes/collation.alter.ts +3 -2
- package/src/core/objects/collation/changes/collation.comment.ts +3 -2
- package/src/core/objects/collation/changes/collation.create.ts +2 -1
- package/src/core/objects/collation/changes/collation.drop.ts +2 -1
- package/src/core/objects/collation/changes/collation.types.ts +1 -0
- package/src/core/objects/domain/changes/domain.alter.ts +9 -8
- package/src/core/objects/domain/changes/domain.comment.ts +3 -2
- package/src/core/objects/domain/changes/domain.create.ts +19 -2
- package/src/core/objects/domain/changes/domain.drop.ts +2 -1
- package/src/core/objects/domain/changes/domain.privilege.ts +4 -3
- package/src/core/objects/domain/changes/domain.types.ts +1 -0
- package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +3 -2
- package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +3 -2
- package/src/core/objects/event-trigger/changes/event-trigger.create.ts +2 -1
- package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +2 -1
- package/src/core/objects/event-trigger/changes/event-trigger.types.ts +1 -0
- package/src/core/objects/extension/changes/extension.alter.ts +3 -2
- package/src/core/objects/extension/changes/extension.comment.ts +3 -2
- package/src/core/objects/extension/changes/extension.create.test.ts +22 -0
- package/src/core/objects/extension/changes/extension.create.ts +5 -2
- package/src/core/objects/extension/changes/extension.drop.ts +2 -1
- package/src/core/objects/extension/changes/extension.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +10 -9
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/server/changes/server.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.ts +1 -0
- package/src/core/objects/index/changes/index.alter.ts +4 -3
- package/src/core/objects/index/changes/index.comment.ts +3 -2
- package/src/core/objects/index/changes/index.create.ts +2 -1
- package/src/core/objects/index/changes/index.drop.ts +2 -1
- package/src/core/objects/index/changes/index.types.ts +1 -0
- package/src/core/objects/language/changes/language.alter.ts +2 -1
- package/src/core/objects/language/changes/language.comment.ts +3 -2
- package/src/core/objects/language/changes/language.create.ts +2 -1
- package/src/core/objects/language/changes/language.drop.ts +2 -1
- package/src/core/objects/language/changes/language.privilege.ts +4 -3
- package/src/core/objects/language/changes/language.types.ts +1 -0
- package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +3 -2
- package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +5 -4
- package/src/core/objects/materialized-view/changes/materialized-view.create.ts +2 -1
- package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +2 -1
- package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +4 -3
- package/src/core/objects/materialized-view/changes/materialized-view.types.ts +1 -0
- package/src/core/objects/procedure/changes/procedure.alter.ts +8 -7
- package/src/core/objects/procedure/changes/procedure.comment.ts +3 -2
- package/src/core/objects/procedure/changes/procedure.create.ts +2 -1
- package/src/core/objects/procedure/changes/procedure.drop.ts +2 -1
- package/src/core/objects/procedure/changes/procedure.privilege.ts +4 -3
- package/src/core/objects/procedure/changes/procedure.types.ts +1 -0
- package/src/core/objects/publication/changes/publication.alter.test.ts +4 -0
- package/src/core/objects/publication/changes/publication.alter.ts +14 -7
- package/src/core/objects/publication/changes/publication.comment.ts +3 -2
- package/src/core/objects/publication/changes/publication.create.ts +2 -1
- package/src/core/objects/publication/changes/publication.drop.ts +2 -1
- package/src/core/objects/publication/changes/publication.types.ts +1 -0
- package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +4 -3
- package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +3 -2
- package/src/core/objects/rls-policy/changes/rls-policy.create.ts +2 -1
- package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +2 -1
- package/src/core/objects/rls-policy/changes/rls-policy.types.ts +1 -0
- package/src/core/objects/role/changes/role.alter.ts +3 -2
- package/src/core/objects/role/changes/role.comment.ts +3 -2
- package/src/core/objects/role/changes/role.create.ts +2 -1
- package/src/core/objects/role/changes/role.drop.ts +2 -1
- package/src/core/objects/role/changes/role.privilege.ts +6 -5
- package/src/core/objects/role/changes/role.types.ts +1 -0
- package/src/core/objects/rule/changes/rule.alter.ts +3 -2
- package/src/core/objects/rule/changes/rule.comment.ts +3 -2
- package/src/core/objects/rule/changes/rule.create.ts +2 -1
- package/src/core/objects/rule/changes/rule.drop.ts +2 -1
- package/src/core/objects/rule/changes/rule.types.ts +1 -0
- package/src/core/objects/schema/changes/schema.alter.ts +2 -1
- package/src/core/objects/schema/changes/schema.comment.ts +3 -2
- package/src/core/objects/schema/changes/schema.create.ts +3 -3
- package/src/core/objects/schema/changes/schema.drop.ts +2 -1
- package/src/core/objects/schema/changes/schema.privilege.ts +4 -3
- package/src/core/objects/schema/changes/schema.types.ts +1 -0
- package/src/core/objects/sequence/changes/sequence.alter.ts +3 -2
- package/src/core/objects/sequence/changes/sequence.comment.ts +3 -2
- package/src/core/objects/sequence/changes/sequence.create.ts +2 -1
- package/src/core/objects/sequence/changes/sequence.drop.ts +16 -3
- package/src/core/objects/sequence/changes/sequence.privilege.ts +4 -3
- package/src/core/objects/sequence/changes/sequence.types.ts +1 -0
- package/src/core/objects/sequence/sequence.diff.test.ts +73 -1
- package/src/core/objects/sequence/sequence.diff.ts +24 -2
- package/src/core/objects/subscription/changes/subscription.alter.ts +7 -6
- package/src/core/objects/subscription/changes/subscription.comment.ts +3 -2
- package/src/core/objects/subscription/changes/subscription.create.ts +2 -1
- package/src/core/objects/subscription/changes/subscription.drop.ts +2 -1
- package/src/core/objects/subscription/changes/subscription.types.ts +1 -0
- package/src/core/objects/table/changes/table.alter.test.ts +38 -0
- package/src/core/objects/table/changes/table.alter.ts +123 -22
- package/src/core/objects/table/changes/table.comment.ts +7 -6
- package/src/core/objects/table/changes/table.create.ts +2 -1
- package/src/core/objects/table/changes/table.drop.ts +20 -1
- package/src/core/objects/table/changes/table.privilege.ts +4 -3
- package/src/core/objects/table/changes/table.types.ts +1 -0
- package/src/core/objects/table/table.diff.test.ts +121 -0
- package/src/core/objects/table/table.diff.ts +64 -1
- package/src/core/objects/trigger/changes/trigger.alter.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.comment.ts +3 -2
- package/src/core/objects/trigger/changes/trigger.create.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.drop.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.types.ts +1 -0
- package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +5 -4
- package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +5 -4
- package/src/core/objects/type/composite-type/changes/composite-type.create.ts +2 -1
- package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +2 -1
- package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +4 -3
- package/src/core/objects/type/composite-type/changes/composite-type.types.ts +1 -0
- package/src/core/objects/type/enum/changes/enum.alter.ts +3 -2
- package/src/core/objects/type/enum/changes/enum.comment.ts +3 -2
- package/src/core/objects/type/enum/changes/enum.create.ts +2 -1
- package/src/core/objects/type/enum/changes/enum.drop.ts +2 -1
- package/src/core/objects/type/enum/changes/enum.privilege.ts +4 -3
- package/src/core/objects/type/enum/changes/enum.types.ts +1 -0
- package/src/core/objects/type/range/changes/range.alter.ts +2 -1
- package/src/core/objects/type/range/changes/range.comment.ts +3 -2
- package/src/core/objects/type/range/changes/range.create.ts +2 -1
- package/src/core/objects/type/range/changes/range.drop.ts +2 -1
- package/src/core/objects/type/range/changes/range.privilege.ts +4 -3
- package/src/core/objects/type/range/changes/range.types.ts +1 -0
- package/src/core/objects/type/type.types.ts +1 -0
- package/src/core/objects/view/changes/view.alter.ts +4 -3
- package/src/core/objects/view/changes/view.comment.ts +3 -2
- package/src/core/objects/view/changes/view.create.ts +2 -1
- package/src/core/objects/view/changes/view.drop.ts +2 -1
- package/src/core/objects/view/changes/view.privilege.ts +4 -3
- package/src/core/objects/view/changes/view.types.ts +1 -0
- package/src/core/objects/view/view.diff.test.ts +96 -0
- package/src/core/objects/view/view.diff.ts +30 -15
- package/src/core/plan/sql-format/format-off.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-upper.test.ts +1 -1
- package/src/core/postgres-config.ts +2 -2
- package/src/core/sort/custom-constraints.ts +75 -1
- package/src/core/sort/logical-sort.ts +3 -27
- package/src/typedoc.ts +253 -0
- package/dist/core/integrations/filter/extractors.d.ts +0 -12
- package/dist/core/integrations/filter/extractors.js +0 -178
- package/src/core/integrations/filter/extractors.test.ts +0 -244
- package/src/core/integrations/filter/extractors.ts +0 -187
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration merging — combines multiple IntegrationDSL objects.
|
|
3
|
+
*
|
|
4
|
+
* - Filters are AND-combined
|
|
5
|
+
* - Serialize rules are concatenated (earlier integrations first = higher priority)
|
|
6
|
+
* - emptyCatalog: most-specific (last) integration's value wins
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Merge an ordered list of integrations into a single IntegrationDSL.
|
|
10
|
+
*
|
|
11
|
+
* Integrations are ordered from base (first) to most-specific (last).
|
|
12
|
+
* - Filters: AND-combined (all must pass)
|
|
13
|
+
* - Serialize: concatenated (base rules first → higher priority, first-match-wins)
|
|
14
|
+
* - emptyCatalog: most-specific non-undefined value wins
|
|
15
|
+
*
|
|
16
|
+
* @param integrations - Ordered list of integrations (base first, most-specific last)
|
|
17
|
+
* @returns A single merged IntegrationDSL
|
|
18
|
+
*/
|
|
19
|
+
export function mergeIntegrations(integrations) {
|
|
20
|
+
if (integrations.length === 0)
|
|
21
|
+
return {};
|
|
22
|
+
if (integrations.length === 1)
|
|
23
|
+
return integrations[0];
|
|
24
|
+
// Collect all filters
|
|
25
|
+
const filters = [];
|
|
26
|
+
for (const integration of integrations) {
|
|
27
|
+
if (integration.filter) {
|
|
28
|
+
filters.push(integration.filter);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Collect all serialize rules (base first = higher priority)
|
|
32
|
+
const serializeRules = [];
|
|
33
|
+
for (const integration of integrations) {
|
|
34
|
+
if (integration.serialize) {
|
|
35
|
+
serializeRules.push(...integration.serialize);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// emptyCatalog: most-specific (last) non-undefined wins
|
|
39
|
+
let emptyCatalog;
|
|
40
|
+
for (let i = integrations.length - 1; i >= 0; i--) {
|
|
41
|
+
if (integrations[i].emptyCatalog !== undefined) {
|
|
42
|
+
emptyCatalog = integrations[i].emptyCatalog;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const merged = {};
|
|
47
|
+
if (filters.length === 1) {
|
|
48
|
+
merged.filter = filters[0];
|
|
49
|
+
}
|
|
50
|
+
else if (filters.length > 1) {
|
|
51
|
+
merged.filter = { and: filters };
|
|
52
|
+
}
|
|
53
|
+
if (serializeRules.length > 0) {
|
|
54
|
+
merged.serialize = serializeRules;
|
|
55
|
+
}
|
|
56
|
+
if (emptyCatalog !== undefined) {
|
|
57
|
+
merged.emptyCatalog = emptyCatalog;
|
|
58
|
+
}
|
|
59
|
+
return merged;
|
|
60
|
+
}
|
|
@@ -4,14 +4,7 @@
|
|
|
4
4
|
* Reuses the filter pattern matching logic to determine when to apply serialization options.
|
|
5
5
|
*/
|
|
6
6
|
import { type FilterPattern } from "../filter/dsl.ts";
|
|
7
|
-
import type { ChangeSerializer } from "./serialize.types.ts";
|
|
8
|
-
/**
|
|
9
|
-
* Serialization options that can be passed to change.serialize().
|
|
10
|
-
*/
|
|
11
|
-
type SerializeOptions = {
|
|
12
|
-
skipAuthorization?: boolean;
|
|
13
|
-
[key: string]: unknown;
|
|
14
|
-
};
|
|
7
|
+
import type { ChangeSerializer, SerializeOptions } from "./serialize.types.ts";
|
|
15
8
|
/**
|
|
16
9
|
* A serialization rule that applies options when a pattern matches.
|
|
17
10
|
*/
|
|
@@ -27,8 +20,11 @@ type SerializeRule = {
|
|
|
27
20
|
options: SerializeOptions;
|
|
28
21
|
};
|
|
29
22
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
23
|
+
* Array of serialization rules evaluated in order. The first matching rule's
|
|
24
|
+
* options are passed to `change.serialize()`. If no rule matches, default
|
|
25
|
+
* serialization is used.
|
|
26
|
+
*
|
|
27
|
+
* @category Integration
|
|
32
28
|
*/
|
|
33
29
|
export type SerializeDSL = SerializeRule[];
|
|
34
30
|
/**
|
|
@@ -45,9 +41,9 @@ export type SerializeDSL = SerializeRule[];
|
|
|
45
41
|
* const serializer = compileSerializeDSL([
|
|
46
42
|
* {
|
|
47
43
|
* when: {
|
|
48
|
-
*
|
|
44
|
+
* objectType: "schema",
|
|
49
45
|
* operation: "create",
|
|
50
|
-
* owner: ["service_role"]
|
|
46
|
+
* "schema/owner": ["service_role"]
|
|
51
47
|
* },
|
|
52
48
|
* options: { skipAuthorization: true }
|
|
53
49
|
* }
|
|
@@ -18,9 +18,9 @@ import { evaluatePattern } from "../filter/dsl.js";
|
|
|
18
18
|
* const serializer = compileSerializeDSL([
|
|
19
19
|
* {
|
|
20
20
|
* when: {
|
|
21
|
-
*
|
|
21
|
+
* objectType: "schema",
|
|
22
22
|
* operation: "create",
|
|
23
|
-
* owner: ["service_role"]
|
|
23
|
+
* "schema/owner": ["service_role"]
|
|
24
24
|
* },
|
|
25
25
|
* options: { skipAuthorization: true }
|
|
26
26
|
* }
|
|
@@ -1,2 +1,33 @@
|
|
|
1
1
|
import type { Change } from "../../change.types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Shared serialization options passed to `change.serialize(options)`.
|
|
4
|
+
*
|
|
5
|
+
* This is the global source of truth for serialize-option flags used by the
|
|
6
|
+
* integration serialization DSL and concrete change serializers.
|
|
7
|
+
*
|
|
8
|
+
* @category Integration
|
|
9
|
+
*/
|
|
10
|
+
export type SerializeOptions = {
|
|
11
|
+
/** Skip `AUTHORIZATION` when serializing schema creation. */
|
|
12
|
+
skipAuthorization?: boolean;
|
|
13
|
+
/** Skip `WITH SCHEMA ...` when serializing extension creation. */
|
|
14
|
+
skipSchema?: boolean;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Schema-specific view of {@link SerializeOptions}.
|
|
18
|
+
*
|
|
19
|
+
* @category Integration
|
|
20
|
+
*/
|
|
21
|
+
export type SchemaSerializeOptions = Pick<SerializeOptions, "skipAuthorization">;
|
|
22
|
+
/**
|
|
23
|
+
* Extension-specific view of {@link SerializeOptions}.
|
|
24
|
+
*
|
|
25
|
+
* @category Integration
|
|
26
|
+
*/
|
|
27
|
+
export type ExtensionSerializeOptions = Pick<SerializeOptions, "skipSchema">;
|
|
28
|
+
/**
|
|
29
|
+
* Compiled serializer function used during plan/declarative export rendering.
|
|
30
|
+
*
|
|
31
|
+
* @category Integration
|
|
32
|
+
*/
|
|
2
33
|
export type ChangeSerializer = (change: Change) => string | undefined;
|
|
@@ -65,38 +65,59 @@ export const supabase = {
|
|
|
65
65
|
// TODO: emptyCatalog: undefined -- populate by running catalog-export on a clean Supabase container
|
|
66
66
|
filter: {
|
|
67
67
|
or: [
|
|
68
|
+
// Include user schema CREATE operations (only schemas not in system list)
|
|
68
69
|
{
|
|
69
70
|
and: [
|
|
70
71
|
{
|
|
71
|
-
|
|
72
|
+
objectType: "schema",
|
|
72
73
|
operation: "create",
|
|
73
74
|
scope: "object",
|
|
74
75
|
},
|
|
75
76
|
{
|
|
76
77
|
not: {
|
|
77
|
-
schema
|
|
78
|
+
// Schema objects have name, not schema — use schema/name
|
|
79
|
+
"schema/name": [...SUPABASE_SYSTEM_SCHEMAS],
|
|
78
80
|
},
|
|
79
81
|
},
|
|
80
82
|
],
|
|
81
83
|
},
|
|
84
|
+
// Include extension CREATEs
|
|
82
85
|
{
|
|
83
|
-
|
|
86
|
+
objectType: "extension",
|
|
84
87
|
operation: "create",
|
|
85
88
|
scope: "object",
|
|
86
89
|
},
|
|
90
|
+
// Include extension DROPs used to disable some extensions (eg: pg-net)
|
|
91
|
+
{
|
|
92
|
+
objectType: "extension",
|
|
93
|
+
operation: "drop",
|
|
94
|
+
scope: "object",
|
|
95
|
+
},
|
|
96
|
+
// Exclude system objects
|
|
87
97
|
{
|
|
88
98
|
not: {
|
|
89
99
|
or: [
|
|
100
|
+
// Objects in system schemas (*/schema matches table/schema, view/schema, etc.)
|
|
101
|
+
{
|
|
102
|
+
"*/schema": [...SUPABASE_SYSTEM_SCHEMAS],
|
|
103
|
+
},
|
|
104
|
+
// Schema objects whose own name is a system schema
|
|
105
|
+
{
|
|
106
|
+
"schema/name": [...SUPABASE_SYSTEM_SCHEMAS],
|
|
107
|
+
},
|
|
108
|
+
// Objects owned by system roles (*/owner matches table/owner, schema/owner, etc.)
|
|
90
109
|
{
|
|
91
|
-
|
|
110
|
+
"*/owner": [...SUPABASE_SYSTEM_ROLES],
|
|
92
111
|
},
|
|
112
|
+
// Role objects whose own name is a system role
|
|
93
113
|
{
|
|
94
|
-
|
|
114
|
+
"role/name": [...SUPABASE_SYSTEM_ROLES],
|
|
95
115
|
},
|
|
116
|
+
// Membership changes for system roles
|
|
96
117
|
{
|
|
97
118
|
and: [
|
|
98
119
|
{
|
|
99
|
-
|
|
120
|
+
objectType: "role",
|
|
100
121
|
scope: "membership",
|
|
101
122
|
},
|
|
102
123
|
{
|
|
@@ -112,14 +133,27 @@ export const supabase = {
|
|
|
112
133
|
serialize: [
|
|
113
134
|
{
|
|
114
135
|
when: {
|
|
115
|
-
|
|
136
|
+
objectType: "schema",
|
|
116
137
|
operation: "create",
|
|
117
138
|
scope: "object",
|
|
118
|
-
owner: [...SUPABASE_SYSTEM_ROLES],
|
|
139
|
+
"schema/owner": [...SUPABASE_SYSTEM_ROLES],
|
|
119
140
|
},
|
|
120
141
|
options: {
|
|
121
142
|
skipAuthorization: true,
|
|
122
143
|
},
|
|
123
144
|
},
|
|
145
|
+
// pgmq extensions creates it's own schema on install doing a `CREATE EXTENSION pgmq WITH SCHEMA pgmq;`
|
|
146
|
+
// will cause an error because the schema will create extension and extension refer to unexisting schema
|
|
147
|
+
{
|
|
148
|
+
when: {
|
|
149
|
+
objectType: "extension",
|
|
150
|
+
operation: "create",
|
|
151
|
+
scope: "object",
|
|
152
|
+
"extension/schema": ["pgmq"],
|
|
153
|
+
},
|
|
154
|
+
options: {
|
|
155
|
+
skipSchema: true,
|
|
156
|
+
},
|
|
157
|
+
},
|
|
124
158
|
],
|
|
125
159
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { AlterAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
export type AlterAggregate = AlterAggregateChangeOwner;
|
|
@@ -15,5 +16,5 @@ export declare class AlterAggregateChangeOwner extends AlterAggregateChange {
|
|
|
15
16
|
owner: string;
|
|
16
17
|
});
|
|
17
18
|
get requires(): `aggregate:${string}`[];
|
|
18
|
-
serialize(): string;
|
|
19
|
+
serialize(_options?: SerializeOptions): string;
|
|
19
20
|
}
|
|
@@ -16,7 +16,7 @@ export class AlterAggregateChangeOwner extends AlterAggregateChange {
|
|
|
16
16
|
get requires() {
|
|
17
17
|
return [this.aggregate.stableId];
|
|
18
18
|
}
|
|
19
|
-
serialize() {
|
|
19
|
+
serialize(_options) {
|
|
20
20
|
const signature = this.aggregate.identityArguments;
|
|
21
21
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
22
22
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { CreateAggregateChange, DropAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
export type CommentAggregate = CreateCommentOnAggregate | DropCommentOnAggregate;
|
|
@@ -9,7 +10,7 @@ export declare class CreateCommentOnAggregate extends CreateAggregateChange {
|
|
|
9
10
|
});
|
|
10
11
|
get creates(): `comment:${string}`[];
|
|
11
12
|
get requires(): `aggregate:${string}`[];
|
|
12
|
-
serialize(): string;
|
|
13
|
+
serialize(_options?: SerializeOptions): string;
|
|
13
14
|
}
|
|
14
15
|
export declare class DropCommentOnAggregate extends DropAggregateChange {
|
|
15
16
|
readonly aggregate: Aggregate;
|
|
@@ -19,5 +20,5 @@ export declare class DropCommentOnAggregate extends DropAggregateChange {
|
|
|
19
20
|
});
|
|
20
21
|
get drops(): `comment:${string}`[];
|
|
21
22
|
get requires(): (`comment:${string}` | `aggregate:${string}`)[];
|
|
22
|
-
serialize(): string;
|
|
23
|
+
serialize(_options?: SerializeOptions): string;
|
|
23
24
|
}
|
|
@@ -14,7 +14,7 @@ export class CreateCommentOnAggregate extends CreateAggregateChange {
|
|
|
14
14
|
get requires() {
|
|
15
15
|
return [this.aggregate.stableId];
|
|
16
16
|
}
|
|
17
|
-
serialize() {
|
|
17
|
+
serialize(_options) {
|
|
18
18
|
const signature = this.aggregate.identityArguments;
|
|
19
19
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
20
20
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -35,7 +35,7 @@ export class DropCommentOnAggregate extends DropAggregateChange {
|
|
|
35
35
|
get requires() {
|
|
36
36
|
return [stableId.comment(this.aggregate.stableId), this.aggregate.stableId];
|
|
37
37
|
}
|
|
38
|
-
serialize() {
|
|
38
|
+
serialize(_options) {
|
|
39
39
|
const signature = this.aggregate.identityArguments;
|
|
40
40
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
41
41
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { CreateAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
/**
|
|
@@ -15,5 +16,5 @@ export declare class CreateAggregate extends CreateAggregateChange {
|
|
|
15
16
|
});
|
|
16
17
|
get creates(): `aggregate:${string}`[];
|
|
17
18
|
get requires(): string[];
|
|
18
|
-
serialize(): string;
|
|
19
|
+
serialize(_options?: SerializeOptions): string;
|
|
19
20
|
}
|
|
@@ -110,7 +110,7 @@ export class CreateAggregate extends CreateAggregateChange {
|
|
|
110
110
|
// may reference types/functions). For now, we rely on pg_depend for these.
|
|
111
111
|
return Array.from(dependencies);
|
|
112
112
|
}
|
|
113
|
-
serialize() {
|
|
113
|
+
serialize(_options) {
|
|
114
114
|
const signature = this.aggregate.identityArguments;
|
|
115
115
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
116
116
|
const head = [
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { DropAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
/**
|
|
@@ -13,5 +14,5 @@ export declare class DropAggregate extends DropAggregateChange {
|
|
|
13
14
|
});
|
|
14
15
|
get drops(): `aggregate:${string}`[];
|
|
15
16
|
get requires(): `aggregate:${string}`[];
|
|
16
|
-
serialize(): string;
|
|
17
|
+
serialize(_options?: SerializeOptions): string;
|
|
17
18
|
}
|
|
@@ -17,7 +17,7 @@ export class DropAggregate extends DropAggregateChange {
|
|
|
17
17
|
get requires() {
|
|
18
18
|
return [this.aggregate.stableId];
|
|
19
19
|
}
|
|
20
|
-
serialize() {
|
|
20
|
+
serialize(_options) {
|
|
21
21
|
const signature = this.aggregate.identityArguments;
|
|
22
22
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
23
23
|
const withArgs = signature.length > 0 ? `(${signature})` : "(*)";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { AlterAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
export type AggregatePrivilege = GrantAggregatePrivileges | RevokeAggregatePrivileges | RevokeGrantOptionAggregatePrivileges;
|
|
@@ -21,7 +22,7 @@ export declare class GrantAggregatePrivileges extends AlterAggregateChange {
|
|
|
21
22
|
});
|
|
22
23
|
get creates(): `acl:${string}::grantee:${string}`[];
|
|
23
24
|
get requires(): (`role:${string}` | `aggregate:${string}`)[];
|
|
24
|
-
serialize(): string;
|
|
25
|
+
serialize(_options?: SerializeOptions): string;
|
|
25
26
|
}
|
|
26
27
|
export declare class RevokeAggregatePrivileges extends AlterAggregateChange {
|
|
27
28
|
readonly aggregate: Aggregate;
|
|
@@ -43,7 +44,7 @@ export declare class RevokeAggregatePrivileges extends AlterAggregateChange {
|
|
|
43
44
|
});
|
|
44
45
|
get drops(): `acl:${string}::grantee:${string}`[];
|
|
45
46
|
get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `aggregate:${string}`)[];
|
|
46
|
-
serialize(): string;
|
|
47
|
+
serialize(_options?: SerializeOptions): string;
|
|
47
48
|
}
|
|
48
49
|
export declare class RevokeGrantOptionAggregatePrivileges extends AlterAggregateChange {
|
|
49
50
|
readonly aggregate: Aggregate;
|
|
@@ -58,5 +59,5 @@ export declare class RevokeGrantOptionAggregatePrivileges extends AlterAggregate
|
|
|
58
59
|
version?: number;
|
|
59
60
|
});
|
|
60
61
|
get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `aggregate:${string}`)[];
|
|
61
|
-
serialize(): string;
|
|
62
|
+
serialize(_options?: SerializeOptions): string;
|
|
62
63
|
}
|
|
@@ -20,7 +20,7 @@ export class GrantAggregatePrivileges extends AlterAggregateChange {
|
|
|
20
20
|
get requires() {
|
|
21
21
|
return [this.aggregate.stableId, stableId.role(this.grantee)];
|
|
22
22
|
}
|
|
23
|
-
serialize() {
|
|
23
|
+
serialize(_options) {
|
|
24
24
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
25
25
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
26
26
|
if (hasGrantable && hasBase) {
|
|
@@ -61,7 +61,7 @@ export class RevokeAggregatePrivileges extends AlterAggregateChange {
|
|
|
61
61
|
stableId.role(this.grantee),
|
|
62
62
|
];
|
|
63
63
|
}
|
|
64
|
-
serialize() {
|
|
64
|
+
serialize(_options) {
|
|
65
65
|
const kindPrefix = getObjectKindPrefix("FUNCTION");
|
|
66
66
|
const list = this.privileges.map((p) => p.privilege);
|
|
67
67
|
const privSql = formatObjectPrivilegeList("FUNCTION", list, this.version);
|
|
@@ -91,7 +91,7 @@ export class RevokeGrantOptionAggregatePrivileges extends AlterAggregateChange {
|
|
|
91
91
|
stableId.role(this.grantee),
|
|
92
92
|
];
|
|
93
93
|
}
|
|
94
|
-
serialize() {
|
|
94
|
+
serialize(_options) {
|
|
95
95
|
const kindPrefix = getObjectKindPrefix("FUNCTION");
|
|
96
96
|
const privSql = formatObjectPrivilegeList("FUNCTION", this.privilegeNames, this.version);
|
|
97
97
|
const aggregateName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
@@ -3,4 +3,5 @@ import type { CommentAggregate } from "./aggregate.comment.ts";
|
|
|
3
3
|
import type { CreateAggregate } from "./aggregate.create.ts";
|
|
4
4
|
import type { DropAggregate } from "./aggregate.drop.ts";
|
|
5
5
|
import type { AggregatePrivilege } from "./aggregate.privilege.ts";
|
|
6
|
+
/** Union of all aggregate-related change variants (`objectType: "aggregate"`). @category Change Types */
|
|
6
7
|
export type AggregateChange = AlterAggregate | CommentAggregate | CreateAggregate | DropAggregate | AggregatePrivilege;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../integrations/serialize/serialize.types.ts";
|
|
1
2
|
type ChangeOperation = "create" | "alter" | "drop";
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base class for all change objects.
|
|
5
|
+
*
|
|
6
|
+
* Every concrete change (e.g. `CreateTable`, `AlterView`) extends this class and
|
|
7
|
+
* provides an `operation`, `objectType`, and `scope`. The filter DSL flattens
|
|
8
|
+
* these properties — along with the model sub-object — into path/value pairs
|
|
9
|
+
* for pattern matching.
|
|
10
|
+
*
|
|
11
|
+
* @category Base
|
|
12
|
+
*/
|
|
2
13
|
export declare abstract class BaseChange {
|
|
3
14
|
/**
|
|
4
15
|
* The operation of the change.
|
|
@@ -37,7 +48,7 @@ export declare abstract class BaseChange {
|
|
|
37
48
|
/**
|
|
38
49
|
* Serialize the change into a single SQL statement.
|
|
39
50
|
*/
|
|
40
|
-
abstract serialize(options?:
|
|
51
|
+
abstract serialize(options?: SerializeOptions): string;
|
|
41
52
|
}
|
|
42
53
|
/**
|
|
43
54
|
* Port of string literal quoting: doubles single quotes inside and wraps with single quotes
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base class for all change objects.
|
|
3
|
+
*
|
|
4
|
+
* Every concrete change (e.g. `CreateTable`, `AlterView`) extends this class and
|
|
5
|
+
* provides an `operation`, `objectType`, and `scope`. The filter DSL flattens
|
|
6
|
+
* these properties — along with the model sub-object — into path/value pairs
|
|
7
|
+
* for pattern matching.
|
|
8
|
+
*
|
|
9
|
+
* @category Base
|
|
10
|
+
*/
|
|
1
11
|
export class BaseChange {
|
|
2
12
|
/**
|
|
3
13
|
* A unique identifier for the change.
|
|
@@ -60,7 +60,10 @@ export declare abstract class BasePgModel {
|
|
|
60
60
|
*/
|
|
61
61
|
abstract get dataFields(): Record<string, unknown>;
|
|
62
62
|
/**
|
|
63
|
-
* Compare this object with another BasePgModel for equality based on stableId and
|
|
63
|
+
* Compare this object with another BasePgModel for equality based on the stableId and
|
|
64
|
+
* the data portion of the stable snapshot. By default, the snapshot's `data` comes
|
|
65
|
+
* from {@link dataFields}, but subclasses may override {@link stableSnapshot} to
|
|
66
|
+
* normalize or otherwise transform the data used for equality.
|
|
64
67
|
*/
|
|
65
68
|
equals(other: BasePgModel): boolean;
|
|
66
69
|
/**
|
|
@@ -28,11 +28,14 @@ export function normalizeColumns(columns) {
|
|
|
28
28
|
}
|
|
29
29
|
export class BasePgModel {
|
|
30
30
|
/**
|
|
31
|
-
* Compare this object with another BasePgModel for equality based on stableId and
|
|
31
|
+
* Compare this object with another BasePgModel for equality based on the stableId and
|
|
32
|
+
* the data portion of the stable snapshot. By default, the snapshot's `data` comes
|
|
33
|
+
* from {@link dataFields}, but subclasses may override {@link stableSnapshot} to
|
|
34
|
+
* normalize or otherwise transform the data used for equality.
|
|
32
35
|
*/
|
|
33
36
|
equals(other) {
|
|
34
37
|
return (this.stableId === other.stableId &&
|
|
35
|
-
deepEqual(this.
|
|
38
|
+
deepEqual(this.stableSnapshot().data, other.stableSnapshot().data));
|
|
36
39
|
}
|
|
37
40
|
/**
|
|
38
41
|
* Stable representation used for equality/fingerprints.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Collation } from "../collation.model.ts";
|
|
2
3
|
import { AlterCollationChange } from "./collation.base.ts";
|
|
3
4
|
/**
|
|
@@ -25,7 +26,7 @@ export declare class AlterCollationChangeOwner extends AlterCollationChange {
|
|
|
25
26
|
owner: string;
|
|
26
27
|
});
|
|
27
28
|
get requires(): `collation:${string}`[];
|
|
28
|
-
serialize(): string;
|
|
29
|
+
serialize(_options?: SerializeOptions): string;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
32
|
* ALTER COLLATION ... REFRESH VERSION
|
|
@@ -37,7 +38,7 @@ export declare class AlterCollationRefreshVersion extends AlterCollationChange {
|
|
|
37
38
|
collation: Collation;
|
|
38
39
|
});
|
|
39
40
|
get requires(): `collation:${string}`[];
|
|
40
|
-
serialize(): string;
|
|
41
|
+
serialize(_options?: SerializeOptions): string;
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
43
44
|
* Replace a collation by dropping and recreating it.
|
|
@@ -14,7 +14,7 @@ export class AlterCollationChangeOwner extends AlterCollationChange {
|
|
|
14
14
|
get requires() {
|
|
15
15
|
return [this.collation.stableId];
|
|
16
16
|
}
|
|
17
|
-
serialize() {
|
|
17
|
+
serialize(_options) {
|
|
18
18
|
return [
|
|
19
19
|
"ALTER COLLATION",
|
|
20
20
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -36,7 +36,7 @@ export class AlterCollationRefreshVersion extends AlterCollationChange {
|
|
|
36
36
|
get requires() {
|
|
37
37
|
return [this.collation.stableId];
|
|
38
38
|
}
|
|
39
|
-
serialize() {
|
|
39
|
+
serialize(_options) {
|
|
40
40
|
return [
|
|
41
41
|
"ALTER COLLATION",
|
|
42
42
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Collation } from "../collation.model.ts";
|
|
2
3
|
import { CreateCollationChange, DropCollationChange } from "./collation.base.ts";
|
|
3
4
|
export type CommentCollation = CreateCommentOnCollation | DropCommentOnCollation;
|
|
@@ -12,7 +13,7 @@ export declare class CreateCommentOnCollation extends CreateCollationChange {
|
|
|
12
13
|
});
|
|
13
14
|
get creates(): `comment:${string}`[];
|
|
14
15
|
get requires(): `collation:${string}`[];
|
|
15
|
-
serialize(): string;
|
|
16
|
+
serialize(_options?: SerializeOptions): string;
|
|
16
17
|
}
|
|
17
18
|
export declare class DropCommentOnCollation extends DropCollationChange {
|
|
18
19
|
readonly collation: Collation;
|
|
@@ -22,5 +23,5 @@ export declare class DropCommentOnCollation extends DropCollationChange {
|
|
|
22
23
|
});
|
|
23
24
|
get requires(): (`comment:${string}` | `collation:${string}`)[];
|
|
24
25
|
get drops(): `comment:${string}`[];
|
|
25
|
-
serialize(): string;
|
|
26
|
+
serialize(_options?: SerializeOptions): string;
|
|
26
27
|
}
|
|
@@ -17,7 +17,7 @@ export class CreateCommentOnCollation extends CreateCollationChange {
|
|
|
17
17
|
get requires() {
|
|
18
18
|
return [this.collation.stableId];
|
|
19
19
|
}
|
|
20
|
-
serialize() {
|
|
20
|
+
serialize(_options) {
|
|
21
21
|
return [
|
|
22
22
|
"COMMENT ON COLLATION",
|
|
23
23
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -40,7 +40,7 @@ export class DropCommentOnCollation extends DropCollationChange {
|
|
|
40
40
|
get drops() {
|
|
41
41
|
return [stableId.comment(this.collation.stableId)];
|
|
42
42
|
}
|
|
43
|
-
serialize() {
|
|
43
|
+
serialize(_options) {
|
|
44
44
|
return [
|
|
45
45
|
"COMMENT ON COLLATION",
|
|
46
46
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Collation } from "../collation.model.ts";
|
|
2
3
|
import { CreateCollationChange } from "./collation.base.ts";
|
|
3
4
|
/**
|
|
@@ -28,5 +29,5 @@ export declare class CreateCollation extends CreateCollationChange {
|
|
|
28
29
|
});
|
|
29
30
|
get creates(): `collation:${string}`[];
|
|
30
31
|
get requires(): string[];
|
|
31
|
-
serialize(): string;
|
|
32
|
+
serialize(_options?: SerializeOptions): string;
|
|
32
33
|
}
|
|
@@ -39,7 +39,7 @@ export class CreateCollation extends CreateCollationChange {
|
|
|
39
39
|
dependencies.add(stableId.role(this.collation.owner));
|
|
40
40
|
return Array.from(dependencies);
|
|
41
41
|
}
|
|
42
|
-
serialize() {
|
|
42
|
+
serialize(_options) {
|
|
43
43
|
const parts = ["CREATE COLLATION"];
|
|
44
44
|
// Add schema and name (already quoted in model extraction)
|
|
45
45
|
parts.push(`${this.collation.schema}.${this.collation.name}`);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Collation } from "../collation.model.ts";
|
|
2
3
|
import { DropCollationChange } from "./collation.base.ts";
|
|
3
4
|
/**
|
|
@@ -18,5 +19,5 @@ export declare class DropCollation extends DropCollationChange {
|
|
|
18
19
|
});
|
|
19
20
|
get requires(): `collation:${string}`[];
|
|
20
21
|
get drops(): `collation:${string}`[];
|
|
21
|
-
serialize(): string;
|
|
22
|
+
serialize(_options?: SerializeOptions): string;
|
|
22
23
|
}
|
|
@@ -2,4 +2,5 @@ import type { AlterCollation } from "./collation.alter.ts";
|
|
|
2
2
|
import type { CommentCollation } from "./collation.comment.ts";
|
|
3
3
|
import type { CreateCollation } from "./collation.create.ts";
|
|
4
4
|
import type { DropCollation } from "./collation.drop.ts";
|
|
5
|
+
/** Union of all collation-related change variants (`objectType: "collation"`). @category Change Types */
|
|
5
6
|
export type CollationChange = AlterCollation | CommentCollation | CreateCollation | DropCollation;
|