@owlmeans/postgres-resource 0.1.18-rc.41 → 0.1.18-rc.42

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 (82) hide show
  1. package/README.md +2 -2
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/postgres-resource/SKILL.md +2 -2
  4. package/build/declarations.d.ts +1 -8
  5. package/build/declarations.d.ts.map +1 -1
  6. package/build/declarations.js.map +1 -1
  7. package/build/errors.d.ts.map +1 -1
  8. package/build/errors.js.map +1 -1
  9. package/build/resource.d.ts +1 -1
  10. package/build/resource.d.ts.map +1 -1
  11. package/build/resource.js.map +1 -1
  12. package/build/types.d.ts +6 -1
  13. package/build/types.d.ts.map +1 -1
  14. package/build/types.local.d.ts +14 -0
  15. package/build/types.local.d.ts.map +1 -0
  16. package/build/types.local.js +2 -0
  17. package/build/types.local.js.map +1 -0
  18. package/build/utils/consts.local.d.ts +33 -0
  19. package/build/utils/consts.local.d.ts.map +1 -0
  20. package/build/utils/consts.local.js +61 -0
  21. package/build/utils/consts.local.js.map +1 -0
  22. package/build/utils/criteria.d.ts +2 -2
  23. package/build/utils/criteria.d.ts.map +1 -1
  24. package/build/utils/criteria.js +2 -3
  25. package/build/utils/criteria.js.map +1 -1
  26. package/build/utils/diff.d.ts.map +1 -1
  27. package/build/utils/diff.js +5 -3
  28. package/build/utils/diff.js.map +1 -1
  29. package/build/utils/index.d.ts +1 -0
  30. package/build/utils/index.d.ts.map +1 -1
  31. package/build/utils/index.js.map +1 -1
  32. package/build/utils/introspect.d.ts.map +1 -1
  33. package/build/utils/introspect.js +1 -29
  34. package/build/utils/introspect.js.map +1 -1
  35. package/build/utils/life-cycle.d.ts +3 -8
  36. package/build/utils/life-cycle.d.ts.map +1 -1
  37. package/build/utils/life-cycle.js +5 -2
  38. package/build/utils/life-cycle.js.map +1 -1
  39. package/build/utils/marshal.d.ts.map +1 -1
  40. package/build/utils/marshal.js +11 -5
  41. package/build/utils/marshal.js.map +1 -1
  42. package/build/utils/name.d.ts.map +1 -1
  43. package/build/utils/name.js +2 -2
  44. package/build/utils/name.js.map +1 -1
  45. package/build/utils/schema.d.ts.map +1 -1
  46. package/build/utils/schema.js +6 -4
  47. package/build/utils/schema.js.map +1 -1
  48. package/build/utils/sql.d.ts +1 -9
  49. package/build/utils/sql.d.ts.map +1 -1
  50. package/build/utils/sql.js +0 -0
  51. package/build/utils/sql.js.map +1 -1
  52. package/build/utils/sync.d.ts.map +1 -1
  53. package/build/utils/sync.js +6 -16
  54. package/build/utils/sync.js.map +1 -1
  55. package/build/utils/types.d.ts +18 -0
  56. package/build/utils/types.d.ts.map +1 -0
  57. package/build/utils/types.js +2 -0
  58. package/build/utils/types.js.map +1 -0
  59. package/build/utils/types.local.d.ts +33 -0
  60. package/build/utils/types.local.d.ts.map +1 -0
  61. package/build/utils/types.local.js +2 -0
  62. package/build/utils/types.local.js.map +1 -0
  63. package/package.json +14 -13
  64. package/src/declarations.ts +1 -9
  65. package/src/errors.ts +1 -11
  66. package/src/resource.ts +3 -11
  67. package/src/types.local.ts +16 -0
  68. package/src/types.ts +7 -4
  69. package/src/utils/consts.local.ts +68 -0
  70. package/src/utils/criteria.ts +4 -19
  71. package/src/utils/diff.ts +5 -4
  72. package/src/utils/index.ts +1 -0
  73. package/src/utils/introspect.ts +1 -32
  74. package/src/utils/life-cycle.ts +8 -15
  75. package/src/utils/marshal.ts +12 -7
  76. package/src/utils/name.ts +2 -3
  77. package/src/utils/schema.ts +8 -32
  78. package/src/utils/sql.ts +0 -0
  79. package/src/utils/sync.ts +6 -18
  80. package/src/utils/types.local.ts +35 -0
  81. package/src/utils/types.ts +19 -0
  82. package/tests/diff.spec.ts +24 -0
@@ -0,0 +1,19 @@
1
+ import type { PgRuntimeTable, TableSpec } from '../types.js'
2
+ import type { MigrationReport } from '@owlmeans/resource'
3
+ import type { BasicContext } from '@owlmeans/context'
4
+
5
+ export interface TableInit {
6
+ spec: TableSpec
7
+ /** The Drizzle table CRUD is built against. */
8
+ entity: PgRuntimeTable
9
+ reports: MigrationReport[]
10
+ }
11
+
12
+ /**
13
+ * The context a placeholder resolves through.
14
+ *
15
+ * Resolution reads exactly one thing — `context.resource(alias).table` — so the config a context
16
+ * carries is irrelevant here, and pinning one would force every caller holding a server context
17
+ * to cast its way in. Deliberately open, and named so callers pass what they already have.
18
+ */
19
+ export type PlaceholderContext = BasicContext<any>
@@ -109,3 +109,27 @@ describe('@owlmeans/postgres-resource — comparing a declared definition with t
109
109
  }
110
110
  })
111
111
  })
112
+
113
+ describe('@owlmeans/postgres-resource — NOT NULL constraints of Postgres 18', () => {
114
+ test('a not-null constraint row is never planned for a drop', () => {
115
+ // From 18 every NOT NULL is a pg_constraint row named `<table>_<column>_not_null`. The platform
116
+ // names its own constraints after the table too, so it took these for its own leftovers and sent
117
+ // `DROP CONSTRAINT …_id_not_null` — which Postgres refuses on a primary key column.
118
+ const live: LiveTable = {
119
+ exists: true,
120
+ columns: [
121
+ columnOf({ name: 'id', type: 'text' }),
122
+ columnOf({ name: 'title', type: 'text', notNull: false }),
123
+ ],
124
+ indexes: [],
125
+ constraints: [
126
+ { name: 'tasks_id_not_null', type: 'n', definition: 'NOT NULL id' },
127
+ { name: 'task_entry_id_not_null', type: 'n', definition: 'NOT NULL id' },
128
+ ],
129
+ }
130
+
131
+ const dropped = planSync(specOf('string'), live).statements.filter(statement => statement.kind === 'drop-constraint')
132
+ expect(dropped).toEqual([])
133
+ })
134
+ })
135
+