@pgpm/verify 0.12.0 → 0.14.0
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/LICENSE +1 -1
- package/README.md +28 -28
- package/__tests__/ext-verify.test.ts +1 -2
- package/package.json +8 -8
package/LICENSE
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
The MIT License (MIT)
|
|
2
2
|
|
|
3
3
|
Copyright (c) 2025 Dan Lynch <pyramation@gmail.com>
|
|
4
|
-
Copyright (c) 2025
|
|
4
|
+
Copyright (c) 2025 Constructive
|
|
5
5
|
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
# @pgpm/verify
|
|
2
2
|
|
|
3
3
|
<p align="center" width="100%">
|
|
4
|
-
<img height="250" src="https://raw.githubusercontent.com/
|
|
4
|
+
<img height="250" src="https://raw.githubusercontent.com/constructive-io/constructive/refs/heads/main/assets/outline-logo.svg" />
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center" width="100%">
|
|
8
|
-
<a href="https://github.com/
|
|
9
|
-
<img height="20" src="https://github.com/
|
|
8
|
+
<a href="https://github.com/constructive-io/pgpm-modules/actions/workflows/ci.yml">
|
|
9
|
+
<img height="20" src="https://github.com/constructive-io/pgpm-modules/actions/workflows/ci.yml/badge.svg" />
|
|
10
10
|
</a>
|
|
11
|
-
<a href="https://github.com/
|
|
12
|
-
<a href="https://www.npmjs.com/package/@pgpm/verify"><img height="20" src="https://img.shields.io/github/package-json/v/
|
|
11
|
+
<a href="https://github.com/constructive-io/pgpm-modules/blob/main/LICENSE"><img height="20" src="https://img.shields.io/badge/license-MIT-blue.svg"/></a>
|
|
12
|
+
<a href="https://www.npmjs.com/package/@pgpm/verify"><img height="20" src="https://img.shields.io/github/package-json/v/constructive-io/pgpm-modules?filename=packages%2Futils%2Fverify%2Fpackage.json"/></a>
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
|
-
Verification utilities for PostgreSQL
|
|
15
|
+
Verification utilities for PostgreSQL modules
|
|
16
16
|
|
|
17
17
|
## Overview
|
|
18
18
|
|
|
19
|
-
`@pgpm/verify` is the foundational verification package used by all
|
|
19
|
+
`@pgpm/verify` is the foundational verification package used by all PGPM modules. It provides SQL functions to verify the existence and correctness of database objects during deployment, testing, and migrations. This package is essential for the deploy/verify/revert pattern, ensuring that database changes are applied correctly and can be validated programmatically.
|
|
20
20
|
|
|
21
21
|
## Features
|
|
22
22
|
|
|
23
23
|
- **Comprehensive Verification**: Verify tables, functions, schemas, indexes, triggers, views, domains, and roles
|
|
24
|
-
- **Universal Dependency**: Required by all 22
|
|
24
|
+
- **Universal Dependency**: Required by all 22 pgpm packages
|
|
25
25
|
- **Deploy/Verify/Revert Pattern**: Core component of safe database migrations
|
|
26
26
|
- **Testing Support**: Essential for integration and unit tests
|
|
27
27
|
- **Error Detection**: Catch deployment issues early with clear error messages
|
|
@@ -41,7 +41,7 @@ This is a quick way to get started. The sections below provide more detailed ins
|
|
|
41
41
|
### Prerequisites
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
# Install pgpm CLI
|
|
44
|
+
# Install pgpm CLI
|
|
45
45
|
npm install -g pgpm
|
|
46
46
|
|
|
47
47
|
# Start local Postgres (via Docker) and export env vars
|
|
@@ -58,14 +58,14 @@ eval "$(pgpm env)"
|
|
|
58
58
|
pgpm install @pgpm/verify
|
|
59
59
|
|
|
60
60
|
# 2. Deploy locally
|
|
61
|
-
pgpm deploy
|
|
61
|
+
pgpm deploy
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
### **Add to a New Project**
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
67
|
# 1. Create a workspace
|
|
68
|
-
pgpm init
|
|
68
|
+
pgpm init workspace
|
|
69
69
|
|
|
70
70
|
# 2. Create your first module
|
|
71
71
|
cd my-workspace
|
|
@@ -292,16 +292,16 @@ describe('User Table', () => {
|
|
|
292
292
|
email text NOT NULL
|
|
293
293
|
)
|
|
294
294
|
`);
|
|
295
|
-
|
|
295
|
+
|
|
296
296
|
// Verify table was created
|
|
297
297
|
await pg.query(`SELECT verify.verify_table('public', 'users')`);
|
|
298
298
|
});
|
|
299
|
-
|
|
299
|
+
|
|
300
300
|
it('should create email index', async () => {
|
|
301
301
|
await pg.query(`
|
|
302
302
|
CREATE INDEX users_email_idx ON public.users(email)
|
|
303
303
|
`);
|
|
304
|
-
|
|
304
|
+
|
|
305
305
|
// Verify index was created
|
|
306
306
|
await pg.query(`SELECT verify.verify_index('public', 'users_email_idx')`);
|
|
307
307
|
});
|
|
@@ -318,28 +318,28 @@ DO $$
|
|
|
318
318
|
BEGIN
|
|
319
319
|
-- Create schema
|
|
320
320
|
CREATE SCHEMA IF NOT EXISTS app_jobs;
|
|
321
|
-
|
|
321
|
+
|
|
322
322
|
-- Verify schema was created
|
|
323
323
|
PERFORM verify.verify_schema('app_jobs');
|
|
324
|
-
|
|
324
|
+
|
|
325
325
|
-- Create table
|
|
326
326
|
CREATE TABLE app_jobs.jobs (
|
|
327
327
|
id serial PRIMARY KEY,
|
|
328
328
|
task_identifier text NOT NULL
|
|
329
329
|
);
|
|
330
|
-
|
|
330
|
+
|
|
331
331
|
-- Verify table was created
|
|
332
332
|
PERFORM verify.verify_table('app_jobs', 'jobs');
|
|
333
|
-
|
|
333
|
+
|
|
334
334
|
RAISE NOTICE 'Migration completed successfully';
|
|
335
335
|
END $$;
|
|
336
336
|
```
|
|
337
337
|
|
|
338
338
|
## Integration Examples
|
|
339
339
|
|
|
340
|
-
### With All
|
|
340
|
+
### With All pgpm modules
|
|
341
341
|
|
|
342
|
-
Every
|
|
342
|
+
Every pgpm module depends on `@pgpm/verify`:
|
|
343
343
|
|
|
344
344
|
**package.json:**
|
|
345
345
|
```json
|
|
@@ -438,16 +438,16 @@ None - this is the foundational package that all other packages depend on.
|
|
|
438
438
|
|
|
439
439
|
## Related Tooling
|
|
440
440
|
|
|
441
|
-
* [pgpm](https://github.com/
|
|
442
|
-
* [pgsql-test](https://github.com/
|
|
443
|
-
* [supabase-test](https://github.com/
|
|
444
|
-
* [graphile-test](https://github.com/
|
|
445
|
-
* [pgsql-parser](https://github.com/
|
|
446
|
-
* [libpg-query-node](https://github.com/
|
|
447
|
-
* [pg-proto-parser](https://github.com/
|
|
441
|
+
* [pgpm](https://github.com/constructive-io/constructive/tree/main/packages/pgpm): **🖥️ PostgreSQL Package Manager** for modular Postgres development. Works with database workspaces, scaffolding, migrations, seeding, and installing database packages.
|
|
442
|
+
* [pgsql-test](https://github.com/constructive-io/constructive/tree/main/packages/pgsql-test): **📊 Isolated testing environments** with per-test transaction rollbacks—ideal for integration tests, complex migrations, and RLS simulation.
|
|
443
|
+
* [supabase-test](https://github.com/constructive-io/constructive/tree/main/packages/supabase-test): **🧪 Supabase-native test harness** preconfigured for the local Supabase stack—per-test rollbacks, JWT/role context helpers, and CI/GitHub Actions ready.
|
|
444
|
+
* [graphile-test](https://github.com/constructive-io/constructive/tree/main/packages/graphile-test): **🔐 Authentication mocking** for Graphile-focused test helpers and emulating row-level security contexts.
|
|
445
|
+
* [pgsql-parser](https://github.com/constructive-io/pgsql-parser): **🔄 SQL conversion engine** that interprets and converts PostgreSQL syntax.
|
|
446
|
+
* [libpg-query-node](https://github.com/constructive-io/libpg-query-node): **🌉 Node.js bindings** for `libpg_query`, converting SQL into parse trees.
|
|
447
|
+
* [pg-proto-parser](https://github.com/constructive-io/pg-proto-parser): **📦 Protobuf parser** for parsing PostgreSQL Protocol Buffers definitions to generate TypeScript interfaces, utility functions, and JSON mappings for enums.
|
|
448
448
|
|
|
449
449
|
## Disclaimer
|
|
450
450
|
|
|
451
451
|
AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.
|
|
452
452
|
|
|
453
|
-
No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.
|
|
453
|
+
No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pgpm/verify",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Verification utilities for
|
|
3
|
+
"version": "0.14.0",
|
|
4
|
+
"description": "Verification utilities for PGPM deploy/verify/revert workflow",
|
|
5
5
|
"author": "Dan Lynch <pyramation@gmail.com>",
|
|
6
6
|
"contributors": [
|
|
7
|
-
"
|
|
7
|
+
"Constructive <developers@constructive.io>"
|
|
8
8
|
],
|
|
9
9
|
"keywords": [
|
|
10
10
|
"postgresql",
|
|
@@ -21,15 +21,15 @@
|
|
|
21
21
|
"test:watch": "jest --watch"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"pgpm": "^0.
|
|
24
|
+
"pgpm": "^1.0.0"
|
|
25
25
|
},
|
|
26
26
|
"repository": {
|
|
27
27
|
"type": "git",
|
|
28
|
-
"url": "https://github.com/
|
|
28
|
+
"url": "https://github.com/constructive-io/pgpm-modules"
|
|
29
29
|
},
|
|
30
|
-
"homepage": "https://github.com/
|
|
30
|
+
"homepage": "https://github.com/constructive-io/pgpm-modules",
|
|
31
31
|
"bugs": {
|
|
32
|
-
"url": "https://github.com/
|
|
32
|
+
"url": "https://github.com/constructive-io/pgpm-modules/issues"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "7369638ab084da95b0cb00ec63ad236637f6ebe5"
|
|
35
35
|
}
|