@lowdefy/build 4.0.0-alpha.10 → 4.0.0-alpha.13

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 (50) hide show
  1. package/dist/build/addDefaultPages/addDefaultPages.js +2 -3
  2. package/dist/build/buildAuth/buildAuth.js +11 -27
  3. package/dist/build/buildAuth/buildAuthPlugins.js +78 -0
  4. package/dist/build/buildAuth/buildPageAuth.js +50 -0
  5. package/dist/build/buildAuth/getPageRoles.js +1 -1
  6. package/dist/build/buildAuth/getProtectedPages.js +6 -8
  7. package/dist/build/buildAuth/validateAuthConfig.js +61 -0
  8. package/dist/build/buildConnections.js +1 -1
  9. package/dist/build/{buildIcons.js → buildImports/buildIconImports.js} +15 -23
  10. package/dist/build/buildImports/buildImports.js +30 -0
  11. package/dist/build/buildImports/buildImportsDev.js +101 -0
  12. package/dist/build/buildImports/buildImportsProd.js +53 -0
  13. package/dist/build/{buildStyles.js → buildImports/buildStyleImports.js} +7 -11
  14. package/dist/build/buildImports/defaultIconsDev.js +584 -0
  15. package/dist/build/buildImports/defaultIconsProd.js +21 -0
  16. package/dist/build/buildMenu.js +9 -13
  17. package/dist/build/buildPages/buildBlock/buildBlock.js +2 -2
  18. package/dist/build/buildPages/buildBlock/buildEvents.js +7 -9
  19. package/dist/build/buildPages/buildBlock/buildSubBlocks.js +2 -7
  20. package/dist/build/buildPages/buildPage.js +2 -2
  21. package/dist/build/buildPages/buildPages.js +3 -5
  22. package/dist/build/buildPages/buildTestPage.js +46 -0
  23. package/dist/build/buildRefs/evaluateBuildOperators.js +2 -3
  24. package/dist/build/buildTypes.js +25 -4
  25. package/dist/build/testSchema.js +4 -6
  26. package/dist/build/updateServerPackageJson.js +3 -0
  27. package/dist/build/validateApp.js +1 -1
  28. package/dist/build/validateConfig.js +1 -25
  29. package/dist/build/writeAuth.js +18 -0
  30. package/dist/build/writePages.js +1 -2
  31. package/dist/build/writePluginImports/generateImportFile.js +1 -6
  32. package/dist/build/writePluginImports/writeActionImports.js +1 -1
  33. package/dist/build/writePluginImports/writeAuthImports.js +30 -0
  34. package/dist/build/writePluginImports/writeBlockImports.js +1 -1
  35. package/dist/build/writePluginImports/writeConnectionImports.js +1 -1
  36. package/dist/build/writePluginImports/writeIconImports.js +1 -1
  37. package/dist/build/writePluginImports/writeOperatorImports.js +4 -4
  38. package/dist/build/writePluginImports/writePluginImports.js +52 -0
  39. package/dist/build/writePluginImports/writeStyleImports.js +1 -1
  40. package/dist/build/writeRequests.js +1 -2
  41. package/dist/createContext.js +54 -0
  42. package/dist/{defaultTypesMap.json → defaultTypesMap.js} +507 -229
  43. package/dist/index.js +19 -77
  44. package/dist/lowdefySchema.js +110 -58
  45. package/dist/scripts/generateDefaultTypes.js +11 -2
  46. package/dist/scripts/run.js +4 -3
  47. package/dist/test/buildRefs/testBuildRefsResolver.js +1 -1
  48. package/dist/test/testContext.js +6 -1
  49. package/dist/utils/createPluginTypesMap.js +21 -0
  50. package/package.json +44 -40
package/dist/index.js CHANGED
@@ -12,20 +12,15 @@
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
- */ import { mergeObjects } from '@lowdefy/helpers';
16
- import { readFile } from '@lowdefy/node-utils';
17
- import createCounter from './utils/createCounter.js';
15
+ */ import createContext from './createContext.js';
18
16
  import createPluginTypesMap from './utils/createPluginTypesMap.js';
