@appixar/xpg 1.0.0 → 1.0.2

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/README.md ADDED
@@ -0,0 +1,403 @@
1
+ # @appixar/xpg
2
+
3
+ YAML-driven PostgreSQL schema management, diff-based migrations, and query service for Node.js.
4
+
5
+ Define your database tables in simple YAML files, and **xpg** automatically creates, updates, and manages your PostgreSQL schema — no manual SQL migrations needed.
6
+
7
+ ## Features
8
+
9
+ - **YAML Schema DSL** — Define tables with a concise, human-readable syntax
10
+ - **Diff-based migrations** — Automatically detects changes and generates `ALTER TABLE` statements
11
+ - **Custom field types** — Create reusable type aliases (`id`, `str`, `email`, etc.)
12
+ - **Read/write splitting** — Route queries to read replicas automatically
13
+ - **Multi-cluster support** — Manage multiple database clusters from a single config
14
+ - **Environment variable interpolation** — Use `<ENV.VAR_NAME>` in config files
15
+ - **CLI + Programmatic API** — Use from the terminal or import as a library
16
+ - **Dry run mode** — Preview SQL without executing
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install @appixar/xpg
22
+ ```
23
+
24
+ ## Quick Start
25
+
26
+ ### 1. Initialize
27
+
28
+ ```bash
29
+ npx xpg init
30
+ ```
31
+
32
+ This creates:
33
+
34
+ - `xpg.config.yml` — Database connection and custom field types
35
+ - `database/example.yml` — Sample table definition
36
+
37
+ ### 2. Configure
38
+
39
+ Edit `xpg.config.yml` with your PostgreSQL credentials:
40
+
41
+ ```yaml
42
+ POSTGRES:
43
+ DB:
44
+ "main":
45
+ NAME: my_database
46
+ HOST: <ENV.DB_HOST>
47
+ USER: <ENV.DB_USER>
48
+ PASS: <ENV.DB_PASS>
49
+ PORT: <ENV.DB_PORT>
50
+ PREF: app_ # Table prefix (optional)
51
+ PATH: [database] # Directories containing .yml schema files
52
+
53
+ CUSTOM_FIELDS:
54
+ "id":
55
+ Type: serial
56
+ Key: PRI
57
+ "str":
58
+ Type: varchar(64)
59
+ "text":
60
+ Type: text
61
+ "int":
62
+ Type: integer
63
+ "float":
64
+ Type: real
65
+ "date":
66
+ Type: timestamp
67
+ "email":
68
+ Type: varchar(128)
69
+ "phone":
70
+ Type: varchar(11)
71
+ "now":
72
+ Type: timestamp
73
+ Default: now()
74
+ "pid":
75
+ Type: varchar(12)
76
+ Key: UNI
77
+ Default: '"left"(md5((random())::text), 12)'
78
+ ```
79
+
80
+ ### 3. Define Tables
81
+
82
+ Create YAML files in your `database/` directory:
83
+
84
+ ```yaml
85
+ # database/users.yml
86
+ users:
87
+ user_id: id
88
+ user_name: str required
89
+ user_email: email unique index
90
+ user_status: str/32 default/active index
91
+ user_date_insert: now
92
+ ```
93
+
94
+ ### 4. Run Migrations
95
+
96
+ ```bash
97
+ npx xpg up
98
+ ```
99
+
100
+ xpg will automatically:
101
+
102
+ - **Create** tables that don't exist
103
+ - **Update** tables that changed (add/alter/drop columns, indexes, constraints)
104
+ - Apply a table prefix if configured (e.g. `app_users`)
105
+
106
+ ---
107
+
108
+ ## YAML Schema DSL
109
+
110
+ Each field is defined as `field_name: type [modifiers...]`
111
+
112
+ ### Types
113
+
114
+ Use any PostgreSQL type directly or a custom field alias:
115
+
116
+ | Alias | Resolves to | Notes |
117
+ |-------|-------------|-------|
118
+ | `id` | `SERIAL PRIMARY KEY` | Auto-increment, not null |
119
+ | `str` | `VARCHAR(64)` | Default string |
120
+ | `str/128` | `VARCHAR(128)` | Override length with `/N` |
121
+ | `text` | `TEXT` | Unlimited text |
122
+ | `int` | `INTEGER` | Integer |
123
+ | `float` | `REAL` | Float |
124
+ | `date` | `TIMESTAMP` | Timestamp |
125
+ | `email` | `VARCHAR(128)` | Semantic alias |
126
+ | `now` | `TIMESTAMP DEFAULT now()` | Auto-timestamp |
127
+ | `pid` | `VARCHAR(12) UNIQUE` | Random public ID |
128
+
129
+ You can also use raw PostgreSQL types: `varchar(255)`, `integer`, `boolean`, `jsonb`, `uuid`, `numeric(16,8)`, etc.
130
+
131
+ ### Modifiers
132
+
133
+ | Modifier | Description |
134
+ |----------|-------------|
135
+ | `required` | Adds `NOT NULL` constraint |
136
+ | `unique` | Adds `UNIQUE` constraint |
137
+ | `unique/group_name` | Composite unique constraint |
138
+ | `index` | Creates an index on this column |
139
+ | `index/group_name` | Composite index |
140
+ | `default/value` | Sets default value |
141
+
142
+ ### Examples
143
+
144
+ ```yaml
145
+ products:
146
+ product_id: id
147
+ product_name: varchar(200) required
148
+ product_price: numeric(10,2) required default/0
149
+ product_active: boolean default/true
150
+ product_metadata: jsonb default/{}
151
+ product_category: str index
152
+ product_sku: str/32 unique
153
+ product_date_insert: now
154
+
155
+ # Composite index on category + active
156
+ product_category: str index/cat_active
157
+ product_active: boolean index/cat_active
158
+
159
+ # Composite unique on name + category
160
+ product_name: varchar(200) unique/name_cat
161
+ product_category: str unique/name_cat
162
+ ```
163
+
164
+ ---
165
+
166
+ ## CLI
167
+
168
+ ```bash
169
+ npx xpg <command> [options]
170
+ ```
171
+
172
+ ### Commands
173
+
174
+ | Command | Description |
175
+ |---------|-------------|
176
+ | `xpg up` | Run database migrations |
177
+ | `xpg init` | Generate sample config files |
178
+
179
+ ### Options for `xpg up`
180
+
181
+ | Flag | Description |
182
+ |------|-------------|
183
+ | `--create` | Create the database if it doesn't exist |
184
+ | `--name <db>` | Target a specific database cluster by name |
185
+ | `--tenant <key>` | Target a specific tenant |
186
+ | `--dry` | Preview SQL queries without executing |
187
+ | `--mute` | Suppress all output |
188
+ | `--drop-orphans` | Drop tables that exist in DB but not in YAML |
189
+ | `--config <path>` | Path to a custom config file |
190
+ | `--no-color` | Disable colored terminal output |
191
+
192
+ ### Examples
193
+
194
+ ```bash
195
+ # Dry run — preview what would happen
196
+ npx xpg up --dry
197
+
198
+ # Create database if needed, then migrate
199
+ npx xpg up --create
200
+
201
+ # Target a specific cluster
202
+ npx xpg up --name main
203
+
204
+ # Remove tables not defined in YAML
205
+ npx xpg up --drop-orphans
206
+ ```
207
+
208
+ ---
209
+
210
+ ## Programmatic API
211
+
212
+ Import **xpg** as a library in your Node.js / Next.js project:
213
+
214
+ ### PgService — Query Service
215
+
216
+ ```typescript
217
+ import { PgService, loadConfig } from '@appixar/xpg';
218
+
219
+ const config = loadConfig();
220
+ const cluster = config.postgres.DB['main'];
221
+
222
+ const db = new PgService(cluster, 'main');
223
+
224
+ // Automatic read/write routing
225
+ const users = await db.query<{ user_id: number; user_name: string }>(
226
+ 'SELECT * FROM app_users WHERE user_status = :status',
227
+ { status: 'active' }
228
+ );
229
+
230
+ // Insert
231
+ const id = await db.insert('app_users', {
232
+ user_name: 'John',
233
+ user_email: 'john@example.com',
234
+ });
235
+
236
+ // Update
237
+ const affected = await db.update('app_users',
238
+ { user_status: 'inactive' }, // data
239
+ { user_id: 1 } // condition
240
+ );
241
+
242
+ // Update with string condition
243
+ await db.update('app_users',
244
+ { user_status: 'inactive' },
245
+ 'user_last_login < NOW() - INTERVAL \'30 days\''
246
+ );
247
+
248
+ // Close all pools when done
249
+ await PgService.closeAll();
250
+ ```
251
+
252
+ ### Named Parameters
253
+
254
+ Use `:paramName` syntax for safe, parameterized queries:
255
+
256
+ ```typescript
257
+ const rows = await db.query(
258
+ 'SELECT * FROM products WHERE price > :min AND category = :cat',
259
+ { min: 100, cat: 'electronics' }
260
+ );
261
+ ```
262
+
263
+ ### Read/Write Splitting
264
+
265
+ `PgService` automatically routes:
266
+
267
+ - **SELECT / SHOW / EXPLAIN / WITH** → read replica pool
268
+ - **INSERT / UPDATE / DELETE / CREATE / ALTER** → write (primary) pool
269
+
270
+ Force primary for reads when you need consistency:
271
+
272
+ ```typescript
273
+ const db = new PgService(cluster, 'main', { primary: true });
274
+ ```
275
+
276
+ ### Run Migrations Programmatically
277
+
278
+ ```typescript
279
+ import { up } from '@appixar/xpg';
280
+
281
+ const result = await up({
282
+ dry: false,
283
+ create: true,
284
+ mute: true,
285
+ });
286
+
287
+ console.log(`Executed ${result.executed} queries`);
288
+ console.log(`Failed: ${result.failed.length}`);
289
+ ```
290
+
291
+ ---
292
+
293
+ ## Read/Write Cluster Setup
294
+
295
+ Configure read replicas for automatic query routing:
296
+
297
+ ```yaml
298
+ POSTGRES:
299
+ DB:
300
+ "main":
301
+ - TYPE: write
302
+ NAME: my_database
303
+ HOST: primary.db.example.com
304
+ USER: admin
305
+ PASS: <ENV.DB_PASS>
306
+ PORT: 5432
307
+ PREF: app_
308
+ PATH: [database]
309
+ - TYPE: read
310
+ NAME: my_database
311
+ HOST: replica.db.example.com
312
+ USER: reader
313
+ PASS: <ENV.DB_READ_PASS>
314
+ PORT: 5432
315
+ ```
316
+
317
+ ---
318
+
319
+ ## Environment Variables
320
+
321
+ Use `<ENV.VAR_NAME>` syntax anywhere in `xpg.config.yml`:
322
+
323
+ ```yaml
324
+ HOST: <ENV.DB_HOST>
325
+ PASS: <ENV.DB_PASS>
326
+ ```
327
+
328
+ **xpg automatically loads `.env` from your project root** — no need for `dotenv` or any extra setup. Just create a `.env` file:
329
+
330
+ ```bash
331
+ DB_HOST=localhost
332
+ DB_USER=admin
333
+ DB_PASS=secret
334
+ DB_PORT=5432
335
+ ```
336
+
337
+ Rules:
338
+
339
+ - System environment variables always take precedence over `.env`
340
+ - Supports `export` prefix: `export DB_HOST=localhost`
341
+ - Supports inline comments: `DB_HOST=localhost # my local db`
342
+ - If a variable is not defined anywhere, xpg prints a warning and uses an empty string
343
+
344
+ ---
345
+
346
+ ## Config Resolution
347
+
348
+ xpg looks for configuration in this order:
349
+
350
+ 1. `--config <path>` CLI argument
351
+ 2. `xpg.config.yml` in the current directory
352
+ 3. `config/postgres.yml` + `config/custom_fields.yml` (PHP-compatible layout)
353
+
354
+ ---
355
+
356
+ ## How Migrations Work
357
+
358
+ When you run `xpg up`:
359
+
360
+ 1. **Load config** — Reads `xpg.config.yml` and interpolates env vars
361
+ 2. **Parse schemas** — Reads all `.yml` files in configured `PATH` directories
362
+ 3. **Connect** — Connects to PostgreSQL (optionally creating the database)
363
+ 4. **Diff** — Compares YAML schemas against the live database:
364
+ - New tables → `CREATE TABLE`
365
+ - Changed columns → `ALTER TABLE` (type, nullable, default)
366
+ - New indexes/constraints → `CREATE INDEX`, `ADD CONSTRAINT`
367
+ - Dropped indexes/constraints → `DROP INDEX`, `DROP CONSTRAINT`
368
+ - Orphan tables (with `--drop-orphans`) → `DROP TABLE`
369
+ 5. **Execute** — Runs all generated SQL queries sequentially
370
+ 6. **Report** — Shows a summary of executed/failed queries
371
+
372
+ ---
373
+
374
+ ## Supported PostgreSQL Types
375
+
376
+ | YAML Type | PostgreSQL Type |
377
+ |-----------|----------------|
378
+ | `serial` | `integer` (auto-increment) |
379
+ | `varchar(N)` | `character varying(N)` |
380
+ | `integer` / `int` | `integer` |
381
+ | `text` | `text` |
382
+ | `timestamp` | `timestamp without time zone` |
383
+ | `date` | `date` |
384
+ | `boolean` | `boolean` |
385
+ | `smallint` | `smallint` |
386
+ | `bigint` | `bigint` |
387
+ | `real` / `float` | `real` |
388
+ | `double` | `double precision` |
389
+ | `numeric(P,S)` | `numeric(P,S)` |
390
+ | `json` | `json` |
391
+ | `jsonb` | `jsonb` |
392
+ | `uuid` | `uuid` |
393
+
394
+ ---
395
+
396
+ ## Requirements
397
+
398
+ - Node.js ≥ 18
399
+ - PostgreSQL
400
+
401
+ ## License
402
+
403
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACjB;AAeD;;GAEG;AACH,wBAAsB,EAAE,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsP/E"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACjB;AAeD;;GAEG;AACH,wBAAsB,EAAE,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiQ/E"}
package/dist/builder.js CHANGED
@@ -230,6 +230,19 @@ export async function up(options = {}) {
230
230
  }
