bloko 0.0.12 → 0.0.14

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.
@@ -1,13 +1,13 @@
1
1
  export function getConfig() {
2
- const password = process.env['BLOKO_PASSWORD'];
2
+ const password = process.env['BLOKO_PG_PASSWORD'];
3
3
  if (!password) {
4
- throw new Error('BLOKO_PASSWORD environment variable is required');
4
+ throw new Error('BLOKO_PG_PASSWORD environment variable is required');
5
5
  }
6
6
  return {
7
- host: process.env['BLOKO_HOST'] ?? 'localhost',
8
- port: parseInt(process.env['BLOKO_PORT'] ?? '5432', 10),
9
- database: process.env['BLOKO_DATABASE'] ?? 'bloko',
10
- user: process.env['BLOKO_USER'] ?? 'postgres',
7
+ host: process.env['BLOKO_PG_HOST'] ?? 'localhost',
8
+ port: parseInt(process.env['BLOKO_PG_PORT'] ?? '5432', 10),
9
+ database: process.env['BLOKO_PG_DATABASE'] ?? 'bloko',
10
+ user: process.env['BLOKO_PG_USER'] ?? 'postgres',
11
11
  password,
12
12
  };
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW;QAC9C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;QACvD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,OAAO;QAClD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU;QAC7C,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,WAAW;QACjD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;QAC1D,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO;QACrD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,UAAU;QAChD,QAAQ;KACT,CAAC;AACJ,CAAC"}
package/dist/cli/index.js CHANGED
@@ -55,11 +55,11 @@ Available presets:
55
55
  glossaries Multi-language glossary template
56
56
 
57
57
  Environment variables:
58
- BLOKO_HOST PostgreSQL host (default: localhost)
59
- BLOKO_PORT PostgreSQL port (default: 5432)
60
- BLOKO_DATABASE PostgreSQL database (default: bloko)
61
- BLOKO_USER PostgreSQL user (default: postgres)
62
- BLOKO_PASSWORD PostgreSQL password (required)
58
+ BLOKO_PG_HOST PostgreSQL host (default: localhost)
59
+ BLOKO_PG_PORT PostgreSQL port (default: 5432)
60
+ BLOKO_PG_DATABASE PostgreSQL database (default: bloko)
61
+ BLOKO_PG_USER PostgreSQL user (default: postgres)
62
+ BLOKO_PG_PASSWORD PostgreSQL password (required)
63
63
  `);
64
64
  }
65
65
  main();
@@ -21,13 +21,13 @@ export function contents(db) {
21
21
  return result.rows[0] ?? null;
22
22
  },
23
23
  async create(data) {
24
- const result = await db.query('INSERT INTO contents (_node, _block, value) VALUES ($1, $2, $3) RETURNING *', [data._node, data._block, data.value]);
24
+ const result = await db.query('INSERT INTO contents (_node, _block, value) VALUES ($1, $2, $3) RETURNING *', [data._node, data._block, JSON.stringify(data.value)]);
25
25
  return result.rows[0];
26
26
  },
27
27
  async upsert(data) {
28
28
  const result = await db.query(`INSERT INTO contents (_node, _block, value) VALUES ($1, $2, $3)
29
29
  ON CONFLICT (_node, _block) DO UPDATE SET value = $3
30
- RETURNING *`, [data._node, data._block, data.value]);
30
+ RETURNING *`, [data._node, data._block, JSON.stringify(data.value)]);
31
31
  return result.rows[0];
32
32
  },
