@promind/honey 1.51.0 → 1.52.0

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/dist/index.d.ts CHANGED
@@ -69,6 +69,31 @@ type GetFilterParam = {
69
69
  type GetQueryFilter = {
70
70
  [key: string]: GetFilterParam | Record<string, GetFilterParam>;
71
71
  };
72
+ /** The operator type used in filter conditions */
73
+ type FilterOperator = FilterOps;
74
+ /** The value type used in filter conditions */
75
+ type FilterValue = GetFilterParam['value'];
76
+ /**
77
+ * A single leaf condition — same shape as GetFilterParam but with an optional
78
+ * overrideValue. When value === 'as-is', overrideValue is used directly.
79
+ */
80
+ interface FilterCondition {
81
+ [field: string]: {
82
+ operator: FilterOperator;
83
+ value: FilterValue | 'as-is';
84
+ overrideValue?: unknown | (() => unknown);
85
+ };
86
+ }
87
+ /** A node in a filter tree is either a leaf condition or an AND group */
88
+ type FilterNode = FilterCondition | FilterAndGroup;
89
+ /** An AND group: all child nodes must match */
90
+ interface FilterAndGroup {
91
+ $and: FilterNode[];
92
+ }
93
+ /** A preset is an array of FilterNodes joined by OR at the top level */
94
+ type FilterPreset = FilterNode[];
95
+ /** The full presets map: preset name → FilterPreset */
96
+ type FilterPresets = Record<string, FilterPreset>;
72
97
  type JoinType = 'inner' | 'left' | 'right' | 'full' | 'cross';
73
98
  interface Join {
74
99
  /** The table to join */
@@ -87,6 +112,31 @@ interface Join {
87
112
  /** Alias for the joined table (optional) */
88
113
  alias?: string;
89
114
  }
115
+ /**
116
+ * A resolved leaf condition ready for knex: { field, operator, value }
117
+ */
118
+ interface ResolvedLeaf {
119
+ field: string;
120
+ operator: FilterOps;
121
+ value: unknown;
122
+ }
123
+ /**
124
+ * A single resolved node — either a leaf or an AND group
125
+ */
126
+ type ResolvedNode = ResolvedLeaf | ResolvedAndGroup;
127
+ /**
128
+ * A resolved AND group: all children must match
129
+ */
130
+ interface ResolvedAndGroup {
131
+ $and: ResolvedNode[];
132
+ }
133
+ /**
134
+ * The top-level resolved OR group produced by resolveFilterPreset.
135
+ * Each element is one branch of the OR.
136
+ */
137
+ interface ResolvedOrGroup {
138
+ $or: ResolvedNode[];
139
+ }
90
140
  export function runDbQuery(query: string, params?: QueryOptions): Promise<[unknown[], unknown]>;
91
141
  export function createModel<TModelAttributes extends {} = any, TCreationAttributes extends {} = TModelAttributes>(modelName: string, attributes: _ModelAttributes1<_Model1<TModelAttributes, TCreationAttributes>>, options?: _ModelOptions1<_Model1<TModelAttributes, TCreationAttributes>> | undefined): ModelStatic<_Model1<TModelAttributes, TCreationAttributes>>;
92
142
  declare class Postgres {
@@ -96,7 +146,7 @@ declare class Postgres {
96
146
  }, format?: {
97
147
  sort: 'ASC' | 'DESC';
98
148
  sortField: string;
99
- }, joins?: Join[]): Promise<any[]>;
149
+ }, joins?: Join[], resolvedOrGroup?: ResolvedOrGroup): Promise<any[]>;
100
150
  query(query: string, replacements: any[]): Promise<object[]>;