231
231
  }
232
232
  }
233
+ else if (mute) {
234
+ // Programmatic mode: execute without prompting (no stdin available)
235
+ for (const q of allQueries) {
236
+ try {
237
+ await pg.query(q.sql);
238
+ result.executed++;
239
+ }
240
+ catch (err) {
241
+ const errMsg = err.message;
242
+ result.failed.push({ sql: q.sql, error: errMsg });
243
+ }
244
+ }
245
+ }
233
246
  else {
234
247
  console.log('');
235
248
  console.log('Are you sure you want to do this? ☝');
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
File without changes
@@ -12,6 +12,8 @@ export interface LoadedConfig {
12
12
  * 1. `--config <path>` CLI argument → single file
13
13
  * 2. `xpg.config.yml` in CWD
14
14
  * 3. `config/postgres.yml` + `config/custom_fields.yml` (PHP-compatible layout)
15
+ *
16
+ * Automatically loads .env from CWD (and config dir if different).
15
17
  */
16
18
  export declare function loadConfig(configPath?: string): LoadedConfig;
17
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"configLoader.d.ts","sourceRoot":"","sources":["../src/configLoader.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA+BjE,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CA6C5D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG9E"}
1
+ {"version":3,"file":"configLoader.d.ts","sourceRoot":"","sources":["../src/configLoader.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAiEjE,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAkD5D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG9E"}
@@ -6,6 +6,44 @@
6
6
  import { readFileSync, existsSync } from 'node:fs';
7
7
  import { resolve, dirname } from 'node:path';
8
8
  import YAML from 'yaml';
9
+ /**
10
+ * Load variables from a .env file into process.env.
11
+ * Does NOT overwrite variables that already exist in process.env.
12
+ */
13
+ function loadDotEnv(dir) {
14
+ const envPath = resolve(dir, '.env');
15
+ if (!existsSync(envPath))
16
+ return;
17
+ const content = readFileSync(envPath, 'utf-8');
18
+ for (const line of content.split('\n')) {
19
+ let trimmed = line.trim();
20
+ if (!trimmed || trimmed.startsWith('#'))
21
+ continue;
22
+ // Strip `export ` prefix (common in .env files)
23
+ if (trimmed.startsWith('export '))
24
+ trimmed = trimmed.slice(7).trim();
25
+ const eqIdx = trimmed.indexOf('=');
26
+ if (eqIdx === -1)
27
+ continue;
28
+ const key = trimmed.slice(0, eqIdx).trim();
29
+ let val = trimmed.slice(eqIdx + 1).trim();
30
+ // Strip surrounding quotes
31
+ if ((val.startsWith('"') && val.endsWith('"')) ||
32
+ (val.startsWith("'") && val.endsWith("'"))) {
33
+ val = val.slice(1, -1);
34
+ }
35
+ else {
36
+ // Strip inline comments (only when not quoted)
37
+ const hashIdx = val.indexOf(' #');
38
+ if (hashIdx !== -1)
39
+ val = val.slice(0, hashIdx).trim();
40
+ }
41
+ // Only set if not already defined (real env takes precedence)
42
+ if (process.env[key] === undefined) {
43
+ process.env[key] = val;
44
+ }
45
+ }
46
+ }
9
47
  /**
10
48
  * Interpolate <ENV.VAR_NAME> placeholders with process.env values.
11
49
  */
@@ -42,16 +80,23 @@ function deepInterpolate(obj) {
42
80
  * 1. `--config <path>` CLI argument → single file
43
81
  * 2. `xpg.config.yml` in CWD
44
82
  * 3. `config/postgres.yml` + `config/custom_fields.yml` (PHP-compatible layout)
83
+ *
84
+ * Automatically loads .env from CWD (and config dir if different).
45
85
  */
46
86
  export function loadConfig(configPath) {
47
87
  let raw = {};
48
88
  let configDir = process.cwd();
89
+ // Load .env from CWD (most common case for external projects)
90
+ loadDotEnv(process.cwd());
49
91
  if (configPath) {
50
92
  const abs = resolve(configPath);
51
93
  if (!existsSync(abs))
52
94
  throw new Error(`Config file not found: ${abs}`);
53
95
  raw = YAML.parse(readFileSync(abs, 'utf-8')) ?? {};
54
96
  configDir = dirname(abs);
97
+ // Also load .env from config dir if it differs from CWD
98
+ if (configDir !== process.cwd())
99
+ loadDotEnv(configDir);
55
100
  }
56
101
  else if (existsSync(resolve(process.cwd(), 'xpg.config.yml'))) {
57
102
  const abs = resolve(process.cwd(), 'xpg.config.yml');
@@ -1 +1 @@
1
- {"version":3,"file":"configLoader.js","sourceRoot":"","sources":["../src/configLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configLoader.js","sourceRoot":"","sources":["../src/configLoader.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,6BAA6B;AAC7B,gDAAgD;AAChD,sEAAsE;AACtE,uEAAuE;AAEvE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IAEjC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,gDAAgD;QAChD,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,2BAA2B;QAC3B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACJ,+CAA+C;YAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,OAAO,KAAK,CAAC,CAAC;gBAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,8DAA8D;QAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAC3B,CAAC;IACL,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,2BAA2B,OAAO,uCAAuC,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAY;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,UAAmB;IAC1C,IAAI,GAAG,GAA4B,EAAE,CAAC;IACtC,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,8DAA8D;IAC9D,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE1B,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QACvE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,wDAAwD;QACxD,IAAI,SAAS,KAAK,OAAO,CAAC,GAAG,EAAE;YAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACrD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACJ,4BAA4B;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAElE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9D,0CAA0C;YAC1C,IAAI,KAAK,EAAE,QAAQ,EAAE,aAAa,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC;gBACjD,GAAG,CAAC,QAAoC,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC3F,CAAC;iBAAM,IAAI,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;gBACxC,GAAG,CAAC,QAAQ,GAAG,EAAE,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACnE,CAAC;QACL,CAAC;IACL,CAAC;IAED,oCAAoC;IACpC,GAAG,GAAG,eAAe,CAAC,GAAG,CAA4B,CAAC;IAEtD,MAAM,QAAQ,GAAI,GAAiC,CAAC,QAAQ,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACX,2FAA2F,CAC9F,CAAC;IACN,CAAC;IAED,MAAM,YAAY,GAAmC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC;IAElF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;IAClE,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appixar/xpg",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "YAML-driven PostgreSQL schema management, diff-based migrations, and query service",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -39,5 +39,9 @@
39
39
  "dist",
40
40
  "xpg.config.yml-sample"
41
41
  ],
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/appixar/x-ts-postgres.git"
45
+ },
42
46
  "license": "MIT"
43
47
  }