@saltcorn/data 1.5.0 → 1.5.3

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 (54) hide show
  1. package/dist/base-plugin/index.d.ts +213 -213
  2. package/dist/base-plugin/index.d.ts.map +1 -1
  3. package/dist/migrations/202603101553.d.ts +4 -0
  4. package/dist/migrations/202603101553.d.ts.map +1 -0
  5. package/dist/migrations/202603101553.js +22 -0
  6. package/dist/migrations/202603101553.js.map +1 -0
  7. package/dist/mobile-mocks/node/assert.d.ts +1 -0
  8. package/dist/mobile-mocks/node/assert.d.ts.map +1 -0
  9. package/dist/mobile-mocks/node/assert.js +2 -0
  10. package/dist/mobile-mocks/node/assert.js.map +1 -0
  11. package/dist/mobile-mocks/npm/apns2.d.ts +1 -0
  12. package/dist/mobile-mocks/npm/apns2.d.ts.map +1 -0
  13. package/dist/mobile-mocks/npm/apns2.js +2 -0
  14. package/dist/mobile-mocks/npm/apns2.js.map +1 -0
  15. package/dist/mobile-mocks/npm/vm2.d.ts +1 -0
  16. package/dist/mobile-mocks/npm/vm2.d.ts.map +1 -0
  17. package/dist/mobile-mocks/npm/vm2.js +2 -0
  18. package/dist/mobile-mocks/npm/vm2.js.map +1 -0
  19. package/dist/mobile-mocks/npm/xml2js.d.ts +1 -0
  20. package/dist/mobile-mocks/npm/xml2js.d.ts.map +1 -0
  21. package/dist/mobile-mocks/npm/xml2js.js +2 -0
  22. package/dist/mobile-mocks/npm/xml2js.js.map +1 -0
  23. package/dist/models/config.d.ts.map +1 -1
  24. package/dist/models/config.js +16 -0
  25. package/dist/models/config.js.map +1 -1
  26. package/dist/models/expression.d.ts.map +1 -1
  27. package/dist/models/expression.js +1 -1
  28. package/dist/models/expression.js.map +1 -1
  29. package/dist/models/metadata.d.ts +2 -1
  30. package/dist/models/metadata.d.ts.map +1 -1
  31. package/dist/models/metadata.js +5 -0
  32. package/dist/models/metadata.js.map +1 -1
  33. package/dist/utils.d.ts +3 -3
  34. package/dist/viewable_fields.d.ts +151 -96
  35. package/dist/viewable_fields.d.ts.map +1 -1
  36. package/dist/viewable_fields.js +465 -99
  37. package/dist/viewable_fields.js.map +1 -1
  38. package/package.json +8 -8
  39. package/dist/models/s3_helpers.d.ts +0 -54
  40. package/dist/models/s3_helpers.d.ts.map +0 -1
  41. package/dist/models/s3_helpers.js +0 -505
  42. package/dist/models/s3_helpers.js.map +0 -1
  43. package/dist/test-utils/mocks.d.ts +0 -203
  44. package/dist/test-utils/mocks.d.ts.map +0 -1
  45. package/dist/test-utils/mocks.js +0 -329
  46. package/dist/test-utils/mocks.js.map +0 -1
  47. package/dist/tests/mail_queue.test.d.ts +0 -2
  48. package/dist/tests/mail_queue.test.d.ts.map +0 -1
  49. package/dist/tests/mail_queue.test.js +0 -122
  50. package/dist/tests/mail_queue.test.js.map +0 -1
  51. package/dist/tests/table_sync_info.test.d.ts +0 -2
  52. package/dist/tests/table_sync_info.test.d.ts.map +0 -1
  53. package/dist/tests/table_sync_info.test.js +0 -62
  54. package/dist/tests/table_sync_info.test.js.map +0 -1