101
151
  create(table: string, data: Record<string, string | number | boolean | Date | Object>): Promise<{
102
152
  id: string | number;
@@ -201,6 +251,8 @@ type IGet = CrudParams & {
201
251
  processResponseData?: (data: any, req: Request) => any;
202
252
  /** Whether to error on not found (default: true) */
203
253
  shouldErrorOnNotFound?: boolean;
254
+ /** Named filter presets supporting OR/AND logic via ?preset= query param */
255
+ filterPresets?: FilterPresets;
204
256
  };
205
257
  type IGetById = CrudParams & {
206
258
  /** Fields to return in the response object */
@@ -255,7 +307,7 @@ export class Honey {
255
307
  startServer(): void;
256
308
  create({ resource, params, message, middleware, pathOverride, exitMiddleware, processResponseData, processErrorResponse, table, methodOverride }: ICreate): void;
257
309
  bulkCreate({ resource, params, message, middleware, pathOverride, exitMiddleware, processResponseData, processErrorResponse, table, methodOverride }: IBulkCreate): void;
258
- get({ resource, fields, filter, format, middleware, pathOverride, exitMiddleware, methodOverride, processResponseData, processErrorResponse, table, joins, shouldErrorOnNotFound }: IGet): void;
310
+ get({ resource, fields, filter, format, middleware, pathOverride, exitMiddleware, methodOverride, processResponseData, processErrorResponse, table, joins, shouldErrorOnNotFound, filterPresets }: IGet): void;
259
311
  getById({ resource, fields, idField, middleware, pathOverride, exitMiddleware, methodOverride, processResponseData, processErrorResponse, table, filter, joins, shouldErrorOnNotFound }: IGetById): void;
260
312
  updateById({ resource, params, idField, message, middleware, pathOverride, exitMiddleware, methodOverride, table, filter, processErrorResponse, processResponseData }: IUpdateById): void;
261
313
  update({ resource, params, filter, message, middleware, pathOverride, exitMiddleware, methodOverride, table, processErrorResponse, processResponseData }: IUpdate): void;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/src/config/database.ts","src/src/config/index.ts","src/src/utils/error.ts","src/src/interfaces/express.ts","src/src/services/express.ts","src/src/controllers/interfaces.ts","src/src/shared/interface.ts","src/src/utils/helpers.ts","src/src/utils/db.ts","src/src/utils/postgres.ts","src/src/services/postgres.ts","src/src/interfaces/crud.ts","src/src/utils/formatter.ts","src/src/controllers/create.ts","src/src/controllers/bulk-create.ts","src/src/controllers/read.ts","src/src/controllers/update.ts","src/src/controllers/upsert.ts","src/src/controllers/delete.ts","src/src/controllers/query.ts","src/src/controllers/index.ts","src/src/services/honey.ts","src/src/utils/port.ts","src/src/utils/validation.ts","src/src/utils/transit.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import { QueryTypes as QTypes } from 'sequelize';\n\nimport Config from './config';\nimport { DBOptions } from './config/database';\nimport ExpressApp from './services/express';\nimport Honey from './services/honey';\nimport Postgres from './services/postgres';\nimport { normalizePort } from './utils/port';\nimport { Metadata } from './interfaces/express';\n\nprocess.on('SIGINT', () => {\n // process reload ongoing\n // close connections, clear cache, etc\n // by default, you have 1600ms\n process.exit(0);\n});\n\nexport function createHoney(\n port: string,\n dbOptions: string | DBOptions,\n metadata?: Metadata\n) {\n new Config(dbOptions);\n\n const portVal = normalizePort(port || process.env.PORT || '3000');\n const express = new ExpressApp(portVal, metadata);\n const postgres = new Postgres();\n const honey = new Honey(express, postgres);\n\n return honey;\n}\n\nexport const defineModel = Config.defineModel.bind(Config);\n\nfunction getQueryTypes() {\n const { SELECT, INSERT, UPDATE, DELETE, RAW, UPSERT } = QTypes;\n\n const exposedTypes = { SELECT, INSERT, UPDATE, DELETE, RAW, UPSERT };\n return exposedTypes;\n}\n\nconst QueryTypes = getQueryTypes();\n\nexport { QueryTypes };\nexport { default as runDbQuery, createModel } from './utils/db';\nexport { default as HttpError, handleHttpError } from './utils/error';\nexport { default as Honey } from './services/honey';\nexport type {\n Middleware,\n ExitMiddleware,\n Request,\n Response\n} from './interfaces/express';\nexport * from 'sequelize';\nexport { Knex } from 'knex';\nexport { validateRequestData } from './utils/validation';\nexport { createReqTransit } from './utils/transit';\n"],"names":[],"version":3,"file":"index.d.ts.map","sourceRoot":"../"}
1
+ {"mappings":"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","sources":["src/src/config/database.ts","src/src/config/index.ts","src/src/utils/error.ts","src/src/interfaces/express.ts","src/src/services/express.ts","src/src/controllers/interfaces.ts","src/src/shared/interface.ts","src/src/utils/formatter.ts","src/src/utils/helpers.ts","src/src/utils/db.ts","src/src/utils/postgres.ts","src/src/services/postgres.ts","src/src/interfaces/crud.ts","src/src/controllers/create.ts","src/src/controllers/bulk-create.ts","src/src/controllers/read.ts","src/src/controllers/update.ts","src/src/controllers/upsert.ts","src/src/controllers/delete.ts","src/src/controllers/query.ts","src/src/controllers/index.ts","src/src/services/honey.ts","src/src/utils/port.ts","src/src/utils/validation.ts","src/src/utils/transit.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import { QueryTypes as QTypes } from 'sequelize';\n\nimport Config from './config';\nimport { DBOptions } from './config/database';\nimport ExpressApp from './services/express';\nimport Honey from './services/honey';\nimport Postgres from './services/postgres';\nimport { normalizePort } from './utils/port';\nimport { Metadata } from './interfaces/express';\n\nprocess.on('SIGINT', () => {\n // process reload ongoing\n // close connections, clear cache, etc\n // by default, you have 1600ms\n process.exit(0);\n});\n\nexport function createHoney(\n port: string,\n dbOptions: string | DBOptions,\n metadata?: Metadata\n) {\n new Config(dbOptions);\n\n const portVal = normalizePort(port || process.env.PORT || '3000');\n const express = new ExpressApp(portVal, metadata);\n const postgres = new Postgres();\n const honey = new Honey(express, postgres);\n\n return honey;\n}\n\nexport const defineModel = Config.defineModel.bind(Config);\n\nfunction getQueryTypes() {\n const { SELECT, INSERT, UPDATE, DELETE, RAW, UPSERT } = QTypes;\n\n const exposedTypes = { SELECT, INSERT, UPDATE, DELETE, RAW, UPSERT };\n return exposedTypes;\n}\n\nconst QueryTypes = getQueryTypes();\n\nexport { QueryTypes };\nexport { default as runDbQuery, createModel } from './utils/db';\nexport { default as HttpError, handleHttpError } from './utils/error';\nexport { default as Honey } from './services/honey';\nexport type {\n Middleware,\n ExitMiddleware,\n Request,\n Response\n} from './interfaces/express';\nexport * from 'sequelize';\nexport { Knex } from 'knex';\nexport { validateRequestData } from './utils/validation';\nexport { createReqTransit } from './utils/transit';\n"],"names":[],"version":3,"file":"index.d.ts.map","sourceRoot":"../"}
package/dist/index.js CHANGED
@@ -203,6 +203,7 @@ var $55ceba8bebac8f81$export$2e2bcd8739ae039 = $55ceba8bebac8f81$var$ExpressApp;
203
203
 
204
204
 
205
205
 
206
+
206
207
  const $016b89c2f40cad11$var$formatters = {
207
208
  string: String,
208
209
  number: Number,
@@ -275,6 +276,60 @@ const $016b89c2f40cad11$export$390602d0ccf68ce6 = (filterParams, filter, req)=>{
275
276
  }
276
277
  return result;
277
278
  };
279
+ /**
280
+ * Returns true if a FilterNode is an $and group.
281
+ */ function $016b89c2f40cad11$var$isAndGroup(node) {
282
+ return '$and' in node;
283
+ }
284
+ function $016b89c2f40cad11$export$d623e78f08e28a37(node, query) {
285
+ if ($016b89c2f40cad11$var$isAndGroup(node)) {
286
+ const resolvedChildren = [];
287
+ for (const child of node.$and){
288
+ const resolved = $016b89c2f40cad11$export$d623e78f08e28a37(child, query);
289
+ if (resolved === null) return null; // missing required param — whole AND fails
290
+ resolvedChildren.push(resolved);
291
+ }
292
+ return {
293
+ $and: resolvedChildren
294
+ };
295
+ }
296
+ // Leaf condition — there should be exactly one field key
297
+ const condition = node;
298
+ const entries = Object.entries(condition);
299
+ if (entries.length === 0) return null;
300
+ const [field, spec] = entries[0];
301
+ let resolvedValue;
302
+ if (spec.value === 'as-is') {
303
+ // Use overrideValue directly (call if function)
304
+ if (typeof spec.overrideValue === 'function') resolvedValue = spec.overrideValue();
305
+ else resolvedValue = spec.overrideValue;
306
+ } else {
307
+ // Read from query; if missing, skip this node
308
+ const rawValue = query[field];
309
+ if (typeof rawValue === 'undefined') return null;
310
+ const valueFormatter = $016b89c2f40cad11$var$formatters[spec.value];
311
+ resolvedValue = valueFormatter ? valueFormatter(rawValue) : rawValue;
312
+ }
313
+ return {
314
+ field: field,
315
+ operator: spec.operator,
316
+ value: resolvedValue
317
+ };
318
+ }
319
+ function $016b89c2f40cad11$export$da09f390d3fe1499(presetName, presets, query) {
320
+ if (!presetName) return null;
321
+ if (!presets || !(presetName in presets)) throw new (0, $2a1659c6c3bea4d7$export$2e2bcd8739ae039)(`Unknown filter preset: "${presetName}"`, 400);
322
+ const preset = presets[presetName];
323
+ const orBranches = [];
324
+ for (const node of preset){
325
+ const resolved = $016b89c2f40cad11$export$d623e78f08e28a37(node, query);
326
+ if (resolved !== null) orBranches.push(resolved);
327
+ }
328
+ if (orBranches.length === 0) return null;
329
+ return {
330
+ $or: orBranches
331
+ };
332
+ }
278
333
 
279
334
 
280
335
  function $e6033bad46ade8f8$export$2e2bcd8739ae039({ db: db, resource: resource, params: params, message: message, processResponseData: processResponseData, processErrorResponse: processErrorResponse }) {
@@ -374,7 +429,7 @@ function $b1328f4a111bb650$export$7b6dde2038c44e91({ db: db, resource: resource,
374
429
  }
375
430
  };
376
431
  }
377
- function $b1328f4a111bb650$export$7b48d281d65870ad({ db: db, resource: resource, fields: fields, filterQuery: filterQuery, format: format, processResponseData: processResponseData, processErrorResponse: processErrorResponse, joins: joins, shouldErrorOnNotFound: shouldErrorOnNotFound }) {
432
+ function $b1328f4a111bb650$export$7b48d281d65870ad({ db: db, resource: resource, fields: fields, filterQuery: filterQuery, format: format, processResponseData: processResponseData, processErrorResponse: processErrorResponse, joins: joins, shouldErrorOnNotFound: shouldErrorOnNotFound, filterPresets: filterPresets }) {
378
433
  return async function(req, res, next) {
379
434
  try {
380
435
  const page = Number(req.query.page);
@@ -384,7 +439,10 @@ function $b1328f4a111bb650$export$7b48d281d65870ad({ db: db, resource: resource,
384
439
  limit: limit || 10
385
440
  } : undefined;
386
441
  const filter = filterQuery && (0, $016b89c2f40cad11$export$390602d0ccf68ce6)(req.query, filterQuery, req);
387
- let data = await db.read(resource, fields, filter, paginate, format, joins);
442
+ // Resolve optional ?preset= query param additive, does not touch filter
443
+ const presetName = typeof req.query.preset === 'string' ? req.query.preset : undefined;
444
+ const resolvedOrGroup = (0, $016b89c2f40cad11$export$da09f390d3fe1499)(presetName, filterPresets, req.query);
445
+ let data = await db.read(resource, fields, filter, paginate, format, joins, resolvedOrGroup ?? undefined);
388
446
  let total = 0;
389
447
  if (paginate) {
390
448
  total = Number(data[0]?.['honey_total_count'] || 0);
@@ -748,7 +806,7 @@ class $e551a6691d3acd09$export$2e2bcd8739ae039 {
748
806
  exitMiddleware: exitMiddleware
749
807
  });
750
808
  }
751
- get({ resource: resource, fields: fields, filter: filter, format: format, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table, joins: joins, shouldErrorOnNotFound: shouldErrorOnNotFound = true }) {
809
+ get({ resource: resource, fields: fields, filter: filter, format: format, middleware: middleware, pathOverride: pathOverride, exitMiddleware: exitMiddleware, methodOverride: methodOverride, processResponseData: processResponseData, processErrorResponse: processErrorResponse, table: table, joins: joins, shouldErrorOnNotFound: shouldErrorOnNotFound = true, filterPresets: filterPresets }) {
752
810
  const path = pathOverride || `/${resource}`;
753
811
  resource = table || resource;
754
812
  const controller = (0, $b1328f4a111bb650$export$7b48d281d65870ad)({
@@ -760,7 +818,8 @@ class $e551a6691d3acd09$export$2e2bcd8739ae039 {
760
818
  processResponseData: processResponseData,
761
819
  processErrorResponse: processErrorResponse,
762
820
  joins: joins,
763
- shouldErrorOnNotFound: shouldErrorOnNotFound
821
+ shouldErrorOnNotFound: shouldErrorOnNotFound,
822
+ filterPresets: filterPresets
764
823
  });
765
824
  this.crud({
766
825
  method: methodOverride || 'get',
@@ -978,6 +1037,39 @@ const $6fe5fb6fcb62dbab$export$be3654efea499c50 = (results, joins = [])=>{
978
1037
  });
979
1038
  return nestedResults;
980
1039
  };
1040
+ // ── Preset condition group helpers (additive — applyFilter unchanged) ────────
1041
+ /**
1042
+ * Returns true if a ResolvedNode is an AND group.
1043
+ */ function $6fe5fb6fcb62dbab$var$isResolvedAndGroup(node) {
1044
+ return '$and' in node;
1045
+ }
1046
+ /**
1047
+ * Recursively applies a single ResolvedNode to a knex builder.
1048
+ * AND groups are applied as nested `.where()` calls; leaves are plain conditions.
1049
+ */ function $6fe5fb6fcb62dbab$var$applyConditionGroup(builder, node) {
1050
+ if ($6fe5fb6fcb62dbab$var$isResolvedAndGroup(node)) builder.where((andBuilder)=>{
1051
+ node.$and.forEach((child)=>$6fe5fb6fcb62dbab$var$applyConditionGroup(andBuilder, child));
1052
+ });
1053
+ else {
1054
+ const leaf = node;
1055
+ if ([
1056
+ 'like',
1057
+ 'not like'
1058
+ ].includes(leaf.operator)) builder.where(leaf.field, leaf.operator === 'like' ? 'ilike' : 'not ilike', `%${leaf.value}%`);
1059
+ else builder.where(leaf.field, leaf.operator, leaf.value);
1060
+ }
1061
+ }
1062
+ const $6fe5fb6fcb62dbab$export$647274967602ffc7 = (query, orGroup)=>{
1063
+ query.where((outerBuilder)=>{
1064
+ orGroup.$or.forEach((branch, index)=>{
1065
+ if (index === 0) $6fe5fb6fcb62dbab$var$applyConditionGroup(outerBuilder, branch);
1066
+ else outerBuilder.orWhere((branchBuilder)=>{
1067
+ $6fe5fb6fcb62dbab$var$applyConditionGroup(branchBuilder, branch);
1068
+ });
1069
+ });
1070
+ });
1071
+ return query;
1072
+ };
981
1073
  const $6fe5fb6fcb62dbab$export$1b001418845b471c = (query, filter = {})=>{
982
1074
  Object.entries(filter).forEach(([field, data])=>{
983
1075
  if (field === '$or') query.where((builder)=>{
@@ -1010,7 +1102,7 @@ const $6fe5fb6fcb62dbab$export$53b231d60a00019b = (table, data)=>{
1010
1102
  replacements: replacements
1011
1103
  };
1012
1104
  };
1013
- const $6fe5fb6fcb62dbab$export$60d67f341ad4c4 = (table, fields, filter, paginate, format, joins)=>{
1105
+ const $6fe5fb6fcb62dbab$export$60d67f341ad4c4 = (table, fields, filter, paginate, format, joins, resolvedOrGroup)=>{
1014
1106
  const knex = (0, $6eae9231903e3dbe$export$a858f29c02f648c6)();
1015
1107
  // Handle field aliasing for joins
1016
1108
  const formattedFields = fields.map((field)=>{
@@ -1026,24 +1118,25 @@ const $6fe5fb6fcb62dbab$export$60d67f341ad4c4 = (table, fields, filter, paginate
1026
1118
  // Add total count if pagination is needed
1027
1119
  if (paginate) q = knex(table).select([
1028
1120
  ...formattedFields.map((field)=>{
1029
- // formattedFields entries are either plain strings (e.g. "users.id") or
1030
- // knex.raw objects (produced above for join-aliased fields).
1031
- // For plain strings we must NOT use ?? binding on a dotted value like
1032
- // "users.id" because knex wraps the whole string in double-quotes,
1033
- // producing the invalid identifier "users.id" instead of "users"."id".
1034
- // Passing the string directly to knex.raw as a literal SQL fragment is safe
1035
- // because formattedFields values are generated internally (not user input).
1036
- if (typeof field !== 'string') // Already a knex.raw object (join-aliased field) — use as-is
1121
+ // formattedFields entries are either plain strings (e.g. "users.id",
1122
+ // "users.firstName", or "bookings.scheduledAt as bookings__hj__scheduledAt")
1123
+ // or knex.raw objects. We must double-quote each identifier part so that
1124
+ // mixed-case column names (e.g. firstName, scheduledAt) are preserved and
1125
+ // not lowercased by PostgreSQL.
1126
+ if (typeof field !== 'string') // Already a knex.raw object use as-is
1037
1127
  return field;
1038
1128
  const [actualField, alias] = field.split(' as ');
1039
- if (alias) // Has an explicit alias: quote each part of the column reference
1040
- // then attach the alias as a plain identifier
1041
- return knex.raw(`${actualField} as ??`, [
1129
+ // Quote each part of a dotted identifier (e.g. "table"."column")
1130
+ const quotedField = actualField.includes('.') ? knex.raw('??.??', actualField.split('.')) : knex.raw('??', [
1131
+ actualField
1132
+ ]);
1133
+ if (alias) // Has an explicit alias: emit "table"."column" as "alias"
1134
+ return knex.raw(`${quotedField.toSQL().sql} as ??`, [
1135
+ ...quotedField.toSQL().bindings,
1042
1136
  alias
1043
1137
  ]);
1044
- // No alias: emit the field as a literal SQL fragment so dotted names
1045
- // like "users.id" are kept as-is and not collapsed into one quoted token
1046
- return knex.raw(field);
1138
+ // No alias: just emit the properly-quoted column reference
1139
+ return quotedField;
1047
1140
  }),
1048
1141
  knex.raw('count(*) OVER() AS honey_total_count')
1049
1142
  ]);
@@ -1078,6 +1171,8 @@ const $6fe5fb6fcb62dbab$export$60d67f341ad4c4 = (table, fields, filter, paginate
1078
1171
  });
1079
1172
  // Apply filters
1080
1173
  if (filter) q = $6fe5fb6fcb62dbab$export$1b001418845b471c(q, filter);
1174
+ // Apply resolved preset OR group (additive — only when a preset is active)
1175
+ if (resolvedOrGroup) q = $6fe5fb6fcb62dbab$export$647274967602ffc7(q, resolvedOrGroup);
1081
1176
  // Apply sorting
1082
1177
  if (format?.sort && format.sortField) q.orderBy(format.sortField, format.sort);
1083
1178
  // Apply pagination
@@ -1165,8 +1260,8 @@ const $6fe5fb6fcb62dbab$export$65b914f34962db1e = (table, data, conflictTarget,
1165
1260
 
1166
1261
 
1167
1262
  class $43b99269306b3d62$export$2e2bcd8739ae039 {
1168
- async read(table, fields, filter, paginate, format, joins) {
1169
- const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$60d67f341ad4c4)(table, fields, filter, paginate, format, joins);
1263
+ async read(table, fields, filter, paginate, format, joins, resolvedOrGroup) {
1264
+ const { query: query, replacements: replacements } = (0, $6fe5fb6fcb62dbab$export$60d67f341ad4c4)(table, fields, filter, paginate, format, joins, resolvedOrGroup);
1170
1265
  const result = await (0, $279104bade16c452$export$2e2bcd8739ae039).db.query(query, {
1171
1266
  type: (0, $3IFKa$sequelize.QueryTypes).SELECT,
1172
1267
  raw: true,