@lowdefy/build 4.0.0-alpha.5 → 4.0.0-alpha.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.
@@ -12,45 +12,40 @@
12
12
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
- */ // TODO: temp fix while waiting for blocks-antd
16
- export default {
15
+ */ export default {
17
16
  id: '404',
18
- type: 'Box'
19
- }; // export default {
20
- // id: '404',
21
- // type: 'Result',
22
- // style: {
23
- // minHeight: '100vh',
24
- // },
25
- // properties: {
26
- // status: 404,
27
- // title: '404',
28
- // subTitle: 'Sorry, the page you are visiting does not exist.',
29
- // },
30
- // areas: {
31
- // extra: {
32
- // blocks: [
33
- // {
34
- // id: 'home',
35
- // type: 'Button',
36
- // properties: {
37
- // title: 'Go to home page',
38
- // type: 'Link',
39
- // icon: 'HomeOutlined',
40
- // },
41
- // events: {
42
- // onClick: [
43
- // {
44
- // id: 'home',
45
- // type: 'Link',
46
- // params: {
47
- // home: true,
48
- // },
49
- // },
50
- // ],
51
- // },
52
- // },
53
- // ],
54
- // },
55
- // },
56
- // };
17
+ type: 'Result',
18
+ style: {
19
+ minHeight: '100vh'
20
+ },
21
+ properties: {
22
+ status: 404,
23
+ title: '404',
24
+ subTitle: 'Sorry, the page you are visiting does not exist.'
25
+ },
26
+ areas: {
27
+ extra: {
28
+ blocks: [
29
+ {
30
+ id: 'home',
31
+ type: 'Button',
32
+ properties: {
33
+ title: 'Go to home page',
34
+ type: 'Link'
35
+ },
36
+ events: {
37
+ onClick: [
38
+ {
39
+ id: 'home',
40
+ type: 'Link',
41
+ params: {
42
+ home: true
43
+ }
44
+ },
45
+ ]
46
+ }
47
+ },
48
+ ]
49
+ }
50
+ }
51
+ };
@@ -14,8 +14,7 @@
14
14
  limitations under the License.
