diff --git a/data/bindata.go b/data/bindata.go index dc319dba..5ea2e9ba 100644 --- a/data/bindata.go +++ b/data/bindata.go @@ -237,7 +237,7 @@ func initReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/README.md", size: 2271, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/README.md", size: 2271, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -257,7 +257,7 @@ func initAigcsTranslateAiYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/aigcs/translate.ai.yml", size: 388, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/aigcs/translate.ai.yml", size: 388, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -277,7 +277,7 @@ func initApisAigcHttpYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/apis/aigc.http.yao", size: 564, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/apis/aigc.http.yao", size: 564, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -297,7 +297,7 @@ func initAppYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/app.yao", size: 603, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/app.yao", size: 603, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -317,7 +317,7 @@ func initChartsPetChartYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/charts/pet.chart.yao", size: 8250, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/charts/pet.chart.yao", size: 8250, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -337,7 +337,7 @@ func initConnectorsOpenaiGpt3_5TurboConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/gpt-3_5-turbo.conn.yao", size: 177, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/connectors/openai/gpt-3_5-turbo.conn.yao", size: 177, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -357,7 +357,7 @@ func initConnectorsOpenaiTextEmbeddingAda002ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/text-embedding-ada-002.conn.yao", size: 189, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/connectors/openai/text-embedding-ada-002.conn.yao", size: 189, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -377,7 +377,7 @@ func initConnectorsOpenaiWhisper1ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/whisper-1.conn.yao", size: 163, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/connectors/openai/whisper-1.conn.yao", size: 163, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -397,7 +397,7 @@ func initDashboardsKanbanDashYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/dashboards/kanban.dash.yao", size: 2222, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/dashboards/kanban.dash.yao", size: 2222, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -417,7 +417,7 @@ func initFlowsAppMenuFlowYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/flows/app/menu.flow.yao", size: 1832, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/flows/app/menu.flow.yao", size: 1832, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -437,7 +437,7 @@ func initFlowsStatDataFlowYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/flows/stat/data.flow.yao", size: 1817, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/flows/stat/data.flow.yao", size: 1817, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -457,7 +457,7 @@ func initFormsAdminUserFormYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/forms/admin/user.form.yao", size: 97, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/forms/admin/user.form.yao", size: 97, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -477,7 +477,7 @@ func initFormsDemoPetFormYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/forms/demo/pet.form.yao", size: 6755, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/forms/demo/pet.form.yao", size: 6755, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -497,7 +497,7 @@ func initIconsAppIcns() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -517,7 +517,7 @@ func initIconsAppIco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -537,7 +537,7 @@ func initIconsAppPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -557,7 +557,7 @@ func initLangsZhCnGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/langs/zh-cn/global.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/langs/zh-cn/global.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -577,7 +577,7 @@ func initLangsZhHkGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/langs/zh-hk/global.yml", size: 88, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/langs/zh-hk/global.yml", size: 88, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -597,7 +597,7 @@ func initLoginsAdminLoginYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/logins/admin.login.yao", size: 278, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/logins/admin.login.yao", size: 278, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -617,7 +617,7 @@ func initLoginsUserLoginYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/logins/user.login.yao", size: 278, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/logins/user.login.yao", size: 278, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -637,7 +637,7 @@ func initModelsAdminUserModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/models/admin/user.mod.yao", size: 8052, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/models/admin/user.mod.yao", size: 8052, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -657,7 +657,7 @@ func initModelsPetModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/models/pet.mod.yao", size: 1700, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/models/pet.mod.yao", size: 1700, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -677,7 +677,7 @@ func initNeoNeoYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/neo/neo.yml", size: 545, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/neo/neo.yml", size: 545, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -697,7 +697,7 @@ func initPublicDemoPetHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/public/demo/pet.html", size: 1376, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/public/demo/pet.html", size: 1376, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -717,7 +717,7 @@ func initPublicIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/public/index.html", size: 1404, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/public/index.html", size: 1404, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -737,7 +737,7 @@ func initScriptsDashJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/dash.js", size: 127, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/scripts/dash.js", size: 127, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -757,7 +757,7 @@ func initScriptsGuardJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/guard.js", size: 373, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/scripts/guard.js", size: 373, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -777,7 +777,7 @@ func initScriptsSetupJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/setup.js", size: 888, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/scripts/setup.js", size: 888, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -797,7 +797,7 @@ func initScriptsStatJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/stat.js", size: 1305, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/scripts/stat.js", size: 1305, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -817,7 +817,7 @@ func initServicesFooJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/services/foo.js", size: 122, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/services/foo.js", size: 122, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -837,7 +837,7 @@ func initStudioHelloJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/studio/hello.js", size: 101, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/studio/hello.js", size: 101, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -857,7 +857,7 @@ func initTablesAdminUserTabYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/tables/admin/user.tab.yao", size: 119, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/tables/admin/user.tab.yao", size: 119, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -877,12 +877,12 @@ func initTablesDemoPetTabYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/tables/demo/pet.tab.yao", size: 7111, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "init/tables/demo/pet.tab.yao", size: 7111, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _libsuiIndexTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x5a\xdd\x72\xdb\x36\x16\xbe\xd7\x53\x9c\x70\x3c\x1e\x2a\x95\xa5\xec\xcc\xee\x0d\x15\x5a\xed\xa6\xd9\xb6\xbb\xd9\x26\x53\xb7\xb3\x17\xae\x47\x86\x29\x58\x62\x4d\x11\x2a\x01\xda\xd5\xd8\x7c\xf7\x9d\x73\xf0\x43\x80\xa4\xe4\x24\xcd\x5e\x6c\x67\x1a\x53\xe4\xc1\x87\xf3\x8f\x0f\x20\x6f\xeb\x32\x53\xb9\x28\xe1\xe4\x24\x96\xbc\xe0\x99\x12\xd5\x18\x1e\x47\x00\x05\x57\xc0\x8b\x6d\x02\xdf\xff\xfc\xef\x77\x6f\x0b\xbe\xe5\xa5\x82\x27\x28\xeb\xa2\x80\x94\xfe\xcc\x47\x00\xf9\x2d\xc4\x6a\xbf\xe3\xe2\x16\xec\x70\x48\xd3\x14\x22\xa9\xaa\xbc\x5c\x47\x1a\x0b\x10\x09\x52\x58\x89\xac\x46\x9c\xe9\xef\x35\xaf\xf6\x17\x66\x40\x3b\x31\x22\x36\x23\x03\xeb\xf0\xf2\x52\x2a\x56\x66\x38\x87\xa7\x4b\x88\x6c\x85\x03\x04\x5e\x6c\xad\x54\x26\x4a\xa9\x20\x2b\x21\xc5\x01\xd3\x35\x57\xdf\x28\x55\xe5\x37\xb5\xe2\x71\x24\x93\xac\x8c\x68\x72\x3d\x2e\x2b\xe1\xf4\x14\x85\x5f\xa4\x10\x45\x78\x6d\x4c\x7c\xc8\xcb\x95\x78\xb8\xcc\xca\x2b\x6d\xa4\xf5\x9e\x33\xd3\x4d\x24\xb6\x3b\x51\xa2\xc7\x52\x28\xf9\x83\x37\x90\x94\x9a\x1b\xe1\x8a\xab\xba\x2a\x49\x62\xb9\x94\x75\xbe\x74\xe3\x50\x6c\xd2\xc2\x98\x11\xcd\x48\xff\x6f\xc7\x51\x10\x9a\xd1\xc8\x45\xb1\x83\xb2\xac\x84\x20\xa8\x04\x8c\xd7\x26\x50\xb2\x2d\x4f\x40\x87\x47\xab\x6d\xd0\xd0\x2f\x59\x21\x24\x97\x2a\xbe\xbe\x94\xbf\xfe\x9a\x64\x65\x7a\xf2\x88\xf2\xcd\xd5\xf5\x78\x68\x22\xa9\x98\xe2\x71\xab\x25\xc1\xa9\x4d\x2e\xa7\x1b\x56\xae\x0a\x5e\x49\x48\x5b\x23\xa6\x0f\x4c\x65\x1b\x78\x7a\x82\xc7\x66\x6e\x05\x2f\x38\xfa\x88\xc9\x7d\x99\x81\x43\x8f\xef\xf8\x7e\x02\xf7\xac\xa8\xf9\x04\x14\xab\xd6\x5c\x85\x81\x34\xf0\x90\x86\xb3\x5d\xde\xf1\xfd\x95\x76\x95\x1e\x85\x02\xfa\xe2\xe9\xc9\x53\x04\xdd\xd2\x86\xdb\x82\xb5\x71\x76\xf0\x47\x83\x4c\xd6\xbf\xbf\xf9\x0d\x52\xf7\xc0\xce\x9b\x98\xbf\x13\x77\x5f\x2a\xb1\xfb\x50\x89\x1d\x5b\x33\x04\x4b\x3c\x63\xc7\xde\x70\x0b\x30\x95\x61\x86\xe2\x54\x67\xbb\x76\x7c\x34\x81\x48\x55\x35\x8f\x5c\x2e\x01\x34\x76\xb6\xc6\xde\x63\x0f\x2c\x77\xce\x8a\x8d\x3f\xad\xda\x6e\xa4\xb6\x26\x97\x17\xa1\x8a\xce\x77\x6e\x82\x85\x55\x6e\xfd\x8c\x72\x63\xed\x39\x52\xd0\x8d\x4e\xe0\x96\x15\x92\xdb\x59\xd1\xf3\xbd\x39\x7d\x57\xe8\xb4\xb4\xe2\x54\xd4\xf8\x1f\xf6\xa5\x1d\xab\x74\x6d\x85\x21\x9d\xea\xfb\x26\xd5\xed\xc8\x87\x4d\x5e\x70\x88\xcd\x98\xd3\x53\x78\xa1\x2f\x07\x9b\x80\xaf\x80\x9b\xc5\xc8\x0f\xa2\x37\x9e\x39\x76\x80\xd7\xe8\x6e\xc4\x6a\x8f\xb9\xd7\x3e\xc2\xa2\x3d\x66\xa6\xfe\x3b\x9b\xc1\xb7\xb9\xdc\x51\xc1\xa8\x0d\xd7\x41\x83\x6c\xc3\xca\x35\x87\xac\x96\x4a\x6c\x81\xdf\x23\xa4\x12\x16\xdc\x39\x23\x88\xab\x96\xd2\x6d\xe8\x0d\x0d\x7c\x8b\x77\x4c\xd8\x12\x0d\x19\x4d\x3c\x8d\x56\x5c\xb1\xbc\x48\xe0\x11\xee\xf8\x3e\x81\xb6\x16\x93\xb0\x24\x93\x8e\xfb\xbd\x04\x74\xb9\x65\x5c\xb7\x32\xb6\xe8\xa9\x49\x25\xbf\xa5\x0d\xf5\x16\xcc\x27\xd9\xb6\x70\xaa\xf3\xef\xa8\xa2\x83\x36\x61\x5d\x89\xfe\x7f\x81\x6b\xc1\xd3\x93\xad\xe2\x6e\xa3\x87\x17\x07\xca\x39\x68\xa7\x6d\x14\xb4\xff\xee\x20\x85\x08\x95\x49\x22\xf8\x0a\x9d\x31\xf7\x1e\xde\x0f\xad\x27\x77\x63\x5f\xe4\x37\x29\x86\x57\x1d\x7c\x70\xc6\x94\xaa\xce\x7c\x74\xbf\x74\xda\x16\x85\xb2\xad\xbe\xaa\xda\xf7\x12\x08\xfe\x79\xf1\xfe\x47\x4c\x51\xc9\xe3\x7b\xe7\xfe\x06\x32\x4a\xa1\x98\xf7\x53\xce\xb3\xd7\x5a\xac\xff\x35\x8f\xef\xe7\x3a\x34\xd6\xf9\xef\x72\x19\x7a\x3f\x6c\xc9\x14\x2f\x6c\x85\xcd\xfc\x4b\x05\x84\x20\x6d\x44\xbc\xa9\xd0\x69\xd2\xf8\x94\x59\x30\x23\x78\x2b\x2a\x88\xb1\x47\xe4\x90\xc2\xab\x39\xe4\xf0\x5a\xcb\x4f\x0b\x5e\xae\xd5\x66\x0e\xf9\x57\x5f\x75\x3b\x39\x0a\xe0\x2a\x84\x72\x97\xf9\x95\xdf\xa2\xf0\xde\x14\xd7\xc0\xa9\x54\xac\x52\xf2\x3f\xb9\xda\xc4\x26\x1f\x82\x6e\xd1\x66\x4b\x3b\xa4\xe2\xbb\x82\x65\xdc\xca\x4f\x20\xf2\xfb\xf5\x67\xe4\x47\x3f\x3b\x86\x33\xa4\x9f\x25\x54\x8c\xe8\xcf\xcb\xbb\x2b\x48\xfd\x6c\x21\x75\xa9\xb0\x3d\xdd\x0e\xa5\x4e\x07\xc6\x4f\x21\xbf\x7d\x19\xf3\x54\x5e\xd6\xdc\x5b\xa0\x46\x03\x10\xed\xf4\x47\x72\xd1\x65\xc2\x60\xab\x38\xc8\x9a\xda\xce\x41\xfd\x89\xbc\xec\x98\x87\x54\xa2\xe2\xa6\x31\x5a\x3a\x23\x2a\xee\x08\x1a\x09\xd9\xac\x6e\x85\xda\xbe\xe4\x21\x61\x73\xf6\x56\x23\x58\x04\xa8\x1d\x92\x94\x50\x8d\xf4\xcd\xa0\xb6\xb8\xb4\xab\x35\xfd\x9a\xc0\x8a\x29\xf6\x2f\xbe\x97\x13\x4a\x14\x7d\x65\xb8\x05\xa0\x51\x13\xbb\xbc\x6b\x63\x75\x4e\xe1\x20\x57\x8a\x03\x4c\x28\x60\xef\x01\xbd\xb2\xd3\x4d\x6f\x45\xf5\x96\x65\x9b\x78\xb0\xd9\xba\xf6\x87\x61\x73\xc8\x9d\xfc\x45\x28\xd7\xd5\x6c\x6c\xf1\x26\xb1\x34\x48\xc1\x0b\xba\x5d\x30\xac\x8d\x5f\x60\x7a\x84\x3a\x3a\xbd\x9f\xbb\xe8\x08\x8d\x76\x7a\x6a\x60\x89\xfb\xfb\xa9\xdf\xad\x27\x1f\xcb\x6f\xbe\x9d\x4a\x3a\x54\x47\xda\x84\x2d\x97\x92\xad\xd1\x08\x3e\xb5\xd7\x4f\x4f\x40\xff\x44\xdf\x94\xc0\xab\x4a\x54\x20\xb2\xac\xae\x2a\xbe\x8a\xe6\x1d\x00\x51\xf0\x29\x89\xc4\xd7\x97\x17\xbf\xfc\x70\x05\xb4\xc0\xc2\xf7\x86\xbf\xbe\xc5\x47\x09\x9c\x3c\x1a\xe8\x06\xae\x1d\x9f\xee\x97\x65\xe3\x85\x02\xaf\x5b\x5e\x4c\x0f\x06\x12\xb3\x65\x0d\x98\x8a\x86\x19\x25\x3a\x2f\xed\x5a\x45\xb3\xb9\x47\x3e\x2d\x6e\x06\xf7\x14\xba\x0a\xf2\x32\x0f\x37\x2e\x7e\x7a\x93\xc8\xdb\x62\x6b\xd7\x80\x60\x37\xf9\x4d\x51\xc4\x11\x6d\x5f\x48\xec\x4a\x77\x5c\x37\xc4\x65\x56\x6c\x6f\x8d\x21\x3d\x1f\xd8\x25\x9a\xa7\x3d\x96\x48\x0f\xce\x90\x2b\x52\x8c\xa2\xb9\x5e\x99\x90\xb0\x61\xd5\xdd\xf1\xbd\xf4\xb0\x48\x5a\x26\xf0\x13\xcf\x44\xb5\x7a\xad\xb7\x5d\x13\xb3\xfd\x3a\xf7\x96\xcb\xb6\x70\x31\xff\xed\x06\xed\x12\x93\xeb\xf2\xaa\xcb\x27\x0e\x8a\x0c\xad\x7e\xce\x92\x76\xa9\x1c\x5e\x0b\x69\xcb\xdc\x17\xbe\xcc\xaf\xfa\x0b\xa0\x2e\xee\x60\x01\x74\xad\x63\x57\xcb\xcd\x51\x20\xb7\x2c\x6a\x14\x5a\x16\xc7\x43\x84\xfa\x63\xb5\xd1\xb5\x1e\x68\xe3\x3a\xc9\xc7\x6b\xa3\x51\xfe\xbc\x36\x32\x11\xe5\xd9\x20\x39\xe0\x7b\x3f\xb3\x8e\xe9\xa2\x31\x3a\x84\x41\x27\x93\xed\x39\x07\x70\x06\x97\x52\x9b\xa2\x7f\xcf\xcb\x15\xed\x27\x68\x70\x9b\x32\x5a\x3f\x54\x01\xf2\xd2\xcc\xd3\xed\xb6\x37\x38\x36\xb5\x4a\xa0\x6c\x40\x94\xb0\x6a\x52\x88\x96\xcb\x1d\x5b\xf3\xa8\x6f\x7c\xbb\x65\x37\x87\x21\x88\x77\xd5\x65\x43\x66\x9d\x0e\xf6\x4f\x5d\x19\xb7\xa0\x59\x0f\x74\x3c\x44\x3e\x59\xad\xa8\x15\x22\x69\xe5\x25\xaf\x62\xd4\x77\x62\x62\xe8\x55\xbc\xfe\xef\x8b\xac\xbf\x5e\x43\x0d\x49\x5e\xc0\x82\xdc\x3e\xb6\x3d\x28\x1a\x38\x23\xb2\x66\x0c\x9c\xc7\x64\x65\x73\x75\x3d\xee\x6c\xde\x5b\xe7\x22\x60\xe8\xda\xc0\xb1\xf8\xd8\x3b\xfe\x78\xd6\xa5\x9f\xe5\xd0\x2f\xea\xce\xc6\xdf\x28\x1e\x38\x85\xb2\xb4\x8d\x74\xd0\x07\x82\x66\xe7\xd1\x49\xa4\x8f\xd8\x48\x7a\xa7\x61\xcf\xf0\x19\x6f\x6f\x74\xd1\xc7\x33\x7b\x66\xef\x98\xb2\x73\xa6\xe3\xe3\x59\xe1\x0e\xec\x77\x5c\x21\xb3\x38\xa4\x6a\xc8\x82\x86\x77\x10\x1d\x0a\xf4\x3c\xd1\x09\x69\x8e\x49\x1e\x2e\x8f\x93\x1c\xe3\xb4\xca\xee\xc2\x0e\xd1\x9e\x3f\x49\x7a\x3e\x87\xf2\x5c\x4f\xc0\x3f\x72\xfd\xd8\xdd\xaf\x7d\x1c\x06\x79\x28\x1a\xcf\x06\xda\x0f\xc3\x44\x7b\x51\x2f\xdd\xf9\xed\xde\x78\x72\x20\xf0\xdf\x6a\x0e\xdf\xdf\x6e\x1b\x05\xfd\x04\x89\xa3\xa5\x77\xe8\x8b\x89\xa5\xd9\x89\x26\x17\x7a\xb3\xd1\x39\x62\xd5\xa5\x73\xc3\xb2\x3b\x5e\xae\x96\x19\x2b\x8a\x78\x84\x34\xae\x56\xee\x74\x18\x59\x1a\x36\x73\xff\xf7\x96\xab\x8d\x58\xf9\x77\xa6\xd3\x29\xab\xd6\x32\x01\x56\xee\x47\xe3\x04\x3e\x54\x62\x9b\x4b\xfe\x9a\x95\xfb\x73\x8f\xb3\xd5\x55\x01\x29\x5c\xcf\xd8\x2e\x9f\x2d\x97\x7b\x26\x66\xb2\xce\x67\xf7\x7f\x99\x55\x75\x79\xf2\x48\xf3\x36\xd7\x73\x27\xbe\xe1\x6c\xa5\x8f\x8f\xb5\xd1\xd1\x1b\x51\x2a\x24\x5e\x3f\xef\x77\x3c\x4a\x20\x62\xbb\x5d\x91\x67\x74\x68\x38\x43\x07\x47\x9a\x53\xbe\x11\xe2\x2e\xe7\x49\x5b\xf7\x19\xdd\x98\x8c\xcc\xa9\xa8\x39\xab\x60\xfb\x42\x30\x5c\xcd\x1e\x8d\x45\x13\x40\x23\x26\x64\xaf\x96\x6c\xeb\xc0\x2c\x7f\x62\xb5\xb7\x45\xd0\x86\xcf\x20\x05\x27\x3e\x15\x97\x3b\x51\x4a\xcc\x6f\x7d\x00\x7b\xcb\x55\xb6\x89\xeb\xaa\x98\xb8\xf9\x12\x88\x3e\xbc\xbf\xf8\x39\x9a\x58\x4b\x27\x34\x41\xa2\xa7\x69\x02\x3c\xc5\xff\x50\x0e\xcb\x82\x4f\xf1\x6e\x6c\xe4\x90\xf1\x51\x3b\xc1\x20\xf4\x5f\xd2\x98\x8d\x1e\xc2\x9c\x9e\x6a\xb8\x4e\xd1\x9b\x0d\xa3\x57\xe1\x28\x35\x0e\xce\x5e\x10\xc3\xcd\x8e\x9b\xda\x5a\xc2\x79\x0a\x7f\x7d\xf5\xaa\xcb\x14\xda\xfa\x46\x5c\x5b\xe2\xae\x00\x17\xc3\xb7\x13\xb8\xfe\x07\xcb\x0b\xbe\x02\x25\x00\x13\x12\x6c\x5e\x50\x35\xa3\xd7\x74\x86\xf8\xab\xe7\xca\xcd\x42\xd7\x0b\xef\x3a\x81\xbf\xbd\x7a\xd5\x79\xd3\x62\x92\x73\x5a\xf1\xdf\x78\xa6\xe2\x47\xab\xea\x44\x43\x35\xa1\xc5\xbd\x41\x52\x14\xf7\x3c\xc6\x29\x74\xc1\xf6\x7a\xdc\xe1\xfe\xb6\xf0\xae\x3f\xc1\xd2\xc0\x4e\x6e\x8d\xe4\x3d\x0b\x07\x3b\xe3\xb3\x93\x24\xd8\x1c\x8d\xcd\x9f\xe2\xa1\x06\x1b\xca\xec\xe5\xcb\x11\xbc\x84\x8b\x5f\x7e\x80\x9f\x78\xb9\xe2\x15\xfe\xfa\x7a\xc7\x2a\xb6\xf5\x8f\xa2\xdd\x3d\x24\x0c\x23\x78\x39\x1b\xee\x44\x15\x41\xc4\x54\xa2\x66\x6c\x02\x6f\xdc\x81\xca\x93\xd7\x71\xfc\x37\x58\xf8\x5b\x67\x7e\x67\x87\x85\xed\x07\x1f\x8a\x1d\x4e\xb2\x48\x8c\x8e\xef\xe9\xa7\xdf\xa7\xec\x56\xac\x6d\x55\x86\x93\xc5\xe4\x16\x73\x74\xe9\xbd\xd0\x43\x96\x2b\x6e\xd0\x3b\x11\x2c\xbc\x07\x09\x9c\x9c\x78\xc7\x3c\x23\x80\x31\x30\xd9\xda\x30\xb7\xaf\x25\x35\x7e\xf8\x26\x60\x30\x7e\xad\xf9\xa5\x50\x70\x2b\xea\x72\x85\x2b\x9b\x9b\xa3\xb9\x3e\x1a\xbb\x68\x60\x7c\xd4\xbe\x63\x35\x1b\x54\xbd\x8d\x76\xbc\xb0\xbf\x99\xd6\xdc\x53\xc7\x27\x78\x1f\xd8\x9e\xf1\xda\x0d\xe5\x51\x6b\x7e\x14\xc0\xcd\x6b\x64\x52\x05\x1e\x72\xb5\x01\xd9\x41\x7e\xc6\xa4\x2e\x88\x67\xcf\x6c\x06\x48\xc3\x56\xfc\x96\xd5\x85\x32\x81\x97\x2e\x05\x20\xb5\x17\x6e\x61\xd4\xbf\xed\xa6\xcb\x09\xb4\x37\xd2\x14\xea\x72\xc5\x6f\xf3\x92\xaf\x60\x01\xaa\xaa\xb1\xe8\x42\x29\x0f\x48\x6e\xc4\xc3\x3b\x81\xed\x1c\x52\x32\x62\xe0\x7e\x07\x92\x5e\x89\xb5\x98\xad\xa4\x07\x8b\x7e\xfa\xc0\xd6\x5c\x33\x02\x1f\x38\x7c\x72\x1c\xda\x97\x9d\x1b\x7f\x7d\xa8\xf8\x8e\x55\x1c\x0a\x9a\xd2\xbc\xf4\x2f\x8c\xa6\x70\xfd\x5a\xee\x58\x09\x59\xc1\xa4\x4c\x23\x59\xe7\x67\x3a\x54\x67\x28\x91\x97\xeb\xe8\xfc\x9d\xbe\x98\x4e\xa7\xaf\x67\x28\x7b\x7e\x6d\xb3\xa2\x6f\xf9\xe9\x69\xc7\x71\xfe\x9b\x1b\x53\x65\xc3\xfe\xea\x7e\x4b\x00\xad\x8a\x83\x6e\xc3\xc6\xcc\xd1\xf6\x61\x45\x8e\x7f\x4e\x70\x0c\x7c\x8a\xed\xb3\xc2\x41\xfe\x6b\x22\x1e\x9e\x2a\x99\x03\x25\xbc\x98\xe6\x65\xa9\xe5\x21\x35\xb0\xe3\x20\x5f\xad\xff\xb1\x83\x19\xef\x2f\xcd\x52\x4c\x05\x49\x3b\x1b\x4b\x06\x63\x8f\xd2\x79\x96\xf9\x71\xb5\x46\xcc\x66\xf0\xb5\x92\x67\xf9\xba\x14\x95\x5e\x60\x2d\xec\x23\xf2\xb5\xa5\x3e\xbb\xc3\x2b\xea\xbd\xf4\xac\xe9\x34\x06\x5a\x2b\xdc\x6e\x7d\x5a\x08\x4d\xb6\xa6\x3b\xa6\x36\x58\xa9\xf3\x8f\xa0\x76\x94\x2e\x03\xec\xce\xe7\x5f\x7a\x1f\xa9\x7b\x78\x47\x3b\xad\xd7\xc4\xd6\x6d\xf3\xbf\xa6\x87\x3a\x28\x3f\x32\x95\xdf\x73\xd8\x09\xa2\x72\xbf\xd7\x5c\xd2\x4b\x56\x7a\x0b\xcb\xab\x7b\xaa\x93\xff\x27\x72\x48\x4d\x7a\xb8\xf4\x0e\x52\x9c\x3e\xfb\x33\xdd\x15\xbd\xe0\x4c\xa0\xb9\x8d\x6b\x4c\x57\x96\x47\x4a\xc2\xce\xd9\xad\x0c\x84\xb1\x3c\x6d\xe8\x0c\x78\xdc\xbe\x23\x38\x46\xcb\x9c\xce\x7d\x5a\x36\x9b\x59\xdd\xf5\xd6\xd2\xa7\x9e\x9f\xa6\xeb\xc1\x9e\x48\xc0\xd1\x79\x4b\xb9\xf4\x7d\xbf\x2f\xf6\x57\xc6\xa8\x2b\x1e\xb5\x7c\xac\x39\xbe\x10\xf6\x46\xb6\xc4\x8c\xff\xb1\x13\x95\x22\xe6\xe2\x51\x08\x5d\x2a\xb8\xc4\x07\x9f\x74\xe1\x28\xfd\x25\x40\x2b\x7b\x81\xbf\xf5\x03\x51\x85\x0f\x44\x45\x0f\xe8\x4b\x9e\x45\x8f\x74\xc5\xe6\x33\x01\x56\xee\xcd\x77\x26\x8b\x04\x08\x8d\x9c\x7a\x2f\xf2\xd5\x39\x0e\x7f\x23\xa8\x07\x2b\xd9\x87\x40\xde\x46\x71\xbe\xa4\x8f\x0f\xf4\xed\x2b\x82\x9c\x8f\xb0\x46\x7d\xeb\x7c\x4e\x67\x0c\xd4\x87\x49\x8b\xd0\x46\xcc\x5e\xcb\x0b\x72\x09\x92\x6d\x79\xc8\x3e\xda\x2f\x5d\xda\x6e\xbf\xe8\x7e\xfa\xa6\x75\x81\x27\xb8\x11\xa2\xe0\xac\xec\xc2\xd2\x82\x4b\xdf\x53\x51\x91\x2d\x92\x43\x82\xc8\x23\xd0\x89\x5e\xe7\x3e\x2c\xac\x51\xbb\x96\x87\xb1\x32\xb6\x5f\x70\x95\xd0\x91\x84\x63\xc7\xd0\x06\xc4\x45\xa0\xef\xc6\x30\xbe\x06\xec\xbb\x2e\x18\x01\xe8\xcb\xf9\x27\x4c\x46\x48\xd8\x18\x07\xd0\x28\xa8\x04\xd5\x17\x38\x06\xf7\x2d\xad\x16\x31\xdd\x1e\xcc\x9f\xae\x85\xbe\x97\xec\xc7\x2b\xbd\x22\x08\xbe\x44\xc2\xee\xd9\xcc\x47\xff\x0d\x00\x00\xff\xff\xf6\x76\x7b\xea\x20\x29\x00\x00") +var _libsuiIndexTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x5a\x5d\x73\xdb\x36\xd6\xbe\xd7\xaf\x38\xe1\x78\x3c\x54\x2a\x53\x79\x67\xde\xbd\xa1\x42\xab\xdd\x34\xdb\x76\x37\xdb\x64\xea\x76\xf6\xc2\xd5\xc8\x30\x05\x49\x8c\x69\x42\x05\x20\xbb\x1a\x4b\xff\x7d\xe7\xe0\x1b\x24\x25\x27\x69\x6e\xb6\x33\x8d\x29\xf2\xe0\xc1\xf9\xc6\x03\x90\xcb\x6d\x53\xca\x8a\x35\x70\x76\x96\x0a\x5a\xd3\x52\x32\x3e\x84\xa7\x01\x40\x4d\x25\xd0\xfa\x3e\x87\x1f\x7f\xfd\xf7\xbb\xb7\x35\xbd\xa7\x8d\x84\x3d\x34\xdb\xba\x86\x42\xfd\x99\x0c\x00\xaa\x25\xa4\x72\xb7\xa1\x6c\x09\x76\x38\x14\x45\x01\x89\x90\xbc\x6a\x56\x89\xc6\x02\x44\x82\x02\x16\xac\xdc\x22\x4e\xf6\xc7\x96\xf2\xdd\x95\x19\xe0\x27\x46\xc4\xc3\xc0\xc0\x3a\xbc\xaa\x11\x92\x34\x25\xce\x11\xe8\x12\x23\x5b\xe1\x08\x81\xd6\xf7\x56\xaa\x64\x8d\x90\x50\x36\x50\xe0\x80\x6c\x45\xe5\x77\x52\xf2\xea\x76\x2b\x69\x9a\x88\xbc\x6c\x12\x35\xb9\x1e\x57\x36\x70\x7e\x8e\xc2\x2f\x0a\x48\x12\xbc\x36\x26\x3e\x56\xcd\x82\x3d\x5e\x97\xcd\x4c\x1b\x69\xbd\xe7\xcc\x74\x13\xb1\xfb\x0d\x6b\xd0\x63\x05\x34\xf4\x31\x18\xa8\x94\x9a\x18\x61\x4e\xe5\x96\x37\x4a\x62\x3e\x17\xdb\x6a\xee\xc6\xa1\xd8\xc8\xc3\x98\x11\x87\x81\xfe\xdf\x8e\x53\x41\x38\x0c\x06\x2e\x8a\x2d\x94\x39\x67\x4c\x41\xe5\x60\xbc\x36\x82\x86\xdc\xd3\x1c\x74\x78\xb4\xda\x06\x0d\xfd\x52\xd6\x4c\x50\x21\xd3\x9b\x6b\xf1\xfb\xef\x79\xd9\x14\x67\x4f\x28\x7f\x98\xdd\x0c\xfb\x26\x12\x92\x48\x9a\x7a\x2d\x15\x9c\x5c\x57\x22\x5b\x93\x66\x51\x53\x2e\xa0\xf0\x46\x64\x8f\x44\x96\x6b\xd8\xef\xe1\xe9\x30\xb1\x82\x57\x14\x7d\x44\xc4\xae\x29\xc1\xa1\xa7\x77\x74\x37\x82\x07\x52\x6f\xe9\x08\x24\xe1\x2b\x2a\xe3\x40\x1a\x78\x28\xe2\xd9\xae\xef\xe8\x6e\xa6\x5d\xa5\x47\xa1\x80\xbe\xd8\xef\x03\x45\xd0\x2d\x3e\xdc\x16\xcc\xc7\xd9\xc1\x9f\x0c\xb2\xb2\xfe\xfd\xed\x47\x28\xdc\x03\x3b\x6f\x6e\xfe\x8e\xdc\x7d\x21\xd9\xe6\x03\x67\x1b\xb2\x22\x08\x96\x07\xc6\x0e\x83\xe1\x16\x20\x13\x71\x86\xe2\x54\x17\x1b\x3f\x3e\x19\x41\x22\xf9\x96\x26\x2e\x97\x00\x0e\x76\xb6\x83\xbd\x47\x1e\x49\xe5\x9c\x95\x1a\x7f\x5a\xb5\xdd\x48\x6d\x4d\x25\xae\x62\x15\x9d\xef\xdc\x04\x53\xab\xdc\xea\x19\xe5\x86\xda\x73\x4a\x41\x37\x3a\x87\x25\xa9\x05\xb5\xb3\xa2\xe7\x3b\x73\x86\xae\xd0\x69\x69\xc5\x55\x51\xe3\x7f\xd8\x97\x36\x84\xeb\xda\x8a\x43\x9a\xe9\xfb\x26\xd5\xed\xc8\xc7\x75\x55\x53\x48\xcd\x98\xf3\x73\x78\xa1\x2f\x7b\x9b\x40\xa8\x80\x9b\xc5\xc8\xf7\xa2\x1f\x02\x73\xec\x80\xa0\xd1\xdd\xb2\xc5\x0e\x73\xcf\x3f\xc2\xa2\x3d\x65\xa6\xfe\x3b\x1e\xc3\xf7\x95\xd8\xa8\x82\x91\x6b\xaa\x83\x06\xe5\x9a\x34\x2b\x0a\xe5\x56\x48\x76\x0f\xf4\x01\x21\x25\xb3\xe0\xce\x19\x51\x5c\xb5\x94\x6e\x43\x6f\xd4\xc0\xb7\x78\xc7\x84\x2d\xd7\x90\xc9\x28\xd0\x68\x41\x25\xa9\xea\x1c\x9e\xe0\x8e\xee\x72\xf0\xb5\x98\xc7\x25\x99\xb7\xdc\x1f\x24\xa0\xcb\x2d\xe3\xba\x85\xb1\x45\x4f\xad\x54\x0a\x5b\x5a\x5f\x6f\xc1\x7c\x12\xbe\x85\xab\x3a\xff\x41\x55\x74\xd4\x26\xac\x2b\xd1\xff\x2f\x70\x2d\xd8\xef\x6d\x15\xb7\x1b\x3d\xbc\x38\x52\xce\x51\x3b\xf5\x51\xd0\xfe\xbb\x83\x02\x12\x54\x26\x4f\xe0\x1b\x74\xc6\x24\x78\xf8\xd0\xb7\x9e\xdc\x0d\x43\x91\x8f\x82\xf5\xaf\x3a\xf8\xe0\x82\x48\xc9\x2f\x42\xf4\xb0\x74\x7c\x8b\x42\x59\xaf\xaf\xe4\xbb\x4e\x02\xc1\x3f\xaf\xde\xff\x8c\x29\x2a\x68\xfa\xe0\xdc\x7f\x80\x52\xa5\x50\x4a\xbb\x29\x17\xd8\x6b\x2d\xd6\xff\x9a\xc7\x0f\x13\x1d\x1a\xeb\xfc\x77\x95\x88\xbd\x1f\xb7\x64\x15\x2f\x6c\x85\x87\xc9\xd7\x0a\x88\x82\xb4\x11\x09\xa6\x42\xa7\x09\xe3\x53\x62\xc1\x8c\xe0\x92\x71\x48\xb1\x47\x54\x50\xc0\xab\x09\x54\xf0\x5a\xcb\x67\x35\x6d\x56\x72\x3d\x81\xea\x9b\x6f\xda\x9d\x1c\x05\x70\x15\x42\xb9\xeb\x6a\x16\xb6\x28\xbc\x97\xe1\x1a\x98\x09\x49\xb8\x14\xff\xa9\xe4\x3a\x35\xf9\x10\x75\x0b\x9f\x2d\x7e\x08\xa7\x9b\x9a\x94\xd4\xca\x8f\x20\x09\xfb\xf5\x17\xe4\x47\x37\x3b\xfa\x33\xa4\x9b\x25\xaa\x18\xd1\x9f\xd7\x77\x33\x28\xc2\x6c\x51\xea\xaa\xc2\x0e\x74\x3b\x96\x3a\x2d\x98\x30\x85\xc2\xf6\x65\xcc\x93\x55\xb3\xa5\xc1\x02\x35\xe8\x81\xf0\xd3\x9f\xc8\x45\x97\x09\xbd\xad\xe2\x28\x6b\xf2\x9d\x43\xf5\x27\xe5\x65\xc7\x3c\x84\x64\x9c\x9a\xc6\x68\xe9\x0c\xe3\xd4\x11\x34\x25\x64\xb3\xda\x0b\xf9\xbe\x14\x20\x61\x73\x0e\x56\x23\x98\x46\xa8\x2d\x92\x94\xab\x1a\xe9\x9a\xa1\xda\xe2\xdc\xae\xd6\xea\xd7\x08\x16\x44\x92\x7f\xd1\x9d\x18\xa9\x44\xd1\x57\x86\x5b\x00\x1a\x35\xb2\xcb\xbb\x36\x56\xe7\x14\x0e\x72\xa5\xd8\xc3\x84\x22\xf6\x1e\xd1\x2b\x3b\x5d\xb6\x64\xfc\x2d\x29\xd7\x69\x6f\xb3\x75\xed\x0f\xc3\xe6\x90\x5b\xf9\x8b\x50\xae\xab\xd9\xd8\xe2\x4d\xc5\xd2\xa0\x80\x20\xe8\x76\xc1\xb0\x36\x7e\x85\xe9\x11\xea\xe4\xf4\x61\xee\xa2\x23\x34\xda\xf9\xb9\x81\x55\xdc\x3f\x4c\xfd\x76\x3d\x85\x58\x61\xf3\x6d\x55\xd2\xb1\x3a\xd2\x26\xdc\x53\x21\xc8\x0a\x8d\xa0\x99\xbd\xde\xef\x41\xfd\x93\x7c\xd7\x00\xe5\x9c\x71\x60\x65\xb9\xe5\x9c\x2e\x92\x49\x0b\x80\xd5\x34\x53\x22\xe9\xcd\xf5\xd5\x6f\x3f\xcd\x40\x2d\xb0\xf0\xa3\xe1\xaf\x6f\xf1\x51\x0e\x67\x4f\x06\xfa\x00\x37\x8e\x4f\x77\xcb\xf2\x10\x84\x02\xaf\x3d\x2f\x56\x0f\x7a\x12\xd3\xb3\x06\x4c\x45\xc3\x8c\x72\x9d\x97\x76\xad\x52\xb3\xb9\x47\x21\x2d\x3e\xf4\xee\x29\x74\x15\x54\x4d\x15\x6f\x5c\xc2\xf4\x56\x22\x6f\xeb\x7b\xbb\x06\x44\xbb\xc9\xef\xea\x3a\x4d\xd4\xf6\x45\x89\xcd\x74\xc7\x75\x43\x5c\x66\xa5\xf6\xd6\x10\x8a\xcb\x9e\x5d\xa2\x79\xda\x61\x89\xea\xc1\x05\x72\x45\x15\xa3\x64\xa2\x57\x26\x24\x6c\x58\x75\x77\x74\x27\x02\x2c\x25\x2d\x72\xf8\x85\x96\x8c\x2f\x5e\xeb\x6d\xd7\xc8\x6c\xbf\x2e\x83\xe5\xd2\x17\x2e\xe6\xbf\xdd\xa0\x5d\x63\x72\x5d\xcf\xda\x7c\xe2\xa8\x48\xdf\xea\xe7\x2c\xf1\x4b\x65\xff\x5a\xa8\xb6\xcc\x5d\xe1\xeb\x6a\xd6\x5d\x00\x75\x71\x47\x0b\xa0\x6b\x1d\x9b\xad\x58\x9f\x04\x72\xcb\xa2\x46\x51\xcb\xe2\xb0\x8f\x50\x7f\xaa\x36\xba\xd6\x23\x6d\x5c\x27\xf9\x74\x6d\x34\xca\x5f\xd7\x46\xe4\xac\xb9\xe8\x25\x07\x74\x17\x66\xd6\x29\x5d\x34\x46\x8b\x30\xe8\x64\xb2\x3d\xe7\x08\x4e\xef\x52\x6a\x53\xf4\xef\x55\xb3\x50\xfb\x09\x35\xd8\xa7\x8c\xd6\x0f\x55\x80\xaa\x31\xf3\xb4\xbb\xed\x2d\x8e\x2d\xac\x12\x28\x1b\x11\x25\xac\x9a\x02\x92\xf9\x7c\x43\x56\x34\xe9\x1a\xef\xb7\xec\xe6\x30\x04\xf1\x66\x6d\x36\x64\xd6\xe9\x68\xff\xd4\x96\x71\x0b\x9a\xf5\x40\xcb\x43\xca\x27\x8b\x85\x6a\x85\x48\x5a\x69\x43\x79\x8a\xfa\x8e\x4c\x0c\x83\x8a\xd7\xff\x7d\x95\xf5\x37\x68\xa8\x31\xc9\x8b\x58\x90\xdb\xc7\xfa\x83\xa2\x9e\x33\x22\x6b\x46\xcf\x79\x4c\xd9\x1c\x66\x37\xc3\xd6\xe6\xdd\x3b\x17\x01\x63\xd7\x46\x8e\xc5\xc7\xc1\xf1\xc7\xb3\x2e\xfd\x22\x87\x7e\x55\x77\x1e\xc2\x8d\xe2\x91\x53\x28\x4b\xdb\x94\x0e\xfa\x40\xd0\xec\x3c\x5a\x89\xf4\x09\x1b\xc9\xe0\x34\xec\x19\x3e\x13\xec\x8d\xae\xba\x78\x66\xcf\x1c\x1c\x53\xb6\xce\x74\x42\x3c\x2b\xdc\x82\xfd\x81\x4a\x64\x16\xc7\x54\x8d\x59\x50\xff\x0e\xa2\x45\x81\x9e\x27\x3a\x31\xcd\x31\xc9\x43\xc5\x69\x92\x63\x9c\xc6\xed\x2e\xec\x18\xed\xf9\x8b\xa4\xe7\x4b\x28\xcf\xcd\x08\xc2\x23\xd7\x4f\xdd\xfd\xda\xc7\x71\x90\xfb\xa2\xf1\x6c\xa0\xc3\x30\x8c\xb4\x17\xf5\xd2\x5d\x2d\x77\xc6\x93\x3d\x81\xff\x5e\x73\xf8\xee\x76\xdb\x28\x18\x26\x48\x9a\xcc\x83\x43\x5f\x4c\x2c\xcd\x4e\x34\xb9\xd0\x9b\x8d\xd6\x11\xab\x2e\x9d\x5b\x52\xde\xd1\x66\x31\x2f\x49\x5d\xa7\x03\xa4\x71\x5b\xe9\x4e\x87\x91\xa5\xad\x29\x59\x50\x2e\x72\xb8\x8e\xa9\xcb\xec\x7a\x06\xfb\x63\xac\x66\x0f\x3f\xea\x61\x88\x70\x4f\xe5\x9a\x2d\x42\xcc\x2c\xcb\x08\x5f\x89\x1c\x48\xb3\x1b\x0c\x73\xf8\xc0\xd9\x7d\x25\xe8\x6b\xd2\xec\x2e\x03\x96\xb7\xe5\x35\x14\x70\x33\x26\x9b\x6a\x3c\x9f\xef\x08\x1b\x8b\x6d\x35\x7e\xf8\xbf\x31\xdf\x36\x67\x4f\x4a\xd3\xc3\xcd\xc4\xeb\xe8\x8e\x61\x93\x37\xac\x91\x48\xd2\x7e\xdd\x6d\x68\x92\x43\x42\x36\x9b\xba\x2a\xd5\x01\xe3\x18\x83\x91\x68\xfe\xf9\x0b\x5d\x52\x4e\x79\x6e\x3a\x6f\x56\x33\x2d\x93\xad\x39\x5d\x6a\x91\x37\x8c\xdd\x55\x34\xf7\x6d\xa4\x54\x37\xf4\xc3\x2c\xcb\xd6\xde\x4e\xe5\x6a\x73\x14\x42\x76\x35\x23\xb8\x58\x3e\x19\xf3\x47\x80\x16\x6b\x19\x5f\x60\x66\x5d\x65\x8b\x9d\xad\x2e\x9f\x17\x06\x23\x3a\x4a\xe2\x54\x6c\x58\x23\xb0\x70\xf4\xc9\xee\x92\xca\x72\x9d\x6e\x79\x3d\x72\x33\xe5\x90\x7c\x78\x7f\xf5\x6b\x32\xb2\x6e\x19\xa9\x09\x72\x3d\xcd\x21\xc2\x93\xf4\x4f\xe9\xb0\x2c\x78\x86\x77\x53\x23\x87\x54\x52\xf5\x29\x8c\x55\xf7\xed\x8f\xd9\x41\x22\xcc\xf9\xb9\x86\x6b\x75\x13\xb3\x13\x0d\x5a\x07\x4a\x0d\xa3\x43\x1d\xc4\x70\xb3\xe3\x6e\x79\x2b\xe0\xb2\x80\xff\x7f\xf5\xaa\x4d\x41\x7c\xe3\x40\x5c\xdb\x3b\x5c\x65\x4f\xfb\x6f\xe7\x70\xf3\x0f\x52\xd5\x74\x01\x92\x01\x66\x3a\xd8\xf4\x51\x6d\x02\xbd\xa6\x13\x29\x5c\x96\x17\x6e\x16\x75\x3d\x0d\xae\x73\xf8\xdb\xab\x57\xad\x57\x38\x26\x87\x33\x4e\x3f\xd2\x52\xa6\x4f\x56\xd5\x91\x86\x3a\xc4\x16\x77\x06\x09\x56\x3f\xd0\x14\xa7\xd0\x9d\xa0\xd3\x3c\x8f\x37\xce\x69\x70\xfd\x19\x96\x46\x76\x52\x6b\x24\xed\x58\xd8\xdb\x72\x9f\x9d\x24\xc7\xae\x6b\x6c\xfe\x1c\x0f\x1d\xb0\x53\x8d\x5f\xbe\x1c\xc0\x4b\xb8\xfa\xed\x27\xf8\x85\x36\x0b\xca\xf1\xd7\xb7\x1b\xc2\xc9\x7d\x78\xc6\xed\xee\x21\x13\x19\xc0\xcb\x71\x7f\x8b\xe3\x0a\x22\x55\xc5\x69\xc6\xe6\xf0\xc6\x9d\xd4\xec\x83\xc6\x14\xbe\x1a\xc3\xdf\x3a\xf3\x5b\x4d\x0e\xbb\x14\x3e\x64\x1b\x9c\x64\x9a\x1b\x1d\xdf\xab\x9f\x61\x3b\xb3\xdd\xd0\x77\x34\x43\xf6\x52\xe5\x16\x73\x26\x1a\xbc\x29\x44\xfa\xcc\x6e\xd1\x3b\x09\x4c\x83\x07\x39\x9c\x9d\x05\xe7\x47\x03\x80\x21\x10\xe1\x6d\x98\xd8\xf7\x9d\x1a\x3f\x7e\xc5\xd0\x1b\x3f\x6f\x7e\xc3\x24\x2c\xd9\xb6\x59\xe0\x92\xe9\xe6\x38\xdc\x9c\x8c\x5d\xd2\x33\x3e\xf1\x2f\x6f\xcd\xce\x57\xef\xcf\x1d\xe1\xec\xee\xd2\x35\xa9\xd5\xf1\x89\x5e\x34\xfa\xc3\x63\xbb\x53\x3d\x69\xcd\xcf\x0c\xa8\x79\x3f\xad\x54\x81\xc7\x4a\xae\x41\xb4\x90\x9f\x31\xa9\x0d\x12\xd8\x33\x1e\x03\xf2\xbb\x05\x5d\x92\x6d\x2d\x4d\xe0\x85\x4b\x01\x28\xec\x85\x5b\x71\xf5\x6f\xbb\x9b\x73\x02\xfe\x46\x51\xc0\xb6\x59\xd0\x65\xd5\xd0\x05\x4c\x41\xf2\x2d\x16\x5d\x2c\x15\x00\x89\x35\x7b\x7c\xc7\xb0\x9d\x43\xa1\x8c\xe8\xb9\xdf\x82\x54\xef\xda\x3c\xa6\x97\x0c\x60\xd1\x4f\x1f\xc8\x8a\x6a\xaa\x11\x02\xc7\x4f\x4e\x43\x87\xb2\x13\xe3\xaf\x0f\x9c\x6e\x08\xa7\x50\xab\x29\xcd\xd7\x04\xb5\xd1\x14\x6e\x5e\x8b\x0d\x69\xa0\xac\x89\x10\x45\x22\xb6\xd5\x85\x0e\xd5\x05\x4a\x54\xcd\x2a\xb9\x7c\xa7\x2f\xb2\x2c\x7b\x3d\x46\xd9\xcb\x1b\x9b\x15\x5d\xcb\xcf\xcf\x5b\x8e\x0b\x5f\x09\x99\x2a\xeb\xf7\x57\xfb\x23\x05\xf0\x2a\xf6\xba\x0d\x1b\x33\x45\xdb\xfb\x15\x39\xfd\x9d\xc2\x29\xf0\x0c\xdb\x27\xc7\x41\xe1\xfb\x27\x1a\x1f\x57\x99\x93\x2a\xbc\xc8\xaa\xa6\xd1\xf2\x50\x18\xd8\x61\x94\xaf\xd6\xff\xd8\xc1\x8c\xf7\xe7\x66\x29\x56\x05\xa9\xb6\x4c\x96\x65\xa6\x01\x57\x0c\x2c\x0b\xe3\x6a\x8d\x18\x8f\xe1\x5b\x29\x2e\xaa\x55\xc3\xb8\x5e\x60\x2d\xec\x13\xd2\xa1\xb9\x3e\x14\xc4\x2b\xd5\x7b\xd5\xb3\x43\xab\x31\xa8\xb5\xc2\x1d\x03\x78\xd6\xb5\x21\x72\x8d\x95\x3a\xf9\x04\x06\xa8\xd2\x25\x22\x81\x5d\xe6\xa5\x37\xa8\xba\x87\xb7\xb4\xd3\x7a\x8d\x6c\xdd\x06\xd4\xed\x4b\xb9\xe4\x09\xa2\x78\xb0\x45\xf1\x33\x91\xd5\x03\x85\x0d\x53\x54\xee\x8f\x2d\x15\xea\xed\xad\x7a\xbd\x4b\xf9\x83\xaa\x93\xff\x25\x72\xa8\x9a\x74\x7f\xe9\x1d\xa5\x38\x5d\xf6\x67\xba\x2b\x7a\xc1\x99\xa0\xe6\x36\xae\x31\x5d\x59\x9c\x28\x09\x3b\x67\xbb\x32\x10\xc6\xf2\xb4\xbe\xc3\xe5\xa1\x7f\xf9\x70\x8a\x96\x39\x9d\xbb\xb4\x6c\x3c\xb6\xba\xeb\x3d\x6b\x48\x3d\x3f\x4f\xd7\xa3\x3d\x51\x01\x27\x97\x9e\x72\xe9\xfb\x61\x5f\xec\xae\x8c\x49\x5b\x3c\xf1\x7c\xec\x70\x7a\x21\xec\x8c\xf4\xc4\x8c\xfe\xb9\x61\x5c\x2a\xe6\x12\x50\x08\x5d\x2a\xb8\xc4\x47\xdf\x8a\xe1\x28\xfd\x89\x81\x97\xbd\xc2\xdf\xfa\x01\xe3\xf1\x03\xc6\xd5\x03\xf5\x89\xd0\xb4\x43\xba\x52\xf3\xfd\x01\x69\x76\xe6\x03\x96\x69\x0e\x0a\x4d\x39\xf5\x81\x55\x8b\x4b\x1c\xfe\x86\xa9\x1e\x2c\x45\x17\x02\x79\x9b\x8a\xf3\xb5\xfa\xaa\xc1\x6c\x63\x15\xe4\x64\x80\x35\x1a\x5a\x17\x72\x3a\x63\xa0\x3e\xa5\x9a\xc6\x36\x62\xf6\x5a\x5e\x50\x09\x10\xe4\x9e\xc6\xec\xc3\x7f\x42\xe3\xbb\xfd\xb4\xfd\x4d\x9d\xd6\x05\xf6\x70\xcb\x58\x4d\x49\xd3\x86\x55\x0b\xae\xfa\x50\x4b\x15\xd9\x34\x3f\x26\x88\x3c\x02\x9d\x18\x74\xee\xe3\xc2\x1a\xb5\x6d\x79\x1c\x2b\x63\xfb\x15\x95\xb9\x3a\xeb\x70\xec\x18\x7c\x40\x5c\x04\xba\x6e\x8c\xe3\x6b\xc0\x7e\x68\x83\x29\x00\x7d\x39\xf9\x8c\xc9\x14\x12\x36\xc6\x1e\x34\x15\x54\x05\xd5\x15\x38\x05\xf7\xbd\x5a\x2d\x52\x75\xbb\x37\x7f\xda\x16\x86\x5e\xb2\x5f\xc5\x74\x8a\x20\xfa\xc4\x09\xbb\xe7\x61\x32\xf8\x6f\x00\x00\x00\xff\xff\xac\xa0\x44\x61\x79\x29\x00\x00") func libsuiIndexTsBytes() ([]byte, error) { return bindataRead( @@ -897,12 +897,12 @@ func libsuiIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/index.ts", size: 10528, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "libsui/index.ts", size: 10617, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _libsuiUtilsTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x57\x5b\x6f\xdb\x46\x13\x7d\xd7\xaf\x18\x13\x42\x40\xe2\x53\xe8\x3c\x53\x61\xf2\xa5\x81\x81\xa2\x48\x93\x36\xe9\x5b\x9c\x3a\x6b\x72\x24\xb1\x5e\xee\xb2\xbb\x4b\x39\x42\xe4\xff\x5e\xec\x85\x7b\x91\x25\x3b\x40\x81\xb4\x40\x5f\x4c\x93\x9a\x39\x73\x66\xe6\xcc\x5e\x56\x23\x6b\x54\xc7\x19\xcc\x3f\x28\x2e\x30\x47\xda\x17\xf0\x75\x06\xd0\xad\x20\x3f\xf3\x6f\x00\x02\xd5\x28\x18\xb0\x91\xd2\xe5\x0c\xe0\x6e\xe6\x6c\xd4\x6e\x40\xbe\x02\xa4\x3d\xd4\x75\x0d\x99\x54\xa2\x63\xeb\x6c\x72\x33\xdf\xa1\xe5\xcd\xd8\x23\x53\xe5\x9f\x23\x8a\xdd\x07\xa4\xd8\x28\x2e\x5e\x51\x6a\xe2\x2d\x8d\xa5\x06\x43\xda\x97\x14\xd9\x5a\x6d\xa0\xae\xe1\xd9\x04\x72\x2f\xba\x8e\x1f\xd0\x91\xf6\x1f\x9f\x7d\xb2\xac\x00\xce\xcf\xe1\xff\x4a\x3e\xed\xd6\x8c\x0b\x9c\x05\x57\xbc\x85\xab\x2b\x39\x76\x57\xd2\x27\xba\x9c\xdd\xcd\x66\xa1\x02\xbf\x6a\x72\xb9\x74\xec\x2a\xb0\xa9\x14\x15\x5c\x5d\x99\x9f\x0c\x9b\x04\x2e\xf5\xb0\x78\x0d\x25\x52\x26\x2e\x87\x88\xb0\x87\x0b\x8a\xba\x1e\x50\x43\x96\x69\xe2\x68\xdf\x65\x05\x6f\x79\x8b\x6f\x3a\xa9\xde\xad\x9e\x3b\xa3\x17\xb0\x37\x89\x43\xed\xf3\x77\xe6\x95\xc7\xb9\x67\xd1\x70\x26\x95\x18\x75\xd8\x7b\x19\x85\xf8\x53\x81\xa3\x46\x4e\xc6\x47\xbb\x09\xa0\x36\x9d\x2c\x83\x8d\x37\x5f\xc6\xbf\x4f\xd9\x3c\xd8\xf9\xa8\x6a\xd6\xd5\x90\x88\xdd\x27\x29\xbc\x88\x95\x90\x86\x80\x3a\x8d\xe8\x74\x10\x14\x72\x07\x48\x25\xa6\xf4\x83\x6f\xca\xde\x7a\x3c\x94\xa1\x51\x3d\xd2\x3e\x2f\xee\x95\x3e\x99\x92\x38\x4c\xec\x27\xb5\xe3\x03\x1d\x3e\x09\x22\x3d\xca\x7c\x9e\xc7\x5d\x3b\x8b\xad\x1e\x9d\x17\xa3\x0a\x10\x9c\x1f\x16\xae\x6c\x28\x97\x28\x55\x9e\x7d\x94\x97\x97\x55\xc3\x3e\x65\xd1\x58\x9e\x69\x8f\x07\xc1\xcd\xe3\x70\xf2\xbc\xe5\x7c\x9e\x1b\x84\x50\x0a\xd2\x6c\xf2\x86\x50\x7a\x4d\x9a\x9b\x4a\xcf\xbd\xd3\xb3\x1b\x9b\x05\x74\xac\xc5\x2f\x15\xb0\xb1\xbf\x46\x51\x40\xfd\x02\xb6\xbc\x6b\x4f\x66\x2e\x0f\xd9\xdd\xeb\xa8\x17\xd5\x8a\x8b\x0b\x1d\x7e\x0a\xea\x62\x99\x18\x13\xc6\x44\x2d\x8f\xc7\x7c\x2a\xf2\xe4\xe0\x42\xb8\x67\x08\x6b\x32\xb4\x8b\xcc\x49\xbe\xb0\xdf\x83\x1b\xb8\xa4\x0d\x6b\x54\xaf\x94\x12\xdd\xf5\xa8\x10\xce\xf4\x04\x4e\xcb\x53\xf6\x37\xea\x7f\xb8\xf6\x25\x9a\xf1\x94\x89\x52\x22\xbf\xc1\xdd\x77\x23\x7d\x42\xeb\x09\x9e\x21\xe4\x29\xb6\x44\x91\x7f\x1f\xc5\x4c\xd3\xaa\x32\xf8\x1f\x24\x64\xff\x90\x9c\x7d\x77\xb2\x76\xc2\xb7\x87\xe3\x9d\xf2\xd5\xcc\x12\xbe\x8e\xdc\xf6\x51\x78\xe5\xb6\xb4\xc8\xe4\xa7\x0f\xef\xde\x96\x03\x11\x12\xf3\xed\x34\x13\xd0\x10\xd5\x6c\x20\xc7\x00\xa8\x89\x71\x8a\x25\x0a\xc1\x45\xfe\xf9\x42\x3f\x40\xbb\xe9\x0d\x49\x63\xc0\x8a\x0b\x4d\x08\xe6\x5f\x6f\x70\x77\x57\xc1\xfc\x2b\xde\x7d\xf6\xbb\xc3\x51\x42\xa6\xce\x1b\x22\x5f\xeb\x3d\x37\x37\x3b\xef\x5b\xd2\x63\x71\x7a\x21\x7d\x59\x1a\x2b\xbd\xfe\x96\x0d\x67\x8a\x74\x2c\x76\xf4\xcd\x1b\x04\x1f\xfe\xa1\xe6\xdd\xe8\x53\x81\x8e\x3f\xb5\x68\xf9\xcd\x9d\xbd\x29\x62\x5b\xdd\xe6\xc7\x85\xf0\x54\xcf\xfd\xd3\x38\x5e\x61\xf7\x7e\x25\x46\xcc\x82\x3a\x0c\xda\x93\x27\x10\x89\x24\x56\xc3\x43\x7a\x38\xae\x88\x6f\xd5\x84\xa6\x76\x42\x14\x47\x2a\xe9\x37\xfe\x58\x01\x5b\xdf\x57\x81\x3d\xdf\xe2\x09\xbd\xd8\xb2\x99\xcf\xa8\x0f\x2f\xaf\x84\x20\xbb\xb2\x93\xe6\x19\x9b\xbf\x04\xff\x02\x55\xf8\xbf\x94\x03\xed\x54\x9e\xc1\xb4\x79\x3a\xa8\xb0\xe7\x34\xe9\x36\xe3\x5b\xda\x94\x02\x07\x4a\x1a\xcc\xcf\x3f\x5e\xb2\x4b\x71\x29\x3f\x9d\xaf\x17\x90\x65\xc9\xe9\x68\x6b\x1b\x93\x15\xc9\x26\x07\x27\x05\x6e\x93\x0d\x63\x99\x6c\x55\xc6\x2b\x2c\xfe\x6d\xfb\x1f\x29\x0a\x69\xdb\x6f\xaa\xc8\x46\xf5\x34\xd7\x7f\x5e\x1e\xb9\x09\xec\xa7\xa3\x74\x58\x1d\xb4\xa9\xa1\x32\xb2\x16\x57\x1d\xc3\xf6\xde\xbc\xa7\x94\x3a\xc6\x50\xfc\xf8\xdb\xcf\x6f\xf4\x52\x92\x65\xf1\x42\x70\x78\x14\x2e\x8e\x1e\x60\x23\x84\xda\xd0\x3d\xb1\x6b\xd9\x94\x92\xab\xce\x7b\x64\x2d\x8a\xbc\xe1\xfd\xb0\x00\x3e\xe8\x8f\x26\x3b\xfb\xdd\x44\x73\x67\x45\x7d\xa7\x30\xc7\x87\x63\x2e\xcb\x70\x21\x12\xc9\xe5\x27\xc1\xe9\x87\xe8\x62\x62\x3d\x4f\xdc\x54\x12\x70\x97\xb3\xc9\xd8\x81\xe8\xc7\x32\x7c\xf5\x58\xf6\x9f\xe9\x06\x48\xe4\x8e\x35\x70\xf1\x05\x9b\x9c\x91\x1e\x17\xe6\xd8\x50\x54\xf0\x8b\xe0\x7d\x27\xf1\xb9\x6d\xdd\xa4\xb8\x93\xa7\x26\x7b\x62\x12\x36\x6d\xcf\x62\x01\x01\x73\x11\xd3\x28\x8e\x94\xf9\x07\xd2\xdc\x20\x6b\x73\xc1\x47\x85\x41\x47\x51\x7d\x07\xb2\x46\xa8\xe1\xb6\x63\x2d\xbf\x2d\x29\x6f\x88\xf6\x2c\x07\xa2\x36\x3a\xce\x72\x76\x70\x68\xf7\xf7\xa9\x6b\xde\xee\x0e\x56\x73\x59\x0d\xe3\x35\xed\x9a\xac\x30\x8a\x3a\x37\x92\x32\xa1\xa1\x76\xcf\xfd\xde\x44\x8c\x60\xd1\x35\xf8\x3d\xae\x2f\xbe\x0c\x79\xf6\xbb\xde\x04\xfc\x69\x3d\x78\x73\x65\xbe\x8f\x0a\xfd\x54\x0a\xf4\xc3\x98\x1c\x34\x93\xac\x17\x26\x60\x7a\x35\x76\x06\xf6\x3e\xed\x22\xd8\x01\x70\xe5\xb0\x2f\xb1\x32\x8c\xd9\x54\x40\x8b\x99\x96\xd3\x49\x22\x49\x37\x92\x8a\x03\x9e\x92\xb7\x6b\x9e\xd1\xc9\x6b\x42\x69\xde\xa3\xda\xf0\x36\xe0\x97\x65\x49\xc4\x5a\x56\x40\xd8\x2e\x52\x0e\x61\xbb\x47\x65\x43\x6e\x49\xa7\x9c\x78\xae\x6d\xa2\x57\xfa\x3e\x91\x07\x7e\x8b\xc0\x69\x01\x36\xb4\x0f\xe9\x65\xf4\x57\x00\x00\x00\xff\xff\x2b\x06\x3c\x37\x9a\x11\x00\x00") +var _libsuiUtilsTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x57\xdd\x6f\xdb\x36\x10\x7f\xf7\x5f\x71\x11\x8c\x42\xc2\x5c\xa5\xcf\x72\xd5\xac\x2b\x02\x14\x43\xd7\x6e\xed\xde\x92\x2c\x65\xa4\xb3\xad\x85\x22\x35\x92\x72\x6a\xc4\xf9\xdf\x07\x7e\x88\x22\xfd\x91\x14\xdb\xd0\x0d\xd8\x4b\x14\x4b\xf7\xf1\xbb\xbb\xdf\xf1\x8e\x8b\x9e\x55\xaa\xe1\x0c\xa6\x9f\x14\x17\x98\x22\x6d\x33\xb8\x9f\x00\x34\x0b\x48\x4f\xfc\x2f\x00\x81\xaa\x17\x0c\x58\x4f\xe9\x7c\x02\xf0\x30\x71\x32\x6a\xd3\x21\x5f\x00\xd2\x16\xca\xb2\x84\x44\x2a\xd1\xb0\x65\x32\xa8\x99\xf7\x50\xf3\xaa\x6f\x91\xa9\xfc\x8f\x1e\xc5\xe6\x13\x52\xac\x14\x17\xaf\x29\x35\xfe\xe6\x46\x52\x1b\x43\xda\xe6\x14\xd9\x52\xad\xa0\x2c\xe1\xc5\x60\x64\xcf\xbb\xf6\x3f\x5a\x47\xda\x5e\xbc\xb8\xb2\xa8\x00\x4e\x4f\xe1\x7b\x25\x9f\x37\x4b\xc6\x05\x4e\x46\x55\xbc\x83\xeb\x6b\xd9\x37\xd7\xd2\x07\x3a\x9f\x3c\x4c\x26\x63\x06\x7e\xd1\xe0\x52\xe9\xd0\x15\x60\x43\xc9\x0a\xb8\xbe\x36\x9f\x0c\x9a\xc8\x5c\xac\x61\xed\x55\x94\x48\x19\xa9\xec\x5a\x84\x2d\x9c\x53\xd4\xf9\x80\x12\x92\x44\x03\x47\xfb\x5b\x16\xf0\x9e\xd7\xf8\xae\x91\xea\xc3\xe2\xa5\x13\x7a\x05\x5b\x13\x38\x94\x3e\x7e\x27\x5e\x78\x3b\x7b\x12\x15\x67\x52\x89\x5e\xbb\xdd\x8b\x68\xf4\x3f\x24\x38\x28\xe4\x20\x7c\xb0\x9a\x00\x6a\xd5\xc8\x7c\x94\xf1\xe2\xf3\xf0\xfb\x10\xcd\xa3\x95\x0f\xb2\x66\x55\x0d\x88\x50\x7d\xa0\xc2\xab\x90\x09\xb1\x0b\x28\x63\x8f\x8e\x07\x23\x43\x1e\x00\xa9\xc4\x18\xfe\xa8\x1b\xa3\xb7\x1a\x8f\x45\x68\x58\x8f\xb4\x4d\xb3\xbd\xd4\x47\x5d\x12\xba\x09\xf5\xa4\x56\x7c\xa4\xc2\x47\x8d\x48\x6f\x65\x3a\x4d\xc3\xaa\x9d\x84\x52\x4f\xf6\x8b\x61\x05\x08\xce\x77\x13\x97\x57\x94\x4b\x94\x2a\x4d\x2e\xe4\xe5\x65\x51\xb1\xab\x24\x68\xcb\x13\xad\xf1\xa8\x71\xf3\xd8\xed\x3c\x2f\x39\x9d\xa6\xc6\xc2\x98\x0a\x52\xad\xd2\x8a\x50\x7a\x43\xaa\xdb\x42\xf7\xbd\xe3\xb3\x6b\x9b\x19\x34\xac\xc6\x2f\x05\xb0\xbe\xbd\x41\x91\x41\xf9\x0a\xd6\xbc\xa9\x8f\x46\x2e\x77\xd1\xed\x55\xd4\x93\x6a\xc1\xc5\xb9\x76\x3f\x38\x75\xbe\x8c\x8f\xc1\xc6\x00\x2d\x0d\xdb\x7c\x48\xf2\xa0\xe0\x5c\xb8\xe7\xe8\xd6\x44\x68\x0f\x99\xa3\x78\x61\xbb\x05\xd7\x70\x51\x19\x96\xa8\x5e\x2b\x25\x9a\x9b\x5e\x21\x9c\xe8\x0e\x1c\x8e\xa7\xe4\x6f\xe4\x7f\xf7\xec\x8b\x38\xe3\x21\x13\xa5\x44\x7a\x8b\x9b\x6f\x06\xfa\x08\xd7\x23\x7b\x06\x90\x87\x58\x13\x45\xfe\x7b\x10\x13\x0d\xab\x48\xe0\x3b\x88\xc0\xfe\x2e\x39\xfb\xe6\x60\x6d\x87\xaf\x77\xdb\x3b\xc6\xab\x91\x45\x78\x1d\xb8\xf5\x93\xe6\x95\x1b\x69\x81\xc8\x8f\x9f\x3e\xbc\xcf\x3b\x22\x24\xa6\xeb\xa1\x27\xa0\x22\xaa\x5a\x41\x8a\xa3\x41\x0d\x8c\x53\xcc\x51\x08\x2e\xd2\xcf\xe7\xfa\x01\x5a\x4d\x0f\x24\x6d\x03\x16\x5c\x68\x40\x30\xbd\xbf\xc5\xcd\x43\x01\xd3\x7b\x7c\xf8\xec\xa7\xc3\x41\x40\x26\xcf\x2b\x22\xdf\xe8\x99\x9b\x9a\xc9\xfb\x9e\xb4\x98\x1d\x3f\x48\xcf\x72\x23\xa5\xcf\xdf\xbc\xe2\x4c\x91\x86\x85\x8a\xbe\x78\x9d\xe0\xdd\xbf\x54\xbc\x5b\xbd\x15\x68\xff\x43\x89\xe6\x5f\x5d\xd9\xdb\x2c\x94\xd5\x65\x7e\x9a\x08\xcf\x75\xdf\x3f\x0f\xfd\x65\x76\xf6\x2b\xd1\x63\x32\xb2\xc3\x58\x7b\xf6\x0c\x02\x92\x84\x6c\x78\x8c\x0f\x87\x19\xf1\xb5\x9c\xd0\xd0\x8e\x90\xe2\x40\x26\xfd\xe0\x0f\x19\xb0\xf6\x75\x15\xd8\xf2\x35\x1e\xe1\x8b\x4d\x9b\x79\x8d\x7a\x79\x79\x2d\x04\xd9\xe4\x8d\x34\xcf\x50\xfc\x0c\xfc\x0f\x28\xc6\xff\x73\xd9\xd1\x46\xa5\x09\x0c\xc3\xd3\x99\x1a\x67\x4e\x15\x8f\x19\x5f\xd2\x2a\x17\xd8\x51\x52\x61\x7a\x7a\x71\xc9\x2e\xc5\xa5\xbc\x3a\x5d\xce\x20\x49\xa2\xed\x68\x6d\x0b\x93\x64\xd1\x90\x83\xa3\x04\xb7\xc1\x8e\x6d\x19\x8d\x2a\xa3\x35\x1e\xfe\x75\xfd\x3f\x49\x0a\xa9\xeb\xaf\xca\xc8\x4a\xb5\x34\xd5\x7f\xce\x0e\xdc\x04\xb6\xc3\x2a\x3d\x9e\x0e\x5a\xd4\x40\xe9\x59\x8d\x8b\x86\x61\xbd\xd7\xef\x31\xa4\x86\x31\x14\x6f\x7f\xfd\xe9\x9d\x3e\x4a\x92\x24\x3c\x08\x76\x57\xe1\xec\xe0\x02\x1b\x58\x28\x0d\xdc\x23\x53\xcb\x86\x14\x5d\x75\x3e\x22\xab\x51\xa4\x15\x6f\xbb\x19\xf0\x4e\xbf\x34\xd1\xd9\xf7\xc6\x9b\xdb\x15\xf5\x9d\xc2\xac\x0f\x87\x54\xe6\xe3\x85\x48\x44\x97\x9f\xc8\x4e\xdb\x05\x17\x13\xab\x79\xe4\xa6\x12\x19\x77\x31\x9b\x88\x9d\x11\xfd\x98\x8f\x6f\xbd\x2d\xfb\xcf\x70\x03\x24\x72\xc3\x2a\x38\xff\x82\x55\xca\x48\x8b\x33\xb3\x36\x64\x05\xfc\x2c\x78\xdb\x48\x7c\x69\x4b\x37\x30\xee\xe8\xd6\x64\x37\x26\x61\xc3\xf6\x28\x66\x30\xda\x9c\x85\x30\xb2\x03\x69\xfe\x81\x54\xb7\xc8\xea\x54\xa7\x89\xf7\x0a\x3d\x95\x66\x9a\x60\x48\x6a\x14\xf2\xac\x80\x0b\xf7\xd2\x7d\xbc\xba\xb8\x82\x2d\x7c\xc4\x8a\x8b\xfa\x65\xfc\x49\xdf\x14\xde\x5a\xbd\x49\x16\x96\xc9\xae\xf4\xfe\xb6\x75\xc3\xeb\xcd\xce\x59\x2f\x8b\xae\xbf\xa1\x4d\x95\x64\x86\x6f\xa7\x86\x70\x06\x15\x94\xee\xb9\xdd\xc2\x5d\xc3\x6a\x7e\x97\x53\x5e\x11\x1d\x42\xde\x11\xb5\xd2\x01\xcf\x47\x57\xe8\x28\xf1\x11\x97\xe7\x5f\xba\x34\xf9\x4d\x8f\x0d\xbf\xdf\x8f\x16\xb9\x32\xef\x7b\x85\xbe\x8f\x05\xfa\xf6\x8d\x56\xd3\x21\x4f\x46\x7a\x36\x64\x26\xbe\x4f\x3b\x19\x7b\x09\x77\x4e\x6c\xd7\x38\xf1\xbf\x98\x47\x28\xe1\xfe\x61\x97\x88\x96\x07\xda\x4b\x58\xb1\x7f\xc4\xd5\x04\x20\xa2\x76\x54\x82\x80\xdc\x2b\xaf\xe3\xfe\x1b\xcf\x6a\xc3\xef\x37\x84\xd2\xb4\x45\xb5\xe2\xb5\xc7\x08\x79\x9e\x13\xb1\x94\x05\x10\xb6\x09\x18\x4f\xd8\xe6\x49\xba\x93\x3b\xd2\x28\x47\xfa\x1b\x9b\xeb\x6b\x7d\x0f\x4a\x47\x94\xb3\x08\xd9\x0c\xac\x77\xef\xd5\x77\xc0\x9f\x01\x00\x00\xff\xff\x2a\x8a\x8b\xe7\x55\x12\x00\x00") func libsuiUtilsTsBytes() ([]byte, error) { return bindataRead( @@ -917,7 +917,7 @@ func libsuiUtilsTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/utils.ts", size: 4506, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "libsui/utils.ts", size: 4693, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -937,7 +937,7 @@ func libsuiYaoTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -957,7 +957,7 @@ func publicIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -977,7 +977,7 @@ func uiIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -997,7 +997,7 @@ func xgenSetupIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/setup/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "xgen/setup/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1017,7 +1017,7 @@ func xgenV09IndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1037,7 +1037,7 @@ func xgenV10IndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1057,7 +1057,7 @@ func xgenV10Layouts__indexAsyncJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1077,7 +1077,7 @@ func xgenV10UmiJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1097,7 +1097,7 @@ func yaoApisImportHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1696, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1696, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1117,7 +1117,7 @@ func yaoApisStorageHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1046, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1046, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1137,7 +1137,7 @@ func yaoDataIcons404Png() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1157,7 +1157,7 @@ func yaoDataIconsIconIcns() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1177,7 +1177,7 @@ func yaoDataIconsIconIco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1197,7 +1197,7 @@ func yaoDataIconsIconPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1217,7 +1217,7 @@ func yaoDataIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1237,7 +1237,7 @@ func yaoFieldsModelTransJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1257,7 +1257,7 @@ func yaoLangsEnUsJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1277,7 +1277,7 @@ func yaoLangsZhCnGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1297,7 +1297,7 @@ func yaoLangsZhCnLoginsAdminLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1317,7 +1317,7 @@ func yaoLangsZhCnLoginsUserLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1337,7 +1337,7 @@ func yaoLangsZhHkGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1357,7 +1357,7 @@ func yaoLangsZhHkLoginsAdminLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1377,7 +1377,7 @@ func yaoLangsZhHkLoginsUserLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1397,7 +1397,7 @@ func yaoReleaseAppYaz() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1722742809, 0)} + info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1722817645, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/sui/api/api.go b/sui/api/api.go index 74522334..585e39b2 100644 --- a/sui/api/api.go +++ b/sui/api/api.go @@ -30,231 +30,236 @@ var dsl = []byte(` "in": [":context", "$param.route", ":payload"], "out": { "status": 200, "type": "application/json" } }, - { - "path": "/:id/setting", - "method": "GET", - "process": "sui.Setting", - "in": ["$param.id"], - "out": { "status": 200, "type": "application/json" } - }, + // + // + // Remove the following code + // Developer can create the API by using the process of sui.* directly + // + // { + // "path": "/:id/setting", + // "method": "GET", + // "process": "sui.Setting", + // "in": ["$param.id"], + // "out": { "status": 200, "type": "application/json" } + // }, - { - "path": "/:id/template", - "method": "GET", - "process": "sui.Template.Get", - "in": ["$param.id"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/template/:template_id", - "method": "GET", - "process": "sui.Template.Find", - "in": ["$param.id", "$param.template_id"], - "out": { "status": 200, "type": "application/json" } - }, + // { + // "path": "/:id/template", + // "method": "GET", + // "process": "sui.Template.Get", + // "in": ["$param.id"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/template/:template_id", + // "method": "GET", + // "process": "sui.Template.Find", + // "in": ["$param.id", "$param.template_id"], + // "out": { "status": 200, "type": "application/json" } + // }, - { - "path": "/:id/locale/:template_id", - "method": "GET", - "process": "sui.Locale.Get", - "in": ["$param.id", "$param.template_id"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/theme/:template_id", - "method": "GET", - "process": "sui.Theme.Get", - "in": ["$param.id", "$param.template_id"], - "out": { "status": 200, "type": "application/json" } - }, + // { + // "path": "/:id/locale/:template_id", + // "method": "GET", + // "process": "sui.Locale.Get", + // "in": ["$param.id", "$param.template_id"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/theme/:template_id", + // "method": "GET", + // "process": "sui.Theme.Get", + // "in": ["$param.id", "$param.template_id"], + // "out": { "status": 200, "type": "application/json" } + // }, - { - "path": "/:id/block/:template_id", - "method": "GET", - "process": "sui.Block.Get", - "in": ["$param.id", "$param.template_id"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/block/export/:template_id", - "method": "GET", - "process": "sui.Block.Export", - "in": ["$param.id", "$param.template_id"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/block/:template_id/:block_id", - "guard": "query-jwt", - "method": "GET", - "process": "sui.Block.Find", - "in": ["$param.id", "$param.template_id", "$param.block_id"], - "out": { "status": 200, "type": "text/javascript" } - },{ - "path": "/:id/block/:template_id/:block_id/media", - "guard": "query-jwt", - "method": "GET", - "process": "sui.Block.Media", - "in": ["$param.id", "$param.template_id", "$param.block_id"], - "out": { - "status": 200, - "body": "?:content", - "headers": { "Content-Type": "?:type"} - } - }, + // { + // "path": "/:id/block/:template_id", + // "method": "GET", + // "process": "sui.Block.Get", + // "in": ["$param.id", "$param.template_id"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/block/export/:template_id", + // "method": "GET", + // "process": "sui.Block.Export", + // "in": ["$param.id", "$param.template_id"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/block/:template_id/:block_id", + // "guard": "query-jwt", + // "method": "GET", + // "process": "sui.Block.Find", + // "in": ["$param.id", "$param.template_id", "$param.block_id"], + // "out": { "status": 200, "type": "text/javascript" } + // },{ + // "path": "/:id/block/:template_id/:block_id/media", + // "guard": "query-jwt", + // "method": "GET", + // "process": "sui.Block.Media", + // "in": ["$param.id", "$param.template_id", "$param.block_id"], + // "out": { + // "status": 200, + // "body": "?:content", + // "headers": { "Content-Type": "?:type"} + // } + // }, - { - "path": "/:id/component/:template_id", - "method": "GET", - "process": "sui.Component.Get", - "in": ["$param.id", "$param.template_id"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/component/:template_id/:component_id", - "guard": "query-jwt", - "method": "GET", - "process": "sui.Component.Find", - "in": ["$param.id", "$param.template_id", "$param.component_id"], - "out": { "status": 200, "type": "text/javascript" } - }, + // { + // "path": "/:id/component/:template_id", + // "method": "GET", + // "process": "sui.Component.Get", + // "in": ["$param.id", "$param.template_id"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/component/:template_id/:component_id", + // "guard": "query-jwt", + // "method": "GET", + // "process": "sui.Component.Find", + // "in": ["$param.id", "$param.template_id", "$param.component_id"], + // "out": { "status": 200, "type": "text/javascript" } + // }, - { - "path": "/:id/page/:template_id/*route", - "method": "GET", - "process": "sui.Page.Get", - "in": ["$param.id", "$param.template_id", "$param.route"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/page/tree/:template_id/*route", - "method": "GET", - "process": "sui.Page.Tree", - "in": ["$param.id", "$param.template_id", "$param.route"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/page/save/:template_id/*route", - "method": "POST", - "process": "sui.Page.Save", - "in": ["$param.id", "$param.template_id", "$param.route", ":context"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/page/temp/:template_id/*route", - "method": "POST", - "process": "sui.Page.SaveTemp", - "in": ["$param.id", "$param.template_id", "$param.route", ":context"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/page/create/:template_id/*route", - "method": "POST", - "process": "sui.Page.Create", - "in": ["$param.id", "$param.template_id", "$param.route", ":context", ":payload"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/page/duplicate/:template_id/*route", - "method": "POST", - "process": "sui.Page.Duplicate", - "in": ["$param.id", "$param.template_id", "$param.route", ":payload"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/page/rename/:template_id/*route", - "method": "POST", - "process": "sui.Page.Rename", - "in": ["$param.id", "$param.template_id", "$param.route", ":payload"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/page/exist/:template_id/*route", - "method": "GET", - "process": "sui.Page.Exist", - "in": ["$param.id", "$param.template_id", "$param.route"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/page/remove/:template_id/*route", - "method": "POST", - "process": "sui.Page.Remove", - "in": ["$param.id", "$param.template_id", "$param.route"], - "out": { "status": 200, "type": "application/json" } - }, + // { + // "path": "/:id/page/:template_id/*route", + // "method": "GET", + // "process": "sui.Page.Get", + // "in": ["$param.id", "$param.template_id", "$param.route"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/page/tree/:template_id/*route", + // "method": "GET", + // "process": "sui.Page.Tree", + // "in": ["$param.id", "$param.template_id", "$param.route"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/page/save/:template_id/*route", + // "method": "POST", + // "process": "sui.Page.Save", + // "in": ["$param.id", "$param.template_id", "$param.route", ":context"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/page/temp/:template_id/*route", + // "method": "POST", + // "process": "sui.Page.SaveTemp", + // "in": ["$param.id", "$param.template_id", "$param.route", ":context"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/page/create/:template_id/*route", + // "method": "POST", + // "process": "sui.Page.Create", + // "in": ["$param.id", "$param.template_id", "$param.route", ":context", ":payload"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/page/duplicate/:template_id/*route", + // "method": "POST", + // "process": "sui.Page.Duplicate", + // "in": ["$param.id", "$param.template_id", "$param.route", ":payload"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/page/rename/:template_id/*route", + // "method": "POST", + // "process": "sui.Page.Rename", + // "in": ["$param.id", "$param.template_id", "$param.route", ":payload"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/page/exist/:template_id/*route", + // "method": "GET", + // "process": "sui.Page.Exist", + // "in": ["$param.id", "$param.template_id", "$param.route"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/page/remove/:template_id/*route", + // "method": "POST", + // "process": "sui.Page.Remove", + // "in": ["$param.id", "$param.template_id", "$param.route"], + // "out": { "status": 200, "type": "application/json" } + // }, - { - "path": "/:id/editor/render/:template_id/*route", - "method": "GET", - "process": "sui.Editor.Render", - "in": ["$param.id", "$param.template_id", "$param.route", ":query"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/editor/render/:template_id/*route", - "method": "POST", - "process": "sui.Editor.RenderAfterSaveTemp", - "in": ["$param.id", "$param.template_id", "$param.route", ":context", ":query"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/editor/:kind/source/:template_id/*route", - "method": "GET", - "process": "sui.Editor.Source", - "in": ["$param.id", "$param.template_id", "$param.route", "$param.kind", ":query"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/editor/:kind/source/:template_id/*route", - "method": "POST", - "process": "sui.Editor.SourceAfterSaveTemp", - "in": ["$param.id", "$param.template_id", "$param.route", ":context", "$param.kind", ":query"], - "out": { "status": 200, "type": "application/json" } - }, + // { + // "path": "/:id/editor/render/:template_id/*route", + // "method": "GET", + // "process": "sui.Editor.Render", + // "in": ["$param.id", "$param.template_id", "$param.route", ":query"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/editor/render/:template_id/*route", + // "method": "POST", + // "process": "sui.Editor.RenderAfterSaveTemp", + // "in": ["$param.id", "$param.template_id", "$param.route", ":context", ":query"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/editor/:kind/source/:template_id/*route", + // "method": "GET", + // "process": "sui.Editor.Source", + // "in": ["$param.id", "$param.template_id", "$param.route", "$param.kind", ":query"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/editor/:kind/source/:template_id/*route", + // "method": "POST", + // "process": "sui.Editor.SourceAfterSaveTemp", + // "in": ["$param.id", "$param.template_id", "$param.route", ":context", "$param.kind", ":query"], + // "out": { "status": 200, "type": "application/json" } + // }, - { - "path": "/:id/asset/:template_id/@assets/*path", - "method": "GET", - "guard": "-", - "process": "sui.Template.Asset", - "in": ["$param.id", "$param.template_id", "$param.path", "$query.w", "$query.h"], - "out": { - "status": 200, - "body": "?:content", - "headers": { "Content-Type": "?:type"} - } - },{ - "path": "/:id/asset/:template_id/upload", - "method": "POST", - "process": "sui.Template.AssetUpload", - "in": ["$param.id", "$param.template_id", ":context"], - "out": { "status": 200, "type": "application/json" } - },{ - "path": "/:id/asset/:template_id/@pages/*path", - "guard": "query-jwt", - "method": "GET", - "process": "sui.Page.Asset", - "in": ["$param.id", "$param.template_id", "$param.path", "$query.w", "$query.h"], - "out": { - "status": 200, - "body": "?:content", - "headers": { "Content-Type": "?:type"} - } - }, + // { + // "path": "/:id/asset/:template_id/@assets/*path", + // "method": "GET", + // "guard": "-", + // "process": "sui.Template.Asset", + // "in": ["$param.id", "$param.template_id", "$param.path", "$query.w", "$query.h"], + // "out": { + // "status": 200, + // "body": "?:content", + // "headers": { "Content-Type": "?:type"} + // } + // },{ + // "path": "/:id/asset/:template_id/upload", + // "method": "POST", + // "process": "sui.Template.AssetUpload", + // "in": ["$param.id", "$param.template_id", ":context"], + // "out": { "status": 200, "type": "application/json" } + // },{ + // "path": "/:id/asset/:template_id/@pages/*path", + // "guard": "query-jwt", + // "method": "GET", + // "process": "sui.Page.Asset", + // "in": ["$param.id", "$param.template_id", "$param.path", "$query.w", "$query.h"], + // "out": { + // "status": 200, + // "body": "?:content", + // "headers": { "Content-Type": "?:type"} + // } + // }, - { - "path": "/:id/media/:driver/search", - "method": "GET", - "process": "sui.Media.Search", - "in": ["$param.id", "$param.driver", ":query"], - "out": { "status": 200, "type": "application/json" } - }, + // { + // "path": "/:id/media/:driver/search", + // "method": "GET", + // "process": "sui.Media.Search", + // "in": ["$param.id", "$param.driver", ":query"], + // "out": { "status": 200, "type": "application/json" } + // }, - { - "path": "/:id/preview/:template_id/*route", - "guard": "query-jwt", - "method": "GET", - "process": "sui.Preview.Render", - "in": ["$param.id", "$param.template_id", "$param.route", "$header.Referer"], - "out": {"status": 200, "type": "text/html; charset=utf-8"} - }, + // { + // "path": "/:id/preview/:template_id/*route", + // "guard": "query-jwt", + // "method": "GET", + // "process": "sui.Preview.Render", + // "in": ["$param.id", "$param.template_id", "$param.route", "$header.Referer"], + // "out": {"status": 200, "type": "text/html; charset=utf-8"} + // }, - { - "path": "/:id/build/:template_id", - "method": "POST", - "process": "sui.Build.All", - "in": ["$param.id", "$param.template_id", ":payload"], - "out": {"status": 200} - },{ - "path": "/:id/build/:template_id/*route", - "method": "POST", - "process": "sui.Build.Page", - "in": ["$param.id", "$param.template_id", "$param.route", ":payload"], - "out": {"status": 200} - } + // { + // "path": "/:id/build/:template_id", + // "method": "POST", + // "process": "sui.Build.All", + // "in": ["$param.id", "$param.template_id", ":payload"], + // "out": {"status": 200} + // },{ + // "path": "/:id/build/:template_id/*route", + // "method": "POST", + // "process": "sui.Build.Page", + // "in": ["$param.id", "$param.template_id", "$param.route", ":payload"], + // "out": {"status": 200} + // } ], } `) diff --git a/sui/api/guards.go b/sui/api/guards.go index 7a6e01e2..9d90ca97 100644 --- a/sui/api/guards.go +++ b/sui/api/guards.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "io" + "strconv" "strings" "github.com/gin-gonic/gin" @@ -157,7 +158,7 @@ func (r *Request) scriptGuardExec(c *gin.Context, name string, args []interface{ script, err := v8.Select(id) if err != nil { - c.JSON(403, gin.H{"code": 403, "message": fmt.Sprintf("Guard: %s %s", name, err.Error())}) + c.JSON(403, gin.H{"code": 403, "message": err.Error()}) c.Abort() return err } @@ -394,7 +395,29 @@ func (r *Request) scriptGuardExec(c *gin.Context, name string, args []interface{ _, err = ctx.Call(method, args...) if err != nil { - c.JSON(403, gin.H{"code": 403, "message": fmt.Sprintf("Guard: %s %s", name, err.Error())}) + + message := err.Error() + if strings.HasPrefix(message, "Exception|") { + parts := strings.Split(message, ": ") + + fmt.Println(parts) + + if len(parts) > 1 { + codestr := strings.TrimPrefix(parts[0], "Exception|") + message := parts[1] + code := 403 + if codestr != "" { + if v, err := strconv.Atoi(codestr); err == nil { + code = v + } + } + c.JSON(code, gin.H{"code": code, "message": message}) + c.Abort() + return err + } + } + + c.JSON(403, gin.H{"code": 403, "message": message}) c.Abort() return err } diff --git a/sui/api/run.go b/sui/api/run.go index c288f672..9aff5e50 100644 --- a/sui/api/run.go +++ b/sui/api/run.go @@ -2,14 +2,24 @@ package api import ( "path/filepath" + "strings" "github.com/gin-gonic/gin" + jsoniter "github.com/json-iterator/go" + "github.com/yaoapp/gou/application" "github.com/yaoapp/gou/process" "github.com/yaoapp/kun/exception" "github.com/yaoapp/kun/log" "github.com/yaoapp/yao/sui/core" ) +var configs = map[string]*core.PageConfig{} +var chConfig = make(chan *core.PageConfig, 1) + +func init() { + go configWriter() +} + // Run the backend script, with Api prefix method func Run(process *process.Process) interface{} { process.ValidateArgNums(3) @@ -38,17 +48,6 @@ func Run(process *process.Process) interface{} { return nil } - if payload["page"] == nil { - exception.New("The page is required", 400).Throw() - return nil - } - - page, ok := payload["page"].(string) - if !ok { - exception.New("The page must be a string", 400).Throw() - return nil - } - args := []interface{}{} if payload["args"] != nil { args, ok = payload["args"].([]interface{}) @@ -58,41 +57,39 @@ func Run(process *process.Process) interface{} { } } - ctx.Request.URL.Path = page r, _, err := NewRequestContext(ctx) if err != nil { exception.Err(err, 500).Throw() return nil } - var c *core.Cache = nil - if !r.Request.DisableCache() { - c = core.GetCache(r.File) + // Load the script + file := filepath.Join("/public", route) + + // Get the page config + cfg, err := getPageConfig(file, r.Request.DisableCache()) + if err != nil { + log.Error("Can't load the page config (%s), %s", route, err.Error()) + exception.New("Can't load the page config (%s), get more information from the log.", 500, route).Throw() + return nil } - if c == nil { - c, _, err = r.MakeCache() + // Config and guard + prefix := "Api" + if cfg != nil { + _, err := r.apiGuard(method, cfg.API) if err != nil { - log.Error("[SUI] Can't make cache, %s %s error: %s", route, method, err.Error()) - exception.New("Can't make cache, the route and method is correct, get more information from the log.", 500).Throw() + log.Error("Guard error: %s", err.Error()) + r.context.Done() return nil } + + // Custom prefix + if cfg.API != nil && cfg.API.Prefix != "" { + prefix = cfg.API.Prefix + } } - // Guard the page - code, err := r.Guard(c) - if err != nil { - exception.Err(err, code).Throw() - return nil - } - - if c == nil { - exception.New("Cache not found", 500).Throw() - return nil - } - - // Load the script - file := filepath.Join("/public", route) script, err := core.LoadScript(file, r.Request.DisableCache()) if err != nil { exception.New("Can't load the script (%s), get more information from the log.", 500, route).Throw() @@ -106,18 +103,17 @@ func Run(process *process.Process) interface{} { scriptCtx, err := script.NewContext(process.Sid, nil) if err != nil { - exception.Err(err, 500).Throw() return nil } defer scriptCtx.Close() global := scriptCtx.Global() - if !global.Has("Api" + method) { + if !global.Has(prefix + method) { exception.New("Method %s not found", 500, method).Throw() return nil } - res, err := scriptCtx.Call("Api"+method, args...) + res, err := scriptCtx.Call(prefix+method, args...) if err != nil { exception.Err(err, 500).Throw() return nil @@ -125,3 +121,78 @@ func Run(process *process.Process) interface{} { return res } + +// getPageConfig get the page config +func getPageConfig(file string, disableCache ...bool) (*core.PageConfig, error) { + + // LOAD FROM CACHE + base := strings.TrimSuffix(strings.TrimSuffix(file, ".sui"), ".jit") + if disableCache == nil || !disableCache[0] { + if cfg, has := configs[base]; has { + return cfg, nil + } + } + + file = base + ".cfg" + if exist, _ := application.App.Exists(file); !exist { + return nil, nil + } + + source, err := application.App.Read(file) + if err != nil { + return nil, err + } + + cfg := core.PageConfig{} + err = jsoniter.Unmarshal(source, &cfg) + if err != nil { + return nil, err + } + + // Save to cache + go func() { chConfig <- &cfg }() + return &cfg, nil +} + +func (r *Request) apiGuard(method string, api *core.PageAPI) (int, error) { + if api == nil { + return 200, nil + } + + guard := api.DefaultGuard + if api.Guards != nil { + if g, has := api.Guards[method]; has { + guard = g + } + } + + if guard == "" || guard == "-" { + return 200, nil + } + + // Build in guard + if guard, has := Guards[guard]; has { + err := guard(r) + if err != nil { + return 403, err + } + return 200, nil + } + + // Developer custom guard + err := r.processGuard(guard) + if err != nil { + return 403, err + } + + return 200, nil +} + +func configWriter() { + for { + select { + case config := <-chConfig: + configs[config.Root] = config + } + } +} diff --git a/sui/core/page.go b/sui/core/page.go index 8e36439a..ca78498d 100644 --- a/sui/core/page.go +++ b/sui/core/page.go @@ -61,16 +61,17 @@ func (page *Page) GetConfig() *PageConfig { // ExportConfig export the config func (page *Page) ExportConfig() string { if page.Config == nil { - return fmt.Sprintf(`{"cache_store": "%s"}`, page.CacheStore) + return fmt.Sprintf(`{"cacheStore": "%s"}`, page.CacheStore) } config, err := jsoniter.MarshalToString(map[string]interface{}{ - "title": page.Config.Title, - "guard": page.Config.Guard, - "cache_store": page.CacheStore, - "cache": page.Config.Cache, - "data_cache": page.Config.DataCache, - "root": page.Root, + "title": page.Config.Title, + "guard": page.Config.Guard, + "cacheStore": page.CacheStore, + "cache": page.Config.Cache, + "dataCache": page.Config.DataCache, + "api": page.Config.API, + "root": page.Root, }) if err != nil { diff --git a/sui/core/types.go b/sui/core/types.go index 54709b13..24a6dd0d 100644 --- a/sui/core/types.go +++ b/sui/core/types.go @@ -378,9 +378,10 @@ type PageSetting struct { CacheStore string `json:"cache_store,omitempty"` Cache int `json:"cache,omitempty"` Root string `json:"root,omitempty"` - DataCache int `json:"data_cache,omitempty"` + DataCache int `json:"dataCache,omitempty"` Description string `json:"description,omitempty"` SEO *PageSEO `json:"seo,omitempty"` + API *PageAPI `json:"api,omitempty"` } // PageConfigRendered is the struct for the page config rendered @@ -389,6 +390,13 @@ type PageConfigRendered struct { Link string `json:"link,omitempty"` } +// PageAPI is the struct for the page api +type PageAPI struct { + Prefix string `json:"prefix,omitempty"` + DefaultGuard string `json:"defaultGuard,omitempty"` + Guards map[string]string `json:"guards,omitempty"` +} + // PageSEO is the struct for the page seo type PageSEO struct { Title string `json:"title,omitempty"` diff --git a/sui/libsui/index.ts b/sui/libsui/index.ts index 2e0a0f1d..e50e11f3 100644 --- a/sui/libsui/index.ts +++ b/sui/libsui/index.ts @@ -221,16 +221,18 @@ function __sui_store(elm) { async function __sui_backend_call( route: string, - page: string, + headers: [string, string][] | Record | Headers, method: string, ...args: any ): Promise { const url = `/api/__yao/sui/v1/run${route}`; - const headers = { + headers = { "Content-Type": "application/json", + Referer: window.location.href, Cookie: document.cookie, + ...headers, }; - const payload = { method, args, page }; + const payload = { method, args }; try { const body = JSON.stringify(payload); const response = await fetch(url, { method: "POST", headers, body: body }); diff --git a/sui/libsui/utils.ts b/sui/libsui/utils.ts index 88aee051..b36c0944 100644 --- a/sui/libsui/utils.ts +++ b/sui/libsui/utils.ts @@ -176,25 +176,30 @@ class __Render { } } -function $Backend(route?: string) { - const page = window.location.pathname; +function $Backend( + route?: string, + headers?: [string, string][] | Record | Headers +) { const root = document.body.getAttribute("s:public") || "/"; - route = route || page; + route = route || window.location.pathname; const re = new RegExp("^" + root); route = root + route.replace(re, ""); - return new __Backend(route, page); + return new __Backend(route, headers); } class __Backend { route = ""; - page = ""; - constructor(route: string, page: string) { + headers: [string, string][] | Record | Headers = {}; + constructor( + route: string, + headers: [string, string][] | Record | Headers = {} + ) { this.route = route; - this.page = page; + this.headers = headers; } async Call(method: string, ...args: any): Promise { // @ts-ignore - return await __sui_backend_call(this.route, this.page, method, ...args); + return await __sui_backend_call(this.route, this.headers, method, ...args); } }