json-fs-query 3.3.0 → 3.4.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 (120) hide show
  1. package/README.md +15 -3
  2. package/browser/jsonFsQuery.js +781 -3849
  3. package/browser/jsonFsQuery.min.js +1 -1
  4. package/dist/data/introspect/alter.js +0 -5
  5. package/dist/data/introspect/alter.min.js +1 -1
  6. package/dist/data/introspect/create.js +6 -5
  7. package/dist/data/introspect/create.min.js +1 -1
  8. package/dist/data/introspect/definitions/key.js +0 -2
  9. package/dist/data/introspect/definitions/key.min.js +1 -1
  10. package/dist/data/introspect/definitions/record.js +0 -2
  11. package/dist/data/introspect/definitions/record.min.js +1 -1
  12. package/dist/data/introspect/drop.js +0 -4
  13. package/dist/data/introspect/drop.min.js +1 -1
  14. package/dist/data/introspect/formatDatabase.js +0 -2
  15. package/dist/data/introspect/formatDatabase.min.js +1 -1
  16. package/dist/data/introspect/index.js +0 -4
  17. package/dist/data/introspect/index.min.js +1 -1
  18. package/dist/data/introspect/packDatabase.js +0 -19
  19. package/dist/data/introspect/packDatabase.min.js +1 -1
  20. package/dist/data/queries/createRecord.js +0 -2
  21. package/dist/data/queries/createRecord.min.js +1 -1
  22. package/dist/data/queries/databaseStatements.js +0 -3
  23. package/dist/data/queries/databaseStatements.min.js +1 -1
  24. package/dist/data/queries/deleteEntity.js +0 -20
  25. package/dist/data/queries/deleteEntity.min.js +1 -1
  26. package/dist/data/queries/dropRecord.js +0 -5
  27. package/dist/data/queries/dropRecord.min.js +1 -1
  28. package/dist/data/queries/groupBy.js +0 -16
  29. package/dist/data/queries/groupBy.min.js +1 -1
  30. package/dist/data/queries/insertEntity.js +6 -37
  31. package/dist/data/queries/insertEntity.min.js +1 -1
  32. package/dist/data/queries/joinEntity.js +0 -15
  33. package/dist/data/queries/joinEntity.min.js +1 -1
  34. package/dist/data/queries/parser.js +0 -2
  35. package/dist/data/queries/parser.min.js +1 -1
  36. package/dist/data/queries/selectFields.js +0 -3
  37. package/dist/data/queries/selectFields.min.js +1 -1
  38. package/dist/data/queries/showRecords.js +0 -2
  39. package/dist/data/queries/showRecords.min.js +1 -1
  40. package/dist/data/queries/updateEntity.js +0 -4
  41. package/dist/data/queries/updateEntity.min.js +1 -1
  42. package/dist/data/queries/where.js +0 -4
  43. package/dist/data/queries/where.min.js +1 -1
  44. package/dist/data/storage/databases.js +1 -2
  45. package/dist/data/storage/databases.min.js +1 -1
  46. package/dist/data/storage/listFiles.js +0 -2
  47. package/dist/data/storage/listFiles.min.js +1 -1
  48. package/dist/data/storage/readCache.js +0 -13
  49. package/dist/data/storage/readCache.min.js +1 -1
  50. package/dist/data/storage/readJson.js +2 -2
  51. package/dist/data/storage/readJson.min.js +1 -1
  52. package/dist/data/storage/storagePath.js +0 -1
  53. package/dist/data/storage/storagePath.min.js +1 -1
  54. package/dist/data/storage/writeSet.js +0 -32
  55. package/dist/data/storage/writeSet.min.js +1 -1
  56. package/dist/data/utilities/computeKeyValue.js +0 -2
  57. package/dist/data/utilities/computeKeyValue.min.js +1 -1
  58. package/dist/data/utilities/conditionEntities.js +0 -20
  59. package/dist/data/utilities/conditionEntities.min.js +1 -1
  60. package/dist/data/utilities/conditionTree.js +0 -3
  61. package/dist/data/utilities/conditionTree.min.js +1 -1
  62. package/dist/data/utilities/config.d.ts +11 -0
  63. package/dist/data/utilities/config.js +15 -1
  64. package/dist/data/utilities/config.min.js +1 -1
  65. package/dist/data/utilities/databaseLock.js +0 -14
  66. package/dist/data/utilities/databaseLock.min.js +1 -1
  67. package/dist/data/utilities/deregisterRecord.js +0 -2
  68. package/dist/data/utilities/deregisterRecord.min.js +1 -1
  69. package/dist/data/utilities/fieldType.js +0 -2
  70. package/dist/data/utilities/fieldType.min.js +1 -1
  71. package/dist/data/utilities/getConditionIndexedList.js +0 -20
  72. package/dist/data/utilities/getConditionIndexedList.min.js +1 -1
  73. package/dist/data/utilities/indexBuffer.js +0 -33
  74. package/dist/data/utilities/indexBuffer.min.js +1 -1
  75. package/dist/data/utilities/indexHas.js +0 -3
  76. package/dist/data/utilities/indexHas.min.js +1 -1
  77. package/dist/data/utilities/joinBases.js +0 -33
  78. package/dist/data/utilities/joinBases.min.js +1 -1
  79. package/dist/data/utilities/keyIndexFiles.js +0 -19
  80. package/dist/data/utilities/keyIndexFiles.min.js +1 -1
  81. package/dist/data/utilities/knownFields.js +0 -21
  82. package/dist/data/utilities/knownFields.min.js +1 -1
  83. package/dist/data/utilities/mergeJoin.js +0 -2
  84. package/dist/data/utilities/mergeJoin.min.js +1 -1
  85. package/dist/data/utilities/packedTable.js +0 -3
  86. package/dist/data/utilities/packedTable.min.js +1 -1
  87. package/dist/data/utilities/parsers/findConditions.js +0 -2
  88. package/dist/data/utilities/parsers/findConditions.min.js +1 -1
  89. package/dist/data/utilities/parsers/findGroupBy.js +0 -2
  90. package/dist/data/utilities/parsers/findGroupBy.min.js +1 -1
  91. package/dist/data/utilities/parsers/maskStrings.js +0 -3
  92. package/dist/data/utilities/parsers/maskStrings.min.js +1 -1
  93. package/dist/data/utilities/parsers/parseCreate.js +0 -21
  94. package/dist/data/utilities/parsers/parseCreate.min.js +1 -1
  95. package/dist/data/utilities/parsers/splitClauses.js +0 -16
  96. package/dist/data/utilities/parsers/splitClauses.min.js +1 -1
  97. package/dist/data/utilities/parsers/splitQueries.js +0 -3
  98. package/dist/data/utilities/parsers/splitQueries.min.js +1 -1
  99. package/dist/data/utilities/reconcileJoin.d.ts +12 -0
  100. package/dist/data/utilities/reconcileJoin.js +28 -12
  101. package/dist/data/utilities/reconcileJoin.min.js +1 -1
  102. package/dist/data/utilities/removeFromIndex.js +0 -3
  103. package/dist/data/utilities/removeFromIndex.min.js +1 -1
  104. package/dist/data/utilities/requireNode.js +0 -1
  105. package/dist/data/utilities/requireNode.min.js +1 -1
  106. package/dist/data/utilities/retrieveRecord.js +0 -1
  107. package/dist/data/utilities/retrieveRecord.min.js +1 -1
  108. package/dist/data/utilities/retrieveRecords.js +0 -16
  109. package/dist/data/utilities/retrieveRecords.min.js +1 -1
  110. package/dist/data/utilities/rowLookup.js +0 -15
  111. package/dist/data/utilities/rowLookup.min.js +1 -1
  112. package/dist/data/utilities/runQuery.js +0 -16
  113. package/dist/data/utilities/runQuery.min.js +1 -1
  114. package/dist/data/utilities/semiJoin.js +0 -19
  115. package/dist/data/utilities/semiJoin.min.js +1 -1
  116. package/dist/data/utilities/updateIndex.js +0 -2
  117. package/dist/data/utilities/updateIndex.min.js +1 -1
  118. package/dist/index.js +0 -4
  119. package/dist/index.min.js +1 -1
  120. package/package.json +4 -4
