@wxn0brp/db 0.0.5 → 0.0.6

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 (226) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/CollectionManager.d.ts +43 -0
  3. package/dist/cjs/CollectionManager.js +59 -0
  4. package/dist/cjs/action.d.ts +71 -0
  5. package/dist/cjs/action.js +199 -0
  6. package/dist/cjs/database.d.ts +77 -0
  7. package/dist/cjs/database.js +118 -0
  8. package/dist/cjs/executor.d.ts +28 -0
  9. package/{executor.js → dist/cjs/executor.js} +47 -54
  10. package/dist/cjs/file/find.d.ts +11 -0
  11. package/dist/cjs/file/find.js +80 -0
  12. package/dist/cjs/file/index.d.ts +3 -0
  13. package/dist/cjs/file/index.js +25 -0
  14. package/dist/cjs/file/remove.d.ts +7 -0
  15. package/dist/cjs/file/remove.js +61 -0
  16. package/dist/cjs/file/update.d.ts +7 -0
  17. package/dist/cjs/file/update.js +68 -0
  18. package/dist/cjs/file/utils.d.ts +8 -0
  19. package/dist/cjs/file/utils.js +23 -0
  20. package/dist/cjs/format.d.ts +18 -0
  21. package/dist/cjs/format.js +36 -0
  22. package/dist/cjs/gen.d.ts +5 -0
  23. package/dist/cjs/gen.js +78 -0
  24. package/dist/cjs/graph.d.ts +47 -0
  25. package/dist/cjs/graph.js +90 -0
  26. package/{index.d.ts → dist/cjs/index.d.ts} +2 -2
  27. package/dist/cjs/index.js +18 -0
  28. package/dist/cjs/relation.d.ts +64 -0
  29. package/{relation.js → dist/cjs/relation.js} +26 -45
  30. package/dist/cjs/remote/client/database.d.ts +71 -0
  31. package/dist/cjs/remote/client/database.js +145 -0
  32. package/dist/cjs/remote/client/function.d.ts +5 -0
  33. package/dist/cjs/remote/client/function.js +32 -0
  34. package/dist/cjs/remote/client/graph.d.ts +54 -0
  35. package/dist/cjs/remote/client/graph.js +93 -0
  36. package/dist/cjs/remote/client/remote.d.ts +16 -0
  37. package/dist/cjs/remote/client/remote.js +2 -0
  38. package/dist/cjs/remote/server/auth.d.ts +31 -0
  39. package/dist/cjs/remote/server/auth.js +99 -0
  40. package/dist/cjs/remote/server/db.d.ts +2 -0
  41. package/dist/cjs/remote/server/db.js +223 -0
  42. package/dist/cjs/remote/server/function.d.ts +2 -0
  43. package/dist/cjs/remote/server/function.js +89 -0
  44. package/dist/cjs/remote/server/graph.d.ts +2 -0
  45. package/dist/cjs/remote/server/graph.js +145 -0
  46. package/dist/cjs/remote/server/index.d.ts +1 -0
  47. package/dist/cjs/remote/server/index.js +66 -0
  48. package/dist/cjs/remote/server/initDataBases.d.ts +1 -0
  49. package/dist/cjs/remote/server/initDataBases.js +25 -0
  50. package/dist/cjs/remote/server/pathUtils.d.ts +1 -0
  51. package/dist/cjs/remote/server/pathUtils.js +12 -0
  52. package/dist/cjs/remote/server/secret.d.ts +1 -0
  53. package/dist/cjs/remote/server/secret.js +25 -0
  54. package/dist/cjs/remote/serverMgmt/index.d.ts +1 -0
  55. package/dist/cjs/remote/serverMgmt/index.js +87 -0
  56. package/dist/cjs/types/Id.d.ts +3 -0
  57. package/dist/cjs/types/Id.js +2 -0
  58. package/dist/cjs/types/arg.d.ts +6 -0
  59. package/dist/cjs/types/arg.js +2 -0
  60. package/dist/cjs/types/data.d.ts +4 -0
  61. package/dist/cjs/types/data.js +2 -0
  62. package/dist/cjs/types/options.d.ts +12 -0
  63. package/dist/cjs/types/options.js +2 -0
  64. package/dist/cjs/types/searchOpts.d.ts +61 -0
  65. package/dist/cjs/types/searchOpts.js +8 -0
  66. package/dist/cjs/types/types.d.ts +6 -0
  67. package/dist/cjs/types/types.js +2 -0
  68. package/dist/cjs/utils/hasFields.d.ts +8 -0
  69. package/dist/cjs/utils/hasFields.js +22 -0
  70. package/dist/cjs/utils/hasFieldsAdvanced.d.ts +5 -0
  71. package/dist/cjs/utils/hasFieldsAdvanced.js +182 -0
  72. package/dist/cjs/utils/updateFindObject.d.ts +11 -0
  73. package/dist/cjs/utils/updateFindObject.js +32 -0
  74. package/dist/cjs/utils/updateObject.d.ts +8 -0
  75. package/dist/cjs/utils/updateObject.js +18 -0
  76. package/dist/esm/CollectionManager.d.ts +43 -0
  77. package/dist/esm/CollectionManager.js +57 -0
  78. package/dist/esm/action.d.ts +71 -0
  79. package/dist/esm/action.js +194 -0
  80. package/dist/esm/database.d.ts +77 -0
  81. package/dist/esm/database.js +113 -0
  82. package/dist/esm/executor.d.ts +28 -0
  83. package/dist/esm/executor.js +45 -0
  84. package/dist/esm/file/find.d.ts +11 -0
  85. package/dist/esm/file/find.js +73 -0
  86. package/dist/esm/file/index.d.ts +3 -0
  87. package/{file → dist/esm/file}/index.js +1 -1
  88. package/dist/esm/file/remove.d.ts +7 -0
  89. package/dist/esm/file/remove.js +56 -0
  90. package/dist/esm/file/update.d.ts +7 -0
  91. package/dist/esm/file/update.js +63 -0
  92. package/dist/esm/file/utils.d.ts +8 -0
  93. package/{file → dist/esm/file}/utils.js +3 -11
  94. package/dist/esm/format.d.ts +18 -0
  95. package/{format.js → dist/esm/format.js} +29 -29
  96. package/dist/esm/gen.d.ts +5 -0
  97. package/dist/esm/gen.js +75 -0
  98. package/dist/esm/graph.d.ts +47 -0
  99. package/dist/esm/graph.js +85 -0
  100. package/dist/esm/index.d.ts +7 -0
  101. package/{index.js → dist/esm/index.js} +1 -9
  102. package/dist/esm/relation.d.ts +64 -0
  103. package/dist/esm/relation.js +65 -0
  104. package/dist/esm/remote/client/database.d.ts +71 -0
  105. package/dist/esm/remote/client/database.js +140 -0
  106. package/dist/esm/remote/client/function.d.ts +5 -0
  107. package/dist/esm/remote/client/function.js +30 -0
  108. package/dist/esm/remote/client/graph.d.ts +54 -0
  109. package/dist/esm/remote/client/graph.js +88 -0
  110. package/dist/esm/remote/client/remote.d.ts +16 -0
  111. package/dist/esm/remote/client/remote.js +1 -0
  112. package/dist/esm/remote/server/auth.d.ts +31 -0
  113. package/{remote → dist/esm/remote}/server/auth.js +31 -44
  114. package/dist/esm/remote/server/db.d.ts +2 -0
  115. package/dist/esm/remote/server/db.js +218 -0
  116. package/dist/esm/remote/server/function.d.ts +2 -0
  117. package/dist/esm/remote/server/function.js +87 -0
  118. package/dist/esm/remote/server/graph.d.ts +2 -0
  119. package/{remote → dist/esm/remote}/server/graph.js +62 -55
  120. package/dist/esm/remote/server/gui/css/main.css +130 -0
  121. package/dist/esm/remote/server/gui/css/scrool.css +81 -0
  122. package/dist/esm/remote/server/gui/css/style.css +61 -0
  123. package/dist/esm/remote/server/gui/favicon.svg +12 -0
  124. package/dist/esm/remote/server/gui/html/data.html +15 -0
  125. package/dist/esm/remote/server/gui/html/main.html +46 -0
  126. package/dist/esm/remote/server/gui/html/nav.html +25 -0
  127. package/dist/esm/remote/server/gui/html/popup.html +51 -0
  128. package/dist/esm/remote/server/gui/index.html +49 -0
  129. package/dist/esm/remote/server/gui/js/api.js +166 -0
  130. package/dist/esm/remote/server/gui/js/index.js +17 -0
  131. package/dist/esm/remote/server/gui/js/loadHTML.js +16 -0
  132. package/dist/esm/remote/server/gui/js/popUp.js +72 -0
  133. package/dist/esm/remote/server/gui/js/queryApi.js +51 -0
  134. package/dist/esm/remote/server/gui/js/queryDb.js +79 -0
  135. package/dist/esm/remote/server/gui/js/queryGraph.js +144 -0
  136. package/dist/esm/remote/server/gui/js/render.js +64 -0
  137. package/dist/esm/remote/server/gui/js/templates.js +31 -0
  138. package/dist/esm/remote/server/gui/js/utils.js +36 -0
  139. package/dist/esm/remote/server/gui/js/vars.js +9 -0
  140. package/dist/esm/remote/server/gui/libs/core.js +176 -0
  141. package/dist/esm/remote/server/gui/libs/d3.v7.min.js +2 -0
  142. package/dist/esm/remote/server/gui/libs/handlebars.min.js +29 -0
  143. package/dist/esm/remote/server/gui/libs/json5.min.js +1 -0
  144. package/dist/esm/remote/server/index.d.ts +1 -0
  145. package/dist/esm/remote/server/index.js +61 -0
  146. package/dist/esm/remote/server/initDataBases.d.ts +1 -0
  147. package/dist/esm/remote/server/initDataBases.js +20 -0
  148. package/dist/esm/remote/server/pathUtils.d.ts +1 -0
  149. package/{remote → dist/esm/remote}/server/pathUtils.js +2 -3
  150. package/dist/esm/remote/server/secret.d.ts +1 -0
  151. package/{remote → dist/esm/remote}/server/secret.js +3 -7
  152. package/dist/esm/remote/serverMgmt/index.d.ts +1 -0
  153. package/{remote → dist/esm/remote}/serverMgmt/index.js +27 -31
  154. package/dist/esm/types/Id.d.ts +3 -0
  155. package/dist/esm/types/Id.js +1 -0
  156. package/dist/esm/types/arg.d.ts +6 -0
  157. package/dist/esm/types/arg.js +1 -0
  158. package/dist/esm/types/data.d.ts +4 -0
  159. package/dist/esm/types/data.js +1 -0
  160. package/dist/esm/types/options.d.ts +12 -0
  161. package/dist/esm/types/options.js +1 -0
  162. package/dist/esm/types/searchOpts.d.ts +61 -0
  163. package/dist/esm/types/searchOpts.js +7 -0
  164. package/dist/esm/types/types.d.ts +6 -0
  165. package/dist/esm/types/types.js +1 -0
  166. package/dist/esm/utils/hasFields.d.ts +8 -0
  167. package/{utils → dist/esm/utils}/hasFields.js +4 -4
  168. package/dist/esm/utils/hasFieldsAdvanced.d.ts +5 -0
  169. package/dist/esm/utils/hasFieldsAdvanced.js +176 -0
  170. package/dist/esm/utils/updateFindObject.d.ts +11 -0
  171. package/{utils → dist/esm/utils}/updateFindObject.js +11 -16
  172. package/dist/esm/utils/updateObject.d.ts +8 -0
  173. package/{utils → dist/esm/utils}/updateObject.js +4 -4
  174. package/package.json +55 -36
  175. package/CollectionManager.js +0 -119
  176. package/action.js +0 -258
  177. package/database.d.ts +0 -44
  178. package/database.js +0 -203
  179. package/docs/database.md +0 -140
  180. package/docs/graph.md +0 -86
  181. package/docs/relation.md +0 -51
  182. package/docs/remote.md +0 -30
  183. package/docs/remote_server.md +0 -35
  184. package/docs/search_opts.md +0 -227
  185. package/file/find.js +0 -89
  186. package/file/remove.js +0 -74
  187. package/file/update.js +0 -83
  188. package/gen.d.ts +0 -1
  189. package/gen.js +0 -97
  190. package/graph.d.ts +0 -27
  191. package/graph.js +0 -140
  192. package/relation.d.ts +0 -23
  193. package/remote/client/database.d.ts +0 -41
  194. package/remote/client/database.js +0 -228
  195. package/remote/client/graph.d.ts +0 -31
  196. package/remote/client/graph.js +0 -148
  197. package/remote/server/db.js +0 -197
  198. package/remote/server/function.js +0 -43
  199. package/remote/server/index.js +0 -63
  200. package/remote/server/initDataBases.js +0 -20
  201. package/test/hasFieldsAdvanced.test.js +0 -70
  202. package/utils/hasFieldsAdvanced.js +0 -184
  203. /package/{remote → dist/cjs/remote}/server/gui/css/main.css +0 -0
  204. /package/{remote → dist/cjs/remote}/server/gui/css/scrool.css +0 -0
  205. /package/{remote → dist/cjs/remote}/server/gui/css/style.css +0 -0
  206. /package/{remote → dist/cjs/remote}/server/gui/favicon.svg +0 -0
  207. /package/{remote → dist/cjs/remote}/server/gui/html/data.html +0 -0
  208. /package/{remote → dist/cjs/remote}/server/gui/html/main.html +0 -0
  209. /package/{remote → dist/cjs/remote}/server/gui/html/nav.html +0 -0
  210. /package/{remote → dist/cjs/remote}/server/gui/html/popup.html +0 -0
  211. /package/{remote → dist/cjs/remote}/server/gui/index.html +0 -0
  212. /package/{remote → dist/cjs/remote}/server/gui/js/api.js +0 -0
  213. /package/{remote → dist/cjs/remote}/server/gui/js/index.js +0 -0
  214. /package/{remote → dist/cjs/remote}/server/gui/js/loadHTML.js +0 -0
  215. /package/{remote → dist/cjs/remote}/server/gui/js/popUp.js +0 -0
  216. /package/{remote → dist/cjs/remote}/server/gui/js/queryApi.js +0 -0
  217. /package/{remote → dist/cjs/remote}/server/gui/js/queryDb.js +0 -0
  218. /package/{remote → dist/cjs/remote}/server/gui/js/queryGraph.js +0 -0
  219. /package/{remote → dist/cjs/remote}/server/gui/js/render.js +0 -0
  220. /package/{remote → dist/cjs/remote}/server/gui/js/templates.js +0 -0
  221. /package/{remote → dist/cjs/remote}/server/gui/js/utils.js +0 -0
  222. /package/{remote → dist/cjs/remote}/server/gui/js/vars.js +0 -0
  223. /package/{remote → dist/cjs/remote}/server/gui/libs/core.js +0 -0
  224. /package/{remote → dist/cjs/remote}/server/gui/libs/d3.v7.min.js +0 -0
  225. /package/{remote → dist/cjs/remote}/server/gui/libs/handlebars.min.js +0 -0
  226. /package/{remote → dist/cjs/remote}/server/gui/libs/json5.min.js +0 -0
