@prostgles/prostgles 2.3.6-dev.1787075289 → 2.3.6-dev.1787077577

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@prostgles/prostgles",
3
- "version": "2.3.6-dev.1787075289",
3
+ "version": "2.3.6-dev.1787077577",
4
4
  "description": "Prostgles UI runtime and configurable PostgreSQL dashboard",
5
5
  "main": "dist/server/src/schemaConfig.js",
6
6
  "bin": {
@@ -85,8 +85,8 @@
85
85
  "default": "./dist/server/src/schemaConfig.js"
86
86
  },
87
87
  "./testing": {
88
- "types": "./dist/server/src/testing/index.d.ts",
89
- "default": "./dist/server/src/testing/index.js"
88
+ "types": "./dist/server/src/cli/testing/index.d.ts",
89
+ "default": "./dist/server/src/cli/testing/index.js"
90
90
  }
91
91
  }
92
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cliUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/cliUtils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,iBAAiB,sEAKpB,CAAC;AAoFX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAkDI;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;;;wCA+BxB;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;CAevC,CAAC"}
1
+ {"version":3,"file":"cliUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/cliUtils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,iBAAiB,sEAKpB,CAAC;AAoFX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAkDI;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;;;wCAwCxB;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;CAevC,CAAC"}
@@ -155,7 +155,10 @@ exports.cliTemplateFiles = {
155
155
  const deployment = await createTestDeployment<DBGeneratedSchema>({
156
156
  configPath: resolve(__dirname, "../.."),
157
157
  configId: ${JSON.stringify(configId)},
158
- users: [{ key: "admin", type: "admin" }],
158
+ users: [
159
+ { key: "admin", type: "admin" },
160
+ { key: "member", type: "default" },
161
+ ],
159
162
  // Add deterministic rows with:
160
163
  // seed: async ({ projectDatabase }) => {
161
164
  // await projectDatabase.query("INSERT INTO ...");
@@ -168,12 +171,17 @@ exports.cliTemplateFiles = {
168
171
  assert.equal(client.socket.connected, true);
169
172
  assert.equal(client.auth.user?.type, "admin");
170
173
  assert.ok(client.db);
174
+
175
+ const memberClient = await deployment.connectProjectAs("member");
176
+ assert.equal(memberClient.socket.connected, true);
177
+ assert.equal(memberClient.auth.user?.type, "default");
171
178
  });`),
172
179
  eslintConfig,
173
180
  gitignore: (0, utils_1.fixIndent)(`
174
181
  node_modules/
175
182
  build/
176
183
  .env
184
+ .prostgles/test-logs/
177
185
  *.log`),
178
186
  envExample: ({ configId }) => (0, utils_1.fixIndent)(`
179
187
  # Fixed admin credentials for CLI development.
@@ -1 +1 @@
1
- {"version":3,"file":"cliUtils.js","sourceRoot":"","sources":["../../../../src/cli/cliUtils.ts"],"names":[],"mappings":";;;;AAAA,yCAA0C;AAC1C,mCAAqC;AACrC,8EAA6C;AAC7C,yDAAsD;AAEzC,QAAA,aAAa,GAAG,KAAK,CAAC;AACtB,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAClC,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,iBAAiB,GAAG;IAC/B,WAAW;IACX,cAAc;IACd,cAAc;IACd,YAAY;CACJ,CAAC;AAEX,MAAM,YAAY,GAAG,IAAA,iBAAS,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgF1B,CAAC,CAAC;AAEM,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE;YACP,KAAK,EAAE,6CAA6C;YACpD,GAAG,EAAE,0BAA0B;YAC/B,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,gBAAgB;YAC5B,KAAK,EAAE,4BAA4B;YACnC,IAAI,EAAE,mFAAmF;SAC1F;QACD,YAAY,EAAE,EAAE,sBAAsB,EAAE,IAAI,sBAAW,CAAC,OAAO,EAAE,EAAE;QACnE,eAAe,EAAE;YACf,YAAY,EAAE,sBAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YACvD,aAAa,EAAE,UAAU;YACzB,MAAM,EAAE,sBAAW,CAAC,eAAe,CAAC,MAAM;YAC1C,wBAAwB,EACtB,sBAAW,CAAC,eAAe,CAAC,wBAAwB,CAAC;YACvD,UAAU,EAAE,sBAAW,CAAC,YAAY,CAAC,YAAY,CAAC;YAClD,mBAAmB,EAAE,sBAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC;SACtE;QACD,OAAO,EAAE;YACP,aAAa,EAAE;gBACb,KAAK,EAAE,8BAA8B;gBACrC,OAAO,EAAE,4BAA4B;aACtC;SACF;KACF;IACD,QAAQ,EAAE;QACR,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,QAAQ;YAC1B,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,IAAI;YACrB,gCAAgC,EAAE,IAAI;YACtC,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,IAAI;YAC9B,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI;YACZ,mBAAmB,EAAE,IAAI;SAC1B;QACD,OAAO,EAAE,CAAC,qBAAa,EAAE,2BAAmB,EAAE,uBAAe,CAAC;KAC/D;IACD,iBAAiB,EACf,wFAAwF;IAC1F,MAAM,EAAE,IAAA,mCAAgB,GAAE;IAC1B,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAwB,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC;;;;;;;;;;sBAU9C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;UAcpC,CAAC;IACT,YAAY;IACZ,SAAS,EAAE,IAAA,iBAAS,EAAC;;;;YAIX,CAAC;IACX,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAwB,EAAE,EAAE,CACjD,IAAA,iBAAS,EAAC;;;sBAGQ,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;;;;;;uEAMY,QAAQ;;;;6DAIlB,CAAC;CACpD,CAAC"}
1
+ {"version":3,"file":"cliUtils.js","sourceRoot":"","sources":["../../../../src/cli/cliUtils.ts"],"names":[],"mappings":";;;;AAAA,yCAA0C;AAC1C,mCAAqC;AACrC,8EAA6C;AAC7C,yDAAsD;AAEzC,QAAA,aAAa,GAAG,KAAK,CAAC;AACtB,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAClC,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,iBAAiB,GAAG;IAC/B,WAAW;IACX,cAAc;IACd,cAAc;IACd,YAAY;CACJ,CAAC;AAEX,MAAM,YAAY,GAAG,IAAA,iBAAS,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgF1B,CAAC,CAAC;AAEM,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE;YACP,KAAK,EAAE,6CAA6C;YACpD,GAAG,EAAE,0BAA0B;YAC/B,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,gBAAgB;YAC5B,KAAK,EAAE,4BAA4B;YACnC,IAAI,EAAE,mFAAmF;SAC1F;QACD,YAAY,EAAE,EAAE,sBAAsB,EAAE,IAAI,sBAAW,CAAC,OAAO,EAAE,EAAE;QACnE,eAAe,EAAE;YACf,YAAY,EAAE,sBAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YACvD,aAAa,EAAE,UAAU;YACzB,MAAM,EAAE,sBAAW,CAAC,eAAe,CAAC,MAAM;YAC1C,wBAAwB,EACtB,sBAAW,CAAC,eAAe,CAAC,wBAAwB,CAAC;YACvD,UAAU,EAAE,sBAAW,CAAC,YAAY,CAAC,YAAY,CAAC;YAClD,mBAAmB,EAAE,sBAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC;SACtE;QACD,OAAO,EAAE;YACP,aAAa,EAAE;gBACb,KAAK,EAAE,8BAA8B;gBACrC,OAAO,EAAE,4BAA4B;aACtC;SACF;KACF;IACD,QAAQ,EAAE;QACR,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,QAAQ;YAC1B,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,IAAI;YACrB,gCAAgC,EAAE,IAAI;YACtC,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,IAAI;YAC9B,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI;YACZ,mBAAmB,EAAE,IAAI;SAC1B;QACD,OAAO,EAAE,CAAC,qBAAa,EAAE,2BAAmB,EAAE,uBAAe,CAAC;KAC/D;IACD,iBAAiB,EACf,wFAAwF;IAC1F,MAAM,EAAE,IAAA,mCAAgB,GAAE;IAC1B,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAwB,EAAE,EAAE,CACrD,IAAA,iBAAS,EAAC;;;;;;;;;;sBAUQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;UAqBpC,CAAC;IACT,YAAY;IACZ,SAAS,EAAE,IAAA,iBAAS,EAAC;;;;;YAKX,CAAC;IACX,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAwB,EAAE,EAAE,CACjD,IAAA,iBAAS,EAAC;;;sBAGQ,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;;;;;;uEAMY,QAAQ;;;;6DAIlB,CAAC;CACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCliAgentsFile.d.ts","sourceRoot":"","sources":["../../../../src/cli/getCliAgentsFile.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,gBAAgB,cAmE0D,CAAC"}
1
+ {"version":3,"file":"getCliAgentsFile.d.ts","sourceRoot":"","sources":["../../../../src/cli/getCliAgentsFile.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,gBAAgB,cAsE0D,CAAC"}
@@ -60,6 +60,9 @@ const getCliAgentsFile = () => (0, utils_1.fixIndent)(`
60
60
 
61
61
  - Run \`npm test\` before committing. Tests use \`@prostgles/prostgles/testing\` to start the real app against fresh state and project databases without opening the UI.
62
62
  - Keep deployment tests in \`tests/\`. Each call to \`createTestDeployment\` starts a disposable PostgreSQL Docker container bound only to \`127.0.0.1\`, creates fresh state and project databases, and removes the container during cleanup.
63
+ - Deployment stdout and stderr remain available after cleanup in \`.prostgles/test-logs/\`. The exact file is returned as \`deployment.logPath\`.
64
+ - Test logs may be large. Inspect them with \`tail\` or search them with \`rg\`; do not read an entire log unless its size is known to be small.
65
+ - If the deployment fixture blocks a valid scenario, inspect \`deployment.logPath\` and report the issue against \`@prostgles/prostgles\`; do not weaken the app or its assertions to work around the fixture.
63
66
  - Add test users through the fixture's \`users\` option and connect with \`connectProjectAs(userKey)\`. Sessions are seeded directly, so deployment tests do not need to exercise the login UI.
64
67
  - Add deterministic database state with the fixture's \`seed\` callback. Never use development or production database URLs for test setup.
65
68
 
@@ -1 +1 @@
1
- {"version":3,"file":"getCliAgentsFile.js","sourceRoot":"","sources":["../../../../src/cli/getCliAgentsFile.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAW1C;;;GAGG;AACH,MAAM,oBAAoB,GAAG;IAC3B,cAAc,EACZ,iGAAiG;IACnG,UAAU,EACR,mGAAmG;IACrG,cAAc,EACZ,+FAA+F;IACjG,SAAS,EACP,4GAA4G;IAC9G,EAAE,EAAE,oEAAoE;IACxE,KAAK,EACH,+EAA+E;IACjF,SAAS,EACP,wFAAwF;IAC1F,OAAO,EACL,gGAAgG;IAClG,WAAW,EACT,gFAAgF;IAClF,qBAAqB,EACnB,iHAAiH;IACnH,UAAU,EAAE,8DAA8D;IAC1E,eAAe,EACb,+EAA+E;IACjF,UAAU,EACR,0FAA0F;CAC9D,CAAC;AAEjC,MAAM,kBAAkB,GAAG;IACzB,gBAAgB,EACd,gFAAgF;IAClF,eAAe,EACb,wEAAwE;IAC1E,aAAa,EACX,yPAAyP;CAC/N,CAAC;AAExB,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,IAAA,iBAAS,EAAC;;;;;;;;;QASJ,oBAAoB,CAAC,EAAE;QACvB,oBAAoB,CAAC,UAAU,IAAI,kBAAkB,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,eAAe;QAC5G,oBAAoB,CAAC,cAAc;QACnC,oBAAoB,CAAC,cAAc;QACnC,oBAAoB,CAAC,eAAe;QACpC,oBAAoB,CAAC,SAAS,IAAI,oBAAoB,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;QAyB9D,oBAAoB,CAAC,WAAW,IAAI,oBAAoB,CAAC,qBAAqB;QAC9E,oBAAoB,CAAC,UAAU;QAC/B,kBAAkB,CAAC,aAAa;;;QAGhC,oBAAoB,CAAC,KAAK;;;;QAI1B,oBAAoB,CAAC,UAAU;;;;;;;;;;;;;QAa/B,oBAAoB,CAAC,SAAS;;;;;sFAKgD,CAAC,CAAC;AAnE3E,QAAA,gBAAgB,oBAmE2D"}
1
+ {"version":3,"file":"getCliAgentsFile.js","sourceRoot":"","sources":["../../../../src/cli/getCliAgentsFile.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAW1C;;;GAGG;AACH,MAAM,oBAAoB,GAAG;IAC3B,cAAc,EACZ,iGAAiG;IACnG,UAAU,EACR,mGAAmG;IACrG,cAAc,EACZ,+FAA+F;IACjG,SAAS,EACP,4GAA4G;IAC9G,EAAE,EAAE,oEAAoE;IACxE,KAAK,EACH,+EAA+E;IACjF,SAAS,EACP,wFAAwF;IAC1F,OAAO,EACL,gGAAgG;IAClG,WAAW,EACT,gFAAgF;IAClF,qBAAqB,EACnB,iHAAiH;IACnH,UAAU,EAAE,8DAA8D;IAC1E,eAAe,EACb,+EAA+E;IACjF,UAAU,EACR,0FAA0F;CAC9D,CAAC;AAEjC,MAAM,kBAAkB,GAAG;IACzB,gBAAgB,EACd,gFAAgF;IAClF,eAAe,EACb,wEAAwE;IAC1E,aAAa,EACX,yPAAyP;CAC/N,CAAC;AAExB,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,IAAA,iBAAS,EAAC;;;;;;;;;QASJ,oBAAoB,CAAC,EAAE;QACvB,oBAAoB,CAAC,UAAU,IAAI,kBAAkB,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,eAAe;QAC5G,oBAAoB,CAAC,cAAc;QACnC,oBAAoB,CAAC,cAAc;QACnC,oBAAoB,CAAC,eAAe;QACpC,oBAAoB,CAAC,SAAS,IAAI,oBAAoB,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4B9D,oBAAoB,CAAC,WAAW,IAAI,oBAAoB,CAAC,qBAAqB;QAC9E,oBAAoB,CAAC,UAAU;QAC/B,kBAAkB,CAAC,aAAa;;;QAGhC,oBAAoB,CAAC,KAAK;;;;QAI1B,oBAAoB,CAAC,UAAU;;;;;;;;;;;;;QAa/B,oBAAoB,CAAC,SAAS;;;;;sFAKgD,CAAC,CAAC;AAtE3E,QAAA,gBAAgB,oBAsE2D"}
@@ -0,0 +1,41 @@
1
+ import { type ClientFunctionHandler, type OnReadyParams } from "prostgles-client";
2
+ import type { UserLike } from "prostgles-types";
3
+ import { Client } from "pg";
4
+ export type TestDeploymentUser = {
5
+ /** Stable name used by connectStateAs/connectProjectAs. */
6
+ key: string;
7
+ username?: string;
8
+ type?: "admin" | "default" | "public";
9
+ };
10
+ export type TestDeploymentSeedContext = {
11
+ stateDatabase: Client;
12
+ projectDatabase: Client;
13
+ };
14
+ export type CreateTestDeploymentOptions = {
15
+ /** Root of the app created by `prostgles create`. */
16
+ configPath: string;
17
+ /** App ID used in Docker and database names. */
18
+ configId: string;
19
+ /** PostgreSQL Docker image. Defaults to the PostGIS image used by Prostgles. */
20
+ postgresImage?: string;
21
+ /** Output file for deployment stdout and stderr. */
22
+ logPath?: string;
23
+ users?: TestDeploymentUser[];
24
+ seed?: (context: TestDeploymentSeedContext) => void | Promise<void>;
25
+ startupTimeoutMs?: number;
26
+ };
27
+ export type TestDeploymentClient<Schema = void, Functions extends ClientFunctionHandler = ClientFunctionHandler, User extends UserLike = UserLike> = OnReadyParams<Schema, Functions, User> & {
28
+ disconnect: () => void;
29
+ };
30
+ export type TestDeployment<Schema = void, Functions extends ClientFunctionHandler = ClientFunctionHandler, User extends UserLike = UserLike> = {
31
+ endpoint: string;
32
+ stateDatabaseName: string;
33
+ projectDatabaseName: string;
34
+ /** File containing deployment stdout and stderr. */
35
+ logPath: string;
36
+ connectStateAs: (userKey: string) => Promise<TestDeploymentClient<void, ClientFunctionHandler, UserLike>>;
37
+ connectProjectAs: (userKey: string) => Promise<TestDeploymentClient<Schema, Functions, User>>;
38
+ dispose: () => Promise<void>;
39
+ };
40
+ export declare const createTestDeployment: <Schema = void, Functions extends ClientFunctionHandler = ClientFunctionHandler, User extends UserLike = UserLike>({ configPath, configId, logPath, postgresImage, seed, startupTimeoutMs, users, }: CreateTestDeploymentOptions) => Promise<TestDeployment<Schema, Functions, User>>;
41
+ //# sourceMappingURL=createTestDeployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTestDeployment.d.ts","sourceRoot":"","sources":["../../../../../src/cli/testing/createTestDeployment.ts"],"names":[],"mappings":"AAKA,OAAkB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAO5B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,MAAM,GAAG,IAAI,EACb,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,EAC/D,IAAI,SAAS,QAAQ,GAAG,QAAQ,IAC9B,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,CACxB,MAAM,GAAG,IAAI,EACb,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,EAC/D,IAAI,SAAS,QAAQ,GAAG,QAAQ,IAC9B;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,CACd,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AA4RF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,GAAG,IAAI,EACb,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,EAC/D,IAAI,SAAS,QAAQ,GAAG,QAAQ,EAChC,kFAQC,2BAA2B,KAAG,OAAO,CACtC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAmNxC,CAAC"}
@@ -0,0 +1,411 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTestDeployment = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const node_child_process_1 = require("node:child_process");
6
+ const node_crypto_1 = require("node:crypto");
7
+ const promises_1 = require("node:fs/promises");
8
+ const node_net_1 = require("node:net");
9
+ const node_path_1 = tslib_1.__importDefault(require("node:path"));
10
+ const prostgles_client_1 = tslib_1.__importDefault(require("prostgles-client"));
11
+ const pg_1 = require("pg");
12
+ const TEST_DATABASE_NAMESPACE = "prostgles_test_";
13
+ const DEFAULT_POSTGRES_IMAGE = "postgis/postgis:17-3.4";
14
+ const STATE_SOCKET_PATH = "/ws-api-dbs";
15
+ const START_TIMEOUT_MS = 60_000;
16
+ const runCommand = async (command, args) => await new Promise((resolve, reject) => {
17
+ const child = (0, node_child_process_1.spawn)(command, args, { stdio: "pipe" });
18
+ let stdout = "";
19
+ let stderr = "";
20
+ child.stdout.on("data", (chunk) => {
21
+ stdout += chunk.toString();
22
+ });
23
+ child.stderr.on("data", (chunk) => {
24
+ stderr += chunk.toString();
25
+ });
26
+ child.once("error", reject);
27
+ child.once("close", (exitCode) => {
28
+ resolve({ exitCode: exitCode ?? 1, stderr, stdout });
29
+ });
30
+ });
31
+ const runDocker = async (args) => {
32
+ const result = await runCommand("docker", args).catch((error) => {
33
+ throw new Error("Docker is required for Prostgles deployment tests. Install Docker and ensure its daemon is running.", { cause: error });
34
+ });
35
+ return result;
36
+ };
37
+ const getDockerError = (args, result) => new Error(`docker ${args[0] ?? "command"} failed with exit code ${result.exitCode}: ${result.stderr.trim() || result.stdout.trim()}`);
38
+ const validatePrefix = (configId) => configId
39
+ .toLowerCase()
40
+ .replace(/[^a-z0-9_]/g, "_")
41
+ .slice(0, 20);
42
+ const getDatabaseUrl = (port, username, password, databaseName) => {
43
+ const url = new URL("postgresql://127.0.0.1");
44
+ url.username = username;
45
+ url.password = password;
46
+ url.port = String(port);
47
+ url.pathname = `/${databaseName}`;
48
+ return url.toString();
49
+ };
50
+ const delay = async (milliseconds) => await new Promise((resolve) => setTimeout(resolve, milliseconds));
51
+ const startDockerDatabases = async ({ configId, postgresImage, startupTimeoutMs, }) => {
52
+ const prefix = validatePrefix(configId);
53
+ const runId = (0, node_crypto_1.randomBytes)(6).toString("hex");
54
+ const baseName = `${TEST_DATABASE_NAMESPACE}${prefix ? `${prefix}_` : ""}${runId}`;
55
+ const stateName = `${baseName}_state`;
56
+ const projectName = `${baseName}_project`;
57
+ const username = "prostgles_test";
58
+ const password = (0, node_crypto_1.randomBytes)(24).toString("base64url");
59
+ const containerName = `prostgles-test-${prefix ? `${prefix.replaceAll("_", "-")}-` : ""}${runId}`;
60
+ const image = postgresImage ??
61
+ process.env.PROSTGLES_TEST_POSTGRES_IMAGE ??
62
+ DEFAULT_POSTGRES_IMAGE;
63
+ const runArgs = [
64
+ "run",
65
+ "--detach",
66
+ "--rm",
67
+ "--name",
68
+ containerName,
69
+ "--label",
70
+ "prostgles.test-deployment=true",
71
+ "--publish",
72
+ "127.0.0.1::5432",
73
+ "--env",
74
+ `POSTGRES_USER=${username}`,
75
+ "--env",
76
+ `POSTGRES_PASSWORD=${password}`,
77
+ "--env",
78
+ "POSTGRES_DB=postgres",
79
+ image,
80
+ ];
81
+ const runResult = await runDocker(runArgs);
82
+ if (runResult.exitCode !== 0)
83
+ throw getDockerError(runArgs, runResult);
84
+ const dispose = async () => {
85
+ const args = ["rm", "--force", containerName];
86
+ const result = await runDocker(args);
87
+ if (result.exitCode !== 0 && !result.stderr.includes("No such container")) {
88
+ throw getDockerError(args, result);
89
+ }
90
+ };
91
+ try {
92
+ const portArgs = ["port", containerName, "5432/tcp"];
93
+ const portResult = await runDocker(portArgs);
94
+ if (portResult.exitCode !== 0)
95
+ throw getDockerError(portArgs, portResult);
96
+ const portText = portResult.stdout.trim();
97
+ if (!portText.startsWith("127.0.0.1:") || portText.includes("\n")) {
98
+ throw new Error(`Refusing a PostgreSQL test container not bound exclusively to 127.0.0.1: ${portText}`);
99
+ }
100
+ const separatorIndex = portText.lastIndexOf(":");
101
+ const port = Number(portText.slice(separatorIndex + 1));
102
+ if (!Number.isInteger(port) || port <= 0) {
103
+ throw new Error(`Docker returned an invalid PostgreSQL port: ${portText}`);
104
+ }
105
+ const maintenanceUrl = getDatabaseUrl(port, username, password, "postgres");
106
+ const startedAt = Date.now();
107
+ let lastConnectionError;
108
+ let maintenance;
109
+ while (Date.now() - startedAt < (startupTimeoutMs ?? START_TIMEOUT_MS)) {
110
+ const candidate = new pg_1.Client({ connectionString: maintenanceUrl });
111
+ try {
112
+ await candidate.connect();
113
+ maintenance = candidate;
114
+ break;
115
+ }
116
+ catch (error) {
117
+ lastConnectionError = error;
118
+ await candidate.end().catch(() => undefined);
119
+ await delay(200);
120
+ }
121
+ }
122
+ if (!maintenance) {
123
+ const logs = await runDocker(["logs", containerName]);
124
+ throw new Error(`Timed out waiting for the test PostgreSQL container.\n${logs.stdout}${logs.stderr}`, { cause: lastConnectionError });
125
+ }
126
+ try {
127
+ await maintenance.query(`CREATE DATABASE "${stateName}"`);
128
+ await maintenance.query(`CREATE DATABASE "${projectName}"`);
129
+ }
130
+ finally {
131
+ await maintenance.end();
132
+ }
133
+ return {
134
+ dispose,
135
+ project: {
136
+ name: projectName,
137
+ url: getDatabaseUrl(port, username, password, projectName),
138
+ },
139
+ state: {
140
+ name: stateName,
141
+ url: getDatabaseUrl(port, username, password, stateName),
142
+ },
143
+ };
144
+ }
145
+ catch (error) {
146
+ await dispose().catch(() => undefined);
147
+ throw error;
148
+ }
149
+ };
150
+ const getFreePort = async () => await new Promise((resolve, reject) => {
151
+ const server = (0, node_net_1.createServer)();
152
+ server.once("error", reject);
153
+ server.listen(0, "127.0.0.1", () => {
154
+ const address = server.address();
155
+ if (!address || typeof address === "string") {
156
+ server.close();
157
+ reject(new Error("Could not allocate a test port."));
158
+ return;
159
+ }
160
+ server.close((error) => {
161
+ if (error)
162
+ reject(error);
163
+ else
164
+ resolve(address.port);
165
+ });
166
+ });
167
+ });
168
+ const stopProcess = async (child) => {
169
+ if (child.exitCode !== null)
170
+ return;
171
+ const exited = new Promise((resolve) => child.once("exit", resolve));
172
+ if (process.platform === "win32" || !child.pid)
173
+ child.kill("SIGTERM");
174
+ else
175
+ process.kill(-child.pid, "SIGTERM");
176
+ const didExit = await Promise.race([
177
+ exited.then(() => true),
178
+ delay(5_000).then(() => false),
179
+ ]);
180
+ if (didExit)
181
+ return;
182
+ if (process.platform === "win32" || !child.pid)
183
+ child.kill("SIGKILL");
184
+ else
185
+ process.kill(-child.pid, "SIGKILL");
186
+ await exited;
187
+ };
188
+ const waitForReady = async ({ child, endpoint, getLogs, logPath, timeoutMs, }) => {
189
+ const getLogDetails = async () => `Log file: ${logPath}\n${await getLogs()}`;
190
+ const startedAt = Date.now();
191
+ while (Date.now() - startedAt < timeoutMs) {
192
+ if (child.exitCode !== null) {
193
+ throw new Error(`Prostgles test deployment exited with code ${child.exitCode}.\n${await getLogDetails()}`);
194
+ }
195
+ const state = (await fetch(`${endpoint}/dbs`)
196
+ .then(async (response) => await response.json())
197
+ .catch(() => undefined));
198
+ if (state?.initState?.state === "ok")
199
+ return;
200
+ if (state?.initState?.state === "error") {
201
+ throw new Error(`Prostgles test deployment failed to start: ${JSON.stringify(state.initState.error)}\n${await getLogDetails()}`);
202
+ }
203
+ await delay(200);
204
+ }
205
+ throw new Error(`Timed out waiting for Prostgles test deployment.\n${await getLogDetails()}`);
206
+ };
207
+ const seedUsers = async (databaseUrl, users) => {
208
+ const client = new pg_1.Client({ connectionString: databaseUrl });
209
+ const tokens = new Map();
210
+ await client.connect();
211
+ try {
212
+ await client.query("BEGIN");
213
+ for (const userConfig of users) {
214
+ if (tokens.has(userConfig.key)) {
215
+ throw new Error(`Duplicate test user key: ${userConfig.key}`);
216
+ }
217
+ const id = (0, node_crypto_1.randomUUID)();
218
+ const token = (0, node_crypto_1.randomBytes)(48).toString("hex");
219
+ const userType = userConfig.type ?? "default";
220
+ await client.query(`INSERT INTO users (id, username, password, type, status, passwordless_admin, last_updated)
221
+ VALUES ($1, $2, '', $3, 'active', false, $4)`, [id, userConfig.username ?? userConfig.key, userType, Date.now()]);
222
+ await client.query(`INSERT INTO sessions
223
+ (id, user_id, user_type, expires, ip_address, type, user_agent)
224
+ VALUES ($1, $2, $3, $4, '127.0.0.1', 'web', 'prostgles-test')`, [token, id, userType, Date.now() + 60 * 60 * 1000]);
225
+ tokens.set(userConfig.key, token);
226
+ }
227
+ await client.query("COMMIT");
228
+ }
229
+ catch (error) {
230
+ await client.query("ROLLBACK");
231
+ throw error;
232
+ }
233
+ finally {
234
+ await client.end();
235
+ }
236
+ return tokens;
237
+ };
238
+ const createTestDeployment = async ({ configPath, configId, logPath, postgresImage, seed, startupTimeoutMs = START_TIMEOUT_MS, users = [{ key: "admin", type: "admin" }], }) => {
239
+ const resolvedConfigPath = node_path_1.default.resolve(configPath);
240
+ const databases = await startDockerDatabases({
241
+ configId,
242
+ postgresImage,
243
+ startupTimeoutMs,
244
+ });
245
+ const port = await getFreePort().catch(async (error) => {
246
+ await databases.dispose();
247
+ throw error;
248
+ });
249
+ const endpoint = `http://127.0.0.1:${port}`;
250
+ const cliPath = node_path_1.default.resolve(__dirname, "../cli.js");
251
+ const resolvedLogPath = node_path_1.default.resolve(logPath ??
252
+ node_path_1.default.join(resolvedConfigPath, ".prostgles/test-logs", `${Date.now()}-${(0, node_crypto_1.randomBytes)(4).toString("hex")}.log`));
253
+ const logFile = await (0, promises_1.mkdir)(node_path_1.default.dirname(resolvedLogPath), {
254
+ recursive: true,
255
+ })
256
+ .then(async () => await (0, promises_1.open)(resolvedLogPath, "w"))
257
+ .catch(async (error) => {
258
+ await databases.dispose();
259
+ throw error;
260
+ });
261
+ const environment = {
262
+ ...process.env,
263
+ NODE_ENV: "production",
264
+ PRGL_PASSWORD: (0, node_crypto_1.randomBytes)(32).toString("base64url"),
265
+ PRGL_USERNAME: `prostgles_test_bootstrap_${(0, node_crypto_1.randomBytes)(4).toString("hex")}`,
266
+ PROSTGLES_DATABASE_URL: databases.project.url,
267
+ PROSTGLES_STATE_DATABASE_URL: databases.state.url,
268
+ PROSTGLES_UI_HOST: "127.0.0.1",
269
+ PROSTGLES_UI_PORT: String(port),
270
+ };
271
+ delete environment.PRGL_TEST;
272
+ delete environment.PRGL_TEST_LOG_PATH;
273
+ const child = (0, node_child_process_1.spawn)(process.execPath, [cliPath, "start", "--config", resolvedConfigPath], {
274
+ cwd: resolvedConfigPath,
275
+ detached: process.platform !== "win32",
276
+ env: environment,
277
+ stdio: ["ignore", logFile.fd, logFile.fd],
278
+ });
279
+ await logFile.close();
280
+ const getLogs = async () => (await (0, promises_1.readFile)(resolvedLogPath, "utf8")).slice(-20_000);
281
+ const addLogPath = (error) => {
282
+ const details = `Log file: ${resolvedLogPath}`;
283
+ if (error instanceof Error && error.message.includes(details))
284
+ return error;
285
+ return new Error(`${error instanceof Error ? error.message : "Test deployment failed."}\n${details}`, { cause: error });
286
+ };
287
+ const clients = new Set();
288
+ let disposed = false;
289
+ const dispose = async () => {
290
+ if (disposed)
291
+ return;
292
+ disposed = true;
293
+ for (const client of clients)
294
+ client.disconnect();
295
+ clients.clear();
296
+ const processCleanup = await Promise.allSettled([stopProcess(child)]);
297
+ const databaseCleanup = await Promise.allSettled([databases.dispose()]);
298
+ const cleanupResults = [...processCleanup, ...databaseCleanup];
299
+ const errors = cleanupResults
300
+ .filter((result) => result.status === "rejected")
301
+ .map((result) => result.reason);
302
+ if (errors.length)
303
+ throw new AggregateError(errors, "Test cleanup failed.");
304
+ };
305
+ try {
306
+ await waitForReady({
307
+ child,
308
+ endpoint,
309
+ getLogs,
310
+ logPath: resolvedLogPath,
311
+ timeoutMs: startupTimeoutMs,
312
+ });
313
+ const tokens = await seedUsers(databases.state.url, users);
314
+ if (seed) {
315
+ const stateDatabase = new pg_1.Client({
316
+ connectionString: databases.state.url,
317
+ });
318
+ const projectDatabase = new pg_1.Client({
319
+ connectionString: databases.project.url,
320
+ });
321
+ await Promise.all([stateDatabase.connect(), projectDatabase.connect()]);
322
+ try {
323
+ await seed({ stateDatabase, projectDatabase });
324
+ }
325
+ finally {
326
+ await Promise.all([stateDatabase.end(), projectDatabase.end()]);
327
+ }
328
+ }
329
+ const connectionResult = new pg_1.Client({
330
+ connectionString: databases.state.url,
331
+ });
332
+ await connectionResult.connect();
333
+ const connectionIdResult = await connectionResult.query("SELECT id FROM connections WHERE db_name = $1", [databases.project.name]);
334
+ await connectionResult.end();
335
+ const connectionId = connectionIdResult.rows[0]?.id;
336
+ if (!connectionId) {
337
+ throw new Error("The CLI did not create its configured connection.");
338
+ }
339
+ const getToken = (userKey) => {
340
+ const token = tokens.get(userKey);
341
+ if (!token)
342
+ throw new Error(`Unknown test user: ${userKey}`);
343
+ return token;
344
+ };
345
+ const trackClient = (client) => {
346
+ const disconnect = () => {
347
+ client.socket.disconnect();
348
+ clients.delete(trackedClient);
349
+ };
350
+ const trackedClient = Object.assign(client, { disconnect });
351
+ clients.add(trackedClient);
352
+ return trackedClient;
353
+ };
354
+ const connectStateAs = async (userKey) => trackClient(await (0, prostgles_client_1.default)({
355
+ endpoint,
356
+ token: getToken(userKey),
357
+ socketOptions: {
358
+ path: STATE_SOCKET_PATH,
359
+ transports: ["websocket"],
360
+ reconnection: false,
361
+ timeout: 10_000,
362
+ },
363
+ }));
364
+ const connectProjectAs = async (userKey) => {
365
+ const stateClient = await connectStateAs(userKey);
366
+ try {
367
+ const startConnection = stateClient.methods?.startConnection;
368
+ if (!startConnection) {
369
+ throw new Error("startConnection is not available to the test user.");
370
+ }
371
+ const socketInfo = await startConnection({ connectionId });
372
+ if (!socketInfo?.socketPath) {
373
+ throw new Error("The project socket path was not returned.");
374
+ }
375
+ return trackClient(await (0, prostgles_client_1.default)({
376
+ endpoint: socketInfo.socketUrl ?? endpoint,
377
+ token: getToken(userKey),
378
+ socketOptions: {
379
+ path: socketInfo.socketPath,
380
+ transports: ["websocket"],
381
+ reconnection: false,
382
+ timeout: 10_000,
383
+ },
384
+ }));
385
+ }
386
+ finally {
387
+ stateClient.disconnect();
388
+ }
389
+ };
390
+ return {
391
+ connectProjectAs,
392
+ connectStateAs,
393
+ dispose,
394
+ endpoint,
395
+ logPath: resolvedLogPath,
396
+ projectDatabaseName: databases.project.name,
397
+ stateDatabaseName: databases.state.name,
398
+ };
399
+ }
400
+ catch (error) {
401
+ try {
402
+ await dispose();
403
+ }
404
+ catch (cleanupError) {
405
+ throw new AggregateError([addLogPath(error), cleanupError], `Test deployment failed and cleanup also failed.\nLog file: ${resolvedLogPath}`);
406
+ }
407
+ throw addLogPath(error);
408
+ }
409
+ };
410
+ exports.createTestDeployment = createTestDeployment;
411
+ //# sourceMappingURL=createTestDeployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTestDeployment.js","sourceRoot":"","sources":["../../../../../src/cli/testing/createTestDeployment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { createTestDeployment, type CreateTestDeploymentOptions, type TestDeployment, type TestDeploymentClient, type TestDeploymentSeedContext, type TestDeploymentUser, } from "./createTestDeployment";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,GACxB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTestDeployment = void 0;
4
+ var createTestDeployment_1 = require("./createTestDeployment");
5
+ Object.defineProperty(exports, "createTestDeployment", { enumerable: true, get: function () { return createTestDeployment_1.createTestDeployment; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/testing/index.ts"],"names":[],"mappings":";;;AAAA,+DAOgC;AAN9B,4HAAA,oBAAoB,OAAA"}
@@ -1,8 +1,7 @@
1
1
  import type { DBGeneratedSchema } from "../../../common/DBGeneratedSchema";
2
+ import { type DBS } from "../index";
2
3
  export type Users = Required<DBGeneratedSchema["users"]["columns"]>;
3
4
  export type Connections = Required<DBGeneratedSchema["connections"]["columns"]>;
4
- import { type PublishParams } from "prostgles-server";
5
- import { type SUser } from "../authConfig/sessionUtils";
6
5
  /** TODO: this must reuse loadGeneratedWorkspaces function */
7
- export declare const insertConfigWorkspaces: (connectionId: string, getClientDBHandlers: NonNullable<PublishParams<DBGeneratedSchema, SUser>>["getClientDBHandlers"]) => Promise<void>;
6
+ export declare const insertConfigWorkspaces: (connectionId: string, dbs: DBS, userId: string) => Promise<void>;
8
7
  //# sourceMappingURL=insertConfigWorkspaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"insertConfigWorkspaces.d.ts","sourceRoot":"","sources":["../../../../src/serverFunctions/insertConfigWorkspaces.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAInE,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGxD,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,GACjC,cAAc,MAAM,EACpB,qBAAqB,WAAW,CAC9B,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,CACxC,CAAC,qBAAqB,CAAC,kBAqDzB,CAAC"}
1
+ {"version":3,"file":"insertConfigWorkspaces.d.ts","sourceRoot":"","sources":["../../../../src/serverFunctions/insertConfigWorkspaces.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAqB,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAIhF,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,GACjC,cAAc,MAAM,EACpB,KAAK,GAAG,EACR,QAAQ,MAAM,kBAoDf,CAAC"}
@@ -5,7 +5,7 @@ const crypto_1 = require("crypto");
5
5
  const index_1 = require("../index");
6
6
  const getSchemaConfig_1 = require("../ConnectionManager/getSchemaConfig");
7
7
  /** TODO: this must reuse loadGeneratedWorkspaces function */
8
- const insertConfigWorkspaces = async (connectionId, getClientDBHandlers) => {
8
+ const insertConfigWorkspaces = async (connectionId, dbs, userId) => {
9
9
  const connection = index_1.connectionManager.getActiveConnectionSilentFail(connectionId);
10
10
  if (!connection)
11
11
  return;
@@ -13,9 +13,9 @@ const insertConfigWorkspaces = async (connectionId, getClientDBHandlers) => {
13
13
  .workspaces;
14
14
  if (!workspaces?.length)
15
15
  return;
16
- const { clientDb } = await getClientDBHandlers(undefined);
17
- const existingWorkspaces = await clientDb.workspaces.find({
16
+ const existingWorkspaces = await dbs.workspaces.find({
18
17
  connection_id: connectionId,
18
+ user_id: userId,
19
19
  name: { $in: workspaces.map(({ name }) => name) },
20
20
  });
21
21
  const existingNames = new Set(existingWorkspaces.map(({ name }) => name));
@@ -41,18 +41,18 @@ const insertConfigWorkspaces = async (connectionId, getClientDBHandlers) => {
41
41
  ...workspace,
42
42
  connection_id: connectionId,
43
43
  last_updated: lastUpdated,
44
- user_id: undefined,
44
+ user_id: userId,
45
45
  layout,
46
46
  windows: workspace.windows.map((window) => ({
47
47
  ...window,
48
48
  id: windowIds.get(window.id),
49
49
  last_updated: lastUpdated,
50
- user_id: undefined,
50
+ user_id: userId,
51
51
  })),
52
52
  };
53
53
  });
54
54
  if (newWorkspaces.length) {
55
- await clientDb.workspaces.insertMany(newWorkspaces);
55
+ await dbs.workspaces.insertMany(newWorkspaces);
56
56
  }
57
57
  };
58
58
  exports.insertConfigWorkspaces = insertConfigWorkspaces;
@@ -1 +1 @@
1
- {"version":3,"file":"insertConfigWorkspaces.js","sourceRoot":"","sources":["../../../../src/serverFunctions/insertConfigWorkspaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insertConfigWorkspaces.js","sourceRoot":"","sources":["../../../../src/serverFunctions/insertConfigWorkspaces.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stateServerFunctions.d.ts","sourceRoot":"","sources":["../../../../src/serverFunctions/stateServerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAGhF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAUjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"stateServerFunctions.d.ts","sourceRoot":"","sources":["../../../../src/serverFunctions/stateServerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAGhF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAUjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -17,10 +17,10 @@ exports.stateServerFunctions = {
17
17
  startConnection: (0, prostgles_server_1.defineFunction)({
18
18
  input: { connectionId: "string" },
19
19
  unrestrictedDbAccess: true,
20
- run: async ({ connectionId }, { user, dbo: dbs, db: _dbs, clientReq: { socket }, getClientDBHandlers, }) => {
20
+ run: async ({ connectionId }, { user, dbo: dbs, db: _dbs, clientReq: { socket } }) => {
21
21
  try {
22
22
  const socketPathAndUrl = await index_1.connectionManager.startConnection(connectionId, dbs, _dbs, socket);
23
- await (0, insertConfigWorkspaces_1.insertConfigWorkspaces)(connectionId, getClientDBHandlers);
23
+ await (0, insertConfigWorkspaces_1.insertConfigWorkspaces)(connectionId, dbs, user.id);
24
24
  return socketPathAndUrl;
25
25
  }
26
26
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"stateServerFunctions.js","sourceRoot":"","sources":["../../../../src/serverFunctions/stateServerFunctions.ts"],"names":[],"mappings":";;;AAEA,oCAA6C;AAK7C,uDAAkD;AAElD,8EAGgD;AAChD,gGAA6F;AAC7F,+DAA4D;AAC5D,qEAAkE;AAClE,mFAAgF;AAEnE,QAAA,oBAAoB,GAAG;IAClC,GAAG,yCAAmB;IACtB,GAAG,qDAAyB;IAC5B,OAAO,EAAE,IAAA,yCAAmB,EAAC;QAC3B,UAAU,EAAE,EAAE;QACd,SAAS,EAAE;YACT,eAAe,EAAE,IAAA,iCAAc,EAAC;gBAC9B,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;gBACjC,oBAAoB,EAAE,IAAI;gBAC1B,GAAG,EAAE,KAAK,EACR,EAAE,YAAY,EAAE,EAChB,EACE,IAAI,EACJ,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,IAAI,EACR,SAAS,EAAE,EAAE,MAAM,EAAE,EACrB,mBAAmB,GACpB,EACD,EAAE;oBACF,IAAI,CAAC;wBACH,MAAM,gBAAgB,GAAG,MAAM,yBAAiB,CAAC,eAAe,CAC9D,YAAY,EACZ,GAAG,EACH,IAAI,EACJ,MAAM,CACP,CAAC;wBACF,MAAM,IAAA,+CAAsB,EAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;wBAChE,OAAO,gBAAgB,CAAC;oBAC1B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC;wBACnE,yCAAyC;wBACzC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC1B,MAAM,KAAK,CAAC;wBACd,CAAC;6BAAM,CAAC;4BACN,MAAM,2CAA2C,YAAY,EAAE,CAAC;wBAClE,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC;SACH;KACF,CAAC;CACH,CAAC,CAAC,0EAA0E;AAEtE,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAc,EACd,KAAa,EACb,IAAwB,EACxB,WAA0B;AAC1B;;GAEG;AACH,0BAA0B,GAAG,KAAK,EACpB,EAAE;IAChB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAA,mCAAe,EAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAM,EAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACpD,IAAI,0BAA0B,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,0CAA0C,MAAM,2DAA2D,GAAG,EAAE,CACjH,CAAC;YACF,KAAK,MAAM,QAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC;oBACH,OAAO,IAAA,0BAAM,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,CAAA,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAhCW,QAAA,kBAAkB,sBAgC7B"}
1
+ {"version":3,"file":"stateServerFunctions.js","sourceRoot":"","sources":["../../../../src/serverFunctions/stateServerFunctions.ts"],"names":[],"mappings":";;;AAEA,oCAA6C;AAK7C,uDAAkD;AAElD,8EAGgD;AAChD,gGAA6F;AAC7F,+DAA4D;AAC5D,qEAAkE;AAClE,mFAAgF;AAEnE,QAAA,oBAAoB,GAAG;IAClC,GAAG,yCAAmB;IACtB,GAAG,qDAAyB;IAC5B,OAAO,EAAE,IAAA,yCAAmB,EAAC;QAC3B,UAAU,EAAE,EAAE;QACd,SAAS,EAAE;YACT,eAAe,EAAE,IAAA,iCAAc,EAAC;gBAC9B,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;gBACjC,oBAAoB,EAAE,IAAI;gBAC1B,GAAG,EAAE,KAAK,EACR,EAAE,YAAY,EAAE,EAChB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EACnD,EAAE;oBACF,IAAI,CAAC;wBACH,MAAM,gBAAgB,GAAG,MAAM,yBAAiB,CAAC,eAAe,CAC9D,YAAY,EACZ,GAAG,EACH,IAAI,EACJ,MAAM,CACP,CAAC;wBACF,MAAM,IAAA,+CAAsB,EAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;wBACzD,OAAO,gBAAgB,CAAC;oBAC1B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC;wBACnE,yCAAyC;wBACzC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC1B,MAAM,KAAK,CAAC;wBACd,CAAC;6BAAM,CAAC;4BACN,MAAM,2CAA2C,YAAY,EAAE,CAAC;wBAClE,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC;SACH;KACF,CAAC;CACH,CAAC,CAAC,0EAA0E;AAEtE,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAc,EACd,KAAa,EACb,IAAwB,EACxB,WAA0B;AAC1B;;GAEG;AACH,0BAA0B,GAAG,KAAK,EACpB,EAAE;IAChB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAA,mCAAe,EAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAM,EAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACpD,IAAI,0BAA0B,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,0CAA0C,MAAM,2DAA2D,GAAG,EAAE,CACjH,CAAC;YACF,KAAK,MAAM,QAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC;oBACH,OAAO,IAAA,0BAAM,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,CAAA,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAhCW,QAAA,kBAAkB,sBAgC7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prostgles/prostgles",
3
- "version": "2.3.6-dev.1787075289",
3
+ "version": "2.3.6-dev.1787077577",
4
4
  "description": "Prostgles UI runtime and configurable PostgreSQL dashboard",
5
5
  "main": "dist/server/src/schemaConfig.js",
6
6
  "bin": {
@@ -85,8 +85,8 @@
85
85
  "default": "./dist/server/src/schemaConfig.js"
86
86
  },
87
87
  "./testing": {
88
- "types": "./dist/server/src/testing/index.d.ts",
89
- "default": "./dist/server/src/testing/index.js"
88
+ "types": "./dist/server/src/cli/testing/index.d.ts",
89
+ "default": "./dist/server/src/cli/testing/index.js"
90
90
  }
91
91
  }
92
92
  }