@fugood/bricks-project 2.23.0-beta.24 → 2.23.0-beta.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compile/action-name-map.ts +25 -0
- package/compile/index.ts +52 -60
- package/package.json +4 -4
- package/tools/mcp-server.ts +3 -3
- package/tools/postinstall.ts +2 -5
- package/tools/preview.ts +1 -1
- package/tools/pull.ts +1 -1
- package/types/brick-base.ts +1 -0
- package/types/bricks/Camera.ts +1 -0
- package/types/bricks/Chart.ts +1 -0
- package/types/bricks/GenerativeMedia.ts +1 -0
- package/types/bricks/Icon.ts +1 -0
- package/types/bricks/Image.ts +1 -0
- package/types/bricks/Items.ts +1 -0
- package/types/bricks/Lottie.ts +1 -0
- package/types/bricks/QrCode.ts +1 -0
- package/types/bricks/Rect.ts +1 -0
- package/types/bricks/RichText.ts +1 -0
- package/types/bricks/Rive.ts +1 -0
- package/types/bricks/Slideshow.ts +1 -0
- package/types/bricks/Svg.ts +1 -0
- package/types/bricks/Text.ts +1 -0
- package/types/bricks/TextInput.ts +1 -0
- package/types/bricks/Video.ts +1 -0
- package/types/bricks/VideoStreaming.ts +1 -0
- package/types/bricks/WebRtcStream.ts +1 -0
- package/types/bricks/WebView.ts +1 -0
- package/types/bricks/index.ts +1 -0
- package/types/canvas.ts +1 -0
- package/types/data-calc.ts +1 -0
- package/types/data.ts +1 -0
- package/types/generators/AlarmClock.ts +1 -0
- package/types/generators/Assistant.ts +1 -0
- package/types/generators/BleCentral.ts +1 -0
- package/types/generators/BlePeripheral.ts +1 -0
- package/types/generators/CanvasMap.ts +1 -0
- package/types/generators/CastlesPay.ts +1 -0
- package/types/generators/DataBank.ts +1 -0
- package/types/generators/File.ts +1 -0
- package/types/generators/GraphQl.ts +1 -0
- package/types/generators/Http.ts +1 -0
- package/types/generators/HttpServer.ts +1 -0
- package/types/generators/Information.ts +1 -0
- package/types/generators/Intent.ts +1 -0
- package/types/generators/Iterator.ts +1 -0
- package/types/generators/Keyboard.ts +1 -0
- package/types/generators/LlmAnthropicCompat.ts +1 -0
- package/types/generators/LlmAppleBuiltin.ts +143 -0
- package/types/generators/LlmGgml.ts +1 -0
- package/types/generators/LlmOnnx.ts +1 -0
- package/types/generators/LlmOpenAiCompat.ts +1 -0
- package/types/generators/LlmQualcommAiEngine.ts +1 -0
- package/types/generators/Mcp.ts +1 -0
- package/types/generators/McpServer.ts +1 -0
- package/types/generators/MediaFlow.ts +1 -0
- package/types/generators/MqttBroker.ts +1 -0
- package/types/generators/MqttClient.ts +1 -0
- package/types/generators/Question.ts +1 -0
- package/types/generators/RealtimeTranscription.ts +1 -0
- package/types/generators/RerankerGgml.ts +1 -0
- package/types/generators/SerialPort.ts +1 -0
- package/types/generators/SoundPlayer.ts +1 -0
- package/types/generators/SoundRecorder.ts +1 -0
- package/types/generators/SpeechToTextGgml.ts +1 -0
- package/types/generators/SpeechToTextOnnx.ts +1 -0
- package/types/generators/SpeechToTextPlatform.ts +1 -0
- package/types/generators/SqLite.ts +1 -0
- package/types/generators/Step.ts +1 -0
- package/types/generators/SttAppleBuiltin.ts +116 -0
- package/types/generators/Tcp.ts +1 -0
- package/types/generators/TcpServer.ts +1 -0
- package/types/generators/TextToSpeechApple.ts +113 -0
- package/types/generators/TextToSpeechAppleBuiltin.ts +113 -0
- package/types/generators/TextToSpeechGgml.ts +1 -0
- package/types/generators/TextToSpeechOnnx.ts +1 -0
- package/types/generators/TextToSpeechOpenAiLike.ts +1 -0
- package/types/generators/ThermalPrinter.ts +1 -0
- package/types/generators/Tick.ts +1 -0
- package/types/generators/TtsAppleBuiltin.ts +105 -0
- package/types/generators/Udp.ts +1 -0
- package/types/generators/VadGgml.ts +1 -0
- package/types/generators/VectorStore.ts +1 -0
- package/types/generators/Watchdog.ts +1 -0
- package/types/generators/WebCrawler.ts +1 -0
- package/types/generators/WebRtc.ts +1 -0
- package/types/generators/WebSocket.ts +1 -0
- package/types/generators/index.ts +3 -0
- package/types/system.ts +1 -0
- package/utils/data.ts +1 -0
- package/utils/event-props.ts +33 -0
- package/utils/id.ts +3 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* Auto generated by build script */
|
|
2
|
+
|
|
1
3
|
// NOTE: The action parameter name convertion is not 1:1 mapping case conversion, so we need to define the mapping here
|
|
2
4
|
// This may be improved in the future
|
|
3
5
|
export const templateActionNameMap = {
|
|
@@ -754,6 +756,29 @@ export const templateActionNameMap = {
|
|
|
754
756
|
toolChoice: 'GENERATOR_ANTHROPIC_LLM_TOOL_CHOICE',
|
|
755
757
|
},
|
|
756
758
|
},
|
|
759
|
+
GENERATOR_APPLE_LLM: {
|
|
760
|
+
GENERATOR_APPLE_LLM_COMPLETION: {
|
|
761
|
+
messages: 'GENERATOR_APPLE_LLM_MESSAGES',
|
|
762
|
+
maxTokens: 'GENERATOR_APPLE_LLM_MAX_TOKENS',
|
|
763
|
+
temperature: 'GENERATOR_APPLE_LLM_TEMPERATURE',
|
|
764
|
+
topP: 'GENERATOR_APPLE_LLM_TOP_P',
|
|
765
|
+
},
|
|
766
|
+
},
|
|
767
|
+
GENERATOR_APPLE_STT: {
|
|
768
|
+
GENERATOR_APPLE_STT_TRANSCRIBE_FILE: {
|
|
769
|
+
fileUrl: 'GENERATOR_APPLE_STT_FILE_URL',
|
|
770
|
+
language: 'GENERATOR_APPLE_STT_LANGUAGE',
|
|
771
|
+
},
|
|
772
|
+
GENERATOR_APPLE_STT_TRANSCRIBE_DATA: {
|
|
773
|
+
data: 'GENERATOR_APPLE_STT_DATA',
|
|
774
|
+
language: 'GENERATOR_APPLE_STT_LANGUAGE',
|
|
775
|
+
},
|
|
776
|
+
},
|
|
777
|
+
GENERATOR_APPLE_TTS: {
|
|
778
|
+
GENERATOR_APPLE_TTS_GENERATE: {
|
|
779
|
+
text: 'GENERATOR_APPLE_TTS_TEXT',
|
|
780
|
+
},
|
|
781
|
+
},
|
|
757
782
|
GENERATOR_ASSISTANT: {
|
|
758
783
|
GENERATOR_ASSISTANT_ADD_MESSAGE: {
|
|
759
784
|
role: 'GENERATOR_ASSISTANT_ROLE',
|
package/compile/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable no-underscore-dangle -- Uses __typename, __actionName, etc. for type system */
|
|
1
2
|
import _ from 'lodash'
|
|
2
3
|
import { parse as parseAST } from 'acorn'
|
|
3
4
|
import type { ExportNamedDeclaration, FunctionDeclaration } from 'acorn'
|
|
@@ -12,7 +13,6 @@ import type {
|
|
|
12
13
|
Animation,
|
|
13
14
|
AnimationDef,
|
|
14
15
|
AnimationComposeDef,
|
|
15
|
-
EventAction,
|
|
16
16
|
ActionWithDataParams,
|
|
17
17
|
ActionWithParams,
|
|
18
18
|
BrickItems,
|
|
@@ -24,10 +24,8 @@ import type {
|
|
|
24
24
|
DataCalculationData,
|
|
25
25
|
DataCommand,
|
|
26
26
|
Brick,
|
|
27
|
-
Generator,
|
|
28
27
|
Canvas,
|
|
29
28
|
Subspace,
|
|
30
|
-
EventActionForItem,
|
|
31
29
|
} from '../types'
|
|
32
30
|
|
|
33
31
|
const compileProperty = (property, errorReference: string, result = {}) => {
|
|
@@ -66,25 +64,22 @@ const compileEventActionValue = (templateKey, eventKey, value, errorReference) =
|
|
|
66
64
|
return compileProperty(value, errorReference)
|
|
67
65
|
}
|
|
68
66
|
|
|
69
|
-
const convertOutletKey = (templateKey: string, key: string) =>
|
|
70
|
-
|
|
71
|
-
}
|
|
67
|
+
const convertOutletKey = (templateKey: string, key: string) =>
|
|
68
|
+
`${templateKey}_${_.snakeCase(key).toUpperCase()}`
|
|
72
69
|
|
|
73
70
|
const compileOutlets = (
|
|
74
71
|
templateKey: string,
|
|
75
72
|
outlets: { [key: string]: () => Data },
|
|
76
73
|
errorReference: string,
|
|
77
|
-
) =>
|
|
78
|
-
|
|
74
|
+
) =>
|
|
75
|
+
Object.entries(outlets).reduce((acc, [key, data]) => {
|
|
79
76
|
if (!data()?.id) throw new Error(`Invalid data reference ${errorReference}`)
|
|
80
77
|
acc[convertOutletKey(templateKey, key)] = data().id
|
|
81
78
|
return acc
|
|
82
79
|
}, {})
|
|
83
|
-
}
|
|
84
80
|
|
|
85
|
-
const convertEventKey = (templateKey: string, key: string) =>
|
|
86
|
-
|
|
87
|
-
}
|
|
81
|
+
const convertEventKey = (templateKey: string, key: string) =>
|
|
82
|
+
`${templateKey ? `${templateKey}_` : ''}${_.snakeCase(key).toUpperCase()}`
|
|
88
83
|
|
|
89
84
|
const basicAnimationEvents = ['show', 'standby', 'breatheStart']
|
|
90
85
|
|
|
@@ -92,14 +87,13 @@ const compileAnimations = (
|
|
|
92
87
|
templateKey: string,
|
|
93
88
|
animations: { [key: string]: Animation },
|
|
94
89
|
errorReference: string,
|
|
95
|
-
) =>
|
|
96
|
-
|
|
90
|
+
) =>
|
|
91
|
+
Object.entries(animations).reduce((acc, [key, animation]) => {
|
|
97
92
|
if (!animation?.id) throw new Error(`Invalid animation reference ${errorReference}`)
|
|
98
93
|
acc[convertEventKey(basicAnimationEvents.includes(key) ? 'BRICK' : templateKey, key)] =
|
|
99
94
|
`ANIMATION#${animation.id}`
|
|
100
95
|
return acc
|
|
101
96
|
}, {})
|
|
102
|
-
}
|
|
103
97
|
|
|
104
98
|
const compileActionParam = (templateKey: string, actionName: string, paramName: string) =>
|
|
105
99
|
templateActionNameMap[templateKey]?.[actionName]?.[paramName] || paramName
|
|
@@ -190,7 +184,7 @@ const compileSwitchConds = (templateKey, conds, errorReference) =>
|
|
|
190
184
|
result.key = cond.data().id
|
|
191
185
|
result.value = cond.value
|
|
192
186
|
} else if (item.cond.__typename === 'SwitchCondInnerStateOutlet') {
|
|
193
|
-
const cond = item
|
|
187
|
+
const { cond } = item
|
|
194
188
|
result.type = 'inner_state'
|
|
195
189
|
result.key = convertOutletKey(templateKey, cond.outlet)
|
|
196
190
|
result.value = cond.value
|
|
@@ -205,35 +199,33 @@ const compileSwitchConds = (templateKey, conds, errorReference) =>
|
|
|
205
199
|
return result
|
|
206
200
|
})
|
|
207
201
|
|
|
208
|
-
const compileApplicationSettings = (settings: Application['settings']) => {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}
|
|
236
|
-
}
|
|
202
|
+
const compileApplicationSettings = (settings: Application['settings']) => ({
|
|
203
|
+
internet_reachability_url: settings?.internetReachabilityUrl,
|
|
204
|
+
enable_data_lock: settings?.enableDataLock,
|
|
205
|
+
show_deprecated_features: settings?.showDeprecatedFeatures,
|
|
206
|
+
enable_unstable_bricks: settings?.enableUnstableFeatures,
|
|
207
|
+
runtime_cache_options: settings?.runtimeCacheOptions
|
|
208
|
+
? {
|
|
209
|
+
disabled: settings.runtimeCacheOptions.disabled,
|
|
210
|
+
behavior: settings.runtimeCacheOptions.behavior,
|
|
211
|
+
retry_attempt_for_failure: settings.runtimeCacheOptions.retryAttemptForFailure,
|
|
212
|
+
}
|
|
213
|
+
: undefined,
|
|
214
|
+
tv_options: settings?.tvOptions
|
|
215
|
+
? {
|
|
216
|
+
disabled_selectable: settings.tvOptions.disabledSelectable,
|
|
217
|
+
selectable_color: settings.tvOptions.selectableColor,
|
|
218
|
+
selectable_border: settings.tvOptions.selectableBorder,
|
|
219
|
+
}
|
|
220
|
+
: undefined,
|
|
221
|
+
ai: settings?.ai
|
|
222
|
+
? {
|
|
223
|
+
use_anthropic_api_key_system_data: settings.ai.useAnthropicApiKeySystemData,
|
|
224
|
+
use_openai_api_key_system_data: settings.ai.useOpenAiApiKeySystemData,
|
|
225
|
+
use_gemini_api_key_system_data: settings.ai.useGeminiApiKeySystemData,
|
|
226
|
+
}
|
|
227
|
+
: undefined,
|
|
228
|
+
})
|
|
237
229
|
|
|
238
230
|
const animationTypeMap = {
|
|
239
231
|
AnimationTimingConfig: 'timing',
|
|
@@ -338,7 +330,7 @@ export const compile = async (app: Application) => {
|
|
|
338
330
|
brick: !subspace.unexpanded.brick,
|
|
339
331
|
generator: !subspace.unexpanded.generator,
|
|
340
332
|
canvas: subspace.unexpanded.canvas?.reduce((acc, canvas) => {
|
|
341
|
-
acc[canvas.id] = canvas?.id
|
|
333
|
+
acc[canvas.id] = !canvas?.id
|
|
342
334
|
return acc
|
|
343
335
|
}, {}),
|
|
344
336
|
property_bank: !subspace.unexpanded.data,
|
|
@@ -377,12 +369,12 @@ export const compile = async (app: Application) => {
|
|
|
377
369
|
animationRunType: animationDef.runType,
|
|
378
370
|
compose_type: animationDef.composeType,
|
|
379
371
|
item_list: animationDef.items.map((item, index) => {
|
|
380
|
-
const
|
|
381
|
-
if (!
|
|
372
|
+
const innerAnimation = item()
|
|
373
|
+
if (!innerAnimation?.id)
|
|
382
374
|
throw new Error(
|
|
383
|
-
`Invalid animation index: ${index} (animation: ${
|
|
375
|
+
`Invalid animation index: ${index} (animation: ${innerAnimation.id}, subspace ${subspace.id})`,
|
|
384
376
|
)
|
|
385
|
-
return { animation_id:
|
|
377
|
+
return { animation_id: innerAnimation.id }
|
|
386
378
|
}),
|
|
387
379
|
}
|
|
388
380
|
}
|
|
@@ -461,7 +453,7 @@ export const compile = async (app: Application) => {
|
|
|
461
453
|
property.brickList = brickList
|
|
462
454
|
} else {
|
|
463
455
|
// Not supported Data for brickList
|
|
464
|
-
throw new
|
|
456
|
+
throw new TypeError('Not supported Data for brickList directly')
|
|
465
457
|
}
|
|
466
458
|
if (Array.isArray(brickItems.brickDetails)) {
|
|
467
459
|
const brickDetails = (brickItems.brickDetails || []).map((item, index) =>
|
|
@@ -470,7 +462,7 @@ export const compile = async (app: Application) => {
|
|
|
470
462
|
property.brickDetails = brickDetails
|
|
471
463
|
} else {
|
|
472
464
|
// Not supported Data for brickList
|
|
473
|
-
throw new
|
|
465
|
+
throw new TypeError('Not supported Data for brickList directly')
|
|
474
466
|
}
|
|
475
467
|
}
|
|
476
468
|
map[brick.id] = {
|
|
@@ -694,7 +686,7 @@ export const compile = async (app: Application) => {
|
|
|
694
686
|
if (!acc[port.key]) acc[port.key] = null
|
|
695
687
|
|
|
696
688
|
let sourceId
|
|
697
|
-
|
|
689
|
+
const sourceNode = port.source()
|
|
698
690
|
if (sourceNode?.__typename === 'DataCalculationData')
|
|
699
691
|
sourceId = (sourceNode as DataCalculationData).data().id
|
|
700
692
|
if (sourceNode?.__typename === 'DataCommand') sourceId = sourceNode.id
|
|
@@ -715,7 +707,7 @@ export const compile = async (app: Application) => {
|
|
|
715
707
|
if (!acc[port.key]) acc[port.key] = null
|
|
716
708
|
|
|
717
709
|
let targetId
|
|
718
|
-
|
|
710
|
+
const targetNode = port.target()
|
|
719
711
|
if (targetNode?.__typename === 'DataCalculationData')
|
|
720
712
|
targetId = (targetNode as DataCalculationData).data().id
|
|
721
713
|
if (targetNode?.__typename === 'DataCommand') targetId = targetNode.id
|
|
@@ -770,9 +762,9 @@ export const compile = async (app: Application) => {
|
|
|
770
762
|
type: `command-node-${type}`,
|
|
771
763
|
properties: {
|
|
772
764
|
command: commandNode.__commandName,
|
|
773
|
-
args: args.reduce((
|
|
774
|
-
|
|
775
|
-
return
|
|
765
|
+
args: args.reduce((argsAcc, input) => {
|
|
766
|
+
argsAcc[input.key] = input.source
|
|
767
|
+
return argsAcc
|
|
776
768
|
}, {}),
|
|
777
769
|
},
|
|
778
770
|
in: generateInputPorts(inputs),
|
|
@@ -784,12 +776,12 @@ export const compile = async (app: Application) => {
|
|
|
784
776
|
calc.editor_info = mapCalc.editorInfo.reduce((acc, editorInfo) => {
|
|
785
777
|
acc[getNodeId(editorInfo.node)] = {
|
|
786
778
|
position: editorInfo.position,
|
|
787
|
-
points: editorInfo.points.reduce((
|
|
779
|
+
points: editorInfo.points.reduce((pointsAcc, point) => {
|
|
788
780
|
const sourceId = getNodeId(point.source)
|
|
789
781
|
const targetId = getNodeId(point.target)
|
|
790
782
|
const key = `${sourceId}-${point.sourceOutputKey}-${targetId}-${point.targetInputKey}`
|
|
791
|
-
|
|
792
|
-
return
|
|
783
|
+
pointsAcc[key] = point.positions
|
|
784
|
+
return pointsAcc
|
|
793
785
|
}, {}),
|
|
794
786
|
}
|
|
795
787
|
return acc
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fugood/bricks-project",
|
|
3
|
-
"version": "2.23.0-beta.
|
|
3
|
+
"version": "2.23.0-beta.26",
|
|
4
4
|
"main": "index.ts",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"build": "
|
|
6
|
+
"build": "bun scripts/build.js"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@modelcontextprotocol/sdk": "^1.15.0",
|
|
10
10
|
"@types/escodegen": "^0.0.10",
|
|
11
11
|
"@types/lodash": "^4.17.12",
|
|
12
12
|
"acorn": "^8.13.0",
|
|
13
|
-
"escodegen": "
|
|
13
|
+
"escodegen": "2.1.0",
|
|
14
14
|
"lodash": "^4.17.4",
|
|
15
15
|
"uuid": "^8.3.1"
|
|
16
16
|
},
|
|
17
|
-
"gitHead": "
|
|
17
|
+
"gitHead": "a3c7e7c4b3775d92d4f152e4d7dd032b526b05d1"
|
|
18
18
|
}
|
package/tools/mcp-server.ts
CHANGED
|
@@ -8,7 +8,7 @@ const server = new McpServer({
|
|
|
8
8
|
version: '1.0.0',
|
|
9
9
|
})
|
|
10
10
|
|
|
11
|
-
const dirname = import.meta
|
|
11
|
+
const { dirname } = import.meta
|
|
12
12
|
const projectDir = String(dirname).split('/node_modules/')[0]
|
|
13
13
|
|
|
14
14
|
server.tool('compile', {}, async () => {
|
|
@@ -16,7 +16,7 @@ server.tool('compile', {}, async () => {
|
|
|
16
16
|
try {
|
|
17
17
|
log = await $`bun compile`.cwd(projectDir).text()
|
|
18
18
|
} catch (err) {
|
|
19
|
-
log = err.stdout.toString()
|
|
19
|
+
log = `${err.stdout.toString()}\n${err.stderr.toString()}`
|
|
20
20
|
}
|
|
21
21
|
return {
|
|
22
22
|
content: [{ type: 'text', text: log || 'Compiled successfully' }],
|
|
@@ -61,7 +61,7 @@ server.tool(
|
|
|
61
61
|
]
|
|
62
62
|
log = await $`bunx --bun electron ${dirname}/preview-main.mjs ${args}`.cwd(projectDir).text()
|
|
63
63
|
} catch (err) {
|
|
64
|
-
log = err.stdout.toString()
|
|
64
|
+
log = `${err.stdout.toString()}\n${err.stderr.toString()}`
|
|
65
65
|
error = true
|
|
66
66
|
}
|
|
67
67
|
let screenshotBase64: any = null
|
package/tools/postinstall.ts
CHANGED
|
@@ -17,13 +17,10 @@ const skipCopyProject = process.argv.includes('--skip-copy-project')
|
|
|
17
17
|
if (skipCopyProject) {
|
|
18
18
|
console.log('Skipping copy of files to project/')
|
|
19
19
|
} else {
|
|
20
|
-
|
|
21
20
|
const libFiles = ['types', 'utils', 'index.ts']
|
|
22
|
-
|
|
21
|
+
|
|
23
22
|
await $`mkdir -p ${cwd}/project`
|
|
24
|
-
|
|
25
|
-
await $`cp -r ${__dirname}/../${file} ${cwd}/project`
|
|
26
|
-
}
|
|
23
|
+
await Promise.all(libFiles.map((file) => $`cp -r ${__dirname}/../${file} ${cwd}/project`))
|
|
27
24
|
console.log('Copied files to project/')
|
|
28
25
|
}
|
|
29
26
|
|
package/tools/preview.ts
CHANGED
package/tools/pull.ts
CHANGED
|
@@ -24,7 +24,7 @@ let useMain = false
|
|
|
24
24
|
if (isGitRepo) {
|
|
25
25
|
const found = (await $`cd ${cwd} && git rev-list -1 ${lastCommitId}`.nothrow().text())
|
|
26
26
|
.trim()
|
|
27
|
-
.match(/^[
|
|
27
|
+
.match(/^[\da-f]{40}$/)
|
|
28
28
|
|
|
29
29
|
const commitId = (await $`cd ${cwd} && git rev-parse HEAD`.text()).trim()
|
|
30
30
|
|
package/types/brick-base.ts
CHANGED
package/types/bricks/Camera.ts
CHANGED
package/types/bricks/Chart.ts
CHANGED
package/types/bricks/Icon.ts
CHANGED
package/types/bricks/Image.ts
CHANGED
package/types/bricks/Items.ts
CHANGED
package/types/bricks/Lottie.ts
CHANGED
package/types/bricks/QrCode.ts
CHANGED
package/types/bricks/Rect.ts
CHANGED
package/types/bricks/RichText.ts
CHANGED
package/types/bricks/Rive.ts
CHANGED
package/types/bricks/Svg.ts
CHANGED
package/types/bricks/Text.ts
CHANGED
package/types/bricks/Video.ts
CHANGED
package/types/bricks/WebView.ts
CHANGED
package/types/bricks/index.ts
CHANGED
package/types/canvas.ts
CHANGED
package/types/data-calc.ts
CHANGED
package/types/data.ts
CHANGED
package/types/generators/File.ts
CHANGED
package/types/generators/Http.ts
CHANGED