diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 59aedbf83..fcec29bf1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,33 +79,33 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: upload server darwin amd64 artifact - uses: softprops/action-gh-release@v1 - with: - files: /home/runner/work/smart-home/smart-home/server-darwin-10.6-amd64 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: upload server darwin arm64 artifact - uses: softprops/action-gh-release@v1 - with: - files: /home/runner/work/smart-home/smart-home/server-darwin-10.6-arm64 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: upload cli darwin arm64 artifact - uses: softprops/action-gh-release@v1 - with: - files: /home/runner/work/smart-home/smart-home/cli-darwin-10.6-arm64 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: upload cli darwin amd64 artifact - uses: softprops/action-gh-release@v1 - with: - files: /home/runner/work/smart-home/smart-home/cli-darwin-10.6-amd64 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# - name: upload server darwin amd64 artifact +# uses: softprops/action-gh-release@v1 +# with: +# files: /home/runner/work/smart-home/smart-home/server-darwin-10.6-amd64 +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# +# - name: upload server darwin arm64 artifact +# uses: softprops/action-gh-release@v1 +# with: +# files: /home/runner/work/smart-home/smart-home/server-darwin-10.6-arm64 +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# +# - name: upload cli darwin arm64 artifact +# uses: softprops/action-gh-release@v1 +# with: +# files: /home/runner/work/smart-home/smart-home/cli-darwin-10.6-arm64 +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# +# - name: upload cli darwin amd64 artifact +# uses: softprops/action-gh-release@v1 +# with: +# files: /home/runner/work/smart-home/smart-home/cli-darwin-10.6-amd64 +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: upload cli linux amd64 artifact uses: softprops/action-gh-release@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6890a8e61..a8dd82921 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -85,5 +85,5 @@ jobs: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - name: trying to build - id: build-all - run: make build_server build_cli build_structure build_common_structure build_archive docker_image + id: build-linux + run: make build_linux build_structure build_common_structure build_archive docker_image diff --git a/Makefile b/Makefile index 6c334f5dd..55a8bc0a7 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,7 @@ .PHONY: get_deps fmt .DEFAULT_GOAL := build -build: build_public build_server build_cli tests: lint test -all: build build_structure build_common_structure build_archive docker_image +all: build_public build_linux build_structure build_common_structure build_archive docker_image deploy: docker_image_upload EXEC=server @@ -100,21 +99,34 @@ svgo: DIR=${ROOT}/data/icons/* cd ${ROOT} && svgo ${DIR} --enable=inlineStyles --config '{ "plugins": [ { "inlineStyles": { "onlyMatchedOnce": false } }] }' --pretty -build_server: - @echo MARK: build server +build_linux: + @echo MARK: build linux server ${GO_BUILD_ENV} GOOS=linux GOARCH=amd64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-linux-amd64 ${GO_BUILD_ENV} GOOS=linux GOARCH=arm GOARM=7 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-linux-arm-7 ${GO_BUILD_ENV} GOOS=linux GOARCH=arm GOARM=6 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-linux-arm-6 ${GO_BUILD_ENV} GOOS=linux GOARCH=arm GOARM=5 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-linux-arm-5 - ${GO_BUILD_ENV} GOOS=darwin GOARCH=amd64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-darwin-10.6-amd64 - ${GO_BUILD_ENV} GOOS=darwin GOARCH=arm64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-darwin-10.6-arm64 -build_cli: @echo MARK: build cli cd ${ROOT}/cmd/cli && ${GO_BUILD_ENV} GOOS=linux GOARCH=amd64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${CLI}-linux-amd64 + +build_darwin: + @echo MARK: build darwin server + CGO_ENABLED=1 GOOS=darwin GOARCH=amd64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-darwin-10.6-amd64 + CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-darwin-10.6-arm64 + + @echo MARK: build cli cd ${ROOT}/cmd/cli && ${GO_BUILD_ENV} GOOS=darwin GOARCH=amd64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${CLI}-darwin-10.6-amd64 cd ${ROOT}/cmd/cli && ${GO_BUILD_ENV} GOOS=darwin GOARCH=arm64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${CLI}-darwin-10.6-arm64 +build_windows: + @echo MARK: build windows server + CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-windows-amd64 + CGO_ENABLED=1 GOOS=windows GOARCH=arm64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${EXEC}-windows-arm64 + + @echo MARK: build cli + cd ${ROOT}/cmd/cli && ${GO_BUILD_ENV} GOOS=windows GOARCH=amd64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${CLI}-windows-amd64 + cd ${ROOT}/cmd/cli && ${GO_BUILD_ENV} GOOS=windows GOARCH=arm64 go build ${GO_BUILD_FLAGS} ${GO_BUILD_TAGS} -o ${ROOT}/${CLI}-windows-arm64 + build_public: @echo MARK: build public echo -e "node version.\n" && \ @@ -149,15 +161,8 @@ build_structure: cp ${ROOT}/CONTRIBUTING.md ${SERVER_DIR} cp ${ROOT}/bin/server-installer.sh ${SERVER_DIR} chmod +x ${SERVER_DIR}/data/scripts/ping.sh - cp ${ROOT}/${EXEC}-linux-amd64 ${SERVER_DIR} - cp ${ROOT}/${EXEC}-linux-arm-7 ${SERVER_DIR} - cp ${ROOT}/${EXEC}-linux-arm-6 ${SERVER_DIR} - cp ${ROOT}/${EXEC}-linux-arm-5 ${SERVER_DIR} - cp ${ROOT}/${EXEC}-darwin-10.6-amd64 ${SERVER_DIR} - cp ${ROOT}/${EXEC}-darwin-10.6-arm64 ${SERVER_DIR} - cp ${ROOT}/${CLI}-darwin-10.6-amd64 ${SERVER_DIR} - cp ${ROOT}/${CLI}-darwin-10.6-arm64 ${SERVER_DIR} - cp ${ROOT}/${CLI}-linux-amd64 ${SERVER_DIR} + cp ${ROOT}/${EXEC}-* ${SERVER_DIR} + cp ${ROOT}/${CLI}-* ${SERVER_DIR} cp ${ROOT}/bin/server ${SERVER_DIR} build_common_structure: @@ -228,15 +233,8 @@ docker_image_upload: clean: @echo MARK: clean rm -rf ${SERVER_DIR} - rm -f ${ROOT}/${EXEC}-linux-amd64 - rm -f ${ROOT}/${EXEC}-linux-arm-7 - rm -f ${ROOT}/${EXEC}-linux-arm-6 - rm -f ${ROOT}/${EXEC}-linux-arm-5 - rm -f ${ROOT}/${EXEC}-darwin-10.6-amd64 - rm -f ${ROOT}/${EXEC}-darwin-10.6-arm64 - rm -f ${ROOT}/${CLI}-linux-amd64 - rm -f ${ROOT}/${CLI}-darwin-10.6-amd64 - rm -f ${ROOT}/${CLI}-darwin-10.6-arm64 + rm -f ${ROOT}/${EXEC}-* + rm -f ${ROOT}/${CLI}-* rm -f ${HOME}/${ARCHIVE} front_client: diff --git a/Makefile.local b/Makefile.local index 7ce6c863c..574fa9519 100644 --- a/Makefile.local +++ b/Makefile.local @@ -24,7 +24,7 @@ BUILD_NUMBER_VALUE=$(shell echo ${TRAVIS_BUILD_NUMBER}) RELEASE_VERSION ?= v0.1.0 IMAGE=smart-home-${EXEC} -SERVER ?= 192.168.43.127 +SERVER ?= 192.168.0.170 DOCKER_ACCOUNT ?= ${SERVER}:5000 DOCKER_IMAGE_VER=${DOCKER_ACCOUNT}/${IMAGE}:${RELEASE_VERSION} DOCKER_IMAGE_LATEST=${DOCKER_ACCOUNT}/${IMAGE}:latest diff --git a/adaptors/plugin.go b/adaptors/plugin.go index 3fc5a73d6..c3d0a287a 100644 --- a/adaptors/plugin.go +++ b/adaptors/plugin.go @@ -33,7 +33,7 @@ type IPlugin interface { CreateOrUpdate(ctx context.Context, ver *m.Plugin) error Update(ctx context.Context, plugin *m.Plugin) error Delete(ctx context.Context, pluginId string) error - List(ctx context.Context, limit, offset int64, orderBy, sort string, onlyEnabled bool) (list []*m.Plugin, total int64, err error) + List(ctx context.Context, limit, offset int64, orderBy, sort string, enabled, triggers *bool) (list []*m.Plugin, total int64, err error) Search(ctx context.Context, query string, limit, offset int64) (list []*m.Plugin, total int64, err error) GetByName(ctx context.Context, name string) (ver *m.Plugin, err error) fromDb(dbVer *db.Plugin) (plugin *m.Plugin) @@ -80,9 +80,9 @@ func (p *Plugin) Delete(ctx context.Context, name string) (err error) { } // List ... -func (p *Plugin) List(ctx context.Context, limit, offset int64, orderBy, sort string, onlyEnabled bool) (list []*m.Plugin, total int64, err error) { +func (p *Plugin) List(ctx context.Context, limit, offset int64, orderBy, sort string, enabled, triggers *bool) (list []*m.Plugin, total int64, err error) { var dbList []*db.Plugin - if dbList, total, err = p.table.List(ctx, int(limit), int(offset), orderBy, sort, onlyEnabled); err != nil { + if dbList, total, err = p.table.List(ctx, int(limit), int(offset), orderBy, sort, enabled, triggers); err != nil { return } @@ -123,11 +123,12 @@ func (p *Plugin) GetByName(ctx context.Context, name string) (ver *m.Plugin, err func (p *Plugin) fromDb(dbVer *db.Plugin) (ver *m.Plugin) { ver = &m.Plugin{ - Name: dbVer.Name, - Version: dbVer.Version, - Enabled: dbVer.Enabled, - System: dbVer.System, - Actor: dbVer.Actor, + Name: dbVer.Name, + Version: dbVer.Version, + Enabled: dbVer.Enabled, + System: dbVer.System, + Actor: dbVer.Actor, + Triggers: dbVer.Triggers, } // deserialize settings @@ -141,11 +142,12 @@ func (p *Plugin) fromDb(dbVer *db.Plugin) (ver *m.Plugin) { func (p *Plugin) toDb(ver *m.Plugin) (dbVer *db.Plugin) { dbVer = &db.Plugin{ - Name: ver.Name, - Version: ver.Version, - Enabled: ver.Enabled, - System: ver.System, - Actor: ver.Actor, + Name: ver.Name, + Version: ver.Version, + Enabled: ver.Enabled, + System: ver.System, + Actor: ver.Actor, + Triggers: ver.Triggers, } // serialize settings diff --git a/api/api.swagger3.yaml b/api/api.swagger3.yaml index d5cfd9f0f..748a3c845 100644 --- a/api/api.swagger3.yaml +++ b/api/api.swagger3.yaml @@ -2505,6 +2505,11 @@ paths: required: true schema: type: string + - name: note + in: query + required: false + schema: + type: string - name: lang in: query required: false @@ -2536,6 +2541,16 @@ paths: - $ref: '#/components/parameters/listSort' - $ref: '#/components/parameters/listPage' - $ref: '#/components/parameters/listLimit' + - name: triggers + in: query + required: false + schema: + type: boolean + - name: enabled + in: query + required: false + schema: + type: boolean responses: 200: description: A successful response. @@ -6203,8 +6218,6 @@ components: type: array items: type: string - script: - $ref: '#/components/schemas/apiScript' scriptId: type: integer format: int64 @@ -6309,7 +6322,7 @@ components: apiPluginOptionsResult: type: object required: [ triggers, actors, actorCustomAttrs, actorAttrs, actorCustomActions, actorActions, actorCustomStates, - actorStates, actorCustomSetts, actorSetts, setts ] + actorStates, actorCustomSetts, actorSetts, setts, triggerParams ] properties: triggers: type: boolean @@ -6343,6 +6356,24 @@ components: type: object additionalProperties: $ref: '#/components/schemas/apiAttribute' + triggerParams: + $ref: '#/components/schemas/apiTriggerParams' + apiTriggerParams: + type: object + required: [script, entities, attributes, required] + properties: + required: + type: array + items: + type: string + script: + type: boolean + entities: + type: boolean + attributes: + type: object + additionalProperties: + $ref: '#/components/schemas/apiAttribute' apiPluginOptionsResultEntityAction: type: object required: [ name, description, imageUrl, icon ] diff --git a/api/controllers/plugin.go b/api/controllers/plugin.go index 852704701..5cbcda59d 100644 --- a/api/controllers/plugin.go +++ b/api/controllers/plugin.go @@ -41,7 +41,7 @@ func NewControllerPlugin(common *ControllerCommon) *ControllerPlugin { func (c ControllerPlugin) PluginServiceGetPluginList(ctx echo.Context, params stub.PluginServiceGetPluginListParams) error { pagination := c.Pagination(params.Page, params.Limit, params.Sort) - items, total, err := c.endpoint.Plugin.GetList(ctx.Request().Context(), pagination) + items, total, err := c.endpoint.Plugin.GetList(ctx.Request().Context(), pagination, params.Enabled, params.Triggers) if err != nil { return c.ERROR(ctx, err) } @@ -115,7 +115,7 @@ func (c ControllerPlugin) PluginServiceUpdatePluginSettings(ctx echo.Context, na // PluginServiceGetPluginReadme ... func (c ControllerPlugin) PluginServiceGetPluginReadme(ctx echo.Context, name string, params stub.PluginServiceGetPluginReadmeParams) error { - html, err := c.endpoint.Plugin.Readme(ctx.Request().Context(), name, params.Lang) + html, err := c.endpoint.Plugin.Readme(ctx.Request().Context(), name, params.Note, params.Lang) if err != nil { return c.ERROR(ctx, err) } diff --git a/api/dto/attributes.go b/api/dto/attributes.go index 8d0b551db..115eeb386 100644 --- a/api/dto/attributes.go +++ b/api/dto/attributes.go @@ -153,6 +153,8 @@ func AttributeToApi(attributes m.Attributes) (apiAttr map[string]stub.ApiAttribu case "encrypted": attr.Type = stub.ENCRYPTED attr.Encrypted = common.String(v.Decrypt()) + default: + attr.Type = stub.ApiTypes(v.Type) } apiAttr[k] = attr } diff --git a/api/dto/plugin.go b/api/dto/plugin.go index 2a6987749..7af3dc2c8 100644 --- a/api/dto/plugin.go +++ b/api/dto/plugin.go @@ -19,7 +19,7 @@ package dto import ( - stub "github.com/e154/smart-home/api/stub" + "github.com/e154/smart-home/api/stub" "github.com/e154/smart-home/common" m "github.com/e154/smart-home/models" ) @@ -85,7 +85,14 @@ func (p Plugin) Options(options m.PluginOptions) (result *stub.ApiPluginOptionsR ActorCustomSetts: options.ActorCustomSetts, ActorSetts: AttributeToApi(options.ActorSetts), Setts: AttributeToApi(options.Setts), + TriggerParams: stub.ApiTriggerParams{ + Attributes: AttributeToApi(options.TriggerParams.Attributes), + Entities: options.TriggerParams.Entities, + Script: options.TriggerParams.Script, + Required: options.TriggerParams.Required, + }, } + return } diff --git a/api/stub/server.go b/api/stub/server.go index 8ae41b175..05add9cac 100644 --- a/api/stub/server.go +++ b/api/stub/server.go @@ -2999,6 +2999,13 @@ func (w *ServerInterfaceWrapper) PluginServiceGetPluginReadme(ctx echo.Context) // Parameter object where we will unmarshal all parameters from the context var params PluginServiceGetPluginReadmeParams + // ------------- Optional query parameter "note" ------------- + + err = runtime.BindQueryParameter("form", true, false, "note", ctx.QueryParams(), ¶ms.Note) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter note: %s", err)) + } + // ------------- Optional query parameter "lang" ------------- err = runtime.BindQueryParameter("form", true, false, "lang", ctx.QueryParams(), ¶ms.Lang) @@ -3095,6 +3102,20 @@ func (w *ServerInterfaceWrapper) PluginServiceGetPluginList(ctx echo.Context) er return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) } + // ------------- Optional query parameter "triggers" ------------- + + err = runtime.BindQueryParameter("form", true, false, "triggers", ctx.QueryParams(), ¶ms.Triggers) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter triggers: %s", err)) + } + + // ------------- Optional query parameter "enabled" ------------- + + err = runtime.BindQueryParameter("form", true, false, "enabled", ctx.QueryParams(), ¶ms.Enabled) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter enabled: %s", err)) + } + // Invoke the callback with all the unmarshalled arguments err = w.Handler.PluginServiceGetPluginList(ctx, params) return err diff --git a/api/stub/types.go b/api/stub/types.go index c954d45a3..9eaeecf16 100644 --- a/api/stub/types.go +++ b/api/stub/types.go @@ -890,7 +890,6 @@ type ApiNewTriggerRequest struct { EntityIds []string `json:"entityIds"` Name string `json:"name"` PluginName string `json:"pluginName"` - Script *ApiScript `json:"script,omitempty"` ScriptId *int64 `json:"scriptId,omitempty"` } @@ -963,6 +962,7 @@ type ApiPluginOptionsResult struct { ActorStates map[string]ApiPluginOptionsResultEntityState `json:"actorStates"` Actors bool `json:"actors"` Setts map[string]ApiAttribute `json:"setts"` + TriggerParams ApiTriggerParams `json:"triggerParams"` Triggers bool `json:"triggers"` } @@ -1207,6 +1207,14 @@ type ApiTrigger struct { UpdatedAt time.Time `json:"updatedAt"` } +// ApiTriggerParams defines model for apiTriggerParams. +type ApiTriggerParams struct { + Attributes map[string]ApiAttribute `json:"attributes"` + Entities bool `json:"entities"` + Required []string `json:"required"` + Script bool `json:"script"` +} + // ApiTypes defines model for apiTypes. type ApiTypes string @@ -1979,6 +1987,7 @@ type AuthServicePasswordResetParams struct { // PluginServiceGetPluginReadmeParams defines parameters for PluginServiceGetPluginReadme. type PluginServiceGetPluginReadmeParams struct { + Note *string `form:"note,omitempty" json:"note,omitempty"` Lang *string `form:"lang,omitempty" json:"lang,omitempty"` Accept *AcceptJSON `json:"Accept,omitempty"` } @@ -2002,7 +2011,9 @@ type PluginServiceGetPluginListParams struct { Page *ListPage `form:"page,omitempty" json:"page,omitempty"` // Limit The number of results returned on a page - Limit *ListLimit `form:"limit,omitempty" json:"limit,omitempty"` + Limit *ListLimit `form:"limit,omitempty" json:"limit,omitempty"` + Triggers *bool `form:"triggers,omitempty" json:"triggers,omitempty"` + Enabled *bool `form:"enabled,omitempty" json:"enabled,omitempty"` } // PluginServiceSearchPluginParams defines parameters for PluginServiceSearchPlugin. diff --git a/api/typedoc/assets/navigation.js b/api/typedoc/assets/navigation.js index 6785f0f24..ad3eb7c59 100644 --- a/api/typedoc/assets/navigation.js +++ b/api/typedoc/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE5WYX2/TMBTFv0ufB2OFDdjbWKetEvsjUoEAIeSmd421xAnx7VhBfHccJ12d9Prafc0552c7sZ1rf/87QnjC0enoDLGW8xXCbF3B6GBUCczMY1CrQh/2xJcZFrlxPEi1GJ2++3fwzLgGrcWSJDiSP3+WoizVNioVQn0vUjA9sFI/Oj4+ccM5PAk62yhc9FzkOdP2VuYhBdR0B1qJDZdqIf0d2KgBhC5z8AEajYtfKJS4JtOtFA637yjJyhoZjuMKIxMUCHeiFoVmkI4rEhnq5NbEAh9BoROggQNTEGhd55lQS1j4ia6LRT5BahbuJ9CVmQSeLvY9HO4KsWJZroEDdRsCyei0iPiVcRxzDGuIACXXCYcxcgRkBjkszSzkSBtPBO4LzKuVzjhaZ+FhZu9OJwLFFMHXNdcSht1WzRKmV2TPEY0KdM1xsUipoKYxjRKMmnm7yultwdFZzC/05I3ABe9KYyaTVuGiCZa1byV1Ghtfa/NaZ7VcLqHmViVl5MCdk2R1WkTc/rxnsgCuax5vBN7dRiNaIOwxjdg3F4N3jRHgyPcS+Uq+ja852FbmIJnZ/8l4I3BBVaK8p2dLK7HFXw1O6YWmyjRln3k2yLx6//boeOzmNoXtTngjRBM+i3zlx1g1mqW9nOGWusNoN8xhvn0ayrbTz5YX52VRCLUYcnYdIebFzWw6+/pzOtmiHkUtxTxvCo+N2Ke8dgHpsK7dxjvpxRETn0Barytna71fKVuB6sNO6odP3vQqRm+4k9iwqfkkaOp04XKGrhByHQFc74lLUlDA06wlCLsEpGbxENizxUATQJRqySM3pihgv2CnaLvVOoFK4gac7DVg4x6uYwJILWoaFhhsssdgrfHGHGjDuMbFIdtTx5leK3qcjh7GJDwl4SGXUE6kRqFS+AD4G0DZsov8oD5vHH5W9v9VJLc18UDb6FRpuQCGOHCxSBzeAbgkpG4BeoA7cxBx/g8UZmBhYGKFZSGalH+nG3qicMRNC0X0XLl4oG79yXNd5z5o+lKAacF/PxBoyH6euCasdR94U4hGoRsjAwbnJoniuTqDyeBpLOqaInQSEy5ErTORU+FO4sLmOOhdJc8iA6hqSYetwAT1g8zzWzU11TUN6BnCoI/CJDMG1BrCoMScLUzuQpHze8fEALG7YvHPj76DRRVV7vl3bjQmvlLMLHkWGcAfuZwDjNnpMvTs4H78B0N6X6TmFwAA" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE5WYW3PTMBCF/0ueyy3QAn3rbdrM0MvgDB1gGEZNtrGmtmzkTWlg+O/IstPIymqlvPqc81mSJXml739HCE84OhwdIWp5t0SYrmoY7Y1qgbl5DGpZNq8G4sscy8I4HqSajw4//Nt7ZlxC04gFSXCkcP5ohrJSm6hUCPpezMC0wErD6Hj/wA0X8CTobKtw0eMCPkNTV6oBEuDoHOZEFAXThY3MQ0rQdD86iQ1Xai7DDVirEURTFfQ49BoXP1MocUWmOyke7sYoyyuNDMdxxZEZCoQboUXZMEjHlYiMNXJjYoGPoNAJ0EDPFAVa10ku1ALmYaLrYpFPMDPrn10mnofDXSDWLMs1cKB+XyEZvZYQvzCOfY5hDQmg7DLjMEZOgEyhgIWZhRxp7UnA3cJdvWxyjtZbeJj5BcxOBYoJQqhpriUOu67bJUyvyIEjGRVpmuNikVKBpjGtEo2aebss6G3B0VnMLwzkjcAFbypjJpNW4aIZVjq0knqNja8aM6xTLRcL0NyqpIwcuHeSrF5LiNsaYCpL4JoW8CbgTYWQAN64EpDuzpzAJuwpL7EfIwXvGhPAiUOdOMrfxpccbCNzkNz8Ush4K3BBVaG8pydgJ7FlqQanmkNT/5qC1DzzMq8/vn+zP3Zz65J7K7wWkglfRLEMY6yazGqCHH+X3mJ0e7Cf757Gst30sxXLSVWWQs19zrYjxjy7mk6mX39OTjeoR6GluCvaWmYtDilvXcDML5U38V568YaJ21OFcDpyv1S2qO0PHMLrwcG7YfhWS3d2DNJWY+KnMNOrGql0LzHhMxUM9xIbNiWshIY6LLkc3xVDrhKAqx1x2QwUOcKeJRGmZWjQhp4o7hyQWpA+cWBLgWaAKNWCR65NScDhcYaibZ9lCFSW1uFspw4bt78lEUBqf6Jhkc5mO3TWGq/McT+Oa10csjuTHTUrRffT0eOYjKdkPOQcqlPZoFAzOAb8DaBsUUp+0JA3DT+thr9dktuZeKB96UQ1cg4M0XOxSPRvSFwSUnckA8CNOaY5vzoK41kYmFhiVYo2Fd44fU8SjriHooiBC6kA1K3Oea7r3AV9XJALjvLtgqVvYhh++FIm8iL71dNeYa27wNtSPQndGhkwONd3FM/VGUwOT2OhNUXoJSZcCt3koqDCvcSFzRk8uPieRQZQa0mHrcAEmwdZFNdqYs4fNGBgiIM+CZPMGVBniIMyc/oyuTNFzu8tEwPE/l4rPD+GDhZV1kXgl7zWmPhSMbPkWWQAf+TiDmDMThffs4X78R8f2fE+ohkAAA==" \ No newline at end of file diff --git a/api/typedoc/assets/search.js b/api/typedoc/assets/search.js index 1a125dc3d..0a68c9436 100644 --- a/api/typedoc/assets/search.js +++ b/api/typedoc/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/api/typedoc/enums/AttributeType.html b/api/typedoc/enums/AttributeType.html index e3c2dfad6..94117049c 100644 --- a/api/typedoc/enums/AttributeType.html +++ b/api/typedoc/enums/AttributeType.html @@ -1,4 +1,4 @@ -
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Message type, which determines its format.
-