15
15
  */ function getPageRoles({ components }) {
16
16
  const roles = components.config.auth.pages.roles;
17
- const pageRoles = {
18
- };
17
+ const pageRoles = {};
19
18
  Object.keys(roles).forEach((roleName)=>{
20
19
  roles[roleName].forEach((pageId)=>{
21
20
  if (!pageRoles[pageId]) {
@@ -36,8 +36,7 @@ async function buildConnections({ components , context }) {
36
36
  context.typeCounters.connections.increment(connection.type);
37
37
  connection.connectionId = connection.id;
38
38
  connection.id = `connection:${connection.id}`;
39
- countOperators(connection.properties || {
40
- }, {
39
+ countOperators(connection.properties || {}, {
41
40
  counter: context.typeCounters.operators.server
42
41
  });
43
42
  });
@@ -35,23 +35,51 @@
35
35
  'react-icons/wi': /"(Wi[A-Z0-9]\w*)"/gm,
36
36
  'react-icons/cg': /"(Cg[A-Z0-9]\w*)"/gm
37
37
  };
38
- function buildIcons({ components }) {
38
+ function getConfigIcons({ components , icons , regex }) {
39
+ [
40
+ ...JSON.stringify(components.global || {}).matchAll(regex)
41
+ ].map((match)=>icons.add(match[1])
42
+ );
43
+ [
44
+ ...JSON.stringify(components.menus || []).matchAll(regex)
45
+ ].map((match)=>icons.add(match[1])
46
+ );
47
+ [
48
+ ...JSON.stringify(components.pages || []).matchAll(regex)
49
+ ].map((match)=>icons.add(match[1])
50
+ );
51
+ }
52
+ function getBlockDefaultIcons({ components , context , icons , regex }) {
53
+ Object.entries(components.types.blocks).forEach(([blockName, block])=>{
54
+ context.types.icons[block.package][blockName].forEach((icon)=>{
55
+ [
56
+ ...JSON.stringify(icon).matchAll(regex)
57
+ ].map((match)=>icons.add(match[1])
58
+ );
59
+ });
60
+ });
61
+ }
62
+ function buildIcons({ components , context }) {
39
63
  components.icons = [];
40
64
  Object.entries(iconPackages).forEach(([iconPackage, regex])=>{
41
65
  const icons = new Set();
42
- [
43
- ...JSON.stringify(components.global || {
44
- }).matchAll(regex)
45
- ].map((match)=>icons.add(match[1])
46
- );
47
- [
48
- ...JSON.stringify(components.menus || []).matchAll(regex)
49
- ].map((match)=>icons.add(match[1])
50
- );
51
- [
52
- ...JSON.stringify(components.pages || []).matchAll(regex)
53
- ].map((match)=>icons.add(match[1])
54
- );
66
+ // TODO: Can we do better than this?
67
+ // Add default icons
68
+ if (iconPackage === 'react-icons/ai') {
69
+ icons.add('AiOutlineLoading3Quarters');
70
+ icons.add('AiOutlineExclamationCircle');
71
+ }
72
+ getConfigIcons({
73
+ components,
74
+ icons,
75
+ regex
76
+ });
77
+ getBlockDefaultIcons({
78
+ components,
79
+ context,
80
+ icons,
81
+ regex
82
+ });
55
83
  components.icons.push({
56
84
  icons: [
57
85
  ...icons
@@ -32,8 +32,7 @@ function buildRequest(request, pageContext) {
32
32
  throw new Error(`Request type is not a string at at request at "${request.id}" at page "${pageId}". Received ${JSON.stringify(request.type)}.`);
33
33
  }
34
34
  typeCounters.requests.increment(request.type);
35
- if (type.isUndefined(request.payload)) request.payload = {
36
- };
35
+ if (type.isUndefined(request.payload)) request.payload = {};
37
36
  if (!type.isObject(request.payload)) {
38
37
  throw new Error(`Request "${request.id}" at page "${pageId}" payload should be an object.`);
39
38
  }
@@ -20,12 +20,10 @@ function countBlockOperators(block, { typeCounters }) {
20
20
  counter: typeCounters.operators.client
21
21
  });
22
22
  (requests || []).forEach((request)=>{
23
- countOperators(request.payload || {
24
- }, {
23
+ countOperators(request.payload || {}, {
25
24
  counter: typeCounters.operators.client
26
25
  });
27
- countOperators(request.properties || {
28
- }, {
26
+ countOperators(request.properties || {}, {
29
27
  counter: typeCounters.operators.server
30
28
  });
31
29
  });
@@ -20,7 +20,6 @@ async function buildRefs({ context }) {
20
20
  refDef: makeRefDefinition('lowdefy.yaml'),
21
21
  count: 0
22
22
  });
23
- return components || {
24
- };
23
+ return components || {};
25
24
  }
26
25
  export default buildRefs;
@@ -23,8 +23,7 @@ function makeRefDefinition(refDefinition) {
23
23
  resolver: get(refDefinition, 'resolver'),
24
24
  transformer: get(refDefinition, 'transformer'),
25
25
  vars: get(refDefinition, 'vars', {
26
- default: {
27
- }
26
+ default: {}
28
27
  })
29
28
  };
30
29
  }
@@ -27,8 +27,7 @@ async function recursiveParseFile({ context , refDef , count , referencedFrom }
27
27
  referencedFrom
28
28
  });
29
29
  const { foundRefs , fileContentBuiltRefs } = getRefsFromFile(fileContent);
30
- const parsedFiles = {
31
- };
30
+ const parsedFiles = {};
32
31
  // Since we can have references in the variables of a reference, we need to first parse
33
32
  // the deeper nodes, so we can use those parsed files in references higher in the tree.
34
33
  // To do this, since foundRefs is an array of ref definitions that are in order of the
@@ -28,19 +28,13 @@
28
28
  function buildTypes({ components , context }) {
29
29
  const { typeCounters } = context;
30
30
  components.types = {
31
- actions: {
32
- },
33
- blocks: {
34
- },
35
- connections: {
36
- },
37
- requests: {
38
- },
31
+ actions: {},
32
+ blocks: {},
33
+ connections: {},
34
+ requests: {},
39
35
  operators: {
40
- client: {
41
- },
42
- server: {
43
- }
36
+ client: {},
37
+ server: {}
44
38
  }
45
39
  };
46
40
  // buildTypeClass({
@@ -31,8 +31,7 @@ async function updateServerPackageJson({ components , context }) {
31
31
  getPackages(components.types.operators.client);
32
32
  getPackages(components.types.operators.server);
33
33
  // Sort dependencies
34
- packageJson.dependencies = {
35
- };
34
+ packageJson.dependencies = {};
36
35
  Object.keys(dependencies).sort().forEach((name)=>{
37
36
  packageJson.dependencies[name] = dependencies[name];
38
37
  });
@@ -15,19 +15,13 @@
15
15
  */ import { type } from '@lowdefy/helpers';
16
16
  async function validateApp({ components }) {
17
17
  if (type.isNone(components.app)) {
18
- components.app = {
19
- };
18
+ components.app = {};
20
19
  }
21
20
  if (!type.isObject(components.app)) {
22
21
  throw new Error('lowdefy.app is not an object.');
23
22
  }
24
23
  if (type.isNone(components.app.html)) {
25
- components.app.html = {
26
- };
27
- }
28
- if (type.isNone(components.app.styles)) {
29
- components.app.styles = {
30
- };
24
+ components.app.html = {};
31
25
  }
32
26
  if (type.isNone(components.app.html.appendBody)) {
33
27
  components.app.html.appendBody = '';
@@ -17,23 +17,22 @@ import { validate } from '@lowdefy/ajv';
17
17
  import lowdefySchema from '../lowdefySchema.js';
18
18
  async function validateConfig({ components }) {
19
19
  if (type.isNone(components.config)) {
20
- components.config = {
21
- };
20
+ components.config = {};
22
21
  }
23
22
  if (!type.isObject(components.config)) {
24
23
  throw new Error('lowdefy.config is not an object.');
25
24
  }
26
25
  if (type.isNone(components.config.auth)) {
27
- components.config.auth = {
28
- };
26
+ components.config.auth = {};
29
27
  }
30
28
  if (type.isNone(components.config.auth.pages)) {
31
- components.config.auth.pages = {
32
- };
29
+ components.config.auth.pages = {};
33
30
  }
34
31
  if (type.isNone(components.config.auth.pages.roles)) {
35
- components.config.auth.pages.roles = {
36
- };
32
+ components.config.auth.pages.roles = {};
33
+ }
34
+ if (type.isNone(components.config.theme)) {
35
+ components.config.theme = {};
37
36
  }
38
37
  validate({
39
38
  schema: lowdefySchema.definitions.authConfig,
@@ -15,8 +15,7 @@
15
15
  */ async function writeApp({ components , context }) {
16
16
  await context.writeBuildArtifact({
17
17
  filePath: 'app.json',
18
- content: JSON.stringify(components.app || {
19
- }, null, 2)
18
+ content: JSON.stringify(components.app || {}, null, 2)
20
19
  });
21
20
  }
22
21
  export default writeApp;
@@ -15,8 +15,7 @@
15
15
  */ async function writeConfig({ components , context }) {
16
16
  await context.writeBuildArtifact({
17
17
  filePath: 'config.json',
18
- content: JSON.stringify(components.config || {
19
- }, null, 2)
18
+ content: JSON.stringify(components.config || {}, null, 2)
20
19
  });
21
20
  }
22
21
  export default writeConfig;
@@ -15,8 +15,7 @@
15
15
  */ import { type } from '@lowdefy/helpers';
16
16
  async function writeGlobal({ components , context }) {
17
17
  if (type.isNone(components.global)) {
18
- components.global = {
19
- };
18
+ components.global = {};
20
19
  }
21
20
  if (!type.isObject(components.global)) {
22
21
  throw new Error('Global is not an object.');
@@ -14,17 +14,14 @@
14
14
  limitations under the License.
15
15
  */ import { nunjucksFunction } from '@lowdefy/nunjucks';
16
16
  const template = `{%- for package in packages -%}
17
- {%- for icon in package.icons -%}
18
- import { {{ icon }} } from '{{ package.package }}';
19
- {% endfor -%}
20
- {% endfor -%}
17
+ {% if package.icons.length %}import { {% for icon in package.icons -%}{% if not loop.last -%} {{ icon }}, {% else -%} {{ icon }} } from '{{ package.package }}';
18
+ {% endif -%}{% endfor %}{% endif %}{% endfor -%}
21
19
  export default {
22
- {% for package in packages -%}
23
- {%- for icon in package.icons -%}
24
- {{ icon }},
25
- {% endfor -%}{%- endfor -%}
26
- };
27
- `;
20
+ {%- for package in packages -%}
21
+ {%- for icon in package.icons %}
22
+ {{ icon }},{% endfor %}
23
+ {%- endfor %}
24
+ };`;
28
25
  async function writeIconImports({ components , context }) {
29
26
  const templateFn = nunjucksFunction(template);
30
27
  await context.writeBuildArtifact({
@@ -245,6 +245,34 @@
245
245
  "package": "@lowdefy/blocks-antd",
246
246
  "version": "4.0.0-alpha.5"
247
247
  },
248
+ "IconSpinner": {
249
+ "package": "@lowdefy/blocks-loaders",
250
+ "version": "4.0.0-alpha.5"
251
+ },
252
+ "Skeleton": {
253
+ "package": "@lowdefy/blocks-loaders",
254
+ "version": "4.0.0-alpha.5"
255
+ },
256
+ "SkeletonAvatar": {
257
+ "package": "@lowdefy/blocks-loaders",
258
+ "version": "4.0.0-alpha.5"
259
+ },
260
+ "SkeletonButton": {
261
+ "package": "@lowdefy/blocks-loaders",
262
+ "version": "4.0.0-alpha.5"
263
+ },
264
+ "SkeletonInput": {
265
+ "package": "@lowdefy/blocks-loaders",
266
+ "version": "4.0.0-alpha.5"
267
+ },
268
+ "SkeletonParagraph": {
269
+ "package": "@lowdefy/blocks-loaders",
270
+ "version": "4.0.0-alpha.5"
271
+ },
272
+ "Spinner": {
273
+ "package": "@lowdefy/blocks-loaders",
274
+ "version": "4.0.0-alpha.5"
275
+ },
248
276
  "Anchor": {
249
277
  "package": "@lowdefy/blocks-basic",
250
278
  "version": "4.0.0-alpha.5"
@@ -277,32 +305,20 @@
277
305
  "package": "@lowdefy/blocks-basic",
278
306
  "version": "4.0.0-alpha.5"
279
307
  },
280
- "IconSpinner": {
281
- "package": "@lowdefy/blocks-loaders",
282
- "version": "4.0.0-alpha.5"
283
- },
284
- "Skeleton": {
285
- "package": "@lowdefy/blocks-loaders",
308
+ "DangerousMarkdown": {
309
+ "package": "@lowdefy/blocks-markdown",
286
310
  "version": "4.0.0-alpha.5"
287
311
  },
288
- "SkeletonAvatar": {
289
- "package": "@lowdefy/blocks-loaders",
312
+ "Markdown": {
313
+ "package": "@lowdefy/blocks-markdown",
290
314
  "version": "4.0.0-alpha.5"
291
315
  },
292
- "SkeletonButton": {
293
- "package": "@lowdefy/blocks-loaders",
316
+ "MarkdownWithCode": {
317
+ "package": "@lowdefy/blocks-markdown",
294
318
  "version": "4.0.0-alpha.5"
295
319
  },
296
- "SkeletonInput": {
297
- "package": "@lowdefy/blocks-loaders",
298
- "version": "4.0.0-alpha.5"
299
- },
300
- "SkeletonParagraph": {
301
- "package": "@lowdefy/blocks-loaders",
302
- "version": "4.0.0-alpha.5"
303
- },
304
- "Spinner": {
305
- "package": "@lowdefy/blocks-loaders",
320
+ "EChart": {
321
+ "package": "@lowdefy/blocks-echarts",
306
322
  "version": "4.0.0-alpha.5"
307
323
  }
308
324
  },
@@ -310,16 +326,32 @@
310
326
  "AxiosHttp": {
311
327
  "package": "@lowdefy/connection-axios-http",
312
328
  "version": "4.0.0-alpha.5"
329
+ },
330
+ "Redis": {
331
+ "package": "@lowdefy/connection-redis",
332
+ "version": "4.0.0-alpha.5"
313
333
  }
314
334
  },
315
335
  "requests": {
316
336
  "AxiosHttp": {
317
337
  "package": "@lowdefy/connection-axios-http",
318
338
  "version": "4.0.0-alpha.5"
339
+ },
340
+ "Redis": {
341
+ "package": "@lowdefy/connection-redis",
342
+ "version": "4.0.0-alpha.5"
319
343
  }
320
344
  },
321
345
  "operators": {
322
346
  "client": {
347
+ "_nunjucks": {
348
+ "package": "@lowdefy/operators-nunjucks",
349
+ "version": "4.0.0-alpha.5"
350
+ },
351
+ "_change_case": {
352
+ "package": "@lowdefy/operators-change-case",
353
+ "version": "4.0.0-alpha.5"
354
+ },
323
355
  "_actions": {
324
356
  "package": "@lowdefy/operators-js",
325
357
  "version": "4.0.0-alpha.5"
@@ -508,12 +540,24 @@
508
540
  "package": "@lowdefy/operators-js",
509
541
  "version": "4.0.0-alpha.5"
510
542
  },
511
- "_nunjucks": {
512
- "package": "@lowdefy/operators-nunjucks",
543
+ "_uuid": {
544
+ "package": "@lowdefy/operators-uuid",
545
+ "version": "4.0.0-alpha.5"
546
+ },
547
+ "_yaml": {
548
+ "package": "@lowdefy/operators-yaml",
513
549
  "version": "4.0.0-alpha.5"
514
550
  }
515
551
  },
516
552
  "server": {
553
+ "_nunjucks": {
554
+ "package": "@lowdefy/operators-nunjucks",
555
+ "version": "4.0.0-alpha.5"
556
+ },
557
+ "_change_case": {
558
+ "package": "@lowdefy/operators-change-case",
559
+ "version": "4.0.0-alpha.5"
560
+ },
517
561
  "_and": {
518
562
  "package": "@lowdefy/operators-js",
519
563
  "version": "4.0.0-alpha.5"
@@ -662,12 +706,219 @@
662
706
  "package": "@lowdefy/operators-js",
663
707
  "version": "4.0.0-alpha.5"
664
708
  },
665
- "_nunjucks": {
666
- "package": "@lowdefy/operators-nunjucks",
709
+ "_uuid": {
710
+ "package": "@lowdefy/operators-uuid",
711
+ "version": "4.0.0-alpha.5"
712
+ },
713
+ "_yaml": {
714
+ "package": "@lowdefy/operators-yaml",
667
715
  "version": "4.0.0-alpha.5"
668
716
  }
669
717
  }
670
718
  },
719
+ "icons": {
720
+ "@lowdefy/blocks-antd": {
721
+ "Affix": [],
722
+ "Alert": [],
723
+ "AutoComplete": [
724
+ "AiFillCloseCircle",
725
+ "AiFillCheckCircle",
726
+ "AiOutlineLoading",
727
+ "AiFillExclamationCircle"
728
+ ],
729
+ "Avatar": [],
730
+ "Badge": [],
731
+ "Breadcrumb": [],
732
+ "Button": [],
733
+ "ButtonSelector": [
734
+ "AiFillCloseCircle",
735
+ "AiFillCheckCircle",
736
+ "AiOutlineLoading",
737
+ "AiFillExclamationCircle"
738
+ ],
739
+ "Card": [],
740
+ "CheckboxSelector": [
741
+ "AiFillCloseCircle",
742
+ "AiFillCheckCircle",
743
+ "AiOutlineLoading",
744
+ "AiFillExclamationCircle"
745
+ ],
746
+ "CheckboxSwitch": [
747
+ "AiFillCloseCircle",
748
+ "AiFillCheckCircle",
749
+ "AiOutlineLoading",
750
+ "AiFillExclamationCircle"
751
+ ],
752
+ "Collapse": [],
753
+ "Comment": [],
754
+ "ConfirmModal": [],
755
+ "Content": [],
756
+ "ControlledList": [
757
+ "AiOutlinePlus",
758
+ "AiOutlineMinusCircle"
759
+ ],
760
+ "DateRangeSelector": [
761
+ "AiFillCloseCircle",
762
+ "AiFillCheckCircle",
763
+ "AiOutlineLoading",
764
+ "AiFillExclamationCircle"
765
+ ],
766
+ "DateSelector": [
767
+ "AiFillCloseCircle",
768
+ "AiFillCheckCircle",
769
+ "AiOutlineLoading",
770
+ "AiFillExclamationCircle"
771
+ ],
772
+ "DateTimeSelector": [
773
+ "AiFillCloseCircle",
774
+ "AiFillCheckCircle",
775
+ "AiOutlineLoading",
776
+ "AiFillExclamationCircle"
777
+ ],
778
+ "Descriptions": [],
779
+ "Divider": [],
780
+ "Drawer": [],
781
+ "Footer": [],
782
+ "Header": [],
783
+ "Label": [
784
+ "AiFillCloseCircle",
785
+ "AiFillCheckCircle",
786
+ "AiOutlineLoading",
787
+ "AiFillExclamationCircle"
788
+ ],
789
+ "Layout": [],
790
+ "Menu": [],
791
+ "Message": [],
792
+ "MobileMenu": [
793
+ "AiOutlineMenuUnfold",
794
+ "AiOutlineMenuFold"
795
+ ],
796
+ "Modal": [],
797
+ "MonthSelector": [
798
+ "AiFillCloseCircle",
799
+ "AiFillCheckCircle",
800
+ "AiOutlineLoading",
801
+ "AiFillExclamationCircle"
802
+ ],
803
+ "MultipleSelector": [
804
+ "AiFillCloseCircle",
805
+ "AiFillCheckCircle",
806
+ "AiOutlineLoading",
807
+ "AiFillExclamationCircle"
808
+ ],
809
+ "Notification": [],
810
+ "NumberInput": [
811
+ "AiFillCloseCircle",
812
+ "AiFillCheckCircle",
813
+ "AiOutlineLoading",
814
+ "AiFillExclamationCircle"
815
+ ],
816
+ "PageHCF": [],
817
+ "PageHCSF": [],
818
+ "PageHSCF": [],
819
+ "PageHeaderMenu": [
820
+ "AiOutlineMenuUnfold",
821
+ "AiOutlineMenuFold"
822
+ ],
823
+ "PageSHCF": [],
824
+ "PageSiderMenu": [
825
+ "AiOutlineMenuFold",
826
+ "AiOutlineMenuUnfold",
827
+ "AiOutlineMenuUnfold",
828
+ "AiOutlineMenuFold"
829
+ ],
830
+ "Pagination": [],
831
+ "Paragraph": [],
832
+ "ParagraphInput": [],
833
+ "PasswordInput": [
834
+ "AiFillCloseCircle",
835
+ "AiFillCheckCircle",
836
+ "AiOutlineLoading",
837
+ "AiFillExclamationCircle"
838
+ ],
839
+ "Progress": [],
840
+ "RadioSelector": [
841
+ "AiFillCloseCircle",
842
+ "AiFillCheckCircle",
843
+ "AiOutlineLoading",
844
+ "AiFillExclamationCircle"
845
+ ],
846
+ "RatingSlider": [
847
+ "AiFillCloseCircle",
848
+ "AiFillCheckCircle",
849
+ "AiOutlineLoading",
850
+ "AiFillExclamationCircle"
851
+ ],
852
+ "Result": [],
853
+ "S3UploadButton": [
854
+ "AiOutlineUpload"
855
+ ],
856
+ "Selector": [
857
+ "AiFillCloseCircle",
858
+ "AiFillCheckCircle",
859
+ "AiOutlineLoading",
860
+ "AiFillExclamationCircle"
861
+ ],
862
+ "Sider": [],
863
+ "Statistic": [],
864
+ "Switch": [
865
+ "AiFillCloseCircle",
866
+ "AiFillCheckCircle",
867
+ "AiOutlineLoading",
868
+ "AiFillExclamationCircle"
869
+ ],
870
+ "Tabs": [],
871
+ "TextArea": [
872
+ "AiFillCloseCircle",
873
+ "AiFillCheckCircle",
874
+ "AiOutlineLoading",
875
+ "AiFillExclamationCircle"
876
+ ],
877
+ "TextInput": [
878
+ "AiFillCloseCircle",
879
+ "AiFillCheckCircle",
880
+ "AiOutlineLoading",
881
+ "AiFillExclamationCircle"
882
+ ],
883
+ "TimelineList": [],
884
+ "Title": [],
885
+ "TitleInput": [],
886
+ "Tooltip": [],
887
+ "WeekSelector": [
888
+ "AiFillCloseCircle",
889
+ "AiFillCheckCircle",
890
+ "AiOutlineLoading",
891
+ "AiFillExclamationCircle"
892
+ ]
893
+ },
894
+ "@lowdefy/blocks-loaders": {
895
+ "IconSpinner": [],
896
+ "Skeleton": [],
897
+ "SkeletonAvatar": [],
898
+ "SkeletonButton": [],
899
+ "SkeletonInput": [],
900
+ "SkeletonParagraph": [],
901
+ "Spinner": []
902
+ },
903
+ "@lowdefy/blocks-basic": {
904
+ "Anchor": [],
905
+ "Box": [],
906
+ "DangerousHtml": [],
907
+ "Html": [],
908
+ "Icon": [],
909
+ "Img": [],
910
+ "List": [],
911
+ "Span": []
912
+ },
913
+ "@lowdefy/blocks-markdown": {
914
+ "DangerousMarkdown": [],
915
+ "Markdown": [],
916
+ "MarkdownWithCode": []
917
+ },
918
+ "@lowdefy/blocks-echarts": {
919
+ "EChart": []
920
+ }
921
+ },
671
922
  "styles": {
672
923
  "@lowdefy/blocks-antd": {
673
924
  "default": [
@@ -857,17 +1108,6 @@
857
1108
  "blocks/WeekSelector/style.less"
858
1109
  ]
859
1110
  },
860
- "@lowdefy/blocks-basic": {
861
- "default": [],
862
- "Anchor": [],
863
- "Box": [],
864
- "DangerousHtml": [],
865
- "Html": [],
866
- "Icon": [],
867
- "Img": [],
868
- "List": [],
869
- "Span": []
870
- },
871
1111
  "@lowdefy/blocks-loaders": {
872
1112
  "default": [],
873
1113
  "IconSpinner": [
@@ -891,6 +1131,29 @@
891
1131
  "Spinner": [
892
1132
  "blocks/Spinner/style.less"
893
1133
  ]
1134
+ },
1135
+ "@lowdefy/blocks-basic": {
1136
+ "default": [],
1137
+ "Anchor": [],
1138
+ "Box": [],
1139
+ "DangerousHtml": [],
1140
+ "Html": [],
1141
+ "Icon": [],
1142
+ "Img": [],
1143
+ "List": [],
1144
+ "Span": []
1145
+ },
1146
+ "@lowdefy/blocks-markdown": {
1147
+ "default": [
1148
+ "style.less"
1149
+ ],
1150
+ "DangerousMarkdown": [],
1151
+ "Markdown": [],
1152
+ "MarkdownWithCode": []
1153
+ },
1154
+ "@lowdefy/blocks-echarts": {
1155
+ "default": [],
1156
+ "EChart": []
894
1157
  }
895
1158
  }
896
1159
  }
package/dist/index.js CHANGED
@@ -105,9 +105,6 @@ async function build(options) {
105
105
  components,
106
106
  context
107
107
  });
108
- await buildIcons({
109
- components
110
- });
111
108
  await buildMenu({
112
109
  components,
113
110
  context
@@ -116,6 +113,10 @@ async function build(options) {
116
113
  components,
117
114
  context
118
115
  });
116
+ await buildIcons({
117
+ components,
118
+ context
119
+ });
119
120
  await buildStyles({
120
121
  components,
121
122
  context
@@ -24,12 +24,9 @@ export default {
24
24
  type: 'Action "id" should be a string.'
25
25
  }
26
26
  },
27
- messages: {
28
- },
29
- params: {
30
- },
31
- skip: {
32
- },
27
+ messages: {},
28
+ params: {},
29
+ skip: {},
33
30
  type: {
34
31
  type: 'string',
35
32
  errorMessage: {
@@ -68,12 +65,6 @@ export default {
68
65
  }
69
66
  }
70
67
  }
71
- },
72
- styles: {
73
- type: 'object',
74
- errorMessage: {
75
- type: 'App "app.styles" should be an object.'
76
- }
77
68
  }
78
69
  }
79
70
  },
@@ -253,8 +244,7 @@ export default {
253
244
  type: 'Block "style" should be an object.'
254
245
  }
255
246
  },
256
- visible: {
257
- },
247
+ visible: {},
258
248
  blocks: {
259
249
  type: 'array',
260
250
  items: {
@@ -273,8 +263,7 @@ export default {
273
263
  type: 'Block "requests" should be an array.'
274
264
  }
275
265
  },
276
- required: {
277
- },
266
+ required: {},
278
267
  validate: {
279
268
  type: 'array',
280
269
  items: {
@@ -636,6 +625,9 @@ export default {
636
625
  },
637
626
  additionalProperties: false,
638
627
  properties: {
628
+ auth: {
629
+ $ref: '#/definitions/authConfig'
630
+ },
639
631
  homePageId: {
640
632
  type: 'string',
641
633
  description: 'Page id to use as homepage. When visiting home route "/", the router will redirect to this page. If not provided, the first page in default or first menu will be used as the homePageId.',
@@ -643,8 +635,20 @@ export default {
643
635
  type: 'App "config.homePageId" should be a string.'
644
636
  }
645
637
  },
646
- auth: {
647
- $ref: '#/definitions/authConfig'
638
+ theme: {
639
+ type: 'object',
640
+ errorMessage: {
641
+ type: 'App "config.theme" should be an object.'
642
+ },
643
+ properties: {
644
+ lessVariables: {
645
+ type: 'object',
646
+ description: 'App theme less variables.',
647
+ errorMessage: {
648
+ type: 'App "config.theme.lessVariables" should be an object.'
649
+ }
650
+ }
651
+ }
648
652
  }
649
653
  }
650
654
  },
@@ -20,12 +20,18 @@ const defaultPackages = [
20
20
  '@lowdefy/blocks-antd',
21
21
  '@lowdefy/blocks-basic',
22
22
  // '@lowdefy/blocks-color-selectors',
23
- // '@lowdefy/blocks-echarts',
23
+ '@lowdefy/blocks-echarts',
24
24
  '@lowdefy/blocks-loaders',
25
- // '@lowdefy/blocks-markdown',
25
+ '@lowdefy/blocks-markdown',
26
26
  '@lowdefy/connection-axios-http',
27
+ '@lowdefy/connection-redis',
28
+ '@lowdefy/operators-change-case',
29
+ // '@lowdefy/operators-diff',
27
30
  '@lowdefy/operators-js',
28
- '@lowdefy/operators-nunjucks',
31
+ // '@lowdefy/operators-mql',
32
+ '@lowdefy/operators-nunjucks',
33
+ '@lowdefy/operators-uuid',
34
+ '@lowdefy/operators-yaml',
29
35
  ];
30
36
  function createTypeDefinitions({ typeNames , store , packageName , version }) {
31
37
  if (type.isArray(typeNames)) {
@@ -40,22 +46,16 @@ function createTypeDefinitions({ typeNames , store , packageName , version }) {
40
46
  async function generateDefaultTypes() {
41
47
  const packageFile = JSON.parse(await readFile(path.resolve(process.cwd(), './package.json')));
42
48
  const defaultTypes = {
43
- actions: {
44
- },
45
- blocks: {
46
- },
47
- connections: {
48
- },
49
- requests: {
50
- },
49
+ actions: {},
50
+ blocks: {},
51
+ connections: {},
52
+ requests: {},
51
53
  operators: {
52
- client: {
53
- },
54
- server: {
55
- }
54
+ client: {},
55
+ server: {}
56
56
  },
57
- styles: {
58
- }
57
+ icons: {},
58
+ styles: {}
59
59
  };
60
60
  await Promise.all(defaultPackages.map(async (packageName)=>{
61
61
  const { default: types } = await import(`${packageName}/types`);
@@ -99,6 +99,9 @@ async function generateDefaultTypes() {
99
99
  if (type.isObject(types.styles)) {
100
100
  defaultTypes.styles[packageName] = types.styles;
101
101
  }
102
+ if (type.isObject(types.icons)) {
103
+ defaultTypes.icons[packageName] = types.icons;
104
+ }
102
105
  }));
103
106
  await writeFile({
104
107
  filePath: path.resolve(process.cwd(), './dist/defaultTypes.json'),
@@ -19,9 +19,9 @@ async function run() {
19
19
  await build({
20
20
  logger: console,
21
21
  directories: {
22
- build: path.resolve(process.env.LOWDEFY_BUILD_DIRECTORY || path.join(process.cwd(), 'build')),
23
- config: path.resolve(process.env.LOWDEFY_CONFIG_DIRECTORY || process.cwd()),
24
- server: path.resolve(process.env.LOWDEFY_SERVER_DIRECTORY || process.cwd())
22
+ build: path.resolve(process.env.LOWDEFY_DIRECTORY_BUILD || path.join(process.cwd(), 'build')),
23
+ config: path.resolve(process.env.LOWDEFY_DIRECTORY_CONFIG || process.cwd()),
24
+ server: path.resolve(process.env.LOWDEFY_DIRECTORY_SERVER || process.cwd())
25
25
  }
26
26
  });
27
27
  }
@@ -12,10 +12,7 @@
12
12
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
- */ const wait = (ms)=>{
16
- return new Promise((resolve)=>setTimeout(resolve, ms)
17
- );
18
- };
15
+ */ import { wait } from '@lowdefy/helpers';
19
16
  async function asyncFn() {
20
17
  await wait(20);
21
18
  return {
@@ -13,20 +13,13 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ import createCounter from '../utils/createCounter.js';
16
- function testContext({ writeBuildArtifact , configDirectory , readConfigFile , logger ={
17
- } } = {
18
- }) {
16
+ function testContext({ writeBuildArtifact , configDirectory , readConfigFile , logger ={} } = {}) {
19
17
  const defaultLogger = {
20
- info: ()=>{
21
- },
22
- log: ()=>{
23
- },
24
- warn: ()=>{
25
- },
26
- error: ()=>{
27
- },
28
- succeed: ()=>{
29
- }
18
+ info: ()=>{},
19
+ log: ()=>{},
20
+ warn: ()=>{},
21
+ error: ()=>{},
22
+ succeed: ()=>{}
30
23
  };
31
24
  const context = {
32
25
  id: 'test',
@@ -43,10 +36,8 @@ function testContext({ writeBuildArtifact , configDirectory , readConfigFile , l
43
36
  server: createCounter()
44
37
  }
45
38
  },
46
- writeBuildArtifact: writeBuildArtifact || (()=>{
47
- }),
48
- readConfigFile: readConfigFile || (()=>{
49
- })
39
+ writeBuildArtifact: writeBuildArtifact || (()=>{}),
40
+ readConfigFile: readConfigFile || (()=>{})
50
41
  };
51
42
  context.logger = {
52
43
  ...defaultLogger,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lowdefy/build",
3
- "version": "4.0.0-alpha.5",
3
+ "version": "4.0.0-alpha.6",
4
4
  "licence": "Apache-2.0",
5
5
  "description": "",
6
6
  "homepage": "https://lowdefy.com",
@@ -18,6 +18,10 @@
18
18
  {
19
19
  "name": "Gerrie van Wyk",
20
20
  "url": "https://github.com/Gervwyk"
21
+ },
22
+ {
23
+ "name": "Sandile Memela",
24
+ "url": "https://github.com/sah-memela"
21
25
  }
22
26
  ],
23
27
  "repository": {
@@ -41,32 +45,38 @@
41
45
  "test": "jest --coverage"
42
46
  },
43
47
  "dependencies": {
44
- "@lowdefy/ajv": "4.0.0-alpha.5",
45
- "@lowdefy/helpers": "4.0.0-alpha.5",
46
- "@lowdefy/node-utils": "4.0.0-alpha.5",
47
- "@lowdefy/nunjucks": "4.0.0-alpha.5",
48
+ "@lowdefy/ajv": "4.0.0-alpha.6",
49
+ "@lowdefy/helpers": "4.0.0-alpha.6",
50
+ "@lowdefy/node-utils": "4.0.0-alpha.6",
51
+ "@lowdefy/nunjucks": "4.0.0-alpha.6",
48
52
  "ajv": "8.8.2",
49
53
  "js-yaml": "4.1.0",
50
54
  "json5": "2.2.0",
51
55
  "uuid": "8.3.2"
52
56
  },
53
57
  "devDependencies": {
54
- "@lowdefy/blocks-antd": "4.0.0-alpha.5",
55
- "@lowdefy/blocks-basic": "4.0.0-alpha.5",
56
- "@lowdefy/blocks-color-selectors": "4.0.0-alpha.5",
57
- "@lowdefy/blocks-echarts": "4.0.0-alpha.5",
58
- "@lowdefy/blocks-loaders": "4.0.0-alpha.5",
59
- "@lowdefy/blocks-markdown": "4.0.0-alpha.5",
60
- "@lowdefy/connection-axios-http": "4.0.0-alpha.5",
61
- "@lowdefy/operators-js": "4.0.0-alpha.5",
62
- "@lowdefy/operators-nunjucks": "4.0.0-alpha.5",
63
- "@swc/cli": "0.1.52",
64
- "@swc/core": "1.2.112",
65
- "@swc/jest": "0.2.9",
58
+ "@lowdefy/blocks-antd": "4.0.0-alpha.6",
59
+ "@lowdefy/blocks-basic": "4.0.0-alpha.6",
60
+ "@lowdefy/blocks-color-selectors": "4.0.0-alpha.6",
61
+ "@lowdefy/blocks-echarts": "4.0.0-alpha.6",
62
+ "@lowdefy/blocks-loaders": "4.0.0-alpha.6",
63
+ "@lowdefy/blocks-markdown": "4.0.0-alpha.6",
64
+ "@lowdefy/connection-axios-http": "4.0.0-alpha.6",
65
+ "@lowdefy/connection-redis": "4.0.0-alpha.6",
66
+ "@lowdefy/operators-change-case": "4.0.0-alpha.6",
67
+ "@lowdefy/operators-diff": "4.0.0-alpha.6",
68
+ "@lowdefy/operators-js": "4.0.0-alpha.6",
69
+ "@lowdefy/operators-mql": "4.0.0-alpha.6",
70
+ "@lowdefy/operators-nunjucks": "4.0.0-alpha.6",
71
+ "@lowdefy/operators-uuid": "4.0.0-alpha.6",
72
+ "@lowdefy/operators-yaml": "4.0.0-alpha.6",
73
+ "@swc/cli": "0.1.55",
74
+ "@swc/core": "1.2.130",
75
+ "@swc/jest": "0.2.17",
66
76
  "jest": "27.3.1"
67
77
  },
68
78
  "publishConfig": {
69
79
  "access": "public"
70
80
  },
71
- "gitHead": "995fcdb020927f3cdc626fc99c15a2e4137bd962"
81
+ "gitHead": "2530e31af795b6a3c75ac8f72c8dbe0ab5d1251b"
72
82
  }