33
33
  async update(id, data) {
@@ -44,7 +44,7 @@ export function contents(db) {
44
44
  }
45
45
  if (data.value !== undefined) {
46
46
  fields.push(`value = $${idx++}`);
47
- values.push(data.value);
47
+ values.push(JSON.stringify(data.value));
48
48
  }
49
49
  if (fields.length === 0)
50
50
  return this.findById(id);
@@ -1 +1 @@
1
- {"version":3,"file":"contents.js","sourceRoot":"","sources":["../../src/crud/contents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contents.js","sourceRoot":"","sources":["../../src/crud/contents.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,7 @@ export declare function createCrud(db: DB): {
49
49
  findByCode(collectionId: string, code: string): Promise<import("../types.js").Node | null>;
50
50
  findChildren(parentId: string): Promise<import("../types.js").Node[]>;
51
51
  findRoots(collectionId: string): Promise<import("../types.js").Node[]>;
52
+ findBySlug(lang: string, slug: string, parentId: string | null): Promise<import("../types.js").Node | null>;
52
53
  findByTemplate(templateId: string): Promise<import("../types.js").Node[]>;
53
54
  findByNodeType(nodeTypeId: string): Promise<import("../types.js").Node[]>;
54
55
  create(data: import("../types.js").NodeInsert): Promise<import("../types.js").Node>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crud/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAanC,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC;AAED,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crud/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAanC,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC;AAED,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -7,6 +7,7 @@ export declare function nodes(db: DB): {
7
7
  findByCode(collectionId: string, code: string): Promise<Node | null>;
8
8
  findChildren(parentId: string): Promise<Node[]>;
9
9
  findRoots(collectionId: string): Promise<Node[]>;
10
+ findBySlug(lang: string, slug: string, parentId: string | null): Promise<Node | null>;
10
11
  findByTemplate(templateId: string): Promise<Node[]>;
11
12
  findByNodeType(nodeTypeId: string): Promise<Node[]>;
12
13
  create(data: NodeInsert): Promise<Node>;
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/crud/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE;eAEP,OAAO,CAAC,IAAI,EAAE,CAAC;iBAKb,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;mCAKX,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;6BAQ9B,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;2BAQ7C,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;4BAQvB,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;+BAQrB,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;+BAQxB,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;iBAQtC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;eAa5B,MAAM,QAAQ,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;eAgE/C,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;EAK7C"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/crud/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE;eAEP,OAAO,CAAC,IAAI,EAAE,CAAC;iBAKb,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;mCAKX,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;6BAQ9B,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;2BAQ7C,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;4BAQvB,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;qBAQ/B,MAAM,QAAQ,MAAM,YAAY,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;+BAa1D,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;+BAQxB,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;iBAQtC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;eAa5B,MAAM,QAAQ,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;eAgE/C,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;EAK7C"}
@@ -24,6 +24,12 @@ export function nodes(db) {
24
24
  const result = await db.query('SELECT * FROM nodes WHERE _collection = $1 AND _parent IS NULL ORDER BY sort, code', [collectionId]);
25
25
  return result.rows;
26
26
  },
27
+ async findBySlug(lang, slug, parentId) {
28
+ const result = parentId
29
+ ? await db.query(`SELECT * FROM nodes WHERE slug->>$1 = $2 AND _parent = $3`, [lang, slug, parentId])
30
+ : await db.query(`SELECT * FROM nodes WHERE slug->>$1 = $2 AND _parent IS NULL`, [lang, slug]);
31
+ return result.rows[0] ?? null;
32
+ },
27
33
  async findByTemplate(templateId) {
28
34
  const result = await db.query('SELECT * FROM nodes WHERE _template = $1 ORDER BY sort, code', [templateId]);
29
35
  return result.rows;
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/crud/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/crud/nodes.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { type DB, type DBConfig } from './db.js';
2
2
  import { type Crud } from './crud/index.js';
3
3
  import { type S3Config, type ImageService } from './s3/index.js';
4
- export declare const VERSION = "0.0.12";
4
+ export declare const VERSION = "0.0.14";
5
5
  export interface BlokoConfig {
6
6
  db: DBConfig;
7
7
  s3?: S3Config;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { connect, disconnect } from './db.js';
2
2
  import { createCrud } from './crud/index.js';
3
3
  import { createS3Client, createImageService } from './s3/index.js';
4
- export const VERSION = '0.0.12';
4
+ export const VERSION = '0.0.14';
5
5
  export function createBloko(config) {
6
6
  const db = connect(config.db);
7
7
  const crud = createCrud(db);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bloko",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "type": "module",
5
5
  "description": "Multi-language CMS driver for PostgreSQL",
6
6
  "main": "dist/index.js",