prostgles-server 4.2.647 → 4.2.649

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 (115) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/debug/als-build.log +4 -0
  3. package/debug/als-e2e.log +1747 -0
  4. package/debug/als-lint.log +4 -0
  5. package/debug/als-npm-test.log +712 -0
  6. package/debug/als-row-parts-e2e.log +1759 -0
  7. package/debug/als-row-parts-npm-test.log +716 -0
  8. package/debug/als-typecheck.log +8 -0
  9. package/debug/als-unified-build.log +4 -0
  10. package/debug/als-unified-lint.log +4 -0
  11. package/debug/als-unified-test-build.log +11 -0
  12. package/debug/als-unified-test-server.log +3444 -0
  13. package/debug/inspect-ui-sync.cjs +24 -0
  14. package/debug/subscription-cleanup-repro.log +662 -0
  15. package/debug/subscription-cleanup-trace.log +7230 -0
  16. package/debug/sync-bigint-DBGeneratedSchema.backup +489 -0
  17. package/debug/sync-bigint-build.log +4 -0
  18. package/debug/sync-bigint-client-build.log +0 -0
  19. package/debug/sync-bigint-lint.log +4 -0
  20. package/debug/sync-bigint-server-build.log +0 -0
  21. package/debug/sync-comment-DBGeneratedSchema.backup +489 -0
  22. package/debug/sync-delay-gate-DBGeneratedSchema.backup +489 -0
  23. package/debug/sync-delay-gate-build.log +0 -0
  24. package/debug/sync-diff-review-test.log +132 -0
  25. package/debug/sync-followup-build.log +4 -0
  26. package/debug/sync-notification-before.log +121 -0
  27. package/debug/sync-trigger-cleanup-before.log +134 -0
  28. package/debug/sync-trigger-fix-e2e.log +1758 -0
  29. package/debug/sync-trigger-fix-npm-test.log +1815 -0
  30. package/debug/sync-trigger-lint.log +4 -0
  31. package/debug/trace-subscription-cleanup.cjs +19 -0
  32. package/debug/ui-sync-database-snapshot.log +8 -0
  33. package/debug/ui-sync-investigation.md +30 -0
  34. package/debug/ui-sync-server-tests.log +553 -0
  35. package/dist/Audit/AuditTable.d.ts +1 -1
  36. package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
  37. package/dist/DboBuilder/DboBuilder.js +4 -2
  38. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  39. package/dist/DboBuilder/DboBuilder.spec.js +3 -1
  40. package/dist/DboBuilder/DboBuilder.spec.js.map +1 -1
  41. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  42. package/dist/DboBuilder/TableHandler/TableHandler.js +3 -2
  43. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  44. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  45. package/dist/DboBuilder/TableHandler/delete.js +4 -3
  46. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  47. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.d.ts.map +1 -1
  48. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js +7 -6
  49. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js.map +1 -1
  50. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +1 -1
  51. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  52. package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.d.ts +2 -2
  53. package/dist/ExecutionContext.d.ts +32 -0
  54. package/dist/ExecutionContext.d.ts.map +1 -0
  55. package/dist/ExecutionContext.js +25 -0
  56. package/dist/ExecutionContext.js.map +1 -0
  57. package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.d.ts +1 -1
  58. package/dist/Prostgles.d.ts +5 -0
  59. package/dist/Prostgles.d.ts.map +1 -1
  60. package/dist/Prostgles.js +5 -0
  61. package/dist/Prostgles.js.map +1 -1
  62. package/dist/PubSubManager/PubSubManager.d.ts +9 -26
  63. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  64. package/dist/PubSubManager/PubSubManager.js +27 -23
  65. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  66. package/dist/PubSubManager/deleteOrphanedTriggers.d.ts.map +1 -1
  67. package/dist/PubSubManager/deleteOrphanedTriggers.js +5 -3
  68. package/dist/PubSubManager/deleteOrphanedTriggers.js.map +1 -1
  69. package/dist/PubSubManager/init/getDataWatchFunctionQuery.d.ts.map +1 -1
  70. package/dist/PubSubManager/init/getDataWatchFunctionQuery.js +1 -2
  71. package/dist/PubSubManager/init/getDataWatchFunctionQuery.js.map +1 -1
  72. package/dist/PubSubManager/init/getPubSubManagerInitQuery.d.ts.map +1 -1
  73. package/dist/PubSubManager/init/getPubSubManagerInitQuery.js +3 -2
  74. package/dist/PubSubManager/init/getPubSubManagerInitQuery.js.map +1 -1
  75. package/dist/PubSubManager/notifListener.js +2 -2
  76. package/dist/PubSubManager/notifListener.js.map +1 -1
  77. package/dist/PubSubManager/refreshTriggers.d.ts.map +1 -1
  78. package/dist/PubSubManager/refreshTriggers.js +5 -3
  79. package/dist/PubSubManager/refreshTriggers.js.map +1 -1
  80. package/dist/PublishParser/PublishParser.d.ts.map +1 -1
  81. package/dist/PublishParser/PublishParser.js +14 -1
  82. package/dist/PublishParser/PublishParser.js.map +1 -1
  83. package/dist/PublishParser/getFunctionRelatedRecords.d.ts +5 -0
  84. package/dist/PublishParser/getFunctionRelatedRecords.d.ts.map +1 -0
  85. package/dist/PublishParser/getFunctionRelatedRecords.js +26 -0
  86. package/dist/PublishParser/getFunctionRelatedRecords.js.map +1 -0
  87. package/dist/index.d.ts +2 -1
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js.map +1 -1
  90. package/dist/initProstgles.d.ts +3 -0
  91. package/dist/initProstgles.d.ts.map +1 -1
  92. package/dist/initProstgles.js +1 -0
  93. package/dist/initProstgles.js.map +1 -1
  94. package/dist/runClientRequest.d.ts.map +1 -1
  95. package/dist/runClientRequest.js +6 -1
  96. package/dist/runClientRequest.js.map +1 -1
  97. package/lib/DboBuilder/DboBuilder.spec.ts +3 -7
  98. package/lib/DboBuilder/DboBuilder.ts +4 -2
  99. package/lib/DboBuilder/TableHandler/TableHandler.ts +14 -11
  100. package/lib/DboBuilder/TableHandler/delete.ts +14 -11
  101. package/lib/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.ts +28 -21
  102. package/lib/ExecutionContext.ts +60 -0
  103. package/lib/Prostgles.ts +8 -4
  104. package/lib/PubSubManager/PubSubManager.ts +31 -28
  105. package/lib/PubSubManager/deleteOrphanedTriggers.ts +5 -3
  106. package/lib/PubSubManager/init/getDataWatchFunctionQuery.ts +1 -2
  107. package/lib/PubSubManager/init/getPubSubManagerInitQuery.ts +3 -2
  108. package/lib/PubSubManager/notifListener.ts +2 -2
  109. package/lib/PubSubManager/refreshTriggers.ts +7 -5
  110. package/lib/PublishParser/PublishParser.ts +17 -1
  111. package/lib/PublishParser/getFunctionRelatedRecords.ts +25 -0
  112. package/lib/index.ts +2 -4
  113. package/lib/initProstgles.ts +5 -4
  114. package/lib/runClientRequest.ts +16 -8
  115. package/package.json +1 -1
