@things-factory/shell 7.0.1-beta.7 → 7.0.1-rc.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 (82) hide show
  1. package/client/themes/app-theme.css +25 -34
  2. package/client/themes/dark.css +0 -100
  3. package/client/themes/grist-theme.css +12 -10
  4. package/client/themes/layout-theme.css +0 -5
  5. package/client/themes/light.css +0 -100
  6. package/client/themes/oops-theme.css +2 -2
  7. package/client/themes/report-theme.css +47 -0
  8. package/client/themes/state-color.css +1 -1
  9. package/dist-server/initializers/database.js +6 -6
  10. package/dist-server/initializers/database.js.map +1 -1
  11. package/dist-server/middlewares/domain-middleware.js +1 -2
  12. package/dist-server/middlewares/domain-middleware.js.map +1 -1
  13. package/dist-server/middlewares/index.js +1 -2
  14. package/dist-server/middlewares/index.js.map +1 -1
  15. package/dist-server/pubsub.js +0 -1
  16. package/dist-server/pubsub.js.map +1 -1
  17. package/dist-server/routers/global-router.js.map +1 -1
  18. package/dist-server/schema.js +1 -2
  19. package/dist-server/schema.js.map +1 -1
  20. package/dist-server/server-dev.js.map +1 -1
  21. package/dist-server/server.js.map +1 -1
  22. package/dist-server/service/attribute-set/attribute-set-item-type.js +5 -5
  23. package/dist-server/service/attribute-set/attribute-set-item-type.js.map +1 -1
  24. package/dist-server/service/attribute-set/attribute-set-mutation.js +2 -2
  25. package/dist-server/service/attribute-set/attribute-set-mutation.js.map +1 -1
  26. package/dist-server/service/attribute-set/attribute-set-query.js +3 -3
  27. package/dist-server/service/attribute-set/attribute-set-query.js.map +1 -1
  28. package/dist-server/service/attribute-set/attribute-set-type.js +6 -6
  29. package/dist-server/service/attribute-set/attribute-set-type.js.map +1 -1
  30. package/dist-server/service/attribute-set/attribute-set.js +2 -2
  31. package/dist-server/service/attribute-set/attribute-set.js.map +1 -1
  32. package/dist-server/service/common-types/list-param.js +9 -9
  33. package/dist-server/service/common-types/list-param.js.map +1 -1
  34. package/dist-server/service/common-types/log.js +2 -2
  35. package/dist-server/service/common-types/log.js.map +1 -1
  36. package/dist-server/service/common-types/object-ref.js +2 -2
  37. package/dist-server/service/common-types/object-ref.js.map +1 -1
  38. package/dist-server/service/common-types/scalar-any.js.map +1 -1
  39. package/dist-server/service/common-types/scalar-date.js.map +1 -1
  40. package/dist-server/service/directive-transaction/transaction.js.map +1 -1
  41. package/dist-server/service/domain/{domain-Mutation.js → domain-mutation.js} +3 -3
  42. package/dist-server/service/domain/domain-mutation.js.map +1 -0
  43. package/dist-server/service/domain/domain-query.js +3 -3
  44. package/dist-server/service/domain/domain-query.js.map +1 -1
  45. package/dist-server/service/domain/domain-types.js +6 -6
  46. package/dist-server/service/domain/domain-types.js.map +1 -1
  47. package/dist-server/service/domain/domain.js +6 -7
  48. package/dist-server/service/domain/domain.js.map +1 -1
  49. package/dist-server/service/domain/index.d.ts +1 -1
  50. package/dist-server/service/domain/index.js +2 -2
  51. package/dist-server/service/domain/index.js.map +1 -1
  52. package/dist-server/service/index.d.ts +1 -1
  53. package/dist-server/service/subscription-data/data-resolver.js +2 -2
  54. package/dist-server/service/subscription-data/data-resolver.js.map +1 -1
  55. package/dist-server/service/subscription-data/data-types.js +2 -2
  56. package/dist-server/service/subscription-data/data-types.js.map +1 -1
  57. package/dist-server/tsconfig.tsbuildinfo +1 -1
  58. package/dist-server/typeorm/encrypt-transform.js +1 -1
  59. package/dist-server/typeorm/encrypt-transform.js.map +1 -1
  60. package/dist-server/typeorm/get-data-encryption-key.js.map +1 -1
  61. package/dist-server/typeorm/json5-transform.js.map +1 -1
  62. package/dist-server/utils/condition-builder.js.map +1 -1
  63. package/dist-server/utils/get-domain.d.ts +0 -1
  64. package/dist-server/utils/get-domain.js +7 -8
  65. package/dist-server/utils/get-domain.js.map +1 -1
  66. package/dist-server/utils/get-query-builder-from-list-params.js +1 -2
  67. package/dist-server/utils/get-query-builder-from-list-params.js.map +1 -1
  68. package/dist-server/utils/get-times-for-period.js +2 -3
  69. package/dist-server/utils/get-times-for-period.js.map +1 -1
  70. package/dist-server/utils/list-param-adjuster.js +1 -2
  71. package/dist-server/utils/list-param-adjuster.js.map +1 -1
  72. package/dist-server/utils/list-params-converter.js +1 -2
  73. package/dist-server/utils/list-params-converter.js.map +1 -1
  74. package/dist-server/utils/list-query-builder.js.map +1 -1
  75. package/dist-server/utils/publish-progress.js +1 -2
  76. package/dist-server/utils/publish-progress.js.map +1 -1
  77. package/package.json +14 -14
  78. package/server/service/attribute-set/attribute-set-query.ts +1 -1
  79. package/server/service/domain/domain-query.ts +1 -1
  80. package/server/service/domain/index.ts +1 -1
  81. package/dist-server/service/domain/domain-Mutation.js.map +0 -1
  82. /package/dist-server/service/domain/{domain-Mutation.d.ts → domain-mutation.d.ts} +0 -0
