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.
- package/.github/workflows/main.yml +1 -1
- package/debug/als-build.log +4 -0
- package/debug/als-e2e.log +1747 -0
- package/debug/als-lint.log +4 -0
- package/debug/als-npm-test.log +712 -0
- package/debug/als-row-parts-e2e.log +1759 -0
- package/debug/als-row-parts-npm-test.log +716 -0
- package/debug/als-typecheck.log +8 -0
- package/debug/als-unified-build.log +4 -0
- package/debug/als-unified-lint.log +4 -0
- package/debug/als-unified-test-build.log +11 -0
- package/debug/als-unified-test-server.log +3444 -0
- package/debug/inspect-ui-sync.cjs +24 -0
- package/debug/subscription-cleanup-repro.log +662 -0
- package/debug/subscription-cleanup-trace.log +7230 -0
- package/debug/sync-bigint-DBGeneratedSchema.backup +489 -0
- package/debug/sync-bigint-build.log +4 -0
- package/debug/sync-bigint-client-build.log +0 -0
- package/debug/sync-bigint-lint.log +4 -0
- package/debug/sync-bigint-server-build.log +0 -0
- package/debug/sync-comment-DBGeneratedSchema.backup +489 -0
- package/debug/sync-delay-gate-DBGeneratedSchema.backup +489 -0
- package/debug/sync-delay-gate-build.log +0 -0
- package/debug/sync-diff-review-test.log +132 -0
- package/debug/sync-followup-build.log +4 -0
- package/debug/sync-notification-before.log +121 -0
- package/debug/sync-trigger-cleanup-before.log +134 -0
- package/debug/sync-trigger-fix-e2e.log +1758 -0
- package/debug/sync-trigger-fix-npm-test.log +1815 -0
- package/debug/sync-trigger-lint.log +4 -0
- package/debug/trace-subscription-cleanup.cjs +19 -0
- package/debug/ui-sync-database-snapshot.log +8 -0
- package/debug/ui-sync-investigation.md +30 -0
- package/debug/ui-sync-server-tests.log +553 -0
- package/dist/Audit/AuditTable.d.ts +1 -1
- package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilder.js +4 -2
- package/dist/DboBuilder/DboBuilder.js.map +1 -1
- package/dist/DboBuilder/DboBuilder.spec.js +3 -1
- package/dist/DboBuilder/DboBuilder.spec.js.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +3 -2
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js +4 -3
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js +7 -6
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.d.ts +2 -2
- package/dist/ExecutionContext.d.ts +32 -0
- package/dist/ExecutionContext.d.ts.map +1 -0
- package/dist/ExecutionContext.js +25 -0
- package/dist/ExecutionContext.js.map +1 -0
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.d.ts +1 -1
- package/dist/Prostgles.d.ts +5 -0
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +5 -0
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts +9 -26
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +27 -23
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/deleteOrphanedTriggers.d.ts.map +1 -1
- package/dist/PubSubManager/deleteOrphanedTriggers.js +5 -3
- package/dist/PubSubManager/deleteOrphanedTriggers.js.map +1 -1
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.d.ts.map +1 -1
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.js +1 -2
- package/dist/PubSubManager/init/getDataWatchFunctionQuery.js.map +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.d.ts.map +1 -1
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.js +3 -2
- package/dist/PubSubManager/init/getPubSubManagerInitQuery.js.map +1 -1
- package/dist/PubSubManager/notifListener.js +2 -2
- package/dist/PubSubManager/notifListener.js.map +1 -1
- package/dist/PubSubManager/refreshTriggers.d.ts.map +1 -1
- package/dist/PubSubManager/refreshTriggers.js +5 -3
- package/dist/PubSubManager/refreshTriggers.js.map +1 -1
- package/dist/PublishParser/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.js +14 -1
- package/dist/PublishParser/PublishParser.js.map +1 -1
- package/dist/PublishParser/getFunctionRelatedRecords.d.ts +5 -0
- package/dist/PublishParser/getFunctionRelatedRecords.d.ts.map +1 -0
- package/dist/PublishParser/getFunctionRelatedRecords.js +26 -0
- package/dist/PublishParser/getFunctionRelatedRecords.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/initProstgles.d.ts +3 -0
- package/dist/initProstgles.d.ts.map +1 -1
- package/dist/initProstgles.js +1 -0
- package/dist/initProstgles.js.map +1 -1
- package/dist/runClientRequest.d.ts.map +1 -1
- package/dist/runClientRequest.js +6 -1
- package/dist/runClientRequest.js.map +1 -1
- package/lib/DboBuilder/DboBuilder.spec.ts +3 -7
- package/lib/DboBuilder/DboBuilder.ts +4 -2
- package/lib/DboBuilder/TableHandler/TableHandler.ts +14 -11
- package/lib/DboBuilder/TableHandler/delete.ts +14 -11
- package/lib/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.ts +28 -21
- package/lib/ExecutionContext.ts +60 -0
- package/lib/Prostgles.ts +8 -4
- package/lib/PubSubManager/PubSubManager.ts +31 -28
- package/lib/PubSubManager/deleteOrphanedTriggers.ts +5 -3
- package/lib/PubSubManager/init/getDataWatchFunctionQuery.ts +1 -2
- package/lib/PubSubManager/init/getPubSubManagerInitQuery.ts +3 -2
- package/lib/PubSubManager/notifListener.ts +2 -2
- package/lib/PubSubManager/refreshTriggers.ts +7 -5
- package/lib/PublishParser/PublishParser.ts +17 -1
- package/lib/PublishParser/getFunctionRelatedRecords.ts +25 -0
- package/lib/index.ts +2 -4
- package/lib/initProstgles.ts +5 -4
- package/lib/runClientRequest.ts +16 -8
- package/package.json +1 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
|
|
2
|
+
> server_tests@1.0.0 test-client
|
|
3
|
+
> TEST_TYPE=client node --trace-uncaught --test dist/server/index.js
|
|
4
|
+
|
|
5
|
+
Prostgles: SQL file executed successfuly /home/s/prostgles-server-js/tests/server/init.sql
|
|
6
|
+
getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
|
|
7
|
+
Running queries: /* prostgles internal query that should be excluded from schema watch */
|
|
8
|
+
|
|
9
|
+
DROP TABLE IF EXISTS "lookup_col1" CASCADE;
|
|
10
|
+
CREATE TABLE IF NOT EXISTS "lookup_col1" (
|
|
11
|
+
id TEXT PRIMARY KEY
|
|
12
|
+
, "description" TEXT
|
|
13
|
+
);
|
|
14
|
+
Running queries: /* prostgles internal query that should be excluded from schema watch */
|
|
15
|
+
|
|
16
|
+
CREATE TABLE "files" (
|
|
17
|
+
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid() ,
|
|
18
|
+
"storage_key" UUID UNIQUE ,
|
|
19
|
+
"extension" TEXT NOT NULL DEFAULT '' ,
|
|
20
|
+
"content_type" TEXT NOT NULL DEFAULT '' ,
|
|
21
|
+
"content_length" BIGINT NOT NULL DEFAULT 0 ,
|
|
22
|
+
"etag" TEXT NOT NULL DEFAULT '' ,
|
|
23
|
+
"original_name" TEXT NOT NULL ,
|
|
24
|
+
"original_last_modified" TIMESTAMPTZ ,
|
|
25
|
+
"description" TEXT ,
|
|
26
|
+
"url" TEXT NOT NULL DEFAULT '' ,
|
|
27
|
+
"cloud_url" TEXT ,
|
|
28
|
+
"signed_url" TEXT ,
|
|
29
|
+
"signed_url_expires" BIGINT ,
|
|
30
|
+
"added" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
31
|
+
"updated" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
32
|
+
"deleted" TIMESTAMPTZ ,
|
|
33
|
+
"deleted_from_storage" TIMESTAMPTZ ,
|
|
34
|
+
"data" BYTEA NOT NULL CHECK (data = decode('01', 'hex')) ,
|
|
35
|
+
"version" INTEGER NOT NULL DEFAULT 1 ,
|
|
36
|
+
"metadata" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"type":{"description":{"type":"string"}}}'::TEXT, "metadata", '{"table":"files","column":"metadata"}' ))
|
|
37
|
+
);
|
|
38
|
+
CREATE TABLE "files_versions" (
|
|
39
|
+
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid() ,
|
|
40
|
+
"storage_key" UUID NOT NULL ,
|
|
41
|
+
"extension" TEXT NOT NULL DEFAULT '' ,
|
|
42
|
+
"content_type" TEXT NOT NULL DEFAULT '' ,
|
|
43
|
+
"content_length" BIGINT NOT NULL DEFAULT 0 ,
|
|
44
|
+
"etag" TEXT NOT NULL DEFAULT '' ,
|
|
45
|
+
"original_name" TEXT NOT NULL ,
|
|
46
|
+
"original_last_modified" TIMESTAMPTZ ,
|
|
47
|
+
"description" TEXT ,
|
|
48
|
+
"url" TEXT NOT NULL DEFAULT '' ,
|
|
49
|
+
"cloud_url" TEXT ,
|
|
50
|
+
"signed_url" TEXT ,
|
|
51
|
+
"signed_url_expires" BIGINT ,
|
|
52
|
+
"added" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
53
|
+
"updated" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
54
|
+
"deleted" TIMESTAMPTZ ,
|
|
55
|
+
"deleted_from_storage" TIMESTAMPTZ ,
|
|
56
|
+
"file_id" UUID NOT NULL ,
|
|
57
|
+
"version" INTEGER NOT NULL ,
|
|
58
|
+
"created" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
59
|
+
"metadata" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"type":{"description":{"type":"string"}}}'::TEXT, "metadata", '{"table":"files_versions","column":"metadata"}' ))
|
|
60
|
+
);
|
|
61
|
+
ALTER TABLE "files_versions" ADD CONSTRAINT "prostgles_file_version_e24fec525e76b3433749621f589d35d9" FOREIGN KEY (file_id) REFERENCES "files"(id) ON DELETE CASCADE;
|
|
62
|
+
CREATE UNIQUE INDEX "prostgles_file_version_9692aae50022f45f1098646939b287b1_key" ON "files_versions" (file_id, version);
|
|
63
|
+
COMMENT ON INDEX "prostgles_file_version_9692aae50022f45f1098646939b287b1_key" IS 'd4af15d064cae99adac0c1194199a9e3';
|
|
64
|
+
CREATE TABLE "users_public_info" (
|
|
65
|
+
"id" SERIAL PRIMARY KEY ,
|
|
66
|
+
"name" TEXT ,
|
|
67
|
+
"avatar" UUID REFERENCES files ON DELETE CASCADE ,
|
|
68
|
+
"sid" TEXT
|
|
69
|
+
);
|
|
70
|
+
DROP TABLE IF EXISTS "users";
|
|
71
|
+
CREATE TABLE "users" (
|
|
72
|
+
"id" SERIAL PRIMARY KEY ,
|
|
73
|
+
"email" TEXT NOT NULL ,
|
|
74
|
+
"status" TEXT NOT NULL CHECK("status" = 'active' OR "status" = 'disabled' OR "status" = 'pending'),
|
|
75
|
+
"type" TEXT NOT NULL ,
|
|
76
|
+
"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"}' ))
|
|
77
|
+
);
|
|
78
|
+
DROP TABLE IF EXISTS "tjson";
|
|
79
|
+
CREATE TABLE "tjson" (
|
|
80
|
+
"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"}' )),
|
|
81
|
+
"colOneOf" TEXT NOT NULL CHECK("colOneOf" = 'a' OR "colOneOf" = 'b' OR "colOneOf" = 'c'),
|
|
82
|
+
"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"}' )),
|
|
83
|
+
"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"}' )),
|
|
84
|
+
"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"}' ))
|
|
85
|
+
);
|
|
86
|
+
Running queries: /* prostgles internal query that should be excluded from schema watch */
|
|
87
|
+
|
|
88
|
+
ALTER TABLE "uuid_text" ADD FOREIGN KEY (col1) REFERENCES lookup_col1(id);
|
|
89
|
+
ALTER TABLE "uuid_text" ADD FOREIGN KEY (col2) REFERENCES lookup_col1(id);
|
|
90
|
+
ALTER TABLE "uuid_text" ADD FOREIGN KEY (col3) REFERENCES lookup_col1(id);
|
|
91
|
+
DROP TABLE IF EXISTS "api_table";
|
|
92
|
+
CREATE TABLE "api_table" (
|
|
93
|
+
"id" SERIAL PRIMARY KEY
|
|
94
|
+
);
|
|
95
|
+
Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
|
|
96
|
+
(server): prostgles onReady
|
|
97
|
+
(server): Waiting for client...
|
|
98
|
+
(client) t+ 0ms Started client...
|
|
99
|
+
onSocketConnect RTPizF7oCo9RIzQxAAAA
|
|
100
|
+
(server): Client connected -> console does not work. use log function. socket.id: RTPizF7oCo9RIzQxAAAA
|
|
101
|
+
(client) t+ 42ms Client connect.
|
|
102
|
+
(client) t+ 188ms TEST_NAME: syncTriggerCleanup Started
|
|
103
|
+
getPubSubManagerInitQuery: Outdated prostgles schema. Re-creating...
|
|
104
|
+
Created PubSubManager
|
|
105
|
+
Pushing 0 rows to socket
|
|
106
|
+
✔ subscription receives an update immediately after another trigger is deleted (410.018104ms)
|
|
107
|
+
Pushing 1 rows to socket x2
|
|
108
|
+
Pushing 0 rows to socket
|
|
109
|
+
server.syncBatch planes: inserted( 0 ) updated( 0 ) deleted( 0 ) pushed to client( 1 ) total( 1 ) undefined
|
|
110
|
+
Client log (client) t+ 3253ms TEST_NAME: syncTriggerCleanup Finished OK
|
|
111
|
+
✔ unsubscribe cleanup preserves a sync being registered (2650.19868ms)
|
|
112
|
+
Client test successful
|
|
113
|
+
(server): Stopping server ...
|
|
114
|
+
ℹ tests 2
|
|
115
|
+
ℹ suites 0
|
|
116
|
+
ℹ pass 2
|
|
117
|
+
ℹ fail 0
|
|
118
|
+
ℹ cancelled 0
|
|
119
|
+
ℹ skipped 0
|
|
120
|
+
ℹ todo 0
|
|
121
|
+
ℹ duration_ms 11560.731295
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
|
|
2
|
+
> server_tests@1.0.0 test-client
|
|
3
|
+
> TEST_TYPE=client node --trace-uncaught --test dist/server/index.js
|
|
4
|
+
|
|
5
|
+
Prostgles: SQL file executed successfuly /home/s/prostgles-server-js/tests/server/init.sql
|
|
6
|
+
Running queries: /* prostgles internal query that should be excluded from schema watch */
|
|
7
|
+
|
|
8
|
+
DROP TABLE IF EXISTS "lookup_col1" CASCADE;
|
|
9
|
+
CREATE TABLE IF NOT EXISTS "lookup_col1" (
|
|
10
|
+
id TEXT PRIMARY KEY
|
|
11
|
+
, "description" TEXT
|
|
12
|
+
);
|
|
13
|
+
Running queries: /* prostgles internal query that should be excluded from schema watch */
|
|
14
|
+
|
|
15
|
+
CREATE TABLE "files" (
|
|
16
|
+
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid() ,
|
|
17
|
+
"storage_key" UUID UNIQUE ,
|
|
18
|
+
"extension" TEXT NOT NULL DEFAULT '' ,
|
|
19
|
+
"content_type" TEXT NOT NULL DEFAULT '' ,
|
|
20
|
+
"content_length" BIGINT NOT NULL DEFAULT 0 ,
|
|
21
|
+
"etag" TEXT NOT NULL DEFAULT '' ,
|
|
22
|
+
"original_name" TEXT NOT NULL ,
|
|
23
|
+
"original_last_modified" TIMESTAMPTZ ,
|
|
24
|
+
"description" TEXT ,
|
|
25
|
+
"url" TEXT NOT NULL DEFAULT '' ,
|
|
26
|
+
"cloud_url" TEXT ,
|
|
27
|
+
"signed_url" TEXT ,
|
|
28
|
+
"signed_url_expires" BIGINT ,
|
|
29
|
+
"added" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
30
|
+
"updated" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
31
|
+
"deleted" TIMESTAMPTZ ,
|
|
32
|
+
"deleted_from_storage" TIMESTAMPTZ ,
|
|
33
|
+
"data" BYTEA NOT NULL CHECK (data = decode('01', 'hex')) ,
|
|
34
|
+
"version" INTEGER NOT NULL DEFAULT 1 ,
|
|
35
|
+
"metadata" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"type":{"description":{"type":"string"}}}'::TEXT, "metadata", '{"table":"files","column":"metadata"}' ))
|
|
36
|
+
);
|
|
37
|
+
CREATE TABLE "files_versions" (
|
|
38
|
+
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid() ,
|
|
39
|
+
"storage_key" UUID NOT NULL ,
|
|
40
|
+
"extension" TEXT NOT NULL DEFAULT '' ,
|
|
41
|
+
"content_type" TEXT NOT NULL DEFAULT '' ,
|
|
42
|
+
"content_length" BIGINT NOT NULL DEFAULT 0 ,
|
|
43
|
+
"etag" TEXT NOT NULL DEFAULT '' ,
|
|
44
|
+
"original_name" TEXT NOT NULL ,
|
|
45
|
+
"original_last_modified" TIMESTAMPTZ ,
|
|
46
|
+
"description" TEXT ,
|
|
47
|
+
"url" TEXT NOT NULL DEFAULT '' ,
|
|
48
|
+
"cloud_url" TEXT ,
|
|
49
|
+
"signed_url" TEXT ,
|
|
50
|
+
"signed_url_expires" BIGINT ,
|
|
51
|
+
"added" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
52
|
+
"updated" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
53
|
+
"deleted" TIMESTAMPTZ ,
|
|
54
|
+
"deleted_from_storage" TIMESTAMPTZ ,
|
|
55
|
+
"file_id" UUID NOT NULL ,
|
|
56
|
+
"version" INTEGER NOT NULL ,
|
|
57
|
+
"created" TIMESTAMP NOT NULL DEFAULT NOW() ,
|
|
58
|
+
"metadata" JSONB CHECK(prostgles.validate_jsonb_schema('{"nullable":true,"type":{"description":{"type":"string"}}}'::TEXT, "metadata", '{"table":"files_versions","column":"metadata"}' ))
|
|
59
|
+
);
|
|
60
|
+
ALTER TABLE "files_versions" ADD CONSTRAINT "prostgles_file_version_e24fec525e76b3433749621f589d35d9" FOREIGN KEY (file_id) REFERENCES "files"(id) ON DELETE CASCADE;
|
|
61
|
+
CREATE UNIQUE INDEX "prostgles_file_version_9692aae50022f45f1098646939b287b1_key" ON "files_versions" (file_id, version);
|
|
62
|
+
COMMENT ON INDEX "prostgles_file_version_9692aae50022f45f1098646939b287b1_key" IS 'd4af15d064cae99adac0c1194199a9e3';
|
|
63
|
+
CREATE TABLE "users_public_info" (
|
|
64
|
+
"id" SERIAL PRIMARY KEY ,
|
|
65
|
+
"name" TEXT ,
|
|
66
|
+
"avatar" UUID REFERENCES files ON DELETE CASCADE ,
|
|
67
|
+
"sid" TEXT
|
|
68
|
+
);
|
|
69
|
+
DROP TABLE IF EXISTS "users";
|
|
70
|
+
CREATE TABLE "users" (
|
|
71
|
+
"id" SERIAL PRIMARY KEY ,
|
|
72
|
+
"email" TEXT NOT NULL ,
|
|
73
|
+
"status" TEXT NOT NULL CHECK("status" = 'active' OR "status" = 'disabled' OR "status" = 'pending'),
|
|
74
|
+
"type" TEXT NOT NULL ,
|
|
75
|
+
"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"}' ))
|
|
76
|
+
);
|
|
77
|
+
DROP TABLE IF EXISTS "tjson";
|
|
78
|
+
CREATE TABLE "tjson" (
|
|
79
|
+
"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"}' )),
|
|
80
|
+
"colOneOf" TEXT NOT NULL CHECK("colOneOf" = 'a' OR "colOneOf" = 'b' OR "colOneOf" = 'c'),
|
|
81
|
+
"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"}' )),
|
|
82
|
+
"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"}' )),
|
|
83
|
+
"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"}' ))
|
|
84
|
+
);
|
|
85
|
+
Running queries: /* prostgles internal query that should be excluded from schema watch */
|
|
86
|
+
|
|
87
|
+
ALTER TABLE "uuid_text" ADD FOREIGN KEY (col1) REFERENCES lookup_col1(id);
|
|
88
|
+
ALTER TABLE "uuid_text" ADD FOREIGN KEY (col2) REFERENCES lookup_col1(id);
|
|
89
|
+
ALTER TABLE "uuid_text" ADD FOREIGN KEY (col3) REFERENCES lookup_col1(id);
|
|
90
|
+
DROP TABLE IF EXISTS "api_table";
|
|
91
|
+
CREATE TABLE "api_table" (
|
|
92
|
+
"id" SERIAL PRIMARY KEY
|
|
93
|
+
);
|
|
94
|
+
Prostgles: Initiated file manager. Max allowed file size: 1MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options
|
|
95
|
+
(server): prostgles onReady
|
|
96
|
+
(server): Waiting for client...
|
|
97
|
+
(client) t+ 0ms Started client...
|
|
98
|
+
onSocketConnect ZIOK2QaRzEcRbEt6AAAA
|
|
99
|
+
(server): Client connected -> console does not work. use log function. socket.id: ZIOK2QaRzEcRbEt6AAAA
|
|
100
|
+
(client) t+ 43ms Client connect.
|
|
101
|
+
(client) t+ 187ms TEST_NAME: syncTriggerCleanup Started
|
|
102
|
+
Created PubSubManager
|
|
103
|
+
Client log (client) t+ 3850ms TEST_NAME: syncTriggerCleanup Finished OK
|
|
104
|
+
✖ unsubscribe cleanup preserves a sync being registered (3658.639656ms)
|
|
105
|
+
Client test successful
|
|
106
|
+
(server): Stopping server ...
|
|
107
|
+
ℹ tests 1
|
|
108
|
+
ℹ suites 0
|
|
109
|
+
ℹ pass 0
|
|
110
|
+
ℹ fail 1
|
|
111
|
+
ℹ cancelled 0
|
|
112
|
+
ℹ skipped 0
|
|
113
|
+
ℹ todo 0
|
|
114
|
+
ℹ duration_ms 12004.24277
|
|
115
|
+
|
|
116
|
+
✖ failing tests:
|
|
117
|
+
|
|
118
|
+
test at ../client/dist/syncTriggerCleanup.spec.js:8:32
|
|
119
|
+
✖ unsubscribe cleanup preserves a sync being registered (3658.639656ms)
|
|
120
|
+
AssertionError [ERR_ASSERTION]: The new sync lost its trigger during unsubscribe cleanup
|
|
121
|
+
at TestContext.<anonymous> (/home/s/prostgles-server-js/tests/client/dist/syncTriggerCleanup.spec.js:25:38)
|
|
122
|
+
at async Test.run (node:internal/test_runner/test:1125:7)
|
|
123
|
+
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:358:3)
|
|
124
|
+
at async testSyncTriggerCleanup (/home/s/prostgles-server-js/tests/client/dist/syncTriggerCleanup.spec.js:8:5)
|
|
125
|
+
at async syncTriggerCleanup (/home/s/prostgles-server-js/tests/client/dist/client/index.js:46:9)
|
|
126
|
+
at async onReady (/home/s/prostgles-server-js/tests/client/dist/client/index.js:131:21)
|
|
127
|
+
at async /home/s/prostgles-server-js/tests/client/node_modules/prostgles-client/dist/prostgles.js:146:21 {
|
|
128
|
+
generatedMessage: false,
|
|
129
|
+
code: 'ERR_ASSERTION',
|
|
130
|
+
actual: false,
|
|
131
|
+
expected: true,
|
|
132
|
+
operator: '==',
|
|
133
|
+
diff: 'simple'
|
|
134
|
+
}
|