@byline/db-postgres 0.9.3

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 (99) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +18 -0
  3. package/dist/database/schema/auth.d.ts +857 -0
  4. package/dist/database/schema/auth.d.ts.map +1 -0
  5. package/dist/database/schema/auth.js +176 -0
  6. package/dist/database/schema/auth.js.map +1 -0
  7. package/dist/database/schema/index.d.ts +2955 -0
  8. package/dist/database/schema/index.d.ts.map +1 -0
  9. package/dist/database/schema/index.js +500 -0
  10. package/dist/database/schema/index.js.map +1 -0
  11. package/dist/index.d.ts +31 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +30 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/lib/test-helper.d.ts +17 -0
  16. package/dist/lib/test-helper.d.ts.map +1 -0
  17. package/dist/lib/test-helper.js +47 -0
  18. package/dist/lib/test-helper.js.map +1 -0
  19. package/dist/modules/admin/admin-permissions-repository.d.ts +17 -0
  20. package/dist/modules/admin/admin-permissions-repository.d.ts.map +1 -0
  21. package/dist/modules/admin/admin-permissions-repository.js +76 -0
  22. package/dist/modules/admin/admin-permissions-repository.js.map +1 -0
  23. package/dist/modules/admin/admin-roles-repository.d.ts +12 -0
  24. package/dist/modules/admin/admin-roles-repository.d.ts.map +1 -0
  25. package/dist/modules/admin/admin-roles-repository.js +168 -0
  26. package/dist/modules/admin/admin-roles-repository.js.map +1 -0
  27. package/dist/modules/admin/admin-store.d.ts +20 -0
  28. package/dist/modules/admin/admin-store.d.ts.map +1 -0
  29. package/dist/modules/admin/admin-store.js +28 -0
  30. package/dist/modules/admin/admin-store.js.map +1 -0
  31. package/dist/modules/admin/admin-users-repository.d.ts +12 -0
  32. package/dist/modules/admin/admin-users-repository.d.ts.map +1 -0
  33. package/dist/modules/admin/admin-users-repository.js +208 -0
  34. package/dist/modules/admin/admin-users-repository.js.map +1 -0
  35. package/dist/modules/admin/index.d.ts +27 -0
  36. package/dist/modules/admin/index.d.ts.map +1 -0
  37. package/dist/modules/admin/index.js +27 -0
  38. package/dist/modules/admin/index.js.map +1 -0
  39. package/dist/modules/admin/refresh-tokens-repository.d.ts +16 -0
  40. package/dist/modules/admin/refresh-tokens-repository.d.ts.map +1 -0
  41. package/dist/modules/admin/refresh-tokens-repository.js +132 -0
  42. package/dist/modules/admin/refresh-tokens-repository.js.map +1 -0
  43. package/dist/modules/admin/tests/auth-integration.test.d.ts +9 -0
  44. package/dist/modules/admin/tests/auth-integration.test.d.ts.map +1 -0
  45. package/dist/modules/admin/tests/auth-integration.test.js +392 -0
  46. package/dist/modules/admin/tests/auth-integration.test.js.map +1 -0
  47. package/dist/modules/admin/tests/session-provider.test.d.ts +9 -0
  48. package/dist/modules/admin/tests/session-provider.test.d.ts.map +1 -0
  49. package/dist/modules/admin/tests/session-provider.test.js +370 -0
  50. package/dist/modules/admin/tests/session-provider.test.js.map +1 -0
  51. package/dist/modules/storage/@types.d.ts +116 -0
  52. package/dist/modules/storage/@types.d.ts.map +1 -0
  53. package/dist/modules/storage/@types.js +9 -0
  54. package/dist/modules/storage/@types.js.map +1 -0
  55. package/dist/modules/storage/storage-commands.d.ts +136 -0
  56. package/dist/modules/storage/storage-commands.d.ts.map +1 -0
  57. package/dist/modules/storage/storage-commands.js +272 -0
  58. package/dist/modules/storage/storage-commands.js.map +1 -0
  59. package/dist/modules/storage/storage-flatten.d.ts +19 -0
  60. package/dist/modules/storage/storage-flatten.d.ts.map +1 -0
  61. package/dist/modules/storage/storage-flatten.js +261 -0
  62. package/dist/modules/storage/storage-flatten.js.map +1 -0
  63. package/dist/modules/storage/storage-insert.d.ts +22 -0
  64. package/dist/modules/storage/storage-insert.d.ts.map +1 -0
  65. package/dist/modules/storage/storage-insert.js +115 -0
  66. package/dist/modules/storage/storage-insert.js.map +1 -0
  67. package/dist/modules/storage/storage-queries.d.ts +377 -0
  68. package/dist/modules/storage/storage-queries.d.ts.map +1 -0
  69. package/dist/modules/storage/storage-queries.js +976 -0
  70. package/dist/modules/storage/storage-queries.js.map +1 -0
  71. package/dist/modules/storage/storage-restore.d.ts +19 -0
  72. package/dist/modules/storage/storage-restore.d.ts.map +1 -0
  73. package/dist/modules/storage/storage-restore.js +350 -0
  74. package/dist/modules/storage/storage-restore.js.map +1 -0
  75. package/dist/modules/storage/storage-store-manifest.d.ts +71 -0
  76. package/dist/modules/storage/storage-store-manifest.d.ts.map +1 -0
  77. package/dist/modules/storage/storage-store-manifest.js +294 -0
  78. package/dist/modules/storage/storage-store-manifest.js.map +1 -0
  79. package/dist/modules/storage/storage-utils.d.ts +23 -0
  80. package/dist/modules/storage/storage-utils.d.ts.map +1 -0
  81. package/dist/modules/storage/storage-utils.js +72 -0
  82. package/dist/modules/storage/storage-utils.js.map +1 -0
  83. package/dist/modules/storage/tests/storage-field-types.test.d.ts +9 -0
  84. package/dist/modules/storage/tests/storage-field-types.test.d.ts.map +1 -0
  85. package/dist/modules/storage/tests/storage-field-types.test.js +146 -0
  86. package/dist/modules/storage/tests/storage-field-types.test.js.map +1 -0
  87. package/dist/modules/storage/tests/storage-flatten-reconstruct.test.d.ts +9 -0
  88. package/dist/modules/storage/tests/storage-flatten-reconstruct.test.d.ts.map +1 -0
  89. package/dist/modules/storage/tests/storage-flatten-reconstruct.test.js +327 -0
  90. package/dist/modules/storage/tests/storage-flatten-reconstruct.test.js.map +1 -0
  91. package/dist/modules/storage/tests/storage-store-manifest.test.d.ts +9 -0
  92. package/dist/modules/storage/tests/storage-store-manifest.test.d.ts.map +1 -0
  93. package/dist/modules/storage/tests/storage-store-manifest.test.js +141 -0
  94. package/dist/modules/storage/tests/storage-store-manifest.test.js.map +1 -0
  95. package/dist/modules/storage/tests/storage-versioning.test.d.ts +9 -0
  96. package/dist/modules/storage/tests/storage-versioning.test.d.ts.map +1 -0
  97. package/dist/modules/storage/tests/storage-versioning.test.js +336 -0
  98. package/dist/modules/storage/tests/storage-versioning.test.js.map +1 -0
  99. package/package.json +81 -0