19
- import createReadConfigFile from './utils/readConfigFile.js';
20
- import createWriteBuildArtifact from './utils/writeBuildArtifact.js';
21
17
  import addDefaultPages from './build/addDefaultPages/addDefaultPages.js';
22
18
  import buildAuth from './build/buildAuth/buildAuth.js';
23
19
  import buildConnections from './build/buildConnections.js';
24
- import buildIcons from './build/buildIcons.js';
20
+ import buildImports from './build/buildImports/buildImports.js';
25
21
  import buildMenu from './build/buildMenu.js';
26
22
  import buildPages from './build/buildPages/buildPages.js';
27
23
  import buildRefs from './build/buildRefs/buildRefs.js';
28
- import buildStyles from './build/buildStyles.js';
29
24
  import buildTypes from './build/buildTypes.js';
30
25
  import cleanBuildDirectory from './build/cleanBuildDirectory.js';
31
26
  import copyPublicFolder from './build/copyPublicFolder.js';
@@ -34,105 +29,68 @@ import validateApp from './build/validateApp.js';
34
29
  import validateConfig from './build/validateConfig.js';
35
30
  import updateServerPackageJson from './build/updateServerPackageJson.js';
36
31
  import writeApp from './build/writeApp.js';
37
- import writeActionImports from './build/writePluginImports/writeActionImports.js';
38
- import writeBlockImports from './build/writePluginImports/writeBlockImports.js';
32
+ import writeAuth from './build/writeAuth.js';
33
+ import writePluginImports from './build/writePluginImports/writePluginImports.js';
39
34
  import writeConfig from './build/writeConfig.js';
40
- import writeConnectionImports from './build/writePluginImports/writeConnectionImports.js';
41
35
  import writeConnections from './build/writeConnections.js';
42
36
  import writeGlobal from './build/writeGlobal.js';
43
- import writeIconImports from './build/writePluginImports/writeIconImports.js';
44
37
  import writeMenus from './build/writeMenus.js';
45
- import writeOperatorImports from './build/writePluginImports/writeOperatorImports.js';
46
38
  import writePages from './build/writePages.js';
47
39
  import writeRequests from './build/writeRequests.js';
48
- import writeStyleImports from './build/writePluginImports/writeStyleImports.js';
49
40
  import writeTypes from './build/writeTypes.js';
