prostgles-server 4.2.495 → 4.2.497

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 +1 @@
1
- {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC;AAElE,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,GAAG,SAAS,EAC/B,aAAa,MAAM,GAAG,SAAS,wBAGhC,CAAC;AAEF,iBAAe,SAAS,CACtB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,CAAA;CAAE,CAAC,CAAC;AACvC,iBAAe,SAAS,CACtB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,eAAe,GAAG,SAAS,EACxC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AA8HjC,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC;AAElE,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,GAAG,SAAS,EAC/B,aAAa,MAAM,GAAG,SAAS,wBAGhC,CAAC;AAEF,iBAAe,SAAS,CACtB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,CAAA;CAAE,CAAC,CAAC;AACvC,iBAAe,SAAS,CACtB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,eAAe,GAAG,SAAS,EACxC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAiIjC,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -39,6 +39,9 @@ async function subscribe(filter, params, onData, table_rules, localParams) {
39
39
  const [firstField, ...otherFields] = newQuery.select
40
40
  .filter((s) => s.selected)
41
41
  .flatMap((c) => c.fields);
42
+ if (!firstField) {
43
+ throw "Cannot subscribe to no columns. Use limit 0 if you don't want any data but want to listen to changes";
44
+ }
42
45
  const commonSubOpts = {
43
46
  table_info: this.tableOrViewInfo,
44
47
  viewOptions,
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/subscribe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/subscribe.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSubscribeRelatedTables.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG7D,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,WAAW,GAAG,YAAY,EAChC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,gDAuGxC"}
1
+ {"version":3,"file":"getSubscribeRelatedTables.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI7D,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,WAAW,GAAG,YAAY,EAChC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,gDA6GxC"}
@@ -24,13 +24,7 @@ async function getSubscribeRelatedTables({ filter, localParams, newQuery }) {
24
24
  if (!relatedTableOrViewHandler) {
25
25
  throw `Table ${relatedTableName} not found`;
26
26
  }
27
- const alreadyPushed = viewOptions?.relatedTables.find((rt) => rt.tableName === relatedTableName);
28
- if (alreadyPushed || relatedTableOrViewHandler.is_view) {
29
- console.warn({
30
- selectedColumnNames,
31
- alreadyPushed,
32
- is_view: relatedTableOrViewHandler.is_view,
33
- });
27
+ if (relatedTableOrViewHandler.is_view) {
34
28
  return;
35
29
  }
36
30
  viewOptions ??= {
@@ -54,11 +48,19 @@ async function getSubscribeRelatedTables({ filter, localParams, newQuery }) {
54
48
  const relatedTableJoinPathItem = joinPath.at(-1);
55
49
  const joinColumns = relatedTableJoinPathItem?.on.map((columnPair) => Object.values(columnPair)).flat() ?? [];
56
50
  const [firstField, ...otherFields] = Array.from(new Set([...(selectedColumnNames ?? []), ...joinColumns, ...joinConditionInfo.columnsUsed]));
51
+ const tracked_columns = !firstField ? undefined : [firstField, ...otherFields];
52
+ const condition = joinConditionInfo.where;
53
+ const alreadyPushed = viewOptions.relatedTables.find((rt) => rt.tableName === relatedTableName && rt.condition === condition);
54
+ if (alreadyPushed) {
55
+ const [firstMerged, ...others] = Array.from(new Set([...(alreadyPushed.tracked_columns ?? []), ...(tracked_columns ?? [])]));
56
+ alreadyPushed.tracked_columns = firstMerged ? [firstMerged, ...others] : undefined;
57
+ return;
58
+ }
57
59
  viewOptions.relatedTables.push({
58
60
  tableName: relatedTableName,
59
61
  tableNameEscaped: (0, prostgles_types_1.asName)(relatedTableName),
60
- tracked_columns: !firstField ? undefined : [firstField, ...otherFields],
61
- condition: joinConditionInfo.where,
62
+ tracked_columns,
63
+ condition,
62
64
  });
63
65
  };
64
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"getSubscribeRelatedTables.js","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSubscribeRelatedTables.js","sourceRoot":"","sources":["../../lib/DboBuilder/getSubscribeRelatedTables.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import type { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
1
2
  import type { ViewSubscriptionOptions } from "./PubSubManager";
2
3
  import { type PubSubManager } from "./PubSubManager";
3
- import type { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
4
4
  export type AddTriggerParams = {
5
5
  table_name: string;
6
6
  condition: string;
@@ -1 +1 @@
1
- {"version":3,"file":"addTrigger.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/addTrigger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAKlE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;CACpD,CAAC;AACF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,uBAAuB,GAAG,SAAS,EAChD,MAAM,EAAE,YAAY,GAAG,SAAS;;;;;;;;;;IA4GjC"}
1
+ {"version":3,"file":"addTrigger.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/addTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;CACpD,CAAC;AACF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,uBAAuB,GAAG,SAAS,EAChD,MAAM,EAAE,YAAY,GAAG,SAAS;;;;;;;;;;IA8GjC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addTrigger = addTrigger;
4
- const prostgles_types_1 = require("prostgles-types");
5
4
  const crypto = require("crypto");
5
+ const prostgles_types_1 = require("prostgles-types");
6
6
  const PubSubManagerUtils_1 = require("./PubSubManagerUtils");
7
7
  const getDataWatchFunctionQuery_1 = require("./init/getDataWatchFunctionQuery");
8
8
  async function addTrigger(params, viewOptions, socket) {
@@ -29,6 +29,7 @@ async function addTrigger(params, viewOptions, socket) {
29
29
  relatedViewDef: viewOptions?.definition ?? null,
30
30
  columnsInfo: getColumnsInfo(params, tableHandler),
31
31
  };
32
+ const TRACKED_COLUMNS = "tracked_columns";
32
33
  await this.db.any(`
33
34
  BEGIN WORK;
34
35
  /* ${PubSubManagerUtils_1.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
@@ -64,13 +65,13 @@ async function addTrigger(params, viewOptions, socket) {
64
65
  \${columnsInfo}
65
66
  )
66
67
  ON CONFLICT (app_id, table_name, condition_hash)
67
- DO UPDATE /* upsert tracked_columns where necessary */
68
+ DO UPDATE /* upsert ${TRACKED_COLUMNS} where necessary */
68
69
  SET columns_info = CASE WHEN EXCLUDED.columns_info IS NOT NULL AND prostgles.app_triggers.columns_info IS NOT NULL THEN
69
70
  jsonb_set(
70
71
  prostgles.app_triggers.columns_info,
71
- '{tracked_columns}',
72
- /* THE JSONB CAST IS CRUCIAL IN ENSURING THE MERGE WORKS */
73
- (prostgles.app_triggers.columns_info->'tracked_columns')::JSONB || (EXCLUDED.columns_info->'tracked_columns')::JSONB
72
+ '{${TRACKED_COLUMNS}}',
73
+ /* THE PARENTHESES ARE CRUCIAL IN ENSURING THE MERGE WORKS */
74
+ (prostgles.app_triggers.columns_info->'${TRACKED_COLUMNS}') || (EXCLUDED.columns_info->'${TRACKED_COLUMNS}')
74
75
  )
75
76
  END
76
77
  WHERE prostgles.app_triggers.columns_info IS NOT NULL
@@ -112,7 +113,7 @@ const getColumnsInfo = ({ tracked_columns, table_name }, tableHandler) => {
112
113
  cast_to: getDataWatchFunctionQuery_1.udtNamesWithoutEqualityComparison.includes(c.udt_name) ? "::TEXT" : "",
113
114
  };
114
115
  });
115
- if (!hasPkey || !cols || !tracked_columns?.length || tracked_columns.length === cols.length) {
116
+ if (!hasPkey || !cols || !tracked_columns) {
116
117
  return null;
117
118
  }
118
119
  const trackedColumnsWithInfo = tracked_columns.map((name) => {
@@ -1 +1 @@
1
- {"version":3,"file":"addTrigger.js","sourceRoot":"","sources":["../../lib/PubSubManager/addTrigger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addTrigger.js","sourceRoot":"","sources":["../../lib/PubSubManager/addTrigger.ts"],"names":[],"mappings":"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"}
@@ -80,6 +80,9 @@ async function subscribe(
80
80
  const [firstField, ...otherFields] = newQuery.select
81
81
  .filter((s) => s.selected)
82
82
  .flatMap((c) => c.fields);
83
+ if (!firstField) {
84
+ throw "Cannot subscribe to no columns. Use limit 0 if you don't want any data but want to listen to changes";
85
+ }
83
86
 
84
87
  const commonSubOpts = {
85
88
  table_info: this.tableOrViewInfo,
@@ -7,6 +7,7 @@ import type { NewQuery } from "./QueryBuilder/QueryBuilder";
7
7
  import type { TableHandler } from "./TableHandler/TableHandler";
8
8
  import type { ViewHandler } from "./ViewHandler/ViewHandler";
9
9
  import { getViewRelatedTables } from "./ViewRelatedTables/getViewRelatedTables";
10
+ import type { AddTriggerParams } from "../PubSubManager/addTrigger";
10
11
 
11
12
  type Args = {
12
13
  selectParams: Omit<SubscribeParams, "throttle">;
@@ -46,15 +47,7 @@ export async function getSubscribeRelatedTables(
46
47
  throw `Table ${relatedTableName} not found`;
47
48
  }
48
49
 
49
- const alreadyPushed = viewOptions?.relatedTables.find(
50
- (rt) => rt.tableName === relatedTableName,
51
- );
52
- if (alreadyPushed || relatedTableOrViewHandler.is_view) {
53
- console.warn({
54
- selectedColumnNames,
55
- alreadyPushed,
56
- is_view: relatedTableOrViewHandler.is_view,
57
- });
50
+ if (relatedTableOrViewHandler.is_view) {
58
51
  return;
59
52
  }
60
53
 
@@ -89,11 +82,25 @@ export async function getSubscribeRelatedTables(
89
82
  new Set([...(selectedColumnNames ?? []), ...joinColumns, ...joinConditionInfo.columnsUsed]),
90
83
  );
91
84
 
85
+ const tracked_columns: AddTriggerParams["tracked_columns"] =
86
+ !firstField ? undefined : [firstField, ...otherFields];
87
+ const condition = joinConditionInfo.where;
88
+
89
+ const alreadyPushed = viewOptions.relatedTables.find(
90
+ (rt) => rt.tableName === relatedTableName && rt.condition === condition,
91
+ );
92
+ if (alreadyPushed) {
93
+ const [firstMerged, ...others] = Array.from(
94
+ new Set([...(alreadyPushed.tracked_columns ?? []), ...(tracked_columns ?? [])]),
95
+ );
96
+ alreadyPushed.tracked_columns = firstMerged ? [firstMerged, ...others] : undefined;
97
+ return;
98
+ }
92
99
  viewOptions.relatedTables.push({
93
100
  tableName: relatedTableName,
94
101
  tableNameEscaped: asName(relatedTableName),
95
- tracked_columns: !firstField ? undefined : [firstField, ...otherFields],
96
- condition: joinConditionInfo.where,
102
+ tracked_columns,
103
+ condition,
97
104
  });
98
105
  };
99
106
 
@@ -1,11 +1,11 @@
1
+ import * as crypto from "crypto";
1
2
  import { asName, pickKeys, tryCatchV2 } from "prostgles-types";
3
+ import type { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
4
+ import type { TableHandler } from "../DboBuilder/TableHandler/TableHandler";
2
5
  import type { ViewSubscriptionOptions } from "./PubSubManager";
3
6
  import { type PubSubManager } from "./PubSubManager";
4
- import * as crypto from "crypto";
5
- import type { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
6
- import { asValue, EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID } from "./PubSubManagerUtils";
7
+ import { EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID } from "./PubSubManagerUtils";
7
8
  import { udtNamesWithoutEqualityComparison } from "./init/getDataWatchFunctionQuery";
8
- import type { TableHandler } from "../DboBuilder/TableHandler/TableHandler";
9
9
 
10
10
  export type AddTriggerParams = {
11
11
  table_name: string;
@@ -44,6 +44,8 @@ export async function addTrigger(
44
44
  columnsInfo: getColumnsInfo(params, tableHandler),
45
45
  };
46
46
 
47
+ const TRACKED_COLUMNS = "tracked_columns" as const satisfies keyof AddTriggerParams;
48
+
47
49
  await this.db.any(
48
50
  `
49
51
  BEGIN WORK;
@@ -80,13 +82,13 @@ export async function addTrigger(
80
82
  \${columnsInfo}
81
83
  )
82
84
  ON CONFLICT (app_id, table_name, condition_hash)
83
- DO UPDATE /* upsert tracked_columns where necessary */
85
+ DO UPDATE /* upsert ${TRACKED_COLUMNS} where necessary */
84
86
  SET columns_info = CASE WHEN EXCLUDED.columns_info IS NOT NULL AND prostgles.app_triggers.columns_info IS NOT NULL THEN
85
87
  jsonb_set(
86
88
  prostgles.app_triggers.columns_info,
87
- '{tracked_columns}',
88
- /* THE JSONB CAST IS CRUCIAL IN ENSURING THE MERGE WORKS */
89
- (prostgles.app_triggers.columns_info->'tracked_columns')::JSONB || (EXCLUDED.columns_info->'tracked_columns')::JSONB
89
+ '{${TRACKED_COLUMNS}}',
90
+ /* THE PARENTHESES ARE CRUCIAL IN ENSURING THE MERGE WORKS */
91
+ (prostgles.app_triggers.columns_info->'${TRACKED_COLUMNS}') || (EXCLUDED.columns_info->'${TRACKED_COLUMNS}')
90
92
  )
91
93
  END
92
94
  WHERE prostgles.app_triggers.columns_info IS NOT NULL
@@ -139,7 +141,7 @@ const getColumnsInfo = (
139
141
  };
140
142
  });
141
143
 
142
- if (!hasPkey || !cols || !tracked_columns?.length || tracked_columns.length === cols.length) {
144
+ if (!hasPkey || !cols || !tracked_columns) {
143
145
  return null;
144
146
  }
145
147
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.495",
3
+ "version": "4.2.497",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -38,8 +38,8 @@
38
38
  ],
39
39
  "homepage": "https://prostgles.com",
40
40
  "dependencies": {
41
- "@aws-sdk/client-ses": "^3.1011.0",
42
- "@aws-sdk/credential-provider-node": "^3.972.21",
41
+ "@aws-sdk/client-ses": "^3.1014.0",
42
+ "@aws-sdk/credential-provider-node": "^3.972.24",
43
43
  "@types/passport": "^1.0.17",
44
44
  "@types/passport-facebook": "^3.0.4",
45
45
  "@types/passport-github2": "^1.2.9",