@xuda.io/xuda-dbs-plugin-xuda 1.0.132 → 1.0.134
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server.js +1 -345
- package/studio.mjs +3 -9
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@xuda.io/xuda-dbs-plugin-xuda",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.134",
|
4
4
|
"description": "Xuda Database Socket for Xuda's proprietary structure powered by CouchDB",
|
5
5
|
"scripts": {
|
6
6
|
"pub": "npm version patch --force && npm publish --access public"
|
package/server.js
CHANGED
@@ -708,350 +708,6 @@ const query_db = async function (e, db, app_id_reference, table_obj) {
|
|
708
708
|
return raw_data();
|
709
709
|
};
|
710
710
|
|
711
|
-
// var limit = 99999;
|
712
|
-
// var skip = 0;
|
713
|
-
|
714
|
-
// if (e.limit) {
|
715
|
-
// limit = Number(e.limit);
|
716
|
-
// }
|
717
|
-
|
718
|
-
// if (e.skip) {
|
719
|
-
// skip = JSON.parse(e.skip);
|
720
|
-
// }
|
721
|
-
|
722
|
-
// var fields = [];
|
723
|
-
// if (e.fields) {
|
724
|
-
// for (const [key, val] of Object.entries(
|
725
|
-
// typeof e.fields === "string" ? e.fields.split(",") : e.fields
|
726
|
-
// )) {
|
727
|
-
// fields.push(val);
|
728
|
-
// }
|
729
|
-
// } else {
|
730
|
-
// for (const [key, val] of Object.entries(table_obj.tableFields)) {
|
731
|
-
// fields.push(val.data.field_id);
|
732
|
-
// }
|
733
|
-
// }
|
734
|
-
|
735
|
-
// var data = {};
|
736
|
-
// var from = e.filter_from ? JSON.parse(e.filter_from) : {};
|
737
|
-
// var to = e.filter_to ? JSON.parse(e.filter_to) : {};
|
738
|
-
// var sort = [];
|
739
|
-
// for (const [key, val] of Object.entries(from)) {
|
740
|
-
// var field_name = key;
|
741
|
-
|
742
|
-
// sort.push(field_name);
|
743
|
-
|
744
|
-
// if (val === to[key]) {
|
745
|
-
// data[field_name] = val;
|
746
|
-
// } else {
|
747
|
-
// data[field_name] = { $gte: val };
|
748
|
-
// }
|
749
|
-
// }
|
750
|
-
|
751
|
-
// for (const [key, val] of Object.entries(to)) {
|
752
|
-
// var field_name = key;
|
753
|
-
|
754
|
-
// if (val !== from[key]) {
|
755
|
-
// data[field_name]["$lte"] = val;
|
756
|
-
// }
|
757
|
-
// }
|
758
|
-
|
759
|
-
// var selector = {};
|
760
|
-
|
761
|
-
// if (from && !_.isEmpty(from)) {
|
762
|
-
// selector = data;
|
763
|
-
// }
|
764
|
-
|
765
|
-
// var opt = {
|
766
|
-
// selector,
|
767
|
-
// limit: limit,
|
768
|
-
// skip: skip,
|
769
|
-
// fields: fields,
|
770
|
-
// };
|
771
|
-
|
772
|
-
// if (sort.length) {
|
773
|
-
// opt.sort = sort;
|
774
|
-
// }
|
775
|
-
|
776
|
-
// if (e?.sort_fields?.length) {
|
777
|
-
// opt.sort = e.sort_fields;
|
778
|
-
// if (opt.sort) {
|
779
|
-
// for (const [key, val] of Object.entries(opt.sort)) {
|
780
|
-
// var field_name = val.colId;
|
781
|
-
// opt.sort[key] = {
|
782
|
-
// ["udfData.data." + field_name]: val.sort,
|
783
|
-
// };
|
784
|
-
// }
|
785
|
-
// }
|
786
|
-
// }
|
787
|
-
// // if (e.sort_fields && JSON.parse(e.sort_fields).length) {
|
788
|
-
// // opt.sort = JSON.parse(e.sort_fields);
|
789
|
-
// // if (opt.sort) {
|
790
|
-
// // for (const [key, val] of Object.entries(opt.sort)) {
|
791
|
-
// // var field_name = val.colId;
|
792
|
-
// // opt.sort[key] = {
|
793
|
-
// // ["udfData.data." + field_name]: val.sort,
|
794
|
-
// // };
|
795
|
-
// // }
|
796
|
-
// // }
|
797
|
-
// // }
|
798
|
-
|
799
|
-
// if (e.grid_filter_info) {
|
800
|
-
// for (const [key, val] of Object.entries(e.grid_filter_info)) {
|
801
|
-
// var field_name = key;
|
802
|
-
// var condition = "$and";
|
803
|
-
// const make_selector = function (val) {
|
804
|
-
// var value = "";
|
805
|
-
// var operator = "";
|
806
|
-
// var value_to = "";
|
807
|
-
// var operator_to = "";
|
808
|
-
|
809
|
-
// if (val.filterType === "date") {
|
810
|
-
// var date = val.dateFrom.substr(0, 10);
|
811
|
-
// switch (val.type) {
|
812
|
-
// case "equals":
|
813
|
-
// operator = "$regex";
|
814
|
-
// value = `^${date}`;
|
815
|
-
// break;
|
816
|
-
|
817
|
-
// case "greaterThan":
|
818
|
-
// operator = "$gt";
|
819
|
-
// value = `${date}`;
|
820
|
-
// break;
|
821
|
-
|
822
|
-
// case "lessThan":
|
823
|
-
// operator = "$lt";
|
824
|
-
// value = `${date}`;
|
825
|
-
// break;
|
826
|
-
|
827
|
-
// case "blank":
|
828
|
-
// operator = "$eq";
|
829
|
-
// value = "";
|
830
|
-
// break;
|
831
|
-
|
832
|
-
// case "inRange":
|
833
|
-
// operator = "$gte";
|
834
|
-
// value = date;
|
835
|
-
// operator_to = "$lte";
|
836
|
-
// value_to = val.dateTo.substr(0, 10);
|
837
|
-
// break;
|
838
|
-
|
839
|
-
// case "notEqual":
|
840
|
-
// operator = "$regex";
|
841
|
-
// value = `^((?!${date}).)*$`;
|
842
|
-
// break;
|
843
|
-
|
844
|
-
// case "notBlank":
|
845
|
-
// operator = "$ne";
|
846
|
-
// value = "";
|
847
|
-
// break;
|
848
|
-
|
849
|
-
// default:
|
850
|
-
// operator = "$regex";
|
851
|
-
// value = `^${date}`;
|
852
|
-
// }
|
853
|
-
// }
|
854
|
-
|
855
|
-
// if (val.filterType === "string" || val.filterType === "text") {
|
856
|
-
// switch (val.type) {
|
857
|
-
// case "contains":
|
858
|
-
// operator = "$regex";
|
859
|
-
// value = `${val.filter}`;
|
860
|
-
// break;
|
861
|
-
|
862
|
-
// case "notContains":
|
863
|
-
// operator = "$regex";
|
864
|
-
// value = `^((?!${val.filter}).)*$`;
|
865
|
-
// break;
|
866
|
-
|
867
|
-
// case "equals":
|
868
|
-
// operator = "$eq";
|
869
|
-
// value = `${val.filter}`;
|
870
|
-
// break;
|
871
|
-
|
872
|
-
// case "notEqual":
|
873
|
-
// operator = "$ne";
|
874
|
-
// value = `${val.filter}`;
|
875
|
-
// break;
|
876
|
-
|
877
|
-
// case "startsWith":
|
878
|
-
// operator = "$regex";
|
879
|
-
// value = `^${val.filter}`;
|
880
|
-
// break;
|
881
|
-
|
882
|
-
// case "endsWith":
|
883
|
-
// operator = "$regex";
|
884
|
-
// value = `${val.filter}$`;
|
885
|
-
// break;
|
886
|
-
|
887
|
-
// case "blank":
|
888
|
-
// operator = "$eq";
|
889
|
-
// value = "";
|
890
|
-
// break;
|
891
|
-
|
892
|
-
// case "notBlank":
|
893
|
-
// operator = "$ne";
|
894
|
-
// value = "";
|
895
|
-
// break;
|
896
|
-
|
897
|
-
// default:
|
898
|
-
// value = "^" + val.filter;
|
899
|
-
// }
|
900
|
-
// }
|
901
|
-
|
902
|
-
// if (val.filterType === "number") {
|
903
|
-
// switch (val.type) {
|
904
|
-
// case "equals":
|
905
|
-
// operator = "$eq";
|
906
|
-
// value = val.filter;
|
907
|
-
// break;
|
908
|
-
|
909
|
-
// case "notEqual":
|
910
|
-
// operator = "$ne";
|
911
|
-
// value = val.filter;
|
912
|
-
// break;
|
913
|
-
|
914
|
-
// case "lessThanOrEqual":
|
915
|
-
// operator = "$lte";
|
916
|
-
// value = val.filter;
|
917
|
-
// break;
|
918
|
-
|
919
|
-
// case "greaterThanOrEqual":
|
920
|
-
// operator = "$gte";
|
921
|
-
// value = val.filter;
|
922
|
-
// break;
|
923
|
-
|
924
|
-
// case "lessThan":
|
925
|
-
// operator = "$lt";
|
926
|
-
// value = val.filter;
|
927
|
-
// break;
|
928
|
-
|
929
|
-
// case "greaterThan":
|
930
|
-
// operator = "$gt";
|
931
|
-
// value = val.filter;
|
932
|
-
// break;
|
933
|
-
|
934
|
-
// case "blank":
|
935
|
-
// operator = "$eq";
|
936
|
-
// value = 0;
|
937
|
-
// break;
|
938
|
-
|
939
|
-
// case "notBlank":
|
940
|
-
// operator = "$ne";
|
941
|
-
// value = 0;
|
942
|
-
// break;
|
943
|
-
|
944
|
-
// case "inRange":
|
945
|
-
// operator = "$gte";
|
946
|
-
// value = val.filter;
|
947
|
-
// operator_to = "$lte";
|
948
|
-
// value_to = val.filterTo;
|
949
|
-
// break;
|
950
|
-
|
951
|
-
// default:
|
952
|
-
// operator = "$eq";
|
953
|
-
// value = val.filter;
|
954
|
-
// }
|
955
|
-
// }
|
956
|
-
// if (!opt.selector[field_name]) {
|
957
|
-
// opt.selector[field_name] = {};
|
958
|
-
// }
|
959
|
-
// if (!opt.selector[field_name][condition]) {
|
960
|
-
// opt.selector[field_name][condition] = [];
|
961
|
-
// }
|
962
|
-
// opt.selector[field_name][condition].push({
|
963
|
-
// [operator]: value,
|
964
|
-
// });
|
965
|
-
|
966
|
-
// if (operator_to) {
|
967
|
-
// opt.selector[field_name][condition].push({
|
968
|
-
// [operator_to]: value_to,
|
969
|
-
// });
|
970
|
-
// }
|
971
|
-
// };
|
972
|
-
|
973
|
-
// if (!val.condition1) {
|
974
|
-
// make_selector(val);
|
975
|
-
// } else {
|
976
|
-
// condition = "$" + val.operator.toLowerCase();
|
977
|
-
// make_selector(val.condition1);
|
978
|
-
// make_selector(val.condition2);
|
979
|
-
// }
|
980
|
-
// }
|
981
|
-
// }
|
982
|
-
|
983
|
-
// if (e.total_fields_info) {
|
984
|
-
// fields = [];
|
985
|
-
// for (const [key, val] of Object.entries(
|
986
|
-
// JSON.parse(e.total_fields_info)
|
987
|
-
// )) {
|
988
|
-
// var field_name = val.field_id;
|
989
|
-
|
990
|
-
// fields.push(field_name);
|
991
|
-
// }
|
992
|
-
// opt.fields = fields;
|
993
|
-
// }
|
994
|
-
// // fix names
|
995
|
-
|
996
|
-
// for (const [key, val] of Object.entries(opt.fields)) {
|
997
|
-
// opt.fields[key] = "udfData.data." + val;
|
998
|
-
// }
|
999
|
-
// if (!e?.sort_fields?.length) {
|
1000
|
-
// // added 2021 09 10
|
1001
|
-
// if (opt.sort) {
|
1002
|
-
// for (const [key, val] of Object.entries(opt.sort)) {
|
1003
|
-
// opt.sort[key] = {
|
1004
|
-
// ["udfData.data." + val]: e.sortOrder === "des" ? "desc" : "asc",
|
1005
|
-
// };
|
1006
|
-
// }
|
1007
|
-
// }
|
1008
|
-
// }
|
1009
|
-
// // if (!e.sort_fields || !JSON.parse(e.sort_fields).length) {
|
1010
|
-
// // // added 2021 09 10
|
1011
|
-
// // if (opt.sort) {
|
1012
|
-
// // for (const [key, val] of Object.entries(opt.sort)) {
|
1013
|
-
// // opt.sort[key] = {
|
1014
|
-
// // ["udfData.data." + val]: e.sortOrder === "des" ? "desc" : "asc",
|
1015
|
-
// // };
|
1016
|
-
// // }
|
1017
|
-
// // }
|
1018
|
-
// // }
|
1019
|
-
|
1020
|
-
// var selector_new = {};
|
1021
|
-
|
1022
|
-
// for (const [key, val] of Object.entries(opt.selector)) {
|
1023
|
-
// selector_new["udfData.data." + key] = val;
|
1024
|
-
// }
|
1025
|
-
|
1026
|
-
// if (e.viewDbQuery) {
|
1027
|
-
// for (const [key, val] of Object.entries(table_obj.tableFields)) {
|
1028
|
-
// if (e.viewDbQuery.includes(val.id)) {
|
1029
|
-
// const replacer = new RegExp(val.id, "g");
|
1030
|
-
// e.viewDbQuery = e.viewDbQuery.replace(
|
1031
|
-
// replacer,
|
1032
|
-
// "udfData.data." + val.data.field_id
|
1033
|
-
// );
|
1034
|
-
// }
|
1035
|
-
// }
|
1036
|
-
|
1037
|
-
// let viewDbQuery = JSON.parse(e.viewDbQuery.replace(/\\/g, ""));
|
1038
|
-
|
1039
|
-
// for (const [key, val] of Object.entries(viewDbQuery)) {
|
1040
|
-
// selector_new[key] = val;
|
1041
|
-
// }
|
1042
|
-
// }
|
1043
|
-
|
1044
|
-
// opt.selector = selector_new;
|
1045
|
-
// opt.selector["udfData.udffileid"] = e.table_id;
|
1046
|
-
// opt.selector.stat = e.archived ? 4 : 3;
|
1047
|
-
|
1048
|
-
// opt.fields.push("_id");
|
1049
|
-
// opt.fields.push("_rev");
|
1050
|
-
|
1051
|
-
// if (e.selector) {
|
1052
|
-
// opt.selector = { ...e.selector, ...opt.selector };
|
1053
|
-
// }
|
1054
|
-
|
1055
711
|
// xuda
|
1056
712
|
|
1057
713
|
try {
|
@@ -1088,7 +744,7 @@ const query_db = async function (e, db, app_id_reference, table_obj) {
|
|
1088
744
|
|
1089
745
|
mango_index_obj = {
|
1090
746
|
index: {
|
1091
|
-
fields: opt.sort,
|
747
|
+
fields: [...Object.keys(opt.selector), ...opt.sort],
|
1092
748
|
},
|
1093
749
|
name: index_name,
|
1094
750
|
ddoc: `mango_index_table_${e.table_id}`,
|
package/studio.mjs
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
var _this = {};
|
2
|
-
|
3
1
|
const check_unique = async function (e, docP, table_obj, db) {
|
4
|
-
if (typeof func !== "undefined") {
|
2
|
+
if (typeof func !== "undefined" && !e.full_table_downloaded) {
|
5
3
|
const SESSION_ID = Object.keys(SESSION_OBJ)[0];
|
6
4
|
const ret = await func.common.perform_rpi_request(
|
7
5
|
SESSION_ID,
|
@@ -184,7 +182,7 @@ const find_item_by_key = function (arr, key, val) {
|
|
184
182
|
});
|
185
183
|
};
|
186
184
|
|
187
|
-
const get_cast_val = async function (
|
185
|
+
const get_cast_val = async function (source, attributeP, typeP, valP) {
|
188
186
|
const success = function (res) {
|
189
187
|
var msg = `error converting ${attributeP} from ${valP} to ${typeP}`;
|
190
188
|
console.error(source, msg);
|
@@ -1084,7 +1082,7 @@ const query_db = async function (e, db, table_obj) {
|
|
1084
1082
|
|
1085
1083
|
mango_index_obj = {
|
1086
1084
|
index: {
|
1087
|
-
fields: opt.sort,
|
1085
|
+
fields: [...Object.keys(opt.selector), ...opt.sort],
|
1088
1086
|
},
|
1089
1087
|
name: index_name,
|
1090
1088
|
ddoc: `mango_index_table_${e.table_id}`,
|
@@ -1544,7 +1542,3 @@ export const create_design = async (params, resolve, reject) => {
|
|
1544
1542
|
return resolve(err);
|
1545
1543
|
}
|
1546
1544
|
};
|
1547
|
-
|
1548
|
-
export const init_module = async (params) => {
|
1549
|
-
_this.xu_cast = params.xu_cast;
|
1550
|
-
};
|