@@ -596,7 +596,127 @@ export const types: ({
596
596
  show: {
597
597
  isEdit: boolean;
598
598
  description: string;
599
- run: (s: any) => string;
599
+ run: (v: any, req: any) => string;
600
+ };
601
+ checkboxes: {
602
+ isEdit: boolean;
603
+ description: string;
604
+ run: (v: any) => string;
605
+ };
606
+ TrueFalse: {
607
+ isEdit: boolean;
608
+ description: string;
609
+ run: (v: any) => "" | "True" | "False";
610
+ };
611
+ edit: {
612
+ isEdit: boolean;
613
+ description: string;
614
+ configFields: ({
615
+ name: string;
616
+ label: string;
617
+ type: string;
618
+ attributes: {
619
+ options: string[];
620
+ };
621
+ } | {
622
+ name: string;
623
+ label: string;
624
+ type: string;
625
+ attributes?: undefined;
626
+ })[];
627
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
628
+ };
629
+ switch: {
630
+ isEdit: boolean;
631
+ description: string;
632
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
633
+ };
634
+ show_with_html: {
635
+ configFields: {
636
+ input_type: string;
637
+ name: string;
638
+ label: string;
639
+ sublabel: string;
640
+ default: string;
641
+ attributes: {
642
+ mode: string;
643
+ };
644
+ }[];
645
+ isEdit: boolean;
646
+ description: string;
647
+ run: (v: any, req: any, attrs?: {}) => string;
648
+ };
649
+ tristate: {
650
+ isEdit: boolean;
651
+ description: string;
652
+ configFields: {
653
+ name: string;
654
+ label: string;
655
+ type: string;
656
+ }[];
657
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
658
+ };
659
+ thumbs_up_down: {
660
+ isEdit: boolean;
661
+ description: string;
662
+ configFields: {
663
+ name: string;
664
+ label: string;
665
+ type: string;
666
+ required: boolean;
667
+ attributes: {
668
+ options: string[];
669
+ };
670
+ }[];
671
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
672
+ };
673
+ };
674
+ attributes: object[];
675
+ readFromFormRecord: (rec: any, name: string) => boolean | null;
676
+ read: (v: object) => boolean | null;
677
+ readFromDB: (v: object) => object;
678
+ listAs: (v: object) => object;
679
+ validate: () => boolean;
680
+ } | {
681
+ name: string;
682
+ description: string;
683
+ sql_name: string;
684
+ js_type: string;
685
+ contract: () => Function;
686
+ attributes: object[];
687
+ fieldviews: {
688
+ show: {
689
+ isEdit: boolean;
690
+ description: string;
691
+ run: (d: any, req: any, attrs?: {}) => any;
692
+ };
693
+ showDay: {
694
+ isEdit: boolean;
695
+ description: string;
696
+ run: (d: any, req: any) => any;
697
+ };
698
+ format: {
699
+ isEdit: boolean;
700
+ description: string;
701
+ configFields: {
702
+ name: string;
703
+ label: string;
704
+ type: string;
705
+ help: {
706
+ topic: string;
707
+ };
708
+ }[];
709
+ run: (d: any, req: any, options: any) => string;
710
+ };
711
+ relative: {
712
+ isEdit: boolean;
713
+ description: string;
714
+ run: (d: any, req: any) => any;
715
+ };
716
+ yearsAgo: {
717
+ isEdit: boolean;
718
+ description: string;
719
+ run: (d: any, req: any) => string;
600
720
  };
601
721
  show_with_html: {
602
722
  configFields: {
@@ -617,12 +737,33 @@ export const types: ({
617
737
  isEdit: boolean;
618
738
  blockDisplay: boolean;
619
739
  description: string;
740
+ configFields: {
741
+ label: string;
742
+ name: string;
743
+ type: string;
744
+ }[];
745
+ run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
746
+ };
747
+ editDay: {
748
+ isEdit: boolean;
749
+ blockDisplay: boolean;
750
+ description: string;
751
+ configFields: {
752
+ label: string;
753
+ name: string;
754
+ type: string;
755
+ }[];
620
756
  run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
621
757
  };
622
758
  };
623
- attributes: object[];
624
- read: (v: object) => object;
759
+ presets: {
760
+ Now: ({ field }: {
761
+ field: any;
762
+ }) => Date | import("@saltcorn/plain-date");
763
+ };
764
+ read: (v0: any, attrs: object) => object;
625
765
  validate: () => boolean;
766
+ equals: (a: any, b: any) => boolean;
626
767
  } | {
627
768
  name: string;
628
769
  description: string;
@@ -878,40 +1019,11 @@ export const types: ({
878
1019
  sql_name: string;
879
1020
  js_type: string;
880
1021
  contract: () => Function;
881
- attributes: object[];
882
1022
  fieldviews: {
883
1023
  show: {
884
1024
  isEdit: boolean;
885
1025
  description: string;
886
- run: (d: any, req: any, attrs?: {}) => any;
887
- };
888
- showDay: {
889
- isEdit: boolean;
890
- description: string;
891
- run: (d: any, req: any) => any;
892
- };
893
- format: {
894
- isEdit: boolean;
895
- description: string;
896
- configFields: {
897
- name: string;
898
- label: string;
899
- type: string;
900
- help: {
901
- topic: string;
902
- };
903
- }[];
904
- run: (d: any, req: any, options: any) => string;
905
- };
906
- relative: {
907
- isEdit: boolean;
908
- description: string;
909
- run: (d: any, req: any) => any;
910
- };
911
- yearsAgo: {
912
- isEdit: boolean;
913
- description: string;
914
- run: (d: any, req: any) => string;
1026
+ run: (s: any) => string;
915
1027
  };
916
1028
  show_with_html: {
917
1029
  configFields: {
@@ -932,193 +1044,14 @@ export const types: ({
932
1044
  isEdit: boolean;
933
1045
  blockDisplay: boolean;
934
1046
  description: string;
935
- configFields: {
936
- label: string;
937
- name: string;
938
- type: string;
939
- }[];
940
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
941
- };
942
- editDay: {
943
- isEdit: boolean;
944
- blockDisplay: boolean;
945
- description: string;
946
- configFields: {
947
- label: string;
948
- name: string;
949
- type: string;
950
- }[];
951
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
952
- };
953
- };
954
- presets: {
955
- Now: ({ field }: {
956
- field: any;
957
- }) => Date | import("@saltcorn/plain-date");
958
- };
959
- read: (v0: any, attrs: object) => object;
960
- validate: () => boolean;
961
- equals: (a: any, b: any) => boolean;
962
- } | {
963
- name: string;
964
- description: string;
965
- sql_name: string;
966
- js_type: string;
967
- contract: () => Function;
968
- fieldviews: {
969
- show: {
970
- isEdit: boolean;
971
- description: string;
972
- run: (v: any, req: any) => string;
973
- };
974
- checkboxes: {
975
- isEdit: boolean;
976
- description: string;
977
- run: (v: any) => string;
978
- };
979
- TrueFalse: {
980
- isEdit: boolean;
981
- description: string;
982
- run: (v: any) => "" | "True" | "False";
983
- };
984
- edit: {
985
- isEdit: boolean;
986
- description: string;
987
- configFields: ({
988
- name: string;
989
- label: string;
990
- type: string;
991
- attributes: {
992
- options: string[];
993
- };
994
- } | {
995
- name: string;
996
- label: string;
997
- type: string;
998
- attributes?: undefined;
999
- })[];
1000
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
1001
- };
1002
- switch: {
1003
- isEdit: boolean;
1004
- description: string;
1005
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
1006
- };
1007
- show_with_html: {
1008
- configFields: {
1009
- input_type: string;
1010
- name: string;
1011
- label: string;
1012
- sublabel: string;
1013
- default: string;
1014
- attributes: {
1015
- mode: string;
1016
- };
1017
- }[];
1018
- isEdit: boolean;
1019
- description: string;
1020
- run: (v: any, req: any, attrs?: {}) => string;
1021
- };
1022
- tristate: {
1023
- isEdit: boolean;
1024
- description: string;
1025
- configFields: {
1026
- name: string;
1027
- label: string;
1028
- type: string;
1029
- }[];
1030
- run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
1031
- };
1032
- thumbs_up_down: {
1033
- isEdit: boolean;
1034
- description: string;
1035
- configFields: {
1036
- name: string;
1037
- label: string;
1038
- type: string;
1039
- required: boolean;
1040
- attributes: {
1041
- options: string[];
1042
- };
1043
- }[];
1044
1047
  run: (nm: any, v: any, attrs: any, cls: any, required: any, field: any) => string;
1045
1048
  };
1046
1049
  };
1047
1050
  attributes: object[];
1048
- readFromFormRecord: (rec: any, name: string) => boolean | null;
1049
- read: (v: object) => boolean | null;
1050
- readFromDB: (v: object) => object;
1051
- listAs: (v: object) => object;
1051
+ read: (v: object) => object;
1052
1052
  validate: () => boolean;
1053
1053
  })[];
1054
1054
  export const viewtemplates: ({
1055
- name: string;
1056
- description: string;
1057
- configuration_workflow: (req: object) => import("../models").Workflow;
1058
- run: (table_id: string | number, viewname: string, { columns, layout, view_to_create, create_view_display, create_view_label, default_state, create_view_location, create_link_style, create_link_size, create_view_showif, }: {
1059
- columns: object[];
1060
- view_to_create?: string | undefined;
1061
- create_view_display: string;
1062
- create_view_label?: string | undefined;
1063
- default_state?: object | undefined;
1064
- create_view_location?: string | undefined;
1065
- }, stateWithId?: object, extraOpts: object, { listQuery }: {
1066
- listQuery: any;
1067
- }) => Promise<any>;
1068
- view_quantity: string;
1069
- get_state_fields: (table_id: string, viewname: any, { columns }: {
1070
- columns: object[];
1071
- }) => Function;
1072
- initial_config: Function;
1073
- on_delete: (table_id: any, viewname: string, { default_state }: {
1074
- default_state: any;
1075
- }) => Promise<void>;
1076
- routes: {
1077
- run_action: (table_id: number, viewname: any, { columns, layout, default_state }: {
1078
- columns: object[];
1079
- layout: any;
1080
- }, body: object, { req, res }: {
1081
- req: object;
1082
- res: any;
1083
- }, { getRowQuery }: {
1084
- getRowQuery: any;
1085
- }) => Promise<object>;
1086
- };
1087
- default_state_form: ({ default_state }: object) => boolean;
1088
- getStringsForI18n({ columns, layout, create_view_label }: {
1089
- columns: any;
1090
- create_view_label: any;
1091
- }): string[];
1092
- createBasicView: ({ table, viewname, template_view, template_table, all_views_created, }: {
1093
- table: any;
1094
- viewname: any;
1095
- template_view: any;
1096
- template_table: any;
1097
- all_views_created: any;
1098
- }) => Promise<any>;
1099
- queries: ({ table_id, exttable_name, name, configuration: { columns, layout, default_state }, req, }: {
1100
- table_id: any;
1101
- exttable_name: any;
1102
- name: any;
1103
- configuration: {
1104
- columns: any;
1105
- layout: any;
1106
- default_state: any;
1107
- };
1108
- req: any;
1109
- }) => {
1110
- listQuery(state: any, stateHash: any): Promise<{
1111
- rows: import("@saltcorn/db-common/dbtypes").Row[];
1112
- rowCount: number | undefined;
1113
- }>;
1114
- getRowQuery(id: any): Promise<import("@saltcorn/db-common/dbtypes").Row | null>;
1115
- };
1116
- configCheck: (view: any) => Promise<{
1117
- errors: string[];
1118
- warnings: string[];
1119
- }>;
1120
- connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
1121
- } | {
1122
1055
  name: string;
1123
1056
  description: string;
1124
1057
  configuration_workflow: (req: object) => import("../models").Workflow;
@@ -1295,6 +1228,73 @@ export const viewtemplates: ({
1295
1228
  warnings: string[];
1296
1229
  }>;
1297
1230
  connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
1231
+ } | {
1232
+ name: string;
1233
+ description: string;
1234
+ configuration_workflow: (req: object) => import("../models").Workflow;
1235
+ run: (table_id: string | number, viewname: string, { columns, layout, view_to_create, create_view_display, create_view_label, default_state, create_view_location, create_link_style, create_link_size, create_view_showif, }: {
1236
+ columns: object[];
1237
+ view_to_create?: string | undefined;
1238
+ create_view_display: string;
1239
+ create_view_label?: string | undefined;
1240
+ default_state?: object | undefined;
1241
+ create_view_location?: string | undefined;
1242
+ }, stateWithId?: object, extraOpts: object, { listQuery }: {
1243
+ listQuery: any;
1244
+ }) => Promise<any>;
1245
+ view_quantity: string;
1246
+ get_state_fields: (table_id: string, viewname: any, { columns }: {
1247
+ columns: object[];
1248
+ }) => Function;
1249
+ initial_config: Function;
1250
+ on_delete: (table_id: any, viewname: string, { default_state }: {
1251
+ default_state: any;
1252
+ }) => Promise<void>;
1253
+ routes: {
1254
+ run_action: (table_id: number, viewname: any, { columns, layout, default_state }: {
1255
+ columns: object[];
1256
+ layout: any;
1257
+ }, body: object, { req, res }: {
1258
+ req: object;
1259
+ res: any;
1260
+ }, { getRowQuery }: {
1261
+ getRowQuery: any;
1262
+ }) => Promise<object>;
1263
+ };
1264
+ default_state_form: ({ default_state }: object) => boolean;
1265
+ getStringsForI18n({ columns, layout, create_view_label }: {
1266
+ columns: any;
1267
+ create_view_label: any;
1268
+ }): string[];
1269
+ createBasicView: ({ table, viewname, template_view, template_table, all_views_created, }: {
1270
+ table: any;
1271
+ viewname: any;
1272
+ template_view: any;
1273
+ template_table: any;
1274
+ all_views_created: any;
1275
+ }) => Promise<any>;
1276
+ queries: ({ table_id, exttable_name, name, configuration: { columns, layout, default_state }, req, }: {
1277
+ table_id: any;
1278
+ exttable_name: any;
1279
+ name: any;
1280
+ configuration: {
1281
+ columns: any;
1282
+ layout: any;
1283
+ default_state: any;
1284
+ };
1285
+ req: any;
1286
+ }) => {
1287
+ listQuery(state: any, stateHash: any): Promise<{
1288
+ rows: import("@saltcorn/db-common/dbtypes").Row[];
1289
+ rowCount: number | undefined;
1290
+ }>;
1291
+ getRowQuery(id: any): Promise<import("@saltcorn/db-common/dbtypes").Row | null>;
1292
+ };
1293
+ configCheck: (view: any) => Promise<{
1294
+ errors: string[];
1295
+ warnings: string[];
1296
+ }>;
1297
+ connectedObjects: (configuration: any) => Promise<import("@saltcorn/types/base_types").ConnectedObjects>;
1298
1298
  } | {
1299
1299
  name: string;
1300
1300
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../base-plugin/index.js"],"names":[],"mappings":"AAwCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAsD;AACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0Bsge,KAAK;;;;;;;gBAAwsV,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA+tkC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAvorD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAjB3zM;;;;0CAGW,MAAM"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../base-plugin/index.js"],"names":[],"mappings":"AAwCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAsD;AACtD;;;;;;;;;;;;;cA0Bsge,KAAK;;;;;;;gBAAwsV,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA+tkC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAvorD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAjB3zM;;;;0CAGW,MAAM"}
@@ -0,0 +1,4 @@
1
+ export function sql_pg({ schema }: {
2
+ schema: any;
3
+ }): string;
4
+ //# sourceMappingURL=202603101553.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"202603101553.d.ts","sourceRoot":"","sources":["../../migrations/202603101553.js"],"names":[],"mappings":"AAAA;;WAkBC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ const sql_pg = ({ schema }) => `
3
+ DO $$
4
+ DECLARE
5
+ r RECORD;
6
+ BEGIN
7
+ FOR r IN
8
+ SELECT tc.table_name, tc.constraint_name
9
+ FROM information_schema.table_constraints AS tc
10
+ WHERE tc.constraint_type = 'FOREIGN KEY'
11
+ AND tc.constraint_schema = '${schema}'
12
+ LOOP
13
+ EXECUTE format(
14
+ 'ALTER TABLE "${schema}".%I ALTER CONSTRAINT %I DEFERRABLE',
15
+ r.table_name, r.constraint_name
16
+ );
17
+ END LOOP;
18
+ END;
19
+ $$;
20
+ `;
21
+ module.exports = { sql_pg };
22
+ //# sourceMappingURL=202603101553.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"202603101553.js","sourceRoot":"","sources":["../../migrations/202603101553.js"],"names":[],"mappings":";AAAA,MAAM,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;;;;;;;;wCASS,MAAM;;;4BAGlB,MAAM;;;;;;CAMjC,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../mobile-mocks/node/assert.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../mobile-mocks/node/assert.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=apns2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apns2.d.ts","sourceRoot":"","sources":["../../../mobile-mocks/npm/apns2.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=apns2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apns2.js","sourceRoot":"","sources":["../../../mobile-mocks/npm/apns2.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=vm2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm2.d.ts","sourceRoot":"","sources":["../../../mobile-mocks/npm/vm2.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=vm2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm2.js","sourceRoot":"","sources":["../../../mobile-mocks/npm/vm2.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=xml2js.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml2js.d.ts","sourceRoot":"","sources":["../../../mobile-mocks/npm/xml2js.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=xml2js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml2js.js","sourceRoot":"","sources":["../../../mobile-mocks/npm/xml2js.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../models/config.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAupDjD,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AA4PF,QAAA,MAAM,aAAa;qBA5UW,MAAM,QAAQ,GAAG,KAAG,OAAO,CAAC,GAAG,CAAC;wBAa/B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;qBA8B5B,MAAM,SAAS,GAAG,KAAG,OAAO,CAAC,IAAI,CAAC;wBA8B/B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;;6BAejB,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAmGjE,MAAM,eACE,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC;6CA+CH,MAAM,KAClB,OAAO,CAAC,MAAM,EAAE,CAAC;yBAkDQ,GAAG,KAAG,MAAM;kCAvLG,GAAG,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;8BA4M/B,MAAM,KAAG,OAAO;CAqChD,CAAC;AAEF,kBAAU,aAAa,CAAC;IACtB,KAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,KAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxD;AAED,KAAK,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;AAE7C,SAAS,aAAa,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../models/config.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAyqDjD,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AA4PF,QAAA,MAAM,aAAa;qBA5UW,MAAM,QAAQ,GAAG,KAAG,OAAO,CAAC,GAAG,CAAC;wBAa/B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;qBA8B5B,MAAM,SAAS,GAAG,KAAG,OAAO,CAAC,IAAI,CAAC;wBA8B/B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;;6BAejB,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAmGjE,MAAM,eACE,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC;6CA+CH,MAAM,KAClB,OAAO,CAAC,MAAM,EAAE,CAAC;yBAkDQ,GAAG,KAAG,MAAM;kCAvLG,GAAG,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;8BA4M/B,MAAM,KAAG,OAAO;CAqChD,CAAC;AAEF,kBAAU,aAAa,CAAC;IACtB,KAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,KAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxD;AAED,KAAK,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;AAE7C,SAAS,aAAa,CAAC"}
@@ -1540,6 +1540,22 @@ const configTypes = {
1540
1540
  default: {},
1541
1541
  excludeFromMobile: true,
1542
1542
  },
1543
+ mobile_emit_allowed_events: {
1544
+ type: "String[]",
1545
+ label: "Mobile app: allowed emit events",
1546
+ default: [],
1547
+ blurb: "Additional event types that authenticated mobile app users may emit via POST /api/emit-event. " +
1548
+ "ReceiveMobileShareData is always allowed.",
1549
+ excludeFromMobile: true,
1550
+ },
1551
+ mobile_emit_public_events: {
1552
+ type: "String[]",
1553
+ label: "Mobile app: public emit events",
1554
+ default: [],
1555
+ blurb: "Unauthenticated (public) mobile app users may emit these event types to the server " +
1556
+ "via POST /api/emit-event. Empty by default — no events can be emitted without login.",
1557
+ excludeFromMobile: true,
1558
+ },
1543
1559
  mail_throttle_per_user: {
1544
1560
  type: "Integer",
1545
1561
  label: "Throttle time per user",