@@ -1,43 +1,30 @@
1
1
  body {
2
2
  /* theme color */
3
- --primary-color-rgb: 34, 166, 167;
4
- --primary-color: rgb(var(--primary-color-rgb));
5
- --secondary-color-rgb: 57, 78, 100;
6
- --secondary-color: rgb(var(--secondary-color-rgb));
3
+ --primary-color: var(--md-sys-color-primary);
4
+ --secondary-color: var(--md-sys-color-secondary);
7
5
  --focus-color: var(--md-sys-color-on-primary);
8
- --primary-background-color: var(--md-sys-color-secondary);
9
- --secondary-background-color: #283644;
10
- --md-sys-color-on-primary: #fff;
11
- --theme-black-color: rgba(0, 0, 0, 0.9);
6
+ --primary-background-color: var(--md-sys-color-primary-container);
7
+ --secondary-background-color: var(--md-sys-color-secondary-container);
12
8
 
13
9
  --focus-background-color: var(--md-sys-color-primary);
14
- --primary-text-color: #111;
15
- --secondary-text-color: #017e7f;
16
-
17
- --opacity-dark-color: rgba(0, 0, 0, 0.4);
18
- --opacity-light-color: rgba(255, 255, 255, 0.8);
19
-
20
- /* status color */
21
- --status-success-color: #35a24a;
22
- --status-warning-color: #ee8d03;
23
- --status-danger-color: #d14946;
24
- --status-info-color: #398ace;
10
+ --primary-text-color: var(--md-sys-color-on-primary);
11
+ --secondary-text-color: var(--md-sys-color-on-secondary);
25
12
 
26
13
  /* common style */
27
14
  --border-radius: 4px;
28
- --border-dark-color: 1px solid rgba(0, 0, 0, 0.15);
15
+ --border-dim-color: 1px solid rgba(0, 0, 0, 0.15);
29
16
  --border-light-color: 1px solid rgba(255, 255, 255, 0.3);
30
17
 
31
18
  --box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1);
32
19
 
33
20
  --theme-font: 'Noto', Helvetica;
34
21
 
35
- --margin-default: 9px;
36
- --margin-narrow: 4px;
37
- --margin-wide: 15px;
38
- --padding-default: var(--margin-default);
39
- --padding-narrow: var(--margin-narrow);
40
- --padding-wide: var(--margin-wide);
22
+ --margin-default: var(--spacing-medium, 8px);
23
+ --margin-narrow: var(--spacing-small, 4px);
24
+ --margin-wide: var(--spacing-large, 12px);
25
+ --padding-default: var(--spacing-medium, 8px);
26
+ --padding-narrow: var(--spacing-small, 4px);
27
+ --padding-wide: var(--spacing-large, 12px);
41
28
 
42
29
  --scrollbar-thumb-color: rgba(57, 78, 100, 0.5);
43
30
  --scrollbar-thumb-hover-color: var(--md-sys-color-primary);