@@ -4,22 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.retrieveRecords = exports.retrieveEntryRows = exports.retrieveEntry = void 0;
7
- require("core-js/modules/esnext.iterator.constructor.js");
8
- require("core-js/modules/esnext.iterator.filter.js");
9
- require("core-js/modules/esnext.iterator.map.js");
10
- require("core-js/modules/esnext.map.delete-all.js");
11
- require("core-js/modules/esnext.map.every.js");
12
- require("core-js/modules/esnext.map.filter.js");
13
- require("core-js/modules/esnext.map.find.js");
14
- require("core-js/modules/esnext.map.find-key.js");
15
- require("core-js/modules/esnext.map.includes.js");
16
- require("core-js/modules/esnext.map.key-of.js");
17
- require("core-js/modules/esnext.map.map-keys.js");
18
- require("core-js/modules/esnext.map.map-values.js");
19
- require("core-js/modules/esnext.map.merge.js");
20
- require("core-js/modules/esnext.map.reduce.js");
21
- require("core-js/modules/esnext.map.some.js");
22
- require("core-js/modules/esnext.map.update.js");
23
7
  var _retrieveFile = require("./retrieveFile");
24
8
  var _retrieveRecord = require("./retrieveRecord");
25
9
  var _retrieveFiles = require("./retrieveFiles");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.retrieveRecords=exports.retrieveEntryRows=exports.retrieveEntry=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js"),require("core-js/modules/esnext.iterator.map.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js");var _retrieveFile=require("./retrieveFile"),_retrieveRecord=require("./retrieveRecord"),_retrieveFiles=require("./retrieveFiles"),_packedTable=require("./packedTable"),_config=require("./config");const retrieveEntry=async e=>{const r=await(0,_retrieveFile.retrieveFile)(e).catch((e=>console.error(e)));if(!r)throw new Error(`Could not read entity ${e.slice(e.lastIndexOf("/")+1)}`);return r};exports.retrieveEntry=retrieveEntry;const retrieveEntryRows=async(e,r,s=retrieveEntry)=>{const t=r.length>(0,_config.getSetting)("readConcurrency",16)?await(0,_packedTable.retrievePacked)(e):void 0;if(!t)return(0,_retrieveFiles.retrieveFiles)(r.map((r=>`${e.path}/${r}`)),s);const i=new Map(t.entries.map(((e,r)=>[e,r]))),o=r.filter((e=>!i.has(e))),n=o.length?await(0,_retrieveFiles.retrieveFiles)(o.map((r=>`${e.path}/${r}`)),s):[],a=new Map(o.map(((e,r)=>[e,n[r]])));return r.map((e=>i.has(e)?t.rows[i.get(e)]:a.get(e)))};exports.retrieveEntryRows=retrieveEntryRows;const retrieveRecords=async(e="")=>{const r=await(0,_retrieveRecord.retrieveRecord)(e);return retrieveEntryRows(r,r.entries)};exports.retrieveRecords=retrieveRecords;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.retrieveRecords=exports.retrieveEntryRows=exports.retrieveEntry=void 0;var _retrieveFile=require("./retrieveFile"),_retrieveRecord=require("./retrieveRecord"),_retrieveFiles=require("./retrieveFiles"),_packedTable=require("./packedTable"),_config=require("./config");const retrieveEntry=async e=>{const r=await(0,_retrieveFile.retrieveFile)(e).catch((e=>console.error(e)));if(!r)throw new Error(`Could not read entity ${e.slice(e.lastIndexOf("/")+1)}`);return r};exports.retrieveEntry=retrieveEntry;const retrieveEntryRows=async(e,r,t=retrieveEntry)=>{const i=r.length>(0,_config.getSetting)("readConcurrency",16)?await(0,_packedTable.retrievePacked)(e):void 0;if(!i)return(0,_retrieveFiles.retrieveFiles)(r.map((r=>`${e.path}/${r}`)),t);const o=new Map(i.entries.map(((e,r)=>[e,r]))),s=r.filter((e=>!o.has(e))),n=s.length?await(0,_retrieveFiles.retrieveFiles)(s.map((r=>`${e.path}/${r}`)),t):[],a=new Map(s.map(((e,r)=>[e,n[r]])));return r.map((e=>o.has(e)?i.rows[o.get(e)]:a.get(e)))};exports.retrieveEntryRows=retrieveEntryRows;const retrieveRecords=async(e="")=>{const r=await(0,_retrieveRecord.retrieveRecord)(e);return retrieveEntryRows(r,r.entries)};exports.retrieveRecords=retrieveRecords;