50
- async function createContext({ customTypesMap , directories , logger , refResolver }) {
51
- const defaultTypesMap = JSON.parse(await readFile(new URL('./defaultTypesMap.json', import.meta.url).pathname));
52
- const context = {
53
- directories,
54
- logger,
55
- readConfigFile: createReadConfigFile({
56
- directories
57
- }),
58
- refResolver,
59
- typeCounters: {
60
- actions: createCounter(),
61
- blocks: createCounter(),
62
- connections: createCounter(),
63
- requests: createCounter(),
64
- operators: {
65
- client: createCounter(),
66
- server: createCounter()
67
- }
68
- },
69
- typesMap: mergeObjects([
70
- defaultTypesMap,
71
- customTypesMap
72
- ]),
73
- writeBuildArtifact: createWriteBuildArtifact({
74
- directories
75
- })
76
- };
77
- return context;
78
- }
79
41
  async function build(options) {
80
- const context = await createContext(options);
42
+ const context = createContext(options);
81
43
  const components = await buildRefs({
82
44
  context
83
45
  });
84
- await testSchema({
46
+ testSchema({
85
47
  components,
86
48
  context
87
49
  });
88
- await validateApp({
50
+ validateApp({
89
51
  components,
90
52
  context
91
53
  });
92
- await validateConfig({
54
+ validateConfig({
93
55
  components,
94
56
  context
95
57
  });
96
- await addDefaultPages({
58
+ addDefaultPages({
97
59
  components,
98
60
  context
99
61
  });
100
- await buildAuth({
62
+ buildAuth({
101
63
  components,
102
64
  context
103
65
  });
104
- await buildConnections({
66
+ buildConnections({
105
67
  components,
106
68
  context
107
69
  });
108
- await buildPages({
70
+ buildPages({
109
71
  components,
110
72
  context
111
73
  });
112
- await buildMenu({
74
+ buildMenu({
113
75
  components,
114
76
  context
115
77
  });
116
- await buildTypes({
78
+ buildTypes({
117
79
  components,
118
80
  context
119
81
  });
120
- await buildIcons({
121
- components,
122
- context
123
- });
124
- await buildStyles({
82
+ buildImports({
125
83
  components,
126
84
  context
127
85
  });
128
86
  await cleanBuildDirectory({
129
87
  context
130
88
  });
131
- await writeActionImports({
89
+ await writeApp({
132
90
  components,
133
91
  context
134
92
  });
135
- await writeApp({
93
+ await writeAuth({
136
94
  components,
137
95
  context
138
96
  });
@@ -164,23 +122,7 @@ async function build(options) {
164
122
  components,
165
123
  context
166
124
  });
167
- await writeBlockImports({
168
- components,
169
- context
170
- });
171
- await writeConnectionImports({
172
- components,
173
- context
174
- });
175
- await writeOperatorImports({
176
- components,
177
- context
178
- });
179
- await writeStyleImports({
180
- components,
181
- context
182
- });
183
- await writeIconImports({
125
+ await writePluginImports({
184
126
  components,
185
127
  context
186
128
  });
@@ -193,5 +135,5 @@ async function build(options) {
193
135
  context
194
136
  });
195
137
  }
196
- export { createContext, createPluginTypesMap };
138
+ export { createPluginTypesMap };
197
139
  export default build;
@@ -72,36 +72,73 @@ export default {
72
72
  type: 'object',
73
73
  additionalProperties: false,
74
74
  errorMessage: {
75
- type: 'App "config.auth" should be an object.'
75
+ type: 'App "auth" should be an object.'
76
76
  },
77
77
  properties: {
78
- openId: {
79
- type: 'object',
80
- additionalProperties: false,
81
- errorMessage: {
82
- type: 'App "config.auth.openId" should be an object.'
83
- },
84
- properties: {
85
- rolesField: {
86
- type: 'string',
87
- description: '.',
88
- errorMessage: {
89
- type: 'App "config.auth.openId.rolesField" should be a string.'
78
+ callbacks: {
79
+ type: 'array',
80
+ items: {
81
+ type: 'object',
82
+ required: [
83
+ 'id',
84
+ 'type'
85
+ ],
86
+ properties: {
87
+ id: {
88
+ type: 'string',
89
+ errorMessage: {
90
+ type: 'Auth callback "id" should be a string.'
91
+ }
92
+ },
93
+ type: {
94
+ type: 'string',
95
+ errorMessage: {
96
+ type: 'Auth callback "type" should be a string.'
97
+ }
98
+ },
99
+ properties: {
100
+ type: 'object'
90
101
  }
91
102
  },
92
- logoutRedirectUri: {
93
- type: 'string',
94
- description: 'The URI to redirect the user to after logout. Can be a Nunjucks template string with client_id, host, id_token_hint, and openid_domain as template data.',
95
- errorMessage: {
96
- type: 'App "config.auth.openId.logoutRedirectUri" should be a string.'
103
+ errorMessage: {
104
+ type: 'Auth callback should be an object.',
105
+ required: {
106
+ id: 'Auth callback should have required property "id".',
107
+ type: 'Auth callback should have required property "type".'
108
+ }
109
+ }
110
+ }
111
+ },
112
+ events: {
113
+ type: 'array',
114
+ items: {
115
+ type: 'object',
116
+ required: [
117
+ 'id',
118
+ 'type'
119
+ ],
120
+ properties: {
121
+ id: {
122
+ type: 'string',
123
+ errorMessage: {
124
+ type: 'Auth event "id" should be a string.'
125
+ }
126
+ },
127
+ type: {
128
+ type: 'string',
129
+ errorMessage: {
130
+ type: 'Auth event "type" should be a string.'
131
+ }
132
+ },
133
+ properties: {
134
+ type: 'object'
97
135
  }
98
136
  },
99
- scope: {
100
- type: 'string',
101
- description: 'The OpenID Connect scope to request.',
102
- default: 'openid profile email',
103
- errorMessage: {
104
- type: 'App "config.auth.openId.scope" should be a string.'
137
+ errorMessage: {
138
+ type: 'Auth event should be an object.',
139
+ required: {
140
+ id: 'Auth event should have required property "id".',
141
+ type: 'Auth event should have required property "type".'
105
142
  }
106
143
  }
107
144
  }
@@ -119,13 +156,13 @@ export default {
119
156
  'boolean'
120
157
  ],
121
158
  errorMessage: {
122
- type: 'App "config.auth.pages.protected.$" should be an array of strings.'
159
+ type: 'App "auth.pages.protected.$" should be an array of strings.'
123
160
  },
124
161
  items: {
125
162
  type: 'string',
126
163
  description: 'Page ids for which authentication is required. When specified, all unspecified pages will be public.',
127
164
  errorMessage: {
128
- type: 'App "config.auth.pages.protected.$" should be an array of strings.'
165
+ type: 'App "auth.pages.protected.$" should be an array of strings.'
129
166
  }
130
167
  }
131
168
  },
@@ -135,13 +172,13 @@ export default {
135
172
  'boolean'
136
173
  ],
137
174
  errorMessage: {
138
- type: 'App "config.auth.pages.public.$" should be an array of strings.'
175
+ type: 'App "auth.pages.public.$" should be an array of strings.'
139
176
  },
140
177
  items: {
141
178
  type: 'string',
142
179
  description: 'Page ids for which authentication is not required. When specified, all unspecified pages will be protected.',
143
180
  errorMessage: {
144
- type: 'App "config.auth.pages.public.$" should be an array of strings.'
181
+ type: 'App "auth.pages.public.$" should be an array of strings.'
145
182
  }
146
183
  }
147
184
  },
@@ -154,46 +191,55 @@ export default {
154
191
  type: 'string'
155
192
  },
156
193
  errorMessage: {
157
- type: 'App "config.auth.pages.roles.[role]" should be an array of strings.'
194
+ type: 'App "auth.pages.roles.[role]" should be an array of strings.'
158
195
  }
159
196
  }
160
197
  },
161
198
  errorMessage: {
162
- type: 'App "config.auth.pages.roles" should be an object.'
199
+ type: 'App "auth.pages.roles" should be an object.'
163
200
  }
164
201
  }
165
202
  }
166
203
  },
167
- jwt: {
168
- type: 'object',
169
- additionalProperties: false,
170
- errorMessage: {
171
- type: 'App "config.auth.jwt" should be an object.'
172
- },
173
- properties: {
174
- expiresIn: {
175
- type: [
176
- 'string',
177
- 'number'
178
- ],
179
- default: '4h',
180
- description: 'The length of time a user token should be valid. Can be expressed as a number in seconds, or a vercel/ms string (https://github.com/vercel/ms)',
181
- errorMessage: {
182
- type: 'App "config.auth.jwt.expiresIn" should be a string or number.'
204
+ providers: {
205
+ type: 'array',
206
+ items: {
207
+ type: 'object',
208
+ required: [
209
+ 'id',
210
+ 'type'
211
+ ],
212
+ properties: {
213
+ id: {
214
+ type: 'string',
215
+ errorMessage: {
216
+ type: 'Auth provider "id" should be a string.'
217
+ }
218
+ },
219
+ type: {
220
+ type: 'string',
221
+ errorMessage: {
222
+ type: 'Auth provider "type" should be a string.'
223
+ }
224
+ },
225
+ properties: {
226
+ type: 'object'
183
227
  }
184
228
  },
185
- loginStateExpiresIn: {
186
- type: [
187
- 'string',
188
- 'number'
189
- ],
190
- default: '5min',
191
- description: 'The length of time an authorization request token should be valid. Can be expressed as a number in seconds, or a vercel/ms string (https://github.com/vercel/ms)',
192
- errorMessage: {
193
- type: 'App "config.auth.jwt.loginStateExpiresIn" should be a string or number.'
229
+ errorMessage: {
230
+ type: 'Auth provider should be an object.',
231
+ required: {
232
+ id: 'Auth provider should have required property "id".',
233
+ type: 'Auth provider should have required property "type".'
194
234
  }
195
235
  }
196
236
  }
237
+ },
238
+ session: {
239
+ type: 'object'
240
+ },
241
+ theme: {
242
+ type: 'object'
197
243
  }
198
244
  }
199
245
  },
@@ -645,9 +691,18 @@ export default {
645
691
  type: 'App "license" should be a string.'
646
692
  }
647
693
  },
694
+ version: {
695
+ type: 'string',
696
+ errorMessage: {
697
+ type: 'App "version" should be a string.'
698
+ }
699
+ },
648
700
  app: {
649
701
  $ref: '#/definitions/app'
650
702
  },
703
+ auth: {
704
+ $ref: '#/definitions/authConfig'
705
+ },
651
706
  cli: {
652
707
  type: 'object',
653
708
  errorMessage: {
@@ -661,9 +716,6 @@ export default {
661
716
  },
662
717
  additionalProperties: false,
663
718
  properties: {
664
- auth: {
665
- $ref: '#/definitions/authConfig'
666
- },
667
719
  basePath: {
668
720
  type: 'string',
669
721
  description: 'App base path to apply to all routes. Base path must start with "/".',
@@ -38,12 +38,18 @@ const defaultPackages = [
38
38
  '@lowdefy/operators-mql',
39
39
  '@lowdefy/operators-nunjucks',
40
40
  '@lowdefy/operators-uuid',
41
- '@lowdefy/operators-yaml',
41
+ '@lowdefy/operators-yaml',
42
+ '@lowdefy/plugin-next-auth',
42
43
  ];
43
44
  async function generateDefaultTypesMap() {
44
45
  const packageFile = JSON.parse(await readFile(path.resolve(process.cwd(), './package.json')));
45
46
  const defaultTypesMap = {
46
47
  actions: {},
48
+ auth: {
49
+ callbacks: {},
50
+ events: {},
51
+ providers: {}
52
+ },
47
53
  blocks: {},
48
54
  connections: {},
49
55
  icons: {},
@@ -67,6 +73,9 @@ async function generateDefaultTypesMap() {
67
73
  version
68
74
  });
69
75
  }));
70
- await writeFile(path.resolve(process.cwd(), './dist/defaultTypesMap.json'), JSON.stringify(defaultTypesMap, null, 2));
76
+ await writeFile(path.resolve(process.cwd(), './dist/defaultTypesMap.js'), `const defaultTypesMap = ${JSON.stringify(defaultTypesMap, null, 2)};
77
+
78
+ export default defaultTypesMap;
79
+ `);
71
80
  }
72
81
  generateDefaultTypesMap();
@@ -20,13 +20,14 @@ import build from '../index.js';
20
20
  const argv = yargs(hideBin(process.argv)).argv;
21
21
  async function run() {
22
22
  await build({
23
- logger: console,
24
- refResolver: argv.refResolver || process.env.LOWDEFY_BUILD_REF_RESOLVER,
25
23
  directories: {
26
24
  build: path.resolve(argv.buildDirectory || process.env.LOWDEFY_DIRECTORY_BUILD || path.join(process.cwd(), 'build')),
27
25
  config: path.resolve(argv.configDirectory || process.env.LOWDEFY_DIRECTORY_CONFIG || process.cwd()),
28
26
  server: path.resolve(argv.serverDirectory || process.env.LOWDEFY_DIRECTORY_SERVER || process.cwd())
29
- }
27
+ },
28
+ logger: console,
29
+ refResolver: argv.refResolver || process.env.LOWDEFY_BUILD_REF_RESOLVER,
30
+ stage: argv.stage || process.env.LOWDEFY_BUILD_STAGE || 'prod'
30
31
  });
31
32
  }
32
33
  run();
@@ -17,7 +17,7 @@
17
17
  resolved: true,
18
18
  path,
19
19
  vars,
20
- contextId: context.id
20
+ stage: context.stage
21
21
  };
22
22
  }
23
23
  export default resolver;
@@ -22,12 +22,17 @@ function testContext({ writeBuildArtifact , configDirectory , readConfigFile , l
22
22
  succeed: ()=>{}
23
23
  };
24
24
  const context = {
25
- id: 'test',
25
+ stage: 'test',
26
26
  directories: {
27
27
  config: configDirectory || ''
28
28
  },
29
29
  typeCounters: {
30
30
  actions: createCounter(),
31
+ auth: {
32
+ callbacks: createCounter(),
33
+ events: createCounter(),
34
+ providers: createCounter()
35
+ },
31
36
  blocks: createCounter(),
32
37
  connections: createCounter(),
33
38
  requests: createCounter(),
@@ -32,6 +32,27 @@ function createPluginTypesMap({ packageName , packageTypes , typePrefix ='' , ty
32
32
  typePrefix,
33
33
  version
34
34
  });
35
+ createTypeDefinitions({
36
+ typeNames: type.isObject(packageTypes.auth) ? packageTypes.auth.callbacks : [],
37
+ store: typesMap.auth.callbacks,
38
+ packageName,
39
+ typePrefix,
40
+ version
41
+ });
42
+ createTypeDefinitions({
43
+ typeNames: type.isObject(packageTypes.auth) ? packageTypes.auth.events : [],
44
+ store: typesMap.auth.events,
45
+ packageName,
46
+ typePrefix,
47
+ version
48
+ });
49
+ createTypeDefinitions({
50
+ typeNames: type.isObject(packageTypes.auth) ? packageTypes.auth.providers : [],
51
+ store: typesMap.auth.providers,
52
+ packageName,
53
+ typePrefix,
54
+ version
55
+ });
35
56
  createTypeDefinitions({
36
57
  typeNames: packageTypes.blocks,
37
58
  store: typesMap.blocks,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lowdefy/build",
3
- "version": "4.0.0-alpha.10",
4
- "licence": "Apache-2.0",
3
+ "version": "4.0.0-alpha.13",
4
+ "license": "Apache-2.0",
5
5
  "description": "",
6
6
  "homepage": "https://lowdefy.com",
7
7
  "keywords": [
@@ -36,7 +36,10 @@
36
36
  "bin": {
37
37
  "lowdefy-build": "./dist/scripts/run.js"
38
38
  },
39
- "exports": "./dist/index.js",
39
+ "exports": {
40
+ ".": "./dist/index.js",
41
+ "./buildTestPage": "./dist/build/buildPages/buildTestPage.js"
42
+ },
40
43
  "files": [
41
44
  "dist/*"
42
45
  ],
@@ -49,48 +52,49 @@
49
52
  "test": "yarn node --experimental-vm-modules $(yarn bin jest)"
50
53
  },
51
54
  "dependencies": {
52
- "@lowdefy/ajv": "4.0.0-alpha.10",
53
- "@lowdefy/blocks-basic": "4.0.0-alpha.10",
54
- "@lowdefy/blocks-loaders": "4.0.0-alpha.10",
55
- "@lowdefy/helpers": "4.0.0-alpha.10",
56
- "@lowdefy/node-utils": "4.0.0-alpha.10",
57
- "@lowdefy/nunjucks": "4.0.0-alpha.10",
58
- "@lowdefy/operators": "4.0.0-alpha.10",
59
- "@lowdefy/operators-js": "4.0.0-alpha.10",
60
- "ajv": "8.9.0",
61
- "json5": "2.2.0",
55
+ "@lowdefy/ajv": "4.0.0-alpha.13",
56
+ "@lowdefy/blocks-basic": "4.0.0-alpha.13",
57
+ "@lowdefy/blocks-loaders": "4.0.0-alpha.13",
58
+ "@lowdefy/helpers": "4.0.0-alpha.13",
59
+ "@lowdefy/node-utils": "4.0.0-alpha.13",
60
+ "@lowdefy/nunjucks": "4.0.0-alpha.13",
61
+ "@lowdefy/operators": "4.0.0-alpha.13",
62
+ "@lowdefy/operators-js": "4.0.0-alpha.13",
63
+ "ajv": "8.11.0",
64
+ "json5": "2.2.1",
62
65
  "uuid": "8.3.2",
63
- "yaml": "2.0.0-10",
64
- "yargs": "17.3.1"
66
+ "yaml": "2.1.1",
67
+ "yargs": "17.5.1"
65
68
  },
66
69
  "devDependencies": {
67
- "@jest/globals": "27.5.1",
68
- "@lowdefy/actions-core": "4.0.0-alpha.10",
69
- "@lowdefy/blocks-antd": "4.0.0-alpha.10",
70
- "@lowdefy/blocks-color-selectors": "4.0.0-alpha.10",
71
- "@lowdefy/blocks-echarts": "4.0.0-alpha.10",
72
- "@lowdefy/blocks-markdown": "4.0.0-alpha.10",
73
- "@lowdefy/connection-axios-http": "4.0.0-alpha.10",
74
- "@lowdefy/connection-elasticsearch": "4.0.0-alpha.10",
75
- "@lowdefy/connection-google-sheets": "4.0.0-alpha.10",
76
- "@lowdefy/connection-knex": "4.0.0-alpha.10",
77
- "@lowdefy/connection-mongodb": "4.0.0-alpha.10",
78
- "@lowdefy/connection-redis": "4.0.0-alpha.10",
79
- "@lowdefy/connection-sendgrid": "4.0.0-alpha.10",
80
- "@lowdefy/connection-stripe": "4.0.0-alpha.10",
81
- "@lowdefy/operators-change-case": "4.0.0-alpha.10",
82
- "@lowdefy/operators-diff": "4.0.0-alpha.10",
83
- "@lowdefy/operators-mql": "4.0.0-alpha.10",
84
- "@lowdefy/operators-nunjucks": "4.0.0-alpha.10",
85
- "@lowdefy/operators-uuid": "4.0.0-alpha.10",
86
- "@lowdefy/operators-yaml": "4.0.0-alpha.10",
87
- "@swc/cli": "0.1.55",
88
- "@swc/core": "1.2.135",
89
- "@swc/jest": "0.2.17",
90
- "jest": "27.5.1"
70
+ "@jest/globals": "28.1.0",
71
+ "@lowdefy/actions-core": "4.0.0-alpha.13",
72
+ "@lowdefy/blocks-antd": "4.0.0-alpha.13",
73
+ "@lowdefy/blocks-color-selectors": "4.0.0-alpha.13",
74
+ "@lowdefy/blocks-echarts": "4.0.0-alpha.13",
75
+ "@lowdefy/blocks-markdown": "4.0.0-alpha.13",
76
+ "@lowdefy/connection-axios-http": "4.0.0-alpha.13",
77
+ "@lowdefy/connection-elasticsearch": "4.0.0-alpha.13",
78
+ "@lowdefy/connection-google-sheets": "4.0.0-alpha.13",
79
+ "@lowdefy/connection-knex": "4.0.0-alpha.13",
80
+ "@lowdefy/connection-mongodb": "4.0.0-alpha.13",
81
+ "@lowdefy/connection-redis": "4.0.0-alpha.13",
82
+ "@lowdefy/connection-sendgrid": "4.0.0-alpha.13",
83
+ "@lowdefy/connection-stripe": "4.0.0-alpha.13",
84
+ "@lowdefy/operators-change-case": "4.0.0-alpha.13",
85
+ "@lowdefy/operators-diff": "4.0.0-alpha.13",
86
+ "@lowdefy/operators-mql": "4.0.0-alpha.13",
87
+ "@lowdefy/operators-nunjucks": "4.0.0-alpha.13",
88
+ "@lowdefy/operators-uuid": "4.0.0-alpha.13",
89
+ "@lowdefy/operators-yaml": "4.0.0-alpha.13",
90
+ "@lowdefy/plugin-next-auth": "4.0.0-alpha.13",
91
+ "@swc/cli": "0.1.57",
92
+ "@swc/core": "1.2.194",
93
+ "@swc/jest": "0.2.21",
94
+ "jest": "28.1.0"
91
95
  },
92
96
  "publishConfig": {
93
97
  "access": "public"
94
98
  },
95
- "gitHead": "d697b4b5f354697d9481a371b90a00ca0944f486"
99
+ "gitHead": "e99b4b6c1f59804982fc148c0fe39dcf13b35d77"
96
100
  }