@strapi/database 5.48.1 → 5.50.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.
Files changed (116) hide show
  1. package/dist/connection.d.ts.map +1 -1
  2. package/dist/connection.js +5 -1
  3. package/dist/connection.js.map +1 -1
  4. package/dist/dialects/index.d.ts.map +1 -1
  5. package/dist/dialects/postgresql/index.d.ts +0 -1
  6. package/dist/dialects/postgresql/index.d.ts.map +1 -1
  7. package/dist/dialects/sqlite/index.d.ts +0 -1
  8. package/dist/dialects/sqlite/index.d.ts.map +1 -1
  9. package/dist/dialects/sqlite/index.js +8 -3
  10. package/dist/dialects/sqlite/index.js.map +1 -1
  11. package/dist/entity-manager/entity-repository.d.ts.map +1 -1
  12. package/dist/entity-manager/index.d.ts.map +1 -1
  13. package/dist/entity-manager/morph-relations.d.ts +0 -1
  14. package/dist/entity-manager/morph-relations.d.ts.map +1 -1
  15. package/dist/entity-manager/regular-relations.d.ts +1 -7
  16. package/dist/entity-manager/regular-relations.d.ts.map +1 -1
  17. package/dist/entity-manager/relations-orderer.d.ts +3 -3
  18. package/dist/entity-manager/relations-orderer.d.ts.map +1 -1
  19. package/dist/entity-manager/relations-orderer.js +5 -1
  20. package/dist/entity-manager/relations-orderer.js.map +1 -1
  21. package/dist/fields/datetime.js +3 -2
  22. package/dist/fields/datetime.js.map +1 -1
  23. package/dist/fields/index.d.ts.map +1 -1
  24. package/dist/fields/index.js +5 -1
  25. package/dist/fields/index.js.map +1 -1
  26. package/dist/fields/shared/parsers.d.ts.map +1 -1
  27. package/dist/fields/shared/parsers.js +3 -2
  28. package/dist/fields/shared/parsers.js.map +1 -1
  29. package/dist/fields/timestamp.js +3 -2
  30. package/dist/fields/timestamp.js.map +1 -1
  31. package/dist/index.d.ts +2 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +5 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/lifecycles/index.d.ts.map +1 -1
  37. package/dist/lifecycles/subscribers/index.d.ts +1 -1
  38. package/dist/lifecycles/subscribers/index.d.ts.map +1 -1
  39. package/dist/lifecycles/subscribers/timestamps.js +10 -6
  40. package/dist/lifecycles/subscribers/timestamps.js.map +1 -1
  41. package/dist/metadata/index.d.ts.map +1 -1
  42. package/dist/metadata/metadata.d.ts +1 -1
  43. package/dist/metadata/metadata.d.ts.map +1 -1
  44. package/dist/metadata/relations.d.ts +2 -2
  45. package/dist/metadata/relations.d.ts.map +1 -1
  46. package/dist/metadata/relations.js +6 -2
  47. package/dist/metadata/relations.js.map +1 -1
  48. package/dist/migrations/common.d.ts.map +1 -1
  49. package/dist/migrations/index.d.ts.map +1 -1
  50. package/dist/migrations/internal-migrations/5.0.0-01-convert-identifiers-long-than-max-length.js +5 -1
  51. package/dist/migrations/internal-migrations/5.0.0-01-convert-identifiers-long-than-max-length.js.map +1 -1
  52. package/dist/migrations/internal.d.ts.map +1 -1
  53. package/dist/migrations/logger.d.ts.map +1 -1
  54. package/dist/migrations/storage.d.ts.map +1 -1
  55. package/dist/migrations/users.d.ts.map +1 -1
  56. package/dist/migrations/users.js +6 -2
  57. package/dist/migrations/users.js.map +1 -1
  58. package/dist/query/helpers/join.d.ts.map +1 -1
  59. package/dist/query/helpers/order-by.d.ts.map +1 -1
  60. package/dist/query/helpers/order-by.js +11 -7
  61. package/dist/query/helpers/order-by.js.map +1 -1
  62. package/dist/query/helpers/populate/apply.d.ts.map +1 -1
  63. package/dist/query/helpers/populate/apply.js +50 -47
  64. package/dist/query/helpers/populate/apply.js.map +1 -1
  65. package/dist/query/helpers/populate/apply.mjs +7 -8
  66. package/dist/query/helpers/populate/apply.mjs.map +1 -1
  67. package/dist/query/helpers/populate/process.d.ts.map +1 -1
  68. package/dist/query/helpers/populate/process.js +7 -3
  69. package/dist/query/helpers/populate/process.js.map +1 -1
  70. package/dist/query/helpers/search.d.ts.map +1 -1
  71. package/dist/query/helpers/search.js +5 -1
  72. package/dist/query/helpers/search.js.map +1 -1
  73. package/dist/query/helpers/streams/readable.d.ts +0 -1
  74. package/dist/query/helpers/streams/readable.d.ts.map +1 -1
  75. package/dist/query/helpers/transform.d.ts.map +1 -1
  76. package/dist/query/helpers/transform.js +10 -6
  77. package/dist/query/helpers/transform.js.map +1 -1
  78. package/dist/query/helpers/where.d.ts +1 -1
  79. package/dist/query/helpers/where.d.ts.map +1 -1
  80. package/dist/query/helpers/where.js.map +1 -1
  81. package/dist/query/helpers/where.mjs.map +1 -1
  82. package/dist/query/query-builder.d.ts.map +1 -1
  83. package/dist/query/query-builder.js +30 -26
  84. package/dist/query/query-builder.js.map +1 -1
  85. package/dist/repairs/index.d.ts.map +1 -1
  86. package/dist/repairs/operations/process-unidirectional-join-tables.d.ts.map +1 -1
  87. package/dist/repairs/operations/remove-orphan-morph-types.d.ts.map +1 -1
  88. package/dist/schema/builder.d.ts +1 -1
  89. package/dist/schema/builder.d.ts.map +1 -1
  90. package/dist/schema/builder.js +5 -1
  91. package/dist/schema/builder.js.map +1 -1
  92. package/dist/schema/diff.d.ts.map +1 -1
  93. package/dist/schema/diff.js +19 -15
  94. package/dist/schema/diff.js.map +1 -1
  95. package/dist/schema/index.d.ts.map +1 -1
  96. package/dist/schema/index.js +5 -1
  97. package/dist/schema/index.js.map +1 -1
  98. package/dist/schema/schema.d.ts.map +1 -1
  99. package/dist/schema/storage.d.ts.map +1 -1
  100. package/dist/schema/storage.js +5 -1
  101. package/dist/schema/storage.js.map +1 -1
  102. package/dist/transaction-context.d.ts.map +1 -1
  103. package/dist/utils/async-curry.d.ts.map +1 -1
  104. package/dist/utils/identifiers/hash.js +5 -1
  105. package/dist/utils/identifiers/hash.js.map +1 -1
  106. package/dist/utils/identifiers/index.d.ts.map +1 -1
  107. package/dist/utils/identifiers/index.js +5 -1
  108. package/dist/utils/identifiers/index.js.map +1 -1
  109. package/dist/utils/knex.d.ts.map +1 -1
  110. package/dist/utils/knex.js +6 -1
  111. package/dist/utils/knex.js.map +1 -1
  112. package/dist/utils/types.d.ts +1 -1
  113. package/dist/utils/types.d.ts.map +1 -1
  114. package/dist/validations/relations/bidirectional.d.ts.map +1 -1
  115. package/dist/validations/relations/index.d.ts.map +1 -1
  116. package/package.json +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sources":["../../../../src/query/helpers/populate/process.ts"],"sourcesContent":["import _ from 'lodash/fp';\n\nimport * as types from '../../../utils/types';\nimport type { Meta } from '../../../metadata';\nimport type { QueryBuilder } from '../../query-builder';\nimport type { Database } from '../../..';\n\nconst getRootLevelPopulate = (meta: Meta) => {\n const populate: PopulateMap = {};\n\n for (const attributeName of Object.keys(meta.attributes)) {\n const attribute = meta.attributes[attributeName];\n if (attribute.type === 'relation') {\n populate[attributeName] = true;\n }\n }\n\n return populate;\n};\n\ntype Context = {\n qb: QueryBuilder;\n db: Database;\n uid: string;\n};\n\ntype PopulateMap = {\n [key: string]:\n | true\n | {\n populate?: PopulateMap | true | string[];\n };\n};\n\n/**\n * Converts and prepares the query for populate\n *\n * @param {boolean|string[]|object} populate populate param\n * @param {object} ctx query context\n * @param {object} ctx.db database instance\n * @param {object} ctx.qb query builder instance\n * @param {string} ctx.uid model uid\n */\nconst processPopulate = (populate: unknown, ctx: Context) => {\n const { qb, db, uid } = ctx;\n const meta = db.metadata.get(uid);\n\n let populateMap: PopulateMap = {};\n\n if (populate === false || _.isNil(populate)) {\n return null;\n }\n\n if (populate === true) {\n populateMap = getRootLevelPopulate(meta);\n } else if (Array.isArray(populate)) {\n for (const key of populate) {\n const [root, ...rest] = key.split('.');\n\n if (rest.length > 0) {\n const subPopulate = rest.join('.');\n if (populateMap[root]) {\n const populateValue = populateMap[root];\n\n if (populateValue === true) {\n populateMap[root] = {\n populate: [subPopulate],\n };\n } else {\n populateValue.populate = [subPopulate].concat(populateValue.populate ?? []);\n }\n } else {\n populateMap[root] = {\n populate: [subPopulate],\n };\n }\n } else {\n populateMap[root] = populateMap[root] ? populateMap[root] : true;\n }\n }\n } else {\n populateMap = populate as PopulateMap;\n }\n\n if (!_.isPlainObject(populateMap)) {\n throw new Error('Populate must be an object');\n }\n\n const finalPopulate: PopulateMap = {};\n for (const key of Object.keys(populateMap)) {\n const attribute = meta.attributes[key];\n\n if (!attribute) {\n continue;\n }\n\n if (!types.isRelation(attribute.type)) {\n continue;\n }\n\n // Make sure to query the join column value if needed,\n // so that we can apply the populate later on\n if ('joinColumn' in attribute && attribute.joinColumn) {\n qb.addSelect(attribute.joinColumn.name);\n }\n\n // Make sure id is present for future populate queries\n if (_.has('id', meta.attributes)) {\n qb.addSelect('id');\n }\n\n finalPopulate[key] = populateMap[key];\n }\n\n return finalPopulate;\n};\n\nexport default processPopulate;\n"],"names":["getRootLevelPopulate","meta","populate","attributeName","Object","keys","attributes","attribute","type","processPopulate","ctx","qb","db","uid","metadata","get","populateMap","_","isNil","Array","isArray","key","root","rest","split","length","subPopulate","join","populateValue","concat","isPlainObject","Error","finalPopulate","types","joinColumn","addSelect","name","has"],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sources":["../../../../src/query/helpers/populate/process.ts"],"sourcesContent":["import _ from 'lodash/fp';\n\nimport * as types from '../../../utils/types';\nimport type { Meta } from '../../../metadata';\nimport type { QueryBuilder } from '../../query-builder';\nimport type { Database } from '../../..';\n\nconst getRootLevelPopulate = (meta: Meta) => {\n const populate: PopulateMap = {};\n\n for (const attributeName of Object.keys(meta.attributes)) {\n const attribute = meta.attributes[attributeName];\n if (attribute.type === 'relation') {\n populate[attributeName] = true;\n }\n }\n\n return populate;\n};\n\ntype Context = {\n qb: QueryBuilder;\n db: Database;\n uid: string;\n};\n\ntype PopulateMap = {\n [key: string]:\n | true\n | {\n populate?: PopulateMap | true | string[];\n };\n};\n\n/**\n * Converts and prepares the query for populate\n *\n * @param {boolean|string[]|object} populate populate param\n * @param {object} ctx query context\n * @param {object} ctx.db database instance\n * @param {object} ctx.qb query builder instance\n * @param {string} ctx.uid model uid\n */\nconst processPopulate = (populate: unknown, ctx: Context) => {\n const { qb, db, uid } = ctx;\n const meta = db.metadata.get(uid);\n\n let populateMap: PopulateMap = {};\n\n if (populate === false || _.isNil(populate)) {\n return null;\n }\n\n if (populate === true) {\n populateMap = getRootLevelPopulate(meta);\n } else if (Array.isArray(populate)) {\n for (const key of populate) {\n const [root, ...rest] = key.split('.');\n\n if (rest.length > 0) {\n const subPopulate = rest.join('.');\n if (populateMap[root]) {\n const populateValue = populateMap[root];\n\n if (populateValue === true) {\n populateMap[root] = {\n populate: [subPopulate],\n };\n } else {\n populateValue.populate = [subPopulate].concat(populateValue.populate ?? []);\n }\n } else {\n populateMap[root] = {\n populate: [subPopulate],\n };\n }\n } else {\n populateMap[root] = populateMap[root] ? populateMap[root] : true;\n }\n }\n } else {\n populateMap = populate as PopulateMap;\n }\n\n if (!_.isPlainObject(populateMap)) {\n throw new Error('Populate must be an object');\n }\n\n const finalPopulate: PopulateMap = {};\n for (const key of Object.keys(populateMap)) {\n const attribute = meta.attributes[key];\n\n if (!attribute) {\n continue;\n }\n\n if (!types.isRelation(attribute.type)) {\n continue;\n }\n\n // Make sure to query the join column value if needed,\n // so that we can apply the populate later on\n if ('joinColumn' in attribute && attribute.joinColumn) {\n qb.addSelect(attribute.joinColumn.name);\n }\n\n // Make sure id is present for future populate queries\n if (_.has('id', meta.attributes)) {\n qb.addSelect('id');\n }\n\n finalPopulate[key] = populateMap[key];\n }\n\n return finalPopulate;\n};\n\nexport default processPopulate;\n"],"names":["getRootLevelPopulate","meta","populate","attributeName","Object","keys","attributes","attribute","type","processPopulate","ctx","qb","db","uid","metadata","get","populateMap","_","isNil","Array","isArray","key","root","rest","split","length","subPopulate","join","populateValue","concat","isPlainObject","Error","finalPopulate","types","joinColumn","addSelect","name","has"],"mappings":";;;;;;;;;AAOA,MAAMA,uBAAuB,CAACC,IAAAA,GAAAA;AAC5B,IAAA,MAAMC,WAAwB,EAAC;AAE/B,IAAA,KAAK,MAAMC,aAAAA,IAAiBC,MAAAA,CAAOC,IAAI,CAACJ,IAAAA,CAAKK,UAAU,CAAA,CAAG;AACxD,QAAA,MAAMC,SAAAA,GAAYN,IAAAA,CAAKK,UAAU,CAACH,aAAAA,CAAc;QAChD,IAAII,SAAAA,CAAUC,IAAI,KAAK,UAAA,EAAY;YACjCN,QAAQ,CAACC,cAAc,GAAG,IAAA;AAC5B,QAAA;AACF,IAAA;IAEA,OAAOD,QAAAA;AACT,CAAA;AAgBA;;;;;;;;IASA,MAAMO,eAAAA,GAAkB,CAACP,QAAAA,EAAmBQ,GAAAA,GAAAA;AAC1C,IAAA,MAAM,EAAEC,EAAE,EAAEC,EAAE,EAAEC,GAAG,EAAE,GAAGH,GAAAA;AACxB,IAAA,MAAMT,IAAAA,GAAOW,EAAAA,CAAGE,QAAQ,CAACC,GAAG,CAACF,GAAAA,CAAAA;AAE7B,IAAA,IAAIG,cAA2B,EAAC;AAEhC,IAAA,IAAId,QAAAA,KAAa,KAAA,IAASe,kBAAAA,CAAEC,KAAK,CAAChB,QAAAA,CAAAA,EAAW;QAC3C,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,IAAIA,aAAa,IAAA,EAAM;AACrBc,QAAAA,WAAAA,GAAchB,oBAAAA,CAAqBC,IAAAA,CAAAA;AACrC,IAAA,CAAA,MAAO,IAAIkB,KAAAA,CAAMC,OAAO,CAAClB,QAAAA,CAAAA,EAAW;QAClC,KAAK,MAAMmB,OAAOnB,QAAAA,CAAU;AAC1B,YAAA,MAAM,CAACoB,IAAAA,EAAM,GAAGC,KAAK,GAAGF,GAAAA,CAAIG,KAAK,CAAC,GAAA,CAAA;YAElC,IAAID,IAAAA,CAAKE,MAAM,GAAG,CAAA,EAAG;gBACnB,MAAMC,WAAAA,GAAcH,IAAAA,CAAKI,IAAI,CAAC,GAAA,CAAA;gBAC9B,IAAIX,WAAW,CAACM,IAAAA,CAAK,EAAE;oBACrB,MAAMM,aAAAA,GAAgBZ,WAAW,CAACM,IAAAA,CAAK;AAEvC,oBAAA,IAAIM,kBAAkB,IAAA,EAAM;wBAC1BZ,WAAW,CAACM,KAAK,GAAG;4BAClBpB,QAAAA,EAAU;AAACwB,gCAAAA;AAAY;AACzB,yBAAA;oBACF,CAAA,MAAO;AACLE,wBAAAA,aAAAA,CAAc1B,QAAQ,GAAG;AAACwB,4BAAAA;AAAY,yBAAA,CAACG,MAAM,CAACD,aAAAA,CAAc1B,QAAQ,IAAI,EAAE,CAAA;AAC5E,oBAAA;gBACF,CAAA,MAAO;oBACLc,WAAW,CAACM,KAAK,GAAG;wBAClBpB,QAAAA,EAAU;AAACwB,4BAAAA;AAAY;AACzB,qBAAA;AACF,gBAAA;YACF,CAAA,MAAO;gBACLV,WAAW,CAACM,IAAAA,CAAK,GAAGN,WAAW,CAACM,KAAK,GAAGN,WAAW,CAACM,IAAAA,CAAK,GAAG,IAAA;AAC9D,YAAA;AACF,QAAA;IACF,CAAA,MAAO;QACLN,WAAAA,GAAcd,QAAAA;AAChB,IAAA;AAEA,IAAA,IAAI,CAACe,kBAAAA,CAAEa,aAAa,CAACd,WAAAA,CAAAA,EAAc;AACjC,QAAA,MAAM,IAAIe,KAAAA,CAAM,4BAAA,CAAA;AAClB,IAAA;AAEA,IAAA,MAAMC,gBAA6B,EAAC;AACpC,IAAA,KAAK,MAAMX,GAAAA,IAAOjB,MAAAA,CAAOC,IAAI,CAACW,WAAAA,CAAAA,CAAc;AAC1C,QAAA,MAAMT,SAAAA,GAAYN,IAAAA,CAAKK,UAAU,CAACe,GAAAA,CAAI;AAEtC,QAAA,IAAI,CAACd,SAAAA,EAAW;AACd,YAAA;AACF,QAAA;AAEA,QAAA,IAAI,CAAC0B,gBAAgB,CAAC1B,SAAAA,CAAUC,IAAI,CAAA,EAAG;AACrC,YAAA;AACF,QAAA;;;AAIA,QAAA,IAAI,YAAA,IAAgBD,SAAAA,IAAaA,SAAAA,CAAU2B,UAAU,EAAE;AACrDvB,YAAAA,EAAAA,CAAGwB,SAAS,CAAC5B,SAAAA,CAAU2B,UAAU,CAACE,IAAI,CAAA;AACxC,QAAA;;AAGA,QAAA,IAAInB,mBAAEoB,GAAG,CAAC,IAAA,EAAMpC,IAAAA,CAAKK,UAAU,CAAA,EAAG;AAChCK,YAAAA,EAAAA,CAAGwB,SAAS,CAAC,IAAA,CAAA;AACf,QAAA;AAEAH,QAAAA,aAAa,CAACX,GAAAA,CAAI,GAAGL,WAAW,CAACK,GAAAA,CAAI;AACvC,IAAA;IAEA,OAAOW,aAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/query/helpers/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,eAAO,MAAM,WAAW,SAAU,KAAK,YAAY,SAAS,MAAM,OAAO,GAAG,SAoE3E,CAAC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/query/helpers/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,CAAC,YAAY,EAAE,OAAO,MAAM,EAAE,KAAK,GAAG,SAoE3E,CAAC"}
@@ -4,6 +4,10 @@ var _ = require('lodash/fp');
4
4
  var types = require('../../utils/types.js');
5
5
  var transform = require('./transform.js');
6
6
 
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var ___default = /*#__PURE__*/_interopDefault(_);
10
+
7
11
  const applySearch = (knex, query, ctx)=>{
8
12
  const { qb, uid, db } = ctx;
9
13
  const meta = db.metadata.get(uid);
@@ -16,7 +20,7 @@ const applySearch = (knex, query, ctx)=>{
16
20
  return types.isScalarAttribute(attribute) && types.isString(attribute.type) && attribute.searchable !== false;
17
21
  });
18
22
  searchColumns.push(...stringColumns);
19
- if (!_.isNaN(_.toNumber(query))) {
23
+ if (!___default.default.isNaN(___default.default.toNumber(query))) {
20
24
  const numberColumns = Object.keys(attributes).filter((attributeName)=>{
21
25
  const attribute = attributes[attributeName];
22
26
  return types.isScalarAttribute(attribute) && types.isNumber(attribute.type) && attribute.searchable !== false;
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sources":["../../../src/query/helpers/search.ts"],"sourcesContent":["import _ from 'lodash/fp';\nimport type { Knex } from 'knex';\n\nimport * as types from '../../utils/types';\nimport { toColumnName } from './transform';\nimport type { Ctx } from '../types';\n\nexport const applySearch = (knex: Knex.QueryBuilder, query: string, ctx: Ctx) => {\n const { qb, uid, db } = ctx;\n const meta = db.metadata.get(uid);\n\n const { attributes } = meta;\n\n const searchColumns = ['id'];\n\n const stringColumns = Object.keys(attributes).filter((attributeName) => {\n const attribute = attributes[attributeName];\n return (\n types.isScalarAttribute(attribute) &&\n types.isString(attribute.type) &&\n attribute.searchable !== false\n );\n });\n\n searchColumns.push(...stringColumns);\n\n if (!_.isNaN(_.toNumber(query))) {\n const numberColumns = Object.keys(attributes).filter((attributeName) => {\n const attribute = attributes[attributeName];\n return (\n types.isScalarAttribute(attribute) &&\n types.isNumber(attribute.type) &&\n attribute.searchable !== false\n );\n });\n\n searchColumns.push(...numberColumns);\n }\n\n switch (db.dialect.client) {\n case 'postgres': {\n searchColumns.forEach((attr) => {\n const columnName = toColumnName(meta, attr);\n return knex.orWhereRaw(`??::text ILIKE ?`, [\n qb.aliasColumn(columnName),\n `%${escapeQuery(query, '*%\\\\')}%`,\n ]);\n });\n\n break;\n }\n case 'sqlite': {\n searchColumns.forEach((attr) => {\n const columnName = toColumnName(meta, attr);\n return knex.orWhereRaw(`?? LIKE ? ESCAPE '\\\\'`, [\n qb.aliasColumn(columnName),\n `%${escapeQuery(query, '*%\\\\')}%`,\n ]);\n });\n break;\n }\n case 'mysql': {\n searchColumns.forEach((attr) => {\n const columnName = toColumnName(meta, attr);\n return knex.orWhereRaw(`?? LIKE ?`, [\n qb.aliasColumn(columnName),\n `%${escapeQuery(query, '*%\\\\')}%`,\n ]);\n });\n break;\n }\n default: {\n // do nothing\n }\n }\n};\n\nconst escapeQuery = (query: string, charsToEscape: string, escapeChar = '\\\\') => {\n return query\n .split('')\n .reduce(\n (escapedQuery, char) =>\n charsToEscape.includes(char)\n ? `${escapedQuery}${escapeChar}${char}`\n : `${escapedQuery}${char}`,\n ''\n );\n};\n"],"names":["applySearch","knex","query","ctx","qb","uid","db","meta","metadata","get","attributes","searchColumns","stringColumns","Object","keys","filter","attributeName","attribute","types","type","searchable","push","_","isNaN","toNumber","numberColumns","dialect","client","forEach","attr","columnName","toColumnName","orWhereRaw","aliasColumn","escapeQuery","charsToEscape","escapeChar","split","reduce","escapedQuery","char","includes"],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sources":["../../../src/query/helpers/search.ts"],"sourcesContent":["import _ from 'lodash/fp';\nimport type { Knex } from 'knex';\n\nimport * as types from '../../utils/types';\nimport { toColumnName } from './transform';\nimport type { Ctx } from '../types';\n\nexport const applySearch = (knex: Knex.QueryBuilder, query: string, ctx: Ctx) => {\n const { qb, uid, db } = ctx;\n const meta = db.metadata.get(uid);\n\n const { attributes } = meta;\n\n const searchColumns = ['id'];\n\n const stringColumns = Object.keys(attributes).filter((attributeName) => {\n const attribute = attributes[attributeName];\n return (\n types.isScalarAttribute(attribute) &&\n types.isString(attribute.type) &&\n attribute.searchable !== false\n );\n });\n\n searchColumns.push(...stringColumns);\n\n if (!_.isNaN(_.toNumber(query))) {\n const numberColumns = Object.keys(attributes).filter((attributeName) => {\n const attribute = attributes[attributeName];\n return (\n types.isScalarAttribute(attribute) &&\n types.isNumber(attribute.type) &&\n attribute.searchable !== false\n );\n });\n\n searchColumns.push(...numberColumns);\n }\n\n switch (db.dialect.client) {\n case 'postgres': {\n searchColumns.forEach((attr) => {\n const columnName = toColumnName(meta, attr);\n return knex.orWhereRaw(`??::text ILIKE ?`, [\n qb.aliasColumn(columnName),\n `%${escapeQuery(query, '*%\\\\')}%`,\n ]);\n });\n\n break;\n }\n case 'sqlite': {\n searchColumns.forEach((attr) => {\n const columnName = toColumnName(meta, attr);\n return knex.orWhereRaw(`?? LIKE ? ESCAPE '\\\\'`, [\n qb.aliasColumn(columnName),\n `%${escapeQuery(query, '*%\\\\')}%`,\n ]);\n });\n break;\n }\n case 'mysql': {\n searchColumns.forEach((attr) => {\n const columnName = toColumnName(meta, attr);\n return knex.orWhereRaw(`?? LIKE ?`, [\n qb.aliasColumn(columnName),\n `%${escapeQuery(query, '*%\\\\')}%`,\n ]);\n });\n break;\n }\n default: {\n // do nothing\n }\n }\n};\n\nconst escapeQuery = (query: string, charsToEscape: string, escapeChar = '\\\\') => {\n return query\n .split('')\n .reduce(\n (escapedQuery, char) =>\n charsToEscape.includes(char)\n ? `${escapedQuery}${escapeChar}${char}`\n : `${escapedQuery}${char}`,\n ''\n );\n};\n"],"names":["applySearch","knex","query","ctx","qb","uid","db","meta","metadata","get","attributes","searchColumns","stringColumns","Object","keys","filter","attributeName","attribute","types","type","searchable","push","_","isNaN","toNumber","numberColumns","dialect","client","forEach","attr","columnName","toColumnName","orWhereRaw","aliasColumn","escapeQuery","charsToEscape","escapeChar","split","reduce","escapedQuery","char","includes"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Readable } from 'stream';
3
2
  import type { Knex } from 'knex';
4
3
  import type { QueryBuilder } from '../../query-builder';
@@ -1 +1 @@
1
- {"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../src/query/helpers/streams/readable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,QAAA,MAAM,mBAAmB,eAAgC,CAAC;AAE1D,UAAU,0BAA0B;IAClC,EAAE,EAAE,YAAY,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,QAAQ,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,cAAM,mBAAoB,SAAQ,QAAQ;IACxC,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC;IAE1B,GAAG,EAAE,YAAY,CAAC;IAElB,GAAG,EAAE,QAAQ,CAAC;IAEd,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,IAAI,CAAC;IAEZ,UAAU,EAAE,MAAM,CAAC;IAEnB,WAAW,EAAE,OAAO,CAAC;IAErB,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;gBAEnB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAiB,EAAE,SAAe,EAAE,EAAE,0BAA0B;IAoC3F,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI;IAU9C;;;;;;OAMG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM;CAgGzB;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../src/query/helpers/streams/readable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,QAAA,MAAM,mBAAmB,eAAgC,CAAC;AAE1D,UAAU,0BAA0B;IAClC,EAAE,EAAE,YAAY,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,QAAQ,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,cAAM,mBAAoB,SAAQ,QAAQ;IACxC,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC;IAE1B,GAAG,EAAE,YAAY,CAAC;IAElB,GAAG,EAAE,QAAQ,CAAC;IAEd,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,IAAI,CAAC;IAEZ,UAAU,EAAE,MAAM,CAAC;IAEnB,WAAW,EAAE,OAAO,CAAC;IAErB,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;gBAEnB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAiB,EAAE,SAAe,EAAE,EAAE,0BAA0B;IAoC3F,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI;IAU9C;;;;;;OAMG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM;CAgGzB;AAED,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/query/helpers/transform.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAC1C,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAmCjD,QAAA,MAAM,OAAO,SAAU,IAAI,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,SAAS,gBAUxD,CAAC;AA4BF,iBAAS,KAAK,CAAC,KAAK,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,EAC7C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,KAAK,GACV,KAAK,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AAajE,QAAA,MAAM,YAAY,SAAU,IAAI,QAAQ,IAAI,GAAG,MAAM,WAYpD,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/query/helpers/transform.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAC1C,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAmCjD,QAAA,MAAM,OAAO,GAAI,MAAM,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,SAAS,gBAUxD,CAAC;AA4BF,iBAAS,KAAK,CAAC,KAAK,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,EAC7C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,KAAK,GACV,KAAK,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AAajE,QAAA,MAAM,YAAY,GAAI,MAAM,IAAI,EAAE,MAAM,IAAI,GAAG,MAAM,WAYpD,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -4,14 +4,18 @@ var _ = require('lodash/fp');
4
4
  var types = require('../../utils/types.js');
5
5
  var index = require('../../fields/index.js');
6
6
 
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var ___default = /*#__PURE__*/_interopDefault(_);
10
+
7
11
  const fromSingleRow = (meta, row)=>{
8
12
  const { attributes } = meta;
9
- if (_.isNil(row)) {
13
+ if (___default.default.isNil(row)) {
10
14
  return null;
11
15
  }
12
16
  const obj = {};
13
17
  for(const column in row){
14
- if (!_.has(column, meta.columnToAttribute)) {
18
+ if (!___default.default.has(column, meta.columnToAttribute)) {
15
19
  continue;
16
20
  }
17
21
  const attributeName = meta.columnToAttribute[column];
@@ -28,7 +32,7 @@ const fromSingleRow = (meta, row)=>{
28
32
  return obj;
29
33
  };
30
34
  const fromRow = (meta, row)=>{
31
- if (_.isNil(row)) {
35
+ if (___default.default.isNil(row)) {
32
36
  return null;
33
37
  }
34
38
  if (Array.isArray(row)) {
@@ -37,7 +41,7 @@ const fromRow = (meta, row)=>{
37
41
  return fromSingleRow(meta, row);
38
42
  };
39
43
  const toSingleRow = (meta, data = {})=>{
40
- if (_.isNil(data)) {
44
+ if (___default.default.isNil(data)) {
41
45
  return data;
42
46
  }
43
47
  const { attributes } = meta;
@@ -52,10 +56,10 @@ const toSingleRow = (meta, data = {})=>{
52
56
  return data;
53
57
  };
54
58
  function toRow(meta, data) {
55
- if (_.isNil(data)) {
59
+ if (___default.default.isNil(data)) {
56
60
  return data;
57
61
  }
58
- if (_.isArray(data)) {
62
+ if (___default.default.isArray(data)) {
59
63
  return data.map((datum)=>toSingleRow(meta, datum));
60
64
  }
61
65
  return toSingleRow(meta, data);
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sources":["../../../src/query/helpers/transform.ts"],"sourcesContent":["import _ from 'lodash/fp';\n\nimport * as types from '../../utils/types';\nimport { createField } from '../../fields';\n\nimport type { Meta } from '../../metadata';\n\ntype Row = Record<string, unknown> | null;\nexport type Rec = Record<string, unknown> | null;\n\nconst fromSingleRow = (meta: Meta, row: Row): Rec => {\n const { attributes } = meta;\n\n if (_.isNil(row)) {\n return null;\n }\n\n const obj: Rec = {};\n\n for (const column in row) {\n if (!_.has(column, meta.columnToAttribute)) {\n continue;\n }\n\n const attributeName = meta.columnToAttribute[column];\n const attribute = attributes[attributeName];\n\n if (types.isScalar(attribute.type)) {\n const field = createField(attribute);\n\n const val = row[column] === null ? null : field.fromDB(row[column]);\n\n obj[attributeName] = val;\n }\n\n if (types.isRelation(attribute.type)) {\n obj[attributeName] = row[column];\n }\n }\n\n return obj;\n};\n\nconst fromRow = (meta: Meta, row: Row | Row[] | undefined) => {\n if (_.isNil(row)) {\n return null;\n }\n\n if (Array.isArray(row)) {\n return row.map((singleRow) => fromSingleRow(meta, singleRow));\n }\n\n return fromSingleRow(meta, row);\n};\n\nconst toSingleRow = (meta: Meta, data: Rec = {}): Row => {\n if (_.isNil(data)) {\n return data;\n }\n\n const { attributes } = meta;\n\n for (const key of Object.keys(data)) {\n const attribute = attributes[key];\n\n if (\n !attribute ||\n !('columnName' in attribute) ||\n !attribute.columnName ||\n attribute.columnName === key\n ) {\n continue;\n }\n\n data[attribute.columnName] = data[key];\n delete data[key];\n }\n\n return data;\n};\n\nfunction toRow<TData extends Rec | Rec[] | null>(\n meta: Meta,\n data: TData\n): TData extends null ? null : TData extends Rec[] ? Row[] : Rec;\nfunction toRow(meta: Meta, data: Rec | Rec[] | null): Row | Row[] | null {\n if (_.isNil(data)) {\n return data;\n }\n\n if (_.isArray(data)) {\n return data.map((datum) => toSingleRow(meta, datum));\n }\n\n return toSingleRow(meta, data);\n}\n\nconst toColumnName = (meta: Meta, name: null | string) => {\n if (!name) {\n throw new Error('Name cannot be null');\n }\n\n const attribute = meta.attributes[name];\n\n if (!attribute) {\n return name;\n }\n\n return ('columnName' in attribute && attribute.columnName) || name;\n};\n\nexport { toRow, fromRow, toColumnName };\n"],"names":["fromSingleRow","meta","row","attributes","_","isNil","obj","column","has","columnToAttribute","attributeName","attribute","types","type","field","createField","val","fromDB","fromRow","Array","isArray","map","singleRow","toSingleRow","data","key","Object","keys","columnName","toRow","datum","toColumnName","name","Error"],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sources":["../../../src/query/helpers/transform.ts"],"sourcesContent":["import _ from 'lodash/fp';\n\nimport * as types from '../../utils/types';\nimport { createField } from '../../fields';\n\nimport type { Meta } from '../../metadata';\n\ntype Row = Record<string, unknown> | null;\nexport type Rec = Record<string, unknown> | null;\n\nconst fromSingleRow = (meta: Meta, row: Row): Rec => {\n const { attributes } = meta;\n\n if (_.isNil(row)) {\n return null;\n }\n\n const obj: Rec = {};\n\n for (const column in row) {\n if (!_.has(column, meta.columnToAttribute)) {\n continue;\n }\n\n const attributeName = meta.columnToAttribute[column];\n const attribute = attributes[attributeName];\n\n if (types.isScalar(attribute.type)) {\n const field = createField(attribute);\n\n const val = row[column] === null ? null : field.fromDB(row[column]);\n\n obj[attributeName] = val;\n }\n\n if (types.isRelation(attribute.type)) {\n obj[attributeName] = row[column];\n }\n }\n\n return obj;\n};\n\nconst fromRow = (meta: Meta, row: Row | Row[] | undefined) => {\n if (_.isNil(row)) {\n return null;\n }\n\n if (Array.isArray(row)) {\n return row.map((singleRow) => fromSingleRow(meta, singleRow));\n }\n\n return fromSingleRow(meta, row);\n};\n\nconst toSingleRow = (meta: Meta, data: Rec = {}): Row => {\n if (_.isNil(data)) {\n return data;\n }\n\n const { attributes } = meta;\n\n for (const key of Object.keys(data)) {\n const attribute = attributes[key];\n\n if (\n !attribute ||\n !('columnName' in attribute) ||\n !attribute.columnName ||\n attribute.columnName === key\n ) {\n continue;\n }\n\n data[attribute.columnName] = data[key];\n delete data[key];\n }\n\n return data;\n};\n\nfunction toRow<TData extends Rec | Rec[] | null>(\n meta: Meta,\n data: TData\n): TData extends null ? null : TData extends Rec[] ? Row[] : Rec;\nfunction toRow(meta: Meta, data: Rec | Rec[] | null): Row | Row[] | null {\n if (_.isNil(data)) {\n return data;\n }\n\n if (_.isArray(data)) {\n return data.map((datum) => toSingleRow(meta, datum));\n }\n\n return toSingleRow(meta, data);\n}\n\nconst toColumnName = (meta: Meta, name: null | string) => {\n if (!name) {\n throw new Error('Name cannot be null');\n }\n\n const attribute = meta.attributes[name];\n\n if (!attribute) {\n return name;\n }\n\n return ('columnName' in attribute && attribute.columnName) || name;\n};\n\nexport { toRow, fromRow, toColumnName };\n"],"names":["fromSingleRow","meta","row","attributes","_","isNil","obj","column","has","columnToAttribute","attributeName","attribute","types","type","field","createField","val","fromDB","fromRow","Array","isArray","map","singleRow","toSingleRow","data","key","Object","keys","columnName","toRow","datum","toColumnName","name","Error"],"mappings":"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"}
@@ -15,6 +15,6 @@ type Where = {
15
15
  $not?: Where;
16
16
  [key: string]: any;
17
17
  } | Array<Where>;
18
- declare const applyWhere: (qb: Knex.QueryBuilder, where: Where) => Knex.QueryBuilder<any, any> | undefined;
18
+ declare const applyWhere: (qb: Knex.QueryBuilder, where: Where) => Knex.QueryBuilder | undefined;
19
19
  export { applyWhere, processWhere };
20
20
  //# sourceMappingURL=where.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../../src/query/helpers/where.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AASjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC,KAAK,QAAQ,GAAG,GAAG,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAgGhE;;GAEG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9F,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AAkSlG,KAAK,KAAK,GACN;IACE,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,GACD,KAAK,CAAC,KAAK,CAAC,CAAC;AAEjB,QAAA,MAAM,UAAU,OAAQ,KAAK,YAAY,SAAS,KAAK,4CAoCtD,CAAC;AAWF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../../src/query/helpers/where.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AASjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC,KAAK,QAAQ,GAAG,GAAG,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAgGhE;;GAEG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9F,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AAuSlG,KAAK,KAAK,GACN;IACE,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,GACD,KAAK,CAAC,KAAK,CAAC,CAAC;AAEjB,QAAA,MAAM,UAAU,GAAI,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,KAAG,IAAI,CAAC,YAAY,GAAG,SAoC7E,CAAC;AAWF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"where.js","sources":["../../../src/query/helpers/where.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { isArray, castArray, isPlainObject } from 'lodash/fp';\nimport type { Knex } from 'knex';\n\nimport { isOperator, isOperatorOfType } from '@strapi/utils';\nimport * as types from '../../utils/types';\nimport { createField } from '../../fields';\nimport { createJoin } from './join';\nimport { toColumnName } from './transform';\nimport { isKnexQuery } from '../../utils/knex';\n\nimport type { Ctx } from '../types';\nimport type { Attribute } from '../../types';\n\ntype WhereCtx = Ctx & { alias?: string; isGroupRoot?: boolean };\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => isPlainObject(value);\n\nconst castValue = (value: unknown, attribute: Attribute | null) => {\n if (!attribute) {\n return value;\n }\n\n if (types.isScalar(attribute.type) && !isKnexQuery(value)) {\n const field = createField(attribute);\n\n return value === null ? null : field.toDB(value);\n }\n\n return value;\n};\n\nconst processSingleAttributeWhere = (\n attribute: Attribute | null,\n where: unknown,\n operator = '$eq'\n) => {\n if (!isRecord(where)) {\n if (isOperatorOfType('cast', operator)) {\n return castValue(where, attribute);\n }\n\n return where;\n }\n\n const filters: Record<string, unknown> = {};\n\n for (const key of Object.keys(where)) {\n const value = where[key];\n\n if (!isOperatorOfType('where', key)) {\n throw new Error(`Undefined attribute level operator ${key}`);\n }\n\n filters[key] = processAttributeWhere(attribute, value, key);\n }\n\n return filters;\n};\n\nconst processAttributeWhere = (attribute: Attribute | null, where: unknown, operator = '$eq') => {\n if (isArray(where)) {\n return where.map((sub) => processSingleAttributeWhere(attribute, sub, operator));\n }\n\n return processSingleAttributeWhere(attribute, where, operator);\n};\n\nconst processNested = (where: unknown, ctx: WhereCtx) => {\n if (!isRecord(where)) {\n return where;\n }\n\n return processWhere(where, ctx);\n};\n\nconst processRelationWhere = (where: unknown, ctx: WhereCtx) => {\n const { qb, alias } = ctx;\n\n const idAlias = qb.aliasColumn('id', alias);\n if (!isRecord(where)) {\n return { [idAlias]: where };\n }\n\n const keys = Object.keys(where);\n const operatorKeys = keys.filter((key) => isOperator(key));\n\n if (operatorKeys.length > 0 && operatorKeys.length !== keys.length) {\n throw new Error(`Operator and non-operator keys cannot be mixed in a relation where clause`);\n }\n\n if (operatorKeys.length > 1) {\n throw new Error(\n `Only one operator key is allowed in a relation where clause, but found: ${operatorKeys}`\n );\n }\n\n if (operatorKeys.length === 1) {\n const operator = operatorKeys[0];\n\n if (isOperatorOfType('group', operator)) {\n return processWhere(where, ctx);\n }\n\n return { [idAlias]: { [operator]: processNested(where[operator], ctx) } };\n }\n\n return processWhere(where, ctx);\n};\n\n/**\n * Process where parameter\n */\nfunction processWhere(where: Record<string, unknown>, ctx: WhereCtx): Record<string, unknown>;\nfunction processWhere(where: Record<string, unknown>[], ctx: WhereCtx): Record<string, unknown>[];\nfunction processWhere(\n where: Record<string, unknown> | Record<string, unknown>[],\n ctx: WhereCtx\n): Record<string, unknown> | Record<string, unknown>[] {\n if (!isArray(where) && !isRecord(where)) {\n throw new Error('Where must be an array or an object');\n }\n\n if (isArray(where)) {\n return where.map((sub) => processWhere(sub, ctx));\n }\n\n const { db, uid, qb, alias } = ctx;\n const meta = db.metadata.get(uid);\n\n const filters: Record<string, unknown> = {};\n\n // for each key in where\n for (const key of Object.keys(where)) {\n const value = where[key];\n\n // if operator $and $or -> process recursively\n if (isOperatorOfType('group', key)) {\n if (!Array.isArray(value)) {\n throw new Error(`Operator ${key} must be an array`);\n }\n\n filters[key] = value.map((sub) => processNested(sub, ctx));\n continue;\n }\n\n if (key === '$not') {\n filters[key] = processNested(value, ctx);\n continue;\n }\n\n if (isOperatorOfType('where', key)) {\n throw new Error(\n `Only $and, $or and $not can only be used as root level operators. Found ${key}.`\n );\n }\n\n const attribute = meta.attributes[key];\n\n if (!attribute) {\n filters[qb.aliasColumn(key, alias)] = processAttributeWhere(null, value);\n continue;\n }\n\n if (types.isRelation(attribute.type) && 'target' in attribute) {\n // attribute\n const subAlias = createJoin(ctx, {\n alias: alias || qb.alias,\n attributeName: key,\n attribute,\n });\n\n const nestedWhere = processRelationWhere(value, {\n db,\n qb,\n alias: subAlias,\n uid: attribute.target,\n });\n\n // TODO: use a better merge logic (push to $and when collisions)\n Object.assign(filters, nestedWhere);\n\n continue;\n }\n\n if (types.isScalar(attribute.type)) {\n const columnName = toColumnName(meta, key);\n const aliasedColumnName = qb.aliasColumn(columnName, alias);\n\n filters[aliasedColumnName] = processAttributeWhere(attribute, value);\n\n continue;\n }\n\n throw new Error(`You cannot filter on ${attribute.type} types`);\n }\n\n return filters;\n}\n\ntype Operator =\n | '$eq'\n | '$ne'\n | '$nei'\n | '$in'\n | '$notIn'\n | '$lt'\n | '$lte'\n | '$gt'\n | '$gte'\n | '$between'\n | '$contains'\n | '$notContains'\n | '$containsi'\n | '$notContainsi'\n | '$startsWith'\n | '$endsWith'\n | '$null'\n | '$notNull'\n | '$not'\n | '$eqi'\n | '$startsWithi'\n | '$endsWithi'\n | '$jsonSupersetOf';\n\n// TODO: add type casting per operator at some point\nconst applyOperator = (qb: Knex.QueryBuilder, column: any, operator: Operator, value: any) => {\n if (Array.isArray(value) && !isOperatorOfType('array', operator)) {\n return qb.where((subQB) => {\n value.forEach((subValue) =>\n subQB.orWhere((innerQB) => {\n applyOperator(innerQB, column, operator, subValue);\n })\n );\n });\n }\n\n switch (operator) {\n case '$not': {\n qb.whereNot((qb) => applyWhereToColumn(qb, column, value));\n break;\n }\n\n case '$in': {\n // @ts-ignore\n // TODO: fix in v5\n qb.whereIn(column, isKnexQuery(value) ? value : castArray(value));\n break;\n }\n\n case '$notIn': {\n // @ts-ignore\n // TODO: fix in v5\n qb.whereNotIn(column, isKnexQuery(value) ? value : castArray(value));\n break;\n }\n\n case '$eq': {\n if (value === null) {\n qb.whereNull(column);\n break;\n }\n\n qb.where(column, value);\n break;\n }\n\n case '$eqi': {\n if (value === null) {\n qb.whereNull(column);\n break;\n }\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `${value}`]);\n break;\n }\n case '$ne': {\n if (value === null) {\n qb.whereNotNull(column);\n break;\n }\n\n qb.where(column, '<>', value);\n break;\n }\n case '$nei': {\n if (value === null) {\n qb.whereNotNull(column);\n break;\n }\n qb.whereRaw(`${fieldLowerFn(qb)} NOT LIKE LOWER(?)`, [column, `${value}`]);\n break;\n }\n case '$gt': {\n qb.where(column, '>', value);\n break;\n }\n case '$gte': {\n qb.where(column, '>=', value);\n break;\n }\n case '$lt': {\n qb.where(column, '<', value);\n break;\n }\n case '$lte': {\n qb.where(column, '<=', value);\n break;\n }\n case '$null': {\n if (value) {\n qb.whereNull(column);\n } else {\n qb.whereNotNull(column);\n }\n break;\n }\n case '$notNull': {\n if (value) {\n qb.whereNotNull(column);\n } else {\n qb.whereNull(column);\n }\n break;\n }\n case '$between': {\n qb.whereBetween(column, value);\n break;\n }\n case '$startsWith': {\n qb.where(column, 'like', `${value}%`);\n break;\n }\n case '$startsWithi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `${value}%`]);\n break;\n }\n case '$endsWith': {\n qb.where(column, 'like', `%${value}`);\n break;\n }\n case '$endsWithi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `%${value}`]);\n break;\n }\n case '$contains': {\n qb.where(column, 'like', `%${value}%`);\n break;\n }\n\n case '$notContains': {\n qb.whereNot(column, 'like', `%${value}%`);\n break;\n }\n\n case '$containsi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `%${value}%`]);\n break;\n }\n\n case '$notContainsi': {\n qb.whereRaw(`${fieldLowerFn(qb)} NOT LIKE LOWER(?)`, [column, `%${value}%`]);\n break;\n }\n\n // Experimental, only for internal use\n // Only on MySQL, PostgreSQL and CockroachDB.\n // https://knexjs.org/guide/query-builder.html#wherejsonsupersetof\n case '$jsonSupersetOf': {\n qb.whereJsonSupersetOf(column, value);\n break;\n }\n\n // TODO: Add more JSON operators: whereJsonObject, whereJsonPath, whereJsonSubsetOf\n\n // TODO: relational operators every/some/exists/size ...\n\n default: {\n throw new Error(`Undefined attribute level operator ${operator}`);\n }\n }\n};\n\nconst applyWhereToColumn = (\n qb: Knex.QueryBuilder,\n column: string,\n columnWhere: Record<Operator, unknown> | Array<Record<Operator, unknown>>\n) => {\n if (!isRecord(columnWhere)) {\n if (Array.isArray(columnWhere)) {\n return qb.whereIn(column, columnWhere);\n }\n\n return qb.where(column, columnWhere);\n }\n\n const keys = Object.keys(columnWhere) as Operator[];\n\n keys.forEach((operator) => {\n const value = columnWhere[operator];\n\n applyOperator(qb, column, operator, value);\n });\n};\n\ntype Where =\n | {\n $and?: Where[];\n $or?: Where[];\n $not?: Where;\n [key: string]: any;\n }\n | Array<Where>;\n\nconst applyWhere = (qb: Knex.QueryBuilder, where: Where) => {\n if (!isArray(where) && !isRecord(where)) {\n throw new Error('Where must be an array or an object');\n }\n\n if (isArray(where)) {\n return qb.where((subQB: Knex.QueryBuilder) =>\n where.forEach((subWhere) => applyWhere(subQB, subWhere))\n );\n }\n\n Object.keys(where).forEach((key) => {\n if (key === '$and') {\n const value = where[key] ?? [];\n\n return qb.where((subQB: Knex.QueryBuilder) => {\n value.forEach((v) => applyWhere(subQB, v));\n });\n }\n\n if (key === '$or') {\n const value = where[key] ?? [];\n\n return qb.where((subQB: Knex.QueryBuilder) => {\n value.forEach((v) => subQB.orWhere((inner) => applyWhere(inner, v)));\n });\n }\n\n if (key === '$not') {\n const value = where[key] ?? {};\n\n return qb.whereNot((qb) => applyWhere(qb, value));\n }\n\n applyWhereToColumn(qb, key, where[key]);\n });\n};\n\nconst fieldLowerFn = (qb: Knex.QueryBuilder) => {\n // Postgres requires string to be passed\n if (qb.client.dialect === 'postgresql') {\n return 'LOWER(CAST(?? AS VARCHAR))';\n }\n\n return 'LOWER(??)';\n};\n\nexport { applyWhere, processWhere };\n"],"names":["isRecord","value","isPlainObject","castValue","attribute","types","type","isKnexQuery","field","createField","toDB","processSingleAttributeWhere","where","operator","isOperatorOfType","filters","key","Object","keys","Error","processAttributeWhere","isArray","map","sub","processNested","ctx","processWhere","processRelationWhere","qb","alias","idAlias","aliasColumn","operatorKeys","filter","isOperator","length","db","uid","meta","metadata","get","Array","attributes","subAlias","createJoin","attributeName","nestedWhere","target","assign","columnName","toColumnName","aliasedColumnName","applyOperator","column","subQB","forEach","subValue","orWhere","innerQB","whereNot","applyWhereToColumn","whereIn","castArray","whereNotIn","whereNull","whereRaw","fieldLowerFn","whereNotNull","whereBetween","whereJsonSupersetOf","columnWhere","applyWhere","subWhere","v","inner","client","dialect"],"mappings":"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"}
1
+ {"version":3,"file":"where.js","sources":["../../../src/query/helpers/where.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { isArray, castArray, isPlainObject } from 'lodash/fp';\nimport type { Knex } from 'knex';\n\nimport { isOperator, isOperatorOfType } from '@strapi/utils';\nimport * as types from '../../utils/types';\nimport { createField } from '../../fields';\nimport { createJoin } from './join';\nimport { toColumnName } from './transform';\nimport { isKnexQuery } from '../../utils/knex';\n\nimport type { Ctx } from '../types';\nimport type { Attribute } from '../../types';\n\ntype WhereCtx = Ctx & { alias?: string; isGroupRoot?: boolean };\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => isPlainObject(value);\n\nconst castValue = (value: unknown, attribute: Attribute | null) => {\n if (!attribute) {\n return value;\n }\n\n if (types.isScalar(attribute.type) && !isKnexQuery(value)) {\n const field = createField(attribute);\n\n return value === null ? null : field.toDB(value);\n }\n\n return value;\n};\n\nconst processSingleAttributeWhere = (\n attribute: Attribute | null,\n where: unknown,\n operator = '$eq'\n) => {\n if (!isRecord(where)) {\n if (isOperatorOfType('cast', operator)) {\n return castValue(where, attribute);\n }\n\n return where;\n }\n\n const filters: Record<string, unknown> = {};\n\n for (const key of Object.keys(where)) {\n const value = where[key];\n\n if (!isOperatorOfType('where', key)) {\n throw new Error(`Undefined attribute level operator ${key}`);\n }\n\n filters[key] = processAttributeWhere(attribute, value, key);\n }\n\n return filters;\n};\n\nconst processAttributeWhere = (attribute: Attribute | null, where: unknown, operator = '$eq') => {\n if (isArray(where)) {\n return where.map((sub) => processSingleAttributeWhere(attribute, sub, operator));\n }\n\n return processSingleAttributeWhere(attribute, where, operator);\n};\n\nconst processNested = (where: unknown, ctx: WhereCtx) => {\n if (!isRecord(where)) {\n return where;\n }\n\n return processWhere(where, ctx);\n};\n\nconst processRelationWhere = (where: unknown, ctx: WhereCtx) => {\n const { qb, alias } = ctx;\n\n const idAlias = qb.aliasColumn('id', alias);\n if (!isRecord(where)) {\n return { [idAlias]: where };\n }\n\n const keys = Object.keys(where);\n const operatorKeys = keys.filter((key) => isOperator(key));\n\n if (operatorKeys.length > 0 && operatorKeys.length !== keys.length) {\n throw new Error(`Operator and non-operator keys cannot be mixed in a relation where clause`);\n }\n\n if (operatorKeys.length > 1) {\n throw new Error(\n `Only one operator key is allowed in a relation where clause, but found: ${operatorKeys}`\n );\n }\n\n if (operatorKeys.length === 1) {\n const operator = operatorKeys[0];\n\n if (isOperatorOfType('group', operator)) {\n return processWhere(where, ctx);\n }\n\n return { [idAlias]: { [operator]: processNested(where[operator], ctx) } };\n }\n\n return processWhere(where, ctx);\n};\n\n/**\n * Process where parameter\n */\nfunction processWhere(where: Record<string, unknown>, ctx: WhereCtx): Record<string, unknown>;\nfunction processWhere(where: Record<string, unknown>[], ctx: WhereCtx): Record<string, unknown>[];\nfunction processWhere(\n where: Record<string, unknown> | Record<string, unknown>[],\n ctx: WhereCtx\n): Record<string, unknown> | Record<string, unknown>[] {\n if (!isArray(where) && !isRecord(where)) {\n throw new Error('Where must be an array or an object');\n }\n\n if (isArray(where)) {\n return where.map((sub) => processWhere(sub, ctx));\n }\n\n const { db, uid, qb, alias } = ctx;\n const meta = db.metadata.get(uid);\n\n const filters: Record<string, unknown> = {};\n\n // for each key in where\n for (const key of Object.keys(where)) {\n const value = where[key];\n\n // if operator $and $or -> process recursively\n if (isOperatorOfType('group', key)) {\n if (!Array.isArray(value)) {\n throw new Error(`Operator ${key} must be an array`);\n }\n\n filters[key] = value.map((sub) => processNested(sub, ctx));\n continue;\n }\n\n if (key === '$not') {\n filters[key] = processNested(value, ctx);\n continue;\n }\n\n if (isOperatorOfType('where', key)) {\n throw new Error(\n `Only $and, $or and $not can only be used as root level operators. Found ${key}.`\n );\n }\n\n const attribute = meta.attributes[key];\n\n if (!attribute) {\n filters[qb.aliasColumn(key, alias)] = processAttributeWhere(null, value);\n continue;\n }\n\n if (types.isRelation(attribute.type) && 'target' in attribute) {\n // attribute\n const subAlias = createJoin(ctx, {\n alias: alias || qb.alias,\n attributeName: key,\n attribute,\n });\n\n const nestedWhere = processRelationWhere(value, {\n db,\n qb,\n alias: subAlias,\n uid: attribute.target,\n });\n\n // TODO: use a better merge logic (push to $and when collisions)\n Object.assign(filters, nestedWhere);\n\n continue;\n }\n\n if (types.isScalar(attribute.type)) {\n const columnName = toColumnName(meta, key);\n const aliasedColumnName = qb.aliasColumn(columnName, alias);\n\n filters[aliasedColumnName] = processAttributeWhere(attribute, value);\n\n continue;\n }\n\n throw new Error(`You cannot filter on ${attribute.type} types`);\n }\n\n return filters;\n}\n\ntype Operator =\n | '$eq'\n | '$ne'\n | '$nei'\n | '$in'\n | '$notIn'\n | '$lt'\n | '$lte'\n | '$gt'\n | '$gte'\n | '$between'\n | '$contains'\n | '$notContains'\n | '$containsi'\n | '$notContainsi'\n | '$startsWith'\n | '$endsWith'\n | '$null'\n | '$notNull'\n | '$not'\n | '$eqi'\n | '$startsWithi'\n | '$endsWithi'\n | '$jsonSupersetOf';\n\n// TODO: add type casting per operator at some point\nconst applyOperator = (\n qb: Knex.QueryBuilder,\n column: any,\n operator: Operator,\n value: any\n): Knex.QueryBuilder | undefined => {\n if (Array.isArray(value) && !isOperatorOfType('array', operator)) {\n return qb.where((subQB) => {\n value.forEach((subValue) =>\n subQB.orWhere((innerQB) => {\n applyOperator(innerQB, column, operator, subValue);\n })\n );\n });\n }\n\n switch (operator) {\n case '$not': {\n qb.whereNot((qb) => applyWhereToColumn(qb, column, value));\n break;\n }\n\n case '$in': {\n // @ts-ignore\n // TODO: fix in v5\n qb.whereIn(column, isKnexQuery(value) ? value : castArray(value));\n break;\n }\n\n case '$notIn': {\n // @ts-ignore\n // TODO: fix in v5\n qb.whereNotIn(column, isKnexQuery(value) ? value : castArray(value));\n break;\n }\n\n case '$eq': {\n if (value === null) {\n qb.whereNull(column);\n break;\n }\n\n qb.where(column, value);\n break;\n }\n\n case '$eqi': {\n if (value === null) {\n qb.whereNull(column);\n break;\n }\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `${value}`]);\n break;\n }\n case '$ne': {\n if (value === null) {\n qb.whereNotNull(column);\n break;\n }\n\n qb.where(column, '<>', value);\n break;\n }\n case '$nei': {\n if (value === null) {\n qb.whereNotNull(column);\n break;\n }\n qb.whereRaw(`${fieldLowerFn(qb)} NOT LIKE LOWER(?)`, [column, `${value}`]);\n break;\n }\n case '$gt': {\n qb.where(column, '>', value);\n break;\n }\n case '$gte': {\n qb.where(column, '>=', value);\n break;\n }\n case '$lt': {\n qb.where(column, '<', value);\n break;\n }\n case '$lte': {\n qb.where(column, '<=', value);\n break;\n }\n case '$null': {\n if (value) {\n qb.whereNull(column);\n } else {\n qb.whereNotNull(column);\n }\n break;\n }\n case '$notNull': {\n if (value) {\n qb.whereNotNull(column);\n } else {\n qb.whereNull(column);\n }\n break;\n }\n case '$between': {\n qb.whereBetween(column, value);\n break;\n }\n case '$startsWith': {\n qb.where(column, 'like', `${value}%`);\n break;\n }\n case '$startsWithi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `${value}%`]);\n break;\n }\n case '$endsWith': {\n qb.where(column, 'like', `%${value}`);\n break;\n }\n case '$endsWithi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `%${value}`]);\n break;\n }\n case '$contains': {\n qb.where(column, 'like', `%${value}%`);\n break;\n }\n\n case '$notContains': {\n qb.whereNot(column, 'like', `%${value}%`);\n break;\n }\n\n case '$containsi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `%${value}%`]);\n break;\n }\n\n case '$notContainsi': {\n qb.whereRaw(`${fieldLowerFn(qb)} NOT LIKE LOWER(?)`, [column, `%${value}%`]);\n break;\n }\n\n // Experimental, only for internal use\n // Only on MySQL, PostgreSQL and CockroachDB.\n // https://knexjs.org/guide/query-builder.html#wherejsonsupersetof\n case '$jsonSupersetOf': {\n qb.whereJsonSupersetOf(column, value);\n break;\n }\n\n // TODO: Add more JSON operators: whereJsonObject, whereJsonPath, whereJsonSubsetOf\n\n // TODO: relational operators every/some/exists/size ...\n\n default: {\n throw new Error(`Undefined attribute level operator ${operator}`);\n }\n }\n};\n\nconst applyWhereToColumn = (\n qb: Knex.QueryBuilder,\n column: string,\n columnWhere: Record<Operator, unknown> | Array<Record<Operator, unknown>>\n) => {\n if (!isRecord(columnWhere)) {\n if (Array.isArray(columnWhere)) {\n return qb.whereIn(column, columnWhere);\n }\n\n return qb.where(column, columnWhere);\n }\n\n const keys = Object.keys(columnWhere) as Operator[];\n\n keys.forEach((operator) => {\n const value = columnWhere[operator];\n\n applyOperator(qb, column, operator, value);\n });\n};\n\ntype Where =\n | {\n $and?: Where[];\n $or?: Where[];\n $not?: Where;\n [key: string]: any;\n }\n | Array<Where>;\n\nconst applyWhere = (qb: Knex.QueryBuilder, where: Where): Knex.QueryBuilder | undefined => {\n if (!isArray(where) && !isRecord(where)) {\n throw new Error('Where must be an array or an object');\n }\n\n if (isArray(where)) {\n return qb.where((subQB: Knex.QueryBuilder) =>\n where.forEach((subWhere) => applyWhere(subQB, subWhere))\n );\n }\n\n Object.keys(where).forEach((key) => {\n if (key === '$and') {\n const value = where[key] ?? [];\n\n return qb.where((subQB: Knex.QueryBuilder) => {\n value.forEach((v) => applyWhere(subQB, v));\n });\n }\n\n if (key === '$or') {\n const value = where[key] ?? [];\n\n return qb.where((subQB: Knex.QueryBuilder) => {\n value.forEach((v) => subQB.orWhere((inner) => applyWhere(inner, v)));\n });\n }\n\n if (key === '$not') {\n const value = where[key] ?? {};\n\n return qb.whereNot((qb) => applyWhere(qb, value));\n }\n\n applyWhereToColumn(qb, key, where[key]);\n });\n};\n\nconst fieldLowerFn = (qb: Knex.QueryBuilder) => {\n // Postgres requires string to be passed\n if (qb.client.dialect === 'postgresql') {\n return 'LOWER(CAST(?? AS VARCHAR))';\n }\n\n return 'LOWER(??)';\n};\n\nexport { applyWhere, processWhere };\n"],"names":["isRecord","value","isPlainObject","castValue","attribute","types","type","isKnexQuery","field","createField","toDB","processSingleAttributeWhere","where","operator","isOperatorOfType","filters","key","Object","keys","Error","processAttributeWhere","isArray","map","sub","processNested","ctx","processWhere","processRelationWhere","qb","alias","idAlias","aliasColumn","operatorKeys","filter","isOperator","length","db","uid","meta","metadata","get","Array","attributes","subAlias","createJoin","attributeName","nestedWhere","target","assign","columnName","toColumnName","aliasedColumnName","applyOperator","column","subQB","forEach","subValue","orWhere","innerQB","whereNot","applyWhereToColumn","whereIn","castArray","whereNotIn","whereNull","whereRaw","fieldLowerFn","whereNotNull","whereBetween","whereJsonSupersetOf","columnWhere","applyWhere","subWhere","v","inner","client","dialect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"where.mjs","sources":["../../../src/query/helpers/where.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { isArray, castArray, isPlainObject } from 'lodash/fp';\nimport type { Knex } from 'knex';\n\nimport { isOperator, isOperatorOfType } from '@strapi/utils';\nimport * as types from '../../utils/types';\nimport { createField } from '../../fields';\nimport { createJoin } from './join';\nimport { toColumnName } from './transform';\nimport { isKnexQuery } from '../../utils/knex';\n\nimport type { Ctx } from '../types';\nimport type { Attribute } from '../../types';\n\ntype WhereCtx = Ctx & { alias?: string; isGroupRoot?: boolean };\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => isPlainObject(value);\n\nconst castValue = (value: unknown, attribute: Attribute | null) => {\n if (!attribute) {\n return value;\n }\n\n if (types.isScalar(attribute.type) && !isKnexQuery(value)) {\n const field = createField(attribute);\n\n return value === null ? null : field.toDB(value);\n }\n\n return value;\n};\n\nconst processSingleAttributeWhere = (\n attribute: Attribute | null,\n where: unknown,\n operator = '$eq'\n) => {\n if (!isRecord(where)) {\n if (isOperatorOfType('cast', operator)) {\n return castValue(where, attribute);\n }\n\n return where;\n }\n\n const filters: Record<string, unknown> = {};\n\n for (const key of Object.keys(where)) {\n const value = where[key];\n\n if (!isOperatorOfType('where', key)) {\n throw new Error(`Undefined attribute level operator ${key}`);\n }\n\n filters[key] = processAttributeWhere(attribute, value, key);\n }\n\n return filters;\n};\n\nconst processAttributeWhere = (attribute: Attribute | null, where: unknown, operator = '$eq') => {\n if (isArray(where)) {\n return where.map((sub) => processSingleAttributeWhere(attribute, sub, operator));\n }\n\n return processSingleAttributeWhere(attribute, where, operator);\n};\n\nconst processNested = (where: unknown, ctx: WhereCtx) => {\n if (!isRecord(where)) {\n return where;\n }\n\n return processWhere(where, ctx);\n};\n\nconst processRelationWhere = (where: unknown, ctx: WhereCtx) => {\n const { qb, alias } = ctx;\n\n const idAlias = qb.aliasColumn('id', alias);\n if (!isRecord(where)) {\n return { [idAlias]: where };\n }\n\n const keys = Object.keys(where);\n const operatorKeys = keys.filter((key) => isOperator(key));\n\n if (operatorKeys.length > 0 && operatorKeys.length !== keys.length) {\n throw new Error(`Operator and non-operator keys cannot be mixed in a relation where clause`);\n }\n\n if (operatorKeys.length > 1) {\n throw new Error(\n `Only one operator key is allowed in a relation where clause, but found: ${operatorKeys}`\n );\n }\n\n if (operatorKeys.length === 1) {\n const operator = operatorKeys[0];\n\n if (isOperatorOfType('group', operator)) {\n return processWhere(where, ctx);\n }\n\n return { [idAlias]: { [operator]: processNested(where[operator], ctx) } };\n }\n\n return processWhere(where, ctx);\n};\n\n/**\n * Process where parameter\n */\nfunction processWhere(where: Record<string, unknown>, ctx: WhereCtx): Record<string, unknown>;\nfunction processWhere(where: Record<string, unknown>[], ctx: WhereCtx): Record<string, unknown>[];\nfunction processWhere(\n where: Record<string, unknown> | Record<string, unknown>[],\n ctx: WhereCtx\n): Record<string, unknown> | Record<string, unknown>[] {\n if (!isArray(where) && !isRecord(where)) {\n throw new Error('Where must be an array or an object');\n }\n\n if (isArray(where)) {\n return where.map((sub) => processWhere(sub, ctx));\n }\n\n const { db, uid, qb, alias } = ctx;\n const meta = db.metadata.get(uid);\n\n const filters: Record<string, unknown> = {};\n\n // for each key in where\n for (const key of Object.keys(where)) {\n const value = where[key];\n\n // if operator $and $or -> process recursively\n if (isOperatorOfType('group', key)) {\n if (!Array.isArray(value)) {\n throw new Error(`Operator ${key} must be an array`);\n }\n\n filters[key] = value.map((sub) => processNested(sub, ctx));\n continue;\n }\n\n if (key === '$not') {\n filters[key] = processNested(value, ctx);\n continue;\n }\n\n if (isOperatorOfType('where', key)) {\n throw new Error(\n `Only $and, $or and $not can only be used as root level operators. Found ${key}.`\n );\n }\n\n const attribute = meta.attributes[key];\n\n if (!attribute) {\n filters[qb.aliasColumn(key, alias)] = processAttributeWhere(null, value);\n continue;\n }\n\n if (types.isRelation(attribute.type) && 'target' in attribute) {\n // attribute\n const subAlias = createJoin(ctx, {\n alias: alias || qb.alias,\n attributeName: key,\n attribute,\n });\n\n const nestedWhere = processRelationWhere(value, {\n db,\n qb,\n alias: subAlias,\n uid: attribute.target,\n });\n\n // TODO: use a better merge logic (push to $and when collisions)\n Object.assign(filters, nestedWhere);\n\n continue;\n }\n\n if (types.isScalar(attribute.type)) {\n const columnName = toColumnName(meta, key);\n const aliasedColumnName = qb.aliasColumn(columnName, alias);\n\n filters[aliasedColumnName] = processAttributeWhere(attribute, value);\n\n continue;\n }\n\n throw new Error(`You cannot filter on ${attribute.type} types`);\n }\n\n return filters;\n}\n\ntype Operator =\n | '$eq'\n | '$ne'\n | '$nei'\n | '$in'\n | '$notIn'\n | '$lt'\n | '$lte'\n | '$gt'\n | '$gte'\n | '$between'\n | '$contains'\n | '$notContains'\n | '$containsi'\n | '$notContainsi'\n | '$startsWith'\n | '$endsWith'\n | '$null'\n | '$notNull'\n | '$not'\n | '$eqi'\n | '$startsWithi'\n | '$endsWithi'\n | '$jsonSupersetOf';\n\n// TODO: add type casting per operator at some point\nconst applyOperator = (qb: Knex.QueryBuilder, column: any, operator: Operator, value: any) => {\n if (Array.isArray(value) && !isOperatorOfType('array', operator)) {\n return qb.where((subQB) => {\n value.forEach((subValue) =>\n subQB.orWhere((innerQB) => {\n applyOperator(innerQB, column, operator, subValue);\n })\n );\n });\n }\n\n switch (operator) {\n case '$not': {\n qb.whereNot((qb) => applyWhereToColumn(qb, column, value));\n break;\n }\n\n case '$in': {\n // @ts-ignore\n // TODO: fix in v5\n qb.whereIn(column, isKnexQuery(value) ? value : castArray(value));\n break;\n }\n\n case '$notIn': {\n // @ts-ignore\n // TODO: fix in v5\n qb.whereNotIn(column, isKnexQuery(value) ? value : castArray(value));\n break;\n }\n\n case '$eq': {\n if (value === null) {\n qb.whereNull(column);\n break;\n }\n\n qb.where(column, value);\n break;\n }\n\n case '$eqi': {\n if (value === null) {\n qb.whereNull(column);\n break;\n }\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `${value}`]);\n break;\n }\n case '$ne': {\n if (value === null) {\n qb.whereNotNull(column);\n break;\n }\n\n qb.where(column, '<>', value);\n break;\n }\n case '$nei': {\n if (value === null) {\n qb.whereNotNull(column);\n break;\n }\n qb.whereRaw(`${fieldLowerFn(qb)} NOT LIKE LOWER(?)`, [column, `${value}`]);\n break;\n }\n case '$gt': {\n qb.where(column, '>', value);\n break;\n }\n case '$gte': {\n qb.where(column, '>=', value);\n break;\n }\n case '$lt': {\n qb.where(column, '<', value);\n break;\n }\n case '$lte': {\n qb.where(column, '<=', value);\n break;\n }\n case '$null': {\n if (value) {\n qb.whereNull(column);\n } else {\n qb.whereNotNull(column);\n }\n break;\n }\n case '$notNull': {\n if (value) {\n qb.whereNotNull(column);\n } else {\n qb.whereNull(column);\n }\n break;\n }\n case '$between': {\n qb.whereBetween(column, value);\n break;\n }\n case '$startsWith': {\n qb.where(column, 'like', `${value}%`);\n break;\n }\n case '$startsWithi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `${value}%`]);\n break;\n }\n case '$endsWith': {\n qb.where(column, 'like', `%${value}`);\n break;\n }\n case '$endsWithi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `%${value}`]);\n break;\n }\n case '$contains': {\n qb.where(column, 'like', `%${value}%`);\n break;\n }\n\n case '$notContains': {\n qb.whereNot(column, 'like', `%${value}%`);\n break;\n }\n\n case '$containsi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `%${value}%`]);\n break;\n }\n\n case '$notContainsi': {\n qb.whereRaw(`${fieldLowerFn(qb)} NOT LIKE LOWER(?)`, [column, `%${value}%`]);\n break;\n }\n\n // Experimental, only for internal use\n // Only on MySQL, PostgreSQL and CockroachDB.\n // https://knexjs.org/guide/query-builder.html#wherejsonsupersetof\n case '$jsonSupersetOf': {\n qb.whereJsonSupersetOf(column, value);\n break;\n }\n\n // TODO: Add more JSON operators: whereJsonObject, whereJsonPath, whereJsonSubsetOf\n\n // TODO: relational operators every/some/exists/size ...\n\n default: {\n throw new Error(`Undefined attribute level operator ${operator}`);\n }\n }\n};\n\nconst applyWhereToColumn = (\n qb: Knex.QueryBuilder,\n column: string,\n columnWhere: Record<Operator, unknown> | Array<Record<Operator, unknown>>\n) => {\n if (!isRecord(columnWhere)) {\n if (Array.isArray(columnWhere)) {\n return qb.whereIn(column, columnWhere);\n }\n\n return qb.where(column, columnWhere);\n }\n\n const keys = Object.keys(columnWhere) as Operator[];\n\n keys.forEach((operator) => {\n const value = columnWhere[operator];\n\n applyOperator(qb, column, operator, value);\n });\n};\n\ntype Where =\n | {\n $and?: Where[];\n $or?: Where[];\n $not?: Where;\n [key: string]: any;\n }\n | Array<Where>;\n\nconst applyWhere = (qb: Knex.QueryBuilder, where: Where) => {\n if (!isArray(where) && !isRecord(where)) {\n throw new Error('Where must be an array or an object');\n }\n\n if (isArray(where)) {\n return qb.where((subQB: Knex.QueryBuilder) =>\n where.forEach((subWhere) => applyWhere(subQB, subWhere))\n );\n }\n\n Object.keys(where).forEach((key) => {\n if (key === '$and') {\n const value = where[key] ?? [];\n\n return qb.where((subQB: Knex.QueryBuilder) => {\n value.forEach((v) => applyWhere(subQB, v));\n });\n }\n\n if (key === '$or') {\n const value = where[key] ?? [];\n\n return qb.where((subQB: Knex.QueryBuilder) => {\n value.forEach((v) => subQB.orWhere((inner) => applyWhere(inner, v)));\n });\n }\n\n if (key === '$not') {\n const value = where[key] ?? {};\n\n return qb.whereNot((qb) => applyWhere(qb, value));\n }\n\n applyWhereToColumn(qb, key, where[key]);\n });\n};\n\nconst fieldLowerFn = (qb: Knex.QueryBuilder) => {\n // Postgres requires string to be passed\n if (qb.client.dialect === 'postgresql') {\n return 'LOWER(CAST(?? AS VARCHAR))';\n }\n\n return 'LOWER(??)';\n};\n\nexport { applyWhere, processWhere };\n"],"names":["isRecord","value","isPlainObject","castValue","attribute","types","type","isKnexQuery","field","createField","toDB","processSingleAttributeWhere","where","operator","isOperatorOfType","filters","key","Object","keys","Error","processAttributeWhere","isArray","map","sub","processNested","ctx","processWhere","processRelationWhere","qb","alias","idAlias","aliasColumn","operatorKeys","filter","isOperator","length","db","uid","meta","metadata","get","Array","attributes","subAlias","createJoin","attributeName","nestedWhere","target","assign","columnName","toColumnName","aliasedColumnName","applyOperator","column","subQB","forEach","subValue","orWhere","innerQB","whereNot","applyWhereToColumn","whereIn","castArray","whereNotIn","whereNull","whereRaw","fieldLowerFn","whereNotNull","whereBetween","whereJsonSupersetOf","columnWhere","applyWhere","subWhere","v","inner","client","dialect"],"mappings":"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"}
1
+ {"version":3,"file":"where.mjs","sources":["../../../src/query/helpers/where.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { isArray, castArray, isPlainObject } from 'lodash/fp';\nimport type { Knex } from 'knex';\n\nimport { isOperator, isOperatorOfType } from '@strapi/utils';\nimport * as types from '../../utils/types';\nimport { createField } from '../../fields';\nimport { createJoin } from './join';\nimport { toColumnName } from './transform';\nimport { isKnexQuery } from '../../utils/knex';\n\nimport type { Ctx } from '../types';\nimport type { Attribute } from '../../types';\n\ntype WhereCtx = Ctx & { alias?: string; isGroupRoot?: boolean };\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => isPlainObject(value);\n\nconst castValue = (value: unknown, attribute: Attribute | null) => {\n if (!attribute) {\n return value;\n }\n\n if (types.isScalar(attribute.type) && !isKnexQuery(value)) {\n const field = createField(attribute);\n\n return value === null ? null : field.toDB(value);\n }\n\n return value;\n};\n\nconst processSingleAttributeWhere = (\n attribute: Attribute | null,\n where: unknown,\n operator = '$eq'\n) => {\n if (!isRecord(where)) {\n if (isOperatorOfType('cast', operator)) {\n return castValue(where, attribute);\n }\n\n return where;\n }\n\n const filters: Record<string, unknown> = {};\n\n for (const key of Object.keys(where)) {\n const value = where[key];\n\n if (!isOperatorOfType('where', key)) {\n throw new Error(`Undefined attribute level operator ${key}`);\n }\n\n filters[key] = processAttributeWhere(attribute, value, key);\n }\n\n return filters;\n};\n\nconst processAttributeWhere = (attribute: Attribute | null, where: unknown, operator = '$eq') => {\n if (isArray(where)) {\n return where.map((sub) => processSingleAttributeWhere(attribute, sub, operator));\n }\n\n return processSingleAttributeWhere(attribute, where, operator);\n};\n\nconst processNested = (where: unknown, ctx: WhereCtx) => {\n if (!isRecord(where)) {\n return where;\n }\n\n return processWhere(where, ctx);\n};\n\nconst processRelationWhere = (where: unknown, ctx: WhereCtx) => {\n const { qb, alias } = ctx;\n\n const idAlias = qb.aliasColumn('id', alias);\n if (!isRecord(where)) {\n return { [idAlias]: where };\n }\n\n const keys = Object.keys(where);\n const operatorKeys = keys.filter((key) => isOperator(key));\n\n if (operatorKeys.length > 0 && operatorKeys.length !== keys.length) {\n throw new Error(`Operator and non-operator keys cannot be mixed in a relation where clause`);\n }\n\n if (operatorKeys.length > 1) {\n throw new Error(\n `Only one operator key is allowed in a relation where clause, but found: ${operatorKeys}`\n );\n }\n\n if (operatorKeys.length === 1) {\n const operator = operatorKeys[0];\n\n if (isOperatorOfType('group', operator)) {\n return processWhere(where, ctx);\n }\n\n return { [idAlias]: { [operator]: processNested(where[operator], ctx) } };\n }\n\n return processWhere(where, ctx);\n};\n\n/**\n * Process where parameter\n */\nfunction processWhere(where: Record<string, unknown>, ctx: WhereCtx): Record<string, unknown>;\nfunction processWhere(where: Record<string, unknown>[], ctx: WhereCtx): Record<string, unknown>[];\nfunction processWhere(\n where: Record<string, unknown> | Record<string, unknown>[],\n ctx: WhereCtx\n): Record<string, unknown> | Record<string, unknown>[] {\n if (!isArray(where) && !isRecord(where)) {\n throw new Error('Where must be an array or an object');\n }\n\n if (isArray(where)) {\n return where.map((sub) => processWhere(sub, ctx));\n }\n\n const { db, uid, qb, alias } = ctx;\n const meta = db.metadata.get(uid);\n\n const filters: Record<string, unknown> = {};\n\n // for each key in where\n for (const key of Object.keys(where)) {\n const value = where[key];\n\n // if operator $and $or -> process recursively\n if (isOperatorOfType('group', key)) {\n if (!Array.isArray(value)) {\n throw new Error(`Operator ${key} must be an array`);\n }\n\n filters[key] = value.map((sub) => processNested(sub, ctx));\n continue;\n }\n\n if (key === '$not') {\n filters[key] = processNested(value, ctx);\n continue;\n }\n\n if (isOperatorOfType('where', key)) {\n throw new Error(\n `Only $and, $or and $not can only be used as root level operators. Found ${key}.`\n );\n }\n\n const attribute = meta.attributes[key];\n\n if (!attribute) {\n filters[qb.aliasColumn(key, alias)] = processAttributeWhere(null, value);\n continue;\n }\n\n if (types.isRelation(attribute.type) && 'target' in attribute) {\n // attribute\n const subAlias = createJoin(ctx, {\n alias: alias || qb.alias,\n attributeName: key,\n attribute,\n });\n\n const nestedWhere = processRelationWhere(value, {\n db,\n qb,\n alias: subAlias,\n uid: attribute.target,\n });\n\n // TODO: use a better merge logic (push to $and when collisions)\n Object.assign(filters, nestedWhere);\n\n continue;\n }\n\n if (types.isScalar(attribute.type)) {\n const columnName = toColumnName(meta, key);\n const aliasedColumnName = qb.aliasColumn(columnName, alias);\n\n filters[aliasedColumnName] = processAttributeWhere(attribute, value);\n\n continue;\n }\n\n throw new Error(`You cannot filter on ${attribute.type} types`);\n }\n\n return filters;\n}\n\ntype Operator =\n | '$eq'\n | '$ne'\n | '$nei'\n | '$in'\n | '$notIn'\n | '$lt'\n | '$lte'\n | '$gt'\n | '$gte'\n | '$between'\n | '$contains'\n | '$notContains'\n | '$containsi'\n | '$notContainsi'\n | '$startsWith'\n | '$endsWith'\n | '$null'\n | '$notNull'\n | '$not'\n | '$eqi'\n | '$startsWithi'\n | '$endsWithi'\n | '$jsonSupersetOf';\n\n// TODO: add type casting per operator at some point\nconst applyOperator = (\n qb: Knex.QueryBuilder,\n column: any,\n operator: Operator,\n value: any\n): Knex.QueryBuilder | undefined => {\n if (Array.isArray(value) && !isOperatorOfType('array', operator)) {\n return qb.where((subQB) => {\n value.forEach((subValue) =>\n subQB.orWhere((innerQB) => {\n applyOperator(innerQB, column, operator, subValue);\n })\n );\n });\n }\n\n switch (operator) {\n case '$not': {\n qb.whereNot((qb) => applyWhereToColumn(qb, column, value));\n break;\n }\n\n case '$in': {\n // @ts-ignore\n // TODO: fix in v5\n qb.whereIn(column, isKnexQuery(value) ? value : castArray(value));\n break;\n }\n\n case '$notIn': {\n // @ts-ignore\n // TODO: fix in v5\n qb.whereNotIn(column, isKnexQuery(value) ? value : castArray(value));\n break;\n }\n\n case '$eq': {\n if (value === null) {\n qb.whereNull(column);\n break;\n }\n\n qb.where(column, value);\n break;\n }\n\n case '$eqi': {\n if (value === null) {\n qb.whereNull(column);\n break;\n }\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `${value}`]);\n break;\n }\n case '$ne': {\n if (value === null) {\n qb.whereNotNull(column);\n break;\n }\n\n qb.where(column, '<>', value);\n break;\n }\n case '$nei': {\n if (value === null) {\n qb.whereNotNull(column);\n break;\n }\n qb.whereRaw(`${fieldLowerFn(qb)} NOT LIKE LOWER(?)`, [column, `${value}`]);\n break;\n }\n case '$gt': {\n qb.where(column, '>', value);\n break;\n }\n case '$gte': {\n qb.where(column, '>=', value);\n break;\n }\n case '$lt': {\n qb.where(column, '<', value);\n break;\n }\n case '$lte': {\n qb.where(column, '<=', value);\n break;\n }\n case '$null': {\n if (value) {\n qb.whereNull(column);\n } else {\n qb.whereNotNull(column);\n }\n break;\n }\n case '$notNull': {\n if (value) {\n qb.whereNotNull(column);\n } else {\n qb.whereNull(column);\n }\n break;\n }\n case '$between': {\n qb.whereBetween(column, value);\n break;\n }\n case '$startsWith': {\n qb.where(column, 'like', `${value}%`);\n break;\n }\n case '$startsWithi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `${value}%`]);\n break;\n }\n case '$endsWith': {\n qb.where(column, 'like', `%${value}`);\n break;\n }\n case '$endsWithi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `%${value}`]);\n break;\n }\n case '$contains': {\n qb.where(column, 'like', `%${value}%`);\n break;\n }\n\n case '$notContains': {\n qb.whereNot(column, 'like', `%${value}%`);\n break;\n }\n\n case '$containsi': {\n qb.whereRaw(`${fieldLowerFn(qb)} LIKE LOWER(?)`, [column, `%${value}%`]);\n break;\n }\n\n case '$notContainsi': {\n qb.whereRaw(`${fieldLowerFn(qb)} NOT LIKE LOWER(?)`, [column, `%${value}%`]);\n break;\n }\n\n // Experimental, only for internal use\n // Only on MySQL, PostgreSQL and CockroachDB.\n // https://knexjs.org/guide/query-builder.html#wherejsonsupersetof\n case '$jsonSupersetOf': {\n qb.whereJsonSupersetOf(column, value);\n break;\n }\n\n // TODO: Add more JSON operators: whereJsonObject, whereJsonPath, whereJsonSubsetOf\n\n // TODO: relational operators every/some/exists/size ...\n\n default: {\n throw new Error(`Undefined attribute level operator ${operator}`);\n }\n }\n};\n\nconst applyWhereToColumn = (\n qb: Knex.QueryBuilder,\n column: string,\n columnWhere: Record<Operator, unknown> | Array<Record<Operator, unknown>>\n) => {\n if (!isRecord(columnWhere)) {\n if (Array.isArray(columnWhere)) {\n return qb.whereIn(column, columnWhere);\n }\n\n return qb.where(column, columnWhere);\n }\n\n const keys = Object.keys(columnWhere) as Operator[];\n\n keys.forEach((operator) => {\n const value = columnWhere[operator];\n\n applyOperator(qb, column, operator, value);\n });\n};\n\ntype Where =\n | {\n $and?: Where[];\n $or?: Where[];\n $not?: Where;\n [key: string]: any;\n }\n | Array<Where>;\n\nconst applyWhere = (qb: Knex.QueryBuilder, where: Where): Knex.QueryBuilder | undefined => {\n if (!isArray(where) && !isRecord(where)) {\n throw new Error('Where must be an array or an object');\n }\n\n if (isArray(where)) {\n return qb.where((subQB: Knex.QueryBuilder) =>\n where.forEach((subWhere) => applyWhere(subQB, subWhere))\n );\n }\n\n Object.keys(where).forEach((key) => {\n if (key === '$and') {\n const value = where[key] ?? [];\n\n return qb.where((subQB: Knex.QueryBuilder) => {\n value.forEach((v) => applyWhere(subQB, v));\n });\n }\n\n if (key === '$or') {\n const value = where[key] ?? [];\n\n return qb.where((subQB: Knex.QueryBuilder) => {\n value.forEach((v) => subQB.orWhere((inner) => applyWhere(inner, v)));\n });\n }\n\n if (key === '$not') {\n const value = where[key] ?? {};\n\n return qb.whereNot((qb) => applyWhere(qb, value));\n }\n\n applyWhereToColumn(qb, key, where[key]);\n });\n};\n\nconst fieldLowerFn = (qb: Knex.QueryBuilder) => {\n // Postgres requires string to be passed\n if (qb.client.dialect === 'postgresql') {\n return 'LOWER(CAST(?? AS VARCHAR))';\n }\n\n return 'LOWER(??)';\n};\n\nexport { applyWhere, processWhere };\n"],"names":["isRecord","value","isPlainObject","castValue","attribute","types","type","isKnexQuery","field","createField","toDB","processSingleAttributeWhere","where","operator","isOperatorOfType","filters","key","Object","keys","Error","processAttributeWhere","isArray","map","sub","processNested","ctx","processWhere","processRelationWhere","qb","alias","idAlias","aliasColumn","operatorKeys","filter","isOperator","length","db","uid","meta","metadata","get","Array","attributes","subAlias","createJoin","attributeName","nestedWhere","target","assign","columnName","toColumnName","aliasedColumnName","applyOperator","column","subQB","forEach","subValue","orWhere","innerQB","whereNot","applyWhereToColumn","whereIn","castArray","whereNotIn","whereNull","whereRaw","fieldLowerFn","whereNotNull","whereBetween","whereJsonSupersetOf","columnWhere","applyWhere","subWhere","v","inner","client","dialect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"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"}