miolo 2.0.0-beta.2 → 2.0.0-beta.21
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/bin/build-client.mjs +19 -0
- package/bin/build-server.mjs +54 -0
- package/bin/create-bin.mjs +38 -0
- package/bin/dev.mjs +75 -0
- package/bin/index.mjs +70 -0
- package/bin/restart.mjs +10 -0
- package/bin/start.mjs +26 -0
- package/bin/stop.mjs +20 -0
- package/bin/util.mjs +37 -0
- package/dist/cli/miolo.cli.umd.js +2 -2
- package/dist/cli/miolo.cli.umd.js.map +1 -1
- package/dist/cli-react/miolo.cli-react.umd.js +2 -2
- package/dist/cli-react/miolo.cli-react.umd.js.map +1 -1
- package/dist/server/miolo.server.node.mjs +421 -123
- package/package.json +13 -22
- package/src/cli/fetcher/utils.mjs +1 -1
- package/src/server/config/defaults.mjs +9 -2
- package/src/server/engines/cron/emails.mjs +2 -2
- package/src/server/engines/cron/index.mjs +16 -16
- package/src/server/engines/cron/init.mjs +4 -4
- package/src/server/engines/cron/ipsum.mjs +1 -1
- package/src/server/engines/cron/syscheck.mjs +1 -1
- package/src/server/index.mjs +2 -0
- package/src/server/middleware/vite/devserver.mjs +9 -1
- package/src/server/middleware/vite/watcher.mjs +42 -0
- package/src/server/server-cron.mjs +40 -0
- package/src/server/server-dev.mjs +2 -0
- package/src/server/server.mjs +6 -3
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
import {xeiraBundle} from 'xeira'
|
|
3
|
+
//import { cleanFolder } from './util.mjs'
|
|
4
|
+
|
|
5
|
+
export default async function(appName, entry, dest) {
|
|
6
|
+
console.log(`[${appName}][prod] Building client from entry ${entry}`)
|
|
7
|
+
//cleanFolder(dest)
|
|
8
|
+
|
|
9
|
+
// fs.copyFileSync(proot('./cli/index.html'), proot('./build/cli/index.html'))
|
|
10
|
+
await xeiraBundle({
|
|
11
|
+
source_index: entry,
|
|
12
|
+
target: 'browser',
|
|
13
|
+
bundle_folder: dest,
|
|
14
|
+
bundle_name: appName,
|
|
15
|
+
bundle_extension: 'iife.bundle.min',
|
|
16
|
+
bundler: 'rollup',
|
|
17
|
+
bundle_node_polyfill: true
|
|
18
|
+
})
|
|
19
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
import path from 'node:path'
|
|
3
|
+
import { readFile, writeFile} from 'node:fs/promises'
|
|
4
|
+
import { build } from 'vite'
|
|
5
|
+
import {xeiraBundle} from 'xeira'
|
|
6
|
+
//import { cleanFolder } from './util.mjs'
|
|
7
|
+
|
|
8
|
+
export async function _fixProdBuild(appName, filePath) {
|
|
9
|
+
try {
|
|
10
|
+
const content = await readFile(filePath, 'utf8')
|
|
11
|
+
const newContent = content.replace(
|
|
12
|
+
/var key = crypto\.pseudoRandomBytes\(32\)/g,
|
|
13
|
+
'var key = crypto.randomBytes(32)'
|
|
14
|
+
)
|
|
15
|
+
await writeFile(filePath, newContent, 'utf8')
|
|
16
|
+
console.log(`[${appName}][prod] Fixed server build (prod)!`)
|
|
17
|
+
} catch (error) {
|
|
18
|
+
console.error(`[${appName}][prod] Error fixing server build (prod): ${error}`)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default async function(appName, ssrEntry, ssrDest, entry, dest) {
|
|
23
|
+
//cleanFolder(dest)
|
|
24
|
+
|
|
25
|
+
console.log(`[${appName}][prod] Building first the SSR entry ${ssrEntry}`)
|
|
26
|
+
await build({
|
|
27
|
+
build: {
|
|
28
|
+
outDir: path.resolve(process.cwd(), ssrDest),
|
|
29
|
+
ssr: path.resolve(process.cwd(), ssrEntry),
|
|
30
|
+
rollupOptions: {
|
|
31
|
+
// Opciones adicionales de Rollup si las necesitas
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
// Otras opciones de Vite si son necesarias
|
|
35
|
+
// root: path.resolve(process.cwd(), 'demo'), // Si tu root del proyecto es /demo
|
|
36
|
+
// plugins: [/* tus plugins */],
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
console.log(`[${appName}][prod] Building server from entry ${entry}`)
|
|
40
|
+
const serverExt = 'node.bundle.mjs'
|
|
41
|
+
await xeiraBundle({
|
|
42
|
+
source_index: entry,
|
|
43
|
+
target: 'node',
|
|
44
|
+
bundle_folder: dest,
|
|
45
|
+
bundle_name: appName,
|
|
46
|
+
bundle_extension: serverExt,
|
|
47
|
+
bundler: 'rollup',
|
|
48
|
+
bundle_node_polyfill: true,
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
console.log(`[${appName}][prod] Fixing server build (prod)...`)
|
|
52
|
+
const destFile = path.join(process.cwd(), `${dest}/${appName}.${serverExt}`)
|
|
53
|
+
await _fixProdBuild(appName, destFile)
|
|
54
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {readFileSync, writeFileSync} from 'node:fs'
|
|
2
|
+
import path from 'path'
|
|
3
|
+
import { fileURLToPath } from 'url'
|
|
4
|
+
|
|
5
|
+
const __my_filename = fileURLToPath(import.meta.url)
|
|
6
|
+
const __my_dirname = path.dirname(__my_filename)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
export default async function(appName, dest, serverName) {
|
|
10
|
+
console.log(`[${appName}][prod][create-bin] Creating bin files...`)
|
|
11
|
+
|
|
12
|
+
const readSource = (f) => readFileSync(path.resolve(__my_dirname, f), {encoding:'utf8'})
|
|
13
|
+
const writeDest = (f, content) => writeFileSync(path.join(process.cwd(), dest, f), content, {encoding:'utf8',flag:'w'})
|
|
14
|
+
|
|
15
|
+
const utilContent = readSource('./util.mjs')
|
|
16
|
+
writeDest('util.mjs', utilContent)
|
|
17
|
+
|
|
18
|
+
let startContent = readSource('./start.mjs')
|
|
19
|
+
startContent = startContent.replace('export default async function', 'async function start')
|
|
20
|
+
startContent = startContent.replace('{appName, dest, serverName}', `{appName= ''${appName}, dest= '${dest}', serverName= '${serverName}'}`)
|
|
21
|
+
startContent+= '\n'
|
|
22
|
+
startContent+= 'start()'
|
|
23
|
+
writeDest('start.mjs', startContent)
|
|
24
|
+
|
|
25
|
+
let stopContent = readSource('./stop.mjs')
|
|
26
|
+
stopContent = stopContent.replace('export default async function', 'async function stop')
|
|
27
|
+
stopContent = stopContent.replace('{appName}', `{appName= ''${appName}}`)
|
|
28
|
+
stopContent+= '\n'
|
|
29
|
+
stopContent+= 'stop()'
|
|
30
|
+
writeDest('stop.mjs', stopContent)
|
|
31
|
+
|
|
32
|
+
let restartContent = readSource('./restart.mjs')
|
|
33
|
+
restartContent = restartContent.replace('export default async function', 'async function restart')
|
|
34
|
+
restartContent = restartContent.replace('{appName, dest, serverName}', `{appName= ''${appName}, dest= '${dest}', serverName= '${serverName}'}`)
|
|
35
|
+
restartContent+= '\n'
|
|
36
|
+
restartContent+= 'restart()'
|
|
37
|
+
writeDest('restart.mjs', restartContent)
|
|
38
|
+
}
|
package/bin/dev.mjs
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import path from 'node:path'
|
|
2
|
+
import { fork } from 'node:child_process'
|
|
3
|
+
|
|
4
|
+
let serverProcess = null
|
|
5
|
+
// let retryCount = 0
|
|
6
|
+
// const maxRetries = 5
|
|
7
|
+
|
|
8
|
+
function _isProcessRunning(pid) {
|
|
9
|
+
try {
|
|
10
|
+
process.kill(pid, 0) // Sending a signal 0 does nothing but checks if the process exists
|
|
11
|
+
return true
|
|
12
|
+
} catch (error) {
|
|
13
|
+
return false
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async function startDevServerProcess({ appName, entry }) {
|
|
18
|
+
const serverPath = path.join(process.cwd(), entry)
|
|
19
|
+
serverProcess = fork(serverPath)
|
|
20
|
+
|
|
21
|
+
console.log(`[${appName}][dev] Server process started with pid ${serverProcess.pid} from ${process.pid}`)
|
|
22
|
+
|
|
23
|
+
serverProcess.on('exit', (code, args) => {
|
|
24
|
+
console.log(`[${appName}][dev] Server process exited with code ${code} - ${args}`)
|
|
25
|
+
serverProcess = null
|
|
26
|
+
// Puedes implementar lógica de reintento aquí si es necesario
|
|
27
|
+
// if (code !== 0 && retryCount < maxRetries) {
|
|
28
|
+
// retryCount++
|
|
29
|
+
// console.log(`[${serverName}][dev] Attempting to restart server (${retryCount}/${maxRetries})...`)
|
|
30
|
+
// // Espera un breve tiempo antes de intentar reiniciar
|
|
31
|
+
// await new Promise(resolve => setTimeout(resolve, 2000))
|
|
32
|
+
// startDevServerProcess({ entry, serverName })
|
|
33
|
+
// } else if (code !== 0) {
|
|
34
|
+
// console.error(`[${serverName}][dev] Server failed to start after ${maxRetries} retries. Exiting.`)
|
|
35
|
+
// process.exit(1)
|
|
36
|
+
// }
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
serverProcess.on('message', (message) => {
|
|
40
|
+
if (message === 'miolo_restart') {
|
|
41
|
+
console.log(`[${appName}][dev] Received restart signal. Restarting server...`)
|
|
42
|
+
|
|
43
|
+
const pidToKill = serverProcess ? serverProcess.pid : null
|
|
44
|
+
if (pidToKill) {
|
|
45
|
+
console.log(`[${appName}][dev] Killing process with PID: ${pidToKill}`)
|
|
46
|
+
// Clean kill
|
|
47
|
+
process.kill(pidToKill, 'SIGTERM')
|
|
48
|
+
|
|
49
|
+
// Harder if still alive
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
if (_isProcessRunning(pidToKill)) {
|
|
52
|
+
process.kill(pidToKill, 'SIGKILL')
|
|
53
|
+
}
|
|
54
|
+
}, 2000)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
startDevServerProcess({ appName, entry }) // Inicia un nuevo proceso
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
export default async function(appName, entry, serverName) {
|
|
64
|
+
console.log(`[${appName}][dev] Running DEV server ${serverName} from entry ${entry}`)
|
|
65
|
+
await startDevServerProcess({ appName, entry })
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
// export default async function({ appName, entry, serverName }) {
|
|
71
|
+
// console.log(`[${appName}][dev] Running DEV server ${serverName} from entry ${entry}`)
|
|
72
|
+
// const srv_module = await import(path.join(process.cwd(), entry))
|
|
73
|
+
// const server = srv_module[serverName]
|
|
74
|
+
// await server()
|
|
75
|
+
// }
|
package/bin/index.mjs
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import yargs from 'yargs-parser'
|
|
3
|
+
import { getAppName } from './util.mjs'
|
|
4
|
+
|
|
5
|
+
async function main() {
|
|
6
|
+
const args = yargs(process.argv.slice(2))
|
|
7
|
+
const command = args._[0]
|
|
8
|
+
|
|
9
|
+
try {
|
|
10
|
+
const appName = await getAppName()
|
|
11
|
+
const serverName = args['server-name'] || 'miolo_server'
|
|
12
|
+
|
|
13
|
+
switch (command) {
|
|
14
|
+
case 'dev':
|
|
15
|
+
const devHandler = (await import ('./dev.mjs')).default
|
|
16
|
+
const devEntry = args.entry || './src/server/server-dev.mjs'
|
|
17
|
+
await devHandler(appName, /*entry*/ devEntry, serverName)
|
|
18
|
+
break
|
|
19
|
+
|
|
20
|
+
case 'build-client':
|
|
21
|
+
const buildClientHandler = (await import ('./build-client.mjs')).default
|
|
22
|
+
const clientEntry = args.entry || './cli/entry-cli.jsx'
|
|
23
|
+
const clientDest = args.dest || './dist/cli'
|
|
24
|
+
await buildClientHandler(appName, /*entry*/ clientEntry, /*dest*/ clientDest)
|
|
25
|
+
break
|
|
26
|
+
|
|
27
|
+
case 'build-server':
|
|
28
|
+
const buildServerHandler = (await import ('./build-server.mjs')).default
|
|
29
|
+
const ssrEntry = args['ssr-entry'] || './server/ssr/entry-server.jsx'
|
|
30
|
+
const ssrDest = args['ssr-dest'] || './dist/server'
|
|
31
|
+
const serverEntry = args.entry || './src/server/server-prod.mjs'
|
|
32
|
+
const serverDest = args.dest || './dist/server'
|
|
33
|
+
await buildServerHandler(appName, ssrEntry, ssrDest, /*entry*/ serverEntry, /*dest*/ serverDest)
|
|
34
|
+
break
|
|
35
|
+
|
|
36
|
+
case 'start':
|
|
37
|
+
const startHandler = (await import ('./start.mjs')).default
|
|
38
|
+
const startDest = args.dest || './dist/server'
|
|
39
|
+
await startHandler(appName, /*dest*/ startDest, serverName)
|
|
40
|
+
break
|
|
41
|
+
|
|
42
|
+
case 'stop':
|
|
43
|
+
const stopHandler = (await import ('./stop.mjs')).default
|
|
44
|
+
await stopHandler(appName)
|
|
45
|
+
break
|
|
46
|
+
|
|
47
|
+
case 'restart':
|
|
48
|
+
const restartHandler = (await import ('./restart.mjs')).default
|
|
49
|
+
const restartDest = args.dest || './dist/server'
|
|
50
|
+
await restartHandler({appName, /*dest*/ restartDest, serverName})
|
|
51
|
+
break
|
|
52
|
+
|
|
53
|
+
case 'create-bin':
|
|
54
|
+
const createHandler = (await import ('./create-bin.mjs')).default
|
|
55
|
+
const createDest = args.dest || './dist/server'
|
|
56
|
+
await createHandler(appName, /*dest*/ createDest, serverName)
|
|
57
|
+
break
|
|
58
|
+
|
|
59
|
+
default:
|
|
60
|
+
console.error(`[miolo] Unknown command: ${command}`)
|
|
61
|
+
console.log('[miolo] Available commands: dev, build-client, build-server, start, stop, restart')
|
|
62
|
+
process.exit(1)
|
|
63
|
+
}
|
|
64
|
+
} catch (error) {
|
|
65
|
+
console.error('[miolo] Error during command execution:', error)
|
|
66
|
+
process.exit(1)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
main()
|
package/bin/restart.mjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import start from "./start.mjs"
|
|
2
|
+
import stop from "./stop.mjs"
|
|
3
|
+
|
|
4
|
+
export default async function(appName, dest, serverName) {
|
|
5
|
+
console.log(`[${appName}][prod][restart] Restarting server...`)
|
|
6
|
+
|
|
7
|
+
await stop(appName)
|
|
8
|
+
await start(appName, dest, serverName)
|
|
9
|
+
|
|
10
|
+
}
|
package/bin/start.mjs
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import path from 'node:path'
|
|
2
|
+
import { pidFileCreate } from "./util.mjs"
|
|
3
|
+
|
|
4
|
+
export default async function(appName, dest, serverName) {
|
|
5
|
+
// if (! fs.existsSync(CLI_DEST_MAIN)) {
|
|
6
|
+
// console.error(`[${appName}][prod][start] Cannot start server (prod): CLI bundle does not exist ${CLI_DEST_MAIN}`)
|
|
7
|
+
// return
|
|
8
|
+
// }
|
|
9
|
+
// if (! fs.existsSync(SRV_DEST_MAIN)) {
|
|
10
|
+
// console.error(`[${appName}][prod][start] Cannot start server (prod): SERVER bundle does not exist ${SRV_DEST_MAIN}`)
|
|
11
|
+
// return
|
|
12
|
+
// }
|
|
13
|
+
|
|
14
|
+
console.log(`[${appName}][prod][start] Starting server...`)
|
|
15
|
+
|
|
16
|
+
const serverExt = 'node.bundle.mjs'
|
|
17
|
+
const destFile = path.join(process.cwd(), `${dest}/${appName}.${serverExt}`)
|
|
18
|
+
|
|
19
|
+
const srv_module = await import(destFile)
|
|
20
|
+
const server = srv_module[serverName]
|
|
21
|
+
|
|
22
|
+
const pid = pidFileCreate(appName)
|
|
23
|
+
console.log(`[${appName}][prod][start] Starting server. PID is ${pid}...`)
|
|
24
|
+
|
|
25
|
+
await server()
|
|
26
|
+
}
|
package/bin/stop.mjs
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { pidFileRead } from "./util.mjs";
|
|
2
|
+
|
|
3
|
+
export default async function(appName) {
|
|
4
|
+
console.log(`[${appName}][prod][stop] Stopping server...`)
|
|
5
|
+
|
|
6
|
+
try {
|
|
7
|
+
const pid = pidFileRead(appName)
|
|
8
|
+
console.log(`[${appName}][prod][stop] Killing current process with PID ${pid}`)
|
|
9
|
+
|
|
10
|
+
process.kill(pid, 'SIGKILL')
|
|
11
|
+
|
|
12
|
+
return 1
|
|
13
|
+
} catch(_) {
|
|
14
|
+
console.log(`[${appName}][prod][stop] No current process to kill`)
|
|
15
|
+
console.error(_)
|
|
16
|
+
|
|
17
|
+
return 0
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
package/bin/util.mjs
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {readdirSync, rmSync, writeFileSync, readFileSync} from 'node:fs'
|
|
2
|
+
import { readFile } from 'node:fs/promises'
|
|
3
|
+
import path from 'node:path'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export async function getAppName() {
|
|
7
|
+
try {
|
|
8
|
+
const packageJsonPath = path.join(process.cwd(), 'package.json')
|
|
9
|
+
const content = await readFile(packageJsonPath, 'utf8')
|
|
10
|
+
const packageData = JSON.parse(content)
|
|
11
|
+
return packageData.name
|
|
12
|
+
} catch (error) {
|
|
13
|
+
console.error('[miolo] Error reading package.json:', error)
|
|
14
|
+
return 'miolo'
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function cleanFolder(folder) {
|
|
19
|
+
readdirSync(folder).forEach(file => {
|
|
20
|
+
rmSync(`${folder}/${file}`, { recursive: true, force: true });
|
|
21
|
+
})
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
export function pidFileCreate(appName) {
|
|
26
|
+
const pidFilePath = `/tmp/${appName}.pid`
|
|
27
|
+
writeFileSync(pidFilePath, `${process.pid}`, {encoding:'utf8',flag:'w'})
|
|
28
|
+
return process.pid
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function pidFileRead(appName) {
|
|
32
|
+
const pidFilePath = `/tmp/${appName}.pid`
|
|
33
|
+
const pid = readFileSync(pidFilePath, {encoding:'utf8'})
|
|
34
|
+
return pid
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* miolo v2.0.0-beta.
|
|
2
|
+
* miolo v2.0.0-beta.21
|
|
3
3
|
*
|
|
4
4
|
* https://www.afialapis.com/os/miolo
|
|
5
5
|
*
|
|
@@ -441,7 +441,7 @@
|
|
|
441
441
|
for (var key in obj) {
|
|
442
442
|
_loop(key);
|
|
443
443
|
}
|
|
444
|
-
return uparams.toString();
|
|
444
|
+
return "?" + uparams.toString();
|
|
445
445
|
}
|
|
446
446
|
return '';
|
|
447
447
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miolo.cli.umd.js","sources":["../../src/cli/catcher/index.mjs","../../src/cli/fetcher/utils.mjs","../../src/cli/fetcher/fetcher.mjs","../../src/cli/fetcher/index.mjs","../../src/cli/index.mjs"],"sourcesContent":["function init_catcher (catcher_url, fetcher) {\n if (typeof window == \"undefined\") {\n return\n } \n\n if (window.miolo_listeners===true) {\n return\n }\n\n // window.onerror = function(msg, file, line, col, error) {\n // try {\n // const params= {\n // 'error': {\n // msg, file, line, col, error\n // },\n // 'path' : window.location.pathname,\n // 'agent': 'UserAgent' + navigator.userAgent\n // }\n //\n // fetcher.post(catcher_url, params)\n // } catch(e) {\n // console.error(e)\n // }\n // }\n\n\n window.addEventListener(\"error\", (event) => {\n // https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent\n\n try {\n const params= {\n 'error': {\n msg: event?.message || 'Client error',\n file: event?.filename,\n line: event?.lineno,\n col: event?.colno,\n error: event?.error\n },\n 'path' : window.location.pathname,\n 'agent': 'UserAgent' + navigator.userAgent\n }\n\n fetcher.post(catcher_url, params)\n } catch(e) {\n console.error(e)\n }\n }) \n\n window.addEventListener(\"unhandledrejection\", (event) => {\n // https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n\n try {\n const params= {\n 'warning': {\n msg: event?.reason || 'Client Unhandled rejection',\n file: undefined,\n line: undefined,\n col: undefined,\n error: event?.reason\n },\n 'path' : window.location.pathname,\n 'agent': 'UserAgent' + navigator.userAgent\n }\n\n fetcher.post(catcher_url, params)\n } catch(e) {\n console.error(e)\n }\n }) \n\n window.miolo_listeners = true\n\n}\n\nexport {init_catcher}","/**\n * Transform an JSON object to a query string\n */\nexport function json_to_query_string(obj) {\n if (obj && (Object.keys(obj).length>0)) {\n const uparams = new URLSearchParams()\n for (const key in obj) {\n if (Object.hasOwn(obj, key)) {\n const value = obj[key];\n if (Array.isArray(value)) {\n value.forEach(item => uparams.append(key, item))\n } else if (value !== undefined && value !== null) {\n uparams.append(key, value)\n }\n }\n }\n return uparams.toString()\n }\n return ''\n}\n\nexport function trim_left(str, what) {\n return str.replace(new RegExp(`^${what || '\\\\s'}+`), '')\n}\n\n\nexport function omit_nil(obj) {\n if (typeof obj !== 'object') return obj\n return Object.keys(obj).reduce((acc, v) => {\n if (obj[v] !== undefined) acc[v] = obj[v]\n return acc\n }, {})\n}\n\n\nexport function parse_login_cookie(response) {\n if (typeof window !== 'object') {\n return undefined\n }\n try {\n const raw = response.headers.raw()['set-cookie'];\n return raw.map((entry) => {\n const parts = entry.split(';');\n const cookiePart = parts[0];\n return cookiePart;\n }).join(';');\n } catch(e) {\n console.log('[miolo-cli] Could not get the set-cookie after login')\n return undefined\n }\n}","import {omit_nil, trim_left, json_to_query_string, parse_login_cookie} from './utils.mjs'\n\nclass Fetcher {\n /**\n * @param {*} config {hostname, port, force_hostname, silent_fail: false}\n */\n constructor(config) {\n this.config= config\n this.auth = undefined\n this.cookie = undefined\n }\n\n set_auth(auth) {\n if (auth) {\n const {username, password}= auth\n this.auth= {username, password}\n }\n }\n\n get_headers() {\n let headers = {}\n\n if (this.auth) {\n let {username, password}= this.auth\n username= username || ''\n password= password || ''\n\n let sauth\n try {\n sauth= 'Basic ' + Buffer.from(username + \":\" + password).toString('base64')\n } catch(_) {\n sauth= 'Basic ' + btoa(username + \":\" + password)\n }\n\n headers['Authorization']= sauth\n }\n\n if (this.cookie) {\n headers['Cookie']= this.cookie\n }\n\n return headers\n }\n\n _prepare_url (url) {\n const endpoint = '/' + trim_left(url, '/')\n \n const {hostname, port, force_hostname} = this.config || {}\n if (hostname && force_hostname) {\n return `http://${hostname}:${port}${endpoint}`\n }\n \n return endpoint\n }\n\n async _fetch (method, url, params, auth= undefined) {\n this.set_auth(auth)\n\n let request = {\n method,\n mode: 'cors',\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n ...this.get_headers() || {}\n }\n }\n\n let wurl = this._prepare_url(url)\n \n if (method === 'POST') {\n request.body = JSON.stringify(params || {}, (k, v) => v === undefined ? null : v)\n } else if (method === 'GET') {\n if (params) {\n wurl+= json_to_query_string(params)\n }\n }\n \n const response = await fetch(wurl, request)\n \n if (response.redirected) {\n const isBrowser = typeof window == 'object'\n if (isBrowser) {\n // JSDOM does not support navigation, so lets skip it for tests\n const isTest = typeof navigator !== \"undefined\" &&\n navigator.userAgent.includes(\"Node.js\");\n if (!isTest) {\n window.location.replace(response.url)\n return Promise.resolve(response)\n } else {\n console.error(`Response for ${wurl} is a redirect to ${response.url}. But you are in a test environment, where redirects cannot be done. Unexpected results are coming...`)\n }\n }\n }\n \n if (response.headers.get('content-type').indexOf('json') >= 0) {\n const data= await response.json()\n \n return {\n data,\n status: response.status,\n response\n }\n }\n \n const data= await response.text()\n return {\n data,\n status: response.status,\n response\n }\n\n }\n \n async get(url, params, auth= undefined) {\n /* eslint no-unused-vars:0 */\n try {\n const resp = await this._fetch('GET', url, omit_nil(params), auth)\n return resp\n } catch(e) {\n if (this.config?.silent_fail !== true) {\n console.error(`Error on GET ${url}`)\n console.error(e)\n }\n\n return {\n data: e,\n status: -1,\n }\n }\n }\n\n async post(url, data, auth= undefined) {\n try {\n const resp = await this._fetch('POST', url, data, auth)\n return resp\n } catch(e) {\n if (this.config?.silent_fail !== true) {\n console.error(`Error on POST ${url}`)\n console.error(e)\n }\n\n return {\n data: e,\n status: -1\n }\n }\n } \n\n async login(url, {username, password}) {\n const res= await this._fetch('POST', url || '/login', {username, password})\n this.cookie= parse_login_cookie(res.response)\n return res\n }\n\n async logout(url) {\n this.cookie= undefined\n const res= await this._fetch('POST', url || '/logout', {})\n return res \n }\n\n async read(url, params, auth= undefined) {\n const result = await this.get(`${url}/read`, params, auth)\n return result.data\n }\n\n async key_list(url, params, auth= undefined) {\n const result = await this.get(`${url}/key_list`, params, auth)\n return result.data\n } \n\n async name_list(url, params, auth= undefined) {\n const result = await this.key_list(url, params, auth)\n return Object.values(result)\n }\n\n async find(url, id, auth= undefined) {\n const result = await this.get(`${url}/find`, { id: id }, auth)\n return result.data\n }\n\n async distinct(url, field, params, auth= undefined) {\n const nparams= {\n ...params,\n distinct_field: field\n }\n const result = await this.get(`${url}/distinct`, nparams, auth)\n return result.data \n }\n\n async upsave(url, data, auth= undefined) {\n let result\n if (data.id == undefined) {\n delete data.id\n result= await this.post(`${url}/save`, data, auth)\n } else {\n result= await this.post(`${url}/update`, data, auth)\n }\n \n return result.data\n } \n\n async remove(url, id, auth= undefined) {\n const data = { id: id }\n const result = await this.post(`${url}/delete`, data, auth)\n return result.data\n }\n}\n\nFetcher.keyList= Fetcher.key_list\nFetcher.nameList= Fetcher.name_list\n\nexport { Fetcher }\n\n","import {Fetcher} from './fetcher.mjs'\n\n\nexport function init_fetcher(config) {\n const fetcher= new Fetcher(config)\n return fetcher\n}\n","import {init_catcher} from './catcher/index.mjs'\nimport {init_fetcher} from './fetcher/index.mjs'\n// import {init_socket} from './socket/index.mjs'\n\nfunction miolo_client(context) {\n\n const {config} = context\n\n const fetcher = init_fetcher(config)\n\n if (config?.catcher_url) {\n init_catcher(config?.catcher_url, fetcher) \n }\n\n// let socket\n// if (config?.socket?.enabled===true) {\n// const domain = config?.socket?.domain\n// const options = config?.socket?.options\n// socket = init_socket(domain, options) \n// }\n\n const miolo_obj= {\n fetcher,\n //socket\n }\n\n return miolo_obj\n}\n\nexport {miolo_client}"],"names":["init_catcher","catcher_url","fetcher","window","miolo_listeners","addEventListener","event","params","msg","message","file","filename","line","lineno","col","colno","error","location","pathname","navigator","userAgent","post","e","console","reason","undefined","json_to_query_string","obj","Object","keys","length","uparams","URLSearchParams","_loop","key","hasOwn","value","Array","isArray","forEach","item","append","toString","trim_left","str","what","replace","RegExp","omit_nil","reduce","acc","v","parse_login_cookie","response","raw","headers","map","entry","parts","split","cookiePart","join","log","Fetcher","config","auth","cookie","_proto","prototype","set_auth","username","password","get_headers","_this$auth","sauth","Buffer","from","_","btoa","_prepare_url","url","endpoint","_ref","hostname","port","force_hostname","_fetch","_fetch2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","request","wurl","isBrowser","isTest","_data","data","wrap","_callee$","_context","prev","next","mode","credentials","_extends","body","JSON","stringify","k","fetch","sent","redirected","includes","abrupt","Promise","resolve","get","indexOf","json","status","text","stop","_x","_x2","_x3","_x4","apply","arguments","_get","_callee2","resp","_this$config","_callee2$","_context2","t0","silent_fail","_x5","_x6","_x7","_post","_callee3","_this$config2","_callee3$","_context3","_x8","_x9","_x10","login","_login","_callee4","_ref2","res","_callee4$","_context4","_x11","_x12","logout","_logout","_callee5","_callee5$","_context5","_x13","read","_read","_callee6","result","_callee6$","_context6","_x14","_x15","_x16","key_list","_key_list","_callee7","_callee7$","_context7","_x17","_x18","_x19","name_list","_name_list","_callee8","_callee8$","_context8","values","_x20","_x21","_x22","find","_find","_callee9","id","_callee9$","_context9","_x23","_x24","_x25","distinct","_distinct","_callee10","field","nparams","_callee10$","_context10","distinct_field","_x26","_x27","_x28","_x29","upsave","_upsave","_callee11","_callee11$","_context11","_x30","_x31","_x32","remove","_remove","_callee12","_callee12$","_context12","_x33","_x34","_x35","keyList","nameList","init_fetcher","miolo_client","context","miolo_obj"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"miolo.cli.umd.js","sources":["../../src/cli/catcher/index.mjs","../../src/cli/fetcher/utils.mjs","../../src/cli/fetcher/fetcher.mjs","../../src/cli/fetcher/index.mjs","../../src/cli/index.mjs"],"sourcesContent":["function init_catcher (catcher_url, fetcher) {\n if (typeof window == \"undefined\") {\n return\n } \n\n if (window.miolo_listeners===true) {\n return\n }\n\n // window.onerror = function(msg, file, line, col, error) {\n // try {\n // const params= {\n // 'error': {\n // msg, file, line, col, error\n // },\n // 'path' : window.location.pathname,\n // 'agent': 'UserAgent' + navigator.userAgent\n // }\n //\n // fetcher.post(catcher_url, params)\n // } catch(e) {\n // console.error(e)\n // }\n // }\n\n\n window.addEventListener(\"error\", (event) => {\n // https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent\n\n try {\n const params= {\n 'error': {\n msg: event?.message || 'Client error',\n file: event?.filename,\n line: event?.lineno,\n col: event?.colno,\n error: event?.error\n },\n 'path' : window.location.pathname,\n 'agent': 'UserAgent' + navigator.userAgent\n }\n\n fetcher.post(catcher_url, params)\n } catch(e) {\n console.error(e)\n }\n }) \n\n window.addEventListener(\"unhandledrejection\", (event) => {\n // https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n\n try {\n const params= {\n 'warning': {\n msg: event?.reason || 'Client Unhandled rejection',\n file: undefined,\n line: undefined,\n col: undefined,\n error: event?.reason\n },\n 'path' : window.location.pathname,\n 'agent': 'UserAgent' + navigator.userAgent\n }\n\n fetcher.post(catcher_url, params)\n } catch(e) {\n console.error(e)\n }\n }) \n\n window.miolo_listeners = true\n\n}\n\nexport {init_catcher}","/**\n * Transform an JSON object to a query string\n */\nexport function json_to_query_string(obj) {\n if (obj && (Object.keys(obj).length>0)) {\n const uparams = new URLSearchParams()\n for (const key in obj) {\n if (Object.hasOwn(obj, key)) {\n const value = obj[key];\n if (Array.isArray(value)) {\n value.forEach(item => uparams.append(key, item))\n } else if (value !== undefined && value !== null) {\n uparams.append(key, value)\n }\n }\n }\n return `?${uparams.toString()}`\n }\n return ''\n}\n\nexport function trim_left(str, what) {\n return str.replace(new RegExp(`^${what || '\\\\s'}+`), '')\n}\n\n\nexport function omit_nil(obj) {\n if (typeof obj !== 'object') return obj\n return Object.keys(obj).reduce((acc, v) => {\n if (obj[v] !== undefined) acc[v] = obj[v]\n return acc\n }, {})\n}\n\n\nexport function parse_login_cookie(response) {\n if (typeof window !== 'object') {\n return undefined\n }\n try {\n const raw = response.headers.raw()['set-cookie'];\n return raw.map((entry) => {\n const parts = entry.split(';');\n const cookiePart = parts[0];\n return cookiePart;\n }).join(';');\n } catch(e) {\n console.log('[miolo-cli] Could not get the set-cookie after login')\n return undefined\n }\n}","import {omit_nil, trim_left, json_to_query_string, parse_login_cookie} from './utils.mjs'\n\nclass Fetcher {\n /**\n * @param {*} config {hostname, port, force_hostname, silent_fail: false}\n */\n constructor(config) {\n this.config= config\n this.auth = undefined\n this.cookie = undefined\n }\n\n set_auth(auth) {\n if (auth) {\n const {username, password}= auth\n this.auth= {username, password}\n }\n }\n\n get_headers() {\n let headers = {}\n\n if (this.auth) {\n let {username, password}= this.auth\n username= username || ''\n password= password || ''\n\n let sauth\n try {\n sauth= 'Basic ' + Buffer.from(username + \":\" + password).toString('base64')\n } catch(_) {\n sauth= 'Basic ' + btoa(username + \":\" + password)\n }\n\n headers['Authorization']= sauth\n }\n\n if (this.cookie) {\n headers['Cookie']= this.cookie\n }\n\n return headers\n }\n\n _prepare_url (url) {\n const endpoint = '/' + trim_left(url, '/')\n \n const {hostname, port, force_hostname} = this.config || {}\n if (hostname && force_hostname) {\n return `http://${hostname}:${port}${endpoint}`\n }\n \n return endpoint\n }\n\n async _fetch (method, url, params, auth= undefined) {\n this.set_auth(auth)\n\n let request = {\n method,\n mode: 'cors',\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n ...this.get_headers() || {}\n }\n }\n\n let wurl = this._prepare_url(url)\n \n if (method === 'POST') {\n request.body = JSON.stringify(params || {}, (k, v) => v === undefined ? null : v)\n } else if (method === 'GET') {\n if (params) {\n wurl+= json_to_query_string(params)\n }\n }\n \n const response = await fetch(wurl, request)\n \n if (response.redirected) {\n const isBrowser = typeof window == 'object'\n if (isBrowser) {\n // JSDOM does not support navigation, so lets skip it for tests\n const isTest = typeof navigator !== \"undefined\" &&\n navigator.userAgent.includes(\"Node.js\");\n if (!isTest) {\n window.location.replace(response.url)\n return Promise.resolve(response)\n } else {\n console.error(`Response for ${wurl} is a redirect to ${response.url}. But you are in a test environment, where redirects cannot be done. Unexpected results are coming...`)\n }\n }\n }\n \n if (response.headers.get('content-type').indexOf('json') >= 0) {\n const data= await response.json()\n \n return {\n data,\n status: response.status,\n response\n }\n }\n \n const data= await response.text()\n return {\n data,\n status: response.status,\n response\n }\n\n }\n \n async get(url, params, auth= undefined) {\n /* eslint no-unused-vars:0 */\n try {\n const resp = await this._fetch('GET', url, omit_nil(params), auth)\n return resp\n } catch(e) {\n if (this.config?.silent_fail !== true) {\n console.error(`Error on GET ${url}`)\n console.error(e)\n }\n\n return {\n data: e,\n status: -1,\n }\n }\n }\n\n async post(url, data, auth= undefined) {\n try {\n const resp = await this._fetch('POST', url, data, auth)\n return resp\n } catch(e) {\n if (this.config?.silent_fail !== true) {\n console.error(`Error on POST ${url}`)\n console.error(e)\n }\n\n return {\n data: e,\n status: -1\n }\n }\n } \n\n async login(url, {username, password}) {\n const res= await this._fetch('POST', url || '/login', {username, password})\n this.cookie= parse_login_cookie(res.response)\n return res\n }\n\n async logout(url) {\n this.cookie= undefined\n const res= await this._fetch('POST', url || '/logout', {})\n return res \n }\n\n async read(url, params, auth= undefined) {\n const result = await this.get(`${url}/read`, params, auth)\n return result.data\n }\n\n async key_list(url, params, auth= undefined) {\n const result = await this.get(`${url}/key_list`, params, auth)\n return result.data\n } \n\n async name_list(url, params, auth= undefined) {\n const result = await this.key_list(url, params, auth)\n return Object.values(result)\n }\n\n async find(url, id, auth= undefined) {\n const result = await this.get(`${url}/find`, { id: id }, auth)\n return result.data\n }\n\n async distinct(url, field, params, auth= undefined) {\n const nparams= {\n ...params,\n distinct_field: field\n }\n const result = await this.get(`${url}/distinct`, nparams, auth)\n return result.data \n }\n\n async upsave(url, data, auth= undefined) {\n let result\n if (data.id == undefined) {\n delete data.id\n result= await this.post(`${url}/save`, data, auth)\n } else {\n result= await this.post(`${url}/update`, data, auth)\n }\n \n return result.data\n } \n\n async remove(url, id, auth= undefined) {\n const data = { id: id }\n const result = await this.post(`${url}/delete`, data, auth)\n return result.data\n }\n}\n\nFetcher.keyList= Fetcher.key_list\nFetcher.nameList= Fetcher.name_list\n\nexport { Fetcher }\n\n","import {Fetcher} from './fetcher.mjs'\n\n\nexport function init_fetcher(config) {\n const fetcher= new Fetcher(config)\n return fetcher\n}\n","import {init_catcher} from './catcher/index.mjs'\nimport {init_fetcher} from './fetcher/index.mjs'\n// import {init_socket} from './socket/index.mjs'\n\nfunction miolo_client(context) {\n\n const {config} = context\n\n const fetcher = init_fetcher(config)\n\n if (config?.catcher_url) {\n init_catcher(config?.catcher_url, fetcher) \n }\n\n// let socket\n// if (config?.socket?.enabled===true) {\n// const domain = config?.socket?.domain\n// const options = config?.socket?.options\n// socket = init_socket(domain, options) \n// }\n\n const miolo_obj= {\n fetcher,\n //socket\n }\n\n return miolo_obj\n}\n\nexport {miolo_client}"],"names":["init_catcher","catcher_url","fetcher","window","miolo_listeners","addEventListener","event","params","msg","message","file","filename","line","lineno","col","colno","error","location","pathname","navigator","userAgent","post","e","console","reason","undefined","json_to_query_string","obj","Object","keys","length","uparams","URLSearchParams","_loop","key","hasOwn","value","Array","isArray","forEach","item","append","toString","trim_left","str","what","replace","RegExp","omit_nil","reduce","acc","v","parse_login_cookie","response","raw","headers","map","entry","parts","split","cookiePart","join","log","Fetcher","config","auth","cookie","_proto","prototype","set_auth","username","password","get_headers","_this$auth","sauth","Buffer","from","_","btoa","_prepare_url","url","endpoint","_ref","hostname","port","force_hostname","_fetch","_fetch2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","request","wurl","isBrowser","isTest","_data","data","wrap","_callee$","_context","prev","next","mode","credentials","_extends","body","JSON","stringify","k","fetch","sent","redirected","includes","abrupt","Promise","resolve","get","indexOf","json","status","text","stop","_x","_x2","_x3","_x4","apply","arguments","_get","_callee2","resp","_this$config","_callee2$","_context2","t0","silent_fail","_x5","_x6","_x7","_post","_callee3","_this$config2","_callee3$","_context3","_x8","_x9","_x10","login","_login","_callee4","_ref2","res","_callee4$","_context4","_x11","_x12","logout","_logout","_callee5","_callee5$","_context5","_x13","read","_read","_callee6","result","_callee6$","_context6","_x14","_x15","_x16","key_list","_key_list","_callee7","_callee7$","_context7","_x17","_x18","_x19","name_list","_name_list","_callee8","_callee8$","_context8","values","_x20","_x21","_x22","find","_find","_callee9","id","_callee9$","_context9","_x23","_x24","_x25","distinct","_distinct","_callee10","field","nparams","_callee10$","_context10","distinct_field","_x26","_x27","_x28","_x29","upsave","_upsave","_callee11","_callee11$","_context11","_x30","_x31","_x32","remove","_remove","_callee12","_callee12$","_context12","_x33","_x34","_x35","keyList","nameList","init_fetcher","miolo_client","context","miolo_obj"],"mappings":";;;;;;;;;;;;;;;;;;;EAAA,SAASA,YAAYA,CAAEC,WAAW,EAAEC,OAAO,EAAE;EAC3C,EAAA,IAAI,OAAOC,MAAM,IAAI,WAAW,EAAE;EAChC,IAAA;EACF;EAEA,EAAA,IAAIA,MAAM,CAACC,eAAe,KAAG,IAAI,EAAE;EACjC,IAAA;EACF;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAGAD,EAAAA,MAAM,CAACE,gBAAgB,CAAC,OAAO,EAAE,UAACC,KAAK,EAAK;EAC1C;;MAEA,IAAI;EACF,MAAA,IAAMC,MAAM,GAAE;EACZ,QAAA,OAAO,EAAE;YACPC,GAAG,EAAE,CAAAF,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEG,OAAO,KAAI,cAAc;EACrCC,UAAAA,IAAI,EAAEJ,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEK,QAAQ;EACrBC,UAAAA,IAAI,EAAEN,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEO,MAAM;EACnBC,UAAAA,GAAG,EAAER,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAES,KAAK;EACjBC,UAAAA,KAAK,EAAEV,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEU;WACf;EACD,QAAA,MAAM,EAAGb,MAAM,CAACc,QAAQ,CAACC,QAAQ;EACjC,QAAA,OAAO,EAAE,WAAW,GAAGC,SAAS,CAACC;SAClC;EAEDlB,MAAAA,OAAO,CAACmB,IAAI,CAACpB,WAAW,EAAEM,MAAM,CAAC;OAClC,CAAC,OAAMe,CAAC,EAAE;EACTC,MAAAA,OAAO,CAACP,KAAK,CAACM,CAAC,CAAC;EAClB;EACF,GAAC,CAAC;EAEFnB,EAAAA,MAAM,CAACE,gBAAgB,CAAC,oBAAoB,EAAE,UAACC,KAAK,EAAK;EACvD;;MAEA,IAAI;EACF,MAAA,IAAMC,MAAM,GAAE;EACZ,QAAA,SAAS,EAAE;YACTC,GAAG,EAAE,CAAAF,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEkB,MAAM,KAAI,4BAA4B;EAClDd,UAAAA,IAAI,EAAEe,SAAS;EACfb,UAAAA,IAAI,EAAEa,SAAS;EACfX,UAAAA,GAAG,EAAEW,SAAS;EACdT,UAAAA,KAAK,EAAEV,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEkB;WACf;EACD,QAAA,MAAM,EAAGrB,MAAM,CAACc,QAAQ,CAACC,QAAQ;EACjC,QAAA,OAAO,EAAE,WAAW,GAAGC,SAAS,CAACC;SAClC;EAEDlB,MAAAA,OAAO,CAACmB,IAAI,CAACpB,WAAW,EAAEM,MAAM,CAAC;OAClC,CAAC,OAAMe,CAAC,EAAE;EACTC,MAAAA,OAAO,CAACP,KAAK,CAACM,CAAC,CAAC;EAClB;EACF,GAAC,CAAC;IAEFnB,MAAM,CAACC,eAAe,GAAG,IAAI;EAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECxEA;EACA;EACA;EACO,SAASsB,oBAAoBA,CAACC,GAAG,EAAE;EACxC,EAAA,IAAIA,GAAG,IAAKC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAACG,MAAM,GAAC,CAAE,EAAE;EACtC,IAAA,IAAMC,OAAO,GAAG,IAAIC,eAAe,EAAE;EAAA,IAAA,IAAAC,KAAA,GAAA,SAAAA,KAAAC,CAAAA,GAAA,EACd;QACrB,IAAIN,MAAM,CAACO,MAAM,CAACR,GAAG,EAAEO,GAAG,CAAC,EAAE;EAC3B,QAAA,IAAME,KAAK,GAAGT,GAAG,CAACO,GAAG,CAAC;EACtB,QAAA,IAAIG,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;EACxBA,UAAAA,KAAK,CAACG,OAAO,CAAC,UAAAC,IAAI,EAAA;EAAA,YAAA,OAAIT,OAAO,CAACU,MAAM,CAACP,GAAG,EAAEM,IAAI,CAAC;aAAC,CAAA;WACjD,MAAM,IAAIJ,KAAK,KAAKX,SAAS,IAAIW,KAAK,KAAK,IAAI,EAAE;EAChDL,UAAAA,OAAO,CAACU,MAAM,CAACP,GAAG,EAAEE,KAAK,CAAC;EAC5B;EACF;OACD;MATD,KAAK,IAAMF,GAAG,IAAIP,GAAG,EAAA;EAAAM,MAAAA,KAAA,CAAAC,GAAA,CAAA;EAAA;EAUrB,IAAA,OAAA,GAAA,GAAWH,OAAO,CAACW,QAAQ,EAAE;EAC/B;EACA,EAAA,OAAO,EAAE;EACX;EAEO,SAASC,SAASA,CAACC,GAAG,EAAEC,IAAI,EAAE;EACnC,EAAA,OAAOD,GAAG,CAACE,OAAO,CAAC,IAAIC,MAAM,CAAA,GAAA,IAAKF,IAAa,CAAA,GAAA,GAAG,CAAC,EAAE,EAAE,CAAC;EAC1D;EAGO,SAASG,QAAQA,CAACrB,GAAG,EAAE;EAC5B,EAAA,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE,OAAOA,GAAG;EACvC,EAAA,OAAOC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAACsB,MAAM,CAAC,UAACC,GAAG,EAAEC,CAAC,EAAK;EACzC,IAAA,IAAIxB,GAAG,CAACwB,CAAC,CAAC,KAAK1B,SAAS,EAAEyB,GAAG,CAACC,CAAC,CAAC,GAAGxB,GAAG,CAACwB,CAAC,CAAC;EACzC,IAAA,OAAOD,GAAG;KACX,EAAE,EAAE,CAAC;EACR;EAGO,SAASE,kBAAkBA,CAACC,QAAQ,EAAE;EAC3C,EAAA,IAAI,OAAOlD,MAAM,KAAK,QAAQ,EAAE;EAC9B,IAAA,OAAOsB,SAAS;EAClB;IACA,IAAI;MACF,IAAM6B,GAAG,GAAGD,QAAQ,CAACE,OAAO,CAACD,GAAG,EAAE,CAAC,YAAY,CAAC;EAChD,IAAA,OAAOA,GAAG,CAACE,GAAG,CAAC,UAACC,KAAK,EAAK;EACxB,MAAA,IAAMC,KAAK,GAAGD,KAAK,CAACE,KAAK,CAAC,GAAG,CAAC;EAC9B,MAAA,IAAMC,UAAU,GAAGF,KAAK,CAAC,CAAC,CAAC;EAC3B,MAAA,OAAOE,UAAU;EACnB,KAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;KACb,CAAC,OAAMvC,CAAC,EAAE;EACTC,IAAAA,OAAO,CAACuC,GAAG,CAAC,sDAAsD,CAAC;EACnE,IAAA,OAAOrC,SAAS;EAClB;EACF;;EClDyF,IAEnFsC,OAAO,gBAAA,YAAA;EACX;EACF;EACA;IACE,SAAAA,OAAAA,CAAYC,MAAM,EAAE;MAClB,IAAI,CAACA,MAAM,GAAEA,MAAM;MACnB,IAAI,CAACC,IAAI,GAAGxC,SAAS;MACrB,IAAI,CAACyC,MAAM,GAAGzC,SAAS;EACzB;EAAC,EAAA,IAAA0C,MAAA,GAAAJ,OAAA,CAAAK,SAAA;EAAAD,EAAAA,MAAA,CAEDE,QAAQ,GAAR,SAAAA,QAAQA,CAACJ,IAAI,EAAE;EACb,IAAA,IAAIA,IAAI,EAAE;EACR,MAAA,IAAOK,QAAQ,GAAaL,IAAI,CAAzBK,QAAQ;UAAEC,QAAQ,GAAGN,IAAI,CAAfM,QAAQ;QACzB,IAAI,CAACN,IAAI,GAAE;EAACK,QAAAA,QAAQ,EAARA,QAAQ;EAAEC,QAAAA,QAAQ,EAARA;SAAS;EACjC;KACD;EAAAJ,EAAAA,MAAA,CAEDK,WAAW,GAAX,SAAAA,WAAWA,GAAG;MACZ,IAAIjB,OAAO,GAAG,EAAE;MAEhB,IAAI,IAAI,CAACU,IAAI,EAAE;EACb,MAAA,IAAAQ,UAAA,GAA0B,IAAI,CAACR,IAAI;UAA9BK,QAAQ,GAAAG,UAAA,CAARH,QAAQ;UAAEC,QAAQ,GAAAE,UAAA,CAARF,QAAQ;QACvBD,QAAQ,GAAEA,QAAQ,IAAI,EAAE;QACxBC,QAAQ,GAAEA,QAAQ,IAAI,EAAE;EAExB,MAAA,IAAIG,KAAK;QACT,IAAI;EACFA,QAAAA,KAAK,GAAE,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACN,QAAQ,GAAG,GAAG,GAAGC,QAAQ,CAAC,CAAC7B,QAAQ,CAAC,QAAQ,CAAC;SAC5E,CAAC,OAAMmC,CAAC,EAAE;UACTH,KAAK,GAAE,QAAQ,GAAGI,IAAI,CAACR,QAAQ,GAAG,GAAG,GAAGC,QAAQ,CAAC;EACnD;EAEAhB,MAAAA,OAAO,CAAC,eAAe,CAAC,GAAEmB,KAAK;EACjC;MAEA,IAAI,IAAI,CAACR,MAAM,EAAE;EACfX,MAAAA,OAAO,CAAC,QAAQ,CAAC,GAAE,IAAI,CAACW,MAAM;EAChC;EAEA,IAAA,OAAOX,OAAO;KACf;EAAAY,EAAAA,MAAA,CAEDY,YAAY,GAAZ,SAAAA,YAAYA,CAAEC,GAAG,EAAE;MACjB,IAAMC,QAAQ,GAAG,GAAG,GAAGtC,SAAS,CAACqC,GAAG,EAAE,GAAG,CAAC;EAE1C,IAAA,IAAAE,IAAA,GAAyC,IAAI,CAAClB,MAAM,IAAI,EAAE;QAAnDmB,QAAQ,GAAAD,IAAA,CAARC,QAAQ;QAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;QAAEC,cAAc,GAAAH,IAAA,CAAdG,cAAc;MACrC,IAAIF,QAAQ,IAAIE,cAAc,EAAE;EAC9B,MAAA,OAAA,SAAA,GAAiBF,QAAQ,GAAA,GAAA,GAAIC,IAAI,GAAGH,QAAQ;EAC9C;EAEA,IAAA,OAAOA,QAAQ;KAChB;EAAAd,EAAAA,MAAA,CAEKmB,MAAM,gBAAA,YAAA;EAAA,IAAA,IAAAC,OAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAZ,SAAAC,OAAAA,CAAcC,MAAM,EAAEZ,GAAG,EAAEzE,MAAM,EAAE0D,IAAI,EAAA;EAAA,MAAA,IAAA4B,OAAA,EAAAC,IAAA,EAAAzC,QAAA,EAAA0C,SAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,IAAA;EAAA,MAAA,OAAAT,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAChD,YAAA,IAAI,CAAC4C,QAAQ,CAACJ,IAAI,CAAC;EAEf4B,YAAAA,OAAO,GAAG;EACZD,cAAAA,MAAM,EAANA,MAAM;EACNY,cAAAA,IAAI,EAAE,MAAM;EACZC,cAAAA,WAAW,EAAE,SAAS;EACtBlD,cAAAA,OAAO,EAAAmD,QAAA,CAAA;EACL,gBAAA,cAAc,EAAE;EAAkB,eAAA,EAC/B,IAAI,CAAClC,WAAW,EAAE,IAAI,EAAE;eAE9B;EAEGsB,YAAAA,IAAI,GAAG,IAAI,CAACf,YAAY,CAACC,GAAG,CAAC;cAEjC,IAAIY,MAAM,KAAK,MAAM,EAAE;EACrBC,cAAAA,OAAO,CAACc,IAAI,GAAGC,IAAI,CAACC,SAAS,CAACtG,MAAM,IAAI,EAAE,EAAE,UAACuG,CAAC,EAAE3D,CAAC,EAAA;EAAA,gBAAA,OAAKA,CAAC,KAAK1B,SAAS,GAAG,IAAI,GAAG0B,CAAC;iBAAC,CAAA;EACnF,aAAC,MAAM,IAAIyC,MAAM,KAAK,KAAK,EAAE;EAC3B,cAAA,IAAIrF,MAAM,EAAE;EACVuF,gBAAAA,IAAI,IAAGpE,oBAAoB,CAACnB,MAAM,CAAC;EACrC;EACF;EAAC8F,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;EAAA,YAAA,OAEsBQ,KAAK,CAACjB,IAAI,EAAED,OAAO,CAAC;EAAA,UAAA,KAAA,CAAA;cAArCxC,QAAQ,GAAAgD,QAAA,CAAAW,IAAA;cAAA,IAEV3D,CAAAA,QAAQ,CAAC4D,UAAU,EAAA;EAAAZ,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;EAAA,cAAA;EAAA;EACfR,YAAAA,SAAS,GAAG,OAAO5F,MAAM,IAAI,QAAQ;EAAA,YAAA,IAAA,CACvC4F,SAAS,EAAA;EAAAM,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;EAAA,cAAA;EAAA;EACX;EACMP,YAAAA,MAAM,GAAG,OAAO7E,SAAS,KAAK,WAAW,IAC/BA,SAAS,CAACC,SAAS,CAAC8F,QAAQ,CAAC,SAAS,CAAC;EAAA,YAAA,IAClDlB,MAAM,EAAA;EAAAK,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;EAAA,cAAA;EAAA;cACTpG,MAAM,CAACc,QAAQ,CAAC6B,OAAO,CAACO,QAAQ,CAAC2B,GAAG,CAAC;cAAA,OAAAqB,QAAA,CAAAc,MAAA,CAAA,QAAA,EAC9BC,OAAO,CAACC,OAAO,CAAChE,QAAQ,CAAC,CAAA;EAAA,UAAA,KAAA,EAAA;cAEhC9B,OAAO,CAACP,KAAK,CAAiB8E,eAAAA,GAAAA,IAAI,0BAAqBzC,QAAQ,CAAC2B,GAAG,GAAA,uGAAuG,CAAC;EAAA,UAAA,KAAA,EAAA;EAAA,YAAA,IAAA,EAK7K3B,QAAQ,CAACE,OAAO,CAAC+D,GAAG,CAAC,cAAc,CAAC,CAACC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAA;EAAAlB,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;EAAA,cAAA;EAAA;EAAAF,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;EAAA,YAAA,OACzClD,QAAQ,CAACmE,IAAI,EAAE;EAAA,UAAA,KAAA,EAAA;cAA3BtB,KAAI,GAAAG,QAAA,CAAAW,IAAA;cAAA,OAAAX,QAAA,CAAAc,MAAA,CAEH,QAAA,EAAA;EACLjB,cAAAA,IAAI,EAAJA,KAAI;gBACJuB,MAAM,EAAEpE,QAAQ,CAACoE,MAAM;EACvBpE,cAAAA,QAAQ,EAARA;eACD,CAAA;EAAA,UAAA,KAAA,EAAA;EAAAgD,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;EAAA,YAAA,OAGelD,QAAQ,CAACqE,IAAI,EAAE;EAAA,UAAA,KAAA,EAAA;cAA3BxB,IAAI,GAAAG,QAAA,CAAAW,IAAA;cAAA,OAAAX,QAAA,CAAAc,MAAA,CACH,QAAA,EAAA;EACLjB,cAAAA,IAAI,EAAJA,IAAI;gBACJuB,MAAM,EAAEpE,QAAQ,CAACoE,MAAM;EACvBpE,cAAAA,QAAQ,EAARA;eACD,CAAA;EAAA,UAAA,KAAA,EAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAgD,QAAA,CAAAsB,IAAA,EAAA;EAAA;EAAA,OAAA,EAAAhC,OAAA,EAAA,IAAA,CAAA;OAEF,CAAA,CAAA;MAAA,SAzDKL,MAAMA,CAAAsC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;EAAA,MAAA,OAAAxC,OAAA,CAAAyC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAN3C,MAAM;EAAA,GAAA,EAAA;EAAAnB,EAAAA,MAAA,CA2DNmD,GAAG,gBAAA,YAAA;EAAA,IAAA,IAAAY,IAAA,GAAA1C,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAT,SAAAyC,QAAUnD,CAAAA,GAAG,EAAEzE,MAAM,EAAE0D,IAAI,EAAA;QAAA,IAAAmE,IAAA,EAAAC,YAAA;EAAA,MAAA,OAAA5C,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAAmC,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjC,IAAA,GAAAiC,SAAA,CAAAhC,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAAA8G,YAAAA,SAAA,CAAAjC,IAAA,GAAA,CAAA;EAAAiC,YAAAA,SAAA,CAAAhC,IAAA,GAAA,CAAA;EAAA,YAAA,OAGf,IAAI,CAACjB,MAAM,CAAC,KAAK,EAAEN,GAAG,EAAEhC,QAAQ,CAACzC,MAAM,CAAC,EAAE0D,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAA5DmE,IAAI,GAAAG,SAAA,CAAAvB,IAAA;EAAA,YAAA,OAAAuB,SAAA,CAAApB,MAAA,CAAA,QAAA,EACHiB,IAAI,CAAA;EAAA,UAAA,KAAA,CAAA;EAAAG,YAAAA,SAAA,CAAAjC,IAAA,GAAA,CAAA;cAAAiC,SAAA,CAAAC,EAAA,GAAAD,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;cAEX,IAAI,CAAA,CAAAF,YAAA,GAAA,IAAI,CAACrE,MAAM,KAAXqE,IAAAA,GAAAA,MAAAA,GAAAA,YAAA,CAAaI,WAAW,MAAK,IAAI,EAAE;EACrClH,cAAAA,OAAO,CAACP,KAAK,CAAiBgE,eAAAA,GAAAA,GAAK,CAAC;EACpCzD,cAAAA,OAAO,CAACP,KAAK,CAAAuH,SAAA,CAAAC,EAAE,CAAC;EAClB;cAAC,OAAAD,SAAA,CAAApB,MAAA,CAEM,QAAA,EAAA;gBACLjB,IAAI,EAAAqC,SAAA,CAAAC,EAAG;EACPf,cAAAA,MAAM,EAAE;eACT,CAAA;EAAA,UAAA,KAAA,EAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAc,SAAA,CAAAZ,IAAA,EAAA;EAAA;EAAA,OAAA,EAAAQ,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;OAEJ,CAAA,CAAA;EAAA,IAAA,SAhBKb,GAAGA,CAAAoB,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;EAAA,MAAA,OAAAV,IAAA,CAAAF,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAHX,GAAG;EAAA,GAAA,EAAA;EAAAnD,EAAAA,MAAA,CAkBH9C,IAAI,gBAAA,YAAA;EAAA,IAAA,IAAAwH,KAAA,GAAArD,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAV,SAAAoD,QAAW9D,CAAAA,GAAG,EAAEkB,IAAI,EAAEjC,IAAI,EAAA;QAAA,IAAAmE,IAAA,EAAAW,aAAA;EAAA,MAAA,OAAAtD,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAA6C,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3C,IAAA,GAAA2C,SAAA,CAAA1C,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAAAwH,YAAAA,SAAA,CAAA3C,IAAA,GAAA,CAAA;EAAA2C,YAAAA,SAAA,CAAA1C,IAAA,GAAA,CAAA;cAAA,OAEd,IAAI,CAACjB,MAAM,CAAC,MAAM,EAAEN,GAAG,EAAEkB,IAAI,EAAEjC,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAAjDmE,IAAI,GAAAa,SAAA,CAAAjC,IAAA;EAAA,YAAA,OAAAiC,SAAA,CAAA9B,MAAA,CAAA,QAAA,EACHiB,IAAI,CAAA;EAAA,UAAA,KAAA,CAAA;EAAAa,YAAAA,SAAA,CAAA3C,IAAA,GAAA,CAAA;cAAA2C,SAAA,CAAAT,EAAA,GAAAS,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;cAEX,IAAI,CAAA,CAAAF,aAAA,GAAA,IAAI,CAAC/E,MAAM,KAAX+E,IAAAA,GAAAA,MAAAA,GAAAA,aAAA,CAAaN,WAAW,MAAK,IAAI,EAAE;EACrClH,cAAAA,OAAO,CAACP,KAAK,CAAkBgE,gBAAAA,GAAAA,GAAK,CAAC;EACrCzD,cAAAA,OAAO,CAACP,KAAK,CAAAiI,SAAA,CAAAT,EAAE,CAAC;EAClB;cAAC,OAAAS,SAAA,CAAA9B,MAAA,CAEM,QAAA,EAAA;gBACLjB,IAAI,EAAA+C,SAAA,CAAAT,EAAG;EACPf,cAAAA,MAAM,EAAE;eACT,CAAA;EAAA,UAAA,KAAA,EAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAwB,SAAA,CAAAtB,IAAA,EAAA;EAAA;EAAA,OAAA,EAAAmB,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;OAEJ,CAAA,CAAA;EAAA,IAAA,SAfKzH,IAAIA,CAAA6H,GAAA,EAAAC,GAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAP,KAAA,CAAAb,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAJ5G,IAAI;EAAA,GAAA,EAAA;EAAA8C,EAAAA,MAAA,CAiBJkF,KAAK,gBAAA,YAAA;EAAA,IAAA,IAAAC,MAAA,GAAA9D,iBAAA,cAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAX,SAAA6D,QAAAA,CAAYvE,GAAG,EAAAwE,KAAA,EAAA;EAAA,MAAA,IAAAlF,QAAA,EAAAC,QAAA,EAAAkF,GAAA;EAAA,MAAA,OAAAhE,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAAuD,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAArD,IAAA,GAAAqD,SAAA,CAAApD,IAAA;EAAA,UAAA,KAAA,CAAA;cAAGjC,QAAQ,GAAAkF,KAAA,CAARlF,QAAQ,EAAEC,QAAQ,GAAAiF,KAAA,CAARjF,QAAQ;EAAAoF,YAAAA,SAAA,CAAApD,IAAA,GAAA,CAAA;cAAA,OACjB,IAAI,CAACjB,MAAM,CAAC,MAAM,EAAEN,GAAG,IAAI,QAAQ,EAAE;EAACV,cAAAA,QAAQ,EAARA,QAAQ;EAAEC,cAAAA,QAAQ,EAARA;EAAQ,aAAC,CAAC;EAAA,UAAA,KAAA,CAAA;cAArEkF,GAAG,GAAAE,SAAA,CAAA3C,IAAA;cACT,IAAI,CAAC9C,MAAM,GAAEd,kBAAkB,CAACqG,GAAG,CAACpG,QAAQ,CAAC;EAAA,YAAA,OAAAsG,SAAA,CAAAxC,MAAA,CAAA,QAAA,EACtCsC,GAAG,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAE,SAAA,CAAAhC,IAAA,EAAA;EAAA;EAAA,OAAA,EAAA4B,QAAA,EAAA,IAAA,CAAA;OACX,CAAA,CAAA;EAAA,IAAA,SAJKF,KAAKA,CAAAO,IAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAP,MAAA,CAAAtB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAALoB,KAAK;EAAA,GAAA,EAAA;EAAAlF,EAAAA,MAAA,CAML2F,MAAM,gBAAA,YAAA;MAAA,IAAAC,OAAA,GAAAvE,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAZ,SAAAsE,QAAAA,CAAahF,GAAG,EAAA;EAAA,MAAA,IAAAyE,GAAA;EAAA,MAAA,OAAAhE,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAA8D,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5D,IAAA,GAAA4D,SAAA,CAAA3D,IAAA;EAAA,UAAA,KAAA,CAAA;cACd,IAAI,CAACrC,MAAM,GAAEzC,SAAS;EAAAyI,YAAAA,SAAA,CAAA3D,IAAA,GAAA,CAAA;EAAA,YAAA,OACL,IAAI,CAACjB,MAAM,CAAC,MAAM,EAAEN,GAAG,IAAI,SAAS,EAAE,EAAE,CAAC;EAAA,UAAA,KAAA,CAAA;cAApDyE,GAAG,GAAAS,SAAA,CAAAlD,IAAA;EAAA,YAAA,OAAAkD,SAAA,CAAA/C,MAAA,CAAA,QAAA,EACFsC,GAAG,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAS,SAAA,CAAAvC,IAAA,EAAA;EAAA;EAAA,OAAA,EAAAqC,QAAA,EAAA,IAAA,CAAA;OACX,CAAA,CAAA;MAAA,SAJKF,MAAMA,CAAAK,IAAA,EAAA;EAAA,MAAA,OAAAJ,OAAA,CAAA/B,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAN6B,MAAM;EAAA,GAAA,EAAA;EAAA3F,EAAAA,MAAA,CAMNiG,IAAI,gBAAA,YAAA;EAAA,IAAA,IAAAC,KAAA,GAAA7E,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAV,SAAA4E,QAAWtF,CAAAA,GAAG,EAAEzE,MAAM,EAAE0D,IAAI,EAAA;EAAA,MAAA,IAAAsG,MAAA;EAAA,MAAA,OAAA9E,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAAqE,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnE,IAAA,GAAAmE,SAAA,CAAAlE,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAAAgJ,YAAAA,SAAA,CAAAlE,IAAA,GAAA,CAAA;cAAA,OAChB,IAAI,CAACe,GAAG,CAAItC,GAAG,GAASzE,OAAAA,EAAAA,MAAM,EAAE0D,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAApDsG,MAAM,GAAAE,SAAA,CAAAzD,IAAA;EAAA,YAAA,OAAAyD,SAAA,CAAAtD,MAAA,CACLoD,QAAAA,EAAAA,MAAM,CAACrE,IAAI,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAuE,SAAA,CAAA9C,IAAA,EAAA;EAAA;EAAA,OAAA,EAAA2C,QAAA,EAAA,IAAA,CAAA;OACnB,CAAA,CAAA;EAAA,IAAA,SAHKF,IAAIA,CAAAM,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAP,KAAA,CAAArC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAJmC,IAAI;EAAA,GAAA,EAAA;EAAAjG,EAAAA,MAAA,CAKJ0G,QAAQ,gBAAA,YAAA;EAAA,IAAA,IAAAC,SAAA,GAAAtF,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAd,SAAAqF,QAAe/F,CAAAA,GAAG,EAAEzE,MAAM,EAAE0D,IAAI,EAAA;EAAA,MAAA,IAAAsG,MAAA;EAAA,MAAA,OAAA9E,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAA6E,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3E,IAAA,GAAA2E,SAAA,CAAA1E,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAAAwJ,YAAAA,SAAA,CAAA1E,IAAA,GAAA,CAAA;cAAA,OACpB,IAAI,CAACe,GAAG,CAAItC,GAAG,GAAazE,WAAAA,EAAAA,MAAM,EAAE0D,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAAxDsG,MAAM,GAAAU,SAAA,CAAAjE,IAAA;EAAA,YAAA,OAAAiE,SAAA,CAAA9D,MAAA,CACLoD,QAAAA,EAAAA,MAAM,CAACrE,IAAI,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAA+E,SAAA,CAAAtD,IAAA,EAAA;EAAA;EAAA,OAAA,EAAAoD,QAAA,EAAA,IAAA,CAAA;OACnB,CAAA,CAAA;EAAA,IAAA,SAHKF,QAAQA,CAAAK,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAN,SAAA,CAAA9C,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAR4C,QAAQ;EAAA,GAAA,EAAA;EAAA1G,EAAAA,MAAA,CAKRkH,SAAS,gBAAA,YAAA;EAAA,IAAA,IAAAC,UAAA,GAAA9F,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAf,SAAA6F,QAAgBvG,CAAAA,GAAG,EAAEzE,MAAM,EAAE0D,IAAI,EAAA;EAAA,MAAA,IAAAsG,MAAA;EAAA,MAAA,OAAA9E,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAAqF,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnF,IAAA,GAAAmF,SAAA,CAAAlF,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAAAgK,YAAAA,SAAA,CAAAlF,IAAA,GAAA,CAAA;cAAA,OACrB,IAAI,CAACsE,QAAQ,CAAC7F,GAAG,EAAEzE,MAAM,EAAE0D,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAA/CsG,MAAM,GAAAkB,SAAA,CAAAzE,IAAA;cAAA,OAAAyE,SAAA,CAAAtE,MAAA,CAAA,QAAA,EACLvF,MAAM,CAAC8J,MAAM,CAACnB,MAAM,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAkB,SAAA,CAAA9D,IAAA,EAAA;EAAA;EAAA,OAAA,EAAA4D,QAAA,EAAA,IAAA,CAAA;OAC7B,CAAA,CAAA;EAAA,IAAA,SAHKF,SAASA,CAAAM,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAP,UAAA,CAAAtD,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAToD,SAAS;EAAA,GAAA,EAAA;EAAAlH,EAAAA,MAAA,CAKT2H,IAAI,gBAAA,YAAA;EAAA,IAAA,IAAAC,KAAA,GAAAvG,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAV,SAAAsG,QAAWhH,CAAAA,GAAG,EAAEiH,EAAE,EAAEhI,IAAI,EAAA;EAAA,MAAA,IAAAsG,MAAA;EAAA,MAAA,OAAA9E,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAA+F,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA7F,IAAA,GAAA6F,SAAA,CAAA5F,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAAA0K,YAAAA,SAAA,CAAA5F,IAAA,GAAA,CAAA;EAAA,YAAA,OACZ,IAAI,CAACe,GAAG,CAAItC,GAAG,GAAS,OAAA,EAAA;EAAEiH,cAAAA,EAAE,EAAEA;eAAI,EAAEhI,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAAxDsG,MAAM,GAAA4B,SAAA,CAAAnF,IAAA;EAAA,YAAA,OAAAmF,SAAA,CAAAhF,MAAA,CACLoD,QAAAA,EAAAA,MAAM,CAACrE,IAAI,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAiG,SAAA,CAAAxE,IAAA,EAAA;EAAA;EAAA,OAAA,EAAAqE,QAAA,EAAA,IAAA,CAAA;OACnB,CAAA,CAAA;EAAA,IAAA,SAHKF,IAAIA,CAAAM,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAP,KAAA,CAAA/D,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAJ6D,IAAI;EAAA,GAAA,EAAA;EAAA3H,EAAAA,MAAA,CAKJoI,QAAQ,gBAAA,YAAA;EAAA,IAAA,IAAAC,SAAA,GAAAhH,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAd,SAAA+G,SAAAA,CAAezH,GAAG,EAAE0H,KAAK,EAAEnM,MAAM,EAAE0D,IAAI,EAAA;QAAA,IAAA0I,OAAA,EAAApC,MAAA;EAAA,MAAA,OAAA9E,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAAyG,WAAAC,UAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAvG,IAAA,GAAAuG,UAAA,CAAAtG,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;cAC1CkL,OAAO,GAAAjG,QAAA,CAAA,EAAA,EACRnG,MAAM,EAAA;EACTuM,cAAAA,cAAc,EAAEJ;EAAK,aAAA,CAAA;EAAAG,YAAAA,UAAA,CAAAtG,IAAA,GAAA,CAAA;cAAA,OAEF,IAAI,CAACe,GAAG,CAAItC,GAAG,GAAa2H,WAAAA,EAAAA,OAAO,EAAE1I,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAAzDsG,MAAM,GAAAsC,UAAA,CAAA7F,IAAA;EAAA,YAAA,OAAA6F,UAAA,CAAA1F,MAAA,CACLoD,QAAAA,EAAAA,MAAM,CAACrE,IAAI,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAA2G,UAAA,CAAAlF,IAAA,EAAA;EAAA;EAAA,OAAA,EAAA8E,SAAA,EAAA,IAAA,CAAA;OACnB,CAAA,CAAA;MAAA,SAPKF,QAAQA,CAAAQ,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAV,SAAA,CAAAxE,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAARsE,QAAQ;EAAA,GAAA,EAAA;EAAApI,EAAAA,MAAA,CASRgJ,MAAM,gBAAA,YAAA;EAAA,IAAA,IAAAC,OAAA,GAAA5H,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAZ,SAAA2H,SAAarI,CAAAA,GAAG,EAAEkB,IAAI,EAAEjC,IAAI,EAAA;EAAA,MAAA,IAAAsG,MAAA;EAAA,MAAA,OAAA9E,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAAmH,WAAAC,UAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAjH,IAAA,GAAAiH,UAAA,CAAAhH,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAAA,YAAA,IAAA,EAEjCyE,IAAI,CAAC+F,EAAE,IAAIxK,SAAS,CAAA,EAAA;EAAA8L,cAAAA,UAAA,CAAAhH,IAAA,GAAA,CAAA;EAAA,cAAA;EAAA;cACtB,OAAOL,IAAI,CAAC+F,EAAE;EAAAsB,YAAAA,UAAA,CAAAhH,IAAA,GAAA,CAAA;cAAA,OACA,IAAI,CAAClF,IAAI,CAAI2D,GAAG,GAASkB,OAAAA,EAAAA,IAAI,EAAEjC,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAAlDsG,MAAM,GAAAgD,UAAA,CAAAvG,IAAA;EAAAuG,YAAAA,UAAA,CAAAhH,IAAA,GAAA,EAAA;EAAA,YAAA;EAAA,UAAA,KAAA,CAAA;EAAAgH,YAAAA,UAAA,CAAAhH,IAAA,GAAA,EAAA;cAAA,OAEQ,IAAI,CAAClF,IAAI,CAAI2D,GAAG,GAAWkB,SAAAA,EAAAA,IAAI,EAAEjC,IAAI,CAAC;EAAA,UAAA,KAAA,EAAA;cAApDsG,MAAM,GAAAgD,UAAA,CAAAvG,IAAA;EAAA,UAAA,KAAA,EAAA;EAAA,YAAA,OAAAuG,UAAA,CAAApG,MAAA,CAGDoD,QAAAA,EAAAA,MAAM,CAACrE,IAAI,CAAA;EAAA,UAAA,KAAA,EAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAqH,UAAA,CAAA5F,IAAA,EAAA;EAAA;EAAA,OAAA,EAAA0F,SAAA,EAAA,IAAA,CAAA;OACnB,CAAA,CAAA;EAAA,IAAA,SAVKF,MAAMA,CAAAK,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAN,OAAA,CAAApF,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAANkF,MAAM;EAAA,GAAA,EAAA;EAAAhJ,EAAAA,MAAA,CAYNwJ,MAAM,gBAAA,YAAA;EAAA,IAAA,IAAAC,OAAA,GAAApI,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAZ,SAAAmI,SAAa7I,CAAAA,GAAG,EAAEiH,EAAE,EAAEhI,IAAI,EAAA;QAAA,IAAAiC,IAAA,EAAAqE,MAAA;EAAA,MAAA,OAAA9E,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAA2H,WAAAC,UAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAzH,IAAA,GAAAyH,UAAA,CAAAxH,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,IAAJtC,IAAI,KAAA,MAAA,EAAA;EAAJA,cAAAA,IAAI,GAAExC,SAAS;EAAA;EAC7ByE,YAAAA,IAAI,GAAG;EAAE+F,cAAAA,EAAE,EAAEA;eAAI;EAAA8B,YAAAA,UAAA,CAAAxH,IAAA,GAAA,CAAA;cAAA,OACF,IAAI,CAAClF,IAAI,CAAI2D,GAAG,GAAWkB,SAAAA,EAAAA,IAAI,EAAEjC,IAAI,CAAC;EAAA,UAAA,KAAA,CAAA;cAArDsG,MAAM,GAAAwD,UAAA,CAAA/G,IAAA;EAAA,YAAA,OAAA+G,UAAA,CAAA5G,MAAA,CACLoD,QAAAA,EAAAA,MAAM,CAACrE,IAAI,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAA6H,UAAA,CAAApG,IAAA,EAAA;EAAA;EAAA,OAAA,EAAAkG,SAAA,EAAA,IAAA,CAAA;OACnB,CAAA,CAAA;EAAA,IAAA,SAJKF,MAAMA,CAAAK,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;EAAA,MAAA,OAAAN,OAAA,CAAA5F,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA;EAAA,IAAA,OAAN0F,MAAM;EAAA,GAAA,EAAA;EAAA,EAAA,OAAA5J,OAAA;EAAA,CAAA,EAAA;EAOdA,OAAO,CAACoK,OAAO,GAAEpK,OAAO,CAAC8G,QAAQ;EACjC9G,OAAO,CAACqK,QAAQ,GAAErK,OAAO,CAACsH,SAAS;;EC/M5B,SAASgD,YAAYA,CAACrK,MAAM,EAAE;EACnC,EAAA,IAAM9D,OAAO,GAAE,IAAI6D,OAAO,CAACC,MAAM,CAAC;EAClC,EAAA,OAAO9D,OAAO;EAChB;;ECJA;;EAEA,SAASoO,YAAYA,CAACC,OAAO,EAAE;EAE7B,EAAA,IAAOvK,MAAM,GAAIuK,OAAO,CAAjBvK,MAAM;EAEb,EAAA,IAAM9D,OAAO,GAAGmO,YAAY,CAACrK,MAAM,CAAC;EAEpC,EAAA,IAAIA,MAAM,IAAA,IAAA,IAANA,MAAM,CAAE/D,WAAW,EAAE;MACvBD,YAAY,CAACgE,MAAM,IAANA,IAAAA,GAAAA,MAAAA,GAAAA,MAAM,CAAE/D,WAAW,EAAEC,OAAO,CAAC;EAC5C;;EAEF;EACA;EACA;EACA;EACA;EACA;;EAEE,EAAA,IAAMsO,SAAS,GAAE;EACftO,IAAAA,OAAO,EAAPA;EACA;KACD;EAED,EAAA,OAAOsO,SAAS;EAClB;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* miolo v2.0.0-beta.
|
|
2
|
+
* miolo v2.0.0-beta.21
|
|
3
3
|
*
|
|
4
4
|
* https://www.afialapis.com/os/miolo
|
|
5
5
|
*
|
|
@@ -455,7 +455,7 @@
|
|
|
455
455
|
for (var key in obj) {
|
|
456
456
|
_loop(key);
|
|
457
457
|
}
|
|
458
|
-
return uparams.toString();
|
|
458
|
+
return "?" + uparams.toString();
|
|
459
459
|
}
|
|
460
460
|
return '';
|
|
461
461
|
}
|