@@ -4,21 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.groupRows = exports.firstPositions = exports.RowLookups = void 0;
7
- require("core-js/modules/esnext.iterator.constructor.js");
8
- require("core-js/modules/esnext.iterator.for-each.js");
9
- require("core-js/modules/esnext.map.delete-all.js");
10
- require("core-js/modules/esnext.map.every.js");
11
- require("core-js/modules/esnext.map.filter.js");
12
- require("core-js/modules/esnext.map.find.js");
13
- require("core-js/modules/esnext.map.find-key.js");
14
- require("core-js/modules/esnext.map.includes.js");
15
- require("core-js/modules/esnext.map.key-of.js");
16
- require("core-js/modules/esnext.map.map-keys.js");
17
- require("core-js/modules/esnext.map.map-values.js");
18
- require("core-js/modules/esnext.map.merge.js");
19
- require("core-js/modules/esnext.map.reduce.js");
20
- require("core-js/modules/esnext.map.some.js");
21
- require("core-js/modules/esnext.map.update.js");
22
7
  var _joinKey = require("./joinKey");
23
8
  /**
24
9
  * Rows grouped by their join key on one field (see joinKey), each group in the rows' order. Rows whose field is null or
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.groupRows=exports.firstPositions=exports.RowLookups=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js");var _joinKey=require("./joinKey");const groupRows=(e,s,o)=>{const r=new Map;for(const t of e){const e=(0,_joinKey.joinKey)(o,t[s]);if(void 0===e)continue;const i=r.get(e);i?i.push(t):r.set(e,[t])}return r};exports.groupRows=groupRows;const firstPositions=(e,s,o)=>{const r=new Map;return e.forEach(((e,t)=>{const i=(0,_joinKey.joinKey)(o,e[s]);void 0===i||r.has(i)||r.set(i,t)})),r};exports.firstPositions=firstPositions;class RowLookups{constructor(e){this.rows=e,this.groups=new Map,this.positions=new Map}groupsBy(e,s){const o=`${e}\0${s}`;return this.groups.has(o)||this.groups.set(o,groupRows(this.rows,e,s)),this.groups.get(o)}positionsBy(e,s){const o=`${e}\0${s}`;return this.positions.has(o)||this.positions.set(o,firstPositions(this.rows,e,s)),this.positions.get(o)}}exports.RowLookups=RowLookups;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.groupRows=exports.firstPositions=exports.RowLookups=void 0;var _joinKey=require("./joinKey");const groupRows=(o,s,t)=>{const i=new Map;for(const r of o){const o=(0,_joinKey.joinKey)(t,r[s]);if(void 0===o)continue;const e=i.get(o);e?e.push(r):i.set(o,[r])}return i};exports.groupRows=groupRows;const firstPositions=(o,s,t)=>{const i=new Map;return o.forEach(((o,r)=>{const e=(0,_joinKey.joinKey)(t,o[s]);void 0===e||i.has(e)||i.set(e,r)})),i};exports.firstPositions=firstPositions;class RowLookups{constructor(o){this.rows=o,this.groups=new Map,this.positions=new Map}groupsBy(o,s){const t=`${o}\0${s}`;return this.groups.has(t)||this.groups.set(t,groupRows(this.rows,o,s)),this.groups.get(t)}positionsBy(o,s){const t=`${o}\0${s}`;return this.positions.has(t)||this.positions.set(t,firstPositions(this.rows,o,s)),this.positions.get(t)}}exports.RowLookups=RowLookups;
@@ -5,22 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.runQuery = void 0;
7
7
  require("core-js/modules/es.array.includes.js");
8
- require("core-js/modules/esnext.set.add-all.js");
9
- require("core-js/modules/esnext.set.delete-all.js");
10
- require("core-js/modules/esnext.set.difference.js");
11
- require("core-js/modules/esnext.set.every.js");
12
- require("core-js/modules/esnext.set.filter.js");
13
- require("core-js/modules/esnext.set.find.js");
14
- require("core-js/modules/esnext.set.intersection.js");
15
- require("core-js/modules/esnext.set.is-disjoint-from.js");
16
- require("core-js/modules/esnext.set.is-subset-of.js");
17
- require("core-js/modules/esnext.set.is-superset-of.js");
18
- require("core-js/modules/esnext.set.join.js");
19
- require("core-js/modules/esnext.set.map.js");
20
- require("core-js/modules/esnext.set.reduce.js");
21
- require("core-js/modules/esnext.set.some.js");
22
- require("core-js/modules/esnext.set.symmetric-difference.js");
23
- require("core-js/modules/esnext.set.union.js");
24
8
  var _deleteEntity = require("../queries/deleteEntity");
25
9
  var _insertEntity = require("../queries/insertEntity");
26
10
  var _readEntity = require("../queries/readEntity");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runQuery=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var _deleteEntity=require("../queries/deleteEntity"),_insertEntity=require("../queries/insertEntity"),_readEntity=require("../queries/readEntity"),_updateEntity=require("../queries/updateEntity"),_createRecord=require("../queries/createRecord"),_dropRecord=require("../queries/dropRecord"),_describeRecord=require("../queries/describeRecord"),_alter=require("../introspect/alter"),_databaseStatements=require("../queries/databaseStatements"),_showRecords=require("../queries/showRecords"),_joinEntity=require("../queries/joinEntity"),_mergeJoins=require("../queries/mergeJoins"),_where=require("../queries/where"),_sortBy=require("../queries/sortBy"),_groupBy=require("../queries/groupBy"),_limitOffset=require("../queries/limitOffset"),_selectFields=require("../queries/selectFields"),_retrieveRecord=require("./retrieveRecord"),_getConditionIndexedList=require("./getConditionIndexedList"),_isEntityProperty=require("./parsers/isEntityProperty"),_splitEntityProperty=require("./parsers/splitEntityProperty"),_fieldType=require("./fieldType"),_conditionTree=require("./conditionTree"),_conditionEntities=require("./conditionEntities"),_requireNode=require("./requireNode"),_knownFields=require("./knownFields");const typeClauses=async(e,t)=>{for(const r of[...(0,_conditionTree.conditionsOf)(e.where),...e.sortClauses]){let i=e.entity,s=r.property;(0,_isEntityProperty.isEntityProperty)(s)&&({entity:i,property:s}=(0,_splitEntityProperty.splitEntityProperty)(s)),Object.prototype.hasOwnProperty.call(t,i)||(t[i]=await(0,_retrieveRecord.retrieveRecord)(i)),r.type=(0,_fieldType.fieldType)(t[i],s)}},runQuery=async e=>{const t=void 0!==e.where&&(0,_conditionEntities.conditionEntities)(e);switch(["insert","update","delete","create","drop","alter"].includes(e.command)&&(0,_requireNode.requireNode)(`"${e.command}"`),e.command){case"create":return{[e.entity]:await(0,_createRecord.createRecord)(e.entity,e.create)};case"drop":return{[e.entity]:await(0,_dropRecord.dropRecord)(e.entity,e.ifExists)};case"describe":return{[e.entity]:await(0,_describeRecord.describeRecord)(e.entity)};case"alter":return{[e.entity]:await(0,_alter.alter)(e.entity,e.alter)};case"create database":return{[e.entity]:await(0,_databaseStatements.createDatabase)(e.entity,e.ifNotExists)};case"drop database":return{[e.entity]:await(0,_databaseStatements.dropDatabase)(e.entity,e.ifExists)};case"use":return{[e.entity]:await(0,_databaseStatements.useDatabase)(e.entity)};case"show databases":return{[e.entity]:await(0,_databaseStatements.showDatabases)()};case"show":return{[e.entity]:await(0,_showRecords.showRecords)()}}const r={[e.entity]:await(0,_retrieveRecord.retrieveRecord)(e.entity)};void 0!==e.joinEntity&&(r[e.joinEntity]=await(0,_retrieveRecord.retrieveRecord)(e.joinEntity)),await(0,_knownFields.assertKnownFields)(e,r),await typeClauses(e,r);let i={[e.entity]:[]};const s=new Set;e=await(0,_getConditionIndexedList.getConditionIndexedList)(e,r,i,s);const n=s.has(e.entity);switch("delete"!==e.command&&"update"!==e.command||(n||(i=await(0,_readEntity.readEntity)(e.entity,i)),i[e.entity]=(0,_where.whereTree)(i[e.entity],e.where)),e.command){case"delete":i=await(0,_deleteEntity.deleteEntity)(e.entity,i);break;case"insert":i=await(0,_insertEntity.insertEntity)(e.entity,e.insertValues,i);break;case"read":n||(i=await(0,_readEntity.readEntity)(e.entity,i));break;case"update":i=await(0,_updateEntity.updateEntity)(e.entity,e.updateValues,i);break;default:throw new Error(`Unknown command: ${e.command}`)}return i=await(0,_joinEntity.joinEntity)(e.entity,e.joinEntity,i,e.joinClauses,n,s.has(e.joinEntity)),i=await(0,_mergeJoins.mergeJoins)(i,e.mergeJoins),"delete"!==e.command&&"update"!==e.command&&(i[e.entity]=(0,_where.whereTree)(i[e.entity],e.where,t?e.joinEntity:void 0)),i[e.entity]=(0,_sortBy.sortBy)(i[e.entity],e.sortClauses),i[e.entity]=(0,_groupBy.groupBy)(i[e.entity],e.groupBy),i[e.entity]=(0,_limitOffset.limitOffset)(i[e.entity],e.offset,e.limit),i[e.entity]=(0,_selectFields.selectFields)(i[e.entity],e.selectClauses,Boolean(e.groupBy?.length),e.entity),i};exports.runQuery=runQuery;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runQuery=void 0,require("core-js/modules/es.array.includes.js");var _deleteEntity=require("../queries/deleteEntity"),_insertEntity=require("../queries/insertEntity"),_readEntity=require("../queries/readEntity"),_updateEntity=require("../queries/updateEntity"),_createRecord=require("../queries/createRecord"),_dropRecord=require("../queries/dropRecord"),_describeRecord=require("../queries/describeRecord"),_alter=require("../introspect/alter"),_databaseStatements=require("../queries/databaseStatements"),_showRecords=require("../queries/showRecords"),_joinEntity=require("../queries/joinEntity"),_mergeJoins=require("../queries/mergeJoins"),_where=require("../queries/where"),_sortBy=require("../queries/sortBy"),_groupBy=require("../queries/groupBy"),_limitOffset=require("../queries/limitOffset"),_selectFields=require("../queries/selectFields"),_retrieveRecord=require("./retrieveRecord"),_getConditionIndexedList=require("./getConditionIndexedList"),_isEntityProperty=require("./parsers/isEntityProperty"),_splitEntityProperty=require("./parsers/splitEntityProperty"),_fieldType=require("./fieldType"),_conditionTree=require("./conditionTree"),_conditionEntities=require("./conditionEntities"),_requireNode=require("./requireNode"),_knownFields=require("./knownFields");const typeClauses=async(e,t)=>{for(const r of[...(0,_conditionTree.conditionsOf)(e.where),...e.sortClauses]){let i=e.entity,n=r.property;(0,_isEntityProperty.isEntityProperty)(n)&&({entity:i,property:n}=(0,_splitEntityProperty.splitEntityProperty)(n)),Object.prototype.hasOwnProperty.call(t,i)||(t[i]=await(0,_retrieveRecord.retrieveRecord)(i)),r.type=(0,_fieldType.fieldType)(t[i],n)}},runQuery=async e=>{const t=void 0!==e.where&&(0,_conditionEntities.conditionEntities)(e);switch(["insert","update","delete","create","drop","alter"].includes(e.command)&&(0,_requireNode.requireNode)(`"${e.command}"`),e.command){case"create":return{[e.entity]:await(0,_createRecord.createRecord)(e.entity,e.create)};case"drop":return{[e.entity]:await(0,_dropRecord.dropRecord)(e.entity,e.ifExists)};case"describe":return{[e.entity]:await(0,_describeRecord.describeRecord)(e.entity)};case"alter":return{[e.entity]:await(0,_alter.alter)(e.entity,e.alter)};case"create database":return{[e.entity]:await(0,_databaseStatements.createDatabase)(e.entity,e.ifNotExists)};case"drop database":return{[e.entity]:await(0,_databaseStatements.dropDatabase)(e.entity,e.ifExists)};case"use":return{[e.entity]:await(0,_databaseStatements.useDatabase)(e.entity)};case"show databases":return{[e.entity]:await(0,_databaseStatements.showDatabases)()};case"show":return{[e.entity]:await(0,_showRecords.showRecords)()}}const r={[e.entity]:await(0,_retrieveRecord.retrieveRecord)(e.entity)};void 0!==e.joinEntity&&(r[e.joinEntity]=await(0,_retrieveRecord.retrieveRecord)(e.joinEntity)),await(0,_knownFields.assertKnownFields)(e,r),await typeClauses(e,r);let i={[e.entity]:[]};const n=new Set;e=await(0,_getConditionIndexedList.getConditionIndexedList)(e,r,i,n);const s=n.has(e.entity);switch("delete"!==e.command&&"update"!==e.command||(s||(i=await(0,_readEntity.readEntity)(e.entity,i)),i[e.entity]=(0,_where.whereTree)(i[e.entity],e.where)),e.command){case"delete":i=await(0,_deleteEntity.deleteEntity)(e.entity,i);break;case"insert":i=await(0,_insertEntity.insertEntity)(e.entity,e.insertValues,i);break;case"read":s||(i=await(0,_readEntity.readEntity)(e.entity,i));break;case"update":i=await(0,_updateEntity.updateEntity)(e.entity,e.updateValues,i);break;default:throw new Error(`Unknown command: ${e.command}`)}return i=await(0,_joinEntity.joinEntity)(e.entity,e.joinEntity,i,e.joinClauses,s,n.has(e.joinEntity)),i=await(0,_mergeJoins.mergeJoins)(i,e.mergeJoins),"delete"!==e.command&&"update"!==e.command&&(i[e.entity]=(0,_where.whereTree)(i[e.entity],e.where,t?e.joinEntity:void 0)),i[e.entity]=(0,_sortBy.sortBy)(i[e.entity],e.sortClauses),i[e.entity]=(0,_groupBy.groupBy)(i[e.entity],e.groupBy),i[e.entity]=(0,_limitOffset.limitOffset)(i[e.entity],e.offset,e.limit),i[e.entity]=(0,_selectFields.selectFields)(i[e.entity],e.selectClauses,Boolean(e.groupBy?.length),e.entity),i};exports.runQuery=runQuery;
@@ -4,25 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.semiJoin = void 0;
7
- require("core-js/modules/esnext.iterator.constructor.js");
8
- require("core-js/modules/esnext.iterator.for-each.js");
9
- require("core-js/modules/esnext.iterator.map.js");
10
- require("core-js/modules/esnext.set.add-all.js");
11
- require("core-js/modules/esnext.set.delete-all.js");
12
- require("core-js/modules/esnext.set.difference.js");
13
- require("core-js/modules/esnext.set.every.js");
14
- require("core-js/modules/esnext.set.filter.js");
15
- require("core-js/modules/esnext.set.find.js");
16
- require("core-js/modules/esnext.set.intersection.js");
17
- require("core-js/modules/esnext.set.is-disjoint-from.js");
18
- require("core-js/modules/esnext.set.is-subset-of.js");
19
- require("core-js/modules/esnext.set.is-superset-of.js");
20
- require("core-js/modules/esnext.set.join.js");
21
- require("core-js/modules/esnext.set.map.js");
22
- require("core-js/modules/esnext.set.reduce.js");
23
- require("core-js/modules/esnext.set.some.js");
24
- require("core-js/modules/esnext.set.symmetric-difference.js");
25
- require("core-js/modules/esnext.set.union.js");
26
7
  var _where = require("../queries/where");
27
8
  var _joinKey = require("./joinKey");
28
9
  var _rowLookup = require("./rowLookup");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.semiJoin=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/modules/esnext.iterator.map.js"),require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var _where=require("../queries/where"),_joinKey=require("./joinKey"),_rowLookup=require("./rowLookup");const semiJoin=(e,s,o,r,t,i)=>{if("="===t&&(0,_joinKey.isKeyedType)(i)){if(s.lookups&&e.rows.length<s.rows.length){const t=s.lookups.positionsBy(r,i),n=[];return e.rows.forEach(((e,s)=>{const r=t.get((0,_joinKey.joinKey)(i,e[o]));void 0!==r&&n.push({row:e,position:r,index:s})})),n.sort(((e,s)=>e.position-s.position||e.index-s.index)).map((({row:e})=>e))}const t=e.lookups?e.lookups.groupsBy(o,i):(0,_rowLookup.groupRows)(e.rows,o,i),n=[],u=new Set;for(const e of s.rows){const s=(0,_joinKey.joinKey)(i,e[r]);if(void 0===s||u.has(s))continue;u.add(s);const o=t.get(s);o&&n.push(...o)}return n}const n=[],u=new Set;for(const j of s.rows)for(const s of(0,_where.where)(e.rows,{property:o,comparator:t,value:j[r],type:i}))u.has(s)||(u.add(s),n.push(s));return n};exports.semiJoin=semiJoin;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.semiJoin=void 0;var _where=require("../queries/where"),_joinKey=require("./joinKey"),_rowLookup=require("./rowLookup");const semiJoin=(o,e,r,s,i,n)=>{if("="===i&&(0,_joinKey.isKeyedType)(n)){if(e.lookups&&o.rows.length<e.rows.length){const i=e.lookups.positionsBy(s,n),t=[];return o.rows.forEach(((o,e)=>{const s=i.get((0,_joinKey.joinKey)(n,o[r]));void 0!==s&&t.push({row:o,position:s,index:e})})),t.sort(((o,e)=>o.position-e.position||o.index-e.index)).map((({row:o})=>o))}const i=o.lookups?o.lookups.groupsBy(r,n):(0,_rowLookup.groupRows)(o.rows,r,n),t=[],p=new Set;for(const o of e.rows){const e=(0,_joinKey.joinKey)(n,o[s]);if(void 0===e||p.has(e))continue;p.add(e);const r=i.get(e);r&&t.push(...r)}return t}const t=[],p=new Set;for(const u of e.rows)for(const e of(0,_where.where)(o.rows,{property:r,comparator:i,value:u[s],type:n}))p.has(e)||(p.add(e),t.push(e));return t};exports.semiJoin=semiJoin;
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.updateIndex = void 0;
7
7
  require("core-js/modules/es.array.includes.js");
8
- require("core-js/modules/esnext.iterator.constructor.js");
9
- require("core-js/modules/esnext.iterator.find.js");
10
8
  var _compareAs = require("./compareAs");
11
9
  var _storage = require("../storage");
12
10
  /**
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.updateIndex=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js");var _compareAs=require("./compareAs"),_storage=require("../storage");const updateIndex=async(e="",r=null,o=void 0,s="",t=void 0)=>{if(!r||!r.lookup)return null;const a=`__indexes/${e}`,u=`${a}/${r.lookup}`;let d=[];try{d=await(0,_storage.readJson)(u)}catch(e){d=[]}const i=d.find((e=>(0,_compareAs.sameValue)(t,e.value,o)));return i?i.record.includes(s)||i.record.push(s):d.push({value:o,record:[s]}),await(0,_storage.makeDirectory)(a),await(0,_storage.writeJson)(u,d),d};exports.updateIndex=updateIndex;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.updateIndex=void 0,require("core-js/modules/es.array.includes.js");var _compareAs=require("./compareAs"),_storage=require("../storage");const updateIndex=async(e="",r=null,o=void 0,a="",s=void 0)=>{if(!r||!r.lookup)return null;const t=`__indexes/${e}`,u=`${t}/${r.lookup}`;let d=[];try{d=await(0,_storage.readJson)(u)}catch(e){d=[]}const n=d.find((e=>(0,_compareAs.sameValue)(s,e.value,o)));return n?n.record.includes(a)||n.record.push(a):d.push({value:o,record:[a]}),await(0,_storage.makeDirectory)(t),await(0,_storage.writeJson)(u,d),d};exports.updateIndex=updateIndex;
package/dist/index.js CHANGED
@@ -1,9 +1,5 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/esnext.async-iterator.constructor.js");
4
- require("core-js/modules/esnext.async-iterator.drop.js");
5
- require("core-js/modules/esnext.iterator.constructor.js");
6
- require("core-js/modules/esnext.iterator.drop.js");
7
3
  Object.defineProperty(exports, "__esModule", {
8
4
  value: true
9
5
  });
package/dist/index.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";require("core-js/modules/esnext.async-iterator.constructor.js"),require("core-js/modules/esnext.async-iterator.drop.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.drop.js"),Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"alter",{enumerable:!0,get:function(){return _introspect.alter}}),Object.defineProperty(exports,"checkPacked",{enumerable:!0,get:function(){return _introspect.checkPacked}}),Object.defineProperty(exports,"configure",{enumerable:!0,get:function(){return _config.configure}}),Object.defineProperty(exports,"create",{enumerable:!0,get:function(){return _introspect.create}}),Object.defineProperty(exports,"describe",{enumerable:!0,get:function(){return _introspect.describe}}),Object.defineProperty(exports,"drop",{enumerable:!0,get:function(){return _introspect.drop}}),Object.defineProperty(exports,"formatDatabase",{enumerable:!0,get:function(){return _introspect.formatDatabase}}),Object.defineProperty(exports,"packDatabase",{enumerable:!0,get:function(){return _introspect.packDatabase}}),Object.defineProperty(exports,"query",{enumerable:!0,get:function(){return _query.query}}),Object.defineProperty(exports,"queryStatus",{enumerable:!0,get:function(){return _queryStatus.queryStatus}}),Object.defineProperty(exports,"quote",{enumerable:!0,get:function(){return _quote.quote}});var _query=require("./data/queries/query"),_quote=require("./data/queries/quote"),_queryStatus=require("./data/queries/queryStatus"),_introspect=require("./data/introspect"),_config=require("./data/utilities/config");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"alter",{enumerable:!0,get:function(){return _introspect.alter}}),Object.defineProperty(exports,"checkPacked",{enumerable:!0,get:function(){return _introspect.checkPacked}}),Object.defineProperty(exports,"configure",{enumerable:!0,get:function(){return _config.configure}}),Object.defineProperty(exports,"create",{enumerable:!0,get:function(){return _introspect.create}}),Object.defineProperty(exports,"describe",{enumerable:!0,get:function(){return _introspect.describe}}),Object.defineProperty(exports,"drop",{enumerable:!0,get:function(){return _introspect.drop}}),Object.defineProperty(exports,"formatDatabase",{enumerable:!0,get:function(){return _introspect.formatDatabase}}),Object.defineProperty(exports,"packDatabase",{enumerable:!0,get:function(){return _introspect.packDatabase}}),Object.defineProperty(exports,"query",{enumerable:!0,get:function(){return _query.query}}),Object.defineProperty(exports,"queryStatus",{enumerable:!0,get:function(){return _queryStatus.queryStatus}}),Object.defineProperty(exports,"quote",{enumerable:!0,get:function(){return _quote.quote}});var _query=require("./data/queries/query"),_quote=require("./data/queries/quote"),_queryStatus=require("./data/queries/queryStatus"),_introspect=require("./data/introspect"),_config=require("./data/utilities/config");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-fs-query",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "A git-native JSON data store for static sites: JSON files with a schema, enforced keys and a SQL-like query language, read straight from static hosting.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -50,8 +50,8 @@
50
50
  "devDependencies": {
51
51
  "@babel/core": "^8.1.0",
52
52
  "gulp": "^5.0.1",
53
- "js-build-tools": "^8.0.0",
54
- "playwright": "~1.64.1",
53
+ "js-build-tools": "^8.2.0",
54
+ "playwright": "^1.65.0",
55
55
  "release-it": "^21.1.1",
56
56
  "test-filesystem": "^2.0.2",
57
57
  "typedoc": "^0.28.20"
@@ -59,7 +59,7 @@
59
59
  "dependencies": {
60
60
  "browser-or-node": "^3.0.0",
61
61
  "core-js": "^3.51.0",
62
- "si-funciona": "^2.8.0"
62
+ "si-funciona": "^2.10.0"
63
63
  },
64
64
  "standard": {
65
65
  "env": [