@arken/node 1.5.2 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/shrinkwrap-deps.json +39 -298
- package/build/api.js.map +1 -0
- package/build/array.js.map +1 -0
- package/build/browser.js.map +1 -0
- package/build/codebase.js.map +1 -0
- package/build/config.js.map +1 -0
- package/build/db.d.ts +41 -0
- package/build/db.js +234 -0
- package/build/db.js.map +1 -0
- package/build/{util/decoder.js → decoder.js} +3 -3
- package/build/decoder.js.map +1 -0
- package/build/format.js.map +1 -0
- package/build/guid.js.map +1 -0
- package/build/index.d.ts +67 -18
- package/build/index.js +213 -18
- package/build/index.js.map +1 -1
- package/build/json.js.map +1 -0
- package/build/legacy/data/items.js +1 -1
- package/build/legacy/data/items.js.map +1 -1
- package/build/log.d.ts +5 -0
- package/build/log.js +28 -0
- package/build/log.js.map +1 -0
- package/build/math.js.map +1 -0
- package/build/{util/merkle.js → merkle.js} +1 -1
- package/build/merkle.js.map +1 -0
- package/build/{util/mongo.js → mongo.js} +1 -1
- package/build/mongo.js.map +1 -0
- package/build/number.js.map +1 -0
- package/build/object.js.map +1 -0
- package/build/otp.js.map +1 -0
- package/build/package.json +4 -17
- package/build/physics.js.map +1 -0
- package/build/{util/process.js → process.js} +1 -1
- package/build/process.js.map +1 -0
- package/build/rpc.js.map +1 -0
- package/build/schema.d.ts +42 -51
- package/build/seer.js.map +1 -0
- package/build/string.js.map +1 -0
- package/build/text.js.map +1 -0
- package/build/time/date.js.map +1 -0
- package/build/time/fancyTimeFormat.js.map +1 -0
- package/build/time/index.js.map +1 -0
- package/build/time/now.js.map +1 -0
- package/build/trpc/socketLink.d.ts +62 -0
- package/build/trpc/socketLink.js +261 -0
- package/build/trpc/socketLink.js.map +1 -0
- package/build/trpc/socketServer.d.ts +15 -0
- package/build/trpc/socketServer.js +47 -0
- package/build/trpc/socketServer.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/util.d.ts +1 -0
- package/build/util.js +2 -0
- package/build/util.js.map +1 -0
- package/build/web3/httpProvider.js.map +1 -0
- package/build/{util/web3.d.ts → web3.d.ts} +7 -10
- package/build/{util/web3.js → web3.js} +10 -12
- package/build/web3.js.map +1 -0
- package/build/{util/websocket.js → websocket.js} +1 -1
- package/build/websocket.js.map +1 -0
- package/build/zk.js.map +1 -0
- package/build/{util/zod.d.ts → zod.d.ts} +2 -0
- package/build/{util/zod.js → zod.js} +1 -0
- package/build/zod.js.map +1 -0
- package/decoder.ts +3 -3
- package/index.ts +5 -50
- package/legacy/data/items.ts +1 -1
- package/log.ts +47 -1
- package/merkle.ts +3 -1
- package/mongo.ts +1 -1
- package/package.json +2 -15
- package/process.ts +1 -1
- package/trpc/socketLink.ts +2 -2
- package/trpc/socketServer.ts +1 -1
- package/tsconfig.json +2 -4
- package/web3.ts +18 -16
- package/websocket.ts +1 -1
- package/zod.ts +2 -0
- package/build/modules/area/area.models.d.ts +0 -6
- package/build/modules/area/area.models.js +0 -11
- package/build/modules/area/area.models.js.map +0 -1
- package/build/modules/area/area.router.d.ts +0 -274
- package/build/modules/area/area.router.js +0 -59
- package/build/modules/area/area.router.js.map +0 -1
- package/build/modules/area/area.schema.d.ts +0 -245
- package/build/modules/area/area.schema.js +0 -13
- package/build/modules/area/area.schema.js.map +0 -1
- package/build/modules/area/area.service.d.ts +0 -12
- package/build/modules/area/area.service.js +0 -95
- package/build/modules/area/area.service.js.map +0 -1
- package/build/modules/area/area.types.d.ts +0 -20
- package/build/modules/area/area.types.js +0 -2
- package/build/modules/area/area.types.js.map +0 -1
- package/build/modules/area/index.d.ts +0 -5
- package/build/modules/area/index.js +0 -6
- package/build/modules/area/index.js.map +0 -1
- package/build/modules/asset/asset.models.d.ts +0 -5
- package/build/modules/asset/asset.models.js +0 -44
- package/build/modules/asset/asset.models.js.map +0 -1
- package/build/modules/asset/asset.router.d.ts +0 -189
- package/build/modules/asset/asset.router.js +0 -41
- package/build/modules/asset/asset.router.js.map +0 -1
- package/build/modules/asset/asset.schema.d.ts +0 -207
- package/build/modules/asset/asset.schema.js +0 -19
- package/build/modules/asset/asset.schema.js.map +0 -1
- package/build/modules/asset/asset.service.d.ts +0 -9
- package/build/modules/asset/asset.service.js +0 -68
- package/build/modules/asset/asset.service.js.map +0 -1
- package/build/modules/asset/asset.types.d.ts +0 -17
- package/build/modules/asset/asset.types.js +0 -2
- package/build/modules/asset/asset.types.js.map +0 -1
- package/build/modules/asset/index.d.ts +0 -5
- package/build/modules/asset/index.js +0 -6
- package/build/modules/asset/index.js.map +0 -1
- package/build/modules/chain/chain.models.d.ts +0 -6
- package/build/modules/chain/chain.models.js +0 -42
- package/build/modules/chain/chain.models.js.map +0 -1
- package/build/modules/chain/chain.router.d.ts +0 -364
- package/build/modules/chain/chain.router.js +0 -84
- package/build/modules/chain/chain.router.js.map +0 -1
- package/build/modules/chain/chain.schema.d.ts +0 -323
- package/build/modules/chain/chain.schema.js +0 -41
- package/build/modules/chain/chain.schema.js.map +0 -1
- package/build/modules/chain/chain.service.d.ts +0 -15
- package/build/modules/chain/chain.service.js +0 -115
- package/build/modules/chain/chain.service.js.map +0 -1
- package/build/modules/chain/chain.types.d.ts +0 -20
- package/build/modules/chain/chain.types.js +0 -2
- package/build/modules/chain/chain.types.js.map +0 -1
- package/build/modules/chain/index.d.ts +0 -5
- package/build/modules/chain/index.js +0 -6
- package/build/modules/chain/index.js.map +0 -1
- package/build/modules/character/character.models.d.ts +0 -14
- package/build/modules/character/character.models.js +0 -123
- package/build/modules/character/character.models.js.map +0 -1
- package/build/modules/character/character.router.d.ts +0 -945
- package/build/modules/character/character.router.js +0 -246
- package/build/modules/character/character.router.js.map +0 -1
- package/build/modules/character/character.schema.d.ts +0 -1239
- package/build/modules/character/character.schema.js +0 -67
- package/build/modules/character/character.schema.js.map +0 -1
- package/build/modules/character/character.service.d.ts +0 -73
- package/build/modules/character/character.service.js +0 -533
- package/build/modules/character/character.service.js.map +0 -1
- package/build/modules/character/character.types.d.ts +0 -48
- package/build/modules/character/character.types.js +0 -2
- package/build/modules/character/character.types.js.map +0 -1
- package/build/modules/character/index.d.ts +0 -5
- package/build/modules/character/index.js +0 -6
- package/build/modules/character/index.js.map +0 -1
- package/build/modules/chat/chat.models.d.ts +0 -4
- package/build/modules/chat/chat.models.js +0 -35
- package/build/modules/chat/chat.models.js.map +0 -1
- package/build/modules/chat/chat.router.d.ts +0 -223
- package/build/modules/chat/chat.router.js +0 -51
- package/build/modules/chat/chat.router.js.map +0 -1
- package/build/modules/chat/chat.schema.d.ts +0 -183
- package/build/modules/chat/chat.schema.js +0 -29
- package/build/modules/chat/chat.schema.js.map +0 -1
- package/build/modules/chat/chat.service.d.ts +0 -12
- package/build/modules/chat/chat.service.js +0 -85
- package/build/modules/chat/chat.service.js.map +0 -1
- package/build/modules/chat/chat.types.d.ts +0 -14
- package/build/modules/chat/chat.types.js +0 -2
- package/build/modules/chat/chat.types.js.map +0 -1
- package/build/modules/chat/index.d.ts +0 -5
- package/build/modules/chat/index.js +0 -6
- package/build/modules/chat/index.js.map +0 -1
- package/build/modules/collection/collection.models.d.ts +0 -9
- package/build/modules/collection/collection.models.js +0 -69
- package/build/modules/collection/collection.models.js.map +0 -1
- package/build/modules/collection/collection.router.d.ts +0 -361
- package/build/modules/collection/collection.router.js +0 -71
- package/build/modules/collection/collection.router.js.map +0 -1
- package/build/modules/collection/collection.schema.d.ts +0 -676
- package/build/modules/collection/collection.schema.js +0 -70
- package/build/modules/collection/collection.schema.js.map +0 -1
- package/build/modules/collection/collection.service.d.ts +0 -15
- package/build/modules/collection/collection.service.js +0 -117
- package/build/modules/collection/collection.service.js.map +0 -1
- package/build/modules/collection/collection.types.d.ts +0 -29
- package/build/modules/collection/collection.types.js +0 -2
- package/build/modules/collection/collection.types.js.map +0 -1
- package/build/modules/collection/index.d.ts +0 -5
- package/build/modules/collection/index.js +0 -6
- package/build/modules/collection/index.js.map +0 -1
- package/build/modules/core/core.models.d.ts +0 -123
- package/build/modules/core/core.models.js +0 -811
- package/build/modules/core/core.models.js.map +0 -1
- package/build/modules/core/core.router.d.ts +0 -5297
- package/build/modules/core/core.router.js +0 -1372
- package/build/modules/core/core.router.js.map +0 -1
- package/build/modules/core/core.schema.d.ts +0 -5918
- package/build/modules/core/core.schema.js +0 -519
- package/build/modules/core/core.schema.js.map +0 -1
- package/build/modules/core/core.service.d.ts +0 -270
- package/build/modules/core/core.service.js +0 -2515
- package/build/modules/core/core.service.js.map +0 -1
- package/build/modules/core/core.types.d.ts +0 -251
- package/build/modules/core/core.types.js +0 -2
- package/build/modules/core/core.types.js.map +0 -1
- package/build/modules/core/index.d.ts +0 -5
- package/build/modules/core/index.js +0 -6
- package/build/modules/core/index.js.map +0 -1
- package/build/modules/core/mail/applyPatchesOrMail.d.ts +0 -72
- package/build/modules/core/mail/applyPatchesOrMail.js +0 -416
- package/build/modules/core/mail/applyPatchesOrMail.js.map +0 -1
- package/build/modules/core/mail/mailClaimablePatchesBatch.d.ts +0 -51
- package/build/modules/core/mail/mailClaimablePatchesBatch.js +0 -239
- package/build/modules/core/mail/mailClaimablePatchesBatch.js.map +0 -1
- package/build/modules/game/game.models.d.ts +0 -6
- package/build/modules/game/game.models.js +0 -29
- package/build/modules/game/game.models.js.map +0 -1
- package/build/modules/game/game.router.d.ts +0 -428
- package/build/modules/game/game.router.js +0 -90
- package/build/modules/game/game.router.js.map +0 -1
- package/build/modules/game/game.schema.d.ts +0 -344
- package/build/modules/game/game.schema.js +0 -14
- package/build/modules/game/game.schema.js.map +0 -1
- package/build/modules/game/game.service.d.ts +0 -16
- package/build/modules/game/game.service.js +0 -111
- package/build/modules/game/game.service.js.map +0 -1
- package/build/modules/game/game.types.d.ts +0 -20
- package/build/modules/game/game.types.js +0 -2
- package/build/modules/game/game.types.js.map +0 -1
- package/build/modules/game/index.d.ts +0 -5
- package/build/modules/game/index.js +0 -5
- package/build/modules/game/index.js.map +0 -1
- package/build/modules/interface/index.d.ts +0 -5
- package/build/modules/interface/index.js +0 -6
- package/build/modules/interface/index.js.map +0 -1
- package/build/modules/interface/interface.canonicalize.d.ts +0 -2
- package/build/modules/interface/interface.canonicalize.js +0 -241
- package/build/modules/interface/interface.canonicalize.js.map +0 -1
- package/build/modules/interface/interface.models.d.ts +0 -6
- package/build/modules/interface/interface.models.js +0 -30
- package/build/modules/interface/interface.models.js.map +0 -1
- package/build/modules/interface/interface.router.d.ts +0 -472
- package/build/modules/interface/interface.router.js +0 -113
- package/build/modules/interface/interface.router.js.map +0 -1
- package/build/modules/interface/interface.schema.d.ts +0 -313
- package/build/modules/interface/interface.schema.js +0 -36
- package/build/modules/interface/interface.schema.js.map +0 -1
- package/build/modules/interface/interface.service.d.ts +0 -19
- package/build/modules/interface/interface.service.js +0 -168
- package/build/modules/interface/interface.service.js.map +0 -1
- package/build/modules/interface/interface.types.d.ts +0 -19
- package/build/modules/interface/interface.types.js +0 -2
- package/build/modules/interface/interface.types.js.map +0 -1
- package/build/modules/item/index.d.ts +0 -5
- package/build/modules/item/index.js +0 -6
- package/build/modules/item/index.js.map +0 -1
- package/build/modules/item/item.models.d.ts +0 -16
- package/build/modules/item/item.models.js +0 -101
- package/build/modules/item/item.models.js.map +0 -1
- package/build/modules/item/item.router.d.ts +0 -263
- package/build/modules/item/item.router.js +0 -70
- package/build/modules/item/item.router.js.map +0 -1
- package/build/modules/item/item.schema.d.ts +0 -778
- package/build/modules/item/item.schema.js +0 -56
- package/build/modules/item/item.schema.js.map +0 -1
- package/build/modules/item/item.service.d.ts +0 -13
- package/build/modules/item/item.service.js +0 -116
- package/build/modules/item/item.service.js.map +0 -1
- package/build/modules/item/item.types.d.ts +0 -55
- package/build/modules/item/item.types.js +0 -2
- package/build/modules/item/item.types.js.map +0 -1
- package/build/modules/job/index.d.ts +0 -5
- package/build/modules/job/index.js +0 -6
- package/build/modules/job/index.js.map +0 -1
- package/build/modules/job/job.models.d.ts +0 -3
- package/build/modules/job/job.models.js +0 -9
- package/build/modules/job/job.models.js.map +0 -1
- package/build/modules/job/job.router.d.ts +0 -146
- package/build/modules/job/job.router.js +0 -32
- package/build/modules/job/job.router.js.map +0 -1
- package/build/modules/job/job.schema.d.ts +0 -67
- package/build/modules/job/job.schema.js +0 -7
- package/build/modules/job/job.schema.js.map +0 -1
- package/build/modules/job/job.service.d.ts +0 -7
- package/build/modules/job/job.service.js +0 -144
- package/build/modules/job/job.service.js.map +0 -1
- package/build/modules/job/job.types.d.ts +0 -16
- package/build/modules/job/job.types.js +0 -2
- package/build/modules/job/job.types.js.map +0 -1
- package/build/modules/market/index.d.ts +0 -5
- package/build/modules/market/index.js +0 -6
- package/build/modules/market/index.js.map +0 -1
- package/build/modules/market/market.models.d.ts +0 -14
- package/build/modules/market/market.models.js +0 -98
- package/build/modules/market/market.models.js.map +0 -1
- package/build/modules/market/market.router.d.ts +0 -230
- package/build/modules/market/market.router.js +0 -56
- package/build/modules/market/market.router.js.map +0 -1
- package/build/modules/market/market.schema.d.ts +0 -949
- package/build/modules/market/market.schema.js +0 -101
- package/build/modules/market/market.schema.js.map +0 -1
- package/build/modules/market/market.service.d.ts +0 -12
- package/build/modules/market/market.service.js +0 -88
- package/build/modules/market/market.service.js.map +0 -1
- package/build/modules/market/market.types.d.ts +0 -49
- package/build/modules/market/market.types.js +0 -2
- package/build/modules/market/market.types.js.map +0 -1
- package/build/modules/product/index.d.ts +0 -5
- package/build/modules/product/index.js +0 -6
- package/build/modules/product/index.js.map +0 -1
- package/build/modules/product/product.models.d.ts +0 -4
- package/build/modules/product/product.models.js +0 -113
- package/build/modules/product/product.models.js.map +0 -1
- package/build/modules/product/product.router.d.ts +0 -447
- package/build/modules/product/product.router.js +0 -71
- package/build/modules/product/product.router.js.map +0 -1
- package/build/modules/product/product.schema.d.ts +0 -654
- package/build/modules/product/product.schema.js +0 -117
- package/build/modules/product/product.schema.js.map +0 -1
- package/build/modules/product/product.service.d.ts +0 -15
- package/build/modules/product/product.service.js +0 -115
- package/build/modules/product/product.service.js.map +0 -1
- package/build/modules/product/product.types.d.ts +0 -28
- package/build/modules/product/product.types.js +0 -2
- package/build/modules/product/product.types.js.map +0 -1
- package/build/modules/profile/index.d.ts +0 -5
- package/build/modules/profile/index.js +0 -6
- package/build/modules/profile/index.js.map +0 -1
- package/build/modules/profile/profile.models.d.ts +0 -2
- package/build/modules/profile/profile.models.js +0 -165
- package/build/modules/profile/profile.models.js.map +0 -1
- package/build/modules/profile/profile.router.d.ts +0 -163
- package/build/modules/profile/profile.router.js +0 -54
- package/build/modules/profile/profile.router.js.map +0 -1
- package/build/modules/profile/profile.schema.d.ts +0 -1
- package/build/modules/profile/profile.schema.js +0 -138
- package/build/modules/profile/profile.schema.js.map +0 -1
- package/build/modules/profile/profile.service.d.ts +0 -11
- package/build/modules/profile/profile.service.js +0 -120
- package/build/modules/profile/profile.service.js.map +0 -1
- package/build/modules/profile/profile.types.d.ts +0 -16
- package/build/modules/profile/profile.types.js +0 -2
- package/build/modules/profile/profile.types.js.map +0 -1
- package/build/modules/raffle/index.d.ts +0 -5
- package/build/modules/raffle/index.js +0 -6
- package/build/modules/raffle/index.js.map +0 -1
- package/build/modules/raffle/raffle.models.d.ts +0 -6
- package/build/modules/raffle/raffle.models.js +0 -36
- package/build/modules/raffle/raffle.models.js.map +0 -1
- package/build/modules/raffle/raffle.router.d.ts +0 -299
- package/build/modules/raffle/raffle.router.js +0 -71
- package/build/modules/raffle/raffle.router.js.map +0 -1
- package/build/modules/raffle/raffle.schema.d.ts +0 -265
- package/build/modules/raffle/raffle.schema.js +0 -21
- package/build/modules/raffle/raffle.schema.js.map +0 -1
- package/build/modules/raffle/raffle.service.d.ts +0 -15
- package/build/modules/raffle/raffle.service.js +0 -115
- package/build/modules/raffle/raffle.service.js.map +0 -1
- package/build/modules/raffle/raffle.types.d.ts +0 -25
- package/build/modules/raffle/raffle.types.js +0 -2
- package/build/modules/raffle/raffle.types.js.map +0 -1
- package/build/modules/skill/index.d.ts +0 -5
- package/build/modules/skill/index.js +0 -6
- package/build/modules/skill/index.js.map +0 -1
- package/build/modules/skill/skill.models.d.ts +0 -9
- package/build/modules/skill/skill.models.js +0 -9
- package/build/modules/skill/skill.models.js.map +0 -1
- package/build/modules/skill/skill.router.d.ts +0 -659
- package/build/modules/skill/skill.router.js +0 -152
- package/build/modules/skill/skill.router.js.map +0 -1
- package/build/modules/skill/skill.schema.d.ts +0 -548
- package/build/modules/skill/skill.schema.js +0 -26
- package/build/modules/skill/skill.schema.js.map +0 -1
- package/build/modules/skill/skill.service.d.ts +0 -32
- package/build/modules/skill/skill.service.js +0 -279
- package/build/modules/skill/skill.service.js.map +0 -1
- package/build/modules/skill/skill.types.d.ts +0 -29
- package/build/modules/skill/skill.types.js +0 -2
- package/build/modules/skill/skill.types.js.map +0 -1
- package/build/modules/video/index.d.ts +0 -5
- package/build/modules/video/index.js +0 -6
- package/build/modules/video/index.js.map +0 -1
- package/build/modules/video/video.models.d.ts +0 -7
- package/build/modules/video/video.models.js +0 -19
- package/build/modules/video/video.models.js.map +0 -1
- package/build/modules/video/video.router.d.ts +0 -563
- package/build/modules/video/video.router.js +0 -112
- package/build/modules/video/video.router.js.map +0 -1
- package/build/modules/video/video.schema.d.ts +0 -456
- package/build/modules/video/video.schema.js +0 -31
- package/build/modules/video/video.schema.js.map +0 -1
- package/build/modules/video/video.service.d.ts +0 -23
- package/build/modules/video/video.service.js +0 -197
- package/build/modules/video/video.service.js.map +0 -1
- package/build/modules/video/video.types.d.ts +0 -28
- package/build/modules/video/video.types.js +0 -2
- package/build/modules/video/video.types.js.map +0 -1
- package/build/router.d.ts +0 -10406
- package/build/router.js +0 -44
- package/build/router.js.map +0 -1
- package/build/types.d.ts +0 -164
- package/build/types.js +0 -19
- package/build/types.js.map +0 -1
- package/build/util/api.js.map +0 -1
- package/build/util/array.js.map +0 -1
- package/build/util/browser.js.map +0 -1
- package/build/util/codebase.js.map +0 -1
- package/build/util/config.js.map +0 -1
- package/build/util/db/index.d.ts +0 -5
- package/build/util/db/index.js +0 -7
- package/build/util/db/index.js.map +0 -1
- package/build/util/db/isPostgresError.d.ts +0 -2
- package/build/util/db/isPostgresError.js +0 -8
- package/build/util/db/isPostgresError.js.map +0 -1
- package/build/util/db/isUniqueConstraintViolation.d.ts +0 -2
- package/build/util/db/isUniqueConstraintViolation.js +0 -3
- package/build/util/db/isUniqueConstraintViolation.js.map +0 -1
- package/build/util/db.d.ts +0 -6
- package/build/util/db.js +0 -51
- package/build/util/db.js.map +0 -1
- package/build/util/decoder.js.map +0 -1
- package/build/util/decoder.test.d.ts +0 -1
- package/build/util/decoder.test.js +0 -7
- package/build/util/decoder.test.js.map +0 -1
- package/build/util/format.js.map +0 -1
- package/build/util/guid.js.map +0 -1
- package/build/util/index.d.ts +0 -74
- package/build/util/index.js +0 -239
- package/build/util/index.js.map +0 -1
- package/build/util/json.js.map +0 -1
- package/build/util/log.d.ts +0 -1
- package/build/util/log.js +0 -6
- package/build/util/log.js.map +0 -1
- package/build/util/math.js.map +0 -1
- package/build/util/merkle.js.map +0 -1
- package/build/util/mongo.js.map +0 -1
- package/build/util/number.js.map +0 -1
- package/build/util/object.js.map +0 -1
- package/build/util/otp.js.map +0 -1
- package/build/util/physics.js.map +0 -1
- package/build/util/process.js.map +0 -1
- package/build/util/rpc.js.map +0 -1
- package/build/util/seer.js.map +0 -1
- package/build/util/string.js.map +0 -1
- package/build/util/text.js.map +0 -1
- package/build/util/time/date.js.map +0 -1
- package/build/util/time/fancyTimeFormat.js.map +0 -1
- package/build/util/time/index.js.map +0 -1
- package/build/util/time/now.js.map +0 -1
- package/build/util/web3/httpProvider.js.map +0 -1
- package/build/util/web3.js.map +0 -1
- package/build/util/websocket.js.map +0 -1
- package/build/util/zk.js.map +0 -1
- package/build/util/zod.js.map +0 -1
- package/router.ts +0 -49
- package/types.ts +0 -183
- /package/build/{util/api.d.ts → api.d.ts} +0 -0
- /package/build/{util/api.js → api.js} +0 -0
- /package/build/{util/array.d.ts → array.d.ts} +0 -0
- /package/build/{util/array.js → array.js} +0 -0
- /package/build/{util/browser.d.ts → browser.d.ts} +0 -0
- /package/build/{util/browser.js → browser.js} +0 -0
- /package/build/{util/codebase.d.ts → codebase.d.ts} +0 -0
- /package/build/{util/codebase.js → codebase.js} +0 -0
- /package/build/{util/config.d.ts → config.d.ts} +0 -0
- /package/build/{util/config.js → config.js} +0 -0
- /package/build/{util/decoder.d.ts → decoder.d.ts} +0 -0
- /package/build/{util/format.d.ts → format.d.ts} +0 -0
- /package/build/{util/format.js → format.js} +0 -0
- /package/build/{util/guid.d.ts → guid.d.ts} +0 -0
- /package/build/{util/guid.js → guid.js} +0 -0
- /package/build/{util/json.d.ts → json.d.ts} +0 -0
- /package/build/{util/json.js → json.js} +0 -0
- /package/build/{util/math.d.ts → math.d.ts} +0 -0
- /package/build/{util/math.js → math.js} +0 -0
- /package/build/{util/merkle.d.ts → merkle.d.ts} +0 -0
- /package/build/{util/mongo.d.ts → mongo.d.ts} +0 -0
- /package/build/{util/number.d.ts → number.d.ts} +0 -0
- /package/build/{util/number.js → number.js} +0 -0
- /package/build/{util/object.d.ts → object.d.ts} +0 -0
- /package/build/{util/object.js → object.js} +0 -0
- /package/build/{util/otp.d.ts → otp.d.ts} +0 -0
- /package/build/{util/otp.js → otp.js} +0 -0
- /package/build/{util/physics.d.ts → physics.d.ts} +0 -0
- /package/build/{util/physics.js → physics.js} +0 -0
- /package/build/{util/process.d.ts → process.d.ts} +0 -0
- /package/build/{util/rpc.d.ts → rpc.d.ts} +0 -0
- /package/build/{util/rpc.js → rpc.js} +0 -0
- /package/build/{util/seer.d.ts → seer.d.ts} +0 -0
- /package/build/{util/seer.js → seer.js} +0 -0
- /package/build/{util/string.d.ts → string.d.ts} +0 -0
- /package/build/{util/string.js → string.js} +0 -0
- /package/build/{util/text.d.ts → text.d.ts} +0 -0
- /package/build/{util/text.js → text.js} +0 -0
- /package/build/{util/time → time}/date.d.ts +0 -0
- /package/build/{util/time → time}/date.js +0 -0
- /package/build/{util/time → time}/fancyTimeFormat.d.ts +0 -0
- /package/build/{util/time → time}/fancyTimeFormat.js +0 -0
- /package/build/{util/time → time}/index.d.ts +0 -0
- /package/build/{util/time → time}/index.js +0 -0
- /package/build/{util/time → time}/now.d.ts +0 -0
- /package/build/{util/time → time}/now.js +0 -0
- /package/build/{util/web3 → web3}/httpProvider.d.ts +0 -0
- /package/build/{util/web3 → web3}/httpProvider.js +0 -0
- /package/build/{util/websocket.d.ts → websocket.d.ts} +0 -0
- /package/build/{util/zk.d.ts → zk.d.ts} +0 -0
- /package/build/{util/zk.js → zk.js} +0 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { TRPCClientError, createTRPCProxyClient } from '@trpc/client';
|
|
2
|
+
import { observable } from '@trpc/server/observable';
|
|
3
|
+
import { serialize, deserialize } from '../rpc';
|
|
4
|
+
import { generateShortId } from '../db';
|
|
5
|
+
export function createSocketLink(options) {
|
|
6
|
+
const { backends, clients, notifyTRPCError, waitUntil, requestTimeoutMs = 15000 } = options;
|
|
7
|
+
const backendNames = new Set(backends.map((b) => b.name));
|
|
8
|
+
return () => ({ op }) => observable((observer) => {
|
|
9
|
+
const [routerName] = op.path.split('.');
|
|
10
|
+
if (!routerName || !backendNames.has(routerName)) {
|
|
11
|
+
const err = new TRPCClientError(`Unknown router for ${op.path}`);
|
|
12
|
+
notifyTRPCError(err);
|
|
13
|
+
observer.error(err);
|
|
14
|
+
observer.complete();
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const client = clients[routerName];
|
|
18
|
+
const uuid = generateShortId();
|
|
19
|
+
const run = async () => {
|
|
20
|
+
try {
|
|
21
|
+
await waitUntil(() => !!client?.socket?.emit, 60000);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
const err = new TRPCClientError('Socket connection timeout');
|
|
25
|
+
notifyTRPCError(err);
|
|
26
|
+
observer.error(err);
|
|
27
|
+
observer.complete();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const { input } = op;
|
|
31
|
+
client.socket.emit('trpc', {
|
|
32
|
+
id: uuid,
|
|
33
|
+
method: op.path.replace(`${routerName}.`, ''),
|
|
34
|
+
type: op.type,
|
|
35
|
+
params: serialize(input),
|
|
36
|
+
});
|
|
37
|
+
const timeout = setTimeout(() => {
|
|
38
|
+
const err = new TRPCClientError('Request timeout');
|
|
39
|
+
if (client.ioCallbacks[uuid])
|
|
40
|
+
delete client.ioCallbacks[uuid];
|
|
41
|
+
notifyTRPCError(err);
|
|
42
|
+
observer.error(err);
|
|
43
|
+
}, requestTimeoutMs);
|
|
44
|
+
client.ioCallbacks[uuid] = {
|
|
45
|
+
timeout,
|
|
46
|
+
resolve: (response) => {
|
|
47
|
+
clearTimeout(timeout);
|
|
48
|
+
if (response.error) {
|
|
49
|
+
const baseErr = response.error instanceof TRPCClientError
|
|
50
|
+
? response.error
|
|
51
|
+
: new TRPCClientError(typeof response.error === 'string' ? response.error : JSON.stringify(response.error));
|
|
52
|
+
const errAny = baseErr;
|
|
53
|
+
errAny.data = {
|
|
54
|
+
...(errAny.data || {}),
|
|
55
|
+
reqId: response.id ?? uuid,
|
|
56
|
+
};
|
|
57
|
+
notifyTRPCError(baseErr);
|
|
58
|
+
observer.error(baseErr);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const result = deserialize(response.result);
|
|
62
|
+
console.log('zzzzzzz', response.result, result);
|
|
63
|
+
observer.next({ result });
|
|
64
|
+
observer.complete();
|
|
65
|
+
}
|
|
66
|
+
delete client.ioCallbacks[uuid];
|
|
67
|
+
},
|
|
68
|
+
reject: (error) => {
|
|
69
|
+
clearTimeout(timeout);
|
|
70
|
+
let err = error;
|
|
71
|
+
if (!(error instanceof TRPCClientError)) {
|
|
72
|
+
err =
|
|
73
|
+
typeof error === 'string'
|
|
74
|
+
? new TRPCClientError(error)
|
|
75
|
+
: new TRPCClientError(JSON.stringify(error));
|
|
76
|
+
}
|
|
77
|
+
err.data = {
|
|
78
|
+
...(err.data || {}),
|
|
79
|
+
reqId: uuid,
|
|
80
|
+
};
|
|
81
|
+
notifyTRPCError(err);
|
|
82
|
+
observer.error(err);
|
|
83
|
+
delete client.ioCallbacks[uuid];
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
run();
|
|
88
|
+
return () => {
|
|
89
|
+
if (client.ioCallbacks[uuid]) {
|
|
90
|
+
clearTimeout(client.ioCallbacks[uuid].timeout);
|
|
91
|
+
delete client.ioCallbacks[uuid];
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
export function attachTrpcResponseHandler(opts) {
|
|
97
|
+
const { client, backendName, logging = true, onServerPush, responseIdField = 'id', preferOnAny = false } = opts;
|
|
98
|
+
if (!client.ioCallbacks)
|
|
99
|
+
client.ioCallbacks = {};
|
|
100
|
+
const logInfo = (...args) => (logging ? console.info(...args) : undefined);
|
|
101
|
+
const logWarn = (...args) => (logging ? console.warn(...args) : undefined);
|
|
102
|
+
const handlePayload = (eventName, payload) => {
|
|
103
|
+
try {
|
|
104
|
+
if (logging)
|
|
105
|
+
logInfo(`[${backendName} Socket] Event:`, payload);
|
|
106
|
+
if (eventName === 'trpcResponse') {
|
|
107
|
+
const id = payload?.[responseIdField];
|
|
108
|
+
const cb = client.ioCallbacks[id];
|
|
109
|
+
if (cb) {
|
|
110
|
+
if (logging)
|
|
111
|
+
logInfo(`[${backendName} Socket] Callback exists for ID:`, id, payload);
|
|
112
|
+
clearTimeout(cb.timeout);
|
|
113
|
+
try {
|
|
114
|
+
cb.resolve(payload);
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
if (logging)
|
|
118
|
+
logInfo(`[${backendName} Socket] Callback error:`, e);
|
|
119
|
+
cb.reject(e);
|
|
120
|
+
}
|
|
121
|
+
delete client.ioCallbacks[id];
|
|
122
|
+
}
|
|
123
|
+
else if (logging) {
|
|
124
|
+
logWarn(`[${backendName} Socket] No callback found for ID: ${id}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
if (onServerPush) {
|
|
129
|
+
const { method, params } = payload ?? {};
|
|
130
|
+
onServerPush({ id: payload[responseIdField], method, params: params ? deserialize(params) : undefined });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
console.error(`[${backendName} Socket] Error in handler:`, e);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
if (preferOnAny && typeof client.socket.onAny === 'function') {
|
|
139
|
+
const anyHandler = (eventName, payload) => {
|
|
140
|
+
if (eventName !== 'trpcResponse')
|
|
141
|
+
return;
|
|
142
|
+
handlePayload(eventName, payload);
|
|
143
|
+
};
|
|
144
|
+
client.socket.onAny(anyHandler);
|
|
145
|
+
return () => {
|
|
146
|
+
if (typeof client.socket.offAny === 'function')
|
|
147
|
+
client.socket.offAny(anyHandler);
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const onTrpcHandler = (res) => handlePayload('trpc', res);
|
|
151
|
+
const onTrpcResponseHandler = (res) => handlePayload('trpcResponse', res);
|
|
152
|
+
client.socket.on('trpc', onTrpcHandler);
|
|
153
|
+
client.socket.on('trpcResponse', onTrpcResponseHandler);
|
|
154
|
+
return () => {
|
|
155
|
+
client.socket.off('trpc', onTrpcHandler);
|
|
156
|
+
client.socket.off('trpcResponse', onTrpcResponseHandler);
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
export function createSocketProxyClient(opts) {
|
|
160
|
+
const { client, logPrefix = 'SocketProxy', roles = [], requestTimeoutMs = 15000 } = opts;
|
|
161
|
+
const proxy = createTRPCProxyClient({
|
|
162
|
+
links: [
|
|
163
|
+
() => ({ op }) => observable((observer) => {
|
|
164
|
+
const { input } = op;
|
|
165
|
+
op.context = op.context ?? {};
|
|
166
|
+
op.context.client = client;
|
|
167
|
+
op.context.client.roles = roles;
|
|
168
|
+
if (!client?.socket?.emit) {
|
|
169
|
+
observer.error(new TRPCClientError(`${logPrefix}: Emit Direct failed, no client or bad socket`));
|
|
170
|
+
observer.complete();
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const uuid = generateShortId();
|
|
174
|
+
const request = { id: uuid, method: op.path, type: op.type, params: serialize(input) };
|
|
175
|
+
client.ioCallbacks[uuid] = client.ioCallbacks[uuid] || {};
|
|
176
|
+
client.ioCallbacks[uuid].request = request;
|
|
177
|
+
client.socket.emit('trpc', request);
|
|
178
|
+
const timeout = setTimeout(() => {
|
|
179
|
+
delete client.ioCallbacks[uuid];
|
|
180
|
+
observer.error(new TRPCClientError(`${logPrefix}: Request timeout`));
|
|
181
|
+
}, requestTimeoutMs);
|
|
182
|
+
client.ioCallbacks[uuid] = {
|
|
183
|
+
...(client.ioCallbacks[uuid] || {}),
|
|
184
|
+
timeout,
|
|
185
|
+
resolve: (pack) => {
|
|
186
|
+
clearTimeout(timeout);
|
|
187
|
+
if (pack.error) {
|
|
188
|
+
const baseErr = pack.error instanceof TRPCClientError
|
|
189
|
+
? pack.error
|
|
190
|
+
: new TRPCClientError(typeof pack.error === 'string' ? pack.error : JSON.stringify(pack.error));
|
|
191
|
+
baseErr.data = {
|
|
192
|
+
...(baseErr.data || {}),
|
|
193
|
+
reqId: pack.id ?? uuid,
|
|
194
|
+
};
|
|
195
|
+
observer.error(baseErr);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
console.log('zzzzzz', pack.result, deserialize(pack.result));
|
|
199
|
+
const result = deserialize(pack.result);
|
|
200
|
+
if (result?.status !== 1) {
|
|
201
|
+
const statusErr = new TRPCClientError(`${logPrefix}: status error ${JSON.stringify(result)}`);
|
|
202
|
+
statusErr.data = {
|
|
203
|
+
...(statusErr.data || {}),
|
|
204
|
+
reqId: pack.id ?? uuid,
|
|
205
|
+
};
|
|
206
|
+
observer.error(statusErr);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
observer.next({
|
|
210
|
+
result: {
|
|
211
|
+
data: result.data ?? result,
|
|
212
|
+
},
|
|
213
|
+
});
|
|
214
|
+
observer.complete();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
delete client.ioCallbacks[uuid];
|
|
218
|
+
},
|
|
219
|
+
reject: (error) => {
|
|
220
|
+
clearTimeout(timeout);
|
|
221
|
+
let err = error;
|
|
222
|
+
if (!(error instanceof TRPCClientError)) {
|
|
223
|
+
err =
|
|
224
|
+
typeof error === 'string'
|
|
225
|
+
? new TRPCClientError(error)
|
|
226
|
+
: new TRPCClientError(JSON.stringify(error));
|
|
227
|
+
}
|
|
228
|
+
err.data = {
|
|
229
|
+
...(err.data || {}),
|
|
230
|
+
reqId: uuid,
|
|
231
|
+
};
|
|
232
|
+
observer.error(err);
|
|
233
|
+
delete client.ioCallbacks[uuid];
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}),
|
|
237
|
+
],
|
|
238
|
+
});
|
|
239
|
+
return proxy;
|
|
240
|
+
}
|
|
241
|
+
export function bindSocketClientEmit(opts) {
|
|
242
|
+
const { client, socket, backendName = 'socket-client', logPrefix = 'SocketClient', roles = [], requestTimeoutMs = 15000, logging = false, responseIdField = 'id', preferOnAny = false, onServerPush, } = opts;
|
|
243
|
+
client.ioCallbacks = client.ioCallbacks || {};
|
|
244
|
+
client.socket = socket;
|
|
245
|
+
attachTrpcResponseHandler({
|
|
246
|
+
client,
|
|
247
|
+
backendName,
|
|
248
|
+
logging,
|
|
249
|
+
responseIdField,
|
|
250
|
+
preferOnAny,
|
|
251
|
+
onServerPush,
|
|
252
|
+
});
|
|
253
|
+
const emit = createSocketProxyClient({
|
|
254
|
+
client,
|
|
255
|
+
logPrefix,
|
|
256
|
+
roles,
|
|
257
|
+
requestTimeoutMs,
|
|
258
|
+
});
|
|
259
|
+
return emit;
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=socketLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketLink.js","sourceRoot":"","sources":["../../trpc/socketLink.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AnyRouter } from '@trpc/server';
|
|
2
|
+
export type CreateCallerFactory<TRouter extends AnyRouter = AnyRouter> = (router: TRouter) => (ctx: any) => any;
|
|
3
|
+
export interface SocketTrpcHandlerOptions<TRouter extends AnyRouter = AnyRouter> {
|
|
4
|
+
router: TRouter;
|
|
5
|
+
createCallerFactory: CreateCallerFactory<TRouter>;
|
|
6
|
+
log?: (...args: any[]) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function createSocketTrpcHandler<TRouter extends AnyRouter = AnyRouter>({ router, createCallerFactory, log, }: SocketTrpcHandlerOptions<TRouter>): (socket: any, ctx: any, message: any) => Promise<void>;
|
|
9
|
+
export interface AttachSocketTrpcListenerOptions {
|
|
10
|
+
socket: any;
|
|
11
|
+
ctx: any;
|
|
12
|
+
handleSocketTrpc: (socket: any, ctx: any, message: any) => Promise<void>;
|
|
13
|
+
eventName?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function attachSocketTrpcListener(opts: AttachSocketTrpcListenerOptions): () => void;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { serialize, deserialize } from '../rpc';
|
|
2
|
+
export function createSocketTrpcHandler({ router, createCallerFactory, log = console.log, }) {
|
|
3
|
+
const createCaller = createCallerFactory(router);
|
|
4
|
+
return async function handleSocketTrpc(socket, ctx, message) {
|
|
5
|
+
const { id, method, params } = message;
|
|
6
|
+
try {
|
|
7
|
+
const caller = createCaller(ctx);
|
|
8
|
+
log('Seer calling trpc route', method, params);
|
|
9
|
+
const target = method.split('.').reduce((acc, key) => acc[key], caller);
|
|
10
|
+
const result = params ? await target(deserialize(params)) : await target();
|
|
11
|
+
log('Seer sending trpc response', method, params, JSON.stringify(result));
|
|
12
|
+
socket.emit('trpcResponse', { id, result: serialize({ status: 1, data: result }) });
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
let errorMessage = error?.stack + '';
|
|
16
|
+
if (errorMessage.includes("reading '_def'")) {
|
|
17
|
+
errorMessage = 'TRPC handler does not exist: ' + errorMessage;
|
|
18
|
+
log(errorMessage, method, error);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
errorMessage = 'Server error in socket TRPC handler: ' + errorMessage;
|
|
22
|
+
log(errorMessage, method, error);
|
|
23
|
+
}
|
|
24
|
+
socket.emit('trpcResponse', {
|
|
25
|
+
id,
|
|
26
|
+
result: serialize({ status: 0 }),
|
|
27
|
+
error: errorMessage || 'Unknown error occurred',
|
|
28
|
+
meta: { message },
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function attachSocketTrpcListener(opts) {
|
|
34
|
+
const { socket, ctx, handleSocketTrpc, eventName = 'trpc' } = opts;
|
|
35
|
+
const fn = async (message) => {
|
|
36
|
+
await handleSocketTrpc(socket, ctx, message);
|
|
37
|
+
};
|
|
38
|
+
if (typeof socket?.on === 'function') {
|
|
39
|
+
socket.on(eventName, fn);
|
|
40
|
+
}
|
|
41
|
+
return () => {
|
|
42
|
+
if (typeof socket?.off === 'function') {
|
|
43
|
+
socket.off(eventName, fn);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=socketServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketServer.js","sourceRoot":"","sources":["../../trpc/socketServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAehD,MAAM,UAAU,uBAAuB,CAAwC,EAC7E,MAAM,EACN,mBAAmB,EACnB,GAAG,GAAG,OAAO,CAAC,GAAG,GACiB;IAClC,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,KAAK,UAAU,gBAAgB,CAAC,MAAW,EAAE,GAAQ,EAAE,OAAY;QACxE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAEjC,GAAG,CAAC,yBAAyB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAI/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAE7E,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC;YAE3E,GAAG,CAAC,4BAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAE1E,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,YAAY,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,CAAC;YAErC,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC5C,YAAY,GAAG,+BAA+B,GAAG,YAAY,CAAC;gBAC9D,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,uCAAuC,GAAG,YAAY,CAAC;gBACtE,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;gBAC1B,EAAE;gBACF,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBAChC,KAAK,EAAE,YAAY,IAAI,wBAAwB;gBAC/C,IAAI,EAAE,EAAE,OAAO,EAAE;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,wBAAwB,CAAC,IAAqC;IAC5E,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAEnE,MAAM,EAAE,GAAG,KAAK,EAAE,OAAY,EAAE,EAAE;QAChC,MAAM,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,IAAI,OAAO,MAAM,EAAE,EAAE,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,EAAE;QACV,IAAI,OAAO,MAAM,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|