@@ -1,184 +0,0 @@
1
- import hasFields from "./hasFields.js";
2
-
3
- /**
4
- * Checks if an object meets the criteria specified in the fields with operators.
5
- * @function
6
- * @param {Object} obj - The object to check.
7
- * @param {Object} fields - Criteria with operators.
8
- * @returns {boolean} - Whether the object meets the criteria.
9
- * @throws {Error} - If fields is not an object.
10
- */
11
- export default function hasFieldsAdvanced(obj, fields){
12
- if(typeof fields !== "object" || fields === null){
13
- throw new Error("Fields must be an object");
14
- }
15
-
16
- if("$and" in fields){
17
- return fields["$and"].every(subFields => hasFieldsAdvanced(obj, subFields));
18
- }
19
-
20
- if("$or" in fields){
21
- return fields["$or"].some(subFields => hasFieldsAdvanced(obj, subFields));
22
- }
23
-
24
- // Check various conditions
25
- if(!checkConditions(obj, fields)) return false;
26
- const fieldsSubset = removeAdvancedOperators({ ...fields });
27
- return hasFields(obj, fieldsSubset);
28
- }
29
-
30
- function removeAdvancedOperators(fields){
31
- const advancedOperators = [
32
- "and", "or",
33
- "gt", "lt", "gte", "lte", "in", "nin",
34
- "exists",
35
- "type",
36
- "regex",
37
- "arrinc", "arrincall", "size",
38
- "startsWith", "endsWith",
39
- "between",
40
- "not",
41
- "subset"
42
- ].map(operator => "$"+operator);
43
- advancedOperators.forEach(operator => delete fields[operator]);
44
- return fields;
45
- }
46
-
47
- function checkConditions(obj, fields){
48
- return (
49
- checkComparison(obj, fields) &&
50
- checkExistence(obj, fields) &&
51
- checkType(obj, fields) &&
52
- checkRegex(obj, fields) &&
53
- checkArrayConditions(obj, fields) &&
54
- checkStringConditions(obj, fields) &&
55
- checkBetween(obj, fields) &&
56
- checkNot(obj, fields) &&
57
- checkSubset(obj, fields)
58
- );
59
- }
60
-
61
- function checkComparison(obj, fields){
62
- const comparisonOperators = ["$gt", "$lt", "$gte", "$lte", "$in", "$nin"];
63
- for(const operator of comparisonOperators){
64
- if(operator in fields){
65
- for(const [key, value] of Object.entries(fields[operator])){
66
- switch (operator){
67
- case "$gt":
68
- if(!(obj[key] > value)) return false;
69
- break;
70
- case "$lt":
71
- if(!(obj[key] < value)) return false;
72
- break;
73
- case "$gte":
74
- if(!(obj[key] >= value)) return false;
75
- break;
76
- case "$lte":
77
- if(!(obj[key] <= value)) return false;
78
- break;
79
- case "$in":
80
- if(!value.includes(obj[key])) return false;
81
- break;
82
- case "$nin":
83
- if(value.includes(obj[key])) return false;
84
- break;
85
- }
86
- }
87
- }
88
- }
89
- return true;
90
- }
91
-
92
- function checkExistence(obj, fields){
93
- if("$exists" in fields){
94
- for(const [key, shouldExist] of Object.entries(fields["$exists"])){
95
- if(shouldExist && !(key in obj)) return false;
96
- if(!shouldExist && (key in obj)) return false;
97
- }
98
- }
99
- return true;
100
- }
101
-
102
- function checkType(obj, fields){
103
- if("$type" in fields){
104
- for(const [key, type] of Object.entries(fields["$type"])){
105
- if(typeof obj[key] !== type) return false;
106
- }
107
- }
108
- return true;
109
- }
110
-
111
- function checkRegex(obj, fields){
112
- if("$regex" in fields){
113
- for(const [key, regex] of Object.entries(fields["$regex"])){
114
- if(!regex.test(obj[key])) return false;
115
- }
116
- }
117
- return true;
118
- }
119
-
120
- function checkArrayConditions(obj, fields){
121
- if("$arrinc" in fields){
122
- for(const [key, values] of Object.entries(fields["$arrinc"])){
123
- if(!Array.isArray(obj[key]) || !values.some(val => obj[key].includes(val))) return false;
124
- }
125
- }
126
-
127
- if("$arrincall" in fields){
128
- for(const [key, values] of Object.entries(fields["$arrincall"])){
129
- if(!Array.isArray(obj[key]) || !values.every(val => obj[key].includes(val))) return false;
130
- }
131
- }
132
-
133
- if("$size" in fields){
134
- for(const [key, size] of Object.entries(fields["$size"])){
135
- if(Array.isArray(obj[key]) || typeof obj[key] === "string"){
136
- if(obj[key].length !== size) return false;
137
- }else{
138
- return false;
139
- }
140
- }
141
- }
142
-
143
- return true;
144
- }
145
-
146
- function checkStringConditions(obj, fields){
147
- if("$startsWith" in fields){
148
- for(const [key, value] of Object.entries(fields["$startsWith"])){
149
- if(typeof obj[key] !== "string" || !obj[key].startsWith(value)) return false;
150
- }
151
- }
152
-
153
- if("$endsWith" in fields){
154
- for(const [key, value] of Object.entries(fields["$endsWith"])){
155
- if(typeof obj[key] !== "string" || !obj[key].endsWith(value)) return false;
156
- }
157
- }
158
-
159
- return true;
160
- }
161
-
162
- function checkBetween(obj, fields){
163
- if("$between" in fields){
164
- for(const [key, [min, max]] of Object.entries(fields["$between"])){
165
- if(typeof obj[key] !== "number" || obj[key] < min || obj[key] > max) return false;
166
- }
167
- }
168
- return true;
169
- }
170
-
171
- function checkNot(obj, fields){
172
- if("$not" in fields){
173
- return !hasFieldsAdvanced(obj, fields["$not"]);
174
- }
175
- return true;
176
- }
177
-
178
- function checkSubset(obj, fields){
179
- if("$subset" in fields){
180
- const setFields = fields["$subset"];
181
- return hasFields(obj, setFields);
182
- }
183
- return true;
184
- }