@@ -0,0 +1,712 @@
1
+
2
+ > prostgles-server@4.2.648 test
3
+ > npm run test:lib && npm run test-only
4
+
5
+
6
+ > prostgles-server@4.2.648 test:lib
7
+ > rm -rf ./node_modules/* && rm -rf ./dist/* && npm i && npm run lint -- --ignore-pattern tests && tsc && node --trace-uncaught --test dist/**/*.spec.js
8
+
9
+ npm warn deprecated eslint@9.39.5: This version is no longer supported. Please see https://eslint.org/version-support for other options.
10
+
11
+ > prostgles-server@4.2.648 prepare
12
+ > npm run build
13
+
14
+
15
+ > prostgles-server@4.2.648 build
16
+ > tsc
17
+
18
+
19
+ added 226 packages, and audited 227 packages in 5s
20
+
21
+ 51 packages are looking for funding
22
+ run `npm fund` for details
23
+
24
+ 3 vulnerabilities (1 moderate, 2 high)
25
+
26
+ To address issues that do not require attention, run:
27
+ npm audit fix
28
+
29
+ To address all issues (including breaking changes), run:
30
+ npm audit fix --force
31
+
32
+ Run `npm audit` for details.
33
+
34
+ > prostgles-server@4.2.648 lint
35
+ > eslint . --ext .ts --quiet --ignore-pattern tests
36
+
37
+ ▶ DBSchemaBuilder type tests
38
+ ✔ Type checks (0.414101ms)
39
+ ✔ DBSchemaBuilder type tests (0.966134ms)
40
+ ▶ getServerFunctionReturnTypes
41
+ ✔ reads grouped functions and stops at recursive types (1097.675263ms)
42
+ ✔ getServerFunctionReturnTypes (1098.291572ms)
43
+ ▶ DboBuilder onCommit
44
+ ✔ awaits callbacks after commit and logs callback errors (2.427943ms)
45
+ ✔ discards callbacks on rollback (0.490492ms)
46
+ ✔ DboBuilder onCommit (3.840418ms)
47
+ ▶ dboBuilderUtils
48
+ ✔ getErrorAsObject circular (1.413748ms)
49
+ ✔ dboBuilderUtils (2.521214ms)
50
+ ▶ defineFunction type test
51
+ ✔ Type test (1.079855ms)
52
+ ✔ defineFunction type test (2.209631ms)
53
+ ✔ file version rules inherit fields and restrictive select options (1.998372ms)
54
+ ✔ managed files preserve hooks on other tables and append file hooks (1.676385ms)
55
+ ▶ DBOFullyTyped test
56
+ ✔ Type test (0.428011ms)
57
+ ✔ DBOFullyTyped test (0.995527ms)
58
+ ℹ tests 9
59
+ ℹ suites 6
60
+ ℹ pass 9
61
+ ℹ fail 0
62
+ ℹ cancelled 0
63
+ ℹ skipped 0
64
+ ℹ todo 0
65
+ ℹ duration_ms 1368.669622
66
+
67
+ > prostgles-server@4.2.648 test-only
68
+ > cd tests/ && ./test.sh
69
+
70
+
71
+ > prostgles-server@4.2.648 build
72
+ > tsc
73
+
74
+
75
+ > client@1.0.0 build
76
+ > rm -rf ./node_modules/* && rm -rf ./dist/* && npm i && tsc
77
+
78
+ npm warn deprecated whatwg-encoding@3.1.1: Use @exodus/bytes instead for a more spec-conformant and faster implementation
79
+
80
+ added 58 packages, and audited 59 packages in 506ms
81
+
82
+ 7 packages are looking for funding
83
+ run `npm fund` for details
84
+
85
+ found 0 vulnerabilities
86
+
87
+ > client@1.0.0 testBasicHooks
88
+ > node --test dist/client/basicHooks.spec.js
89
+
90
+ ▶ React hooks
91
+ ✔ useAsyncEffectQueue executes the first and debounces the rest (1620.349197ms)
92
+ ✔ useAsyncEffectQueue executes the first and debounces the rest if still mounted (1511.815397ms)
93
+ ✔ React hooks (3133.589198ms)
94
+ ℹ tests 2
95
+ ℹ suites 1
96
+ ℹ pass 2
97
+ ℹ fail 0
98
+ ℹ cancelled 0
99
+ ℹ skipped 0
100
+ ℹ todo 0
101
+ ℹ duration_ms 3430.005065
102
+
103
+ up to date, audited 115 packages in 4s
104
+
105
+ 28 packages are looking for funding
106
+ run `npm fund` for details
107
+
108
+ found 0 vulnerabilities
109
+
110
+ > server_tests@1.0.0 build
111
+ > rm -rf ./node_modules/* && rm -rf ./media/* && rm -rf ./dist/* && npm i && tsc
112
+
113
+
114
+ added 113 packages, and audited 115 packages in 4s
115
+
116
+ 28 packages are looking for funding
117
+ run `npm fund` for details
118
+
119
+ found 0 vulnerabilities
120
+
121
+ > prostgles-server@4.2.648 lint
122
+ > eslint . --ext .ts --quiet
123
+
124
+
125
+ > server_tests@1.0.0 test-server
126
+ > TEST_TYPE=server node --trace-uncaught --test dist/server/index.js
127
+
128
+ Prostgles: SQL file executed successfuly /home/s/prostgles-server-js/tests/server/init.sql
129
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
130
+ Running queries: /* prostgles internal query that should be excluded from schema watch */
131
+
132
+ DROP TABLE IF EXISTS "lookup_col1" CASCADE;
133
+ CREATE TABLE IF NOT EXISTS "lookup_col1" (
134
+ id TEXT PRIMARY KEY
135
+ , "description" TEXT
136
+ );
137
+ INSERT INTO "lookup_col1" ("id", "description") VALUES ('a','desc') ON CONFLICT DO NOTHING;
138
+ INSERT INTO "lookup_col1" ("id", "description") VALUES ('b',null) ON CONFLICT DO NOTHING;
139
+ Running queries: /* prostgles internal query that should be excluded from schema watch */
140
+
141
+ CREATE TABLE "files" (
142
+ "id" UUID PRIMARY KEY DEFAULT gen_random_uuid() ,
143
+ "storage_key" UUID UNIQUE ,
144
+ "extension" TEXT NOT NULL DEFAULT '' ,
145
+ "content_type" TEXT NOT NULL DEFAULT '' ,
146
+ "content_length" BIGINT NOT NULL DEFAULT 0 ,
147
+ "etag" TEXT NOT NULL DEFAULT '' ,
148
+ "original_name" TEXT NOT NULL ,
149
+ "original_last_modified" TIMESTAMPTZ ,
150
+ "description" TEXT ,
151
+ "url" TEXT NOT NULL DEFAULT '' ,
152
+ "cloud_url" TEXT ,
153
+ "signed_url" TEXT ,
154
+ "signed_url_expires" BIGINT ,
155
+ "added" TIMESTAMP NOT NULL DEFAULT NOW() ,
156
+ "updated" TIMESTAMP NOT NULL DEFAULT NOW() ,
157
+ "deleted" TIMESTAMPTZ ,
158
+ "deleted_from_storage" TIMESTAMPTZ ,
159
+ "data" BYTEA NOT NULL CHECK (data = decode('01', 'hex')) ,
160
+ "version" INTEGER NOT NULL DEFAULT 1 ,
161
+ "metadata" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"type":{"description":{"type":"string"}}}'::TEXT, "metadata", '{"table":"files","column":"metadata"}' ))
162
+ );
163
+ CREATE TABLE "files_versions" (
164
+ "id" UUID PRIMARY KEY DEFAULT gen_random_uuid() ,
165
+ "storage_key" UUID NOT NULL ,
166
+ "extension" TEXT NOT NULL DEFAULT '' ,
167
+ "content_type" TEXT NOT NULL DEFAULT '' ,
168
+ "content_length" BIGINT NOT NULL DEFAULT 0 ,
169
+ "etag" TEXT NOT NULL DEFAULT '' ,
170
+ "original_name" TEXT NOT NULL ,
171
+ "original_last_modified" TIMESTAMPTZ ,
172
+ "description" TEXT ,
173
+ "url" TEXT NOT NULL DEFAULT '' ,
174
+ "cloud_url" TEXT ,
175
+ "signed_url" TEXT ,
176
+ "signed_url_expires" BIGINT ,
177
+ "added" TIMESTAMP NOT NULL DEFAULT NOW() ,
178
+ "updated" TIMESTAMP NOT NULL DEFAULT NOW() ,
179
+ "deleted" TIMESTAMPTZ ,
180
+ "deleted_from_storage" TIMESTAMPTZ ,
181
+ "file_id" UUID NOT NULL ,
182
+ "version" INTEGER NOT NULL ,
183
+ "created" TIMESTAMP NOT NULL DEFAULT NOW() ,
184
+ "metadata" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"type":{"description":{"type":"string"}}}'::TEXT, "metadata", '{"table":"files_versions","column":"metadata"}' ))
185
+ );
186
+ ALTER TABLE "files_versions" ADD CONSTRAINT "prostgles_file_version_e24fec525e76b3433749621f589d35d9" FOREIGN KEY (file_id) REFERENCES "files"(id) ON DELETE CASCADE;
187
+ CREATE UNIQUE INDEX "prostgles_file_version_9692aae50022f45f1098646939b287b1_key" ON "files_versions" (file_id, version);
188
+ COMMENT ON INDEX "prostgles_file_version_9692aae50022f45f1098646939b287b1_key" IS 'd4af15d064cae99adac0c1194199a9e3';
189
+ CREATE TABLE "users_public_info" (
190
+ "id" SERIAL PRIMARY KEY ,
191
+ "name" TEXT ,
192
+ "avatar" UUID REFERENCES files ON DELETE CASCADE ,
193
+ "sid" TEXT
194
+ );
195
+ DROP TABLE IF EXISTS "users";
196
+ CREATE TABLE "users" (
197
+ "id" SERIAL PRIMARY KEY ,
198
+ "email" TEXT NOT NULL ,
199
+ "status" TEXT NOT NULL CHECK("status" = 'active' OR "status" = 'disabled' OR "status" = 'pending'),
200
+ "type" TEXT NOT NULL ,
201
+ "preferences" JSONB NOT NULL CHECK(prostgles.validate_jsonb_schema('{"type":{"showIntro":{"type":"boolean","optional":true},"theme":{"enum":["light","dark","auto"],"optional":true},"others":{"type":"any[]"}}}'::TEXT, "preferences", '{"table":"users","column":"preferences"}' ))
202
+ );
203
+ DROP TABLE IF EXISTS "tjson";
204
+ CREATE TABLE "tjson" (
205
+ "json" JSONB NOT NULL CHECK(prostgles.validate_jsonb_schema('{"type":{"a":{"type":"boolean"},"arr":{"enum":["1","2","3"]},"arr1":{"enum":[1,2,3]},"arr2":{"type":"integer[]"},"arrStr":{"type":"string[]","optional":true,"nullable":true},"o":{"optional":true,"nullable":true,"oneOfType":[{"o1":"integer"},{"o2":"boolean"}]}}}'::TEXT, "json", '{"table":"tjson","column":"json"}' )),
206
+ "colOneOf" TEXT NOT NULL CHECK("colOneOf" = 'a' OR "colOneOf" = 'b' OR "colOneOf" = 'c'),
207
+ "status" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"oneOfType":[{"ok":{"type":"string"}},{"err":{"type":"string"}},{"loading":{"type":{"loaded":{"type":"number"},"total":{"type":"number"}}}}]}'::TEXT, "status", '{"table":"tjson","column":"status"}' )),
208
+ "jsonOneOf" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"oneOfType":[{"command":{"enum":["a"]}},{"command":{"enum":["b"]},"option":{"type":"integer[]"}}]}'::TEXT, "jsonOneOf", '{"table":"tjson","column":"jsonOneOf"}' )),
209
+ "table_config" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"type":{"referencedTables":{"optional":true,"arrayOfType":{"name":"string","minFiles":"number"}},"recType":{"nullable":true,"optional":true,"record":{"keysEnum":["a","b"],"values":{"type":{"bools":"boolean[]"}}}}}}'::TEXT, "table_config", '{"table":"tjson","column":"table_config"}' ))
210
+ );
211
+ Running queries: /* prostgles internal query that should be excluded from schema watch */
212
+
213
+ ALTER TABLE "uuid_text" ADD FOREIGN KEY (col1) REFERENCES lookup_col1(id);
214
+ ALTER TABLE "uuid_text" ADD FOREIGN KEY (col2) REFERENCES lookup_col1(id);
215
+ ALTER TABLE "uuid_text" ADD FOREIGN KEY (col3) REFERENCES lookup_col1(id);
216
+ DROP TABLE IF EXISTS "api_table";
217
+ CREATE TABLE "api_table" (
218
+ "id" SERIAL PRIMARY KEY
219
+ );
220
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
221
+ (server): prostgles onReady
222
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
223
+ IO missing. Publish has no effect without io or restApi
224
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
225
+ IO missing. Publish has no effect without io or restApi
226
+ destroying prgl instance
227
+ destroying prgl instance
228
+ ▶ Server Only Queries
229
+ ✖ execution context follows functions, hooks and deferred transaction callbacks (2396.494706ms)
230
+ ✔ column definition row types support SQL aliases, arrays and generated columns (16.996176ms)
231
+ ✔ lookup types propagate through database references while preserving overrides (15.917941ms)
232
+ ✔ lookup types follow FK chains by column and terminate cycles (140.451763ms)
233
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
234
+ Running queries: /* prostgles internal query that should be excluded from schema watch */
235
+
236
+ CREATE TABLE "files" (
237
+ "id" UUID PRIMARY KEY DEFAULT gen_random_uuid() ,
238
+ "storage_key" UUID UNIQUE ,
239
+ "extension" TEXT NOT NULL DEFAULT '' ,
240
+ "content_type" TEXT NOT NULL DEFAULT '' ,
241
+ "content_length" BIGINT NOT NULL DEFAULT 0 ,
242
+ "etag" TEXT NOT NULL DEFAULT '' ,
243
+ "original_name" TEXT NOT NULL ,
244
+ "original_last_modified" TIMESTAMPTZ ,
245
+ "description" TEXT ,
246
+ "url" TEXT NOT NULL DEFAULT '' ,
247
+ "cloud_url" TEXT ,
248
+ "signed_url" TEXT ,
249
+ "signed_url_expires" BIGINT ,
250
+ "added" TIMESTAMP NOT NULL DEFAULT NOW() ,
251
+ "updated" TIMESTAMP NOT NULL DEFAULT NOW() ,
252
+ "deleted" TIMESTAMPTZ ,
253
+ "deleted_from_storage" TIMESTAMPTZ ,
254
+ "data" BYTEA NOT NULL CHECK (data = decode('01', 'hex'))
255
+ );
256
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
257
+ Prostgles: Created typescript schema definition file:
258
+ DBGeneratedSchema.ts
259
+ Prostgles: Created typescript schema definition file:
260
+ DBGeneratedSchema.ts
261
+ ▶ client publish profiles compile at startup and follow user types
262
+ ✔ server user handlers enforce permissions and reject client impersonation (42.396976ms)
263
+ ✔ a rejected guest abort cannot cancel a later server-user query (2.548967ms)
264
+ ✔ caught subscription errors still roll back client transactions (2.774505ms)
265
+ ✔ caught checkFilter errors still roll back client transactions (6.714007ms)
266
+ ✔ caught postValidate errors still roll back client transactions (2.652683ms)
267
+ No options changed
268
+ Prostgles: Created typescript schema definition file:
269
+ DBGeneratedSchema.ts
270
+ Prostgles: Created typescript schema definition file:
271
+ DBGeneratedSchema.ts
272
+ Prostgles: Created typescript schema definition file:
273
+ DBGeneratedSchema.ts
274
+ Prostgles: Created typescript schema definition file:
275
+ DBGeneratedSchema.ts
276
+ destroying prgl instance
277
+ ✔ server user handlers require configured authentication (0.844959ms)
278
+ ✔ client publish profiles compile at startup and follow user types (2089.845749ms)
279
+ ▶ Managed storage permission and transaction safety
280
+ ✔ legacy ID-based files remain readable and replaceable (36.760053ms)
281
+ ✔ custom columns do not require or interfere with file data (20.830209ms)
282
+ ✔ filtered updates and failed validation preserve storage (17.666418ms)
283
+ ✔ failed uploads and application hooks leave no replacement objects (27.201378ms)
284
+ ✔ duplicate IDs, conflict updates and SQL-only requests cannot overwrite (21.800935ms)
285
+ ✔ PostgreSQL update policies are enforced before uploading (12.854806ms)
286
+ ✔ RLS-hidden references fail closed during storage cleanup (9.984977ms)
287
+ ✔ beforeEach lifecycle callbacks follow the outer transaction (30.338927ms)
288
+ ✔ outer rollback preserves replaced and deleted objects (23.729731ms)
289
+ ✔ a failed multi-insert waits for other uploads before cleanup (7.592077ms)
290
+ ✔ concurrent replacements leave one complete referenced object (20.737342ms)
291
+ ✔ version retention removes only unreferenced objects (34.071376ms)
292
+ ✔ foreign-key failure preserves bytes and deletion waits for commit (19.642368ms)
293
+ ✔ cloud downloads and cleanup use the committed storage key (40.714714ms)
294
+ ✔ Managed storage permission and transaction safety (352.564078ms)
295
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
296
+ destroying prgl instance
297
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
298
+ destroying prgl instance
299
+ ✔ custom joins add conditions unless override is requested (2345.391137ms)
300
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
301
+ destroying prgl instance
302
+ ✔ custom self joins use configured paths and override inferred joins (1202.344944ms)
303
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
304
+ destroying prgl instance
305
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
306
+ destroying prgl instance
307
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
308
+ destroying prgl instance
309
+ ✔ destroy allows reusing Socket.IO on a running HTTP server (3362.215453ms)
310
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
311
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
312
+ Running queries: /* prostgles internal query that should be excluded from schema watch */
313
+
314
+ CREATE TABLE "audit_events" (
315
+ "id" BIGSERIAL PRIMARY KEY ,
316
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT clock_timestamp() ,
317
+ "schema_name" TEXT NOT NULL ,
318
+ "table_name" TEXT NOT NULL ,
319
+ "operation" TEXT NOT NULL CHECK("operation" = 'INSERT' OR "operation" = 'UPDATE' OR "operation" = 'DELETE'),
320
+ "old_id" JSONB ,
321
+ "new_id" JSONB ,
322
+ "old_row" JSONB ,
323
+ "new_row" JSONB ,
324
+ "actor" JSONB ,
325
+ "db_context" JSONB NOT NULL CHECK(prostgles.validate_jsonb_schema('{"type":{"transaction_id":"string","transaction_started_at":"string","statement_started_at":"string","current_role":"string","session_user":"string","application_name":"string"}}'::TEXT, "db_context", '{"table":"audit_events","column":"db_context"}' ))
326
+ );
327
+ CREATE TABLE "audit_test_files" (
328
+ "id" UUID PRIMARY KEY DEFAULT gen_random_uuid() ,
329
+ "storage_key" UUID UNIQUE ,
330
+ "extension" TEXT NOT NULL DEFAULT '' ,
331
+ "content_type" TEXT NOT NULL DEFAULT '' ,
332
+ "content_length" BIGINT NOT NULL DEFAULT 0 ,
333
+ "etag" TEXT NOT NULL DEFAULT '' ,
334
+ "original_name" TEXT NOT NULL ,
335
+ "original_last_modified" TIMESTAMPTZ ,
336
+ "description" TEXT ,
337
+ "url" TEXT NOT NULL DEFAULT '' ,
338
+ "cloud_url" TEXT ,
339
+ "signed_url" TEXT ,
340
+ "signed_url_expires" BIGINT ,
341
+ "added" TIMESTAMP NOT NULL DEFAULT NOW() ,
342
+ "updated" TIMESTAMP NOT NULL DEFAULT NOW() ,
343
+ "deleted" TIMESTAMPTZ ,
344
+ "deleted_from_storage" TIMESTAMPTZ ,
345
+ "data" BYTEA NOT NULL CHECK (data = decode('01', 'hex'))
346
+ );
347
+ CREATE TABLE "audit_test_source" (
348
+ "a" int NOT NULL ,
349
+ "b" text NOT NULL ,
350
+ "value" text ,
351
+ "secret" text
352
+ );
353
+ ALTER TABLE "audit_test_source" ADD PRIMARY KEY (a, b);
354
+ CREATE TABLE "audit_test_documents" (
355
+ "id" serial PRIMARY KEY ,
356
+ "file_id" uuid NOT NULL REFERENCES audit_test_files(id)
357
+ );
358
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
359
+ IO missing. Publish has no effect without io or restApi
360
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
361
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
362
+ IO missing. Publish has no effect without io or restApi
363
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
364
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
365
+ IO missing. Publish has no effect without io or restApi
366
+ destroying prgl instance
367
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
368
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
369
+ IO missing. Publish has no effect without io or restApi
370
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
371
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
372
+ IO missing. Publish has no effect without io or restApi
373
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
374
+ Trace: Error: audit.tables cannot mix enabled and disabled entries
375
+ at parseAuditConfig (/home/s/prostgles-server-js/dist/Audit/parseAuditConfig.js:19:15)
376
+ at get resolvedAuditConfig (/home/s/prostgles-server-js/dist/Prostgles.js:136:56)
377
+ at get mergedTableConfig (/home/s/prostgles-server-js/dist/Prostgles.js:148:28)
378
+ at syncTableTriggers (/home/s/prostgles-server-js/dist/TableConfig/syncTableTriggers.js:8:25)
379
+ at /home/s/prostgles-server-js/dist/initProstgles.js:99:61
380
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
381
+ at Prostgles.initProstgles (/home/s/prostgles-server-js/dist/initProstgles.js:199:17)
382
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
383
+ at async waitForActual (node:assert:646:5)
384
+ at async strict.rejects (node:assert:769:25)
385
+ at async TestContext.<anonymous> (/home/s/prostgles-server-js/tests/server/dist/server/audit.spec.js:485:17)
386
+ at async Test.run (node:internal/test_runner/test:1125:7)
387
+ at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7)
388
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
389
+ Trace: Error: Unknown audit table: missing_table
390
+ at parseAuditConfig (/home/s/prostgles-server-js/dist/Audit/parseAuditConfig.js:23:19)
391
+ at get resolvedAuditConfig (/home/s/prostgles-server-js/dist/Prostgles.js:136:56)
392
+ at get mergedTableConfig (/home/s/prostgles-server-js/dist/Prostgles.js:148:28)
393
+ at syncTableTriggers (/home/s/prostgles-server-js/dist/TableConfig/syncTableTriggers.js:8:25)
394
+ at /home/s/prostgles-server-js/dist/initProstgles.js:99:61
395
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
396
+ at Prostgles.initProstgles (/home/s/prostgles-server-js/dist/initProstgles.js:199:17)
397
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
398
+ at async waitForActual (node:assert:646:5)
399
+ at async strict.rejects (node:assert:769:25)
400
+ at async TestContext.<anonymous> (/home/s/prostgles-server-js/tests/server/dist/server/audit.spec.js:485:17)
401
+ at async Test.run (node:internal/test_runner/test:1125:7)
402
+ at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7)
403
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
404
+ Trace: Error: audit.idColumns is required for audit_test_nopk without a primary key
405
+ at parseAuditConfig (/home/s/prostgles-server-js/dist/Audit/parseAuditConfig.js:45:19)
406
+ at get resolvedAuditConfig (/home/s/prostgles-server-js/dist/Prostgles.js:136:56)
407
+ at get mergedTableConfig (/home/s/prostgles-server-js/dist/Prostgles.js:148:28)
408
+ at syncTableTriggers (/home/s/prostgles-server-js/dist/TableConfig/syncTableTriggers.js:8:25)
409
+ at /home/s/prostgles-server-js/dist/initProstgles.js:99:61
410
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
411
+ at Prostgles.initProstgles (/home/s/prostgles-server-js/dist/initProstgles.js:199:17)
412
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
413
+ at async waitForActual (node:assert:646:5)
414
+ at async strict.rejects (node:assert:769:25)
415
+ at async TestContext.<anonymous> (/home/s/prostgles-server-js/tests/server/dist/server/audit.spec.js:485:17)
416
+ at async Test.run (node:internal/test_runner/test:1125:7)
417
+ at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7)
418
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
419
+ Trace: Error: Unsupported audit target: audit_test_view
420
+ at parseAuditConfig (/home/s/prostgles-server-js/dist/Audit/parseAuditConfig.js:37:23)
421
+ at get resolvedAuditConfig (/home/s/prostgles-server-js/dist/Prostgles.js:136:56)
422
+ at get mergedTableConfig (/home/s/prostgles-server-js/dist/Prostgles.js:148:28)
423
+ at syncTableTriggers (/home/s/prostgles-server-js/dist/TableConfig/syncTableTriggers.js:8:25)
424
+ at /home/s/prostgles-server-js/dist/initProstgles.js:99:61
425
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
426
+ at Prostgles.initProstgles (/home/s/prostgles-server-js/dist/initProstgles.js:199:17)
427
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
428
+ at async waitForActual (node:assert:646:5)
429
+ at async strict.rejects (node:assert:769:25)
430
+ at async TestContext.<anonymous> (/home/s/prostgles-server-js/tests/server/dist/server/audit.spec.js:485:17)
431
+ at async Test.run (node:internal/test_runner/test:1125:7)
432
+ at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7)
433
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
434
+ Trace: Error: Audit identity columns cannot be excluded: audit_test_source
435
+ at parseAuditConfig (/home/s/prostgles-server-js/dist/Audit/parseAuditConfig.js:54:19)
436
+ at get resolvedAuditConfig (/home/s/prostgles-server-js/dist/Prostgles.js:136:56)
437
+ at get mergedTableConfig (/home/s/prostgles-server-js/dist/Prostgles.js:148:28)
438
+ at syncTableTriggers (/home/s/prostgles-server-js/dist/TableConfig/syncTableTriggers.js:8:25)
439
+ at /home/s/prostgles-server-js/dist/initProstgles.js:99:61
440
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
441
+ at Prostgles.initProstgles (/home/s/prostgles-server-js/dist/initProstgles.js:199:17)
442
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
443
+ at async waitForActual (node:assert:646:5)
444
+ at async strict.rejects (node:assert:769:25)
445
+ at async TestContext.<anonymous> (/home/s/prostgles-server-js/tests/server/dist/server/audit.spec.js:485:17)
446
+ at async Test.run (node:internal/test_runner/test:1125:7)
447
+ at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7)
448
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
449
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
450
+ IO missing. Publish has no effect without io or restApi
451
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
452
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
453
+ IO missing. Publish has no effect without io or restApi
454
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
455
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
456
+ IO missing. Publish has no effect without io or restApi
457
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
458
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
459
+ IO missing. Publish has no effect without io or restApi
460
+ Prostgles: SQL file executed successfuly /tmp/prostgles-audit-0EJOYJ/init.sql
461
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
462
+ IO missing. Publish has no effect without io or restApi
463
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
464
+ IO missing. Publish has no effect without io or restApi
465
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
466
+ IO missing. Publish has no effect without io or restApi
467
+ Trace: Error: audit.idColumns is required for audit_test_nopk without a primary key
468
+ at parseAuditConfig (/home/s/prostgles-server-js/dist/Audit/parseAuditConfig.js:45:19)
469
+ at get resolvedAuditConfig (/home/s/prostgles-server-js/dist/Prostgles.js:136:56)
470
+ at get mergedTableConfig (/home/s/prostgles-server-js/dist/Prostgles.js:148:28)
471
+ at syncTableTriggers (/home/s/prostgles-server-js/dist/TableConfig/syncTableTriggers.js:8:25)
472
+ at /home/s/prostgles-server-js/dist/initProstgles.js:99:61
473
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
474
+ at Prostgles.initProstgles (/home/s/prostgles-server-js/dist/initProstgles.js:199:17)
475
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
476
+ at async updateConfiguration (/home/s/prostgles-server-js/dist/updateConfiguration.js:58:9)
477
+ at async Object.update (/home/s/prostgles-server-js/dist/initProstgles.js:162:17)
478
+ at async waitForActual (node:assert:646:5)
479
+ at async strict.rejects (node:assert:769:25)
480
+ at async TestContext.<anonymous> (/home/s/prostgles-server-js/tests/server/dist/server/audit.spec.js:535:13)
481
+ at async Test.run (node:internal/test_runner/test:1125:7)
482
+ at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7)
483
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
484
+ IO missing. Publish has no effect without io or restApi
485
+ Running queries: /* prostgles internal query that should be excluded from schema watch */
486
+
487
+ CREATE TABLE "audit_next_events" (
488
+ "id" BIGSERIAL PRIMARY KEY ,
489
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT clock_timestamp() ,
490
+ "schema_name" TEXT NOT NULL ,
491
+ "table_name" TEXT NOT NULL ,
492
+ "operation" TEXT NOT NULL CHECK("operation" = 'INSERT' OR "operation" = 'UPDATE' OR "operation" = 'DELETE'),
493
+ "old_id" JSONB ,
494
+ "new_id" JSONB ,
495
+ "old_row" JSONB ,
496
+ "new_row" JSONB ,
497
+ "actor" JSONB ,
498
+ "db_context" JSONB NOT NULL CHECK(prostgles.validate_jsonb_schema('{"type":{"transaction_id":"string","transaction_started_at":"string","statement_started_at":"string","current_role":"string","session_user":"string","application_name":"string"}}'::TEXT, "db_context", '{"table":"audit_next_events","column":"db_context"}' ))
499
+ );
500
+ Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
501
+ IO missing. Publish has no effect without io or restApi
502
+ destroying prgl instance
503
+ ✔ Managed audit setup, row history, protection, access and query readiness (8000.78706ms)
504
+ ✔ getJSONBSchemaValidationErrorAsync with real db handlers (4.277209ms)
505
+ getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
506
+ ✔ Parallel subscription at init causing crash in getPubSubManager: duplicate key value violates unique constraint "apps_pkey" (100.999748ms)
507
+ ✔ RLS context is isolated across implicit transactions, commit, rollback and pool reuse (22.558846ms)
508
+ ✔ subscription and sync reads isolate users with a real RLS policy (13.714977ms)
509
+ ✔ ordinary beforeEach hooks transform inputs before validation (42.429276ms)
510
+ ✔ multi false is checked after beforeEach and rolls back the update (14.666724ms)
511
+ ✔ ordinary beforeEach hooks run before PostgreSQL UPDATE policy checks (13.171958ms)
512
+ ✔ before and after hooks preserve RLS across dbx and raw tx calls (17.92782ms)
513
+ ▶ post-transaction hooks receive committed and authenticated context
514
+ ✔ afterCommit runs after commit, filters changed fields and skips rollback (21.260351ms)
515
+ ✔ clearing a watched field runs before, after and commit hooks (4.134141ms)
516
+ ✖ client updateBatch runs hooks atomically in implicit and explicit transactions (2.05059ms)
517
+ destroying prgl instance
518
+ ✖ post-transaction hooks receive committed and authenticated context (1212.124059ms)
519
+ ✔ Self reference recursion bug (2.512342ms)
520
+ ✔ Transactions (16.902698ms)
521
+ (server): Server-only query tests successful
522
+ (server): Starting isomorphic queries
523
+ ✔ TableConfig onMount works (2.412754ms)
524
+ ✖ Server Only Queries (21390.301043ms)
525
+ (server): DELETING items
526
+ ▶ Isomorphic queries
527
+ ✔ Deleting stale data (34.801503ms)
528
+ ✔ Error structure malformed array literal (17.279971ms)
529
+ ✔ Table info (0.642954ms)
530
+ ✔ Prepare data (27.187192ms)
531
+ ✔ Test bytea (2.200493ms)
532
+ ✔ abortSignal terminates a running query (5541.013561ms)
533
+ ✔ Client queries are aborted no more than after n seconds (0.367239ms)
534
+ ✔ Subscription tracked_columns get merged correctly (25.452114ms)
535
+ ✔ Aggregate subscription tracks FILTER and ORDER BY dependencies (966.71585ms)
536
+ ✔ CASE select and subscription dependencies (651.109999ms)
537
+ ✔ Subscription tracks non-selected ORDER BY columns (643.812321ms)
538
+ ✔ merge json (7.315308ms)
539
+ ✔ json array converted to pg array filter bug (1.851686ms)
540
+ ✔ onConflict do update (6.396622ms)
541
+ ✔ Local file upload (26.982402ms)
542
+ ✔ Local file delete (16.616933ms)
543
+ ✔ Local file update (20.877615ms)
544
+ ✔ getColumns definition (1.195618ms)
545
+ ✔ returnType (0.444392ms)
546
+ ✔ Table config triggers (6.207607ms)
547
+ ✔ $unnest_words (1.342582ms)
548
+ ✔ Group by/Distinct (1.783426ms)
549
+ ✔ sql returntype default-with-rollback (14.885357ms)
550
+ ✔ returnType: value (1.449008ms)
551
+ ✔ PostgreSQL array element (4.749869ms)
552
+ ✔ FTS filtering (9.961132ms)
553
+ ✔ $term_highlight (4.709995ms)
554
+ ✔ funcFilters: $term_highlight (2.16131ms)
555
+ (server): [{"name":"zz3zz1"}]
556
+ (server): [{"name":"zz3zz1"}]
557
+ (server): []
558
+ ✔ subscribe skipChangedColumnsCheck false by default = sub should not fire if selected data did not change (863.740148ms)
559
+ (server): [{"name":null}]
560
+ (server): [{"name":"zz3zz1"}]
561
+ (server): [{"name":"zz3zz1"}]
562
+ (server): [{"name":"zz3zz1"}]
563
+ (server): []
564
+ ✔ subscribe skipChangedColumnsCheck true (3388.566205ms)
565
+ unsubscribe start - various
566
+ unsubscribe end - various
567
+ ✔ subscribe (44.611101ms)
568
+ ✔ subscribe to schema.table (17.919166ms)
569
+ ✔ parallel subscriptions (2019.769618ms)
570
+ (server): updateAll done in 1668
571
+ (server): updateAll done in 1595
572
+ (server): Locks: [{"pid":145092,"blocking_pids":[145093],"wait_event":"object","wait_event_type":"Lock","query":"commit","blocking_query":"commit"},{"pid":144927,"blocking_pids":[145093,145092,145008],"wait_event":"object","wait_event_type":"Lock","query":"commit","blocking_query":"commit"},{"pid":145008,"blocking_pids":[145093,145092],"wait_event":"object","wait_event_type":"Lock","query":"commit","blocking_query":"commit"}]
573
+ (server): updateAll done in 1943
574
+ ✔ subscriptions do not serialize transactions (9730.170382ms)
575
+ Created PubSubManager
576
+ throttling sub for 1700 ms
577
+ ✔ subscribeOne with throttle (1772.553068ms)
578
+ throttling finished. pushSubData...
579
+ throttling sub for 1700 ms
580
+ ✔ subscribeOne with throttle skipFirst: true (1710.735232ms)
581
+ ✔ subscribeOne without skipFirst (1067.003965ms)
582
+ ✔ subscribeOne with skipFirst: true (1570.944446ms)
583
+ ✔ subscribeOne actions: { insert: true } (1565.903737ms)
584
+ ✔ subscribeOne actions: { insert: false } (1534.844031ms)
585
+ ✔ JSON filtering (4.246083ms)
586
+ ✔ Complex filtering (3.081773ms)
587
+ ✔ template_string function (2.487663ms)
588
+ ✔ Between filtering (2.788755ms)
589
+ ✔ In filtering (1.822342ms)
590
+ ✔ Order by (2.500152ms)
591
+ ✔ Order by aliased func (1.482195ms)
592
+ ✔ Filter by aliased func (1.271742ms)
593
+ ✔ Count with Filter by aliased func (1.181479ms)
594
+ ✔ Count with Aggregate and Filter by aliased func (1.085216ms)
595
+ ✔ Count with complex filter (1.028203ms)
596
+ ✔ Order by aggregation (0.639046ms)
597
+ ✔ Aggregate FILTER and ORDER BY (1.351897ms)
598
+ ✔ Column alias func (0.704427ms)
599
+ ✔ Order by colliding alias name (0.695333ms)
600
+ ✔ Update batch example (10.160596ms)
601
+ TODO: socket.io stringifies dates
602
+ ✔ Function example (7.638295ms)
603
+ ✔ JSONB filtering (4.430874ms)
604
+ ✔ Postgis examples (8.745444ms)
605
+ ✔ jsonbSchema validation (2.689961ms)
606
+ ✔ find and findOne (0.774228ms)
607
+ ✔ Result size (1.586097ms)
608
+ ✔ Basic exists (1.267415ms)
609
+ ✔ Basic fts with shorthand notation (1.980867ms)
610
+ ✔ Exists with shortest path wildcard filter example (1.713067ms)
611
+ ✔ Exists with exact path filter example (0.786186ms)
612
+ ✔ Not Exists with exact path filter example (1.557951ms)
613
+ ✔ Upsert example (12.298975ms)
614
+ ✔ Joins example (2.001547ms)
615
+ ✔ Joins repeating table example (2.984875ms)
616
+ ✔ Join aggregate functions example (4.816819ms)
617
+ ✔ $rowhash example (3.253269ms)
618
+ ✔ Reference column nested insert (7.960094ms)
619
+ ✔ Join escaped table names with quotes (16.861355ms)
620
+ (server): {
621
+ "item": {
622
+ "\"id0\"": 1,
623
+ "\"quoted1_id\"": 1,
624
+ "\"text_col0\"": "0"
625
+ },
626
+ "runs": 0
627
+ }
628
+ (server): {
629
+ "item": {
630
+ "\"id0\"": 1,
631
+ "\"quoted1_id\"": 1,
632
+ "\"text_col0\"": "1"
633
+ },
634
+ "runs": 1
635
+ }
636
+ unsubscribe start - """quoted0"""
637
+ unsubscribe end - """quoted0"""
638
+ ✔ subscribe to escaped table name (11.053934ms)
639
+ ✔ subscribe using a filter bigger than block_size (13.356888ms)
640
+ ✔ Reverse join with agg (16.329225ms)
641
+ {
642
+ _rows: [
643
+ { id: 1, t1: null, tr2: [Array], tr3: [] },
644
+ { id: 2, t1: null, tr2: [Array], tr3: [] }
645
+ ],
646
+ runs: 1
647
+ }
648
+ {
649
+ _rows: [
650
+ { id: 1, t1: null, tr2: [Array], tr3: [] },
651
+ { id: 2, t1: null, tr2: [Array], tr3: [] }
652
+ ],
653
+ runs: 2
654
+ }
655
+ ✔ Related table subscribe (9054.282594ms)
656
+ ✔ Aggregate FILTER registers joined dependency triggers (676.196627ms)
657
+ ✔ Nested sort by computed col (9.194671ms)
658
+ ✔ Nested function on different than source column getNewQuery name bug fix (2.700847ms)
659
+ ✔ Reference column deep nested insert (12.653584ms)
660
+ ✔ Multi reference column nested insert (8.999392ms)
661
+ ✔ Join path with order by nested (6.620846ms)
662
+ ✔ Self join (12.625146ms)
663
+ ✔ One to many multi join duplicate row bug fix (9.184314ms)
664
+ (server): various id=99 count
665
+ (server): various id=99 count
666
+ ok
667
+ (server): various id=99 count
668
+ (server): Error in subscription callback: {"message":"column prostgles_root_table_alias.name does not exist","length":130,"name":"error","severity":"ERROR","code":"42703","position":"107","file":"parse_relation.c","line":"3665","routine":"errorMissingColumn","query":"-- prostgles query id: 307f6dda-ac1a-4602-a9b2-78c28fa4de72\nSET LOCAL \"prostgles.user\" \nTO '';\nSELECT \n \"prostgles_root_table_alias\".\"name\" AS \"name\" \n FROM ( \n SELECT * \n FROM various \n WHERE \"id\" = 99 \n ) prostgles_root_table_alias \n LIMIT 1000","code_info":"undefined_column"}
669
+ ok
670
+ ✔ subscribe triggers with stale schema should fail gracefully and never block other queries (6549.240547ms)
671
+ ✔ Isomorphic queries (49833.681738ms)
672
+ ✔ Having clause (2.483469ms)
673
+ ✔ Having clause with complex filter (1.906031ms)
674
+ (server): Server isomorphic tests successful
675
+ (server): Stopping server ...
676
+ ℹ tests 134
677
+ ℹ suites 2
678
+ ℹ pass 131
679
+ ℹ fail 3
680
+ ℹ cancelled 0
681
+ ℹ skipped 0
682
+ ℹ todo 0
683
+ ℹ duration_ms 77272.980682
684
+
685
+ ✖ failing tests:
686
+
687
+ test at dist/server/executionContext.spec.js:10:32
688
+ ✖ execution context follows functions, hooks and deferred transaction callbacks (2396.494706ms)
689
+ { message: 'Unexpected: localParams isRemoteRequest and missing tableRule' }
690
+
691
+ test at dist/server/withUserRLS.spec.js:447:21
692
+ ✖ client updateBatch runs hooks atomically in implicit and explicit transactions (2.05059ms)
693
+ { message: 'Unexpected: localParams isRemoteRequest and missing tableRule' }
694
+
695
+ test at dist/server/withUserRLS.spec.js:309:32
696
+ ✖ post-transaction hooks receive committed and authenticated context (1212.124059ms)
697
+ AssertionError [ERR_ASSERTION]: {"error":{"message":"Unexpected: localParams isRemoteRequest and missing tableRule"}}
698
+
699
+ 400 !== 200
700
+
701
+ at deleteRequest (/home/s/prostgles-server-js/tests/server/dist/server/withUserRLS.spec.js:507:38)
702
+ at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
703
+ at async TestContext.<anonymous> (/home/s/prostgles-server-js/tests/server/dist/server/withUserRLS.spec.js:510:44)
704
+ at async Test.run (node:internal/test_runner/test:1125:7)
705
+ at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7) {
706
+ generatedMessage: false,
707
+ code: 'ERR_ASSERTION',
708
+ actual: 400,
709
+ expected: 200,
710
+ operator: 'strictEqual',
711
+ diff: 'simple'
712
+ }