@@ -0,0 +1,336 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import assert from 'node:assert';
9
+ import { after, before, describe, it } from 'node:test';
10
+ import { setupTestDB, teardownTestDB } from '../../../lib/test-helper.js';
11
+ // Test database setup
12
+ let commandBuilders;
13
+ let queryBuilders;
14
+ const timestamp = Date.now();
15
+ const VersionsCollectionConfig = {
16
+ path: `versioning-${timestamp}`,
17
+ labels: {
18
+ singular: 'Version',
19
+ plural: 'Versions',
20
+ },
21
+ fields: [
22
+ { name: 'sku', type: 'text' /* unique: true */ },
23
+ { name: 'name', type: 'text', localized: true },
24
+ { name: 'description', type: 'richText', localized: true },
25
+ { name: 'price', type: 'decimal' },
26
+ { name: 'inStock', type: 'boolean' },
27
+ { name: 'releaseDate', type: 'datetime', optional: true },
28
+ { name: 'category', type: 'relation', targetCollection: 'categories', optional: true },
29
+ {
30
+ name: 'images',
31
+ type: 'array',
32
+ fields: [
33
+ {
34
+ name: 'imageItem',
35
+ type: 'array',
36
+ fields: [
37
+ { name: 'image', type: 'file' },
38
+ { name: 'alt', type: 'text', localized: true },
39
+ { name: 'caption', type: 'text', optional: true, localized: true },
40
+ ],
41
+ },
42
+ ],
43
+ },
44
+ {
45
+ name: 'specifications',
46
+ type: 'array',
47
+ fields: [
48
+ {
49
+ name: 'specificationItem',
50
+ type: 'array',
51
+ fields: [
52
+ { name: 'key', type: 'text', localized: true },
53
+ { name: 'value', type: 'text', localized: true },
54
+ { name: 'unit', type: 'text', optional: true },
55
+ ],
56
+ },
57
+ ],
58
+ },
59
+ {
60
+ name: 'reviews',
61
+ type: 'array',
62
+ fields: [
63
+ {
64
+ name: 'reviewItem',
65
+ type: 'array',
66
+ fields: [
67
+ { name: 'rating', type: 'integer' },
68
+ { name: 'comment', type: 'richText', localized: false },
69
+ ],
70
+ },
71
+ ],
72
+ },
73
+ ],
74
+ };
75
+ // Complex test document with many fields and arrays
76
+ const complexProductDocument = {
77
+ sku: 'FOO-12345',
78
+ name: {
79
+ en: 'Premium Wireless Headphones',
80
+ es: 'Auriculares Inalámbricos Premium',
81
+ fr: 'Casque Sans Fil Premium',
82
+ },
83
+ description: {
84
+ en: {
85
+ type: 'paragraph',
86
+ content: [{ type: 'text', text: 'High-quality wireless headphones with noise cancellation' }],
87
+ },
88
+ es: {
89
+ type: 'paragraph',
90
+ content: [
91
+ { type: 'text', text: 'Auriculares inalámbricos de alta calidad con cancelación de ruido' },
92
+ ],
93
+ },
94
+ fr: {
95
+ type: 'paragraph',
96
+ content: [
97
+ { type: 'text', text: 'Casque sans fil de haute qualité avec suppression du bruit' },
98
+ ],
99
+ },
100
+ },
101
+ price: 299.99,
102
+ inStock: true,
103
+ releaseDate: new Date('2024-01-15T10:00:00Z'),
104
+ images: [
105
+ {
106
+ imageItem: {
107
+ image: {
108
+ fileId: '018dd0b2-9a2a-7f01-b8b2-a0c719d0f5b3',
109
+ filename: 'headphones-main.jpg',
110
+ originalFilename: 'wireless-headphones.jpg',
111
+ mimeType: 'image/jpeg',
112
+ fileSize: 2048000,
113
+ storageProvider: 's3',
114
+ storagePath: '/products/img-001.jpg',
115
+ },
116
+ alt: {
117
+ en: 'Premium wireless headphones front view',
118
+ es: 'Vista frontal de auriculares inalámbricos premium',
119
+ fr: 'Vue de face du casque sans fil premium',
120
+ },
121
+ caption: {
122
+ en: 'Sleek design with premium materials',
123
+ es: 'Diseño elegante con materiales premium',
124
+ fr: 'Design élégant avec des matériaux premium',
125
+ },
126
+ },
127
+ },
128
+ {
129
+ imageItem: {
130
+ image: {
131
+ fileId: '018dd0b2-9a2a-7f02-8e73-f4c5a9e3d6b8',
132
+ filename: 'headphones-side.jpg',
133
+ originalFilename: 'side-view.jpg',
134
+ mimeType: 'image/jpeg',
135
+ fileSize: 1536000,
136
+ storageProvider: 's3',
137
+ storagePath: '/products/img-002.jpg',
138
+ },
139
+ alt: {
140
+ en: 'Side view showing comfort padding',
141
+ es: 'Vista lateral mostrando acolchado cómodo',
142
+ fr: 'Vue de côté montrant le rembourrage confortable',
143
+ },
144
+ caption: {
145
+ en: 'Side view showing comfort padding',
146
+ es: 'Vista lateral mostrando acolchado cómodo',
147
+ fr: 'Vue de côté montrant le rembourrage confortable',
148
+ },
149
+ },
150
+ },
151
+ ],
152
+ specifications: [
153
+ {
154
+ specificationItem: {
155
+ key: {
156
+ en: 'Battery Life',
157
+ es: 'Duración de la Batería',
158
+ fr: 'Autonomie de la Batterie',
159
+ },
160
+ value: {
161
+ en: '30 hours',
162
+ es: '30 horas',
163
+ fr: '30 heures',
164
+ },
165
+ unit: 'hours',
166
+ },
167
+ },
168
+ {
169
+ specificationItem: {
170
+ key: {
171
+ en: 'Weight',
172
+ es: 'Peso',
173
+ fr: 'Poids',
174
+ },
175
+ value: {
176
+ en: '250g',
177
+ es: '250g',
178
+ fr: '250g',
179
+ },
180
+ unit: 'grams',
181
+ },
182
+ },
183
+ {
184
+ specificationItem: {
185
+ key: {
186
+ en: 'Driver Size',
187
+ es: 'Tamaño del Driver',
188
+ fr: 'Taille du Haut-parleur',
189
+ },
190
+ value: {
191
+ en: '40mm',
192
+ es: '40mm',
193
+ fr: '40mm',
194
+ },
195
+ unit: 'mm',
196
+ },
197
+ },
198
+ ],
199
+ reviews: [
200
+ {
201
+ reviewItem: { rating: 5, comment: { root: { paragraph: 'Some review text here...' } } },
202
+ },
203
+ {
204
+ reviewItem: {
205
+ rating: 6,
206
+ comment: { root: { paragraph: 'Some more reviews here...' } },
207
+ },
208
+ },
209
+ ],
210
+ };
211
+ // Global test variables
212
+ let testCollection = {};
213
+ describe('03 Document Creation and Versioning', () => {
214
+ before(async () => {
215
+ // Connect to test database
216
+ const testDB = setupTestDB([VersionsCollectionConfig]);
217
+ commandBuilders = testDB.commandBuilders;
218
+ queryBuilders = testDB.queryBuilders;
219
+ // Create test collection — use config.path so it matches the definition
220
+ const result = await commandBuilders.collections.create(VersionsCollectionConfig.path, VersionsCollectionConfig);
221
+ const collection = result[0];
222
+ if (collection == null) {
223
+ throw new Error('Failed to create test collection');
224
+ }
225
+ testCollection = { id: collection.id, name: collection.path };
226
+ console.log('Test collection created:', testCollection);
227
+ });
228
+ after(async () => {
229
+ // Clean up test collection (cascades to documents)
230
+ try {
231
+ await commandBuilders.collections.delete(testCollection.id);
232
+ console.log('Test collection and documents cleaned up');
233
+ }
234
+ catch (error) {
235
+ console.error('Failed to cleanup test collection:', error);
236
+ }
237
+ await teardownTestDB();
238
+ });
239
+ describe('Should create documents and document versions', () => {
240
+ it('should create a document', async () => {
241
+ const timestamp = Date.now();
242
+ const docData = structuredClone(complexProductDocument);
243
+ docData.sku = `PROD-${timestamp}`;
244
+ docData.name.en = `Product ${timestamp}`;
245
+ const result = await commandBuilders.documents.createDocumentVersion({
246
+ collectionId: testCollection.id,
247
+ collectionVersion: 1,
248
+ collectionConfig: VersionsCollectionConfig,
249
+ action: 'create',
250
+ documentData: docData,
251
+ path: docData.sku,
252
+ locale: 'all',
253
+ status: 'draft',
254
+ });
255
+ console.log('Document created:', result);
256
+ assert.notStrictEqual(result.document.document_id, null, 'Document creation failed');
257
+ });
258
+ it('should create a document and document version with the same path', async () => {
259
+ const timestamp = Date.now();
260
+ const docData = structuredClone(complexProductDocument);
261
+ docData.sku = `PROD-${timestamp}`;
262
+ docData.name.en = `Product ${timestamp}`;
263
+ const firstVersion = await commandBuilders.documents.createDocumentVersion({
264
+ collectionId: testCollection.id,
265
+ collectionVersion: 1,
266
+ collectionConfig: VersionsCollectionConfig,
267
+ action: 'create',
268
+ documentData: docData,
269
+ path: docData.sku,
270
+ locale: 'all',
271
+ status: 'draft',
272
+ });
273
+ console.log('firstVersion created:', firstVersion);
274
+ assert.notStrictEqual(firstVersion.document.document_id, null, 'Document creation failed');
275
+ const secondVersion = await commandBuilders.documents.createDocumentVersion({
276
+ documentId: firstVersion.document.document_id,
277
+ collectionId: testCollection.id,
278
+ collectionVersion: 1,
279
+ collectionConfig: VersionsCollectionConfig,
280
+ action: 'update',
281
+ documentData: docData,
282
+ path: docData.sku,
283
+ locale: 'all',
284
+ status: 'draft',
285
+ });
286
+ console.log('secondVersion created:', secondVersion);
287
+ });
288
+ it('should create multiple versions of a document and return a version history', async () => {
289
+ const timestamp = Date.now();
290
+ const docData = structuredClone(complexProductDocument);
291
+ docData.sku = `PROD-${timestamp}`;
292
+ docData.name.en = `Product ${timestamp}`;
293
+ const firstVersion = await commandBuilders.documents.createDocumentVersion({
294
+ collectionId: testCollection.id,
295
+ collectionVersion: 1,
296
+ collectionConfig: VersionsCollectionConfig,
297
+ action: 'create',
298
+ documentData: docData,
299
+ path: docData.sku,
300
+ locale: 'all',
301
+ status: 'draft',
302
+ });
303
+ assert.notStrictEqual(firstVersion.document.document_id, null, 'Document creation failed');
304
+ const secondVersion = await commandBuilders.documents.createDocumentVersion({
305
+ documentId: firstVersion.document.document_id,
306
+ collectionId: testCollection.id,
307
+ collectionVersion: 1,
308
+ collectionConfig: VersionsCollectionConfig,
309
+ action: 'update',
310
+ documentData: docData,
311
+ path: docData.sku,
312
+ locale: 'all',
313
+ status: 'draft',
314
+ });
315
+ assert.notStrictEqual(secondVersion.document.document_id, null, 'Document creation failed');
316
+ const thirdVersion = await commandBuilders.documents.createDocumentVersion({
317
+ documentId: firstVersion.document.document_id,
318
+ collectionId: testCollection.id,
319
+ collectionVersion: 1,
320
+ collectionConfig: VersionsCollectionConfig,
321
+ action: 'update',
322
+ documentData: docData,
323
+ path: docData.sku,
324
+ locale: 'all',
325
+ status: 'draft',
326
+ });
327
+ assert.notStrictEqual(thirdVersion.document.document_id, null, 'Document creation failed');
328
+ const versionHistory = await queryBuilders.documents.getDocumentHistory({
329
+ collection_id: testCollection.id,
330
+ document_id: firstVersion.document.document_id,
331
+ });
332
+ console.log('Version history:', versionHistory);
333
+ });
334
+ });
335
+ });
336
+ //# sourceMappingURL=storage-versioning.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-versioning.test.js","sourceRoot":"","sources":["../../../../src/modules/storage/tests/storage-versioning.test.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "@byline/db-postgres",
3
+ "private": false,
4
+ "license": "MPL-2.0",
5
+ "version": "0.9.3",
6
+ "engines": {
7
+ "node": ">=20.9.0"
8
+ },
9
+ "description": "Byline CMS db postgres package",
10
+ "keywords": [
11
+ "cms",
12
+ "headless cms",
13
+ "content management"
14
+ ],
15
+ "homepage": "https://github.com/Byline-CMS/bylinecms.dev",
16
+ "bugs": {
17
+ "url": "https://github.com/Byline-CMS/bylinecms.dev/issues"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/Byline-CMS/bylinecms.dev.git",
22
+ "directory": "packages/db-postgres"
23
+ },
24
+ "type": "module",
25
+ "main": "dist/index.js",
26
+ "index": "dist/index.js",
27
+ "types": "dist/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/index.d.ts",
31
+ "import": "./dist/index.js",
32
+ "require": "./dist/index.js"
33
+ },
34
+ "./package.json": "./package.json"
35
+ },
36
+ "files": [
37
+ "dist"
38
+ ],
39
+ "dependencies": {
40
+ "drizzle-orm": "^0.45.2",
41
+ "npm-run-all": "^4.1.5",
42
+ "pg": "^8.20.0",
43
+ "uuid": "^14.0.0",
44
+ "zod": "^4.4.2",
45
+ "@byline/core": "0.9.3",
46
+ "@byline/auth": "0.9.3",
47
+ "@byline/admin": "0.9.3"
48
+ },
49
+ "devDependencies": {
50
+ "@biomejs/biome": "2.4.14",
51
+ "@types/node": "^25.6.0",
52
+ "@types/pg": "^8.20.0",
53
+ "chokidar": "^5.0.0",
54
+ "chokidar-cli": "^3.0.0",
55
+ "drizzle-kit": "^0.31.10",
56
+ "tsc-alias": "^1.8.17",
57
+ "tsx": "^4.21.0",
58
+ "typescript": "6.0.3"
59
+ },
60
+ "publishConfig": {
61
+ "access": "public",
62
+ "index": "dist/index.js",
63
+ "registry": "https://registry.npmjs.org/"
64
+ },
65
+ "scripts": {
66
+ "dev": "chokidar 'src/**/*' -c 'npm-run-all build'",
67
+ "build": "tsc -p tsconfig.json && tsc-alias",
68
+ "clean": "rimraf node_modules dist build .turbo",
69
+ "lint": "biome check --write --unsafe --diagnostic-level=error",
70
+ "skip": "tsx ./scripts/task-watch.js",
71
+ "db:init": "cd src/database && ./db_init.sh",
72
+ "drizzle:generate": "tsc -p tsconfig.json && drizzle-kit generate --config=drizzle.config.ts",
73
+ "drizzle:migrate": "drizzle-kit migrate --config=drizzle.config.ts",
74
+ "drizzle:push": "tsc -p tsconfig.json && drizzle-kit push --config=drizzle.config.ts",
75
+ "drizzle:drop": "drizzle-kit drop --config=drizzle.config.ts",
76
+ "drizzle:seed": "tsx --no-warnings --env-file=.env ./src/database/seeds/index.ts",
77
+ "test": "LOG_LEVEL=off tsx --env-file=.env --test --test-concurrency=1 $(find . -name \"*.test.ts\")",
78
+ "test:one": "LOG_LEVEL=off tsx --no-warnings --env-file=.env --test",
79
+ "typecheck": "tsc --noEmit"
80
+ }
81
+ }