@@ -57,7 +44,7 @@ body {
57
44
 
58
45
  --page-description-margin: var(--margin-narrow) 0 var(--margin-wide) 0;
59
46
  --page-description-font: normal var(--fontsize-default) / 1.2rem var(--theme-font);
60
- --page-description-color: var(--secondary-text-color);
47
+ --page-description-color: var(--md-sys-color-on-secondary-container);
61
48
 
62
49
  --subtitle-padding: 12px 5px 3px 5px;
63
50
  --subtitle-font: bold 18px var(--theme-font);
@@ -65,9 +52,9 @@ body {
65
52
  --subtitle-border-bottom: 1px solid var(--md-sys-color-primary);
66
53
 
67
54
  /* icon style */
68
- --icon-tiny-size: 24px;
69
- --icon-default-size: 36px;
70
- --icon-big-size: 48px;
55
+ --icon-tiny-size: var(--icon-size-medium, 24px);
56
+ --icon-default-size: var(--icon-size-large, 32px);
57
+ --icon-big-size: var(--icon-size-huge, 48px);
71
58
  --icon-default-color: var(--md-sys-color-on-primary);
72
59
 
73
60
  /* material design component themes */
@@ -82,9 +69,9 @@ body {
82
69
  --mdc-button-horizontal-padding: 16px;
83
70
 
84
71
  /* button style */
85
- --button-background-color: #fafbfc;
72
+ --button-background-color: var(--md-sys-color-surface-variant);
86
73
  --button-background-focus-color: var(--md-sys-color-primary);
87
- --button-border: var(--border-dark-color);
74
+ --button-border: var(--border-dim-color);
88
75
  --button-border-radius: var(--border-radius);
89
76
  --button-margin: var(--margin-default) var(--margin-default) var(--margin-default) 0;
90
77
  --button-padding: calc(var(--padding-narrow) * 1.5) var(--padding-wide);
@@ -108,7 +95,7 @@ body {
108
95
  --th-border-top: 2px solid var(--md-sys-color-secondary);
109
96
  --th-text-transform: capitalize;
110
97
  --th-font: bold var(--fontsize-small) var(--theme-font);
111
- --th-color: rgba(var(--secondary-color-rgb), 0.8);
98
+ --th-color: var(--md-sys-color-secondary);
112
99
 
113
100
  --tr-background-color: var(--md-sys-color-surface-variant);
114
101
  --tr-background-odd-color: rgba(255, 255, 255, 0.4);
@@ -119,7 +106,7 @@ body {
119
106
  --td-font: normal 13px var(--theme-font);
120
107
  --td-color: var(--md-sys-color-secondary);
121
108
 
122
- --label-cell-background-color: #f6f6f6; /* th or td common background color */
109
+ --label-cell-background-color: var(--md-sys-color-surface); /* th or td common background color */
123
110
 
124
111
  /* form style */
125
112
  --label-font: normal var(--fontsize-default) var(--theme-font);
@@ -139,6 +126,10 @@ body {
139
126
  --legend-font: bold 16px var(--theme-font);
140
127
  }
141
128
 
129
+ body.dark {
130
+ caret-color: white;
131
+ }
132
+
142
133
  @media only screen and (max-width: 460px) {
143
134
  body {
144
135
  /* subtitle style */
@@ -48,104 +48,4 @@
48
48
  --md-sys-color-surface-container: rgb(30 31 37);
49
49
  --md-sys-color-surface-container-high: rgb(41 42 47);
50
50
  --md-sys-color-surface-container-highest: rgb(51 52 58);
51
-
52
- /* primary palette */
53
- --md-ref-palette-primary0:#000000;
54
- --md-ref-palette-primary5:#000E32;
55
- --md-ref-palette-primary10:#001848;
56
- --md-ref-palette-primary15:#00215E;
57
- --md-ref-palette-primary20:#002B74;
58
- --md-ref-palette-primary25:#002B74;
59
- --md-ref-palette-primary30:#0040A2;
60
- --md-ref-palette-primary35:#002B74;
61
- --md-ref-palette-primary40:#1957CA;
62
- --md-ref-palette-primary50:#3E71E5;
63
- --md-ref-palette-primary60:#5C8BFF;
64
- --md-ref-palette-primary70:#89A9FF;
65
- --md-ref-palette-primary80:#B2C5FF;
66
- --md-ref-palette-primary90:#DAE2FF;
67
- --md-ref-palette-primary95:#EEF0FF;
68
- --md-ref-palette-primary98:#FAF8FF;
69
- --md-ref-palette-primary99:#FEFBFF;
70
- --md-ref-palette-primary100:#FFFFFF;
71
-
72
- /* secondary palette */
73
- --md-ref-palette-secondary0:#000000;
74
- --md-ref-palette-secondary5:#00131D;
75
- --md-ref-palette-secondary10:#001E2C;
76
- --md-ref-palette-secondary15:#00293A;
77
- --md-ref-palette-secondary20:#003549;
78
- --md-ref-palette-secondary25:#004058;
79
- --md-ref-palette-secondary30:#004C68;
80
- --md-ref-palette-secondary35:#005978;
81
- --md-ref-palette-secondary40:#006689;
82
- --md-ref-palette-secondary50:#0080AC;
83
- --md-ref-palette-secondary60:#009BCF;
84
- --md-ref-palette-secondary70:#00B8F4;
85
- --md-ref-palette-secondary80:#79D1FF;
86
- --md-ref-palette-secondary90:#C3E8FF;
87
- --md-ref-palette-secondary95:#E3F3FF;
88
- --md-ref-palette-secondary98:#F5FAFF;
89
- --md-ref-palette-secondary99:#FBFCFF;
90
- --md-ref-palette-secondary100:#FFFFFF;
91
-
92
- /* tertiary palette */
93
- --md-ref-palette-tertiary0:#000000;
94
- --md-ref-palette-tertiary5:#00150A;
95
- --md-ref-palette-tertiary10:#002113;
96
- --md-ref-palette-tertiary15:#002C1B;
97
- --md-ref-palette-tertiary20:#003823;
98
- --md-ref-palette-tertiary25:#00452B;
99
- --md-ref-palette-tertiary30:#005234;
100
- --md-ref-palette-tertiary35:#005F3E;
101
- --md-ref-palette-tertiary40:#006C47;
102
- --md-ref-palette-tertiary50:#00885A;
103
- --md-ref-palette-tertiary60:#31A372;
104
- --md-ref-palette-tertiary70:#51BF8B;
105
- --md-ref-palette-tertiary80:#6EDBA5;
106
- --md-ref-palette-tertiary90:#A2F4C7;
107
- --md-ref-palette-tertiary95:#BFFFD9;
108
- --md-ref-palette-tertiary98:#E8FFEF;
109
- --md-ref-palette-tertiary99:#F4FFF5;
110
- --md-ref-palette-tertiary100:#FFFFFF;
111
-
112
- /* error palette */
113
- --md-ref-palette-error0:#000000;
114
- --md-ref-palette-error5:#2d0102;
115
- --md-ref-palette-error10:#410304;
116
- --md-ref-palette-error15:#540507;
117
- --md-ref-palette-error20:#68070a;
118
- --md-ref-palette-error25:#7d0b0e;
119
- --md-ref-palette-error30:#930f14;
120
- --md-ref-palette-error35:#a91319;
121
- --md-ref-palette-error40:#bc1620;
122
- --md-ref-palette-error50:#e03236;
123
- --md-ref-palette-error60:#ff5450;
124
- --md-ref-palette-error70:#ff8982;
125
- --md-ref-palette-error80:#ffb3ad;
126
- --md-ref-palette-error90:#ffdad7;
127
- --md-ref-palette-error95:#ffedeb;
128
- --md-ref-palette-error98:#fff8f7;
129
- --md-ref-palette-error99:#fffbff;
130
- --md-ref-palette-error100:#FFFFFF;
131
-
132
- /* neutral palette */
133
- --md-ref-palette-neutral0:#000000;
134
- --md-ref-palette-neutral5:#111111;
135
- --md-ref-palette-neutral10:#1C1C1C;
136
- --md-ref-palette-neutral15:#262626;
137
- --md-ref-palette-neutral20:#313131;
138
- --md-ref-palette-neutral25:#3C3C3C;
139
- --md-ref-palette-neutral30:#474747;
140
- --md-ref-palette-neutral35:#535353;
141
- --md-ref-palette-neutral40:#5F5F5F;
142
- --md-ref-palette-neutral50:#787878;
143
- --md-ref-palette-neutral60:#929292;
144
- --md-ref-palette-neutral70:#ACACAC;
145
- --md-ref-palette-neutral80:#C8C8C8;
146
- --md-ref-palette-neutral90:#E4E4E4;
147
- --md-ref-palette-neutral95:#F0F0F0;
148
- --md-ref-palette-neutral98:#F9F9F9;
149
- --md-ref-palette-neutral99:#FEFEFE;
150
- --md-ref-palette-neutral100:#FFFFFF;
151
51
  }
@@ -20,7 +20,7 @@ body {
20
20
 
21
21
  --grist-input-progress-border: 1px solid rgba(255, 255, 255, 0.5);
22
22
  --grist-input-progress-background: rgba(121, 110, 110, 0.1);
23
- --grist-input-progress-bar-background: var(--md-ref-palette-primary50);
23
+ --grist-input-progress-bar-background: var(--md-sys-color-primary-fixed-dim);
24
24
  --grist-input-progress-bar-color: var(--md-sys-color-on-surface-variant);
25
25
 
26
26
  --grid-header-background-color: var(--md-sys-color-surface-container-low);
@@ -49,12 +49,10 @@ body {
49
49
  --grid-record-color-hover: var(--md-sys-color-primary);
50
50
  --grid-record-wide-fontsize: var(--md-sys-typescale-label-large-size, 0.875rem);
51
51
  --grid-record-selected-background-color: var(--md-sys-color-primary-container);
52
- --grid-record-selected-color: var(--md-sys-color-primary);
53
- --grid-record-focused-background-color: var(--md-sys-color-secondary-container);
52
+ --grid-record-selected-color: var(--md-sys-color-on-primary-container);
54
53
  --grid-record-focused-border: 1px solid var(--md-sys-color-outline-variant);
55
54
  --grid-record-focused-cell-background-color: var(--md-sys-color-secondary-container);
56
55
  --grid-record-focused-cell-border: 1px dashed var(--md-sys-color-outline);
57
- --grid-record-focused-color: var(--md-sys-color-secondary);
58
56
  --grid-record-focused-box-shadow: 0px 2px 0px 0px rgb(0 0 0 / 10%);
59
57
  --grid-record-emphasized-background-color: var(--md-sys-color-secondary-fixed-dim);
60
58
  --grid-record-emphasized-color: var(--md-sys-color-on-secondary-fixed-variant);
@@ -72,8 +70,8 @@ body {
72
70
  --grid-footer-background-color: var(--md-sys-color-surface-container-low);
73
71
  --grid-footer-font-size: var(--md-sys-typescale-label-large-size, 0.875rem);
74
72
  --grid-footer-color: var(--md-sys-color-primary);
75
- --grid-footer-limit-color: var(--md-ref-palette-neutral40);
76
- --grid-footer-inactive-color: var(--md-ref-palette-neutral40);
73
+ --grid-footer-limit-color: var(--md-ref-palette-neutral40, #5f5f5f);
74
+ --grid-footer-inactive-color: var(--md-ref-palette-neutral40, #5f5f5f);
77
75
  --grid-footer-padding: var(--spacing-small) var(--spacing-medium);
78
76
 
79
77
  --data-list-background-color: var(--md-sys-color-surface-container-lowest);
@@ -86,7 +84,7 @@ body {
86
84
  --data-list-item-disc-color: var(--md-sys-color-tertiary);
87
85
  --data-list-item-etc-label-font: bold 1em/1em var(--theme-font, 'Roboto');
88
86
  --data-list-item-etc-font: normal 0.9em/1em var(--theme-font, 'Roboto');
89
- --data-list-item-etc-color: var(--md-ref-palette-neutral50);
87
+ --data-list-item-etc-color: var(--md-ref-palette-neutral50, #787878);
90
88
  --data-list-item-icon-font: normal 1em/1em;
91
89
  --data-list-item-icon-color: var(--md-sys-color-on-secondary);
92
90
  --data-list-selected-background-color: var(--grid-record-selected-background-color);
@@ -108,12 +106,12 @@ body {
108
106
  --data-card-item-name-font: bold 1.1em var(--theme-font, 'Roboto');
109
107
  --data-card-item-name-color: var(--md-sys-color-secondary);
110
108
  --data-card-item-name-label-font: normal 0.65em/0.8em var(--theme-font, 'Roboto');
111
- --data-card-item-name-label-color: rgba(var(--secondary-color-rgb), 0.8);
109
+ --data-card-item-name-label-color: var(--md-sys-color-secondary);
112
110
  --data-card-item-disc-font: normal 0.9em var(--theme-font, 'Roboto');
113
111
  --data-card-item-disc-color: var(--md-sys-color-tertiary);
114
112
  --data-card-item-etc-label-font: normal 1em/1em var(--theme-font, 'Roboto');
115
113
  --data-card-item-etc-font: normal 0.9em/1em var(--theme-font, 'Roboto');
116
- --data-card-item-etc-color: var(--md-ref-palette-neutral50);
114
+ --data-card-item-etc-color: var(--md-ref-palette-neutral50, #787878);
117
115
  --data-card-item-icon-font: normal 1em/1em;
118
116
  --data-card-item-icon-color: var(--md-sys-color-on-secondary);
119
117
  --data-card-item-btn-border: var(--grid-container-border-color);
@@ -142,7 +140,7 @@ body {
142
140
  --record-view-edit-border-bottom: 2px solid var(--md-sys-color-primary);
143
141
  --record-view-item-padding: var(--spacing-medium);
144
142
 
145
- --record-view-footer-background: var(--md-ref-palette-neutral50);
143
+ --record-view-footer-background: var(--md-ref-palette-neutral50, #787878);
146
144
  --record-view-footer-button-border: var(--grid-container-border-color);
147
145
  --record-view-footer-button-border-width: 0 0 0 1px;
148
146
  --record-view-footer-button-font: 17px;
@@ -171,3 +169,7 @@ body {
171
169
  --data-card-create-form-padding: 7px;
172
170
  }
173
171
  }
172
+
173
+ body.dark {
174
+ --grid-container-border-color: 1px solid rgba(255, 255, 255, 0.09);
175
+ }
@@ -60,11 +60,6 @@ body {
60
60
  --splitter-hover-background-color: rgba(0, 0, 0, 0.1);
61
61
  }
62
62
 
63
- .dark {
64
- --header-bar-background-color: var(--md-sys-color-inverse-primary);
65
- --header-bar-color: var(--md-sys-color-primary);
66
- }
67
-
68
63
  @media only screen and (max-width: 460px) {
69
64
  body {
70
65
  --button-container-margin: 0 -15px;
@@ -48,104 +48,4 @@
48
48
  --md-sys-color-surface-container: rgb(238 237 244);
49
49
  --md-sys-color-surface-container-high: rgb(232 231 239);
50
50
  --md-sys-color-surface-container-highest: rgb(227 226 233);
51
-
52
- /* primary palette */
53
- --md-ref-palette-primary0: #000000;
54
- --md-ref-palette-primary5: #000e32;
55
- --md-ref-palette-primary10: #001848;
56
- --md-ref-palette-primary15: #00215e;
57
- --md-ref-palette-primary20: #002b74;
58
- --md-ref-palette-primary25: #002b74;
59
- --md-ref-palette-primary30: #0040a2;
60
- --md-ref-palette-primary35: #002b74;
61
- --md-ref-palette-primary40: #1957ca;
62
- --md-ref-palette-primary50: #3e71e5;
63
- --md-ref-palette-primary60: #5c8bff;
64
- --md-ref-palette-primary70: #89a9ff;
65
- --md-ref-palette-primary80: #b2c5ff;
66
- --md-ref-palette-primary90: #dae2ff;
67
- --md-ref-palette-primary95: #eef0ff;
68
- --md-ref-palette-primary98: #faf8ff;
69
- --md-ref-palette-primary99: #fefbff;
70
- --md-ref-palette-primary100: #ffffff;
71
-
72
- /* secondary palette */
73
- --md-ref-palette-secondary0: #000000;
74
- --md-ref-palette-secondary5: #00131d;
75
- --md-ref-palette-secondary10: #001e2c;
76
- --md-ref-palette-secondary15: #00293a;
77
- --md-ref-palette-secondary20: #003549;
78
- --md-ref-palette-secondary25: #004058;
79
- --md-ref-palette-secondary30: #004c68;
80
- --md-ref-palette-secondary35: #005978;
81
- --md-ref-palette-secondary40: #006689;
82
- --md-ref-palette-secondary50: #0080ac;
83
- --md-ref-palette-secondary60: #009bcf;
84
- --md-ref-palette-secondary70: #00b8f4;
85
- --md-ref-palette-secondary80: #79d1ff;
86
- --md-ref-palette-secondary90: #c3e8ff;
87
- --md-ref-palette-secondary95: #e3f3ff;
88
- --md-ref-palette-secondary98: #f5faff;
89
- --md-ref-palette-secondary99: #fbfcff;
90
- --md-ref-palette-secondary100: #ffffff;
91
-
92
- /* tertiary palette */
93
- --md-ref-palette-tertiary0: #000000;
94
- --md-ref-palette-tertiary5: #00150a;
95
- --md-ref-palette-tertiary10: #002113;
96
- --md-ref-palette-tertiary15: #002c1b;
97
- --md-ref-palette-tertiary20: #003823;
98
- --md-ref-palette-tertiary25: #00452b;
99
- --md-ref-palette-tertiary30: #005234;
100
- --md-ref-palette-tertiary35: #005f3e;
101
- --md-ref-palette-tertiary40: #006c47;
102
- --md-ref-palette-tertiary50: #00885a;
103
- --md-ref-palette-tertiary60: #31a372;
104
- --md-ref-palette-tertiary70: #51bf8b;
105
- --md-ref-palette-tertiary80: #6edba5;
106
- --md-ref-palette-tertiary90: #a2f4c7;
107
- --md-ref-palette-tertiary95: #bfffd9;
108
- --md-ref-palette-tertiary98: #e8ffef;
109
- --md-ref-palette-tertiary99: #f4fff5;
110
- --md-ref-palette-tertiary100: #ffffff;
111
-
112
- /* error palette */
113
- --md-ref-palette-error0: #000000;
114
- --md-ref-palette-error5: #2d0102;
115
- --md-ref-palette-error10: #410304;
116
- --md-ref-palette-error15: #540507;
117
- --md-ref-palette-error20: #68070a;
118
- --md-ref-palette-error25: #7d0b0e;
119
- --md-ref-palette-error30: #930f14;
120
- --md-ref-palette-error35: #a91319;
121
- --md-ref-palette-error40: #bc1620;
122
- --md-ref-palette-error50: #e03236;
123
- --md-ref-palette-error60: #ff5450;
124
- --md-ref-palette-error70: #ff8982;
125
- --md-ref-palette-error80: #ffb3ad;
126
- --md-ref-palette-error90: #ffdad7;
127
- --md-ref-palette-error95: #ffedeb;
128
- --md-ref-palette-error98: #fff8f7;
129
- --md-ref-palette-error99: #fffbff;
130
- --md-ref-palette-error100: #ffffff;
131
-
132
- /* neutral palette */
133
- --md-ref-palette-neutral0: #000000;
134
- --md-ref-palette-neutral5: #111111;
135
- --md-ref-palette-neutral10: #1c1c1c;
136
- --md-ref-palette-neutral15: #262626;
137
- --md-ref-palette-neutral20: #313131;
138
- --md-ref-palette-neutral25: #3c3c3c;
139
- --md-ref-palette-neutral30: #474747;
140
- --md-ref-palette-neutral35: #535353;
141
- --md-ref-palette-neutral40: #5f5f5f;
142
- --md-ref-palette-neutral50: #787878;
143
- --md-ref-palette-neutral60: #929292;
144
- --md-ref-palette-neutral70: #acacac;
145
- --md-ref-palette-neutral80: #c8c8c8;
146
- --md-ref-palette-neutral90: #e4e4e4;
147
- --md-ref-palette-neutral95: #f0f0f0;
148
- --md-ref-palette-neutral98: #f9f9f9;
149
- --md-ref-palette-neutral99: #fefefe;
150
- --md-ref-palette-neutral100: #ffffff;
151
51
  }
@@ -1,8 +1,8 @@
1
1
  body {
2
2
  /* oops note style */
3
3
  --oops-note-icon-font: normal 24px var(--mdc-icon-font, 'Material Icons');
4
- --oops-note-icon-color: rgba(var(--secondary-color-rgb), 0.3);
5
- --oops-note-icon-border: 2px solid rgba(var(--secondary-color-rgb), 0.3);
4
+ --oops-note-icon-color: var(--md-sys-color-on-surface);
5
+ --oops-note-icon-border: 2px solid var(--md-sys-color-outline);
6
6
  --oops-note-icon-border-radius: 50px;
7
7
  --oops-note-icon-padding: var(--padding-default);
8
8
  --oops-note-title-margin: 7px 0 2px 0;
@@ -0,0 +1,47 @@
1
+ body {
2
+ --report-background-color: var(--md-sys-color-background);
3
+ --report-padding: 15px;
4
+ --report-title-margin: 0 0 0 10px;
5
+ --report-title-border: none;
6
+ --report-title-color: var(--md-sys-color-secondary);
7
+ --report-title-icon-color: var(--md-sys-color-primary);
8
+ --report-title-icon-margin: 0 3px 2px 0;
9
+ --report-title-icon-size: 14px;
10
+ --report-title-with-grid-padding: 0;
11
+ --report-component-border-radius: var(--border-radius);
12
+
13
+ --report-header-background-color: var(--md-sys-color-surface);
14
+ --report-header-border: 1px solid var(--report-header-border-color);
15
+ --report-header-border-color: var(--md-sys-color-outline);
16
+ --report-header-padding: 5px 0 5px 5px;
17
+ --report-header-color: var(--secondary-text-color);
18
+ --report-header-font: normal 1em/1.5 var(--theme-font);
19
+ --report-header-fontsize: 13px;
20
+
21
+ --report-record-background-color: #fff;
22
+ --report-record-odd-background-color: #f6f6f6;
23
+ --report-record-field-padding: 7px 10px;
24
+ --report-record-field-border-bottom: 1px solid rgba(0, 0, 0, 0.1);
25
+ --report-record-wide-fontsize: 13px;
26
+ --report-record-focused-background-color: #ffde3b47;
27
+ --report-record-focused-border: 1px dashed rgba(0, 0, 0, 0.5);
28
+
29
+ --report-totalized-background-color: #efefef;
30
+ --report-totalized-border: 1px solid rgba(0, 0, 0, 0.1);
31
+ --report-totalized-color: var(--secondary-text-color);
32
+
33
+ --report-grouped-background-color: #607d8bbf;
34
+ --report-grouped-border: 1px solid rgba(0, 0, 0, 0.2);
35
+ --report-grouped-color: #fff;
36
+ }
37
+
38
+ @media print {
39
+ body {
40
+ --report-header-padding: 5px;
41
+ --report-record-field-padding: 5px;
42
+ --report-record-wide-fontsize: 10px;
43
+ --report-grouped-background-color: #d7d7d7;
44
+ --report-grouped-color: #000;
45
+ --report-totalized-color: #000;
46
+ }
47
+ }
@@ -1,5 +1,5 @@
1
1
  :root {
2
- --status-danger-color: var(--md-sys-color-error, rgb(186 26 26));
2
+ --status-danger-color: var(--md-sys-color-error, #d14946);
3
3
  --status-warning-color: #ee8d03;
4
4
  --status-info-color: #398ace;
5
5
  --status-success-color: #35a24a;
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.databaseInitializer = exports.getRepository = exports.getDataSourceNames = exports.removeDataSource = exports.addDataSource = exports.getDataSource = void 0;
3
+ exports.databaseInitializer = void 0;
4
+ exports.getDataSource = getDataSource;
5
+ exports.addDataSource = addDataSource;
6
+ exports.removeDataSource = removeDataSource;
7
+ exports.getDataSourceNames = getDataSourceNames;
8
+ exports.getRepository = getRepository;
4
9
  const typeorm_1 = require("typeorm");
5
10
  const env_1 = require("@things-factory/env");
6
11
  const path = require('path');
@@ -20,7 +25,6 @@ const dataSources = {};
20
25
  function getDataSource(name) {
21
26
  return dataSources[name || 'default'];
22
27
  }
23
- exports.getDataSource = getDataSource;
24
28
  /**
25
29
  * Adds a new DataSource with the specified name.
26
30
  * @param {string} name - The name of the DataSource to add.
@@ -29,7 +33,6 @@ exports.getDataSource = getDataSource;
29
33
  function addDataSource(name, dataSource) {
30
34
  dataSources[name] = dataSource;
31
35
  }
32
- exports.addDataSource = addDataSource;
33
36
  /**
34
37
  * Removes a DataSource with the specified name.
35
38
  * @param {string} name - The name of the DataSource to remove.
@@ -37,7 +40,6 @@ exports.addDataSource = addDataSource;
37
40
  function removeDataSource(name) {
38
41
  delete dataSources[name];
39
42
  }
40
- exports.removeDataSource = removeDataSource;
41
43
  /**
42
44
  * Returns an array of all registered DataSource names.
43
45
  * @returns {string[]} - An array of DataSource names.
@@ -45,7 +47,6 @@ exports.removeDataSource = removeDataSource;
45
47
  function getDataSourceNames() {
46
48
  return Object.keys(dataSources);
47
49
  }
48
- exports.getDataSourceNames = getDataSourceNames;
49
50
  /**
50
51
  * Returns a repository for the specified entity.
51
52
  * @param {EntityTarget<X>} target - The target entity for which to get the repository.
@@ -54,7 +55,6 @@ exports.getDataSourceNames = getDataSourceNames;
54
55
  function getRepository(target) {
55
56
  return getDataSource('default').getRepository(target);
56
57
  }
57
- exports.getRepository = getRepository;
58
58
  /**
59
59
  * Initializes the database connections and data sources.
60
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../server/initializers/database.ts"],"names":[],"mappings":";;;AAAA,qCAAgF;AAEhF,6CAAiE;AAEjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,IAAI,SAAS,CAAA;AACb,IAAI;IACF,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAW,EAAE,WAAW,CAAC,CAAC,CAAA;CAC5D;AAAC,OAAO,CAAC,EAAE;IACV,SAAS,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,GAAmC,EAAE,CAAA;AAEtD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAAa;IACzC,OAAO,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;AACvC,CAAC;AAFD,sCAEC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,UAAsB;IAChE,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAA;AAChC,CAAC;AAFD,sCAEC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAFD,4CAEC;AAED;;;GAGG;AACH,SAAgB,kBAAkB;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACjC,CAAC;AAFD,gDAEC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAI,MAAuB;IACtD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,aAAa,CAAI,MAAM,CAAC,CAAA;AAC1D,CAAC;AAFD,sCAEC;AAED;;GAEG;AACI,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC5C,IAAI;QACF,MAAM,oBAAoB,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAEpD,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAgB,kCACpC,SAAS,GACT,oBAAoB,EACvB,CAAA;QAEF,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAEpC,YAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QAE7C,IAAI,oBAAoB,CAAC,IAAI,IAAI,QAAQ,IAAI,oBAAoB,CAAC,WAAW,IAAI,KAAK,EAAE;YACtF,MAAM,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;YACjD,MAAM,UAAU,CAAC,WAAW,EAAE,CAAA;YAC9B,MAAM,UAAU,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;SACjD;QAED,IAAI,YAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC9B,MAAM,aAAa,GAAG,IAAI,oBAAU,iCAC/B,SAAS,GACT,YAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAC7B,CAAA;YACF,MAAM,aAAa,CAAC,UAAU,EAAE,CAAA;YAChC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;YAElC,YAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;SAClD;aAAM;YACL,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SAChC;KACF;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC,CAAA;AAlCY,QAAA,mBAAmB,uBAkC/B","sourcesContent":["import { createConnection, DataSource, EntityTarget, Repository } from 'typeorm'\n\nimport { appRootPath, config, logger } from '@things-factory/env'\n\nconst path = require('path')\n\nvar ormconfig\ntry {\n ormconfig = require(path.resolve(appRootPath, 'ormconfig'))\n} catch (e) {\n ormconfig = require('@things-factory/shell/ormconfig')\n}\n\nconst dataSources: { [name: string]: DataSource } = {}\n\n/**\n * Returns the specified DataSource by name.\n * @param {string} name - The name of the DataSource.\n * @returns {DataSource} - The DataSource with the specified name.\n */\nexport function getDataSource(name?: string): DataSource {\n return dataSources[name || 'default']\n}\n\n/**\n * Adds a new DataSource with the specified name.\n * @param {string} name - The name of the DataSource to add.\n * @param {DataSource} dataSource - The DataSource to add.\n */\nexport function addDataSource(name: string, dataSource: DataSource) {\n dataSources[name] = dataSource\n}\n\n/**\n * Removes a DataSource with the specified name.\n * @param {string} name - The name of the DataSource to remove.\n */\nexport function removeDataSource(name: string) {\n delete dataSources[name]\n}\n\n/**\n * Returns an array of all registered DataSource names.\n * @returns {string[]} - An array of DataSource names.\n */\nexport function getDataSourceNames() {\n return Object.keys(dataSources)\n}\n\n/**\n * Returns a repository for the specified entity.\n * @param {EntityTarget<X>} target - The target entity for which to get the repository.\n * @returns {Repository<X>} - The repository for the specified entity.\n */\nexport function getRepository<X>(target: EntityTarget<X>): Repository<X> {\n return getDataSource('default').getRepository<X>(target)\n}\n\n/**\n * Initializes the database connections and data sources.\n */\nexport const databaseInitializer = async () => {\n try {\n const readConnectionConfig = config.get('ormconfig')\n\n const dataSource = await createConnection({\n ...ormconfig,\n ...readConnectionConfig\n })\n\n addDataSource('default', dataSource)\n\n logger.info('Default DataSource established')\n\n if (readConnectionConfig.type == 'sqlite' && readConnectionConfig.synchronize == false) {\n await dataSource.query('PRAGMA foreign_keys=OFF')\n await dataSource.synchronize()\n await dataSource.query('PRAGMA foreign_keys=ON')\n }\n\n if (config.get('ormconfig4Tx')) {\n const dataSource4Tx = new DataSource({\n ...ormconfig,\n ...config.get('ormconfig4Tx')\n })\n await dataSource4Tx.initialize()\n addDataSource('tx', dataSource4Tx)\n\n logger.info('Transaction DataSource established')\n } else {\n addDataSource('tx', dataSource)\n }\n } catch (e) {\n logger.error(e)\n }\n}\n"]}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../server/initializers/database.ts"],"names":[],"mappings":";;;AAoBA,sCAEC;AAOD,sCAEC;AAMD,4CAEC;AAMD,gDAEC;AAOD,sCAEC;AAxDD,qCAAgF;AAEhF,6CAAiE;AAEjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,IAAI,SAAS,CAAA;AACb,IAAI,CAAC;IACH,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAW,EAAE,WAAW,CAAC,CAAC,CAAA;AAC7D,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,SAAS,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,WAAW,GAAmC,EAAE,CAAA;AAEtD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAAa;IACzC,OAAO,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,UAAsB;IAChE,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAA;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAI,MAAuB;IACtD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,aAAa,CAAI,MAAM,CAAC,CAAA;AAC1D,CAAC;AAED;;GAEG;AACI,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,oBAAoB,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAEpD,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAgB,kCACpC,SAAS,GACT,oBAAoB,EACvB,CAAA;QAEF,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAEpC,YAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QAE7C,IAAI,oBAAoB,CAAC,IAAI,IAAI,QAAQ,IAAI,oBAAoB,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC;YACvF,MAAM,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;YACjD,MAAM,UAAU,CAAC,WAAW,EAAE,CAAA;YAC9B,MAAM,UAAU,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,YAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,IAAI,oBAAU,iCAC/B,SAAS,GACT,YAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAC7B,CAAA;YACF,MAAM,aAAa,CAAC,UAAU,EAAE,CAAA;YAChC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;YAElC,YAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAA;AAlCY,QAAA,mBAAmB,uBAkC/B","sourcesContent":["import { createConnection, DataSource, EntityTarget, Repository } from 'typeorm'\n\nimport { appRootPath, config, logger } from '@things-factory/env'\n\nconst path = require('path')\n\nvar ormconfig\ntry {\n ormconfig = require(path.resolve(appRootPath, 'ormconfig'))\n} catch (e) {\n ormconfig = require('@things-factory/shell/ormconfig')\n}\n\nconst dataSources: { [name: string]: DataSource } = {}\n\n/**\n * Returns the specified DataSource by name.\n * @param {string} name - The name of the DataSource.\n * @returns {DataSource} - The DataSource with the specified name.\n */\nexport function getDataSource(name?: string): DataSource {\n return dataSources[name || 'default']\n}\n\n/**\n * Adds a new DataSource with the specified name.\n * @param {string} name - The name of the DataSource to add.\n * @param {DataSource} dataSource - The DataSource to add.\n */\nexport function addDataSource(name: string, dataSource: DataSource) {\n dataSources[name] = dataSource\n}\n\n/**\n * Removes a DataSource with the specified name.\n * @param {string} name - The name of the DataSource to remove.\n */\nexport function removeDataSource(name: string) {\n delete dataSources[name]\n}\n\n/**\n * Returns an array of all registered DataSource names.\n * @returns {string[]} - An array of DataSource names.\n */\nexport function getDataSourceNames() {\n return Object.keys(dataSources)\n}\n\n/**\n * Returns a repository for the specified entity.\n * @param {EntityTarget<X>} target - The target entity for which to get the repository.\n * @returns {Repository<X>} - The repository for the specified entity.\n */\nexport function getRepository<X>(target: EntityTarget<X>): Repository<X> {\n return getDataSource('default').getRepository<X>(target)\n}\n\n/**\n * Initializes the database connections and data sources.\n */\nexport const databaseInitializer = async () => {\n try {\n const readConnectionConfig = config.get('ormconfig')\n\n const dataSource = await createConnection({\n ...ormconfig,\n ...readConnectionConfig\n })\n\n addDataSource('default', dataSource)\n\n logger.info('Default DataSource established')\n\n if (readConnectionConfig.type == 'sqlite' && readConnectionConfig.synchronize == false) {\n await dataSource.query('PRAGMA foreign_keys=OFF')\n await dataSource.synchronize()\n await dataSource.query('PRAGMA foreign_keys=ON')\n }\n\n if (config.get('ormconfig4Tx')) {\n const dataSource4Tx = new DataSource({\n ...ormconfig,\n ...config.get('ormconfig4Tx')\n })\n await dataSource4Tx.initialize()\n addDataSource('tx', dataSource4Tx)\n\n logger.info('Transaction DataSource established')\n } else {\n addDataSource('tx', dataSource)\n }\n } catch (e) {\n logger.error(e)\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.domainMiddleware = void 0;
3
+ exports.domainMiddleware = domainMiddleware;
4
4
  const tslib_1 = require("tslib");
5
5
  const request_ip_1 = tslib_1.__importDefault(require("request-ip"));
6
6
  const utils_1 = require("../utils");
@@ -51,5 +51,4 @@ async function domainMiddleware(context, next) {
51
51
  context.state.domain = domain;
52
52
  return next();
53
53
  }
54
- exports.domainMiddleware = domainMiddleware;
55
54
  //# sourceMappingURL=domain-middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain-middleware.js","sourceRoot":"","sources":["../../server/middlewares/domain-middleware.ts"],"names":[],"mappings":";;;;AAAA,oEAAkC;AAClC,oCAA2C;AAEpC,KAAK,UAAU,gBAAgB,CAAC,OAAY,EAAE,IAAS;IAC5D,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC9B,IAAI,CAAC,MAAM,EAAE;QACX;;;;WAIG;QACH,MAAM,GAAG,MAAM,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;KACzC;IAED,IAAI,MAAM,EAAE;QACV,MAAM,EAAE,GAAG,oBAAS,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC7C,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;QAEnG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,kBAAkB;YAClB,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAClC,CAAC,CAAC,CAAA;YAEJ,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;gBACpB,OAAM;aACP;SACF;aAAM;YACL,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAClC,CAAC,CAAC,CAAA;YAEJ,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;gBACpB,OAAM;aACP;SACF;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAA;YAE9B,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,UAAU,CAAA;aAChD;SACF;KACF;IAED,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAE7B,OAAO,IAAI,EAAE,CAAA;AACf,CAAC;AAxDD,4CAwDC","sourcesContent":["import requestIp from 'request-ip'\nimport { getDomainFromURL } from '../utils'\n\nexport async function domainMiddleware(context: any, next: any) {\n var { domain } = context.state\n if (!domain) {\n /*\n * The domainType should be checked only when signin and checkin.\n * For purposes such as API calls, the target domainType may be different from the system domainType.\n * So, we don't check domainType here.\n */\n domain = await getDomainFromURL(context)\n }\n\n if (domain) {\n const ip = requestIp.getClientIp(context.req)\n const { whitelist = [], blacklist = [], protectedlist = [], privileges = [] } = domain.iplist || {}\n\n if (Array.isArray(whitelist) && whitelist.length > 0) {\n /* whitelist 우선 */\n const whitelisted =\n Array.isArray(whitelist) &&\n whitelist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n if (!whitelisted) {\n context.status = 403\n return\n }\n } else {\n const blacklisted =\n Array.isArray(blacklist) &&\n blacklist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n if (blacklisted) {\n context.status = 403\n return\n }\n }\n\n if (Array.isArray(protectedlist) && protectedlist.length > 0) {\n const safe = protectedlist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n context.state.unsafeIP = !safe\n\n if (!safe) {\n context.state.prohibitedPrivileges = privileges\n }\n }\n }\n\n context.state.domain = domain\n\n return next()\n}\n"]}
1
+ {"version":3,"file":"domain-middleware.js","sourceRoot":"","sources":["../../server/middlewares/domain-middleware.ts"],"names":[],"mappings":";;AAGA,4CAwDC;;AA3DD,oEAAkC;AAClC,oCAA2C;AAEpC,KAAK,UAAU,gBAAgB,CAAC,OAAY,EAAE,IAAS;IAC5D,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ;;;;WAIG;QACH,MAAM,GAAG,MAAM,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,oBAAS,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC7C,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;QAEnG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,kBAAkB;YAClB,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAClC,CAAC,CAAC,CAAA;YAEJ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;gBACpB,OAAM;YACR,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAClC,CAAC,CAAC,CAAA;YAEJ,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;gBACpB,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAA;YAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,UAAU,CAAA;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAE7B,OAAO,IAAI,EAAE,CAAA;AACf,CAAC","sourcesContent":["import requestIp from 'request-ip'\nimport { getDomainFromURL } from '../utils'\n\nexport async function domainMiddleware(context: any, next: any) {\n var { domain } = context.state\n if (!domain) {\n /*\n * The domainType should be checked only when signin and checkin.\n * For purposes such as API calls, the target domainType may be different from the system domainType.\n * So, we don't check domainType here.\n */\n domain = await getDomainFromURL(context)\n }\n\n if (domain) {\n const ip = requestIp.getClientIp(context.req)\n const { whitelist = [], blacklist = [], protectedlist = [], privileges = [] } = domain.iplist || {}\n\n if (Array.isArray(whitelist) && whitelist.length > 0) {\n /* whitelist 우선 */\n const whitelisted =\n Array.isArray(whitelist) &&\n whitelist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n if (!whitelisted) {\n context.status = 403\n return\n }\n } else {\n const blacklisted =\n Array.isArray(blacklist) &&\n blacklist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n if (blacklisted) {\n context.status = 403\n return\n }\n }\n\n if (Array.isArray(protectedlist) && protectedlist.length > 0) {\n const safe = protectedlist.some(item => {\n return new RegExp(item).test(ip)\n })\n\n context.state.unsafeIP = !safe\n\n if (!safe) {\n context.state.prohibitedPrivileges = privileges\n }\n }\n }\n\n context.state.domain = domain\n\n return next()\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initMiddlewares = void 0;
3
+ exports.initMiddlewares = initMiddlewares;
4
4
  const tslib_1 = require("tslib");
5
5
  const env_1 = require("@things-factory/env");
6
6
  const domain_middleware_1 = require("./domain-middleware");
@@ -36,6 +36,5 @@ function initMiddlewares(app) {
36
36
  await next();
37
37
  });
38
38
  }
39
- exports.initMiddlewares = initMiddlewares;
40
39
  tslib_1.__exportStar(require("./domain-middleware"), exports);
41
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;;;AAAA,6CAAoD;AAEpD,2DAAsD;AAEtD,SAAgB,eAAe,CAAC,GAAG;IACjC,GAAG,CAAC,eAAe,GAAG,YAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAEtD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;QAC/B,YAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI;YACF,MAAM,IAAI,EAAE,CAAA;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,MAAM,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,KAAI,GAAG,CAAA;YACnC,OAAO,CAAC,IAAI,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA;YAE3B,yCAAyC;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;SACxC;IACH,CAAC,CAAC,CAAA;IAEF;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAEhC,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YACnD,OAAO,MAAM,IAAA,oCAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;SAC7C;QAED,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AApCD,0CAoCC;AAED,8DAAmC","sourcesContent":["import { config, logger } from '@things-factory/env'\n\nimport { domainMiddleware } from './domain-middleware'\n\nexport function initMiddlewares(app) {\n app.subdomainOffset = config.get('subdomainOffset', 2)\n\n app.on('error', (err, context) => {\n logger.error(err)\n })\n\n /*\n * Catching downstream errors\n * - recommend to use context.throw, context.assert\n */\n app.use(async (context, next) => {\n try {\n await next()\n } catch (err) {\n context.status = err?.status || 500\n context.body = err?.message\n\n // emitting error to app.on('error', ...)\n context.app.emit('error', err, context)\n }\n })\n\n /*\n * post:graphql 에 대해서는 domain을 확인한다.\n * graphql app을 router에 적용하지 못하기 때문임.\n */\n app.use(async (context, next) => {\n const { method, path } = context\n\n if (method == 'POST' && path.startsWith('/graphql')) {\n return await domainMiddleware(context, next)\n }\n\n await next()\n })\n}\n\nexport * from './domain-middleware'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;AAIA,0CAoCC;;AAxCD,6CAAoD;AAEpD,2DAAsD;AAEtD,SAAgB,eAAe,CAAC,GAAG;IACjC,GAAG,CAAC,eAAe,GAAG,YAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAEtD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;QAC/B,YAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAA;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,KAAI,GAAG,CAAA;YACnC,OAAO,CAAC,IAAI,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA;YAE3B,yCAAyC;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QACzC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAEhC,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,OAAO,MAAM,IAAA,oCAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,8DAAmC","sourcesContent":["import { config, logger } from '@things-factory/env'\n\nimport { domainMiddleware } from './domain-middleware'\n\nexport function initMiddlewares(app) {\n app.subdomainOffset = config.get('subdomainOffset', 2)\n\n app.on('error', (err, context) => {\n logger.error(err)\n })\n\n /*\n * Catching downstream errors\n * - recommend to use context.throw, context.assert\n */\n app.use(async (context, next) => {\n try {\n await next()\n } catch (err) {\n context.status = err?.status || 500\n context.body = err?.message\n\n // emitting error to app.on('error', ...)\n context.app.emit('error', err, context)\n }\n })\n\n /*\n * post:graphql 에 대해서는 domain을 확인한다.\n * graphql app을 router에 적용하지 못하기 때문임.\n */\n app.use(async (context, next) => {\n const { method, path } = context\n\n if (method == 'POST' && path.startsWith('/graphql')) {\n return await domainMiddleware(context, next)\n }\n\n await next()\n })\n}\n\nexport * from './domain-middleware'\n"]}
@@ -17,7 +17,6 @@ const mqtt_1 = require("mqtt");
17
17
  const env_1 = require("@things-factory/env");
18
18
  const { middleware, host, port, nodes, topic, options } = env_1.config.get('pubsub', {});
19
19
  let pubsub;
20
- exports.pubsub = pubsub;
21
20
  switch (middleware) {
22
21
  case 'mqtt':
23
22
  //@ts-ignore