From f11098009ec48d62b6a7baa67b89dc90c4ae4569 Mon Sep 17 00:00:00 2001 From: Ruidy Date: Sat, 14 Nov 2020 16:46:31 +0100 Subject: [PATCH] add .gitignore --- .gitignore | 360 + .idea/dictionaries | 6 - gateway/node_modules/.bin/apollo-pbjs | 1 - gateway/node_modules/.bin/apollo-pbts | 1 - gateway/node_modules/.bin/is-ci | 1 - gateway/node_modules/.bin/mime | 1 - gateway/node_modules/.bin/mkdirp | 1 - gateway/node_modules/.bin/nodemon | 1 - gateway/node_modules/.bin/nodetouch | 1 - gateway/node_modules/.bin/nopt | 1 - gateway/node_modules/.bin/rc | 1 - gateway/node_modules/.bin/rimraf | 1 - gateway/node_modules/.bin/semver | 1 - gateway/node_modules/.bin/sha.js | 1 - gateway/node_modules/.bin/uuid | 1 - gateway/node_modules/.bin/xss | 1 - gateway/node_modules/.yarn-integrity | 430 - .../@apollo/federation/CHANGELOG.md | 191 - .../@apollo/federation/LICENSE.md | 21 - .../node_modules/@apollo/federation/README.md | 40 - .../federation/dist/composition/compose.d.ts | 62 - .../dist/composition/compose.d.ts.map | 1 - .../federation/dist/composition/compose.js | 273 - .../dist/composition/compose.js.map | 1 - .../dist/composition/composeAndValidate.d.ts | 8 - .../composition/composeAndValidate.d.ts.map | 1 - .../dist/composition/composeAndValidate.js | 32 - .../composition/composeAndValidate.js.map | 1 - .../federation/dist/composition/index.d.ts | 7 - .../dist/composition/index.d.ts.map | 1 - .../federation/dist/composition/index.js | 22 - .../federation/dist/composition/index.js.map | 1 - .../dist/composition/normalize.d.ts | 6 - .../dist/composition/normalize.d.ts.map | 1 - .../federation/dist/composition/normalize.js | 145 - .../dist/composition/normalize.js.map | 1 - .../federation/dist/composition/rules.d.ts | 2 - .../dist/composition/rules.d.ts.map | 1 - .../federation/dist/composition/rules.js | 27 - .../federation/dist/composition/rules.js.map | 1 - .../federation/dist/composition/types.d.ts | 75 - .../dist/composition/types.d.ts.map | 1 - .../federation/dist/composition/types.js | 3 - .../federation/dist/composition/types.js.map | 1 - .../federation/dist/composition/utils.d.ts | 64 - .../dist/composition/utils.d.ts.map | 1 - .../federation/dist/composition/utils.js | 324 - .../federation/dist/composition/utils.js.map | 1 - .../dist/composition/validate/index.d.ts | 9 - .../dist/composition/validate/index.d.ts.map | 1 - .../dist/composition/validate/index.js | 57 - .../dist/composition/validate/index.js.map | 1 - .../executableDirectivesIdentical.d.ts | 4 - .../executableDirectivesIdentical.d.ts.map | 1 - .../executableDirectivesIdentical.js | 34 - .../executableDirectivesIdentical.js.map | 1 - .../executableDirectivesInAllServices.d.ts | 4 - ...executableDirectivesInAllServices.d.ts.map | 1 - .../executableDirectivesInAllServices.js | 31 - .../executableDirectivesInAllServices.js.map | 1 - .../externalMissingOnBase.d.ts | 4 - .../externalMissingOnBase.d.ts.map | 1 - .../postComposition/externalMissingOnBase.js | 36 - .../externalMissingOnBase.js.map | 1 - .../postComposition/externalTypeMismatch.d.ts | 3 - .../externalTypeMismatch.d.ts.map | 1 - .../postComposition/externalTypeMismatch.js | 35 - .../externalTypeMismatch.js.map | 1 - .../postComposition/externalUnused.d.ts | 3 - .../postComposition/externalUnused.d.ts.map | 1 - .../postComposition/externalUnused.js | 94 - .../postComposition/externalUnused.js.map | 1 - .../validate/postComposition/index.d.ts | 20 - .../validate/postComposition/index.d.ts.map | 1 - .../validate/postComposition/index.js | 29 - .../validate/postComposition/index.js.map | 1 - .../keyFieldsMissingOnBase.d.ts | 3 - .../keyFieldsMissingOnBase.d.ts.map | 1 - .../postComposition/keyFieldsMissingOnBase.js | 34 - .../keyFieldsMissingOnBase.js.map | 1 - .../keyFieldsSelectInvalidType.d.ts | 3 - .../keyFieldsSelectInvalidType.d.ts.map | 1 - .../keyFieldsSelectInvalidType.js | 45 - .../keyFieldsSelectInvalidType.js.map | 1 - .../postComposition/keysMatchBaseService.d.ts | 3 - .../keysMatchBaseService.d.ts.map | 1 - .../postComposition/keysMatchBaseService.js | 49 - .../keysMatchBaseService.js.map | 1 - .../providesFieldsMissingExternal.d.ts | 3 - .../providesFieldsMissingExternal.d.ts.map | 1 - .../providesFieldsMissingExternal.js | 39 - .../providesFieldsMissingExternal.js.map | 1 - .../providesFieldsSelectInvalidType.d.ts | 3 - .../providesFieldsSelectInvalidType.d.ts.map | 1 - .../providesFieldsSelectInvalidType.js | 55 - .../providesFieldsSelectInvalidType.js.map | 1 - .../postComposition/providesNotOnEntity.d.ts | 3 - .../providesNotOnEntity.d.ts.map | 1 - .../postComposition/providesNotOnEntity.js | 42 - .../providesNotOnEntity.js.map | 1 - .../requiresFieldsMissingExternal.d.ts | 3 - .../requiresFieldsMissingExternal.d.ts.map | 1 - .../requiresFieldsMissingExternal.js | 36 - .../requiresFieldsMissingExternal.js.map | 1 - .../requiresFieldsMissingOnBase.d.ts | 3 - .../requiresFieldsMissingOnBase.d.ts.map | 1 - .../requiresFieldsMissingOnBase.js | 32 - .../requiresFieldsMissingOnBase.js.map | 1 - .../preComposition/duplicateEnumOrScalar.d.ts | 4 - .../duplicateEnumOrScalar.d.ts.map | 1 - .../preComposition/duplicateEnumOrScalar.js | 34 - .../duplicateEnumOrScalar.js.map | 1 - .../preComposition/duplicateEnumValue.d.ts | 4 - .../duplicateEnumValue.d.ts.map | 1 - .../preComposition/duplicateEnumValue.js | 53 - .../preComposition/duplicateEnumValue.js.map | 1 - .../preComposition/externalUsedOnBase.d.ts | 4 - .../externalUsedOnBase.d.ts.map | 1 - .../preComposition/externalUsedOnBase.js | 27 - .../preComposition/externalUsedOnBase.js.map | 1 - .../validate/preComposition/index.d.ts | 7 - .../validate/preComposition/index.d.ts.map | 1 - .../validate/preComposition/index.js | 15 - .../validate/preComposition/index.js.map | 1 - .../keyFieldsMissingExternal.d.ts | 4 - .../keyFieldsMissingExternal.d.ts.map | 1 - .../keyFieldsMissingExternal.js | 61 - .../keyFieldsMissingExternal.js.map | 1 - .../preComposition/requiresUsedOnBase.d.ts | 4 - .../requiresUsedOnBase.d.ts.map | 1 - .../preComposition/requiresUsedOnBase.js | 27 - .../preComposition/requiresUsedOnBase.js.map | 1 - .../preComposition/reservedFieldUsed.d.ts | 4 - .../preComposition/reservedFieldUsed.d.ts.map | 1 - .../preComposition/reservedFieldUsed.js | 31 - .../preComposition/reservedFieldUsed.js.map | 1 - .../validate/preNormalization/index.d.ts | 2 - .../validate/preNormalization/index.d.ts.map | 1 - .../validate/preNormalization/index.js | 5 - .../validate/preNormalization/index.js.map | 1 - .../preNormalization/rootFieldUsed.d.ts | 4 - .../preNormalization/rootFieldUsed.d.ts.map | 1 - .../preNormalization/rootFieldUsed.js | 35 - .../preNormalization/rootFieldUsed.js.map | 1 - .../dist/composition/validate/sdl/index.d.ts | 6 - .../composition/validate/sdl/index.d.ts.map | 1 - .../dist/composition/validate/sdl/index.js | 13 - .../composition/validate/sdl/index.js.map | 1 - .../validate/sdl/matchingEnums.d.ts | 4 - .../validate/sdl/matchingEnums.d.ts.map | 1 - .../composition/validate/sdl/matchingEnums.js | 67 - .../validate/sdl/matchingEnums.js.map | 1 - .../validate/sdl/matchingUnions.d.ts | 4 - .../validate/sdl/matchingUnions.d.ts.map | 1 - .../validate/sdl/matchingUnions.js | 49 - .../validate/sdl/matchingUnions.js.map | 1 - .../validate/sdl/possibleTypeExtensions.d.ts | 4 - .../sdl/possibleTypeExtensions.d.ts.map | 1 - .../validate/sdl/possibleTypeExtensions.js | 90 - .../sdl/possibleTypeExtensions.js.map | 1 - .../sdl/uniqueFieldDefinitionNames.d.ts | 6 - .../sdl/uniqueFieldDefinitionNames.d.ts.map | 1 - .../sdl/uniqueFieldDefinitionNames.js | 95 - .../sdl/uniqueFieldDefinitionNames.js.map | 1 - .../sdl/uniqueTypeNamesWithFields.d.ts | 6 - .../sdl/uniqueTypeNamesWithFields.d.ts.map | 1 - .../validate/sdl/uniqueTypeNamesWithFields.js | 76 - .../sdl/uniqueTypeNamesWithFields.js.map | 1 - .../federation/dist/csdlDirectives.d.ts | 11 - .../federation/dist/csdlDirectives.d.ts.map | 1 - .../@apollo/federation/dist/csdlDirectives.js | 84 - .../federation/dist/csdlDirectives.js.map | 1 - .../@apollo/federation/dist/directives.d.ts | 13 - .../federation/dist/directives.d.ts.map | 1 - .../@apollo/federation/dist/directives.js | 72 - .../@apollo/federation/dist/directives.js.map | 1 - .../@apollo/federation/dist/index.d.ts | 5 - .../@apollo/federation/dist/index.d.ts.map | 1 - .../@apollo/federation/dist/index.js | 17 - .../@apollo/federation/dist/index.js.map | 1 - .../dist/service/buildFederatedSchema.d.ts | 10 - .../service/buildFederatedSchema.d.ts.map | 1 - .../dist/service/buildFederatedSchema.js | 79 - .../dist/service/buildFederatedSchema.js.map | 1 - .../federation/dist/service/index.d.ts | 3 - .../federation/dist/service/index.d.ts.map | 1 - .../@apollo/federation/dist/service/index.js | 15 - .../federation/dist/service/index.js.map | 1 - .../dist/service/printComposedSdl.d.ts | 12 - .../dist/service/printComposedSdl.d.ts.map | 1 - .../dist/service/printComposedSdl.js | 284 - .../dist/service/printComposedSdl.js.map | 1 - .../dist/service/printFederatedSchema.d.ts | 11 - .../service/printFederatedSchema.d.ts.map | 1 - .../dist/service/printFederatedSchema.js | 265 - .../dist/service/printFederatedSchema.js.map | 1 - .../snapshotSerializers/astSerializer.d.ts | 3 - .../astSerializer.d.ts.map | 1 - .../dist/snapshotSerializers/astSerializer.js | 14 - .../snapshotSerializers/astSerializer.js.map | 1 - .../graphqlErrorSerializer.d.ts | 3 - .../graphqlErrorSerializer.d.ts.map | 1 - .../graphqlErrorSerializer.js | 15 - .../graphqlErrorSerializer.js.map | 1 - .../dist/snapshotSerializers/index.d.ts | 12 - .../dist/snapshotSerializers/index.d.ts.map | 1 - .../dist/snapshotSerializers/index.js | 11 - .../dist/snapshotSerializers/index.js.map | 1 - .../selectionSetSerializer.d.ts | 3 - .../selectionSetSerializer.d.ts.map | 1 - .../selectionSetSerializer.js | 12 - .../selectionSetSerializer.js.map | 1 - .../snapshotSerializers/typeSerializer.d.ts | 3 - .../typeSerializer.d.ts.map | 1 - .../snapshotSerializers/typeSerializer.js | 12 - .../snapshotSerializers/typeSerializer.js.map | 1 - .../@apollo/federation/dist/types.d.ts | 20 - .../@apollo/federation/dist/types.d.ts.map | 1 - .../@apollo/federation/dist/types.js | 74 - .../@apollo/federation/dist/types.js.map | 1 - .../@apollo/federation/package.json | 35 - .../federation/src/__tests__/tsconfig.json | 7 - .../src/composition/__tests__/compose.test.ts | 1391 --- .../__tests__/composeAndValidate.test.ts | 878 -- .../composition/__tests__/normalize.test.ts | 410 - .../src/composition/__tests__/tsconfig.json | 8 - .../src/composition/__tests__/utils.test.ts | 88 - .../federation/src/composition/compose.ts | 659 -- .../src/composition/composeAndValidate.ts | 47 - .../federation/src/composition/index.ts | 6 - .../federation/src/composition/normalize.ts | 321 - .../federation/src/composition/rules.ts | 59 - .../federation/src/composition/types.ts | 102 - .../federation/src/composition/utils.ts | 583 -- .../validate/__tests__/tsconfig.json | 5 - .../src/composition/validate/index.ts | 59 - .../executableDirectivesIdentical.test.ts | 122 - .../executableDirectivesInAllServices.test.ts | 91 - .../__tests__/externalMissingOnBase.test.ts | 92 - .../__tests__/externalTypeMismatch.test.ts | 82 - .../__tests__/externalUnused.test.ts | 380 - .../__tests__/keyFieldsMissingOnBase.test.ts | 113 - .../keyFieldsSelectInvalidType.test.ts | 132 - .../__tests__/keysMatchBaseService.test.ts | 117 - .../providesFieldsMissingExternals.test.ts | 106 - .../providesFieldsSelectInvalidType.test.ts | 214 - .../__tests__/providesNotOnEntity.test.ts | 259 - .../requiresFieldsMissingExternals.test.ts | 76 - .../requiresFieldsMissingOnBase.test.ts | 79 - .../postComposition/__tests__/tsconfig.json | 5 - .../executableDirectivesIdentical.ts | 60 - .../executableDirectivesInAllServices.ts | 60 - .../postComposition/externalMissingOnBase.ts | 62 - .../postComposition/externalTypeMismatch.ts | 65 - .../postComposition/externalUnused.ts | 237 - .../validate/postComposition/index.ts | 28 - .../postComposition/keyFieldsMissingOnBase.ts | 52 - .../keyFieldsSelectInvalidType.ts | 85 - .../postComposition/keysMatchBaseService.ts | 86 - .../providesFieldsMissingExternal.ts | 60 - .../providesFieldsSelectInvalidType.ts | 106 - .../postComposition/providesNotOnEntity.ts | 77 - .../requiresFieldsMissingExternal.ts | 57 - .../requiresFieldsMissingOnBase.ts | 54 - .../__tests__/duplicateEnumOrScalar.test.ts | 97 - .../__tests__/duplicateEnumValue.test.ts | 74 - .../__tests__/externalUsedOnBase.test.ts | 51 - .../keyFieldsMissingExternal.test.ts | 181 - .../__tests__/requiresUsedOnBase.test.ts | 51 - .../__tests__/reservedFieldUsed.test.ts | 153 - .../preComposition/__tests__/tsconfig.json | 5 - .../preComposition/duplicateEnumOrScalar.ts | 50 - .../preComposition/duplicateEnumValue.ts | 72 - .../preComposition/externalUsedOnBase.ts | 43 - .../validate/preComposition/index.ts | 6 - .../keyFieldsMissingExternal.ts | 115 - .../preComposition/requiresUsedOnBase.ts | 43 - .../preComposition/reservedFieldUsed.ts | 48 - .../__tests__/rootFieldUsed.test.ts | 170 - .../validate/preNormalization/index.ts | 1 - .../preNormalization/rootFieldUsed.ts | 81 - .../sdl/__tests__/matchingEnums.test.ts | 205 - .../sdl/__tests__/matchingUnions.test.ts | 132 - .../__tests__/possibleTypeExtensions.test.ts | 198 - .../validate/sdl/__tests__/tsconfig.json | 5 - .../uniqueFieldDefinitionNames.test.ts | 268 - .../uniqueTypeNamesWithFields.test.ts | 541 - .../src/composition/validate/sdl/index.ts | 5 - .../composition/validate/sdl/matchingEnums.ts | 123 - .../validate/sdl/matchingUnions.ts | 89 - .../validate/sdl/possibleTypeExtensions.ts | 129 - .../sdl/uniqueFieldDefinitionNames.ts | 208 - .../validate/sdl/uniqueTypeNamesWithFields.ts | 172 - .../@apollo/federation/src/csdlDirectives.ts | 95 - .../@apollo/federation/src/directives.ts | 126 - .../@apollo/federation/src/index.ts | 5 - .../__tests__/buildFederatedSchema.test.ts | 627 -- .../__tests__/printComposedSdl.test.ts | 311 - .../__tests__/printFederatedSchema.test.ts | 216 - .../src/service/__tests__/tsconfig.json | 5 - .../src/service/buildFederatedSchema.ts | 134 - .../@apollo/federation/src/service/index.ts | 2 - .../src/service/printComposedSdl.ts | 514 - .../src/service/printFederatedSchema.ts | 454 - .../src/snapshotSerializers/astSerializer.ts | 21 - .../graphqlErrorSerializer.ts | 15 - .../src/snapshotSerializers/index.ts | 15 - .../selectionSetSerializer.ts | 13 - .../src/snapshotSerializers/typeSerializer.ts | 11 - .../@apollo/federation/src/types.ts | 124 - .../node_modules/@apollo/gateway/CHANGELOG.md | 257 - .../node_modules/@apollo/gateway/LICENSE.md | 21 - .../node_modules/@apollo/gateway/README.md | 27 - .../@apollo/gateway/dist/QueryPlan.d.ts | 56 - .../@apollo/gateway/dist/QueryPlan.d.ts.map | 1 - .../@apollo/gateway/dist/QueryPlan.js | 42 - .../@apollo/gateway/dist/QueryPlan.js.map | 1 - .../@apollo/gateway/dist/buildQueryPlan.d.ts | 17 - .../gateway/dist/buildQueryPlan.d.ts.map | 1 - .../@apollo/gateway/dist/buildQueryPlan.js | 59 - .../gateway/dist/buildQueryPlan.js.map | 1 - .../@apollo/gateway/dist/cache.d.ts | 18 - .../@apollo/gateway/dist/cache.d.ts.map | 1 - .../@apollo/gateway/dist/cache.js | 46 - .../@apollo/gateway/dist/cache.js.map | 1 - .../datasources/LocalGraphQLDataSource.d.ts | 10 - .../LocalGraphQLDataSource.d.ts.map | 1 - .../datasources/LocalGraphQLDataSource.js | 33 - .../datasources/LocalGraphQLDataSource.js.map | 1 - .../datasources/RemoteGraphQLDataSource.d.ts | 18 - .../RemoteGraphQLDataSource.d.ts.map | 1 - .../datasources/RemoteGraphQLDataSource.js | 130 - .../RemoteGraphQLDataSource.js.map | 1 - .../gateway/dist/datasources/index.d.ts | 4 - .../gateway/dist/datasources/index.d.ts.map | 1 - .../@apollo/gateway/dist/datasources/index.js | 7 - .../gateway/dist/datasources/index.js.map | 1 - .../gateway/dist/datasources/types.d.ts | 5 - .../gateway/dist/datasources/types.d.ts.map | 1 - .../@apollo/gateway/dist/datasources/types.js | 3 - .../gateway/dist/datasources/types.js.map | 1 - .../gateway/dist/executeQueryPlan.d.ts | 10 - .../gateway/dist/executeQueryPlan.d.ts.map | 1 - .../@apollo/gateway/dist/executeQueryPlan.js | 289 - .../gateway/dist/executeQueryPlan.js.map | 1 - .../@apollo/gateway/dist/index.d.ts | 124 - .../@apollo/gateway/dist/index.d.ts.map | 1 - .../@apollo/gateway/dist/index.js | 443 - .../@apollo/gateway/dist/index.js.map | 1 - .../dist/loadServicesFromRemoteEndpoint.d.ts | 13 - .../loadServicesFromRemoteEndpoint.d.ts.map | 1 - .../dist/loadServicesFromRemoteEndpoint.js | 52 - .../loadServicesFromRemoteEndpoint.js.map | 1 - .../gateway/dist/loadServicesFromStorage.d.ts | 21 - .../dist/loadServicesFromStorage.d.ts.map | 1 - .../gateway/dist/loadServicesFromStorage.js | 58 - .../dist/loadServicesFromStorage.js.map | 1 - .../snapshotSerializers/astSerializer.d.ts | 5 - .../astSerializer.d.ts.map | 1 - .../dist/snapshotSerializers/astSerializer.js | 76 - .../snapshotSerializers/astSerializer.js.map | 1 - .../dist/snapshotSerializers/index.d.ts | 13 - .../dist/snapshotSerializers/index.d.ts.map | 1 - .../gateway/dist/snapshotSerializers/index.js | 15 - .../dist/snapshotSerializers/index.js.map | 1 - .../queryPlanSerializer.d.ts | 3 - .../queryPlanSerializer.d.ts.map | 1 - .../queryPlanSerializer.js | 84 - .../queryPlanSerializer.js.map | 1 - .../selectionSetSerializer.d.ts | 3 - .../selectionSetSerializer.d.ts.map | 1 - .../selectionSetSerializer.js | 12 - .../selectionSetSerializer.js.map | 1 - .../snapshotSerializers/typeSerializer.d.ts | 3 - .../typeSerializer.d.ts.map | 1 - .../snapshotSerializers/typeSerializer.js | 12 - .../snapshotSerializers/typeSerializer.js.map | 1 - .../@apollo/gateway/dist/utilities/array.d.ts | 4 - .../gateway/dist/utilities/array.d.ts.map | 1 - .../@apollo/gateway/dist/utilities/array.js | 45 - .../gateway/dist/utilities/array.js.map | 1 - .../gateway/dist/utilities/deepMerge.d.ts | 2 - .../gateway/dist/utilities/deepMerge.d.ts.map | 1 - .../gateway/dist/utilities/deepMerge.js | 34 - .../gateway/dist/utilities/deepMerge.js.map | 1 - .../gateway/dist/utilities/graphql.d.ts | 7 - .../gateway/dist/utilities/graphql.d.ts.map | 1 - .../@apollo/gateway/dist/utilities/graphql.js | 39 - .../gateway/dist/utilities/graphql.js.map | 1 - .../gateway/dist/utilities/predicates.d.ts | 2 - .../dist/utilities/predicates.d.ts.map | 1 - .../gateway/dist/utilities/predicates.js | 11 - .../gateway/dist/utilities/predicates.js.map | 1 - .../node_modules/@apollo/gateway/package.json | 46 - .../@apollo/gateway/src/QueryPlan.ts | 127 - .../src/__mocks__/apollo-server-env.ts | 61 - .../__mocks__/make-fetch-happen-fetcher.ts | 51 - .../@apollo/gateway/src/__tests__/.gitkeep | 0 .../gateway/src/__tests__/CucumberREADME.md | 96 - .../build-query-plan-fragmentization.feature | 282 - .../src/__tests__/build-query-plan.feature | 1393 --- .../src/__tests__/buildQueryPlan.test.ts | 1557 --- .../src/__tests__/executeQueryPlan.test.ts | 831 -- .../gateway/src/__tests__/execution-utils.ts | 122 - .../__tests__/gateway/buildService.test.ts | 245 - .../src/__tests__/gateway/executor.test.ts | 125 - .../__tests__/gateway/lifecycle-hooks.test.ts | 268 - .../__tests__/gateway/queryPlanCache.test.ts | 220 - .../src/__tests__/gateway/reporting.test.ts | 609 -- .../integration/abstract-types.test.ts | 830 -- .../src/__tests__/integration/aliases.test.ts | 176 - .../src/__tests__/integration/boolean.test.ts | 277 - .../__tests__/integration/complex-key.test.ts | 217 - .../integration/custom-directives.test.ts | 165 - .../integration/execution-style.test.ts | 35 - .../__tests__/integration/fragments.test.ts | 237 - .../__tests__/integration/list-key.test.ts | 128 - .../src/__tests__/integration/logger.test.ts | 122 - .../integration/merge-arrays.test.ts | 34 - .../integration/multiple-key.test.ts | 328 - .../__tests__/integration/mutations.test.ts | 284 - .../integration/networkRequests.test.ts | 472 - .../src/__tests__/integration/nockMocks.ts | 113 - .../__tests__/integration/provides.test.ts | 77 - .../__tests__/integration/requires.test.ts | 357 - .../integration/single-service.test.ts | 119 - .../src/__tests__/integration/unions.test.ts | 79 - .../__tests__/integration/value-types.test.ts | 382 - .../__tests__/integration/variables.test.ts | 120 - .../loadServicesFromRemoteEndpoint.test.ts | 36 - .../src/__tests__/matchers/toCallService.ts | 105 - .../matchers/toHaveBeenCalledBefore.ts | 40 - .../src/__tests__/matchers/toHaveFetched.ts | 85 - .../src/__tests__/matchers/toMatchAST.ts | 64 - .../src/__tests__/queryPlanCucumber.test.ts | 77 - .../gateway/src/__tests__/testSetup.ts | 4 - .../gateway/src/__tests__/tsconfig.json | 7 - .../@apollo/gateway/src/buildQueryPlan.ts | 103 - .../node_modules/@apollo/gateway/src/cache.ts | 66 - .../src/datasources/LocalGraphQLDataSource.ts | 46 - .../datasources/RemoteGraphQLDataSource.ts | 238 - .../__tests__/LocalGraphQLDataSource.test.ts | 44 - .../__tests__/RemoteGraphQLDataSource.test.ts | 552 -- .../src/datasources/__tests__/tsconfig.json | 7 - .../@apollo/gateway/src/datasources/index.ts | 3 - .../@apollo/gateway/src/datasources/types.ts | 7 - .../@apollo/gateway/src/executeQueryPlan.ts | 527 - .../node_modules/@apollo/gateway/src/index.ts | 845 -- .../src/loadServicesFromRemoteEndpoint.ts | 76 - .../gateway/src/loadServicesFromStorage.ts | 163 - .../gateway/src/make-fetch-happen.d.ts | 59 - .../src/snapshotSerializers/astSerializer.ts | 116 - .../gateway/src/snapshotSerializers/index.ts | 21 - .../queryPlanSerializer.ts | 152 - .../selectionSetSerializer.ts | 13 - .../src/snapshotSerializers/typeSerializer.ts | 11 - .../src/utilities/__tests__/deepMerge.test.ts | 77 - .../@apollo/gateway/src/utilities/array.ts | 55 - .../gateway/src/utilities/deepMerge.ts | 30 - .../@apollo/gateway/src/utilities/graphql.ts | 54 - .../gateway/src/utilities/predicates.ts | 8 - .../@apollo/protobufjs/CHANGELOG.md | 998 -- .../node_modules/@apollo/protobufjs/LICENSE | 39 - .../node_modules/@apollo/protobufjs/README.md | 909 -- .../node_modules/@apollo/protobufjs/bin/pbjs | 6 - .../node_modules/@apollo/protobufjs/bin/pbts | 6 - .../@apollo/protobufjs/cli/LICENSE | 33 - .../@apollo/protobufjs/cli/README.md | 11 - .../@apollo/protobufjs/cli/bin/pbjs | 6 - .../@apollo/protobufjs/cli/bin/pbts | 6 - .../@apollo/protobufjs/cli/index.d.ts | 3 - .../@apollo/protobufjs/cli/index.js | 3 - .../@apollo/protobufjs/cli/lib/tsd-jsdoc.json | 18 - .../protobufjs/cli/lib/tsd-jsdoc/LICENSE | 21 - .../protobufjs/cli/lib/tsd-jsdoc/README.md | 23 - .../protobufjs/cli/lib/tsd-jsdoc/plugin.js | 21 - .../protobufjs/cli/lib/tsd-jsdoc/publish.js | 693 -- .../@apollo/protobufjs/cli/package-lock.json | 183 - .../@apollo/protobufjs/cli/package.json | 7 - .../protobufjs/cli/package.standalone.json | 32 - .../@apollo/protobufjs/cli/pbjs.d.ts | 9 - .../@apollo/protobufjs/cli/pbjs.js | 329 - .../@apollo/protobufjs/cli/pbts.d.ts | 9 - .../@apollo/protobufjs/cli/pbts.js | 201 - .../protobufjs/cli/targets/json-module.js | 38 - .../@apollo/protobufjs/cli/targets/json.js | 8 - .../@apollo/protobufjs/cli/targets/proto.js | 326 - .../@apollo/protobufjs/cli/targets/proto2.js | 10 - .../@apollo/protobufjs/cli/targets/proto3.js | 10 - .../protobufjs/cli/targets/static-module.js | 29 - .../@apollo/protobufjs/cli/targets/static.js | 706 -- .../@apollo/protobufjs/cli/util.js | 183 - .../@apollo/protobufjs/cli/wrappers/amd.js | 7 - .../protobufjs/cli/wrappers/closure.js | 7 - .../protobufjs/cli/wrappers/commonjs.js | 7 - .../protobufjs/cli/wrappers/default.js | 15 - .../@apollo/protobufjs/cli/wrappers/es6.js | 5 - .../@apollo/protobufjs/dist/README.md | 31 - .../@apollo/protobufjs/dist/light/README.md | 31 - .../@apollo/protobufjs/dist/light/protobuf.js | 7175 -------------- .../protobufjs/dist/light/protobuf.js.map | 1 - .../protobufjs/dist/light/protobuf.min.js | 8 - .../protobufjs/dist/light/protobuf.min.js.map | 1 - .../@apollo/protobufjs/dist/minimal/README.md | 31 - .../protobufjs/dist/minimal/protobuf.js | 2675 ----- .../protobufjs/dist/minimal/protobuf.js.map | 1 - .../protobufjs/dist/minimal/protobuf.min.js | 8 - .../dist/minimal/protobuf.min.js.map | 1 - .../@apollo/protobufjs/dist/protobuf.js | 8752 ----------------- .../@apollo/protobufjs/dist/protobuf.js.map | 1 - .../@apollo/protobufjs/dist/protobuf.min.js | 8 - .../protobufjs/dist/protobuf.min.js.map | 1 - .../@apollo/protobufjs/ext/debug/README.md | 4 - .../@apollo/protobufjs/ext/debug/index.js | 71 - .../protobufjs/ext/descriptor/README.md | 72 - .../protobufjs/ext/descriptor/index.d.ts | 193 - .../protobufjs/ext/descriptor/index.js | 1052 -- .../@apollo/protobufjs/ext/descriptor/test.js | 54 - .../@apollo/protobufjs/google/LICENSE | 27 - .../@apollo/protobufjs/google/README.md | 1 - .../protobufjs/google/api/annotations.json | 83 - .../protobufjs/google/api/annotations.proto | 11 - .../@apollo/protobufjs/google/api/http.json | 86 - .../@apollo/protobufjs/google/api/http.proto | 31 - .../protobufjs/google/protobuf/api.json | 118 - .../protobufjs/google/protobuf/api.proto | 34 - .../google/protobuf/descriptor.json | 739 -- .../google/protobuf/descriptor.proto | 286 - .../google/protobuf/source_context.json | 20 - .../google/protobuf/source_context.proto | 7 - .../protobufjs/google/protobuf/type.json | 202 - .../protobufjs/google/protobuf/type.proto | 89 - .../@apollo/protobufjs/index.d.ts | 2685 ----- .../node_modules/@apollo/protobufjs/index.js | 4 - .../@apollo/protobufjs/light.d.ts | 2 - .../node_modules/@apollo/protobufjs/light.js | 4 - .../@apollo/protobufjs/minimal.d.ts | 2 - .../@apollo/protobufjs/minimal.js | 4 - .../node_modules/@types/node/LICENSE | 21 - .../node_modules/@types/node/README.md | 16 - .../node_modules/@types/node/assert.d.ts | 91 - .../node_modules/@types/node/async_hooks.d.ts | 144 - .../node_modules/@types/node/base.d.ts | 19 - .../node_modules/@types/node/buffer.d.ts | 16 - .../@types/node/child_process.d.ts | 369 - .../node_modules/@types/node/cluster.d.ts | 260 - .../node_modules/@types/node/console.d.ts | 3 - .../node_modules/@types/node/constants.d.ts | 449 - .../node_modules/@types/node/crypto.d.ts | 372 - .../node_modules/@types/node/dgram.d.ts | 97 - .../node_modules/@types/node/dns.d.ts | 366 - .../node_modules/@types/node/domain.d.ts | 16 - .../node_modules/@types/node/events.d.ts | 39 - .../node_modules/@types/node/fs.d.ts | 2302 ----- .../node_modules/@types/node/globals.d.ts | 1013 -- .../node_modules/@types/node/http.d.ts | 273 - .../node_modules/@types/node/http2.d.ts | 859 -- .../node_modules/@types/node/https.d.ts | 51 - .../node_modules/@types/node/index.d.ts | 45 - .../node_modules/@types/node/inspector.d.ts | 3162 ------ .../node_modules/@types/node/module.d.ts | 3 - .../node_modules/@types/node/net.d.ts | 251 - .../node_modules/@types/node/os.d.ts | 254 - .../node_modules/@types/node/package.json | 201 - .../node_modules/@types/node/path.d.ts | 159 - .../node_modules/@types/node/perf_hooks.d.ts | 169 - .../node_modules/@types/node/process.d.ts | 3 - .../node_modules/@types/node/punycode.d.ts | 68 - .../node_modules/@types/node/querystring.d.ts | 17 - .../node_modules/@types/node/readline.d.ts | 143 - .../node_modules/@types/node/repl.d.ts | 380 - .../node_modules/@types/node/stream.d.ts | 313 - .../@types/node/string_decoder.d.ts | 9 - .../node_modules/@types/node/timers.d.ts | 16 - .../node_modules/@types/node/tls.d.ts | 459 - .../@types/node/trace_events.d.ts | 61 - .../@types/node/ts3.6/assert.d.ts | 69 - .../node_modules/@types/node/ts3.6/base.d.ts | 54 - .../node_modules/@types/node/ts3.6/index.d.ts | 6 - .../node_modules/@types/node/tty.d.ts | 17 - .../node_modules/@types/node/url.d.ts | 104 - .../node_modules/@types/node/util.d.ts | 175 - .../node_modules/@types/node/v8.d.ts | 28 - .../node_modules/@types/node/vm.d.ts | 79 - .../@types/node/worker_threads.d.ts | 124 - .../node_modules/@types/node/zlib.d.ts | 327 - .../@apollo/protobufjs/package-lock.json | 7464 -------------- .../@apollo/protobufjs/package.json | 122 - .../@apollo/protobufjs/scripts/changelog.js | 150 - .../@apollo/protobufjs/scripts/postinstall.js | 35 - .../@apollo/protobufjs/src/common.js | 399 - .../@apollo/protobufjs/src/converter.js | 304 - .../@apollo/protobufjs/src/decoder.js | 106 - .../@apollo/protobufjs/src/encoder.js | 106 - .../@apollo/protobufjs/src/enum.js | 181 - .../@apollo/protobufjs/src/field.js | 375 - .../@apollo/protobufjs/src/index-light.js | 104 - .../@apollo/protobufjs/src/index-minimal.js | 36 - .../@apollo/protobufjs/src/index.js | 12 - .../@apollo/protobufjs/src/mapfield.js | 126 - .../@apollo/protobufjs/src/message.js | 139 - .../@apollo/protobufjs/src/method.js | 151 - .../@apollo/protobufjs/src/namespace.js | 433 - .../@apollo/protobufjs/src/object.js | 200 - .../@apollo/protobufjs/src/oneof.js | 203 - .../@apollo/protobufjs/src/parse.js | 761 -- .../@apollo/protobufjs/src/reader.js | 405 - .../@apollo/protobufjs/src/reader_buffer.js | 44 - .../@apollo/protobufjs/src/root.js | 353 - .../@apollo/protobufjs/src/roots.js | 18 - .../@apollo/protobufjs/src/rpc.js | 36 - .../@apollo/protobufjs/src/rpc/service.js | 142 - .../@apollo/protobufjs/src/service.js | 167 - .../@apollo/protobufjs/src/tokenize.js | 397 - .../@apollo/protobufjs/src/type.js | 589 -- .../@apollo/protobufjs/src/types.js | 196 - .../@apollo/protobufjs/src/typescript.jsdoc | 22 - .../@apollo/protobufjs/src/util.js | 178 - .../@apollo/protobufjs/src/util/longbits.js | 200 - .../@apollo/protobufjs/src/util/minimal.js | 405 - .../@apollo/protobufjs/src/verifier.js | 185 - .../@apollo/protobufjs/src/wrappers.js | 83 - .../@apollo/protobufjs/src/writer.js | 459 - .../@apollo/protobufjs/src/writer_buffer.js | 81 - .../@apollo/protobufjs/tsconfig.json | 7 - .../@apollo/query-planner-wasm/LICENSE | 21 - .../@apollo/query-planner-wasm/README.md | 14 - .../@apollo/query-planner-wasm/dist/README.md | 14 - .../query-planner-wasm/dist/index.d.ts | 14 - .../@apollo/query-planner-wasm/dist/index.js | 152 - .../query-planner-wasm/dist/index_bg.wasm | Bin 733214 -> 0 bytes .../query-planner-wasm/dist/package.json | 22 - .../@apollo/query-planner-wasm/package.json | 35 - .../@apollographql/apollo-tools/LICENSE | 21 - .../lib/buildServiceDefinition.d.ts | 13 - .../lib/buildServiceDefinition.d.ts.map | 1 - .../lib/buildServiceDefinition.js | 165 - .../lib/buildServiceDefinition.js.map | 1 - .../apollo-tools/lib/index.d.ts | 5 - .../apollo-tools/lib/index.d.ts.map | 1 - .../@apollographql/apollo-tools/lib/index.js | 9 - .../apollo-tools/lib/index.js.map | 1 - .../apollo-tools/lib/schema/index.d.ts | 3 - .../apollo-tools/lib/schema/index.d.ts.map | 1 - .../apollo-tools/lib/schema/index.js | 3 - .../apollo-tools/lib/schema/index.js.map | 1 - .../lib/schema/resolveObject.d.ts | 11 - .../lib/schema/resolveObject.d.ts.map | 1 - .../apollo-tools/lib/schema/resolveObject.js | 3 - .../lib/schema/resolveObject.js.map | 1 - .../apollo-tools/lib/schema/resolverMap.d.ts | 19 - .../lib/schema/resolverMap.d.ts.map | 1 - .../apollo-tools/lib/schema/resolverMap.js | 3 - .../lib/schema/resolverMap.js.map | 1 - .../apollo-tools/lib/utilities/graphql.d.ts | 8 - .../lib/utilities/graphql.d.ts.map | 1 - .../apollo-tools/lib/utilities/graphql.js | 12 - .../apollo-tools/lib/utilities/graphql.js.map | 1 - .../apollo-tools/lib/utilities/index.d.ts | 4 - .../apollo-tools/lib/utilities/index.d.ts.map | 1 - .../apollo-tools/lib/utilities/index.js | 9 - .../apollo-tools/lib/utilities/index.js.map | 1 - .../apollo-tools/lib/utilities/invariant.d.ts | 2 - .../lib/utilities/invariant.d.ts.map | 1 - .../apollo-tools/lib/utilities/invariant.js | 9 - .../lib/utilities/invariant.js.map | 1 - .../lib/utilities/predicates.d.ts | 2 - .../lib/utilities/predicates.d.ts.map | 1 - .../apollo-tools/lib/utilities/predicates.js | 7 - .../lib/utilities/predicates.js.map | 1 - .../@apollographql/apollo-tools/package.json | 52 - .../src/buildServiceDefinition.ts | 241 - .../@apollographql/apollo-tools/src/index.ts | 6 - .../apollo-tools/src/schema/index.ts | 2 - .../apollo-tools/src/schema/resolveObject.ts | 18 - .../apollo-tools/src/schema/resolverMap.ts | 23 - .../apollo-tools/src/utilities/graphql.ts | 22 - .../apollo-tools/src/utilities/index.ts | 3 - .../apollo-tools/src/utilities/invariant.ts | 5 - .../apollo-tools/src/utilities/predicates.ts | 5 - .../apollo-tools/tsconfig.tsbuildinfo | 2599 ----- .../graphql-playground-html/README.md | 5 - .../dist/get-loading-markup.d.ts | 5 - .../dist/get-loading-markup.js | 8 - .../dist/get-loading-markup.js.map | 1 - .../graphql-playground-html/dist/index.d.ts | 1 - .../graphql-playground-html/dist/index.js | 5 - .../graphql-playground-html/dist/index.js.map | 1 - .../dist/render-playground-page.d.ts | 68 - .../dist/render-playground-page.js | 59 - .../dist/render-playground-page.js.map | 1 - .../node_modules/.bin/xss | 1 - .../graphql-playground-html/package.json | 33 - gateway/node_modules/@jest/types/LICENSE | 21 - .../@jest/types/build/Circus.d.ts | 191 - .../node_modules/@jest/types/build/Circus.js | 1 - .../@jest/types/build/Config.d.ts | 433 - .../node_modules/@jest/types/build/Config.js | 1 - .../@jest/types/build/Global.d.ts | 88 - .../node_modules/@jest/types/build/Global.js | 1 - .../@jest/types/build/TestResult.d.ts | 31 - .../@jest/types/build/TestResult.js | 1 - .../@jest/types/build/Transform.d.ts | 12 - .../@jest/types/build/Transform.js | 1 - .../node_modules/@jest/types/build/index.d.ts | 12 - .../node_modules/@jest/types/build/index.js | 1 - .../@jest/types/node_modules/chalk/index.d.ts | 415 - .../@jest/types/node_modules/chalk/license | 9 - .../types/node_modules/chalk/package.json | 68 - .../@jest/types/node_modules/chalk/readme.md | 293 - .../types/node_modules/chalk/source/index.js | 229 - .../node_modules/chalk/source/templates.js | 134 - .../types/node_modules/chalk/source/util.js | 39 - gateway/node_modules/@jest/types/package.json | 26 - .../node_modules/@npmcli/move-file/LICENSE.md | 22 - .../node_modules/@npmcli/move-file/README.md | 68 - .../node_modules/@npmcli/move-file/index.js | 93 - .../move-file/node_modules/.bin/mkdirp | 1 - .../@npmcli/move-file/package.json | 33 - .../@protobufjs/aspromise/LICENSE | 26 - .../@protobufjs/aspromise/README.md | 13 - .../@protobufjs/aspromise/index.d.ts | 13 - .../@protobufjs/aspromise/index.js | 52 - .../@protobufjs/aspromise/package.json | 21 - .../@protobufjs/aspromise/tests/index.js | 130 - .../node_modules/@protobufjs/base64/LICENSE | 26 - .../node_modules/@protobufjs/base64/README.md | 19 - .../@protobufjs/base64/index.d.ts | 32 - .../node_modules/@protobufjs/base64/index.js | 139 - .../@protobufjs/base64/package.json | 21 - .../@protobufjs/base64/tests/index.js | 46 - .../node_modules/@protobufjs/codegen/LICENSE | 26 - .../@protobufjs/codegen/README.md | 49 - .../@protobufjs/codegen/index.d.ts | 31 - .../node_modules/@protobufjs/codegen/index.js | 99 - .../@protobufjs/codegen/package.json | 13 - .../@protobufjs/codegen/tests/index.js | 13 - .../@protobufjs/eventemitter/LICENSE | 26 - .../@protobufjs/eventemitter/README.md | 22 - .../@protobufjs/eventemitter/index.d.ts | 43 - .../@protobufjs/eventemitter/index.js | 76 - .../@protobufjs/eventemitter/package.json | 21 - .../@protobufjs/eventemitter/tests/index.js | 47 - .../node_modules/@protobufjs/fetch/LICENSE | 26 - .../node_modules/@protobufjs/fetch/README.md | 13 - .../node_modules/@protobufjs/fetch/index.d.ts | 56 - .../node_modules/@protobufjs/fetch/index.js | 115 - .../@protobufjs/fetch/package.json | 25 - .../@protobufjs/fetch/tests/index.js | 16 - .../node_modules/@protobufjs/float/LICENSE | 26 - .../node_modules/@protobufjs/float/README.md | 102 - .../@protobufjs/float/bench/index.js | 87 - .../@protobufjs/float/bench/suite.js | 46 - .../node_modules/@protobufjs/float/index.d.ts | 83 - .../node_modules/@protobufjs/float/index.js | 335 - .../@protobufjs/float/package.json | 26 - .../@protobufjs/float/tests/index.js | 100 - .../@protobufjs/inquire/.npmignore | 3 - .../node_modules/@protobufjs/inquire/LICENSE | 26 - .../@protobufjs/inquire/README.md | 13 - .../@protobufjs/inquire/index.d.ts | 9 - .../node_modules/@protobufjs/inquire/index.js | 17 - .../@protobufjs/inquire/package.json | 21 - .../@protobufjs/inquire/tests/data/array.js | 1 - .../inquire/tests/data/emptyArray.js | 1 - .../inquire/tests/data/emptyObject.js | 1 - .../@protobufjs/inquire/tests/data/object.js | 1 - .../@protobufjs/inquire/tests/index.js | 20 - gateway/node_modules/@protobufjs/path/LICENSE | 26 - .../node_modules/@protobufjs/path/README.md | 19 - .../node_modules/@protobufjs/path/index.d.ts | 22 - .../node_modules/@protobufjs/path/index.js | 65 - .../@protobufjs/path/package.json | 21 - .../@protobufjs/path/tests/index.js | 60 - .../node_modules/@protobufjs/pool/.npmignore | 3 - gateway/node_modules/@protobufjs/pool/LICENSE | 26 - .../node_modules/@protobufjs/pool/README.md | 13 - .../node_modules/@protobufjs/pool/index.d.ts | 32 - .../node_modules/@protobufjs/pool/index.js | 48 - .../@protobufjs/pool/package.json | 21 - .../@protobufjs/pool/tests/index.js | 33 - .../node_modules/@protobufjs/utf8/.npmignore | 3 - gateway/node_modules/@protobufjs/utf8/LICENSE | 26 - .../node_modules/@protobufjs/utf8/README.md | 20 - .../node_modules/@protobufjs/utf8/index.d.ts | 24 - .../node_modules/@protobufjs/utf8/index.js | 105 - .../@protobufjs/utf8/package.json | 21 - .../@protobufjs/utf8/tests/data/utf8.txt | 216 - .../@protobufjs/utf8/tests/index.js | 57 - .../@sindresorhus/is/dist/index.d.ts | 132 - .../@sindresorhus/is/dist/index.js | 245 - .../@sindresorhus/is/dist/index.js.map | 1 - gateway/node_modules/@sindresorhus/is/license | 9 - .../@sindresorhus/is/package.json | 63 - .../node_modules/@sindresorhus/is/readme.md | 451 - .../@szmarczak/http-timer/LICENSE | 21 - .../@szmarczak/http-timer/README.md | 70 - .../@szmarczak/http-timer/package.json | 47 - .../@szmarczak/http-timer/source/index.js | 99 - .../@tootallnate/once/dist/index.d.ts | 14 - .../@tootallnate/once/dist/index.js | 39 - .../@tootallnate/once/dist/index.js.map | 1 - .../@tootallnate/once/package.json | 45 - gateway/node_modules/@types/accepts/LICENSE | 21 - gateway/node_modules/@types/accepts/README.md | 16 - .../node_modules/@types/accepts/index.d.ts | 100 - .../node_modules/@types/accepts/package.json | 29 - .../node_modules/@types/body-parser/LICENSE | 21 - .../node_modules/@types/body-parser/README.md | 16 - .../@types/body-parser/index.d.ts | 104 - .../@types/body-parser/package.json | 57 - gateway/node_modules/@types/connect/LICENSE | 21 - gateway/node_modules/@types/connect/README.md | 16 - .../node_modules/@types/connect/index.d.ts | 98 - .../node_modules/@types/connect/package.json | 31 - .../@types/content-disposition/LICENSE | 21 - .../@types/content-disposition/README.md | 16 - .../@types/content-disposition/index.d.ts | 53 - .../@types/content-disposition/package.json | 29 - gateway/node_modules/@types/cookies/LICENSE | 21 - gateway/node_modules/@types/cookies/README.md | 16 - .../node_modules/@types/cookies/index.d.ts | 166 - .../node_modules/@types/cookies/package.json | 39 - gateway/node_modules/@types/cors/LICENSE | 21 - gateway/node_modules/@types/cors/README.md | 16 - gateway/node_modules/@types/cors/index.d.ts | 47 - gateway/node_modules/@types/cors/package.json | 31 - .../@types/express-serve-static-core/LICENSE | 21 - .../express-serve-static-core/README.md | 16 - .../express-serve-static-core/index.d.ts | 1085 -- .../express-serve-static-core/package.json | 63 - gateway/node_modules/@types/express/LICENSE | 21 - gateway/node_modules/@types/express/README.md | 16 - .../node_modules/@types/express/index.d.ts | 116 - .../node_modules/@types/express/package.json | 44 - .../node_modules/@types/fs-capacitor/LICENSE | 21 - .../@types/fs-capacitor/README.md | 16 - .../@types/fs-capacitor/index.d.ts | 18 - .../@types/fs-capacitor/package.json | 26 - .../@types/graphql-upload/LICENSE | 21 - .../@types/graphql-upload/README.md | 16 - .../@types/graphql-upload/index.d.ts | 48 - .../@types/graphql-upload/package.json | 29 - .../node_modules/@types/http-assert/LICENSE | 21 - .../node_modules/@types/http-assert/README.md | 16 - .../@types/http-assert/index.d.ts | 48 - .../@types/http-assert/package.json | 34 - .../node_modules/@types/http-errors/LICENSE | 21 - .../node_modules/@types/http-errors/README.md | 16 - .../@types/http-errors/index.d.ts | 118 - .../@types/http-errors/package.json | 29 - .../@types/istanbul-lib-coverage/LICENSE | 21 - .../@types/istanbul-lib-coverage/README.md | 16 - .../@types/istanbul-lib-coverage/index.d.ts | 118 - .../@types/istanbul-lib-coverage/package.json | 29 - .../@types/istanbul-lib-report/LICENSE | 21 - .../@types/istanbul-lib-report/README.md | 16 - .../@types/istanbul-lib-report/index.d.ts | 191 - .../@types/istanbul-lib-report/package.json | 31 - .../@types/istanbul-reports/LICENSE | 21 - .../@types/istanbul-reports/README.md | 16 - .../@types/istanbul-reports/index.d.ts | 74 - .../@types/istanbul-reports/package.json | 31 - gateway/node_modules/@types/keygrip/LICENSE | 21 - gateway/node_modules/@types/keygrip/README.md | 16 - .../node_modules/@types/keygrip/index.d.ts | 19 - .../node_modules/@types/keygrip/package.json | 24 - .../node_modules/@types/koa-compose/LICENSE | 21 - .../node_modules/@types/koa-compose/README.md | 16 - .../@types/koa-compose/index.d.ts | 57 - .../@types/koa-compose/package.json | 31 - gateway/node_modules/@types/koa/LICENSE | 21 - gateway/node_modules/@types/koa/README.md | 16 - gateway/node_modules/@types/koa/index.d.ts | 730 -- gateway/node_modules/@types/koa/package.json | 53 - gateway/node_modules/@types/long/LICENSE | 21 - gateway/node_modules/@types/long/README.md | 16 - gateway/node_modules/@types/long/index.d.ts | 389 - gateway/node_modules/@types/long/package.json | 24 - gateway/node_modules/@types/mime/LICENSE | 21 - gateway/node_modules/@types/mime/Mime.d.ts | 9 - gateway/node_modules/@types/mime/README.md | 16 - gateway/node_modules/@types/mime/index.d.ts | 15 - gateway/node_modules/@types/mime/lite.d.ts | 7 - gateway/node_modules/@types/mime/package.json | 29 - .../node_modules/@types/node-fetch/LICENSE | 21 - .../node_modules/@types/node-fetch/README.md | 16 - .../@types/node-fetch/externals.d.ts | 21 - .../node_modules/@types/node-fetch/index.d.ts | 219 - .../@types/node-fetch/package.json | 71 - gateway/node_modules/@types/node/LICENSE | 21 - gateway/node_modules/@types/node/README.md | 16 - gateway/node_modules/@types/node/assert.d.ts | 120 - .../node_modules/@types/node/async_hooks.d.ts | 226 - gateway/node_modules/@types/node/base.d.ts | 19 - gateway/node_modules/@types/node/buffer.d.ts | 22 - .../@types/node/child_process.d.ts | 509 - gateway/node_modules/@types/node/cluster.d.ts | 262 - gateway/node_modules/@types/node/console.d.ts | 133 - .../node_modules/@types/node/constants.d.ts | 8 - gateway/node_modules/@types/node/crypto.d.ts | 775 -- gateway/node_modules/@types/node/dgram.d.ts | 141 - gateway/node_modules/@types/node/dns.d.ts | 371 - gateway/node_modules/@types/node/domain.d.ts | 24 - gateway/node_modules/@types/node/events.d.ts | 83 - gateway/node_modules/@types/node/fs.d.ts | 2239 ----- .../node_modules/@types/node/fs/promises.d.ts | 555 -- gateway/node_modules/@types/node/globals.d.ts | 607 -- .../@types/node/globals.global.d.ts | 1 - gateway/node_modules/@types/node/http.d.ts | 422 - gateway/node_modules/@types/node/http2.d.ts | 952 -- gateway/node_modules/@types/node/https.d.ts | 37 - gateway/node_modules/@types/node/index.d.ts | 61 - .../node_modules/@types/node/inspector.d.ts | 3041 ------ gateway/node_modules/@types/node/module.d.ts | 52 - gateway/node_modules/@types/node/net.d.ts | 268 - gateway/node_modules/@types/node/os.d.ts | 239 - gateway/node_modules/@types/node/package.json | 251 - gateway/node_modules/@types/node/path.d.ts | 153 - .../node_modules/@types/node/perf_hooks.d.ts | 271 - gateway/node_modules/@types/node/process.d.ts | 408 - .../node_modules/@types/node/punycode.d.ts | 68 - .../node_modules/@types/node/querystring.d.ts | 28 - .../node_modules/@types/node/readline.d.ts | 171 - gateway/node_modules/@types/node/repl.d.ts | 395 - gateway/node_modules/@types/node/stream.d.ts | 354 - .../@types/node/string_decoder.d.ts | 7 - gateway/node_modules/@types/node/timers.d.ts | 16 - gateway/node_modules/@types/node/tls.d.ts | 779 -- .../@types/node/trace_events.d.ts | 61 - .../@types/node/ts3.4/assert.d.ts | 98 - .../node_modules/@types/node/ts3.4/base.d.ts | 56 - .../@types/node/ts3.4/globals.global.d.ts | 1 - .../node_modules/@types/node/ts3.4/index.d.ts | 8 - .../node_modules/@types/node/ts3.6/base.d.ts | 22 - .../node_modules/@types/node/ts3.6/index.d.ts | 7 - gateway/node_modules/@types/node/tty.d.ts | 66 - gateway/node_modules/@types/node/url.d.ts | 110 - gateway/node_modules/@types/node/util.d.ts | 196 - gateway/node_modules/@types/node/v8.d.ts | 187 - gateway/node_modules/@types/node/vm.d.ts | 146 - gateway/node_modules/@types/node/wasi.d.ts | 86 - .../@types/node/worker_threads.d.ts | 238 - gateway/node_modules/@types/node/zlib.d.ts | 361 - gateway/node_modules/@types/qs/LICENSE | 21 - gateway/node_modules/@types/qs/README.md | 16 - gateway/node_modules/@types/qs/index.d.ts | 62 - gateway/node_modules/@types/qs/package.json | 64 - .../node_modules/@types/range-parser/LICENSE | 21 - .../@types/range-parser/README.md | 16 - .../@types/range-parser/index.d.ts | 35 - .../@types/range-parser/package.json | 23 - .../node_modules/@types/serve-static/LICENSE | 21 - .../@types/serve-static/README.md | 16 - .../@types/serve-static/index.d.ts | 108 - .../@types/serve-static/package.json | 37 - gateway/node_modules/@types/ws/LICENSE | 21 - gateway/node_modules/@types/ws/README.md | 16 - gateway/node_modules/@types/ws/index.d.ts | 277 - gateway/node_modules/@types/ws/package.json | 56 - .../node_modules/@types/yargs-parser/LICENSE | 21 - .../@types/yargs-parser/README.md | 16 - .../@types/yargs-parser/index.d.ts | 106 - .../@types/yargs-parser/package.json | 24 - gateway/node_modules/@types/yargs/LICENSE | 21 - gateway/node_modules/@types/yargs/README.md | 16 - gateway/node_modules/@types/yargs/index.d.ts | 835 -- .../node_modules/@types/yargs/package.json | 61 - gateway/node_modules/@types/yargs/yargs.d.ts | 9 - gateway/node_modules/@wry/equality/LICENSE | 21 - gateway/node_modules/@wry/equality/README.md | 4 - .../@wry/equality/lib/equality.d.ts | 5 - .../@wry/equality/lib/equality.esm.js | 129 - .../@wry/equality/lib/equality.esm.js.map | 1 - .../@wry/equality/lib/equality.js | 133 - .../@wry/equality/lib/equality.js.map | 1 - .../node_modules/@wry/equality/package.json | 32 - .../@wry/equality/rollup.config.js | 40 - .../node_modules/@wry/equality/tsconfig.json | 7 - .../@wry/equality/tsconfig.rollup.json | 6 - gateway/node_modules/abbrev/LICENSE | 46 - gateway/node_modules/abbrev/README.md | 23 - gateway/node_modules/abbrev/abbrev.js | 61 - gateway/node_modules/abbrev/package.json | 21 - gateway/node_modules/accepts/HISTORY.md | 236 - gateway/node_modules/accepts/LICENSE | 23 - gateway/node_modules/accepts/README.md | 142 - gateway/node_modules/accepts/index.js | 238 - gateway/node_modules/accepts/package.json | 47 - gateway/node_modules/agent-base/README.md | 145 - .../agent-base/dist/src/index.d.ts | 78 - .../node_modules/agent-base/dist/src/index.js | 203 - .../agent-base/dist/src/index.js.map | 1 - .../agent-base/dist/src/promisify.d.ts | 4 - .../agent-base/dist/src/promisify.js | 18 - .../agent-base/dist/src/promisify.js.map | 1 - .../agent-base/node_modules/debug/LICENSE | 19 - .../agent-base/node_modules/debug/README.md | 455 - .../node_modules/debug/package.json | 59 - .../node_modules/debug/src/browser.js | 259 - .../node_modules/debug/src/common.js | 264 - .../node_modules/debug/src/index.js | 10 - .../agent-base/node_modules/debug/src/node.js | 257 - gateway/node_modules/agent-base/package.json | 64 - gateway/node_modules/agent-base/src/index.ts | 345 - .../node_modules/agent-base/src/promisify.ts | 33 - .../node_modules/agentkeepalive/History.md | 227 - gateway/node_modules/agentkeepalive/LICENSE | 23 - gateway/node_modules/agentkeepalive/README.md | 241 - .../node_modules/agentkeepalive/browser.js | 5 - .../node_modules/agentkeepalive/index.d.ts | 62 - gateway/node_modules/agentkeepalive/index.js | 5 - .../node_modules/agentkeepalive/lib/agent.js | 397 - .../agentkeepalive/lib/constants.js | 14 - .../agentkeepalive/lib/https_agent.js | 51 - .../agentkeepalive/node_modules/debug/LICENSE | 19 - .../node_modules/debug/README.md | 455 - .../node_modules/debug/package.json | 59 - .../node_modules/debug/src/browser.js | 259 - .../node_modules/debug/src/common.js | 264 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 257 - .../node_modules/agentkeepalive/package.json | 66 - .../node_modules/aggregate-error/index.d.ts | 51 - gateway/node_modules/aggregate-error/index.js | 47 - gateway/node_modules/aggregate-error/license | 9 - .../node_modules/aggregate-error/package.json | 41 - .../node_modules/aggregate-error/readme.md | 61 - gateway/node_modules/ansi-align/CHANGELOG.md | 51 - gateway/node_modules/ansi-align/LICENSE | 13 - gateway/node_modules/ansi-align/README.md | 80 - gateway/node_modules/ansi-align/index.js | 61 - .../node_modules/ansi-regex/index.js | 14 - .../node_modules/ansi-regex/license | 9 - .../node_modules/ansi-regex/package.json | 53 - .../node_modules/ansi-regex/readme.md | 87 - .../node_modules/emoji-regex/LICENSE-MIT.txt | 20 - .../node_modules/emoji-regex/README.md | 73 - .../node_modules/emoji-regex/es2015/index.js | 6 - .../node_modules/emoji-regex/es2015/text.js | 6 - .../node_modules/emoji-regex/index.d.ts | 5 - .../node_modules/emoji-regex/index.js | 6 - .../node_modules/emoji-regex/package.json | 51 - .../node_modules/emoji-regex/text.js | 6 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../is-fullwidth-code-point/package.json | 45 - .../is-fullwidth-code-point/readme.md | 39 - .../node_modules/string-width/index.js | 39 - .../node_modules/string-width/license | 9 - .../node_modules/string-width/package.json | 56 - .../node_modules/string-width/readme.md | 45 - .../node_modules/strip-ansi/index.d.ts | 15 - .../node_modules/strip-ansi/index.js | 7 - .../node_modules/strip-ansi/license | 9 - .../node_modules/strip-ansi/package.json | 54 - .../node_modules/strip-ansi/readme.md | 61 - gateway/node_modules/ansi-align/package.json | 43 - gateway/node_modules/ansi-regex/index.d.ts | 37 - gateway/node_modules/ansi-regex/index.js | 10 - gateway/node_modules/ansi-regex/license | 9 - gateway/node_modules/ansi-regex/package.json | 55 - gateway/node_modules/ansi-regex/readme.md | 78 - gateway/node_modules/ansi-styles/index.d.ts | 345 - gateway/node_modules/ansi-styles/index.js | 163 - gateway/node_modules/ansi-styles/license | 9 - gateway/node_modules/ansi-styles/package.json | 56 - gateway/node_modules/ansi-styles/readme.md | 152 - gateway/node_modules/anymatch/LICENSE | 15 - gateway/node_modules/anymatch/README.md | 87 - gateway/node_modules/anymatch/index.d.ts | 19 - gateway/node_modules/anymatch/index.js | 102 - gateway/node_modules/anymatch/package.json | 48 - .../apollo-cache-control/CHANGELOG.md | 39 - .../node_modules/apollo-cache-control/LICENSE | 21 - .../apollo-cache-control/README.md | 119 - .../apollo-cache-control/dist/index.d.ts | 44 - .../apollo-cache-control/dist/index.d.ts.map | 1 - .../apollo-cache-control/dist/index.js | 148 - .../apollo-cache-control/dist/index.js.map | 1 - .../apollo-cache-control/package.json | 21 - .../__tests__/cacheControlDirective.test.ts | 248 - .../src/__tests__/cacheControlPlugin.test.ts | 172 - .../src/__tests__/cacheControlSupport.ts | 33 - .../src/__tests__/collectCacheControlHints.ts | 41 - .../src/__tests__/dynamicCacheControl.test.ts | 163 - .../src/__tests__/tsconfig.json | 7 - .../apollo-cache-control/src/index.ts | 281 - .../node_modules/apollo-datasource/LICENSE | 21 - .../apollo-datasource/dist/index.d.ts | 9 - .../apollo-datasource/dist/index.d.ts.map | 1 - .../apollo-datasource/dist/index.js | 7 - .../apollo-datasource/dist/index.js.map | 1 - .../apollo-datasource/package.json | 25 - .../apollo-datasource/src/index.ts | 10 - gateway/node_modules/apollo-env/LICENSE | 21 - .../apollo-env/lib/fetch/fetch.d.ts | 7 - .../apollo-env/lib/fetch/fetch.d.ts.map | 1 - .../apollo-env/lib/fetch/fetch.js | 9 - .../apollo-env/lib/fetch/fetch.js.map | 1 - .../apollo-env/lib/fetch/global.d.ts | 22 - .../apollo-env/lib/fetch/global.d.ts.map | 1 - .../apollo-env/lib/fetch/global.js | 2 - .../apollo-env/lib/fetch/global.js.map | 1 - .../apollo-env/lib/fetch/index.d.ts | 3 - .../apollo-env/lib/fetch/index.d.ts.map | 1 - .../apollo-env/lib/fetch/index.js | 8 - .../apollo-env/lib/fetch/index.js.map | 1 - .../apollo-env/lib/fetch/url.d.ts | 7 - .../apollo-env/lib/fetch/url.d.ts.map | 1 - .../node_modules/apollo-env/lib/fetch/url.js | 6 - .../apollo-env/lib/fetch/url.js.map | 1 - .../node_modules/apollo-env/lib/index.d.ts | 5 - .../apollo-env/lib/index.d.ts.map | 1 - gateway/node_modules/apollo-env/lib/index.js | 9 - .../node_modules/apollo-env/lib/index.js.map | 1 - .../apollo-env/lib/polyfills/array.d.ts | 9 - .../apollo-env/lib/polyfills/array.d.ts.map | 1 - .../apollo-env/lib/polyfills/array.js | 5 - .../apollo-env/lib/polyfills/array.js.map | 1 - .../apollo-env/lib/polyfills/index.d.ts | 3 - .../apollo-env/lib/polyfills/index.d.ts.map | 1 - .../apollo-env/lib/polyfills/index.js | 5 - .../apollo-env/lib/polyfills/index.js.map | 1 - .../apollo-env/lib/polyfills/object.d.ts | 7 - .../apollo-env/lib/polyfills/object.d.ts.map | 1 - .../apollo-env/lib/polyfills/object.js | 4 - .../apollo-env/lib/polyfills/object.js.map | 1 - .../lib/typescript-utility-types.d.ts | 5 - .../lib/typescript-utility-types.d.ts.map | 1 - .../lib/typescript-utility-types.js | 3 - .../lib/typescript-utility-types.js.map | 1 - .../apollo-env/lib/utils/createHash.d.ts | 2 - .../apollo-env/lib/utils/createHash.d.ts.map | 1 - .../apollo-env/lib/utils/createHash.js | 11 - .../apollo-env/lib/utils/createHash.js.map | 1 - .../apollo-env/lib/utils/index.d.ts | 5 - .../apollo-env/lib/utils/index.d.ts.map | 1 - .../apollo-env/lib/utils/index.js | 10 - .../apollo-env/lib/utils/index.js.map | 1 - .../apollo-env/lib/utils/isNodeLike.d.ts | 2 - .../apollo-env/lib/utils/isNodeLike.d.ts.map | 1 - .../apollo-env/lib/utils/isNodeLike.js | 8 - .../apollo-env/lib/utils/isNodeLike.js.map | 1 - .../apollo-env/lib/utils/mapValues.d.ts | 2 - .../apollo-env/lib/utils/mapValues.d.ts.map | 1 - .../apollo-env/lib/utils/mapValues.js | 11 - .../apollo-env/lib/utils/mapValues.js.map | 1 - .../apollo-env/lib/utils/predicates.d.ts | 2 - .../apollo-env/lib/utils/predicates.d.ts.map | 1 - .../apollo-env/lib/utils/predicates.js | 7 - .../apollo-env/lib/utils/predicates.js.map | 1 - .../apollo-env/node_modules/.bin/sha.js | 1 - .../node_modules/@types/node-fetch/LICENSE | 21 - .../node_modules/@types/node-fetch/README.md | 16 - .../@types/node-fetch/externals.d.ts | 21 - .../node_modules/@types/node-fetch/index.d.ts | 223 - .../@types/node-fetch/package.json | 82 - gateway/node_modules/apollo-env/package.json | 24 - .../apollo-env/src/fetch/fetch.ts | 32 - .../apollo-env/src/fetch/global.ts | 26 - .../apollo-env/src/fetch/index.d.ts | 2 - .../apollo-env/src/fetch/index.ts | 2 - .../apollo-env/src/fetch/tsconfig.json | 13 - .../node_modules/apollo-env/src/fetch/url.ts | 9 - gateway/node_modules/apollo-env/src/index.ts | 5 - .../apollo-env/src/polyfills/array.ts | 17 - .../apollo-env/src/polyfills/index.ts | 2 - .../apollo-env/src/polyfills/object.ts | 7 - .../src/typescript-utility-types.ts | 2 - .../apollo-env/src/utils/createHash.ts | 10 - .../apollo-env/src/utils/index.ts | 4 - .../apollo-env/src/utils/isNodeLike.ts | 6 - .../apollo-env/src/utils/mapValues.ts | 12 - .../apollo-env/src/utils/predicates.ts | 5 - gateway/node_modules/apollo-env/tsconfig.json | 9 - .../apollo-env/tsconfig.tsbuildinfo | 591 -- .../node_modules/apollo-graphql/CHANGELOG.md | 4 - gateway/node_modules/apollo-graphql/LICENSE | 21 - gateway/node_modules/apollo-graphql/README.md | 1 - .../apollo-graphql/lib/index.d.ts | 3 - .../apollo-graphql/lib/index.d.ts.map | 1 - .../node_modules/apollo-graphql/lib/index.js | 13 - .../apollo-graphql/lib/index.js.map | 1 - .../apollo-graphql/lib/operationId.d.ts | 8 - .../apollo-graphql/lib/operationId.d.ts.map | 1 - .../apollo-graphql/lib/operationId.js | 31 - .../apollo-graphql/lib/operationId.js.map | 1 - .../schema/GraphQLSchemaValidationError.d.ts | 6 - .../GraphQLSchemaValidationError.d.ts.map | 1 - .../schema/GraphQLSchemaValidationError.js | 13 - .../GraphQLSchemaValidationError.js.map | 1 - .../lib/schema/buildSchemaFromSDL.d.ts | 10 - .../lib/schema/buildSchemaFromSDL.d.ts.map | 1 - .../lib/schema/buildSchemaFromSDL.js | 205 - .../lib/schema/buildSchemaFromSDL.js.map | 1 - .../apollo-graphql/lib/schema/index.d.ts | 6 - .../apollo-graphql/lib/schema/index.d.ts.map | 1 - .../apollo-graphql/lib/schema/index.js | 9 - .../apollo-graphql/lib/schema/index.js.map | 1 - .../lib/schema/resolveObject.d.ts | 11 - .../lib/schema/resolveObject.d.ts.map | 1 - .../lib/schema/resolveObject.js | 3 - .../lib/schema/resolveObject.js.map | 1 - .../lib/schema/resolverMap.d.ts | 12 - .../lib/schema/resolverMap.d.ts.map | 1 - .../apollo-graphql/lib/schema/resolverMap.js | 3 - .../lib/schema/resolverMap.js.map | 1 - .../lib/schema/transformSchema.d.ts | 5 - .../lib/schema/transformSchema.d.ts.map | 1 - .../lib/schema/transformSchema.js | 64 - .../lib/schema/transformSchema.js.map | 1 - .../apollo-graphql/lib/transforms.d.ts | 8 - .../apollo-graphql/lib/transforms.d.ts.map | 1 - .../apollo-graphql/lib/transforms.js | 109 - .../apollo-graphql/lib/transforms.js.map | 1 - .../apollo-graphql/lib/utilities/graphql.d.ts | 4 - .../lib/utilities/graphql.d.ts.map | 1 - .../apollo-graphql/lib/utilities/graphql.js | 12 - .../lib/utilities/graphql.js.map | 1 - .../node_modules/apollo-graphql/package.json | 47 - .../__snapshots__/operationId.test.ts.snap | 35 - .../src/__tests__/operationId.test.ts | 305 - .../src/__tests__/transforms.test.ts | 77 - .../src/__tests__/tsconfig.json | 7 - .../node_modules/apollo-graphql/src/index.ts | 9 - .../apollo-graphql/src/operationId.ts | 111 - .../schema/GraphQLSchemaValidationError.ts | 11 - .../__tests__/buildSchemaFromSDL.test.ts | 554 -- .../snapshotSerializers/astSerializer.ts | 24 - .../graphQLTypeSerializer.ts | 19 - .../selectionSetSerializer.ts | 21 - .../src/schema/__tests__/tsconfig.json | 7 - .../src/schema/buildSchemaFromSDL.ts | 297 - .../apollo-graphql/src/schema/index.ts | 5 - .../src/schema/resolveObject.ts | 18 - .../apollo-graphql/src/schema/resolverMap.ts | 17 - .../src/schema/transformSchema.ts | 148 - .../apollo-graphql/src/transforms.ts | 207 - .../apollo-graphql/src/utilities/graphql.ts | 9 - gateway/node_modules/apollo-link/CHANGELOG.md | 57 - gateway/node_modules/apollo-link/LICENSE | 21 - gateway/node_modules/apollo-link/README.md | 69 - .../apollo-link/lib/bundle.cjs.js | 212 - .../apollo-link/lib/bundle.cjs.js.map | 1 - .../apollo-link/lib/bundle.esm.js | 191 - .../apollo-link/lib/bundle.esm.js.map | 1 - .../apollo-link/lib/bundle.umd.js | 213 - .../apollo-link/lib/bundle.umd.js.map | 1 - .../node_modules/apollo-link/lib/index.d.ts | 6 - .../apollo-link/lib/index.d.ts.map | 1 - gateway/node_modules/apollo-link/lib/index.js | 14 - .../node_modules/apollo-link/lib/index.js.map | 1 - .../node_modules/apollo-link/lib/link.d.ts | 18 - .../apollo-link/lib/link.d.ts.map | 1 - gateway/node_modules/apollo-link/lib/link.js | 87 - .../node_modules/apollo-link/lib/link.js.map | 1 - .../apollo-link/lib/linkUtils.d.ts | 19 - .../apollo-link/lib/linkUtils.d.ts.map | 1 - .../node_modules/apollo-link/lib/linkUtils.js | 122 - .../apollo-link/lib/linkUtils.js.map | 1 - .../apollo-link/lib/test-utils.d.ts | 5 - .../apollo-link/lib/test-utils.d.ts.map | 1 - .../apollo-link/lib/test-utils.js | 9 - .../apollo-link/lib/test-utils.js.map | 1 - .../apollo-link/lib/test-utils/mockLink.d.ts | 8 - .../lib/test-utils/mockLink.d.ts.map | 1 - .../apollo-link/lib/test-utils/mockLink.js | 19 - .../lib/test-utils/mockLink.js.map | 1 - .../lib/test-utils/setContext.d.ts | 9 - .../lib/test-utils/setContext.d.ts.map | 1 - .../apollo-link/lib/test-utils/setContext.js | 20 - .../lib/test-utils/setContext.js.map | 1 - .../lib/test-utils/testingUtils.d.ts | 12 - .../lib/test-utils/testingUtils.d.ts.map | 1 - .../lib/test-utils/testingUtils.js | 38 - .../lib/test-utils/testingUtils.js.map | 1 - .../node_modules/apollo-link/lib/types.d.ts | 34 - .../apollo-link/lib/types.d.ts.map | 1 - gateway/node_modules/apollo-link/lib/types.js | 3 - .../node_modules/apollo-link/lib/types.js.map | 1 - gateway/node_modules/apollo-link/package.json | 72 - .../apollo-reporting-protobuf/LICENSE | 21 - .../apollo-reporting-protobuf/README.md | 30 - .../apollo-reporting-protobuf/dist/index.d.ts | 2 - .../apollo-reporting-protobuf/dist/index.js | 31 - .../dist/protobuf.d.ts | 3100 ------ .../dist/protobuf.js | 8448 ---------------- .../dist/reports.proto | 387 - .../node_modules/.bin/apollo-pbjs | 1 - .../node_modules/.bin/apollo-pbts | 1 - .../apollo-reporting-protobuf/package.json | 37 - .../src/.editorconfig | 12 - .../apollo-reporting-protobuf/src/index.d.ts | 2 - .../apollo-reporting-protobuf/src/index.js | 31 - .../src/reports.proto | 387 - .../apollo-server-caching/LICENSE | 21 - .../apollo-server-caching/README.md | 46 - .../dist/InMemoryLRUCache.d.ts | 17 - .../dist/InMemoryLRUCache.d.ts.map | 1 - .../dist/InMemoryLRUCache.js | 59 - .../dist/InMemoryLRUCache.js.map | 1 - .../dist/KeyValueCache.d.ts | 13 - .../dist/KeyValueCache.d.ts.map | 1 - .../dist/KeyValueCache.js | 4 - .../dist/KeyValueCache.js.map | 1 - .../dist/PrefixingKeyValueCache.d.ts | 10 - .../dist/PrefixingKeyValueCache.d.ts.map | 1 - .../dist/PrefixingKeyValueCache.js | 20 - .../dist/PrefixingKeyValueCache.js.map | 1 - .../apollo-server-caching/dist/index.d.ts | 4 - .../apollo-server-caching/dist/index.d.ts.map | 1 - .../apollo-server-caching/dist/index.js | 7 - .../apollo-server-caching/dist/index.js.map | 1 - .../apollo-server-caching/package.json | 24 - .../src/InMemoryLRUCache.ts | 53 - .../src/KeyValueCache.ts | 23 - .../src/PrefixingKeyValueCache.ts | 25 - .../src/__tests__/InMemoryLRUCache.test.ts | 11 - .../__tests__/PrefixingKeyValueCache.test.ts | 14 - .../src/__tests__/testsuite.ts | 76 - .../src/__tests__/tsconfig.json | 7 - .../apollo-server-caching/src/index.ts | 7 - .../apollo-server-core/CHANGELOG.md | 15 - .../node_modules/apollo-server-core/LICENSE | 21 - .../node_modules/apollo-server-core/README.md | 7 - .../apollo-server-core/dist/ApolloServer.d.ts | 46 - .../dist/ApolloServer.d.ts.map | 1 - .../apollo-server-core/dist/ApolloServer.js | 615 -- .../dist/ApolloServer.js.map | 1 - .../dist/determineApolloConfig.d.ts | 4 - .../dist/determineApolloConfig.d.ts.map | 1 - .../dist/determineApolloConfig.js | 78 - .../dist/determineApolloConfig.js.map | 1 - .../dist/graphqlOptions.d.ts | 40 - .../dist/graphqlOptions.d.ts.map | 1 - .../apollo-server-core/dist/graphqlOptions.js | 24 - .../dist/graphqlOptions.js.map | 1 - .../apollo-server-core/dist/index.d.ts | 16 - .../apollo-server-core/dist/index.d.ts.map | 1 - .../apollo-server-core/dist/index.js | 50 - .../apollo-server-core/dist/index.js.map | 1 - .../dist/nodeHttpToRequest.d.ts | 5 - .../dist/nodeHttpToRequest.d.ts.map | 1 - .../dist/nodeHttpToRequest.js | 22 - .../dist/nodeHttpToRequest.js.map | 1 - .../apollo-server-core/dist/playground.d.ts | 22 - .../dist/playground.d.ts.map | 1 - .../apollo-server-core/dist/playground.js | 35 - .../apollo-server-core/dist/playground.js.map | 1 - .../apollo-server-core/dist/plugin/index.d.ts | 14 - .../dist/plugin/index.d.ts.map | 1 - .../apollo-server-core/dist/plugin/index.js | 28 - .../dist/plugin/index.js.map | 1 - .../dist/plugin/inlineTrace/index.d.ts | 8 - .../dist/plugin/inlineTrace/index.d.ts.map | 1 - .../dist/plugin/inlineTrace/index.js | 51 - .../dist/plugin/inlineTrace/index.js.map | 1 - .../dist/plugin/internalPlugin.d.ts | 8 - .../dist/plugin/internalPlugin.d.ts.map | 1 - .../dist/plugin/internalPlugin.js | 8 - .../dist/plugin/internalPlugin.js.map | 1 - .../dist/plugin/schemaReporting/index.d.ts | 9 - .../plugin/schemaReporting/index.d.ts.map | 1 - .../dist/plugin/schemaReporting/index.js | 97 - .../dist/plugin/schemaReporting/index.js.map | 1 - .../reportingOperationTypes.d.ts | 56 - .../reportingOperationTypes.d.ts.map | 1 - .../reportingOperationTypes.js | 19 - .../reportingOperationTypes.js.map | 1 - .../schemaReporting/schemaReporter.d.ts | 40 - .../schemaReporting/schemaReporter.d.ts.map | 1 - .../plugin/schemaReporting/schemaReporter.js | 176 - .../schemaReporting/schemaReporter.js.map | 1 - .../dist/plugin/traceTreeBuilder.d.ts | 25 - .../dist/plugin/traceTreeBuilder.d.ts.map | 1 - .../dist/plugin/traceTreeBuilder.js | 159 - .../dist/plugin/traceTreeBuilder.js.map | 1 - .../usageReporting/durationHistogram.d.ts | 16 - .../usageReporting/durationHistogram.d.ts.map | 1 - .../usageReporting/durationHistogram.js | 66 - .../usageReporting/durationHistogram.js.map | 1 - .../dist/plugin/usageReporting/index.d.ts | 4 - .../dist/plugin/usageReporting/index.d.ts.map | 1 - .../dist/plugin/usageReporting/index.js | 8 - .../dist/plugin/usageReporting/index.js.map | 1 - .../plugin/usageReporting/legacyOptions.d.ts | 42 - .../usageReporting/legacyOptions.d.ts.map | 1 - .../plugin/usageReporting/legacyOptions.js | 82 - .../usageReporting/legacyOptions.js.map | 1 - .../dist/plugin/usageReporting/options.d.ts | 47 - .../plugin/usageReporting/options.d.ts.map | 1 - .../dist/plugin/usageReporting/options.js | 3 - .../dist/plugin/usageReporting/options.js.map | 1 - .../dist/plugin/usageReporting/plugin.d.ts | 8 - .../plugin/usageReporting/plugin.d.ts.map | 1 - .../dist/plugin/usageReporting/plugin.js | 431 - .../dist/plugin/usageReporting/plugin.js.map | 1 - .../plugin/usageReporting/signatureCache.d.ts | 7 - .../usageReporting/signatureCache.d.ts.map | 1 - .../plugin/usageReporting/signatureCache.js | 38 - .../usageReporting/signatureCache.js.map | 1 - .../plugin/usageReporting/traceDetails.d.ts | 4 - .../usageReporting/traceDetails.d.ts.map | 1 - .../plugin/usageReporting/traceDetails.js | 64 - .../plugin/usageReporting/traceDetails.js.map | 1 - .../dist/processFileUploads.d.ts | 3 - .../dist/processFileUploads.d.ts.map | 1 - .../dist/processFileUploads.js | 15 - .../dist/processFileUploads.js.map | 1 - .../dist/requestPipeline.d.ts | 33 - .../dist/requestPipeline.d.ts.map | 1 - .../dist/requestPipeline.js | 362 - .../dist/requestPipeline.js.map | 1 - .../dist/requestPipelineAPI.d.ts | 2 - .../dist/requestPipelineAPI.d.ts.map | 1 - .../dist/requestPipelineAPI.js | 5 - .../dist/requestPipelineAPI.js.map | 1 - .../apollo-server-core/dist/runHttpQuery.d.ts | 33 - .../dist/runHttpQuery.d.ts.map | 1 - .../apollo-server-core/dist/runHttpQuery.js | 274 - .../dist/runHttpQuery.js.map | 1 - .../apollo-server-core/dist/types.d.ts | 75 - .../apollo-server-core/dist/types.d.ts.map | 1 - .../apollo-server-core/dist/types.js | 5 - .../apollo-server-core/dist/types.js.map | 1 - .../dist/utils/createSHA.d.ts | 2 - .../dist/utils/createSHA.d.ts.map | 1 - .../dist/utils/createSHA.js | 14 - .../dist/utils/createSHA.js.map | 1 - .../dist/utils/dispatcher.d.ts | 17 - .../dist/utils/dispatcher.d.ts.map | 1 - .../dist/utils/dispatcher.js | 71 - .../dist/utils/dispatcher.js.map | 1 - .../dist/utils/isDirectiveDefined.d.ts | 3 - .../dist/utils/isDirectiveDefined.d.ts.map | 1 - .../dist/utils/isDirectiveDefined.js | 16 - .../dist/utils/isDirectiveDefined.js.map | 1 - .../dist/utils/isNodeLike.d.ts | 3 - .../dist/utils/isNodeLike.d.ts.map | 1 - .../dist/utils/isNodeLike.js | 8 - .../dist/utils/isNodeLike.js.map | 1 - .../dist/utils/pluginTestHarness.d.ts | 19 - .../dist/utils/pluginTestHarness.d.ts.map | 1 - .../dist/utils/pluginTestHarness.js | 133 - .../dist/utils/pluginTestHarness.js.map | 1 - .../dist/utils/runtimeSupportsUploads.d.ts | 3 - .../utils/runtimeSupportsUploads.d.ts.map | 1 - .../dist/utils/runtimeSupportsUploads.js | 20 - .../dist/utils/runtimeSupportsUploads.js.map | 1 - .../dist/utils/schemaHash.d.ts | 4 - .../dist/utils/schemaHash.d.ts.map | 1 - .../dist/utils/schemaHash.js | 34 - .../dist/utils/schemaHash.js.map | 1 - .../dist/utils/schemaInstrumentation.d.ts | 11 - .../dist/utils/schemaInstrumentation.d.ts.map | 1 - .../dist/utils/schemaInstrumentation.js | 100 - .../dist/utils/schemaInstrumentation.js.map | 1 - .../node_modules/.bin/sha.js | 1 - .../apollo-server-core/node_modules/.bin/uuid | 1 - .../node_modules/uuid/CHANGELOG.md | 223 - .../node_modules/uuid/CONTRIBUTING.md | 18 - .../node_modules/uuid/LICENSE.md | 9 - .../node_modules/uuid/README.md | 488 - .../node_modules/uuid/dist/bin/uuid | 2 - .../uuid/dist/esm-browser/index.js | 9 - .../node_modules/uuid/dist/esm-browser/md5.js | 215 - .../node_modules/uuid/dist/esm-browser/nil.js | 1 - .../uuid/dist/esm-browser/parse.js | 35 - .../uuid/dist/esm-browser/regex.js | 1 - .../node_modules/uuid/dist/esm-browser/rng.js | 14 - .../uuid/dist/esm-browser/sha1.js | 96 - .../uuid/dist/esm-browser/stringify.js | 30 - .../node_modules/uuid/dist/esm-browser/v1.js | 95 - .../node_modules/uuid/dist/esm-browser/v3.js | 4 - .../node_modules/uuid/dist/esm-browser/v35.js | 64 - .../node_modules/uuid/dist/esm-browser/v4.js | 24 - .../node_modules/uuid/dist/esm-browser/v5.js | 4 - .../uuid/dist/esm-browser/validate.js | 7 - .../uuid/dist/esm-browser/version.js | 11 - .../node_modules/uuid/dist/esm-node/index.js | 9 - .../node_modules/uuid/dist/esm-node/md5.js | 13 - .../node_modules/uuid/dist/esm-node/nil.js | 1 - .../node_modules/uuid/dist/esm-node/parse.js | 35 - .../node_modules/uuid/dist/esm-node/regex.js | 1 - .../node_modules/uuid/dist/esm-node/rng.js | 12 - .../node_modules/uuid/dist/esm-node/sha1.js | 13 - .../uuid/dist/esm-node/stringify.js | 29 - .../node_modules/uuid/dist/esm-node/v1.js | 95 - .../node_modules/uuid/dist/esm-node/v3.js | 4 - .../node_modules/uuid/dist/esm-node/v35.js | 64 - .../node_modules/uuid/dist/esm-node/v4.js | 24 - .../node_modules/uuid/dist/esm-node/v5.js | 4 - .../uuid/dist/esm-node/validate.js | 7 - .../uuid/dist/esm-node/version.js | 11 - .../node_modules/uuid/dist/index.js | 79 - .../node_modules/uuid/dist/md5-browser.js | 223 - .../node_modules/uuid/dist/md5.js | 23 - .../node_modules/uuid/dist/nil.js | 8 - .../node_modules/uuid/dist/parse.js | 45 - .../node_modules/uuid/dist/regex.js | 8 - .../node_modules/uuid/dist/rng-browser.js | 21 - .../node_modules/uuid/dist/rng.js | 24 - .../node_modules/uuid/dist/sha1-browser.js | 104 - .../node_modules/uuid/dist/sha1.js | 23 - .../node_modules/uuid/dist/stringify.js | 39 - .../node_modules/uuid/dist/umd/uuid.min.js | 1 - .../node_modules/uuid/dist/umd/uuidNIL.min.js | 1 - .../uuid/dist/umd/uuidParse.min.js | 1 - .../uuid/dist/umd/uuidStringify.min.js | 1 - .../uuid/dist/umd/uuidValidate.min.js | 1 - .../uuid/dist/umd/uuidVersion.min.js | 1 - .../node_modules/uuid/dist/umd/uuidv1.min.js | 1 - .../node_modules/uuid/dist/umd/uuidv3.min.js | 1 - .../node_modules/uuid/dist/umd/uuidv4.min.js | 1 - .../node_modules/uuid/dist/umd/uuidv5.min.js | 1 - .../node_modules/uuid/dist/uuid-bin.js | 85 - .../node_modules/uuid/dist/v1.js | 107 - .../node_modules/uuid/dist/v3.js | 16 - .../node_modules/uuid/dist/v35.js | 78 - .../node_modules/uuid/dist/v4.js | 37 - .../node_modules/uuid/dist/v5.js | 16 - .../node_modules/uuid/dist/validate.js | 17 - .../node_modules/uuid/dist/version.js | 21 - .../node_modules/uuid/package.json | 135 - .../node_modules/uuid/wrapper.mjs | 10 - .../apollo-server-core/package.json | 59 - .../apollo-server-core/src/ApolloServer.ts | 1047 -- .../src/__tests__/ApolloServerBase.test.ts | 160 - .../src/__tests__/dataSources.test.ts | 105 - .../src/__tests__/errors.test.ts | 227 - .../src/__tests__/isDirectiveDefined.test.ts | 69 - .../src/__tests__/logger.test.ts | 137 - .../src/__tests__/runHttpQuery.test.ts | 89 - .../src/__tests__/runQuery.test.ts | 1437 --- .../src/__tests__/tsconfig.json | 9 - .../src/determineApolloConfig.ts | 111 - .../apollo-server-core/src/graphqlOptions.ts | 98 - .../apollo-server-core/src/index.ts | 61 - .../src/nodeHttpToRequest.ts | 19 - .../apollo-server-core/src/playground.ts | 73 - .../apollo-server-core/src/plugin/index.ts | 77 - .../src/plugin/inlineTrace/index.ts | 87 - .../src/plugin/internalPlugin.ts | 30 - .../computeExecutableSchemaId.test.ts | 62 - .../schemaReporting/__tests__/index.test.ts | 54 - .../__tests__/schemaReporter.test.ts | 170 - .../src/plugin/schemaReporting/index.ts | 168 - .../reportingOperationTypes.ts | 91 - .../plugin/schemaReporting/schemaReporter.ts | 249 - .../src/plugin/traceTreeBuilder.ts | 271 - .../__tests__/durationHistogram.test.ts | 116 - .../__tests__/legacyOptions.test.ts | 95 - .../usageReporting/__tests__/plugin.test.ts | 286 - .../__tests__/signatureCache.test.ts | 13 - .../__tests__/traceDetails.test.ts | 227 - .../usageReporting/__tests__/tsconfig.json | 7 - .../usageReporting/durationHistogram.ts | 80 - .../src/plugin/usageReporting/index.ts | 15 - .../plugin/usageReporting/legacyOptions.ts | 172 - .../src/plugin/usageReporting/options.ts | 225 - .../src/plugin/usageReporting/plugin.ts | 763 -- .../plugin/usageReporting/signatureCache.ts | 56 - .../src/plugin/usageReporting/traceDetails.ts | 96 - .../src/processFileUploads.ts | 16 - .../apollo-server-core/src/requestPipeline.ts | 738 -- .../src/requestPipelineAPI.ts | 12 - .../apollo-server-core/src/runHttpQuery.ts | 460 - .../apollo-server-core/src/types.ts | 141 - .../apollo-server-core/src/utils/createSHA.ts | 10 - .../src/utils/dispatcher.ts | 91 - .../src/utils/isDirectiveDefined.ts | 22 - .../src/utils/isNodeLike.ts | 11 - .../src/utils/pluginTestHarness.ts | 281 - .../src/utils/runtimeSupportsUploads.ts | 20 - .../src/utils/schemaHash.ts | 45 - .../src/utils/schemaInstrumentation.ts | 172 - .../node_modules/apollo-server-env/LICENSE | 21 - .../node_modules/apollo-server-env/README.md | 9 - .../apollo-server-env/dist/fetch.d.ts | 121 - .../apollo-server-env/dist/global.d.ts | 26 - .../apollo-server-env/dist/index.browser.js | 45 - .../dist/index.browser.js.map | 1 - .../apollo-server-env/dist/index.d.ts | 3 - .../apollo-server-env/dist/index.js | 24 - .../apollo-server-env/dist/index.js.map | 1 - .../dist/polyfills/Object.entries.js | 7 - .../dist/polyfills/Object.entries.js.map | 1 - .../dist/polyfills/Object.values.js | 7 - .../dist/polyfills/Object.values.js.map | 1 - .../apollo-server-env/dist/polyfills/fetch.js | 8 - .../dist/polyfills/fetch.js.map | 1 - .../apollo-server-env/dist/polyfills/url.js | 6 - .../dist/polyfills/url.js.map | 1 - .../dist/typescript-utility-types.d.ts | 2 - .../apollo-server-env/dist/url.d.ts | 41 - .../dist/utils/runtimeSupportsPromisify.js | 20 - .../utils/runtimeSupportsPromisify.js.map | 1 - .../apollo-server-env/package.json | 31 - .../apollo-server-env/src/fetch.d.ts | 121 - .../apollo-server-env/src/global.d.ts | 26 - .../apollo-server-env/src/index.browser.js | 45 - .../apollo-server-env/src/index.d.ts | 3 - .../apollo-server-env/src/index.ts | 11 - .../src/polyfills/Object.entries.ts | 5 - .../src/polyfills/Object.values.ts | 5 - .../apollo-server-env/src/polyfills/fetch.js | 1 - .../apollo-server-env/src/polyfills/url.js | 1 - .../src/typescript-utility-types.d.ts | 2 - .../apollo-server-env/src/url.d.ts | 41 - .../src/utils/runtimeSupportsPromisify.ts | 24 - .../node_modules/apollo-server-errors/LICENSE | 21 - .../apollo-server-errors/dist/index.d.ts | 50 - .../apollo-server-errors/dist/index.d.ts.map | 1 - .../apollo-server-errors/dist/index.js | 189 - .../apollo-server-errors/dist/index.js.map | 1 - .../apollo-server-errors/package.json | 24 - .../src/__tests__/ApolloError.test.ts | 49 - .../src/__tests__/tsconfig.json | 7 - .../apollo-server-errors/src/index.ts | 308 - .../apollo-server-express/LICENSE | 21 - .../apollo-server-express/README.md | 94 - .../dist/ApolloServer.d.ts | 33 - .../dist/ApolloServer.d.ts.map | 1 - .../dist/ApolloServer.js | 145 - .../dist/ApolloServer.js.map | 1 - .../dist/connectApollo.d.ts | 3 - .../dist/connectApollo.d.ts.map | 1 - .../dist/connectApollo.js | 6 - .../dist/connectApollo.js.map | 1 - .../dist/expressApollo.d.ts | 8 - .../dist/expressApollo.d.ts.map | 1 - .../dist/expressApollo.js | 50 - .../dist/expressApollo.js.map | 1 - .../apollo-server-express/dist/index.d.ts | 7 - .../apollo-server-express/dist/index.d.ts.map | 1 - .../apollo-server-express/dist/index.js | 29 - .../apollo-server-express/dist/index.js.map | 1 - .../node_modules/@types/express/LICENSE | 21 - .../node_modules/@types/express/README.md | 16 - .../node_modules/@types/express/index.d.ts | 116 - .../node_modules/@types/express/package.json | 44 - .../apollo-server-express/package.json | 55 - .../apollo-server-express/src/ApolloServer.ts | 229 - .../src/__tests__/ApolloServer.test.ts | 891 -- .../src/__tests__/connectApollo.test.ts | 28 - .../src/__tests__/datasource.test.ts | 156 - .../src/__tests__/expressApollo.test.ts | 36 - .../src/__tests__/tsconfig.json | 8 - .../src/connectApollo.ts | 3 - .../src/expressApollo.ts | 76 - .../apollo-server-express/src/index.ts | 33 - .../apollo-server-plugin-base/CHANGELOG.md | 4 - .../apollo-server-plugin-base/LICENSE | 21 - .../apollo-server-plugin-base/README.md | 1 - .../apollo-server-plugin-base/dist/index.d.ts | 28 - .../dist/index.d.ts.map | 1 - .../apollo-server-plugin-base/dist/index.js | 3 - .../dist/index.js.map | 1 - .../apollo-server-plugin-base/package.json | 20 - .../apollo-server-plugin-base/src/index.ts | 122 - .../apollo-server-types/CHANGELOG.md | 4 - .../node_modules/apollo-server-types/LICENSE | 21 - .../apollo-server-types/README.md | 4 - .../apollo-server-types/dist/index.d.ts | 119 - .../apollo-server-types/dist/index.d.ts.map | 1 - .../apollo-server-types/dist/index.js | 8 - .../apollo-server-types/dist/index.js.map | 1 - .../apollo-server-types/package.json | 22 - .../apollo-server-types/src/index.ts | 239 - .../node_modules/apollo-server/CHANGELOG.md | 8 - gateway/node_modules/apollo-server/LICENSE | 21 - gateway/node_modules/apollo-server/README.md | 165 - .../apollo-server/dist/exports.d.ts | 5 - .../apollo-server/dist/exports.d.ts.map | 1 - .../apollo-server/dist/exports.js | 27 - .../apollo-server/dist/exports.js.map | 1 - .../apollo-server/dist/index.d.ts | 28 - .../apollo-server/dist/index.d.ts.map | 1 - .../node_modules/apollo-server/dist/index.js | 105 - .../apollo-server/dist/index.js.map | 1 - .../node_modules/apollo-server/package.json | 35 - .../apollo-server/src/__tests__/index.test.ts | 227 - .../apollo-server/src/__tests__/tsconfig.json | 7 - .../node_modules/apollo-server/src/exports.ts | 25 - .../node_modules/apollo-server/src/index.ts | 141 - gateway/node_modules/apollo-tracing/LICENSE | 21 - gateway/node_modules/apollo-tracing/README.md | 24 - .../apollo-tracing/dist/index.d.ts | 19 - .../apollo-tracing/dist/index.d.ts.map | 1 - .../node_modules/apollo-tracing/dist/index.js | 72 - .../apollo-tracing/dist/index.js.map | 1 - .../node_modules/apollo-tracing/package.json | 21 - .../node_modules/apollo-tracing/src/index.ts | 147 - .../node_modules/apollo-utilities/.flowconfig | 8 - .../apollo-utilities/CHANGELOG.md | 106 - gateway/node_modules/apollo-utilities/LICENSE | 22 - .../apollo-utilities/jest.config.js | 3 - .../apollo-utilities/lib/bundle.cjs.js | 1125 --- .../apollo-utilities/lib/bundle.cjs.js.map | 1 - .../apollo-utilities/lib/bundle.cjs.min.js | 1 - .../apollo-utilities/lib/bundle.esm.js | 915 -- .../apollo-utilities/lib/bundle.esm.js.map | 1 - .../apollo-utilities/lib/bundle.umd.js | 1131 --- .../apollo-utilities/lib/bundle.umd.js.map | 1 - .../apollo-utilities/lib/directives.d.ts | 19 - .../apollo-utilities/lib/directives.d.ts.map | 1 - .../apollo-utilities/lib/directives.js | 71 - .../apollo-utilities/lib/directives.js.map | 1 - .../apollo-utilities/lib/fragments.d.ts | 3 - .../apollo-utilities/lib/fragments.d.ts.map | 1 - .../apollo-utilities/lib/fragments.js | 42 - .../apollo-utilities/lib/fragments.js.map | 1 - .../apollo-utilities/lib/getFromAST.d.ts | 20 - .../apollo-utilities/lib/getFromAST.d.ts.map | 1 - .../apollo-utilities/lib/getFromAST.js | 131 - .../apollo-utilities/lib/getFromAST.js.map | 1 - .../apollo-utilities/lib/index.d.ts | 17 - .../apollo-utilities/lib/index.d.ts.map | 1 - .../apollo-utilities/lib/index.js | 20 - .../apollo-utilities/lib/index.js.map | 1 - .../apollo-utilities/lib/storeUtils.d.ts | 39 - .../apollo-utilities/lib/storeUtils.d.ts.map | 1 - .../apollo-utilities/lib/storeUtils.js | 225 - .../apollo-utilities/lib/storeUtils.js.map | 1 - .../apollo-utilities/lib/transform.d.ts | 26 - .../apollo-utilities/lib/transform.d.ts.map | 1 - .../apollo-utilities/lib/transform.js | 311 - .../apollo-utilities/lib/transform.js.map | 1 - .../apollo-utilities/lib/util/assign.d.ts | 6 - .../apollo-utilities/lib/util/assign.d.ts.map | 1 - .../apollo-utilities/lib/util/assign.js | 19 - .../apollo-utilities/lib/util/assign.js.map | 1 - .../apollo-utilities/lib/util/canUse.d.ts | 2 - .../apollo-utilities/lib/util/canUse.d.ts.map | 1 - .../apollo-utilities/lib/util/canUse.js | 5 - .../apollo-utilities/lib/util/canUse.js.map | 1 - .../apollo-utilities/lib/util/cloneDeep.d.ts | 2 - .../lib/util/cloneDeep.d.ts.map | 1 - .../apollo-utilities/lib/util/cloneDeep.js | 34 - .../lib/util/cloneDeep.js.map | 1 - .../lib/util/environment.d.ts | 6 - .../lib/util/environment.d.ts.map | 1 - .../apollo-utilities/lib/util/environment.js | 26 - .../lib/util/environment.js.map | 1 - .../lib/util/errorHandling.d.ts | 4 - .../lib/util/errorHandling.d.ts.map | 1 - .../lib/util/errorHandling.js | 18 - .../lib/util/errorHandling.js.map | 1 - .../lib/util/filterInPlace.d.ts | 2 - .../lib/util/filterInPlace.d.ts.map | 1 - .../lib/util/filterInPlace.js | 14 - .../lib/util/filterInPlace.js.map | 1 - .../apollo-utilities/lib/util/isEqual.d.ts | 2 - .../lib/util/isEqual.d.ts.map | 1 - .../apollo-utilities/lib/util/isEqual.js | 5 - .../apollo-utilities/lib/util/isEqual.js.map | 1 - .../lib/util/maybeDeepFreeze.d.ts | 2 - .../lib/util/maybeDeepFreeze.d.ts.map | 1 - .../lib/util/maybeDeepFreeze.js | 25 - .../lib/util/maybeDeepFreeze.js.map | 1 - .../apollo-utilities/lib/util/mergeDeep.d.ts | 4 - .../lib/util/mergeDeep.d.ts.map | 1 - .../apollo-utilities/lib/util/mergeDeep.js | 64 - .../lib/util/mergeDeep.js.map | 1 - .../lib/util/stripSymbols.d.ts | 2 - .../lib/util/stripSymbols.d.ts.map | 1 - .../apollo-utilities/lib/util/stripSymbols.js | 7 - .../lib/util/stripSymbols.js.map | 1 - .../apollo-utilities/lib/util/warnOnce.d.ts | 2 - .../lib/util/warnOnce.d.ts.map | 1 - .../apollo-utilities/lib/util/warnOnce.js | 20 - .../apollo-utilities/lib/util/warnOnce.js.map | 1 - .../apollo-utilities/package.json | 48 - .../src/__tests__/directives.ts | 274 - .../src/__tests__/fragments.ts | 327 - .../src/__tests__/getFromAST.ts | 316 - .../src/__tests__/storeUtils.ts | 23 - .../src/__tests__/transform.ts | 1242 --- .../apollo-utilities/src/declarations.d.ts | 1 - .../apollo-utilities/src/directives.ts | 127 - .../apollo-utilities/src/fragments.ts | 92 - .../apollo-utilities/src/getFromAST.ts | 233 - .../apollo-utilities/src/index.js.flow | 220 - .../apollo-utilities/src/index.ts | 16 - .../apollo-utilities/src/storeUtils.ts | 340 - .../apollo-utilities/src/transform.ts | 542 - .../src/util/__tests__/assign.ts | 47 - .../src/util/__tests__/cloneDeep.ts | 70 - .../src/util/__tests__/environment.ts | 70 - .../src/util/__tests__/isEqual.ts | 174 - .../src/util/__tests__/maybeDeepFeeze.ts | 17 - .../src/util/__tests__/mergeDeep.ts | 139 - .../src/util/__tests__/stripSymbols.ts | 15 - .../src/util/__tests__/warnOnce.ts | 61 - .../apollo-utilities/src/util/assign.ts | 31 - .../apollo-utilities/src/util/canUse.ts | 4 - .../apollo-utilities/src/util/cloneDeep.ts | 37 - .../apollo-utilities/src/util/environment.ts | 24 - .../src/util/errorHandling.ts | 15 - .../src/util/filterInPlace.ts | 14 - .../apollo-utilities/src/util/isEqual.ts | 1 - .../src/util/maybeDeepFreeze.ts | 33 - .../apollo-utilities/src/util/mergeDeep.ts | 115 - .../apollo-utilities/src/util/stripSymbols.ts | 14 - .../apollo-utilities/src/util/warnOnce.ts | 24 - gateway/node_modules/array-flatten/LICENSE | 21 - gateway/node_modules/array-flatten/README.md | 43 - .../array-flatten/array-flatten.js | 64 - .../node_modules/array-flatten/package.json | 39 - .../node_modules/async-limiter/.eslintignore | 2 - gateway/node_modules/async-limiter/.nycrc | 10 - .../node_modules/async-limiter/.travis.yml | 9 - gateway/node_modules/async-limiter/LICENSE | 8 - gateway/node_modules/async-limiter/index.js | 67 - .../node_modules/async-limiter/package.json | 35 - gateway/node_modules/async-limiter/readme.md | 132 - gateway/node_modules/async-retry/LICENSE.md | 21 - gateway/node_modules/async-retry/README.md | 53 - gateway/node_modules/async-retry/lib/index.js | 60 - gateway/node_modules/async-retry/package.json | 55 - gateway/node_modules/asynckit/LICENSE | 21 - gateway/node_modules/asynckit/README.md | 233 - gateway/node_modules/asynckit/bench.js | 76 - gateway/node_modules/asynckit/index.js | 6 - gateway/node_modules/asynckit/lib/abort.js | 29 - gateway/node_modules/asynckit/lib/async.js | 34 - gateway/node_modules/asynckit/lib/defer.js | 26 - gateway/node_modules/asynckit/lib/iterate.js | 75 - .../asynckit/lib/readable_asynckit.js | 91 - .../asynckit/lib/readable_parallel.js | 25 - .../asynckit/lib/readable_serial.js | 25 - .../asynckit/lib/readable_serial_ordered.js | 29 - gateway/node_modules/asynckit/lib/state.js | 37 - .../node_modules/asynckit/lib/streamify.js | 141 - .../node_modules/asynckit/lib/terminator.js | 29 - gateway/node_modules/asynckit/package.json | 63 - gateway/node_modules/asynckit/parallel.js | 43 - gateway/node_modules/asynckit/serial.js | 17 - .../node_modules/asynckit/serialOrdered.js | 75 - gateway/node_modules/asynckit/stream.js | 21 - gateway/node_modules/backo2/.npmignore | 1 - gateway/node_modules/backo2/History.md | 12 - gateway/node_modules/backo2/Makefile | 8 - gateway/node_modules/backo2/Readme.md | 34 - gateway/node_modules/backo2/component.json | 11 - gateway/node_modules/backo2/index.js | 85 - gateway/node_modules/backo2/package.json | 15 - gateway/node_modules/backo2/test/index.js | 18 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - gateway/node_modules/balanced-match/README.md | 91 - gateway/node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 49 - .../binary-extensions/binary-extensions.json | 256 - .../binary-extensions.json.d.ts | 3 - .../node_modules/binary-extensions/index.d.ts | 14 - .../node_modules/binary-extensions/index.js | 1 - .../node_modules/binary-extensions/license | 9 - .../binary-extensions/package.json | 38 - .../node_modules/binary-extensions/readme.md | 41 - gateway/node_modules/body-parser/HISTORY.md | 609 -- gateway/node_modules/body-parser/LICENSE | 23 - gateway/node_modules/body-parser/README.md | 443 - gateway/node_modules/body-parser/index.js | 157 - gateway/node_modules/body-parser/lib/read.js | 181 - .../body-parser/lib/types/json.js | 230 - .../node_modules/body-parser/lib/types/raw.js | 101 - .../body-parser/lib/types/text.js | 121 - .../body-parser/lib/types/urlencoded.js | 284 - gateway/node_modules/body-parser/package.json | 52 - gateway/node_modules/boxen/index.d.ts | 175 - gateway/node_modules/boxen/index.js | 139 - gateway/node_modules/boxen/license | 9 - gateway/node_modules/boxen/package.json | 51 - gateway/node_modules/boxen/readme.md | 187 - gateway/node_modules/brace-expansion/LICENSE | 21 - .../node_modules/brace-expansion/README.md | 129 - gateway/node_modules/brace-expansion/index.js | 201 - .../node_modules/brace-expansion/package.json | 47 - gateway/node_modules/braces/CHANGELOG.md | 184 - gateway/node_modules/braces/LICENSE | 21 - gateway/node_modules/braces/README.md | 593 -- gateway/node_modules/braces/index.js | 170 - gateway/node_modules/braces/lib/compile.js | 57 - gateway/node_modules/braces/lib/constants.js | 57 - gateway/node_modules/braces/lib/expand.js | 113 - gateway/node_modules/braces/lib/parse.js | 333 - gateway/node_modules/braces/lib/stringify.js | 32 - gateway/node_modules/braces/lib/utils.js | 112 - gateway/node_modules/braces/package.json | 77 - gateway/node_modules/busboy/.travis.yml | 16 - gateway/node_modules/busboy/LICENSE | 19 - gateway/node_modules/busboy/README.md | 222 - .../busboy/deps/encoding/encoding-indexes.js | 73 - .../busboy/deps/encoding/encoding.js | 2391 ----- gateway/node_modules/busboy/lib/main.js | 88 - .../busboy/lib/types/multipart.js | 325 - .../busboy/lib/types/urlencoded.js | 214 - gateway/node_modules/busboy/lib/utils.js | 172 - gateway/node_modules/busboy/package.json | 16 - .../test/test-types-multipart-stream-pause.js | 80 - .../busboy/test/test-types-multipart.js | 343 - .../busboy/test/test-types-urlencoded.js | 183 - .../busboy/test/test-utils-decoder.js | 66 - .../busboy/test/test-utils-parse-params.js | 96 - gateway/node_modules/busboy/test/test.js | 4 - gateway/node_modules/bytes/History.md | 87 - gateway/node_modules/bytes/LICENSE | 23 - gateway/node_modules/bytes/Readme.md | 126 - gateway/node_modules/bytes/index.js | 162 - gateway/node_modules/bytes/package.json | 41 - gateway/node_modules/cacache/CHANGELOG.md | 794 -- gateway/node_modules/cacache/LICENSE.md | 16 - gateway/node_modules/cacache/README.md | 669 -- gateway/node_modules/cacache/get.js | 255 - gateway/node_modules/cacache/index.js | 41 - .../node_modules/cacache/lib/content/path.js | 29 - .../node_modules/cacache/lib/content/read.js | 250 - .../node_modules/cacache/lib/content/rm.js | 20 - .../node_modules/cacache/lib/content/write.js | 184 - .../node_modules/cacache/lib/entry-index.js | 305 - .../node_modules/cacache/lib/memoization.js | 74 - .../node_modules/cacache/lib/util/disposer.js | 30 - .../cacache/lib/util/fix-owner.js | 145 - .../cacache/lib/util/hash-to-segments.js | 7 - .../cacache/lib/util/move-file.js | 69 - gateway/node_modules/cacache/lib/util/tmp.js | 35 - gateway/node_modules/cacache/lib/verify.js | 287 - gateway/node_modules/cacache/ls.js | 6 - .../cacache/node_modules/.bin/mkdirp | 1 - .../cacache/node_modules/.bin/rimraf | 1 - .../cacache/node_modules/lru-cache/LICENSE | 15 - .../cacache/node_modules/lru-cache/README.md | 166 - .../cacache/node_modules/lru-cache/index.js | 334 - .../node_modules/lru-cache/package.json | 34 - gateway/node_modules/cacache/package.json | 95 - gateway/node_modules/cacache/put.js | 84 - gateway/node_modules/cacache/rm.js | 31 - gateway/node_modules/cacache/verify.js | 3 - .../node_modules/cacheable-request/LICENSE | 21 - .../node_modules/cacheable-request/README.md | 206 - .../node_modules/get-stream/buffer-stream.js | 52 - .../node_modules/get-stream/index.d.ts | 108 - .../node_modules/get-stream/index.js | 60 - .../node_modules/get-stream/license | 9 - .../node_modules/get-stream/package.json | 50 - .../node_modules/get-stream/readme.md | 124 - .../node_modules/lowercase-keys/index.d.ts | 16 - .../node_modules/lowercase-keys/index.js | 10 - .../node_modules/lowercase-keys/license | 9 - .../node_modules/lowercase-keys/package.json | 38 - .../node_modules/lowercase-keys/readme.md | 32 - .../cacheable-request/package.json | 56 - .../cacheable-request/src/index.js | 251 - gateway/node_modules/call-bind/.eslintrc | 15 - .../call-bind/.github/FUNDING.yml | 12 - .../node_modules/call-bind/.github/rebase.yml | 15 - .../call-bind/.github/require-allow-edits.yml | 12 - gateway/node_modules/call-bind/.travis.yml | 9 - gateway/node_modules/call-bind/CHANGELOG.md | 21 - gateway/node_modules/call-bind/LICENSE | 21 - gateway/node_modules/call-bind/README.md | 2 - gateway/node_modules/call-bind/callBound.js | 15 - gateway/node_modules/call-bind/index.js | 33 - gateway/node_modules/call-bind/package.json | 79 - .../node_modules/call-bind/test/callBound.js | 55 - gateway/node_modules/call-bind/test/index.js | 52 - gateway/node_modules/camelcase/index.d.ts | 63 - gateway/node_modules/camelcase/index.js | 76 - gateway/node_modules/camelcase/license | 9 - gateway/node_modules/camelcase/package.json | 43 - gateway/node_modules/camelcase/readme.md | 99 - gateway/node_modules/chalk/index.d.ts | 411 - gateway/node_modules/chalk/license | 9 - gateway/node_modules/chalk/package.json | 63 - gateway/node_modules/chalk/readme.md | 304 - gateway/node_modules/chalk/source/index.js | 233 - .../node_modules/chalk/source/templates.js | 134 - gateway/node_modules/chalk/source/util.js | 39 - gateway/node_modules/chokidar/LICENSE | 21 - gateway/node_modules/chokidar/README.md | 306 - gateway/node_modules/chokidar/index.js | 958 -- .../node_modules/chokidar/lib/constants.js | 63 - .../chokidar/lib/fsevents-handler.js | 524 - .../chokidar/lib/nodefs-handler.js | 645 -- gateway/node_modules/chokidar/package.json | 128 - .../node_modules/chokidar/types/index.d.ts | 187 - gateway/node_modules/chownr/LICENSE | 15 - gateway/node_modules/chownr/README.md | 3 - gateway/node_modules/chownr/chownr.js | 167 - gateway/node_modules/chownr/package.json | 32 - gateway/node_modules/ci-info/CHANGELOG.md | 78 - gateway/node_modules/ci-info/LICENSE | 21 - gateway/node_modules/ci-info/README.md | 108 - gateway/node_modules/ci-info/index.js | 66 - gateway/node_modules/ci-info/package.json | 36 - gateway/node_modules/ci-info/vendors.json | 153 - gateway/node_modules/clean-stack/index.d.ts | 47 - gateway/node_modules/clean-stack/index.js | 40 - gateway/node_modules/clean-stack/license | 9 - gateway/node_modules/clean-stack/package.json | 39 - gateway/node_modules/clean-stack/readme.md | 76 - gateway/node_modules/cli-boxes/boxes.json | 58 - gateway/node_modules/cli-boxes/index.d.ts | 113 - gateway/node_modules/cli-boxes/index.js | 6 - gateway/node_modules/cli-boxes/license | 9 - gateway/node_modules/cli-boxes/package.json | 42 - gateway/node_modules/cli-boxes/readme.md | 105 - gateway/node_modules/clone-response/LICENSE | 21 - gateway/node_modules/clone-response/README.md | 62 - .../node_modules/clone-response/package.json | 44 - .../node_modules/clone-response/src/index.js | 17 - .../node_modules/color-convert/CHANGELOG.md | 54 - gateway/node_modules/color-convert/LICENSE | 21 - gateway/node_modules/color-convert/README.md | 68 - .../node_modules/color-convert/conversions.js | 839 -- gateway/node_modules/color-convert/index.js | 81 - .../node_modules/color-convert/package.json | 48 - gateway/node_modules/color-convert/route.js | 97 - gateway/node_modules/color-name/LICENSE | 8 - gateway/node_modules/color-name/README.md | 11 - gateway/node_modules/color-name/index.js | 152 - gateway/node_modules/color-name/package.json | 28 - gateway/node_modules/combined-stream/License | 19 - .../node_modules/combined-stream/Readme.md | 138 - .../combined-stream/lib/combined_stream.js | 208 - .../node_modules/combined-stream/package.json | 25 - .../node_modules/combined-stream/yarn.lock | 17 - gateway/node_modules/commander/CHANGELOG.md | 419 - gateway/node_modules/commander/LICENSE | 22 - gateway/node_modules/commander/Readme.md | 428 - gateway/node_modules/commander/index.js | 1224 --- gateway/node_modules/commander/package.json | 38 - .../node_modules/commander/typings/index.d.ts | 310 - gateway/node_modules/concat-map/.travis.yml | 4 - gateway/node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - gateway/node_modules/concat-map/index.js | 13 - gateway/node_modules/concat-map/package.json | 43 - gateway/node_modules/concat-map/test/map.js | 39 - gateway/node_modules/configstore/index.js | 109 - gateway/node_modules/configstore/license | 25 - gateway/node_modules/configstore/package.json | 46 - gateway/node_modules/configstore/readme.md | 141 - .../content-disposition/HISTORY.md | 55 - .../node_modules/content-disposition/LICENSE | 22 - .../content-disposition/README.md | 148 - .../node_modules/content-disposition/index.js | 458 - .../content-disposition/package.json | 44 - gateway/node_modules/content-type/HISTORY.md | 24 - gateway/node_modules/content-type/LICENSE | 22 - gateway/node_modules/content-type/README.md | 92 - gateway/node_modules/content-type/index.js | 222 - .../node_modules/content-type/package.json | 40 - .../node_modules/cookie-signature/.npmignore | 4 - .../node_modules/cookie-signature/History.md | 38 - .../node_modules/cookie-signature/Readme.md | 42 - .../node_modules/cookie-signature/index.js | 51 - .../cookie-signature/package.json | 18 - gateway/node_modules/cookie/HISTORY.md | 123 - gateway/node_modules/cookie/LICENSE | 24 - gateway/node_modules/cookie/README.md | 253 - gateway/node_modules/cookie/index.js | 198 - gateway/node_modules/cookie/package.json | 40 - gateway/node_modules/core-js/LICENSE | 19 - gateway/node_modules/core-js/README.md | 58 - gateway/node_modules/core-js/configurator.js | 23 - gateway/node_modules/core-js/es/README.md | 1 - .../core-js/es/aggregate-error.js | 6 - .../core-js/es/array-buffer/constructor.js | 5 - .../core-js/es/array-buffer/index.js | 7 - .../core-js/es/array-buffer/is-view.js | 4 - .../core-js/es/array-buffer/slice.js | 1 - .../node_modules/core-js/es/array/concat.js | 4 - .../core-js/es/array/copy-within.js | 4 - .../node_modules/core-js/es/array/entries.js | 4 - .../node_modules/core-js/es/array/every.js | 4 - gateway/node_modules/core-js/es/array/fill.js | 4 - .../node_modules/core-js/es/array/filter.js | 4 - .../core-js/es/array/find-index.js | 4 - gateway/node_modules/core-js/es/array/find.js | 4 - .../node_modules/core-js/es/array/flat-map.js | 5 - gateway/node_modules/core-js/es/array/flat.js | 5 - .../node_modules/core-js/es/array/for-each.js | 4 - gateway/node_modules/core-js/es/array/from.js | 5 - .../node_modules/core-js/es/array/includes.js | 4 - .../node_modules/core-js/es/array/index-of.js | 4 - .../node_modules/core-js/es/array/index.js | 33 - .../node_modules/core-js/es/array/is-array.js | 4 - .../node_modules/core-js/es/array/iterator.js | 4 - gateway/node_modules/core-js/es/array/join.js | 4 - gateway/node_modules/core-js/es/array/keys.js | 4 - .../core-js/es/array/last-index-of.js | 4 - gateway/node_modules/core-js/es/array/map.js | 4 - gateway/node_modules/core-js/es/array/of.js | 4 - .../core-js/es/array/reduce-right.js | 4 - .../node_modules/core-js/es/array/reduce.js | 4 - .../node_modules/core-js/es/array/reverse.js | 4 - .../node_modules/core-js/es/array/slice.js | 4 - gateway/node_modules/core-js/es/array/some.js | 4 - gateway/node_modules/core-js/es/array/sort.js | 4 - .../node_modules/core-js/es/array/splice.js | 4 - .../node_modules/core-js/es/array/values.js | 4 - .../core-js/es/array/virtual/concat.js | 4 - .../core-js/es/array/virtual/copy-within.js | 4 - .../core-js/es/array/virtual/entries.js | 4 - .../core-js/es/array/virtual/every.js | 4 - .../core-js/es/array/virtual/fill.js | 4 - .../core-js/es/array/virtual/filter.js | 4 - .../core-js/es/array/virtual/find-index.js | 4 - .../core-js/es/array/virtual/find.js | 4 - .../core-js/es/array/virtual/flat-map.js | 5 - .../core-js/es/array/virtual/flat.js | 5 - .../core-js/es/array/virtual/for-each.js | 4 - .../core-js/es/array/virtual/includes.js | 4 - .../core-js/es/array/virtual/index-of.js | 4 - .../core-js/es/array/virtual/index.js | 29 - .../core-js/es/array/virtual/iterator.js | 4 - .../core-js/es/array/virtual/join.js | 4 - .../core-js/es/array/virtual/keys.js | 4 - .../core-js/es/array/virtual/last-index-of.js | 4 - .../core-js/es/array/virtual/map.js | 4 - .../core-js/es/array/virtual/reduce-right.js | 4 - .../core-js/es/array/virtual/reduce.js | 4 - .../core-js/es/array/virtual/reverse.js | 4 - .../core-js/es/array/virtual/slice.js | 4 - .../core-js/es/array/virtual/some.js | 4 - .../core-js/es/array/virtual/sort.js | 4 - .../core-js/es/array/virtual/splice.js | 4 - .../core-js/es/array/virtual/values.js | 4 - .../core-js/es/data-view/index.js | 5 - gateway/node_modules/core-js/es/date/index.js | 8 - gateway/node_modules/core-js/es/date/now.js | 4 - .../core-js/es/date/to-iso-string.js | 5 - .../node_modules/core-js/es/date/to-json.js | 4 - .../core-js/es/date/to-primitive.js | 6 - .../node_modules/core-js/es/date/to-string.js | 6 - .../node_modules/core-js/es/function/bind.js | 4 - .../core-js/es/function/has-instance.js | 4 - .../node_modules/core-js/es/function/index.js | 6 - .../node_modules/core-js/es/function/name.js | 1 - .../core-js/es/function/virtual/bind.js | 4 - .../core-js/es/function/virtual/index.js | 4 - .../node_modules/core-js/es/global-this.js | 3 - gateway/node_modules/core-js/es/index.js | 214 - .../node_modules/core-js/es/instance/bind.js | 8 - .../core-js/es/instance/code-point-at.js | 9 - .../core-js/es/instance/concat.js | 8 - .../core-js/es/instance/copy-within.js | 8 - .../core-js/es/instance/ends-with.js | 9 - .../core-js/es/instance/entries.js | 8 - .../node_modules/core-js/es/instance/every.js | 8 - .../node_modules/core-js/es/instance/fill.js | 8 - .../core-js/es/instance/filter.js | 8 - .../core-js/es/instance/find-index.js | 8 - .../node_modules/core-js/es/instance/find.js | 8 - .../node_modules/core-js/es/instance/flags.js | 7 - .../core-js/es/instance/flat-map.js | 8 - .../node_modules/core-js/es/instance/flat.js | 8 - .../core-js/es/instance/for-each.js | 8 - .../core-js/es/instance/includes.js | 13 - .../core-js/es/instance/index-of.js | 8 - .../node_modules/core-js/es/instance/keys.js | 8 - .../core-js/es/instance/last-index-of.js | 8 - .../node_modules/core-js/es/instance/map.js | 8 - .../core-js/es/instance/match-all.js | 9 - .../core-js/es/instance/pad-end.js | 9 - .../core-js/es/instance/pad-start.js | 9 - .../core-js/es/instance/reduce-right.js | 8 - .../core-js/es/instance/reduce.js | 8 - .../core-js/es/instance/repeat.js | 9 - .../core-js/es/instance/reverse.js | 8 - .../node_modules/core-js/es/instance/slice.js | 8 - .../node_modules/core-js/es/instance/some.js | 8 - .../node_modules/core-js/es/instance/sort.js | 8 - .../core-js/es/instance/splice.js | 8 - .../core-js/es/instance/starts-with.js | 9 - .../core-js/es/instance/trim-end.js | 9 - .../core-js/es/instance/trim-left.js | 9 - .../core-js/es/instance/trim-right.js | 9 - .../core-js/es/instance/trim-start.js | 9 - .../node_modules/core-js/es/instance/trim.js | 9 - .../core-js/es/instance/values.js | 8 - gateway/node_modules/core-js/es/json/index.js | 5 - .../node_modules/core-js/es/json/stringify.js | 9 - .../core-js/es/json/to-string-tag.js | 3 - gateway/node_modules/core-js/es/map/index.js | 7 - gateway/node_modules/core-js/es/math/acosh.js | 4 - gateway/node_modules/core-js/es/math/asinh.js | 4 - gateway/node_modules/core-js/es/math/atanh.js | 4 - gateway/node_modules/core-js/es/math/cbrt.js | 4 - gateway/node_modules/core-js/es/math/clz32.js | 4 - gateway/node_modules/core-js/es/math/cosh.js | 4 - gateway/node_modules/core-js/es/math/expm1.js | 4 - .../node_modules/core-js/es/math/fround.js | 4 - gateway/node_modules/core-js/es/math/hypot.js | 4 - gateway/node_modules/core-js/es/math/imul.js | 4 - gateway/node_modules/core-js/es/math/index.js | 21 - gateway/node_modules/core-js/es/math/log10.js | 4 - gateway/node_modules/core-js/es/math/log1p.js | 4 - gateway/node_modules/core-js/es/math/log2.js | 4 - gateway/node_modules/core-js/es/math/sign.js | 4 - gateway/node_modules/core-js/es/math/sinh.js | 4 - gateway/node_modules/core-js/es/math/tanh.js | 4 - .../core-js/es/math/to-string-tag.js | 3 - gateway/node_modules/core-js/es/math/trunc.js | 4 - .../core-js/es/number/constructor.js | 3 - .../node_modules/core-js/es/number/epsilon.js | 3 - .../node_modules/core-js/es/number/index.js | 15 - .../core-js/es/number/is-finite.js | 4 - .../core-js/es/number/is-integer.js | 4 - .../node_modules/core-js/es/number/is-nan.js | 4 - .../core-js/es/number/is-safe-integer.js | 4 - .../core-js/es/number/max-safe-integer.js | 3 - .../core-js/es/number/min-safe-integer.js | 3 - .../core-js/es/number/parse-float.js | 4 - .../core-js/es/number/parse-int.js | 4 - .../core-js/es/number/to-fixed.js | 4 - .../core-js/es/number/to-precision.js | 4 - .../core-js/es/number/virtual/index.js | 5 - .../core-js/es/number/virtual/to-fixed.js | 4 - .../core-js/es/number/virtual/to-precision.js | 4 - .../node_modules/core-js/es/object/assign.js | 4 - .../node_modules/core-js/es/object/create.js | 8 - .../core-js/es/object/define-getter.js | 4 - .../core-js/es/object/define-properties.js | 10 - .../core-js/es/object/define-property.js | 10 - .../core-js/es/object/define-setter.js | 4 - .../node_modules/core-js/es/object/entries.js | 4 - .../node_modules/core-js/es/object/freeze.js | 4 - .../core-js/es/object/from-entries.js | 5 - .../es/object/get-own-property-descriptor.js | 10 - .../es/object/get-own-property-descriptors.js | 4 - .../es/object/get-own-property-names.js | 8 - .../es/object/get-own-property-symbols.js | 4 - .../core-js/es/object/get-prototype-of.js | 4 - .../node_modules/core-js/es/object/index.js | 32 - .../core-js/es/object/is-extensible.js | 4 - .../core-js/es/object/is-frozen.js | 4 - .../core-js/es/object/is-sealed.js | 4 - gateway/node_modules/core-js/es/object/is.js | 4 - .../node_modules/core-js/es/object/keys.js | 4 - .../core-js/es/object/lookup-getter.js | 4 - .../core-js/es/object/lookup-setter.js | 4 - .../core-js/es/object/prevent-extensions.js | 4 - .../node_modules/core-js/es/object/seal.js | 4 - .../core-js/es/object/set-prototype-of.js | 4 - .../core-js/es/object/to-string.js | 9 - .../node_modules/core-js/es/object/values.js | 4 - .../node_modules/core-js/es/parse-float.js | 4 - gateway/node_modules/core-js/es/parse-int.js | 4 - .../core-js/es/promise/all-settled.js | 11 - .../node_modules/core-js/es/promise/any.js | 12 - .../core-js/es/promise/finally.js | 5 - .../node_modules/core-js/es/promise/index.js | 11 - .../node_modules/core-js/es/reflect/apply.js | 4 - .../core-js/es/reflect/construct.js | 4 - .../core-js/es/reflect/define-property.js | 4 - .../core-js/es/reflect/delete-property.js | 4 - .../es/reflect/get-own-property-descriptor.js | 4 - .../core-js/es/reflect/get-prototype-of.js | 4 - .../node_modules/core-js/es/reflect/get.js | 4 - .../node_modules/core-js/es/reflect/has.js | 4 - .../node_modules/core-js/es/reflect/index.js | 17 - .../core-js/es/reflect/is-extensible.js | 4 - .../core-js/es/reflect/own-keys.js | 4 - .../core-js/es/reflect/prevent-extensions.js | 4 - .../core-js/es/reflect/set-prototype-of.js | 4 - .../node_modules/core-js/es/reflect/set.js | 4 - .../core-js/es/reflect/to-string-tag.js | 3 - .../core-js/es/regexp/constructor.js | 3 - .../node_modules/core-js/es/regexp/flags.js | 6 - .../node_modules/core-js/es/regexp/index.js | 10 - .../node_modules/core-js/es/regexp/match.js | 8 - .../node_modules/core-js/es/regexp/replace.js | 8 - .../node_modules/core-js/es/regexp/search.js | 8 - .../node_modules/core-js/es/regexp/split.js | 8 - .../node_modules/core-js/es/regexp/sticky.js | 5 - .../node_modules/core-js/es/regexp/test.js | 6 - .../core-js/es/regexp/to-string.js | 5 - gateway/node_modules/core-js/es/set/index.js | 7 - .../node_modules/core-js/es/string/anchor.js | 4 - gateway/node_modules/core-js/es/string/big.js | 4 - .../node_modules/core-js/es/string/blink.js | 4 - .../node_modules/core-js/es/string/bold.js | 4 - .../core-js/es/string/code-point-at.js | 4 - .../core-js/es/string/ends-with.js | 4 - .../node_modules/core-js/es/string/fixed.js | 4 - .../core-js/es/string/fontcolor.js | 4 - .../core-js/es/string/fontsize.js | 4 - .../core-js/es/string/from-code-point.js | 4 - .../core-js/es/string/includes.js | 4 - .../node_modules/core-js/es/string/index.js | 36 - .../node_modules/core-js/es/string/italics.js | 4 - .../core-js/es/string/iterator.js | 8 - .../node_modules/core-js/es/string/link.js | 4 - .../core-js/es/string/match-all.js | 4 - .../node_modules/core-js/es/string/match.js | 5 - .../node_modules/core-js/es/string/pad-end.js | 4 - .../core-js/es/string/pad-start.js | 4 - gateway/node_modules/core-js/es/string/raw.js | 4 - .../node_modules/core-js/es/string/repeat.js | 4 - .../core-js/es/string/replace-all.js | 4 - .../node_modules/core-js/es/string/replace.js | 5 - .../node_modules/core-js/es/string/search.js | 5 - .../node_modules/core-js/es/string/small.js | 4 - .../node_modules/core-js/es/string/split.js | 5 - .../core-js/es/string/starts-with.js | 4 - .../node_modules/core-js/es/string/strike.js | 4 - gateway/node_modules/core-js/es/string/sub.js | 4 - gateway/node_modules/core-js/es/string/sup.js | 4 - .../core-js/es/string/trim-end.js | 4 - .../core-js/es/string/trim-left.js | 4 - .../core-js/es/string/trim-right.js | 4 - .../core-js/es/string/trim-start.js | 4 - .../node_modules/core-js/es/string/trim.js | 4 - .../core-js/es/string/virtual/anchor.js | 4 - .../core-js/es/string/virtual/big.js | 4 - .../core-js/es/string/virtual/blink.js | 4 - .../core-js/es/string/virtual/bold.js | 4 - .../es/string/virtual/code-point-at.js | 4 - .../core-js/es/string/virtual/ends-with.js | 4 - .../core-js/es/string/virtual/fixed.js | 4 - .../core-js/es/string/virtual/fontcolor.js | 4 - .../core-js/es/string/virtual/fontsize.js | 4 - .../core-js/es/string/virtual/includes.js | 4 - .../core-js/es/string/virtual/index.js | 33 - .../core-js/es/string/virtual/italics.js | 4 - .../core-js/es/string/virtual/iterator.js | 4 - .../core-js/es/string/virtual/link.js | 4 - .../core-js/es/string/virtual/match-all.js | 4 - .../core-js/es/string/virtual/pad-end.js | 4 - .../core-js/es/string/virtual/pad-start.js | 4 - .../core-js/es/string/virtual/repeat.js | 4 - .../core-js/es/string/virtual/replace-all.js | 4 - .../core-js/es/string/virtual/small.js | 4 - .../core-js/es/string/virtual/starts-with.js | 4 - .../core-js/es/string/virtual/strike.js | 4 - .../core-js/es/string/virtual/sub.js | 4 - .../core-js/es/string/virtual/sup.js | 4 - .../core-js/es/string/virtual/trim-end.js | 4 - .../core-js/es/string/virtual/trim-left.js | 4 - .../core-js/es/string/virtual/trim-right.js | 4 - .../core-js/es/string/virtual/trim-start.js | 4 - .../core-js/es/string/virtual/trim.js | 4 - .../core-js/es/symbol/async-iterator.js | 4 - .../core-js/es/symbol/description.js | 1 - gateway/node_modules/core-js/es/symbol/for.js | 4 - .../core-js/es/symbol/has-instance.js | 5 - .../node_modules/core-js/es/symbol/index.js | 23 - .../core-js/es/symbol/is-concat-spreadable.js | 5 - .../core-js/es/symbol/iterator.js | 6 - .../node_modules/core-js/es/symbol/key-for.js | 4 - .../core-js/es/symbol/match-all.js | 5 - .../node_modules/core-js/es/symbol/match.js | 5 - .../node_modules/core-js/es/symbol/replace.js | 5 - .../node_modules/core-js/es/symbol/search.js | 5 - .../node_modules/core-js/es/symbol/species.js | 4 - .../node_modules/core-js/es/symbol/split.js | 5 - .../core-js/es/symbol/to-primitive.js | 4 - .../core-js/es/symbol/to-string-tag.js | 8 - .../core-js/es/symbol/unscopables.js | 4 - .../core-js/es/typed-array/copy-within.js | 1 - .../core-js/es/typed-array/entries.js | 1 - .../core-js/es/typed-array/every.js | 1 - .../core-js/es/typed-array/fill.js | 1 - .../core-js/es/typed-array/filter.js | 1 - .../core-js/es/typed-array/find-index.js | 1 - .../core-js/es/typed-array/find.js | 1 - .../core-js/es/typed-array/float32-array.js | 5 - .../core-js/es/typed-array/float64-array.js | 5 - .../core-js/es/typed-array/for-each.js | 1 - .../core-js/es/typed-array/from.js | 1 - .../core-js/es/typed-array/includes.js | 1 - .../core-js/es/typed-array/index-of.js | 1 - .../core-js/es/typed-array/index.js | 12 - .../core-js/es/typed-array/int16-array.js | 5 - .../core-js/es/typed-array/int32-array.js | 5 - .../core-js/es/typed-array/int8-array.js | 5 - .../core-js/es/typed-array/iterator.js | 1 - .../core-js/es/typed-array/join.js | 1 - .../core-js/es/typed-array/keys.js | 1 - .../core-js/es/typed-array/last-index-of.js | 1 - .../core-js/es/typed-array/map.js | 1 - .../core-js/es/typed-array/methods.js | 26 - .../node_modules/core-js/es/typed-array/of.js | 1 - .../core-js/es/typed-array/reduce-right.js | 1 - .../core-js/es/typed-array/reduce.js | 1 - .../core-js/es/typed-array/reverse.js | 1 - .../core-js/es/typed-array/set.js | 1 - .../core-js/es/typed-array/slice.js | 1 - .../core-js/es/typed-array/some.js | 1 - .../core-js/es/typed-array/sort.js | 1 - .../core-js/es/typed-array/subarray.js | 1 - .../es/typed-array/to-locale-string.js | 1 - .../core-js/es/typed-array/to-string.js | 1 - .../core-js/es/typed-array/uint16-array.js | 5 - .../core-js/es/typed-array/uint32-array.js | 5 - .../core-js/es/typed-array/uint8-array.js | 5 - .../es/typed-array/uint8-clamped-array.js | 5 - .../core-js/es/typed-array/values.js | 1 - .../node_modules/core-js/es/weak-map/index.js | 6 - .../node_modules/core-js/es/weak-set/index.js | 6 - .../node_modules/core-js/features/README.md | 1 - .../core-js/features/aggregate-error.js | 6 - .../features/array-buffer/constructor.js | 3 - .../core-js/features/array-buffer/index.js | 3 - .../core-js/features/array-buffer/is-view.js | 3 - .../core-js/features/array-buffer/slice.js | 3 - .../core-js/features/array/concat.js | 3 - .../core-js/features/array/copy-within.js | 3 - .../core-js/features/array/entries.js | 3 - .../core-js/features/array/every.js | 3 - .../core-js/features/array/fill.js | 3 - .../core-js/features/array/filter.js | 3 - .../core-js/features/array/find-index.js | 3 - .../core-js/features/array/find.js | 3 - .../core-js/features/array/flat-map.js | 3 - .../core-js/features/array/flat.js | 3 - .../core-js/features/array/for-each.js | 3 - .../core-js/features/array/from.js | 3 - .../core-js/features/array/includes.js | 3 - .../core-js/features/array/index-of.js | 3 - .../core-js/features/array/index.js | 6 - .../core-js/features/array/is-array.js | 3 - .../features/array/is-template-object.js | 4 - .../core-js/features/array/iterator.js | 3 - .../core-js/features/array/join.js | 3 - .../core-js/features/array/keys.js | 3 - .../core-js/features/array/last-index-of.js | 3 - .../core-js/features/array/last-index.js | 1 - .../core-js/features/array/last-item.js | 1 - .../core-js/features/array/map.js | 3 - .../node_modules/core-js/features/array/of.js | 3 - .../core-js/features/array/reduce-right.js | 3 - .../core-js/features/array/reduce.js | 3 - .../core-js/features/array/reverse.js | 3 - .../core-js/features/array/slice.js | 3 - .../core-js/features/array/some.js | 3 - .../core-js/features/array/sort.js | 3 - .../core-js/features/array/splice.js | 3 - .../core-js/features/array/values.js | 3 - .../core-js/features/array/virtual/concat.js | 3 - .../features/array/virtual/copy-within.js | 3 - .../core-js/features/array/virtual/entries.js | 3 - .../core-js/features/array/virtual/every.js | 3 - .../core-js/features/array/virtual/fill.js | 3 - .../core-js/features/array/virtual/filter.js | 3 - .../features/array/virtual/find-index.js | 3 - .../core-js/features/array/virtual/find.js | 3 - .../features/array/virtual/flat-map.js | 3 - .../core-js/features/array/virtual/flat.js | 3 - .../features/array/virtual/for-each.js | 3 - .../features/array/virtual/includes.js | 3 - .../features/array/virtual/index-of.js | 3 - .../core-js/features/array/virtual/index.js | 3 - .../features/array/virtual/iterator.js | 3 - .../core-js/features/array/virtual/join.js | 3 - .../core-js/features/array/virtual/keys.js | 3 - .../features/array/virtual/last-index-of.js | 3 - .../core-js/features/array/virtual/map.js | 3 - .../features/array/virtual/reduce-right.js | 3 - .../core-js/features/array/virtual/reduce.js | 3 - .../core-js/features/array/virtual/reverse.js | 3 - .../core-js/features/array/virtual/slice.js | 3 - .../core-js/features/array/virtual/some.js | 3 - .../core-js/features/array/virtual/sort.js | 3 - .../core-js/features/array/virtual/splice.js | 3 - .../core-js/features/array/virtual/values.js | 3 - .../async-iterator/as-indexed-pairs.js | 10 - .../core-js/features/async-iterator/drop.js | 10 - .../core-js/features/async-iterator/every.js | 10 - .../core-js/features/async-iterator/filter.js | 10 - .../core-js/features/async-iterator/find.js | 10 - .../features/async-iterator/flat-map.js | 10 - .../features/async-iterator/for-each.js | 10 - .../core-js/features/async-iterator/from.js | 10 - .../core-js/features/async-iterator/index.js | 22 - .../core-js/features/async-iterator/map.js | 10 - .../core-js/features/async-iterator/reduce.js | 10 - .../core-js/features/async-iterator/some.js | 10 - .../core-js/features/async-iterator/take.js | 10 - .../features/async-iterator/to-array.js | 10 - .../core-js/features/clear-immediate.js | 3 - .../core-js/features/composite-key.js | 4 - .../core-js/features/composite-symbol.js | 5 - .../core-js/features/data-view/index.js | 3 - .../core-js/features/date/index.js | 3 - .../node_modules/core-js/features/date/now.js | 3 - .../core-js/features/date/to-iso-string.js | 3 - .../core-js/features/date/to-json.js | 3 - .../core-js/features/date/to-primitive.js | 3 - .../core-js/features/date/to-string.js | 3 - .../features/dom-collections/for-each.js | 3 - .../core-js/features/dom-collections/index.js | 3 - .../features/dom-collections/iterator.js | 3 - .../core-js/features/function/bind.js | 3 - .../core-js/features/function/has-instance.js | 3 - .../core-js/features/function/index.js | 3 - .../core-js/features/function/name.js | 3 - .../core-js/features/function/virtual/bind.js | 3 - .../features/function/virtual/index.js | 3 - .../core-js/features/get-iterator-method.js | 5 - .../core-js/features/get-iterator.js | 5 - .../core-js/features/global-this.js | 6 - .../node_modules/core-js/features/index.js | 3 - .../core-js/features/instance/at.js | 9 - .../core-js/features/instance/bind.js | 3 - .../features/instance/code-point-at.js | 3 - .../core-js/features/instance/code-points.js | 9 - .../core-js/features/instance/concat.js | 3 - .../core-js/features/instance/copy-within.js | 3 - .../core-js/features/instance/ends-with.js | 3 - .../core-js/features/instance/entries.js | 3 - .../core-js/features/instance/every.js | 3 - .../core-js/features/instance/fill.js | 3 - .../core-js/features/instance/filter.js | 3 - .../core-js/features/instance/find-index.js | 3 - .../core-js/features/instance/find.js | 3 - .../core-js/features/instance/flags.js | 3 - .../core-js/features/instance/flat-map.js | 3 - .../core-js/features/instance/flat.js | 3 - .../core-js/features/instance/for-each.js | 3 - .../core-js/features/instance/includes.js | 3 - .../core-js/features/instance/index-of.js | 3 - .../core-js/features/instance/keys.js | 3 - .../features/instance/last-index-of.js | 3 - .../core-js/features/instance/map.js | 3 - .../core-js/features/instance/match-all.js | 6 - .../core-js/features/instance/pad-end.js | 3 - .../core-js/features/instance/pad-start.js | 3 - .../core-js/features/instance/reduce-right.js | 3 - .../core-js/features/instance/reduce.js | 3 - .../core-js/features/instance/repeat.js | 3 - .../core-js/features/instance/replace-all.js | 9 - .../core-js/features/instance/reverse.js | 3 - .../core-js/features/instance/slice.js | 3 - .../core-js/features/instance/some.js | 3 - .../core-js/features/instance/sort.js | 3 - .../core-js/features/instance/splice.js | 3 - .../core-js/features/instance/starts-with.js | 3 - .../core-js/features/instance/trim-end.js | 3 - .../core-js/features/instance/trim-left.js | 3 - .../core-js/features/instance/trim-right.js | 3 - .../core-js/features/instance/trim-start.js | 3 - .../core-js/features/instance/trim.js | 3 - .../core-js/features/instance/values.js | 3 - .../core-js/features/is-iterable.js | 5 - .../features/iterator/as-indexed-pairs.js | 10 - .../core-js/features/iterator/drop.js | 9 - .../core-js/features/iterator/every.js | 9 - .../core-js/features/iterator/filter.js | 9 - .../core-js/features/iterator/find.js | 9 - .../core-js/features/iterator/flat-map.js | 9 - .../core-js/features/iterator/for-each.js | 9 - .../core-js/features/iterator/from.js | 9 - .../core-js/features/iterator/index.js | 21 - .../core-js/features/iterator/map.js | 9 - .../core-js/features/iterator/reduce.js | 9 - .../core-js/features/iterator/some.js | 9 - .../core-js/features/iterator/take.js | 9 - .../core-js/features/iterator/to-array.js | 9 - .../core-js/features/json/index.js | 3 - .../core-js/features/json/stringify.js | 3 - .../core-js/features/json/to-string-tag.js | 3 - .../core-js/features/map/delete-all.js | 5 - .../core-js/features/map/emplace.js | 5 - .../core-js/features/map/every.js | 5 - .../core-js/features/map/filter.js | 5 - .../core-js/features/map/find-key.js | 5 - .../node_modules/core-js/features/map/find.js | 5 - .../node_modules/core-js/features/map/from.js | 13 - .../core-js/features/map/group-by.js | 11 - .../core-js/features/map/includes.js | 5 - .../core-js/features/map/index.js | 25 - .../core-js/features/map/key-by.js | 11 - .../core-js/features/map/key-of.js | 5 - .../core-js/features/map/map-keys.js | 5 - .../core-js/features/map/map-values.js | 5 - .../core-js/features/map/merge.js | 5 - .../node_modules/core-js/features/map/of.js | 13 - .../core-js/features/map/reduce.js | 5 - .../node_modules/core-js/features/map/some.js | 5 - .../core-js/features/map/update-or-insert.js | 6 - .../core-js/features/map/update.js | 5 - .../core-js/features/map/upsert.js | 5 - .../core-js/features/math/acosh.js | 3 - .../core-js/features/math/asinh.js | 3 - .../core-js/features/math/atanh.js | 3 - .../core-js/features/math/cbrt.js | 3 - .../core-js/features/math/clamp.js | 4 - .../core-js/features/math/clz32.js | 3 - .../core-js/features/math/cosh.js | 3 - .../core-js/features/math/deg-per-rad.js | 3 - .../core-js/features/math/degrees.js | 4 - .../core-js/features/math/expm1.js | 3 - .../core-js/features/math/fround.js | 3 - .../core-js/features/math/fscale.js | 4 - .../core-js/features/math/hypot.js | 3 - .../core-js/features/math/iaddh.js | 4 - .../core-js/features/math/imul.js | 3 - .../core-js/features/math/imulh.js | 4 - .../core-js/features/math/index.js | 17 - .../core-js/features/math/isubh.js | 4 - .../core-js/features/math/log10.js | 3 - .../core-js/features/math/log1p.js | 3 - .../core-js/features/math/log2.js | 3 - .../core-js/features/math/rad-per-deg.js | 3 - .../core-js/features/math/radians.js | 4 - .../core-js/features/math/scale.js | 4 - .../core-js/features/math/seeded-prng.js | 4 - .../core-js/features/math/sign.js | 3 - .../core-js/features/math/signbit.js | 4 - .../core-js/features/math/sinh.js | 3 - .../core-js/features/math/tanh.js | 3 - .../core-js/features/math/to-string-tag.js | 3 - .../core-js/features/math/trunc.js | 3 - .../core-js/features/math/umulh.js | 4 - .../core-js/features/number/constructor.js | 3 - .../core-js/features/number/epsilon.js | 3 - .../core-js/features/number/from-string.js | 4 - .../core-js/features/number/index.js | 5 - .../core-js/features/number/is-finite.js | 3 - .../core-js/features/number/is-integer.js | 3 - .../core-js/features/number/is-nan.js | 3 - .../features/number/is-safe-integer.js | 3 - .../features/number/max-safe-integer.js | 3 - .../features/number/min-safe-integer.js | 3 - .../core-js/features/number/parse-float.js | 3 - .../core-js/features/number/parse-int.js | 3 - .../core-js/features/number/to-fixed.js | 3 - .../core-js/features/number/to-precision.js | 3 - .../core-js/features/number/virtual/index.js | 3 - .../features/number/virtual/to-fixed.js | 3 - .../features/number/virtual/to-precision.js | 3 - .../core-js/features/object/assign.js | 3 - .../core-js/features/object/create.js | 3 - .../core-js/features/object/define-getter.js | 3 - .../features/object/define-properties.js | 3 - .../features/object/define-property.js | 3 - .../core-js/features/object/define-setter.js | 3 - .../core-js/features/object/entries.js | 3 - .../core-js/features/object/freeze.js | 3 - .../core-js/features/object/from-entries.js | 3 - .../object/get-own-property-descriptor.js | 3 - .../object/get-own-property-descriptors.js | 3 - .../features/object/get-own-property-names.js | 3 - .../object/get-own-property-symbols.js | 3 - .../features/object/get-prototype-of.js | 3 - .../core-js/features/object/index.js | 6 - .../core-js/features/object/is-extensible.js | 3 - .../core-js/features/object/is-frozen.js | 3 - .../core-js/features/object/is-sealed.js | 3 - .../core-js/features/object/is.js | 3 - .../features/object/iterate-entries.js | 4 - .../core-js/features/object/iterate-keys.js | 4 - .../core-js/features/object/iterate-values.js | 4 - .../core-js/features/object/keys.js | 3 - .../core-js/features/object/lookup-getter.js | 3 - .../core-js/features/object/lookup-setter.js | 3 - .../features/object/prevent-extensions.js | 3 - .../core-js/features/object/seal.js | 3 - .../features/object/set-prototype-of.js | 3 - .../core-js/features/object/to-string.js | 3 - .../core-js/features/object/values.js | 3 - .../core-js/features/observable/index.js | 8 - .../core-js/features/parse-float.js | 3 - .../core-js/features/parse-int.js | 3 - .../core-js/features/promise/all-settled.js | 6 - .../core-js/features/promise/any.js | 7 - .../core-js/features/promise/finally.js | 3 - .../core-js/features/promise/index.js | 8 - .../core-js/features/promise/try.js | 11 - .../core-js/features/queue-microtask.js | 3 - .../core-js/features/reflect/apply.js | 3 - .../core-js/features/reflect/construct.js | 3 - .../features/reflect/define-metadata.js | 4 - .../features/reflect/define-property.js | 3 - .../features/reflect/delete-metadata.js | 4 - .../features/reflect/delete-property.js | 3 - .../features/reflect/get-metadata-keys.js | 4 - .../core-js/features/reflect/get-metadata.js | 4 - .../features/reflect/get-own-metadata-keys.js | 4 - .../features/reflect/get-own-metadata.js | 4 - .../reflect/get-own-property-descriptor.js | 3 - .../features/reflect/get-prototype-of.js | 3 - .../core-js/features/reflect/get.js | 3 - .../core-js/features/reflect/has-metadata.js | 4 - .../features/reflect/has-own-metadata.js | 4 - .../core-js/features/reflect/has.js | 3 - .../core-js/features/reflect/index.js | 12 - .../core-js/features/reflect/is-extensible.js | 3 - .../core-js/features/reflect/metadata.js | 4 - .../core-js/features/reflect/own-keys.js | 3 - .../features/reflect/prevent-extensions.js | 3 - .../features/reflect/set-prototype-of.js | 3 - .../core-js/features/reflect/set.js | 3 - .../core-js/features/reflect/to-string-tag.js | 3 - .../core-js/features/regexp/constructor.js | 3 - .../core-js/features/regexp/flags.js | 3 - .../core-js/features/regexp/index.js | 3 - .../core-js/features/regexp/match.js | 3 - .../core-js/features/regexp/replace.js | 3 - .../core-js/features/regexp/search.js | 3 - .../core-js/features/regexp/split.js | 3 - .../core-js/features/regexp/sticky.js | 3 - .../core-js/features/regexp/test.js | 3 - .../core-js/features/regexp/to-string.js | 3 - .../core-js/features/set-immediate.js | 3 - .../core-js/features/set-interval.js | 3 - .../core-js/features/set-timeout.js | 3 - .../core-js/features/set/add-all.js | 5 - .../core-js/features/set/delete-all.js | 5 - .../core-js/features/set/difference.js | 7 - .../core-js/features/set/every.js | 5 - .../core-js/features/set/filter.js | 5 - .../node_modules/core-js/features/set/find.js | 5 - .../node_modules/core-js/features/set/from.js | 13 - .../core-js/features/set/index.js | 21 - .../core-js/features/set/intersection.js | 5 - .../core-js/features/set/is-disjoint-from.js | 5 - .../core-js/features/set/is-subset-of.js | 7 - .../core-js/features/set/is-superset-of.js | 5 - .../node_modules/core-js/features/set/join.js | 5 - .../node_modules/core-js/features/set/map.js | 5 - .../node_modules/core-js/features/set/of.js | 13 - .../core-js/features/set/reduce.js | 5 - .../node_modules/core-js/features/set/some.js | 5 - .../features/set/symmetric-difference.js | 7 - .../core-js/features/set/union.js | 7 - .../core-js/features/string/anchor.js | 3 - .../core-js/features/string/at.js | 4 - .../core-js/features/string/big.js | 3 - .../core-js/features/string/blink.js | 3 - .../core-js/features/string/bold.js | 3 - .../core-js/features/string/code-point-at.js | 3 - .../core-js/features/string/code-points.js | 3 - .../core-js/features/string/ends-with.js | 3 - .../core-js/features/string/fixed.js | 3 - .../core-js/features/string/fontcolor.js | 3 - .../core-js/features/string/fontsize.js | 3 - .../features/string/from-code-point.js | 3 - .../core-js/features/string/includes.js | 3 - .../core-js/features/string/index.js | 8 - .../core-js/features/string/italics.js | 3 - .../core-js/features/string/iterator.js | 3 - .../core-js/features/string/link.js | 3 - .../core-js/features/string/match-all.js | 6 - .../core-js/features/string/match.js | 3 - .../core-js/features/string/pad-end.js | 3 - .../core-js/features/string/pad-start.js | 3 - .../core-js/features/string/raw.js | 3 - .../core-js/features/string/repeat.js | 3 - .../core-js/features/string/replace-all.js | 6 - .../core-js/features/string/replace.js | 3 - .../core-js/features/string/search.js | 3 - .../core-js/features/string/small.js | 3 - .../core-js/features/string/split.js | 3 - .../core-js/features/string/starts-with.js | 3 - .../core-js/features/string/strike.js | 3 - .../core-js/features/string/sub.js | 3 - .../core-js/features/string/sup.js | 3 - .../core-js/features/string/trim-end.js | 3 - .../core-js/features/string/trim-left.js | 3 - .../core-js/features/string/trim-right.js | 3 - .../core-js/features/string/trim-start.js | 3 - .../core-js/features/string/trim.js | 3 - .../core-js/features/string/virtual/anchor.js | 3 - .../core-js/features/string/virtual/at.js | 4 - .../core-js/features/string/virtual/big.js | 3 - .../core-js/features/string/virtual/blink.js | 3 - .../core-js/features/string/virtual/bold.js | 3 - .../features/string/virtual/code-point-at.js | 3 - .../features/string/virtual/code-points.js | 3 - .../features/string/virtual/ends-with.js | 3 - .../core-js/features/string/virtual/fixed.js | 3 - .../features/string/virtual/fontcolor.js | 3 - .../features/string/virtual/fontsize.js | 3 - .../features/string/virtual/includes.js | 3 - .../core-js/features/string/virtual/index.js | 8 - .../features/string/virtual/italics.js | 3 - .../features/string/virtual/iterator.js | 3 - .../core-js/features/string/virtual/link.js | 3 - .../features/string/virtual/match-all.js | 6 - .../features/string/virtual/pad-end.js | 3 - .../features/string/virtual/pad-start.js | 3 - .../core-js/features/string/virtual/repeat.js | 3 - .../features/string/virtual/replace-all.js | 6 - .../core-js/features/string/virtual/small.js | 3 - .../features/string/virtual/starts-with.js | 3 - .../core-js/features/string/virtual/strike.js | 3 - .../core-js/features/string/virtual/sub.js | 3 - .../core-js/features/string/virtual/sup.js | 3 - .../features/string/virtual/trim-end.js | 3 - .../features/string/virtual/trim-left.js | 3 - .../features/string/virtual/trim-right.js | 3 - .../features/string/virtual/trim-start.js | 3 - .../core-js/features/string/virtual/trim.js | 3 - .../core-js/features/symbol/async-dispose.js | 4 - .../core-js/features/symbol/async-iterator.js | 3 - .../core-js/features/symbol/description.js | 1 - .../core-js/features/symbol/dispose.js | 4 - .../core-js/features/symbol/for.js | 3 - .../core-js/features/symbol/has-instance.js | 3 - .../core-js/features/symbol/index.js | 9 - .../features/symbol/is-concat-spreadable.js | 3 - .../core-js/features/symbol/iterator.js | 3 - .../core-js/features/symbol/key-for.js | 3 - .../core-js/features/symbol/match-all.js | 3 - .../core-js/features/symbol/match.js | 3 - .../core-js/features/symbol/observable.js | 4 - .../core-js/features/symbol/pattern-match.js | 4 - .../core-js/features/symbol/replace-all.js | 5 - .../core-js/features/symbol/replace.js | 3 - .../core-js/features/symbol/search.js | 3 - .../core-js/features/symbol/species.js | 3 - .../core-js/features/symbol/split.js | 3 - .../core-js/features/symbol/to-primitive.js | 3 - .../core-js/features/symbol/to-string-tag.js | 3 - .../core-js/features/symbol/unscopables.js | 3 - .../features/typed-array/copy-within.js | 1 - .../core-js/features/typed-array/entries.js | 1 - .../core-js/features/typed-array/every.js | 1 - .../core-js/features/typed-array/fill.js | 1 - .../core-js/features/typed-array/filter.js | 1 - .../features/typed-array/find-index.js | 1 - .../core-js/features/typed-array/find.js | 1 - .../features/typed-array/float32-array.js | 3 - .../features/typed-array/float64-array.js | 3 - .../core-js/features/typed-array/for-each.js | 1 - .../core-js/features/typed-array/from.js | 1 - .../core-js/features/typed-array/includes.js | 1 - .../core-js/features/typed-array/index-of.js | 1 - .../core-js/features/typed-array/index.js | 3 - .../features/typed-array/int16-array.js | 3 - .../features/typed-array/int32-array.js | 3 - .../features/typed-array/int8-array.js | 3 - .../core-js/features/typed-array/iterator.js | 1 - .../core-js/features/typed-array/join.js | 1 - .../core-js/features/typed-array/keys.js | 1 - .../features/typed-array/last-index-of.js | 1 - .../core-js/features/typed-array/map.js | 1 - .../core-js/features/typed-array/of.js | 1 - .../features/typed-array/reduce-right.js | 1 - .../core-js/features/typed-array/reduce.js | 1 - .../core-js/features/typed-array/reverse.js | 1 - .../core-js/features/typed-array/set.js | 1 - .../core-js/features/typed-array/slice.js | 1 - .../core-js/features/typed-array/some.js | 1 - .../core-js/features/typed-array/sort.js | 1 - .../core-js/features/typed-array/subarray.js | 1 - .../features/typed-array/to-locale-string.js | 1 - .../core-js/features/typed-array/to-string.js | 1 - .../features/typed-array/uint16-array.js | 3 - .../features/typed-array/uint32-array.js | 3 - .../features/typed-array/uint8-array.js | 3 - .../typed-array/uint8-clamped-array.js | 3 - .../core-js/features/typed-array/values.js | 1 - .../features/url-search-params/index.js | 3 - .../core-js/features/url/index.js | 3 - .../core-js/features/url/to-json.js | 3 - .../core-js/features/weak-map/delete-all.js | 5 - .../core-js/features/weak-map/emplace.js | 5 - .../core-js/features/weak-map/from.js | 13 - .../core-js/features/weak-map/index.js | 9 - .../core-js/features/weak-map/of.js | 13 - .../core-js/features/weak-map/upsert.js | 5 - .../core-js/features/weak-set/add-all.js | 5 - .../core-js/features/weak-set/delete-all.js | 5 - .../core-js/features/weak-set/from.js | 13 - .../core-js/features/weak-set/index.js | 7 - .../core-js/features/weak-set/of.js | 13 - gateway/node_modules/core-js/index.js | 6 - .../node_modules/core-js/internals/README.md | 1 - .../core-js/internals/a-function.js | 5 - .../core-js/internals/a-possible-prototype.js | 7 - .../core-js/internals/add-to-unscopables.js | 20 - .../core-js/internals/advance-string-index.js | 8 - .../core-js/internals/an-instance.js | 5 - .../core-js/internals/an-object.js | 7 - .../core-js/internals/array-buffer-native.js | 1 - .../internals/array-buffer-view-core.js | 156 - .../core-js/internals/array-buffer.js | 226 - .../core-js/internals/array-copy-within.js | 29 - .../core-js/internals/array-fill.js | 17 - .../core-js/internals/array-for-each.js | 13 - .../core-js/internals/array-from.js | 41 - .../core-js/internals/array-includes.js | 32 - .../core-js/internals/array-iteration.js | 65 - .../core-js/internals/array-last-index-of.js | 28 - .../array-method-has-species-support.js | 19 - .../internals/array-method-is-strict.js | 10 - .../internals/array-method-uses-to-length.js | 27 - .../core-js/internals/array-reduce.js | 40 - .../core-js/internals/array-species-create.js | 20 - .../internals/async-iterator-create-proxy.js | 61 - .../internals/async-iterator-iteration.js | 80 - .../internals/async-iterator-prototype.js | 37 - .../call-with-safe-iteration-closing.js | 13 - .../check-correctness-of-iteration.js | 38 - .../core-js/internals/classof-raw.js | 5 - .../node_modules/core-js/internals/classof.js | 26 - .../core-js/internals/collection-add-all.js | 13 - .../internals/collection-delete-all.js | 16 - .../core-js/internals/collection-from.js | 26 - .../core-js/internals/collection-of.js | 8 - .../core-js/internals/collection-strong.js | 186 - .../core-js/internals/collection-weak.js | 121 - .../core-js/internals/collection.js | 99 - .../core-js/internals/composite-key.js | 43 - .../internals/copy-constructor-properties.js | 14 - .../internals/correct-is-regexp-logic.js | 15 - .../internals/correct-prototype-getter.js | 7 - .../core-js/internals/create-html.js | 12 - .../internals/create-iterator-constructor.js | 16 - .../create-non-enumerable-property.js | 10 - .../internals/create-property-descriptor.js | 8 - .../core-js/internals/create-property.js | 10 - .../core-js/internals/date-to-iso-string.js | 31 - .../core-js/internals/date-to-primitive.js | 9 - .../core-js/internals/define-iterator.js | 90 - .../internals/define-well-known-symbol.js | 11 - .../core-js/internals/descriptors.js | 6 - .../internals/document-create-element.js | 10 - .../core-js/internals/dom-iterables.js | 35 - .../core-js/internals/engine-is-ios.js | 3 - .../core-js/internals/engine-is-node.js | 4 - .../core-js/internals/engine-user-agent.js | 3 - .../core-js/internals/engine-v8-version.js | 20 - .../core-js/internals/entry-unbind.js | 8 - .../core-js/internals/entry-virtual.js | 5 - .../core-js/internals/enum-bug-keys.js | 10 - .../node_modules/core-js/internals/export.js | 54 - .../node_modules/core-js/internals/fails.js | 7 - .../fix-regexp-well-known-symbol-logic.js | 125 - .../core-js/internals/flatten-into-array.js | 32 - .../core-js/internals/freezing.js | 5 - .../internals/function-bind-context.js | 24 - .../core-js/internals/function-bind.js | 27 - .../internals/get-async-iterator-method.js | 9 - .../core-js/internals/get-built-in.js | 11 - .../core-js/internals/get-iterator-method.js | 11 - .../core-js/internals/get-iterator.js | 9 - .../core-js/internals/get-map-iterator.js | 7 - .../core-js/internals/get-set-iterator.js | 7 - .../node_modules/core-js/internals/global.js | 13 - gateway/node_modules/core-js/internals/has.js | 5 - .../core-js/internals/hidden-keys.js | 1 - .../core-js/internals/host-report-errors.js | 8 - .../node_modules/core-js/internals/html.js | 3 - .../core-js/internals/ie8-dom-define.js | 10 - .../node_modules/core-js/internals/ieee754.js | 88 - .../core-js/internals/indexed-object.js | 13 - .../core-js/internals/inherit-if-required.js | 17 - .../core-js/internals/inspect-source.js | 12 - .../core-js/internals/internal-metadata.js | 61 - .../core-js/internals/internal-state.js | 64 - .../internals/is-array-iterator-method.js | 10 - .../core-js/internals/is-array.js | 7 - .../core-js/internals/is-forced.js | 21 - .../core-js/internals/is-integer.js | 9 - .../core-js/internals/is-iterable.js | 13 - .../core-js/internals/is-object.js | 3 - .../node_modules/core-js/internals/is-pure.js | 1 - .../core-js/internals/is-regexp.js | 12 - .../node_modules/core-js/internals/iterate.js | 58 - .../core-js/internals/iterator-close.js | 8 - .../internals/iterator-create-proxy.js | 51 - .../core-js/internals/iterators-core.js | 37 - .../core-js/internals/iterators.js | 1 - .../core-js/internals/map-emplace.js | 13 - .../core-js/internals/map-upsert.js | 23 - .../core-js/internals/math-expm1.js | 13 - .../core-js/internals/math-fround.js | 26 - .../core-js/internals/math-log1p.js | 7 - .../core-js/internals/math-scale.js | 16 - .../core-js/internals/math-sign.js | 6 - .../core-js/internals/microtask.js | 78 - .../internals/native-promise-constructor.js | 3 - .../core-js/internals/native-symbol.js | 7 - .../core-js/internals/native-url.js | 33 - .../core-js/internals/native-weak-map.js | 6 - .../internals/new-promise-capability.js | 18 - .../core-js/internals/not-a-regexp.js | 7 - .../core-js/internals/number-is-finite.js | 9 - .../core-js/internals/number-parse-float.js | 14 - .../core-js/internals/number-parse-int.js | 14 - .../core-js/internals/object-assign.js | 52 - .../core-js/internals/object-create.js | 78 - .../internals/object-define-properties.js | 16 - .../internals/object-define-property.js | 20 - .../object-get-own-property-descriptor.js | 20 - .../object-get-own-property-names-external.js | 22 - .../object-get-own-property-names.js | 10 - .../object-get-own-property-symbols.js | 1 - .../internals/object-get-prototype-of.js | 17 - .../core-js/internals/object-iterator.js | 37 - .../core-js/internals/object-keys-internal.js | 17 - .../core-js/internals/object-keys.js | 8 - .../object-property-is-enumerable.js | 13 - .../object-prototype-accessors-forced.js | 13 - .../internals/object-set-prototype-of.js | 24 - .../core-js/internals/object-to-array.js | 32 - .../core-js/internals/object-to-string.js | 9 - .../core-js/internals/own-keys.js | 11 - .../node_modules/core-js/internals/path.js | 3 - .../node_modules/core-js/internals/perform.js | 7 - .../core-js/internals/promise-resolve.js | 12 - .../core-js/internals/redefine-all.js | 6 - .../core-js/internals/redefine.js | 40 - .../core-js/internals/reflect-metadata.js | 55 - .../core-js/internals/regexp-exec-abstract.js | 22 - .../core-js/internals/regexp-exec.js | 87 - .../core-js/internals/regexp-flags.js | 16 - .../internals/regexp-sticky-helpers.js | 23 - .../internals/require-object-coercible.js | 6 - .../core-js/internals/same-value-zero.js | 6 - .../core-js/internals/same-value.js | 6 - .../core-js/internals/set-global.js | 10 - .../core-js/internals/set-species.js | 19 - .../core-js/internals/set-to-string-tag.js | 11 - .../core-js/internals/shared-key.js | 8 - .../core-js/internals/shared-store.js | 7 - .../node_modules/core-js/internals/shared.js | 10 - .../core-js/internals/species-constructor.js | 13 - .../core-js/internals/string-html-forced.js | 10 - .../core-js/internals/string-multibyte.js | 27 - .../internals/string-pad-webkit-bug.js | 5 - .../core-js/internals/string-pad.js | 31 - .../internals/string-punycode-to-ascii.js | 168 - .../core-js/internals/string-repeat.js | 14 - .../core-js/internals/string-trim-forced.js | 12 - .../core-js/internals/string-trim.js | 28 - .../node_modules/core-js/internals/task.js | 107 - .../core-js/internals/this-number-value.js | 10 - .../core-js/internals/to-absolute-index.js | 12 - .../core-js/internals/to-index.js | 12 - .../core-js/internals/to-indexed-object.js | 7 - .../core-js/internals/to-integer.js | 8 - .../core-js/internals/to-length.js | 9 - .../core-js/internals/to-object.js | 7 - .../core-js/internals/to-offset.js | 7 - .../core-js/internals/to-positive-integer.js | 7 - .../core-js/internals/to-primitive.js | 14 - .../internals/to-string-tag-support.js | 8 - .../internals/typed-array-constructor.js | 230 - ...ped-array-constructors-require-wrappers.js | 22 - .../core-js/internals/typed-array-from.js | 32 - gateway/node_modules/core-js/internals/uid.js | 6 - .../core-js/internals/use-symbol-as-uid.js | 7 - .../internals/well-known-symbol-wrapped.js | 3 - .../core-js/internals/well-known-symbol.js | 17 - .../core-js/internals/whitespaces.js | 3 - .../node_modules/core-js/modules/README.md | 1 - .../core-js/modules/es.aggregate-error.js | 31 - .../modules/es.array-buffer.constructor.js | 17 - .../modules/es.array-buffer.is-view.js | 10 - .../core-js/modules/es.array-buffer.slice.js | 36 - .../core-js/modules/es.array.concat.js | 60 - .../core-js/modules/es.array.copy-within.js | 12 - .../core-js/modules/es.array.every.js | 16 - .../core-js/modules/es.array.fill.js | 12 - .../core-js/modules/es.array.filter.js | 18 - .../core-js/modules/es.array.find-index.js | 24 - .../core-js/modules/es.array.find.js | 24 - .../core-js/modules/es.array.flat-map.js | 21 - .../core-js/modules/es.array.flat.js | 20 - .../core-js/modules/es.array.for-each.js | 9 - .../core-js/modules/es.array.from.js | 13 - .../core-js/modules/es.array.includes.js | 18 - .../core-js/modules/es.array.index-of.js | 22 - .../core-js/modules/es.array.is-array.js | 8 - .../core-js/modules/es.array.iterator.js | 53 - .../core-js/modules/es.array.join.js | 18 - .../core-js/modules/es.array.last-index-of.js | 8 - .../core-js/modules/es.array.map.js | 18 - .../core-js/modules/es.array.of.js | 23 - .../core-js/modules/es.array.reduce-right.js | 22 - .../core-js/modules/es.array.reduce.js | 21 - .../core-js/modules/es.array.reverse.js | 18 - .../core-js/modules/es.array.slice.js | 49 - .../core-js/modules/es.array.some.js | 16 - .../core-js/modules/es.array.sort.js | 32 - .../core-js/modules/es.array.species.js | 5 - .../core-js/modules/es.array.splice.js | 70 - .../modules/es.array.unscopables.flat-map.js | 5 - .../modules/es.array.unscopables.flat.js | 5 - .../core-js/modules/es.data-view.js | 9 - .../core-js/modules/es.date.now.js | 9 - .../core-js/modules/es.date.to-iso-string.js | 9 - .../core-js/modules/es.date.to-json.js | 21 - .../core-js/modules/es.date.to-primitive.js | 12 - .../core-js/modules/es.date.to-string.js | 17 - .../core-js/modules/es.function.bind.js | 8 - .../modules/es.function.has-instance.js | 20 - .../core-js/modules/es.function.name.js | 22 - .../core-js/modules/es.global-this.js | 8 - .../core-js/modules/es.json.stringify.js | 32 - .../core-js/modules/es.json.to-string-tag.js | 6 - .../node_modules/core-js/modules/es.map.js | 9 - .../core-js/modules/es.math.acosh.js | 23 - .../core-js/modules/es.math.asinh.js | 16 - .../core-js/modules/es.math.atanh.js | 13 - .../core-js/modules/es.math.cbrt.js | 13 - .../core-js/modules/es.math.clz32.js | 13 - .../core-js/modules/es.math.cosh.js | 15 - .../core-js/modules/es.math.expm1.js | 6 - .../core-js/modules/es.math.fround.js | 6 - .../core-js/modules/es.math.hypot.js | 33 - .../core-js/modules/es.math.imul.js | 22 - .../core-js/modules/es.math.log10.js | 12 - .../core-js/modules/es.math.log1p.js | 6 - .../core-js/modules/es.math.log2.js | 12 - .../core-js/modules/es.math.sign.js | 8 - .../core-js/modules/es.math.sinh.js | 20 - .../core-js/modules/es.math.tanh.js | 14 - .../core-js/modules/es.math.to-string-tag.js | 5 - .../core-js/modules/es.math.trunc.js | 12 - .../core-js/modules/es.number.constructor.js | 78 - .../core-js/modules/es.number.epsilon.js | 7 - .../core-js/modules/es.number.is-finite.js | 6 - .../core-js/modules/es.number.is-integer.js | 8 - .../core-js/modules/es.number.is-nan.js | 10 - .../modules/es.number.is-safe-integer.js | 12 - .../modules/es.number.max-safe-integer.js | 7 - .../modules/es.number.min-safe-integer.js | 7 - .../core-js/modules/es.number.parse-float.js | 8 - .../core-js/modules/es.number.parse-int.js | 8 - .../core-js/modules/es.number.to-fixed.js | 126 - .../core-js/modules/es.number.to-precision.js | 24 - .../core-js/modules/es.object.assign.js | 8 - .../core-js/modules/es.object.create.js | 9 - .../modules/es.object.define-getter.js | 17 - .../modules/es.object.define-properties.js | 9 - .../modules/es.object.define-property.js | 9 - .../modules/es.object.define-setter.js | 17 - .../core-js/modules/es.object.entries.js | 10 - .../core-js/modules/es.object.freeze.js | 16 - .../core-js/modules/es.object.from-entries.js | 15 - .../es.object.get-own-property-descriptor.js | 16 - .../es.object.get-own-property-descriptors.js | 24 - .../es.object.get-own-property-names.js | 11 - .../modules/es.object.get-prototype-of.js | 16 - .../modules/es.object.is-extensible.js | 14 - .../core-js/modules/es.object.is-frozen.js | 14 - .../core-js/modules/es.object.is-sealed.js | 14 - .../core-js/modules/es.object.is.js | 8 - .../core-js/modules/es.object.keys.js | 14 - .../modules/es.object.lookup-getter.js | 23 - .../modules/es.object.lookup-setter.js | 23 - .../modules/es.object.prevent-extensions.js | 16 - .../core-js/modules/es.object.seal.js | 16 - .../modules/es.object.set-prototype-of.js | 8 - .../core-js/modules/es.object.to-string.js | 9 - .../core-js/modules/es.object.values.js | 10 - .../core-js/modules/es.parse-float.js | 8 - .../core-js/modules/es.parse-int.js | 8 - .../core-js/modules/es.promise.all-settled.js | 43 - .../core-js/modules/es.promise.any.js | 46 - .../core-js/modules/es.promise.finally.js | 36 - .../core-js/modules/es.promise.js | 381 - .../core-js/modules/es.reflect.apply.js | 25 - .../core-js/modules/es.reflect.construct.js | 51 - .../modules/es.reflect.define-property.js | 28 - .../modules/es.reflect.delete-property.js | 12 - .../es.reflect.get-own-property-descriptor.js | 12 - .../modules/es.reflect.get-prototype-of.js | 12 - .../core-js/modules/es.reflect.get.js | 24 - .../core-js/modules/es.reflect.has.js | 9 - .../modules/es.reflect.is-extensible.js | 13 - .../core-js/modules/es.reflect.own-keys.js | 8 - .../modules/es.reflect.prevent-extensions.js | 19 - .../modules/es.reflect.set-prototype-of.js | 19 - .../core-js/modules/es.reflect.set.js | 46 - .../modules/es.reflect.to-string-tag.js | 9 - .../core-js/modules/es.regexp.constructor.js | 84 - .../core-js/modules/es.regexp.exec.js | 7 - .../core-js/modules/es.regexp.flags.js | 13 - .../core-js/modules/es.regexp.sticky.js | 21 - .../core-js/modules/es.regexp.test.js | 30 - .../core-js/modules/es.regexp.to-string.js | 25 - .../node_modules/core-js/modules/es.set.js | 9 - .../core-js/modules/es.string.anchor.js | 12 - .../core-js/modules/es.string.big.js | 12 - .../core-js/modules/es.string.blink.js | 12 - .../core-js/modules/es.string.bold.js | 12 - .../modules/es.string.code-point-at.js | 11 - .../core-js/modules/es.string.ends-with.js | 34 - .../core-js/modules/es.string.fixed.js | 12 - .../core-js/modules/es.string.fontcolor.js | 12 - .../core-js/modules/es.string.fontsize.js | 12 - .../modules/es.string.from-code-point.js | 27 - .../core-js/modules/es.string.includes.js | 14 - .../core-js/modules/es.string.italics.js | 12 - .../core-js/modules/es.string.iterator.js | 29 - .../core-js/modules/es.string.link.js | 12 - .../core-js/modules/es.string.match-all.js | 109 - .../core-js/modules/es.string.match.js | 44 - .../core-js/modules/es.string.pad-end.js | 12 - .../core-js/modules/es.string.pad-start.js | 12 - .../core-js/modules/es.string.raw.js | 19 - .../core-js/modules/es.string.repeat.js | 8 - .../core-js/modules/es.string.replace-all.js | 50 - .../core-js/modules/es.string.replace.js | 135 - .../core-js/modules/es.string.search.js | 34 - .../core-js/modules/es.string.small.js | 12 - .../core-js/modules/es.string.split.js | 134 - .../core-js/modules/es.string.starts-with.js | 32 - .../core-js/modules/es.string.strike.js | 12 - .../core-js/modules/es.string.sub.js | 12 - .../core-js/modules/es.string.sup.js | 12 - .../core-js/modules/es.string.trim-end.js | 17 - .../core-js/modules/es.string.trim-start.js | 17 - .../core-js/modules/es.string.trim.js | 12 - .../modules/es.symbol.async-iterator.js | 5 - .../core-js/modules/es.symbol.description.js | 50 - .../core-js/modules/es.symbol.has-instance.js | 5 - .../modules/es.symbol.is-concat-spreadable.js | 5 - .../core-js/modules/es.symbol.iterator.js | 5 - .../node_modules/core-js/modules/es.symbol.js | 311 - .../core-js/modules/es.symbol.match-all.js | 4 - .../core-js/modules/es.symbol.match.js | 5 - .../core-js/modules/es.symbol.replace.js | 5 - .../core-js/modules/es.symbol.search.js | 5 - .../core-js/modules/es.symbol.species.js | 5 - .../core-js/modules/es.symbol.split.js | 5 - .../core-js/modules/es.symbol.to-primitive.js | 5 - .../modules/es.symbol.to-string-tag.js | 5 - .../core-js/modules/es.symbol.unscopables.js | 5 - .../modules/es.typed-array.copy-within.js | 12 - .../core-js/modules/es.typed-array.every.js | 12 - .../core-js/modules/es.typed-array.fill.js | 13 - .../core-js/modules/es.typed-array.filter.js | 20 - .../modules/es.typed-array.find-index.js | 12 - .../core-js/modules/es.typed-array.find.js | 12 - .../modules/es.typed-array.float32-array.js | 9 - .../modules/es.typed-array.float64-array.js | 9 - .../modules/es.typed-array.for-each.js | 12 - .../core-js/modules/es.typed-array.from.js | 8 - .../modules/es.typed-array.includes.js | 12 - .../modules/es.typed-array.index-of.js | 12 - .../modules/es.typed-array.int16-array.js | 9 - .../modules/es.typed-array.int32-array.js | 9 - .../modules/es.typed-array.int8-array.js | 9 - .../modules/es.typed-array.iterator.js | 38 - .../core-js/modules/es.typed-array.join.js | 13 - .../modules/es.typed-array.last-index-of.js | 13 - .../core-js/modules/es.typed-array.map.js | 16 - .../core-js/modules/es.typed-array.of.js | 16 - .../modules/es.typed-array.reduce-right.js | 12 - .../core-js/modules/es.typed-array.reduce.js | 12 - .../core-js/modules/es.typed-array.reverse.js | 21 - .../core-js/modules/es.typed-array.set.js | 27 - .../core-js/modules/es.typed-array.slice.js | 26 - .../core-js/modules/es.typed-array.some.js | 12 - .../core-js/modules/es.typed-array.sort.js | 12 - .../modules/es.typed-array.subarray.js | 21 - .../es.typed-array.to-locale-string.js | 27 - .../modules/es.typed-array.to-string.js | 21 - .../modules/es.typed-array.uint16-array.js | 9 - .../modules/es.typed-array.uint32-array.js | 9 - .../modules/es.typed-array.uint8-array.js | 9 - .../es.typed-array.uint8-clamped-array.js | 9 - .../core-js/modules/es.weak-map.js | 67 - .../core-js/modules/es.weak-set.js | 9 - .../core-js/modules/esnext.aggregate-error.js | 2 - .../esnext.array.is-template-object.js | 28 - .../modules/esnext.array.last-index.js | 21 - .../core-js/modules/esnext.array.last-item.js | 26 - .../esnext.async-iterator.as-indexed-pairs.js | 27 - .../esnext.async-iterator.constructor.js | 29 - .../modules/esnext.async-iterator.drop.js | 41 - .../modules/esnext.async-iterator.every.js | 10 - .../modules/esnext.async-iterator.filter.js | 42 - .../modules/esnext.async-iterator.find.js | 10 - .../modules/esnext.async-iterator.flat-map.js | 67 - .../modules/esnext.async-iterator.for-each.js | 10 - .../modules/esnext.async-iterator.from.js | 30 - .../modules/esnext.async-iterator.map.js | 30 - .../modules/esnext.async-iterator.reduce.js | 46 - .../modules/esnext.async-iterator.some.js | 10 - .../modules/esnext.async-iterator.take.js | 31 - .../modules/esnext.async-iterator.to-array.js | 10 - .../core-js/modules/esnext.composite-key.js | 16 - .../modules/esnext.composite-symbol.js | 11 - .../core-js/modules/esnext.global-this.js | 2 - .../esnext.iterator.as-indexed-pairs.js | 20 - .../modules/esnext.iterator.constructor.js | 48 - .../core-js/modules/esnext.iterator.drop.js | 30 - .../core-js/modules/esnext.iterator.every.js | 16 - .../core-js/modules/esnext.iterator.filter.js | 30 - .../core-js/modules/esnext.iterator.find.js | 16 - .../modules/esnext.iterator.flat-map.js | 52 - .../modules/esnext.iterator.for-each.js | 11 - .../core-js/modules/esnext.iterator.from.js | 32 - .../core-js/modules/esnext.iterator.map.js | 23 - .../core-js/modules/esnext.iterator.reduce.js | 25 - .../core-js/modules/esnext.iterator.some.js | 16 - .../core-js/modules/esnext.iterator.take.js | 27 - .../modules/esnext.iterator.to-array.js | 15 - .../core-js/modules/esnext.map.delete-all.js | 12 - .../core-js/modules/esnext.map.emplace.js | 10 - .../core-js/modules/esnext.map.every.js | 20 - .../core-js/modules/esnext.map.filter.js | 26 - .../core-js/modules/esnext.map.find-key.js | 20 - .../core-js/modules/esnext.map.find.js | 20 - .../core-js/modules/esnext.map.from.js | 8 - .../core-js/modules/esnext.map.group-by.js | 22 - .../core-js/modules/esnext.map.includes.js | 17 - .../core-js/modules/esnext.map.key-by.js | 18 - .../core-js/modules/esnext.map.key-of.js | 16 - .../core-js/modules/esnext.map.map-keys.js | 26 - .../core-js/modules/esnext.map.map-values.js | 26 - .../core-js/modules/esnext.map.merge.js | 21 - .../core-js/modules/esnext.map.of.js | 8 - .../core-js/modules/esnext.map.reduce.js | 29 - .../core-js/modules/esnext.map.some.js | 20 - .../modules/esnext.map.update-or-insert.js | 11 - .../core-js/modules/esnext.map.update.js | 22 - .../core-js/modules/esnext.map.upsert.js | 11 - .../core-js/modules/esnext.math.clamp.js | 12 - .../modules/esnext.math.deg-per-rad.js | 7 - .../core-js/modules/esnext.math.degrees.js | 11 - .../core-js/modules/esnext.math.fscale.js | 12 - .../core-js/modules/esnext.math.iaddh.js | 13 - .../core-js/modules/esnext.math.imulh.js | 18 - .../core-js/modules/esnext.math.isubh.js | 13 - .../modules/esnext.math.rad-per-deg.js | 7 - .../core-js/modules/esnext.math.radians.js | 11 - .../core-js/modules/esnext.math.scale.js | 8 - .../modules/esnext.math.seeded-prng.js | 33 - .../core-js/modules/esnext.math.signbit.js | 9 - .../core-js/modules/esnext.math.umulh.js | 18 - .../modules/esnext.number.from-string.js | 30 - .../modules/esnext.object.iterate-entries.js | 11 - .../modules/esnext.object.iterate-keys.js | 11 - .../modules/esnext.object.iterate-values.js | 11 - .../core-js/modules/esnext.observable.js | 207 - .../modules/esnext.promise.all-settled.js | 2 - .../core-js/modules/esnext.promise.any.js | 2 - .../core-js/modules/esnext.promise.try.js | 15 - .../modules/esnext.reflect.define-metadata.js | 15 - .../modules/esnext.reflect.delete-metadata.js | 21 - .../esnext.reflect.get-metadata-keys.js | 33 - .../modules/esnext.reflect.get-metadata.js | 24 - .../esnext.reflect.get-own-metadata-keys.js | 15 - .../esnext.reflect.get-own-metadata.js | 15 - .../modules/esnext.reflect.has-metadata.js | 23 - .../esnext.reflect.has-own-metadata.js | 15 - .../modules/esnext.reflect.metadata.js | 16 - .../core-js/modules/esnext.set.add-all.js | 12 - .../core-js/modules/esnext.set.delete-all.js | 12 - .../core-js/modules/esnext.set.difference.js | 22 - .../core-js/modules/esnext.set.every.js | 20 - .../core-js/modules/esnext.set.filter.js | 26 - .../core-js/modules/esnext.set.find.js | 20 - .../core-js/modules/esnext.set.from.js | 8 - .../modules/esnext.set.intersection.js | 23 - .../modules/esnext.set.is-disjoint-from.js | 18 - .../modules/esnext.set.is-subset-of.js | 25 - .../modules/esnext.set.is-superset-of.js | 18 - .../core-js/modules/esnext.set.join.js | 19 - .../core-js/modules/esnext.set.map.js | 26 - .../core-js/modules/esnext.set.of.js | 8 - .../core-js/modules/esnext.set.reduce.js | 29 - .../core-js/modules/esnext.set.some.js | 20 - .../esnext.set.symmetric-difference.js | 23 - .../core-js/modules/esnext.set.union.js | 19 - .../core-js/modules/esnext.string.at.js | 11 - .../modules/esnext.string.code-points.js | 38 - .../modules/esnext.string.match-all.js | 2 - .../modules/esnext.string.replace-all.js | 2 - .../modules/esnext.symbol.async-dispose.js | 5 - .../core-js/modules/esnext.symbol.dispose.js | 5 - .../modules/esnext.symbol.observable.js | 5 - .../modules/esnext.symbol.pattern-match.js | 5 - .../modules/esnext.symbol.replace-all.js | 4 - .../modules/esnext.weak-map.delete-all.js | 12 - .../modules/esnext.weak-map.emplace.js | 10 - .../core-js/modules/esnext.weak-map.from.js | 8 - .../core-js/modules/esnext.weak-map.of.js | 8 - .../core-js/modules/esnext.weak-map.upsert.js | 11 - .../modules/esnext.weak-set.add-all.js | 12 - .../modules/esnext.weak-set.delete-all.js | 12 - .../core-js/modules/esnext.weak-set.from.js | 8 - .../core-js/modules/esnext.weak-set.of.js | 8 - .../modules/web.dom-collections.for-each.js | 15 - .../modules/web.dom-collections.iterator.js | 33 - .../core-js/modules/web.immediate.js | 15 - .../core-js/modules/web.queue-microtask.js | 15 - .../core-js/modules/web.timers.js | 28 - .../core-js/modules/web.url-search-params.js | 347 - .../node_modules/core-js/modules/web.url.js | 1007 -- .../core-js/modules/web.url.to-json.js | 10 - gateway/node_modules/core-js/package.json | 57 - gateway/node_modules/core-js/postinstall.js | 58 - .../proposals/array-is-template-object.js | 1 - .../core-js/proposals/array-last.js | 2 - .../core-js/proposals/collection-methods.js | 27 - .../core-js/proposals/collection-of-from.js | 8 - .../proposals/efficient-64-bit-arithmetic.js | 5 - .../core-js/proposals/global-this.js | 4 - .../node_modules/core-js/proposals/index.js | 1 - .../core-js/proposals/iterator-helpers.js | 28 - .../core-js/proposals/keys-composition.js | 2 - .../core-js/proposals/map-update-or-insert.js | 2 - .../core-js/proposals/map-upsert.js | 9 - .../core-js/proposals/math-extensions.js | 7 - .../core-js/proposals/math-signbit.js | 1 - .../core-js/proposals/number-from-string.js | 1 - .../core-js/proposals/object-iteration.js | 4 - .../core-js/proposals/observable.js | 2 - .../core-js/proposals/pattern-matching.js | 1 - .../core-js/proposals/promise-all-settled.js | 2 - .../core-js/proposals/promise-any.js | 2 - .../core-js/proposals/promise-try.js | 1 - .../core-js/proposals/reflect-metadata.js | 9 - .../core-js/proposals/seeded-random.js | 1 - .../core-js/proposals/set-methods.js | 7 - .../core-js/proposals/string-at.js | 1 - .../core-js/proposals/string-code-points.js | 1 - .../core-js/proposals/string-match-all.js | 2 - .../core-js/proposals/string-replace-all.js | 2 - gateway/node_modules/core-js/proposals/url.js | 3 - .../core-js/proposals/using-statement.js | 3 - gateway/node_modules/core-js/stable/README.md | 1 - .../core-js/stable/aggregate-error.js | 6 - .../stable/array-buffer/constructor.js | 3 - .../core-js/stable/array-buffer/index.js | 3 - .../core-js/stable/array-buffer/is-view.js | 3 - .../core-js/stable/array-buffer/slice.js | 3 - .../core-js/stable/array/concat.js | 3 - .../core-js/stable/array/copy-within.js | 3 - .../core-js/stable/array/entries.js | 3 - .../core-js/stable/array/every.js | 3 - .../node_modules/core-js/stable/array/fill.js | 3 - .../core-js/stable/array/filter.js | 3 - .../core-js/stable/array/find-index.js | 3 - .../node_modules/core-js/stable/array/find.js | 3 - .../core-js/stable/array/flat-map.js | 3 - .../node_modules/core-js/stable/array/flat.js | 3 - .../core-js/stable/array/for-each.js | 3 - .../node_modules/core-js/stable/array/from.js | 3 - .../core-js/stable/array/includes.js | 3 - .../core-js/stable/array/index-of.js | 3 - .../core-js/stable/array/index.js | 3 - .../core-js/stable/array/is-array.js | 3 - .../core-js/stable/array/iterator.js | 3 - .../node_modules/core-js/stable/array/join.js | 3 - .../node_modules/core-js/stable/array/keys.js | 3 - .../core-js/stable/array/last-index-of.js | 3 - .../node_modules/core-js/stable/array/map.js | 3 - .../node_modules/core-js/stable/array/of.js | 3 - .../core-js/stable/array/reduce-right.js | 3 - .../core-js/stable/array/reduce.js | 3 - .../core-js/stable/array/reverse.js | 3 - .../core-js/stable/array/slice.js | 3 - .../node_modules/core-js/stable/array/some.js | 3 - .../node_modules/core-js/stable/array/sort.js | 3 - .../core-js/stable/array/splice.js | 3 - .../core-js/stable/array/values.js | 3 - .../core-js/stable/array/virtual/concat.js | 3 - .../stable/array/virtual/copy-within.js | 3 - .../core-js/stable/array/virtual/entries.js | 3 - .../core-js/stable/array/virtual/every.js | 3 - .../core-js/stable/array/virtual/fill.js | 3 - .../core-js/stable/array/virtual/filter.js | 3 - .../stable/array/virtual/find-index.js | 3 - .../core-js/stable/array/virtual/find.js | 3 - .../core-js/stable/array/virtual/flat-map.js | 3 - .../core-js/stable/array/virtual/flat.js | 3 - .../core-js/stable/array/virtual/for-each.js | 3 - .../core-js/stable/array/virtual/includes.js | 3 - .../core-js/stable/array/virtual/index-of.js | 3 - .../core-js/stable/array/virtual/index.js | 3 - .../core-js/stable/array/virtual/iterator.js | 3 - .../core-js/stable/array/virtual/join.js | 3 - .../core-js/stable/array/virtual/keys.js | 3 - .../stable/array/virtual/last-index-of.js | 3 - .../core-js/stable/array/virtual/map.js | 3 - .../stable/array/virtual/reduce-right.js | 3 - .../core-js/stable/array/virtual/reduce.js | 3 - .../core-js/stable/array/virtual/reverse.js | 3 - .../core-js/stable/array/virtual/slice.js | 3 - .../core-js/stable/array/virtual/some.js | 3 - .../core-js/stable/array/virtual/sort.js | 3 - .../core-js/stable/array/virtual/splice.js | 3 - .../core-js/stable/array/virtual/values.js | 3 - .../core-js/stable/clear-immediate.js | 4 - .../core-js/stable/data-view/index.js | 3 - .../node_modules/core-js/stable/date/index.js | 3 - .../node_modules/core-js/stable/date/now.js | 3 - .../core-js/stable/date/to-iso-string.js | 3 - .../core-js/stable/date/to-json.js | 3 - .../core-js/stable/date/to-primitive.js | 3 - .../core-js/stable/date/to-string.js | 3 - .../stable/dom-collections/for-each.js | 5 - .../core-js/stable/dom-collections/index.js | 12 - .../stable/dom-collections/iterator.js | 4 - .../core-js/stable/function/bind.js | 3 - .../core-js/stable/function/has-instance.js | 3 - .../core-js/stable/function/index.js | 3 - .../core-js/stable/function/name.js | 3 - .../core-js/stable/function/virtual/bind.js | 3 - .../core-js/stable/function/virtual/index.js | 3 - .../core-js/stable/global-this.js | 3 - gateway/node_modules/core-js/stable/index.js | 5 - .../core-js/stable/instance/bind.js | 3 - .../core-js/stable/instance/code-point-at.js | 3 - .../core-js/stable/instance/concat.js | 3 - .../core-js/stable/instance/copy-within.js | 3 - .../core-js/stable/instance/ends-with.js | 3 - .../core-js/stable/instance/entries.js | 16 - .../core-js/stable/instance/every.js | 3 - .../core-js/stable/instance/fill.js | 3 - .../core-js/stable/instance/filter.js | 3 - .../core-js/stable/instance/find-index.js | 3 - .../core-js/stable/instance/find.js | 3 - .../core-js/stable/instance/flags.js | 3 - .../core-js/stable/instance/flat-map.js | 3 - .../core-js/stable/instance/flat.js | 3 - .../core-js/stable/instance/for-each.js | 16 - .../core-js/stable/instance/includes.js | 3 - .../core-js/stable/instance/index-of.js | 3 - .../core-js/stable/instance/keys.js | 16 - .../core-js/stable/instance/last-index-of.js | 3 - .../core-js/stable/instance/map.js | 3 - .../core-js/stable/instance/match-all.js | 3 - .../core-js/stable/instance/pad-end.js | 3 - .../core-js/stable/instance/pad-start.js | 3 - .../core-js/stable/instance/reduce-right.js | 3 - .../core-js/stable/instance/reduce.js | 3 - .../core-js/stable/instance/repeat.js | 3 - .../core-js/stable/instance/reverse.js | 3 - .../core-js/stable/instance/slice.js | 3 - .../core-js/stable/instance/some.js | 3 - .../core-js/stable/instance/sort.js | 3 - .../core-js/stable/instance/splice.js | 3 - .../core-js/stable/instance/starts-with.js | 3 - .../core-js/stable/instance/trim-end.js | 3 - .../core-js/stable/instance/trim-left.js | 3 - .../core-js/stable/instance/trim-right.js | 3 - .../core-js/stable/instance/trim-start.js | 3 - .../core-js/stable/instance/trim.js | 3 - .../core-js/stable/instance/values.js | 16 - .../node_modules/core-js/stable/json/index.js | 3 - .../core-js/stable/json/stringify.js | 3 - .../core-js/stable/json/to-string-tag.js | 3 - .../node_modules/core-js/stable/map/index.js | 3 - .../node_modules/core-js/stable/math/acosh.js | 3 - .../node_modules/core-js/stable/math/asinh.js | 3 - .../node_modules/core-js/stable/math/atanh.js | 3 - .../node_modules/core-js/stable/math/cbrt.js | 3 - .../node_modules/core-js/stable/math/clz32.js | 3 - .../node_modules/core-js/stable/math/cosh.js | 3 - .../node_modules/core-js/stable/math/expm1.js | 3 - .../core-js/stable/math/fround.js | 3 - .../node_modules/core-js/stable/math/hypot.js | 3 - .../node_modules/core-js/stable/math/imul.js | 3 - .../node_modules/core-js/stable/math/index.js | 3 - .../node_modules/core-js/stable/math/log10.js | 3 - .../node_modules/core-js/stable/math/log1p.js | 3 - .../node_modules/core-js/stable/math/log2.js | 3 - .../node_modules/core-js/stable/math/sign.js | 3 - .../node_modules/core-js/stable/math/sinh.js | 3 - .../node_modules/core-js/stable/math/tanh.js | 3 - .../core-js/stable/math/to-string-tag.js | 3 - .../node_modules/core-js/stable/math/trunc.js | 3 - .../core-js/stable/number/constructor.js | 3 - .../core-js/stable/number/epsilon.js | 3 - .../core-js/stable/number/index.js | 3 - .../core-js/stable/number/is-finite.js | 3 - .../core-js/stable/number/is-integer.js | 3 - .../core-js/stable/number/is-nan.js | 3 - .../core-js/stable/number/is-safe-integer.js | 3 - .../core-js/stable/number/max-safe-integer.js | 3 - .../core-js/stable/number/min-safe-integer.js | 3 - .../core-js/stable/number/parse-float.js | 3 - .../core-js/stable/number/parse-int.js | 3 - .../core-js/stable/number/to-fixed.js | 3 - .../core-js/stable/number/to-precision.js | 3 - .../core-js/stable/number/virtual/index.js | 3 - .../core-js/stable/number/virtual/to-fixed.js | 3 - .../stable/number/virtual/to-precision.js | 3 - .../core-js/stable/object/assign.js | 3 - .../core-js/stable/object/create.js | 3 - .../core-js/stable/object/define-getter.js | 3 - .../stable/object/define-properties.js | 3 - .../core-js/stable/object/define-property.js | 3 - .../core-js/stable/object/define-setter.js | 3 - .../core-js/stable/object/entries.js | 3 - .../core-js/stable/object/freeze.js | 3 - .../core-js/stable/object/from-entries.js | 3 - .../object/get-own-property-descriptor.js | 3 - .../object/get-own-property-descriptors.js | 3 - .../stable/object/get-own-property-names.js | 3 - .../stable/object/get-own-property-symbols.js | 3 - .../core-js/stable/object/get-prototype-of.js | 3 - .../core-js/stable/object/index.js | 3 - .../core-js/stable/object/is-extensible.js | 3 - .../core-js/stable/object/is-frozen.js | 3 - .../core-js/stable/object/is-sealed.js | 3 - .../node_modules/core-js/stable/object/is.js | 3 - .../core-js/stable/object/keys.js | 3 - .../core-js/stable/object/lookup-getter.js | 3 - .../core-js/stable/object/lookup-setter.js | 3 - .../stable/object/prevent-extensions.js | 3 - .../core-js/stable/object/seal.js | 3 - .../core-js/stable/object/set-prototype-of.js | 3 - .../core-js/stable/object/to-string.js | 3 - .../core-js/stable/object/values.js | 3 - .../core-js/stable/parse-float.js | 3 - .../node_modules/core-js/stable/parse-int.js | 3 - .../core-js/stable/promise/all-settled.js | 3 - .../core-js/stable/promise/any.js | 3 - .../core-js/stable/promise/finally.js | 3 - .../core-js/stable/promise/index.js | 3 - .../core-js/stable/queue-microtask.js | 3 - .../core-js/stable/reflect/apply.js | 3 - .../core-js/stable/reflect/construct.js | 3 - .../core-js/stable/reflect/define-property.js | 3 - .../core-js/stable/reflect/delete-property.js | 3 - .../reflect/get-own-property-descriptor.js | 3 - .../stable/reflect/get-prototype-of.js | 3 - .../core-js/stable/reflect/get.js | 3 - .../core-js/stable/reflect/has.js | 3 - .../core-js/stable/reflect/index.js | 3 - .../core-js/stable/reflect/is-extensible.js | 3 - .../core-js/stable/reflect/own-keys.js | 3 - .../stable/reflect/prevent-extensions.js | 3 - .../stable/reflect/set-prototype-of.js | 3 - .../core-js/stable/reflect/set.js | 3 - .../core-js/stable/reflect/to-string-tag.js | 3 - .../core-js/stable/regexp/constructor.js | 3 - .../core-js/stable/regexp/flags.js | 3 - .../core-js/stable/regexp/index.js | 3 - .../core-js/stable/regexp/match.js | 3 - .../core-js/stable/regexp/replace.js | 3 - .../core-js/stable/regexp/search.js | 3 - .../core-js/stable/regexp/split.js | 3 - .../core-js/stable/regexp/sticky.js | 3 - .../core-js/stable/regexp/test.js | 3 - .../core-js/stable/regexp/to-string.js | 3 - .../core-js/stable/set-immediate.js | 4 - .../core-js/stable/set-interval.js | 4 - .../core-js/stable/set-timeout.js | 4 - .../node_modules/core-js/stable/set/index.js | 3 - .../core-js/stable/string/anchor.js | 3 - .../node_modules/core-js/stable/string/big.js | 3 - .../core-js/stable/string/blink.js | 3 - .../core-js/stable/string/bold.js | 3 - .../core-js/stable/string/code-point-at.js | 3 - .../core-js/stable/string/ends-with.js | 3 - .../core-js/stable/string/fixed.js | 3 - .../core-js/stable/string/fontcolor.js | 3 - .../core-js/stable/string/fontsize.js | 3 - .../core-js/stable/string/from-code-point.js | 3 - .../core-js/stable/string/includes.js | 3 - .../core-js/stable/string/index.js | 3 - .../core-js/stable/string/italics.js | 3 - .../core-js/stable/string/iterator.js | 3 - .../core-js/stable/string/link.js | 3 - .../core-js/stable/string/match-all.js | 3 - .../core-js/stable/string/match.js | 3 - .../core-js/stable/string/pad-end.js | 3 - .../core-js/stable/string/pad-start.js | 3 - .../node_modules/core-js/stable/string/raw.js | 3 - .../core-js/stable/string/repeat.js | 3 - .../core-js/stable/string/replace-all.js | 3 - .../core-js/stable/string/replace.js | 3 - .../core-js/stable/string/search.js | 3 - .../core-js/stable/string/small.js | 3 - .../core-js/stable/string/split.js | 3 - .../core-js/stable/string/starts-with.js | 3 - .../core-js/stable/string/strike.js | 3 - .../node_modules/core-js/stable/string/sub.js | 3 - .../node_modules/core-js/stable/string/sup.js | 3 - .../core-js/stable/string/trim-end.js | 3 - .../core-js/stable/string/trim-left.js | 3 - .../core-js/stable/string/trim-right.js | 3 - .../core-js/stable/string/trim-start.js | 3 - .../core-js/stable/string/trim.js | 3 - .../core-js/stable/string/virtual/anchor.js | 3 - .../core-js/stable/string/virtual/big.js | 3 - .../core-js/stable/string/virtual/blink.js | 3 - .../core-js/stable/string/virtual/bold.js | 3 - .../stable/string/virtual/code-point-at.js | 3 - .../stable/string/virtual/ends-with.js | 3 - .../core-js/stable/string/virtual/fixed.js | 3 - .../stable/string/virtual/fontcolor.js | 3 - .../core-js/stable/string/virtual/fontsize.js | 3 - .../core-js/stable/string/virtual/includes.js | 3 - .../core-js/stable/string/virtual/index.js | 3 - .../core-js/stable/string/virtual/italics.js | 3 - .../core-js/stable/string/virtual/iterator.js | 3 - .../core-js/stable/string/virtual/link.js | 3 - .../stable/string/virtual/match-all.js | 3 - .../core-js/stable/string/virtual/pad-end.js | 3 - .../stable/string/virtual/pad-start.js | 3 - .../core-js/stable/string/virtual/repeat.js | 3 - .../stable/string/virtual/replace-all.js | 3 - .../core-js/stable/string/virtual/small.js | 3 - .../stable/string/virtual/starts-with.js | 3 - .../core-js/stable/string/virtual/strike.js | 3 - .../core-js/stable/string/virtual/sub.js | 3 - .../core-js/stable/string/virtual/sup.js | 3 - .../core-js/stable/string/virtual/trim-end.js | 3 - .../stable/string/virtual/trim-left.js | 3 - .../stable/string/virtual/trim-right.js | 3 - .../stable/string/virtual/trim-start.js | 3 - .../core-js/stable/string/virtual/trim.js | 3 - .../core-js/stable/symbol/async-iterator.js | 3 - .../core-js/stable/symbol/description.js | 1 - .../node_modules/core-js/stable/symbol/for.js | 3 - .../core-js/stable/symbol/has-instance.js | 3 - .../core-js/stable/symbol/index.js | 3 - .../stable/symbol/is-concat-spreadable.js | 3 - .../core-js/stable/symbol/iterator.js | 3 - .../core-js/stable/symbol/key-for.js | 3 - .../core-js/stable/symbol/match-all.js | 3 - .../core-js/stable/symbol/match.js | 3 - .../core-js/stable/symbol/replace.js | 3 - .../core-js/stable/symbol/search.js | 3 - .../core-js/stable/symbol/species.js | 3 - .../core-js/stable/symbol/split.js | 3 - .../core-js/stable/symbol/to-primitive.js | 3 - .../core-js/stable/symbol/to-string-tag.js | 3 - .../core-js/stable/symbol/unscopables.js | 3 - .../core-js/stable/typed-array/copy-within.js | 1 - .../core-js/stable/typed-array/entries.js | 1 - .../core-js/stable/typed-array/every.js | 1 - .../core-js/stable/typed-array/fill.js | 1 - .../core-js/stable/typed-array/filter.js | 1 - .../core-js/stable/typed-array/find-index.js | 1 - .../core-js/stable/typed-array/find.js | 1 - .../stable/typed-array/float32-array.js | 3 - .../stable/typed-array/float64-array.js | 3 - .../core-js/stable/typed-array/for-each.js | 1 - .../core-js/stable/typed-array/from.js | 1 - .../core-js/stable/typed-array/includes.js | 1 - .../core-js/stable/typed-array/index-of.js | 1 - .../core-js/stable/typed-array/index.js | 3 - .../core-js/stable/typed-array/int16-array.js | 3 - .../core-js/stable/typed-array/int32-array.js | 3 - .../core-js/stable/typed-array/int8-array.js | 3 - .../core-js/stable/typed-array/iterator.js | 1 - .../core-js/stable/typed-array/join.js | 1 - .../core-js/stable/typed-array/keys.js | 1 - .../stable/typed-array/last-index-of.js | 1 - .../core-js/stable/typed-array/map.js | 1 - .../core-js/stable/typed-array/of.js | 1 - .../stable/typed-array/reduce-right.js | 1 - .../core-js/stable/typed-array/reduce.js | 1 - .../core-js/stable/typed-array/reverse.js | 1 - .../core-js/stable/typed-array/set.js | 1 - .../core-js/stable/typed-array/slice.js | 1 - .../core-js/stable/typed-array/some.js | 1 - .../core-js/stable/typed-array/sort.js | 1 - .../core-js/stable/typed-array/subarray.js | 1 - .../stable/typed-array/to-locale-string.js | 1 - .../core-js/stable/typed-array/to-string.js | 1 - .../stable/typed-array/uint16-array.js | 3 - .../stable/typed-array/uint32-array.js | 3 - .../core-js/stable/typed-array/uint8-array.js | 3 - .../stable/typed-array/uint8-clamped-array.js | 3 - .../core-js/stable/typed-array/values.js | 1 - .../core-js/stable/url-search-params/index.js | 3 - .../node_modules/core-js/stable/url/index.js | 3 - .../core-js/stable/url/to-json.js | 1 - .../core-js/stable/weak-map/index.js | 3 - .../core-js/stable/weak-set/index.js | 3 - gateway/node_modules/core-js/stage/0.js | 6 - gateway/node_modules/core-js/stage/1.js | 16 - gateway/node_modules/core-js/stage/2.js | 8 - gateway/node_modules/core-js/stage/3.js | 3 - gateway/node_modules/core-js/stage/4.js | 8 - gateway/node_modules/core-js/stage/README.md | 1 - gateway/node_modules/core-js/stage/index.js | 3 - gateway/node_modules/core-js/stage/pre.js | 4 - gateway/node_modules/core-js/web/README.md | 1 - .../core-js/web/dom-collections.js | 5 - gateway/node_modules/core-js/web/immediate.js | 4 - gateway/node_modules/core-js/web/index.js | 11 - .../core-js/web/queue-microtask.js | 4 - gateway/node_modules/core-js/web/timers.js | 4 - .../core-js/web/url-search-params.js | 4 - gateway/node_modules/core-js/web/url.js | 6 - gateway/node_modules/cors/CONTRIBUTING.md | 33 - gateway/node_modules/cors/HISTORY.md | 58 - gateway/node_modules/cors/LICENSE | 22 - gateway/node_modules/cors/README.md | 243 - gateway/node_modules/cors/lib/index.js | 238 - gateway/node_modules/cors/package.json | 41 - .../crypto-random-string/index.d.ts | 17 - .../crypto-random-string/index.js | 10 - .../node_modules/crypto-random-string/license | 9 - .../crypto-random-string/package.json | 40 - .../crypto-random-string/readme.md | 51 - gateway/node_modules/cssfilter/LICENSE | 22 - gateway/node_modules/cssfilter/README.md | 86 - gateway/node_modules/cssfilter/lib/css.js | 110 - gateway/node_modules/cssfilter/lib/default.js | 398 - gateway/node_modules/cssfilter/lib/index.js | 32 - gateway/node_modules/cssfilter/lib/parser.js | 74 - gateway/node_modules/cssfilter/lib/util.js | 35 - gateway/node_modules/cssfilter/package.json | 49 - gateway/node_modules/debug/.coveralls.yml | 1 - gateway/node_modules/debug/.eslintrc | 11 - gateway/node_modules/debug/.npmignore | 9 - gateway/node_modules/debug/.travis.yml | 14 - gateway/node_modules/debug/CHANGELOG.md | 362 - gateway/node_modules/debug/LICENSE | 19 - gateway/node_modules/debug/Makefile | 50 - gateway/node_modules/debug/README.md | 312 - gateway/node_modules/debug/component.json | 19 - gateway/node_modules/debug/karma.conf.js | 70 - gateway/node_modules/debug/node.js | 1 - .../debug/node_modules/ms/index.js | 152 - .../debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 37 - .../debug/node_modules/ms/readme.md | 51 - gateway/node_modules/debug/package.json | 49 - gateway/node_modules/debug/src/browser.js | 185 - gateway/node_modules/debug/src/debug.js | 202 - gateway/node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - gateway/node_modules/debug/src/node.js | 248 - .../node_modules/decompress-response/index.js | 29 - .../node_modules/decompress-response/license | 21 - .../decompress-response/package.json | 53 - .../decompress-response/readme.md | 31 - gateway/node_modules/deep-extend/CHANGELOG.md | 46 - gateway/node_modules/deep-extend/LICENSE | 20 - gateway/node_modules/deep-extend/README.md | 91 - gateway/node_modules/deep-extend/index.js | 1 - .../deep-extend/lib/deep-extend.js | 150 - gateway/node_modules/deep-extend/package.json | 62 - gateway/node_modules/defer-to-connect/LICENSE | 21 - .../node_modules/defer-to-connect/README.md | 38 - .../defer-to-connect/dist/index.d.ts | 10 - .../defer-to-connect/dist/index.js | 45 - .../defer-to-connect/package.json | 74 - .../define-properties/.editorconfig | 13 - .../node_modules/define-properties/.eslintrc | 12 - .../node_modules/define-properties/.jscs.json | 175 - .../define-properties/.travis.yml | 233 - .../define-properties/CHANGELOG.md | 44 - .../node_modules/define-properties/LICENSE | 21 - .../node_modules/define-properties/README.md | 86 - .../node_modules/define-properties/index.js | 58 - .../define-properties/package.json | 65 - .../define-properties/test/index.js | 125 - .../node_modules/delayed-stream/.npmignore | 1 - gateway/node_modules/delayed-stream/License | 19 - gateway/node_modules/delayed-stream/Makefile | 7 - gateway/node_modules/delayed-stream/Readme.md | 141 - .../delayed-stream/lib/delayed_stream.js | 107 - .../node_modules/delayed-stream/package.json | 27 - gateway/node_modules/depd/History.md | 96 - gateway/node_modules/depd/LICENSE | 22 - gateway/node_modules/depd/Readme.md | 280 - gateway/node_modules/depd/index.js | 522 - .../node_modules/depd/lib/browser/index.js | 77 - .../depd/lib/compat/callsite-tostring.js | 103 - .../depd/lib/compat/event-listener-count.js | 22 - gateway/node_modules/depd/lib/compat/index.js | 79 - gateway/node_modules/depd/package.json | 41 - .../deprecated-decorator/README.md | 89 - .../deprecated-decorator/bld/index.d.ts | 14 - .../deprecated-decorator/bld/index.js | 170 - .../deprecated-decorator/bld/index.js.map | 1 - .../deprecated-decorator/package.json | 29 - gateway/node_modules/destroy/LICENSE | 22 - gateway/node_modules/destroy/README.md | 60 - gateway/node_modules/destroy/index.js | 75 - gateway/node_modules/destroy/package.json | 37 - gateway/node_modules/dicer/.travis.yml | 16 - gateway/node_modules/dicer/LICENSE | 19 - gateway/node_modules/dicer/README.md | 122 - .../bench/dicer-bench-multipart-parser.js | 63 - .../formidable-bench-multipart-parser.js | 70 - .../multipartser-bench-multipart-parser.js | 56 - .../multiparty-bench-multipart-parser.js | 76 - .../bench/parted-bench-multipart-parser.js | 63 - .../dicer/bench/parted-multipart.js | 485 - gateway/node_modules/dicer/lib/Dicer.js | 239 - .../node_modules/dicer/lib/HeaderParser.js | 110 - gateway/node_modules/dicer/lib/PartStream.js | 11 - gateway/node_modules/dicer/package.json | 16 - .../dicer/test/fixtures/many-noend/original | 31 - .../dicer/test/fixtures/many-noend/part1 | 1 - .../test/fixtures/many-noend/part1.header | 1 - .../dicer/test/fixtures/many-noend/part2 | 0 .../test/fixtures/many-noend/part2.header | 1 - .../dicer/test/fixtures/many-noend/part3 | 0 .../test/fixtures/many-noend/part3.header | 1 - .../dicer/test/fixtures/many-noend/part4 | 0 .../test/fixtures/many-noend/part4.header | 1 - .../dicer/test/fixtures/many-noend/part5 | 3 - .../test/fixtures/many-noend/part5.header | 1 - .../dicer/test/fixtures/many-noend/part6 | 1 - .../test/fixtures/many-noend/part6.header | 1 - .../test/fixtures/many-noend/part7.header | 2 - .../test/fixtures/many-wrongboundary/original | 32 - .../test/fixtures/many-wrongboundary/preamble | 33 - .../many-wrongboundary/preamble.error | 1 - .../dicer/test/fixtures/many/original | 32 - .../dicer/test/fixtures/many/part1 | 1 - .../dicer/test/fixtures/many/part1.header | 1 - .../dicer/test/fixtures/many/part2 | 0 .../dicer/test/fixtures/many/part2.header | 1 - .../dicer/test/fixtures/many/part3 | 0 .../dicer/test/fixtures/many/part3.header | 1 - .../dicer/test/fixtures/many/part4 | 0 .../dicer/test/fixtures/many/part4.header | 1 - .../dicer/test/fixtures/many/part5 | 3 - .../dicer/test/fixtures/many/part5.header | 1 - .../dicer/test/fixtures/many/part6 | 0 .../dicer/test/fixtures/many/part6.header | 2 - .../dicer/test/fixtures/many/part7 | 1 - .../dicer/test/fixtures/many/part7.header | 1 - .../dicer/test/fixtures/nested-full/original | 24 - .../dicer/test/fixtures/nested-full/part1 | 1 - .../test/fixtures/nested-full/part1.header | 1 - .../dicer/test/fixtures/nested-full/part2 | 12 - .../test/fixtures/nested-full/part2.header | 2 - .../test/fixtures/nested-full/preamble.header | 2 - .../dicer/test/fixtures/nested/original | 21 - .../dicer/test/fixtures/nested/part1 | 1 - .../dicer/test/fixtures/nested/part1.header | 1 - .../dicer/test/fixtures/nested/part2 | 12 - .../dicer/test/fixtures/nested/part2.header | 2 - .../node_modules/dicer/test/test-endfinish.js | 87 - .../dicer/test/test-headerparser.js | 68 - .../test/test-multipart-extra-trailer.js | 148 - .../dicer/test/test-multipart-nolisteners.js | 228 - .../node_modules/dicer/test/test-multipart.js | 240 - gateway/node_modules/dicer/test/test.js | 4 - gateway/node_modules/dot-prop/index.d.ts | 101 - gateway/node_modules/dot-prop/index.js | 142 - gateway/node_modules/dot-prop/license | 9 - gateway/node_modules/dot-prop/package.json | 45 - gateway/node_modules/dot-prop/readme.md | 117 - gateway/node_modules/duplexer3/LICENSE.md | 26 - gateway/node_modules/duplexer3/README.md | 115 - gateway/node_modules/duplexer3/index.js | 76 - gateway/node_modules/duplexer3/package.json | 28 - gateway/node_modules/ee-first/LICENSE | 22 - gateway/node_modules/ee-first/README.md | 80 - gateway/node_modules/ee-first/index.js | 95 - gateway/node_modules/ee-first/package.json | 29 - .../node_modules/emoji-regex/LICENSE-MIT.txt | 20 - gateway/node_modules/emoji-regex/README.md | 73 - .../node_modules/emoji-regex/es2015/index.js | 6 - .../node_modules/emoji-regex/es2015/text.js | 6 - gateway/node_modules/emoji-regex/index.d.ts | 23 - gateway/node_modules/emoji-regex/index.js | 6 - gateway/node_modules/emoji-regex/package.json | 50 - gateway/node_modules/emoji-regex/text.js | 6 - gateway/node_modules/encodeurl/HISTORY.md | 14 - gateway/node_modules/encodeurl/LICENSE | 22 - gateway/node_modules/encodeurl/README.md | 128 - gateway/node_modules/encodeurl/index.js | 60 - gateway/node_modules/encodeurl/package.json | 40 - gateway/node_modules/encoding/.prettierrc.js | 8 - gateway/node_modules/encoding/.travis.yml | 25 - gateway/node_modules/encoding/LICENSE | 16 - gateway/node_modules/encoding/README.md | 41 - gateway/node_modules/encoding/lib/encoding.js | 83 - .../iconv-lite/.github/dependabot.yml | 11 - .../node_modules/iconv-lite/Changelog.md | 208 - .../encoding/node_modules/iconv-lite/LICENSE | 21 - .../node_modules/iconv-lite/README.md | 130 - .../iconv-lite/encodings/dbcs-codec.js | 597 -- .../iconv-lite/encodings/dbcs-data.js | 176 - .../iconv-lite/encodings/index.js | 23 - .../iconv-lite/encodings/internal.js | 198 - .../iconv-lite/encodings/sbcs-codec.js | 72 - .../encodings/sbcs-data-generated.js | 451 - .../iconv-lite/encodings/sbcs-data.js | 179 - .../encodings/tables/big5-added.json | 122 - .../iconv-lite/encodings/tables/cp936.json | 264 - .../iconv-lite/encodings/tables/cp949.json | 273 - .../iconv-lite/encodings/tables/cp950.json | 177 - .../iconv-lite/encodings/tables/eucjp.json | 182 - .../encodings/tables/gb18030-ranges.json | 1 - .../encodings/tables/gbk-added.json | 56 - .../iconv-lite/encodings/tables/shiftjis.json | 125 - .../iconv-lite/encodings/utf16.js | 197 - .../iconv-lite/encodings/utf32.js | 319 - .../node_modules/iconv-lite/encodings/utf7.js | 290 - .../iconv-lite/lib/bom-handling.js | 52 - .../node_modules/iconv-lite/lib/index.d.ts | 41 - .../node_modules/iconv-lite/lib/index.js | 180 - .../node_modules/iconv-lite/lib/streams.js | 109 - .../node_modules/iconv-lite/package.json | 44 - gateway/node_modules/encoding/package.json | 18 - gateway/node_modules/encoding/test/test.js | 49 - gateway/node_modules/end-of-stream/LICENSE | 21 - gateway/node_modules/end-of-stream/README.md | 54 - gateway/node_modules/end-of-stream/index.js | 94 - .../node_modules/end-of-stream/package.json | 37 - gateway/node_modules/err-code/.editorconfig | 12 - gateway/node_modules/err-code/.eslintrc.json | 7 - gateway/node_modules/err-code/.npmignore | 2 - gateway/node_modules/err-code/.travis.yml | 5 - gateway/node_modules/err-code/README.md | 72 - gateway/node_modules/err-code/bower.json | 30 - gateway/node_modules/err-code/index.js | 22 - gateway/node_modules/err-code/index.umd.js | 26 - gateway/node_modules/err-code/package.json | 34 - .../node_modules/err-code/test/.eslintrc.json | 5 - gateway/node_modules/err-code/test/test.js | 92 - .../node_modules/es-abstract/.editorconfig | 13 - .../node_modules/es-abstract/.eslintignore | 1 - gateway/node_modules/es-abstract/.eslintrc | 66 - .../node_modules/es-abstract/.gitattributes | 472 - .../es-abstract/.github/FUNDING.yml | 12 - .../.github/workflows/codeql-analysis.yml | 52 - .../es-abstract/.github/workflows/rebase.yml | 15 - gateway/node_modules/es-abstract/.nycrc | 14 - gateway/node_modules/es-abstract/.travis.yml | 32 - .../2015/AbstractEqualityComparison.js | 37 - .../2015/AbstractRelationalComparison.js | 66 - .../es-abstract/2015/AdvanceStringIndex.js | 45 - .../es-abstract/2015/ArrayCreate.js | 53 - .../es-abstract/2015/ArraySetLength.js | 85 - .../es-abstract/2015/ArraySpeciesCreate.js | 46 - gateway/node_modules/es-abstract/2015/Call.js | 13 - .../2015/CanonicalNumericIndexString.js | 22 - .../2015/CompletePropertyDescriptor.js | 39 - .../es-abstract/2015/CreateDataProperty.js | 45 - .../2015/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2015/CreateHTML.js | 30 - .../2015/CreateIterResultObject.js | 19 - .../2015/CreateListFromArrayLike.js | 43 - .../es-abstract/2015/CreateMethodProperty.js | 40 - .../es-abstract/2015/DateFromTime.js | 54 - gateway/node_modules/es-abstract/2015/Day.js | 13 - .../es-abstract/2015/DayFromYear.js | 12 - .../es-abstract/2015/DayWithinYear.js | 11 - .../es-abstract/2015/DaysInYear.js | 18 - .../es-abstract/2015/DefinePropertyOrThrow.js | 50 - .../es-abstract/2015/DeletePropertyOrThrow.js | 27 - .../es-abstract/2015/EnumerableOwnNames.js | 19 - .../2015/FromPropertyDescriptor.js | 36 - gateway/node_modules/es-abstract/2015/Get.js | 30 - .../es-abstract/2015/GetIterator.js | 35 - .../es-abstract/2015/GetMethod.js | 42 - .../es-abstract/2015/GetOwnPropertyKeys.js | 31 - .../2015/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2015/GetSubstitution.js | 104 - gateway/node_modules/es-abstract/2015/GetV.js | 29 - .../es-abstract/2015/HasOwnProperty.js | 22 - .../es-abstract/2015/HasProperty.js | 20 - .../es-abstract/2015/HourFromTime.js | 16 - .../es-abstract/2015/InLeapYear.js | 21 - .../es-abstract/2015/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2015/Invoke.js | 22 - .../es-abstract/2015/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2015/IsArray.js | 14 - .../es-abstract/2015/IsCallable.js | 5 - .../es-abstract/2015/IsConcatSpreadable.js | 25 - .../es-abstract/2015/IsConstructor.js | 40 - .../es-abstract/2015/IsDataDescriptor.js | 23 - .../es-abstract/2015/IsExtensible.js | 20 - .../es-abstract/2015/IsGenericDescriptor.js | 23 - .../es-abstract/2015/IsInteger.js | 21 - .../es-abstract/2015/IsPromise.js | 24 - .../es-abstract/2015/IsPropertyDescriptor.js | 17 - .../es-abstract/2015/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2015/IsRegExp.js | 24 - .../es-abstract/2015/IteratorClose.js | 50 - .../es-abstract/2015/IteratorComplete.js | 18 - .../es-abstract/2015/IteratorNext.js | 18 - .../es-abstract/2015/IteratorStep.js | 13 - .../es-abstract/2015/IteratorValue.js | 18 - .../node_modules/es-abstract/2015/MakeDate.js | 13 - .../node_modules/es-abstract/2015/MakeDay.js | 33 - .../node_modules/es-abstract/2015/MakeTime.js | 23 - .../es-abstract/2015/MinFromTime.js | 16 - .../es-abstract/2015/MonthFromTime.js | 47 - .../es-abstract/2015/ObjectCreate.js | 37 - .../2015/OrdinaryDefineOwnProperty.js | 61 - .../2015/OrdinaryGetOwnProperty.js | 44 - .../es-abstract/2015/OrdinaryHasInstance.js | 25 - .../es-abstract/2015/OrdinaryHasProperty.js | 20 - .../es-abstract/2015/RegExpExec.js | 32 - .../2015/RequireObjectCoercible.js | 3 - .../es-abstract/2015/SameValue.js | 13 - .../es-abstract/2015/SameValueZero.js | 9 - .../es-abstract/2015/SecFromTime.js | 16 - gateway/node_modules/es-abstract/2015/Set.js | 47 - .../es-abstract/2015/SetFunctionName.js | 44 - .../es-abstract/2015/SetIntegrityLevel.js | 57 - .../es-abstract/2015/SpeciesConstructor.js | 32 - .../2015/StrictEqualityComparison.js | 17 - .../2015/SymbolDescriptiveString.js | 20 - .../es-abstract/2015/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2015/TimeClip.js | 21 - .../es-abstract/2015/TimeFromYear.js | 11 - .../es-abstract/2015/TimeWithinDay.js | 11 - .../es-abstract/2015/ToBoolean.js | 5 - .../es-abstract/2015/ToDateString.js | 22 - .../node_modules/es-abstract/2015/ToInt16.js | 10 - .../node_modules/es-abstract/2015/ToInt32.js | 9 - .../node_modules/es-abstract/2015/ToInt8.js | 10 - .../es-abstract/2015/ToInteger.js | 12 - .../node_modules/es-abstract/2015/ToLength.js | 12 - .../node_modules/es-abstract/2015/ToNumber.js | 59 - .../node_modules/es-abstract/2015/ToObject.js | 14 - .../es-abstract/2015/ToPrimitive.js | 12 - .../es-abstract/2015/ToPropertyDescriptor.js | 52 - .../es-abstract/2015/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2015/ToString.js | 15 - .../node_modules/es-abstract/2015/ToUint16.js | 24 - .../node_modules/es-abstract/2015/ToUint32.js | 9 - .../node_modules/es-abstract/2015/ToUint8.js | 22 - .../es-abstract/2015/ToUint8Clamp.js | 24 - gateway/node_modules/es-abstract/2015/Type.js | 12 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2015/WeekDay.js | 11 - .../es-abstract/2015/YearFromTime.js | 16 - .../node_modules/es-abstract/2015/modulo.js | 9 - .../es-abstract/2015/msFromTime.js | 10 - .../es-abstract/2015/thisBooleanValue.js | 15 - .../es-abstract/2015/thisNumberValue.js | 18 - .../es-abstract/2015/thisStringValue.js | 15 - .../es-abstract/2015/thisTimeValue.js | 9 - .../2016/AbstractEqualityComparison.js | 37 - .../2016/AbstractRelationalComparison.js | 66 - .../es-abstract/2016/AdvanceStringIndex.js | 45 - .../es-abstract/2016/ArrayCreate.js | 53 - .../es-abstract/2016/ArraySetLength.js | 85 - .../es-abstract/2016/ArraySpeciesCreate.js | 46 - gateway/node_modules/es-abstract/2016/Call.js | 13 - .../2016/CanonicalNumericIndexString.js | 22 - .../2016/CompletePropertyDescriptor.js | 39 - .../es-abstract/2016/CreateDataProperty.js | 45 - .../2016/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2016/CreateHTML.js | 30 - .../2016/CreateIterResultObject.js | 19 - .../2016/CreateListFromArrayLike.js | 43 - .../es-abstract/2016/CreateMethodProperty.js | 40 - .../es-abstract/2016/DateFromTime.js | 54 - gateway/node_modules/es-abstract/2016/Day.js | 13 - .../es-abstract/2016/DayFromYear.js | 12 - .../es-abstract/2016/DayWithinYear.js | 11 - .../es-abstract/2016/DaysInYear.js | 18 - .../es-abstract/2016/DefinePropertyOrThrow.js | 50 - .../es-abstract/2016/DeletePropertyOrThrow.js | 27 - .../es-abstract/2016/EnumerableOwnNames.js | 19 - .../2016/FromPropertyDescriptor.js | 36 - gateway/node_modules/es-abstract/2016/Get.js | 30 - .../es-abstract/2016/GetIterator.js | 35 - .../es-abstract/2016/GetMethod.js | 42 - .../es-abstract/2016/GetOwnPropertyKeys.js | 31 - .../2016/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2016/GetSubstitution.js | 104 - gateway/node_modules/es-abstract/2016/GetV.js | 29 - .../es-abstract/2016/HasOwnProperty.js | 22 - .../es-abstract/2016/HasProperty.js | 20 - .../es-abstract/2016/HourFromTime.js | 16 - .../es-abstract/2016/InLeapYear.js | 21 - .../es-abstract/2016/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2016/Invoke.js | 22 - .../es-abstract/2016/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2016/IsArray.js | 14 - .../es-abstract/2016/IsCallable.js | 5 - .../es-abstract/2016/IsConcatSpreadable.js | 25 - .../es-abstract/2016/IsConstructor.js | 40 - .../es-abstract/2016/IsDataDescriptor.js | 23 - .../es-abstract/2016/IsExtensible.js | 20 - .../es-abstract/2016/IsGenericDescriptor.js | 23 - .../es-abstract/2016/IsInteger.js | 21 - .../es-abstract/2016/IsPromise.js | 24 - .../es-abstract/2016/IsPropertyDescriptor.js | 17 - .../es-abstract/2016/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2016/IsRegExp.js | 24 - .../es-abstract/2016/IterableToArrayLike.js | 56 - .../es-abstract/2016/IteratorClose.js | 50 - .../es-abstract/2016/IteratorComplete.js | 18 - .../es-abstract/2016/IteratorNext.js | 18 - .../es-abstract/2016/IteratorStep.js | 13 - .../es-abstract/2016/IteratorValue.js | 18 - .../node_modules/es-abstract/2016/MakeDate.js | 13 - .../node_modules/es-abstract/2016/MakeDay.js | 33 - .../node_modules/es-abstract/2016/MakeTime.js | 23 - .../es-abstract/2016/MinFromTime.js | 16 - .../es-abstract/2016/MonthFromTime.js | 47 - .../es-abstract/2016/ObjectCreate.js | 37 - .../2016/OrdinaryDefineOwnProperty.js | 61 - .../2016/OrdinaryGetOwnProperty.js | 44 - .../2016/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2016/OrdinaryHasInstance.js | 25 - .../es-abstract/2016/OrdinaryHasProperty.js | 20 - .../2016/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2016/RegExpExec.js | 32 - .../2016/RequireObjectCoercible.js | 3 - .../es-abstract/2016/SameValue.js | 13 - .../es-abstract/2016/SameValueNonNumber.js | 16 - .../es-abstract/2016/SameValueZero.js | 9 - .../es-abstract/2016/SecFromTime.js | 16 - gateway/node_modules/es-abstract/2016/Set.js | 47 - .../es-abstract/2016/SetFunctionName.js | 44 - .../es-abstract/2016/SetIntegrityLevel.js | 57 - .../es-abstract/2016/SpeciesConstructor.js | 32 - .../2016/StrictEqualityComparison.js | 17 - .../2016/SymbolDescriptiveString.js | 20 - .../es-abstract/2016/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2016/TimeClip.js | 21 - .../es-abstract/2016/TimeFromYear.js | 11 - .../es-abstract/2016/TimeWithinDay.js | 11 - .../es-abstract/2016/ToBoolean.js | 5 - .../es-abstract/2016/ToDateString.js | 22 - .../node_modules/es-abstract/2016/ToInt16.js | 10 - .../node_modules/es-abstract/2016/ToInt32.js | 9 - .../node_modules/es-abstract/2016/ToInt8.js | 10 - .../es-abstract/2016/ToInteger.js | 12 - .../node_modules/es-abstract/2016/ToLength.js | 12 - .../node_modules/es-abstract/2016/ToNumber.js | 59 - .../node_modules/es-abstract/2016/ToObject.js | 14 - .../es-abstract/2016/ToPrimitive.js | 12 - .../es-abstract/2016/ToPropertyDescriptor.js | 52 - .../es-abstract/2016/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2016/ToString.js | 15 - .../node_modules/es-abstract/2016/ToUint16.js | 24 - .../node_modules/es-abstract/2016/ToUint32.js | 9 - .../node_modules/es-abstract/2016/ToUint8.js | 22 - .../es-abstract/2016/ToUint8Clamp.js | 24 - gateway/node_modules/es-abstract/2016/Type.js | 12 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2016/WeekDay.js | 11 - .../es-abstract/2016/YearFromTime.js | 16 - .../node_modules/es-abstract/2016/modulo.js | 9 - .../es-abstract/2016/msFromTime.js | 10 - .../es-abstract/2016/thisBooleanValue.js | 15 - .../es-abstract/2016/thisNumberValue.js | 18 - .../es-abstract/2016/thisStringValue.js | 15 - .../es-abstract/2016/thisTimeValue.js | 9 - .../2017/AbstractEqualityComparison.js | 37 - .../2017/AbstractRelationalComparison.js | 66 - .../es-abstract/2017/AdvanceStringIndex.js | 45 - .../es-abstract/2017/ArrayCreate.js | 53 - .../es-abstract/2017/ArraySetLength.js | 85 - .../es-abstract/2017/ArraySpeciesCreate.js | 46 - gateway/node_modules/es-abstract/2017/Call.js | 13 - .../2017/CanonicalNumericIndexString.js | 22 - .../2017/CompletePropertyDescriptor.js | 39 - .../es-abstract/2017/CreateDataProperty.js | 45 - .../2017/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2017/CreateHTML.js | 30 - .../2017/CreateIterResultObject.js | 19 - .../2017/CreateListFromArrayLike.js | 43 - .../es-abstract/2017/CreateMethodProperty.js | 40 - .../es-abstract/2017/DateFromTime.js | 54 - gateway/node_modules/es-abstract/2017/Day.js | 13 - .../es-abstract/2017/DayFromYear.js | 12 - .../es-abstract/2017/DayWithinYear.js | 11 - .../es-abstract/2017/DaysInYear.js | 18 - .../es-abstract/2017/DefinePropertyOrThrow.js | 50 - .../es-abstract/2017/DeletePropertyOrThrow.js | 27 - .../2017/EnumerableOwnProperties.js | 43 - .../2017/FromPropertyDescriptor.js | 36 - gateway/node_modules/es-abstract/2017/Get.js | 30 - .../es-abstract/2017/GetIterator.js | 35 - .../es-abstract/2017/GetMethod.js | 42 - .../es-abstract/2017/GetOwnPropertyKeys.js | 31 - .../2017/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2017/GetSubstitution.js | 104 - gateway/node_modules/es-abstract/2017/GetV.js | 29 - .../es-abstract/2017/HasOwnProperty.js | 22 - .../es-abstract/2017/HasProperty.js | 20 - .../es-abstract/2017/HourFromTime.js | 16 - .../es-abstract/2017/InLeapYear.js | 21 - .../es-abstract/2017/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2017/Invoke.js | 22 - .../es-abstract/2017/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2017/IsArray.js | 14 - .../es-abstract/2017/IsCallable.js | 5 - .../es-abstract/2017/IsConcatSpreadable.js | 25 - .../es-abstract/2017/IsConstructor.js | 40 - .../es-abstract/2017/IsDataDescriptor.js | 23 - .../es-abstract/2017/IsExtensible.js | 20 - .../es-abstract/2017/IsGenericDescriptor.js | 23 - .../es-abstract/2017/IsInteger.js | 21 - .../es-abstract/2017/IsPromise.js | 24 - .../es-abstract/2017/IsPropertyDescriptor.js | 17 - .../es-abstract/2017/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2017/IsRegExp.js | 24 - .../es-abstract/2017/IterableToList.js | 24 - .../es-abstract/2017/IteratorClose.js | 50 - .../es-abstract/2017/IteratorComplete.js | 18 - .../es-abstract/2017/IteratorNext.js | 18 - .../es-abstract/2017/IteratorStep.js | 13 - .../es-abstract/2017/IteratorValue.js | 18 - .../node_modules/es-abstract/2017/MakeDate.js | 13 - .../node_modules/es-abstract/2017/MakeDay.js | 33 - .../node_modules/es-abstract/2017/MakeTime.js | 23 - .../es-abstract/2017/MinFromTime.js | 16 - .../es-abstract/2017/MonthFromTime.js | 47 - .../es-abstract/2017/ObjectCreate.js | 37 - .../2017/OrdinaryDefineOwnProperty.js | 61 - .../2017/OrdinaryGetOwnProperty.js | 44 - .../2017/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2017/OrdinaryHasInstance.js | 25 - .../es-abstract/2017/OrdinaryHasProperty.js | 20 - .../2017/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2017/RegExpExec.js | 32 - .../2017/RequireObjectCoercible.js | 3 - .../es-abstract/2017/SameValue.js | 13 - .../es-abstract/2017/SameValueNonNumber.js | 16 - .../es-abstract/2017/SameValueZero.js | 9 - .../es-abstract/2017/SecFromTime.js | 16 - gateway/node_modules/es-abstract/2017/Set.js | 47 - .../es-abstract/2017/SetFunctionName.js | 44 - .../es-abstract/2017/SetIntegrityLevel.js | 57 - .../es-abstract/2017/SpeciesConstructor.js | 32 - .../2017/StrictEqualityComparison.js | 17 - .../2017/SymbolDescriptiveString.js | 20 - .../es-abstract/2017/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2017/TimeClip.js | 21 - .../es-abstract/2017/TimeFromYear.js | 11 - .../es-abstract/2017/TimeWithinDay.js | 11 - .../es-abstract/2017/ToBoolean.js | 5 - .../es-abstract/2017/ToDateString.js | 22 - .../node_modules/es-abstract/2017/ToIndex.js | 26 - .../node_modules/es-abstract/2017/ToInt16.js | 10 - .../node_modules/es-abstract/2017/ToInt32.js | 9 - .../node_modules/es-abstract/2017/ToInt8.js | 10 - .../es-abstract/2017/ToInteger.js | 12 - .../node_modules/es-abstract/2017/ToLength.js | 12 - .../node_modules/es-abstract/2017/ToNumber.js | 59 - .../node_modules/es-abstract/2017/ToObject.js | 14 - .../es-abstract/2017/ToPrimitive.js | 12 - .../es-abstract/2017/ToPropertyDescriptor.js | 52 - .../es-abstract/2017/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2017/ToString.js | 15 - .../node_modules/es-abstract/2017/ToUint16.js | 24 - .../node_modules/es-abstract/2017/ToUint32.js | 9 - .../node_modules/es-abstract/2017/ToUint8.js | 22 - .../es-abstract/2017/ToUint8Clamp.js | 24 - gateway/node_modules/es-abstract/2017/Type.js | 12 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2017/WeekDay.js | 11 - .../es-abstract/2017/YearFromTime.js | 16 - .../node_modules/es-abstract/2017/modulo.js | 9 - .../es-abstract/2017/msFromTime.js | 10 - .../es-abstract/2017/thisBooleanValue.js | 15 - .../es-abstract/2017/thisNumberValue.js | 18 - .../es-abstract/2017/thisStringValue.js | 15 - .../es-abstract/2017/thisTimeValue.js | 9 - .../2018/AbstractEqualityComparison.js | 37 - .../2018/AbstractRelationalComparison.js | 66 - .../es-abstract/2018/AdvanceStringIndex.js | 45 - .../es-abstract/2018/ArrayCreate.js | 53 - .../es-abstract/2018/ArraySetLength.js | 85 - .../es-abstract/2018/ArraySpeciesCreate.js | 46 - gateway/node_modules/es-abstract/2018/Call.js | 13 - .../2018/CanonicalNumericIndexString.js | 22 - .../2018/CompletePropertyDescriptor.js | 39 - .../es-abstract/2018/CopyDataProperties.js | 68 - .../es-abstract/2018/CreateDataProperty.js | 45 - .../2018/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2018/CreateHTML.js | 30 - .../2018/CreateIterResultObject.js | 19 - .../2018/CreateListFromArrayLike.js | 43 - .../es-abstract/2018/CreateMethodProperty.js | 40 - .../es-abstract/2018/DateFromTime.js | 54 - .../es-abstract/2018/DateString.js | 30 - gateway/node_modules/es-abstract/2018/Day.js | 13 - .../es-abstract/2018/DayFromYear.js | 12 - .../es-abstract/2018/DayWithinYear.js | 11 - .../es-abstract/2018/DaysInYear.js | 18 - .../es-abstract/2018/DefinePropertyOrThrow.js | 50 - .../es-abstract/2018/DeletePropertyOrThrow.js | 27 - .../2018/EnumerableOwnPropertyNames.js | 43 - .../2018/FromPropertyDescriptor.js | 36 - gateway/node_modules/es-abstract/2018/Get.js | 30 - .../es-abstract/2018/GetIterator.js | 35 - .../es-abstract/2018/GetMethod.js | 42 - .../es-abstract/2018/GetOwnPropertyKeys.js | 31 - .../2018/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2018/GetSubstitution.js | 128 - gateway/node_modules/es-abstract/2018/GetV.js | 29 - .../es-abstract/2018/HasOwnProperty.js | 22 - .../es-abstract/2018/HasProperty.js | 20 - .../es-abstract/2018/HourFromTime.js | 16 - .../es-abstract/2018/InLeapYear.js | 21 - .../es-abstract/2018/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2018/Invoke.js | 22 - .../es-abstract/2018/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2018/IsArray.js | 14 - .../es-abstract/2018/IsCallable.js | 5 - .../es-abstract/2018/IsConcatSpreadable.js | 25 - .../es-abstract/2018/IsConstructor.js | 40 - .../es-abstract/2018/IsDataDescriptor.js | 23 - .../es-abstract/2018/IsExtensible.js | 20 - .../es-abstract/2018/IsGenericDescriptor.js | 23 - .../es-abstract/2018/IsInteger.js | 21 - .../es-abstract/2018/IsPromise.js | 24 - .../es-abstract/2018/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2018/IsRegExp.js | 24 - .../es-abstract/2018/IsStringPrefix.js | 47 - .../es-abstract/2018/IterableToList.js | 24 - .../es-abstract/2018/IteratorClose.js | 50 - .../es-abstract/2018/IteratorComplete.js | 18 - .../es-abstract/2018/IteratorNext.js | 18 - .../es-abstract/2018/IteratorStep.js | 13 - .../es-abstract/2018/IteratorValue.js | 18 - .../node_modules/es-abstract/2018/MakeDate.js | 13 - .../node_modules/es-abstract/2018/MakeDay.js | 33 - .../node_modules/es-abstract/2018/MakeTime.js | 23 - .../es-abstract/2018/MinFromTime.js | 16 - .../es-abstract/2018/MonthFromTime.js | 47 - .../es-abstract/2018/NumberToString.js | 19 - .../es-abstract/2018/ObjectCreate.js | 37 - .../2018/OrdinaryDefineOwnProperty.js | 61 - .../2018/OrdinaryGetOwnProperty.js | 44 - .../2018/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2018/OrdinaryHasInstance.js | 25 - .../es-abstract/2018/OrdinaryHasProperty.js | 20 - .../2018/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2018/PromiseResolve.js | 15 - .../es-abstract/2018/RegExpExec.js | 32 - .../2018/RequireObjectCoercible.js | 3 - .../es-abstract/2018/SameValue.js | 13 - .../es-abstract/2018/SameValueNonNumber.js | 16 - .../es-abstract/2018/SameValueZero.js | 9 - .../es-abstract/2018/SecFromTime.js | 16 - gateway/node_modules/es-abstract/2018/Set.js | 47 - .../es-abstract/2018/SetFunctionName.js | 44 - .../es-abstract/2018/SetIntegrityLevel.js | 57 - .../es-abstract/2018/SpeciesConstructor.js | 32 - .../2018/StrictEqualityComparison.js | 17 - .../2018/SymbolDescriptiveString.js | 20 - .../es-abstract/2018/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2018/TimeClip.js | 21 - .../es-abstract/2018/TimeFromYear.js | 11 - .../es-abstract/2018/TimeString.js | 25 - .../es-abstract/2018/TimeWithinDay.js | 11 - .../es-abstract/2018/ToBoolean.js | 5 - .../es-abstract/2018/ToDateString.js | 22 - .../node_modules/es-abstract/2018/ToIndex.js | 26 - .../node_modules/es-abstract/2018/ToInt16.js | 10 - .../node_modules/es-abstract/2018/ToInt32.js | 9 - .../node_modules/es-abstract/2018/ToInt8.js | 10 - .../es-abstract/2018/ToInteger.js | 12 - .../node_modules/es-abstract/2018/ToLength.js | 12 - .../node_modules/es-abstract/2018/ToNumber.js | 59 - .../node_modules/es-abstract/2018/ToObject.js | 14 - .../es-abstract/2018/ToPrimitive.js | 12 - .../es-abstract/2018/ToPropertyDescriptor.js | 52 - .../es-abstract/2018/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2018/ToString.js | 15 - .../node_modules/es-abstract/2018/ToUint16.js | 24 - .../node_modules/es-abstract/2018/ToUint32.js | 9 - .../node_modules/es-abstract/2018/ToUint8.js | 22 - .../es-abstract/2018/ToUint8Clamp.js | 24 - gateway/node_modules/es-abstract/2018/Type.js | 12 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2018/WeekDay.js | 11 - .../es-abstract/2018/YearFromTime.js | 16 - .../node_modules/es-abstract/2018/modulo.js | 9 - .../es-abstract/2018/msFromTime.js | 10 - .../es-abstract/2018/thisBooleanValue.js | 15 - .../es-abstract/2018/thisNumberValue.js | 18 - .../es-abstract/2018/thisStringValue.js | 15 - .../es-abstract/2018/thisSymbolValue.js | 19 - .../es-abstract/2018/thisTimeValue.js | 9 - .../2019/AbstractEqualityComparison.js | 37 - .../2019/AbstractRelationalComparison.js | 66 - .../2019/AddEntriesFromIterable.js | 52 - .../es-abstract/2019/AdvanceStringIndex.js | 45 - .../es-abstract/2019/ArrayCreate.js | 53 - .../es-abstract/2019/ArraySetLength.js | 85 - .../es-abstract/2019/ArraySpeciesCreate.js | 46 - gateway/node_modules/es-abstract/2019/Call.js | 13 - .../2019/CanonicalNumericIndexString.js | 22 - .../2019/CompletePropertyDescriptor.js | 39 - .../es-abstract/2019/CopyDataProperties.js | 68 - .../es-abstract/2019/CreateDataProperty.js | 45 - .../2019/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2019/CreateHTML.js | 30 - .../2019/CreateIterResultObject.js | 19 - .../2019/CreateListFromArrayLike.js | 43 - .../es-abstract/2019/CreateMethodProperty.js | 40 - .../es-abstract/2019/DateFromTime.js | 54 - .../es-abstract/2019/DateString.js | 30 - gateway/node_modules/es-abstract/2019/Day.js | 13 - .../es-abstract/2019/DayFromYear.js | 12 - .../es-abstract/2019/DayWithinYear.js | 11 - .../es-abstract/2019/DaysInYear.js | 18 - .../es-abstract/2019/DefinePropertyOrThrow.js | 50 - .../es-abstract/2019/DeletePropertyOrThrow.js | 27 - .../2019/EnumerableOwnPropertyNames.js | 43 - .../es-abstract/2019/FlattenIntoArray.js | 58 - .../2019/FromPropertyDescriptor.js | 36 - gateway/node_modules/es-abstract/2019/Get.js | 30 - .../es-abstract/2019/GetIterator.js | 35 - .../es-abstract/2019/GetMethod.js | 42 - .../es-abstract/2019/GetOwnPropertyKeys.js | 31 - .../2019/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2019/GetSubstitution.js | 128 - gateway/node_modules/es-abstract/2019/GetV.js | 29 - .../es-abstract/2019/HasOwnProperty.js | 22 - .../es-abstract/2019/HasProperty.js | 20 - .../es-abstract/2019/HourFromTime.js | 16 - .../es-abstract/2019/InLeapYear.js | 21 - .../es-abstract/2019/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2019/Invoke.js | 22 - .../es-abstract/2019/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2019/IsArray.js | 14 - .../es-abstract/2019/IsCallable.js | 5 - .../es-abstract/2019/IsConcatSpreadable.js | 25 - .../es-abstract/2019/IsConstructor.js | 40 - .../es-abstract/2019/IsDataDescriptor.js | 23 - .../es-abstract/2019/IsExtensible.js | 20 - .../es-abstract/2019/IsGenericDescriptor.js | 23 - .../es-abstract/2019/IsInteger.js | 21 - .../es-abstract/2019/IsPromise.js | 24 - .../es-abstract/2019/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2019/IsRegExp.js | 24 - .../es-abstract/2019/IsStringPrefix.js | 47 - .../es-abstract/2019/IterableToList.js | 24 - .../es-abstract/2019/IteratorClose.js | 50 - .../es-abstract/2019/IteratorComplete.js | 18 - .../es-abstract/2019/IteratorNext.js | 18 - .../es-abstract/2019/IteratorStep.js | 13 - .../es-abstract/2019/IteratorValue.js | 18 - .../node_modules/es-abstract/2019/MakeDate.js | 13 - .../node_modules/es-abstract/2019/MakeDay.js | 33 - .../node_modules/es-abstract/2019/MakeTime.js | 23 - .../es-abstract/2019/MinFromTime.js | 16 - .../es-abstract/2019/MonthFromTime.js | 47 - .../es-abstract/2019/NumberToString.js | 19 - .../es-abstract/2019/ObjectCreate.js | 37 - .../2019/OrdinaryDefineOwnProperty.js | 61 - .../2019/OrdinaryGetOwnProperty.js | 44 - .../2019/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2019/OrdinaryHasInstance.js | 25 - .../es-abstract/2019/OrdinaryHasProperty.js | 20 - .../2019/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2019/PromiseResolve.js | 15 - .../es-abstract/2019/RegExpExec.js | 32 - .../2019/RequireObjectCoercible.js | 3 - .../es-abstract/2019/SameValue.js | 13 - .../es-abstract/2019/SameValueNonNumber.js | 16 - .../es-abstract/2019/SameValueZero.js | 9 - .../es-abstract/2019/SecFromTime.js | 16 - gateway/node_modules/es-abstract/2019/Set.js | 47 - .../es-abstract/2019/SetFunctionName.js | 44 - .../es-abstract/2019/SetIntegrityLevel.js | 57 - .../es-abstract/2019/SpeciesConstructor.js | 32 - .../2019/StrictEqualityComparison.js | 17 - .../2019/SymbolDescriptiveString.js | 20 - .../es-abstract/2019/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2019/TimeClip.js | 21 - .../es-abstract/2019/TimeFromYear.js | 11 - .../es-abstract/2019/TimeString.js | 25 - .../es-abstract/2019/TimeWithinDay.js | 11 - .../es-abstract/2019/ToBoolean.js | 5 - .../es-abstract/2019/ToDateString.js | 22 - .../node_modules/es-abstract/2019/ToIndex.js | 26 - .../node_modules/es-abstract/2019/ToInt16.js | 10 - .../node_modules/es-abstract/2019/ToInt32.js | 9 - .../node_modules/es-abstract/2019/ToInt8.js | 10 - .../es-abstract/2019/ToInteger.js | 12 - .../node_modules/es-abstract/2019/ToLength.js | 12 - .../node_modules/es-abstract/2019/ToNumber.js | 59 - .../node_modules/es-abstract/2019/ToObject.js | 14 - .../es-abstract/2019/ToPrimitive.js | 12 - .../es-abstract/2019/ToPropertyDescriptor.js | 52 - .../es-abstract/2019/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2019/ToString.js | 15 - .../node_modules/es-abstract/2019/ToUint16.js | 24 - .../node_modules/es-abstract/2019/ToUint32.js | 9 - .../node_modules/es-abstract/2019/ToUint8.js | 22 - .../es-abstract/2019/ToUint8Clamp.js | 24 - .../es-abstract/2019/TrimString.js | 29 - gateway/node_modules/es-abstract/2019/Type.js | 12 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2019/WeekDay.js | 11 - .../es-abstract/2019/YearFromTime.js | 16 - .../node_modules/es-abstract/2019/modulo.js | 9 - .../es-abstract/2019/msFromTime.js | 10 - .../es-abstract/2019/thisBooleanValue.js | 15 - .../es-abstract/2019/thisNumberValue.js | 18 - .../es-abstract/2019/thisStringValue.js | 15 - .../es-abstract/2019/thisSymbolValue.js | 19 - .../es-abstract/2019/thisTimeValue.js | 3 - .../5/AbstractEqualityComparison.js | 37 - .../5/AbstractRelationalComparison.js | 66 - .../es-abstract/5/CheckObjectCoercible.js | 14 - .../es-abstract/5/DateFromTime.js | 54 - gateway/node_modules/es-abstract/5/Day.js | 13 - .../node_modules/es-abstract/5/DayFromYear.js | 12 - .../es-abstract/5/DayWithinYear.js | 11 - .../node_modules/es-abstract/5/DaysInYear.js | 18 - .../es-abstract/5/FromPropertyDescriptor.js | 39 - .../es-abstract/5/HourFromTime.js | 16 - .../node_modules/es-abstract/5/InLeapYear.js | 21 - .../es-abstract/5/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/5/IsCallable.js | 5 - .../es-abstract/5/IsDataDescriptor.js | 23 - .../es-abstract/5/IsGenericDescriptor.js | 23 - .../es-abstract/5/IsPropertyDescriptor.js | 17 - .../node_modules/es-abstract/5/MakeDate.js | 13 - gateway/node_modules/es-abstract/5/MakeDay.js | 33 - .../node_modules/es-abstract/5/MakeTime.js | 23 - .../node_modules/es-abstract/5/MinFromTime.js | 16 - .../es-abstract/5/MonthFromTime.js | 47 - .../node_modules/es-abstract/5/SameValue.js | 13 - .../node_modules/es-abstract/5/SecFromTime.js | 16 - .../es-abstract/5/StrictEqualityComparison.js | 17 - .../node_modules/es-abstract/5/TimeClip.js | 21 - .../es-abstract/5/TimeFromYear.js | 11 - .../es-abstract/5/TimeWithinDay.js | 11 - .../node_modules/es-abstract/5/ToBoolean.js | 5 - gateway/node_modules/es-abstract/5/ToInt32.js | 9 - .../node_modules/es-abstract/5/ToInteger.js | 22 - .../node_modules/es-abstract/5/ToNumber.js | 7 - .../node_modules/es-abstract/5/ToObject.js | 14 - .../node_modules/es-abstract/5/ToPrimitive.js | 5 - .../es-abstract/5/ToPropertyDescriptor.js | 52 - .../node_modules/es-abstract/5/ToString.js | 12 - .../node_modules/es-abstract/5/ToUint16.js | 24 - .../node_modules/es-abstract/5/ToUint32.js | 9 - gateway/node_modules/es-abstract/5/Type.js | 24 - gateway/node_modules/es-abstract/5/WeekDay.js | 11 - .../es-abstract/5/YearFromTime.js | 16 - gateway/node_modules/es-abstract/5/modulo.js | 9 - .../node_modules/es-abstract/5/msFromTime.js | 10 - gateway/node_modules/es-abstract/CHANGELOG.md | 395 - .../node_modules/es-abstract/GetIntrinsic.js | 225 - gateway/node_modules/es-abstract/LICENSE | 21 - gateway/node_modules/es-abstract/README.md | 48 - gateway/node_modules/es-abstract/es2015.js | 115 - gateway/node_modules/es-abstract/es2016.js | 119 - gateway/node_modules/es-abstract/es2017.js | 120 - gateway/node_modules/es-abstract/es2018.js | 126 - gateway/node_modules/es-abstract/es2019.js | 129 - gateway/node_modules/es-abstract/es5.js | 49 - gateway/node_modules/es-abstract/es6.js | 3 - gateway/node_modules/es-abstract/es7.js | 3 - .../es-abstract/helpers/DefineOwnProperty.js | 45 - .../es-abstract/helpers/OwnPropertyKeys.js | 22 - .../es-abstract/helpers/assertRecord.js | 48 - .../es-abstract/helpers/assign.js | 22 - .../es-abstract/helpers/callBind.js | 34 - .../es-abstract/helpers/callBound.js | 15 - .../node_modules/es-abstract/helpers/every.js | 10 - .../es-abstract/helpers/forEach.js | 7 - .../es-abstract/helpers/getInferredName.js | 10 - .../es-abstract/helpers/getIteratorMethod.js | 45 - .../helpers/getOwnPropertyDescriptor.js | 15 - .../es-abstract/helpers/getProto.js | 15 - .../helpers/getSymbolDescription.js | 41 - .../es-abstract/helpers/isFinite.js | 5 - .../node_modules/es-abstract/helpers/isNaN.js | 5 - .../es-abstract/helpers/isPrefixOf.js | 13 - .../es-abstract/helpers/isPrimitive.js | 5 - .../helpers/isPropertyDescriptor.js | 31 - .../helpers/isSamePropertyDescriptor.js | 20 - .../es-abstract/helpers/maxSafeInteger.js | 8 - .../node_modules/es-abstract/helpers/mod.js | 8 - .../es-abstract/helpers/padTimeComponent.js | 9 - .../es-abstract/helpers/regexTester.js | 11 - .../es-abstract/helpers/setProto.js | 16 - .../node_modules/es-abstract/helpers/sign.js | 5 - .../es-abstract/helpers/timeConstants.js | 19 - gateway/node_modules/es-abstract/index.js | 26 - .../es-abstract/operations/.eslintrc | 5 - .../es-abstract/operations/2015.js | 249 - .../es-abstract/operations/2016.js | 276 - .../es-abstract/operations/2017.js | 324 - .../es-abstract/operations/2018.js | 350 - .../es-abstract/operations/2019.js | 355 - gateway/node_modules/es-abstract/package.json | 110 - .../es-abstract/test/GetIntrinsic.js | 94 - .../node_modules/es-abstract/test/diffOps.js | 27 - .../node_modules/es-abstract/test/es2015.js | 150 - .../node_modules/es-abstract/test/es2016.js | 173 - .../node_modules/es-abstract/test/es2017.js | 220 - .../node_modules/es-abstract/test/es2018.js | 241 - .../node_modules/es-abstract/test/es2019.js | 246 - gateway/node_modules/es-abstract/test/es5.js | 786 -- gateway/node_modules/es-abstract/test/es6.js | 18 - gateway/node_modules/es-abstract/test/es7.js | 18 - .../test/helpers/OwnPropertyKeys.js | 42 - .../es-abstract/test/helpers/assertRecord.js | 60 - .../test/helpers/createBoundESNamespace.js | 21 - .../test/helpers/defineProperty.js | 22 - .../test/helpers/getSymbolDescription.js | 67 - .../test/helpers/runManifestTest.js | 27 - .../es-abstract/test/helpers/values.js | 121 - .../node_modules/es-abstract/test/index.js | 35 - .../node_modules/es-abstract/test/tests.js | 4193 -------- .../node_modules/es-to-primitive/.eslintrc | 22 - .../es-to-primitive/.github/FUNDING.yml | 12 - .../node_modules/es-to-primitive/.travis.yml | 15 - .../node_modules/es-to-primitive/CHANGELOG.md | 49 - gateway/node_modules/es-to-primitive/LICENSE | 22 - gateway/node_modules/es-to-primitive/Makefile | 61 - .../node_modules/es-to-primitive/README.md | 49 - .../node_modules/es-to-primitive/es2015.js | 75 - gateway/node_modules/es-to-primitive/es5.js | 45 - gateway/node_modules/es-to-primitive/es6.js | 3 - .../es-to-primitive/helpers/isPrimitive.js | 5 - gateway/node_modules/es-to-primitive/index.js | 17 - .../node_modules/es-to-primitive/package.json | 81 - .../es-to-primitive/test/es2015.js | 151 - .../node_modules/es-to-primitive/test/es5.js | 118 - .../node_modules/es-to-primitive/test/es6.js | 151 - .../es-to-primitive/test/index.js | 20 - gateway/node_modules/escape-goat/index.d.ts | 62 - gateway/node_modules/escape-goat/index.js | 33 - gateway/node_modules/escape-goat/license | 9 - gateway/node_modules/escape-goat/package.json | 45 - gateway/node_modules/escape-goat/readme.md | 76 - gateway/node_modules/escape-html/LICENSE | 24 - gateway/node_modules/escape-html/Readme.md | 43 - gateway/node_modules/escape-html/index.js | 78 - gateway/node_modules/escape-html/package.json | 24 - gateway/node_modules/etag/HISTORY.md | 83 - gateway/node_modules/etag/LICENSE | 22 - gateway/node_modules/etag/README.md | 159 - gateway/node_modules/etag/index.js | 131 - gateway/node_modules/etag/package.json | 47 - gateway/node_modules/eventemitter3/LICENSE | 21 - gateway/node_modules/eventemitter3/README.md | 92 - gateway/node_modules/eventemitter3/index.d.ts | 64 - gateway/node_modules/eventemitter3/index.js | 336 - .../node_modules/eventemitter3/package.json | 56 - .../eventemitter3/umd/eventemitter3.js | 340 - .../eventemitter3/umd/eventemitter3.min.js | 1 - .../umd/eventemitter3.min.js.map | 1 - gateway/node_modules/express/History.md | 3477 ------- gateway/node_modules/express/LICENSE | 24 - gateway/node_modules/express/Readme.md | 155 - gateway/node_modules/express/index.js | 11 - .../node_modules/express/lib/application.js | 644 -- gateway/node_modules/express/lib/express.js | 116 - .../express/lib/middleware/init.js | 43 - .../express/lib/middleware/query.js | 47 - gateway/node_modules/express/lib/request.js | 525 - gateway/node_modules/express/lib/response.js | 1142 --- .../node_modules/express/lib/router/index.js | 662 -- .../node_modules/express/lib/router/layer.js | 181 - .../node_modules/express/lib/router/route.js | 216 - gateway/node_modules/express/lib/utils.js | 306 - gateway/node_modules/express/lib/view.js | 182 - gateway/node_modules/express/package.json | 98 - .../fast-json-stable-stringify/.eslintrc.yml | 26 - .../.github/FUNDING.yml | 1 - .../fast-json-stable-stringify/.travis.yml | 8 - .../fast-json-stable-stringify/LICENSE | 21 - .../fast-json-stable-stringify/README.md | 131 - .../benchmark/index.js | 31 - .../benchmark/test.json | 137 - .../example/key_cmp.js | 7 - .../example/nested.js | 3 - .../fast-json-stable-stringify/example/str.js | 3 - .../example/value_cmp.js | 7 - .../fast-json-stable-stringify/index.d.ts | 4 - .../fast-json-stable-stringify/index.js | 59 - .../fast-json-stable-stringify/package.json | 52 - .../fast-json-stable-stringify/test/cmp.js | 13 - .../fast-json-stable-stringify/test/nested.js | 44 - .../fast-json-stable-stringify/test/str.js | 46 - .../test/to-json.js | 22 - gateway/node_modules/fill-range/LICENSE | 21 - gateway/node_modules/fill-range/README.md | 237 - gateway/node_modules/fill-range/index.js | 249 - gateway/node_modules/fill-range/package.json | 69 - gateway/node_modules/finalhandler/HISTORY.md | 187 - gateway/node_modules/finalhandler/LICENSE | 22 - gateway/node_modules/finalhandler/README.md | 148 - gateway/node_modules/finalhandler/index.js | 331 - .../node_modules/finalhandler/package.json | 45 - gateway/node_modules/form-data/License | 19 - gateway/node_modules/form-data/README.md | 351 - gateway/node_modules/form-data/README.md.bak | 351 - gateway/node_modules/form-data/index.d.ts | 61 - gateway/node_modules/form-data/lib/browser.js | 2 - .../node_modules/form-data/lib/form_data.js | 494 - .../node_modules/form-data/lib/populate.js | 10 - gateway/node_modules/form-data/package.json | 68 - gateway/node_modules/forwarded/HISTORY.md | 16 - gateway/node_modules/forwarded/LICENSE | 22 - gateway/node_modules/forwarded/README.md | 57 - gateway/node_modules/forwarded/index.js | 76 - gateway/node_modules/forwarded/package.json | 43 - gateway/node_modules/fresh/HISTORY.md | 70 - gateway/node_modules/fresh/LICENSE | 23 - gateway/node_modules/fresh/README.md | 119 - gateway/node_modules/fresh/index.js | 137 - gateway/node_modules/fresh/package.json | 46 - .../node_modules/fs-capacitor/.eslintignore | 1 - .../node_modules/fs-capacitor/.eslintrc.json | 11 - gateway/node_modules/fs-capacitor/.gitignore | 7 - .../node_modules/fs-capacitor/.huskyrc.json | 5 - .../fs-capacitor/.lintstagedrc.json | 4 - gateway/node_modules/fs-capacitor/.npmrc | 1 - .../node_modules/fs-capacitor/.prettierignore | 2 - .../fs-capacitor/.prettierrc.json | 3 - gateway/node_modules/fs-capacitor/.travis.yml | 8 - .../node_modules/fs-capacitor/babel.config.js | 13 - .../node_modules/fs-capacitor/changelog.md | 43 - .../node_modules/fs-capacitor/package.json | 61 - gateway/node_modules/fs-capacitor/readme.md | 72 - .../node_modules/fs-capacitor/src/index.mjs | 239 - .../node_modules/fs-capacitor/src/test.mjs | 434 - gateway/node_modules/fs-minipass/LICENSE | 15 - gateway/node_modules/fs-minipass/README.md | 70 - gateway/node_modules/fs-minipass/index.js | 422 - gateway/node_modules/fs-minipass/package.json | 39 - gateway/node_modules/fs.realpath/LICENSE | 43 - gateway/node_modules/fs.realpath/README.md | 33 - gateway/node_modules/fs.realpath/index.js | 66 - gateway/node_modules/fs.realpath/old.js | 303 - gateway/node_modules/fs.realpath/package.json | 26 - gateway/node_modules/fsevents/LICENSE | 22 - gateway/node_modules/fsevents/README.md | 77 - gateway/node_modules/fsevents/fsevents.d.ts | 55 - gateway/node_modules/fsevents/fsevents.js | 77 - gateway/node_modules/fsevents/fsevents.node | Bin 36204 -> 0 bytes gateway/node_modules/fsevents/package.json | 62 - .../node_modules/function-bind/.editorconfig | 20 - gateway/node_modules/function-bind/.eslintrc | 15 - gateway/node_modules/function-bind/.jscs.json | 176 - gateway/node_modules/function-bind/.npmignore | 22 - .../node_modules/function-bind/.travis.yml | 168 - gateway/node_modules/function-bind/LICENSE | 20 - gateway/node_modules/function-bind/README.md | 48 - .../function-bind/implementation.js | 52 - gateway/node_modules/function-bind/index.js | 5 - .../node_modules/function-bind/package.json | 63 - .../node_modules/function-bind/test/.eslintrc | 9 - .../node_modules/function-bind/test/index.js | 252 - gateway/node_modules/get-intrinsic/.eslintrc | 35 - .../get-intrinsic/.github/FUNDING.yml | 12 - .../get-intrinsic/.github/rebase.yml | 15 - .../.github/require-allow-edits.yml | 12 - gateway/node_modules/get-intrinsic/.nycrc | 14 - .../node_modules/get-intrinsic/.travis.yml | 10 - .../node_modules/get-intrinsic/CHANGELOG.md | 28 - gateway/node_modules/get-intrinsic/LICENSE | 21 - gateway/node_modules/get-intrinsic/README.md | 2 - gateway/node_modules/get-intrinsic/index.js | 291 - .../node_modules/get-intrinsic/package.json | 74 - .../get-intrinsic/test/GetIntrinsic.js | 207 - .../node_modules/get-stream/buffer-stream.js | 51 - gateway/node_modules/get-stream/index.js | 50 - gateway/node_modules/get-stream/license | 9 - gateway/node_modules/get-stream/package.json | 46 - gateway/node_modules/get-stream/readme.md | 123 - gateway/node_modules/glob-parent/LICENSE | 15 - gateway/node_modules/glob-parent/README.md | 137 - gateway/node_modules/glob-parent/index.js | 41 - gateway/node_modules/glob-parent/package.json | 48 - gateway/node_modules/glob/LICENSE | 21 - gateway/node_modules/glob/README.md | 375 - gateway/node_modules/glob/changelog.md | 67 - gateway/node_modules/glob/common.js | 240 - gateway/node_modules/glob/glob.js | 790 -- gateway/node_modules/glob/package.json | 46 - gateway/node_modules/glob/sync.js | 486 - gateway/node_modules/global-dirs/index.d.ts | 60 - gateway/node_modules/global-dirs/index.js | 118 - gateway/node_modules/global-dirs/license | 9 - gateway/node_modules/global-dirs/package.json | 55 - gateway/node_modules/global-dirs/readme.md | 77 - gateway/node_modules/got/license | 9 - gateway/node_modules/got/package.json | 74 - gateway/node_modules/got/readme.md | 1237 --- gateway/node_modules/got/source/as-promise.js | 108 - gateway/node_modules/got/source/as-stream.js | 93 - gateway/node_modules/got/source/create.js | 79 - gateway/node_modules/got/source/errors.js | 107 - .../node_modules/got/source/get-response.js | 31 - gateway/node_modules/got/source/index.js | 60 - .../got/source/known-hook-events.js | 10 - gateway/node_modules/got/source/merge.js | 73 - .../got/source/normalize-arguments.js | 265 - gateway/node_modules/got/source/progress.js | 96 - .../got/source/request-as-event-emitter.js | 312 - .../got/source/utils/deep-freeze.js | 12 - .../got/source/utils/get-body-size.js | 32 - .../got/source/utils/is-form-data.js | 4 - .../got/source/utils/timed-out.js | 160 - .../got/source/utils/url-to-options.js | 25 - gateway/node_modules/graceful-fs/LICENSE | 15 - gateway/node_modules/graceful-fs/README.md | 133 - gateway/node_modules/graceful-fs/clone.js | 19 - .../node_modules/graceful-fs/graceful-fs.js | 354 - .../graceful-fs/legacy-streams.js | 118 - gateway/node_modules/graceful-fs/package.json | 50 - gateway/node_modules/graceful-fs/polyfills.js | 342 - .../graphql-extensions/CHANGELOG.md | 10 - .../node_modules/graphql-extensions/LICENSE | 21 - .../node_modules/graphql-extensions/README.md | 4 - .../graphql-extensions/dist/index.d.ts | 85 - .../graphql-extensions/dist/index.d.ts.map | 1 - .../graphql-extensions/dist/index.js | 178 - .../graphql-extensions/dist/index.js.map | 1 - .../graphql-extensions/package.json | 26 - .../graphql-extensions/src/index.ts | 341 - .../.designs/authorization.md | 81 - .../.github/ISSUE_TEMPLATE.md | 12 - .../.github/PULL_REQUEST_TEMPLATE.md | 12 - .../graphql-subscriptions/.travis.yml | 17 - .../graphql-subscriptions/AUTHORS | 11 - .../graphql-subscriptions/CHANGELOG.md | 84 - .../graphql-subscriptions/CONTRIBUTING.md | 82 - .../graphql-subscriptions/LICENSE | 22 - .../graphql-subscriptions/README.md | 246 - .../graphql-subscriptions/dist/index.d.ts | 3 - .../graphql-subscriptions/dist/index.js | 9 - .../graphql-subscriptions/dist/index.js.map | 1 - .../dist/pubsub-async-iterator.d.ts | 18 - .../dist/pubsub-async-iterator.js | 159 - .../dist/pubsub-async-iterator.js.map | 1 - .../dist/pubsub-engine.d.ts | 6 - .../dist/pubsub-engine.js | 13 - .../dist/pubsub-engine.js.map | 1 - .../graphql-subscriptions/dist/pubsub.d.ts | 15 - .../graphql-subscriptions/dist/pubsub.js | 43 - .../graphql-subscriptions/dist/pubsub.js.map | 1 - .../dist/with-filter.d.ts | 3 - .../graphql-subscriptions/dist/with-filter.js | 42 - .../dist/with-filter.js.map | 1 - .../graphql-subscriptions/package.json | 53 - gateway/node_modules/graphql-tag/CHANGELOG.md | 201 - .../node_modules/graphql-tag/CONTRIBUTING.md | 82 - gateway/node_modules/graphql-tag/LICENSE | 21 - gateway/node_modules/graphql-tag/README.md | 226 - gateway/node_modules/graphql-tag/index.d.ts | 20 - .../graphql-tag/lib/graphql-tag.umd.js | 189 - .../graphql-tag/lib/graphql-tag.umd.js.flow | 7 - .../graphql-tag/lib/graphql-tag.umd.js.map | 1 - gateway/node_modules/graphql-tag/loader.js | 190 - gateway/node_modules/graphql-tag/package.json | 37 - gateway/node_modules/graphql-tag/src/index.js | 180 - .../graphql-tag/src/index.js.flow | 7 - .../node_modules/graphql-tag/test/graphql.js | 461 - .../node_modules/graphql-tag/test/mocha.opts | 1 - .../node_modules/graphql-tools/CHANGELOG.md | 454 - .../graphql-tools/CONTRIBUTING.md | 82 - gateway/node_modules/graphql-tools/LICENSE | 21 - gateway/node_modules/graphql-tools/README.md | 125 - .../graphql-tools/dist/Interfaces.d.ts | 146 - .../graphql-tools/dist/Interfaces.js | 2 - .../graphql-tools/dist/Interfaces.js.map | 1 - .../graphql-tools/dist/Logger.d.ts | 10 - .../node_modules/graphql-tools/dist/Logger.js | 28 - .../graphql-tools/dist/Logger.js.map | 1 - .../dist/generate/SchemaError.d.ts | 4 - .../dist/generate/SchemaError.js | 28 - .../dist/generate/SchemaError.js.map | 1 - .../generate/addResolveFunctionsToSchema.d.ts | 4 - .../generate/addResolveFunctionsToSchema.js | 119 - .../addResolveFunctionsToSchema.js.map | 1 - .../addSchemaLevelResolveFunction.d.ts | 3 - .../generate/addSchemaLevelResolveFunction.js | 61 - .../addSchemaLevelResolveFunction.js.map | 1 - .../assertResolveFunctionsPresent.d.ts | 4 - .../generate/assertResolveFunctionsPresent.js | 41 - .../assertResolveFunctionsPresent.js.map | 1 - .../generate/attachConnectorsToContext.d.ts | 2 - .../generate/attachConnectorsToContext.js | 55 - .../generate/attachConnectorsToContext.js.map | 1 - .../generate/attachDirectiveResolvers.d.ts | 4 - .../dist/generate/attachDirectiveResolvers.js | 89 - .../generate/attachDirectiveResolvers.js.map | 1 - .../buildSchemaFromTypeDefinitions.d.ts | 4 - .../buildSchemaFromTypeDefinitions.js | 37 - .../buildSchemaFromTypeDefinitions.js.map | 1 - .../dist/generate/chainResolvers.d.ts | 4 - .../dist/generate/chainResolvers.js | 14 - .../dist/generate/chainResolvers.js.map | 1 - .../generate/checkForResolveTypeResolver.d.ts | 3 - .../generate/checkForResolveTypeResolver.js | 27 - .../checkForResolveTypeResolver.js.map | 1 - .../dist/generate/concatenateTypeDefs.d.ts | 3 - .../dist/generate/concatenateTypeDefs.js | 41 - .../dist/generate/concatenateTypeDefs.js.map | 1 - .../dist/generate/decorateWithLogger.d.ts | 4 - .../dist/generate/decorateWithLogger.js | 48 - .../dist/generate/decorateWithLogger.js.map | 1 - .../extendResolversFromInterfaces.d.ts | 4 - .../generate/extendResolversFromInterfaces.js | 42 - .../extendResolversFromInterfaces.js.map | 1 - .../generate/extractExtensionDefinitions.d.ts | 4 - .../generate/extractExtensionDefinitions.js | 20 - .../extractExtensionDefinitions.js.map | 1 - .../generate/filterExtensionDefinitions.d.ts | 6 - .../generate/filterExtensionDefinitions.js | 27 - .../filterExtensionDefinitions.js.map | 1 - .../dist/generate/forEachField.d.ts | 4 - .../dist/generate/forEachField.js | 19 - .../dist/generate/forEachField.js.map | 1 - .../graphql-tools/dist/generate/index.d.ts | 14 - .../graphql-tools/dist/generate/index.js | 30 - .../graphql-tools/dist/generate/index.js.map | 1 - .../dist/implementsAbstractType.d.ts | 2 - .../dist/implementsAbstractType.js | 15 - .../dist/implementsAbstractType.js.map | 1 - .../graphql-tools/dist/index.d.ts | 6 - .../node_modules/graphql-tools/dist/index.js | 11 - .../graphql-tools/dist/index.js.map | 1 - .../graphql-tools/dist/isEmptyObject.d.ts | 1 - .../graphql-tools/dist/isEmptyObject.js | 14 - .../graphql-tools/dist/isEmptyObject.js.map | 1 - .../dist/isSpecifiedScalarType.d.ts | 3 - .../dist/isSpecifiedScalarType.js | 22 - .../dist/isSpecifiedScalarType.js.map | 1 - .../dist/makeExecutableSchema.d.ts | 6 - .../dist/makeExecutableSchema.js | 92 - .../dist/makeExecutableSchema.js.map | 1 - .../graphql-tools/dist/mergeDeep.d.ts | 1 - .../graphql-tools/dist/mergeDeep.js | 26 - .../graphql-tools/dist/mergeDeep.js.map | 1 - .../node_modules/graphql-tools/dist/mock.d.ts | 14 - .../node_modules/graphql-tools/dist/mock.js | 306 - .../graphql-tools/dist/mock.js.map | 1 - .../graphql-tools/dist/schemaVisitor.d.ts | 62 - .../graphql-tools/dist/schemaVisitor.js | 587 -- .../graphql-tools/dist/schemaVisitor.js.map | 1 - .../dist/stitching/defaultMergedResolver.d.ts | 3 - .../dist/stitching/defaultMergedResolver.js | 32 - .../stitching/defaultMergedResolver.js.map | 1 - .../dist/stitching/delegateToSchema.d.ts | 3 - .../dist/stitching/delegateToSchema.js | 171 - .../dist/stitching/delegateToSchema.js.map | 1 - .../graphql-tools/dist/stitching/errors.d.ts | 11 - .../graphql-tools/dist/stitching/errors.js | 114 - .../dist/stitching/errors.js.map | 1 - .../stitching/getResponseKeyFromInfo.d.ts | 7 - .../dist/stitching/getResponseKeyFromInfo.js | 11 - .../stitching/getResponseKeyFromInfo.js.map | 1 - .../graphql-tools/dist/stitching/index.d.ts | 6 - .../graphql-tools/dist/stitching/index.js | 13 - .../graphql-tools/dist/stitching/index.js.map | 1 - .../dist/stitching/introspectSchema.d.ts | 6 - .../dist/stitching/introspectSchema.js | 72 - .../dist/stitching/introspectSchema.js.map | 1 - .../dist/stitching/linkToFetcher.d.ts | 4 - .../dist/stitching/linkToFetcher.js | 11 - .../dist/stitching/linkToFetcher.js.map | 1 - .../stitching/makeRemoteExecutableSchema.d.ts | 44 - .../stitching/makeRemoteExecutableSchema.js | 186 - .../makeRemoteExecutableSchema.js.map | 1 - .../dist/stitching/mapAsyncIterator.d.ts | 5 - .../dist/stitching/mapAsyncIterator.js | 59 - .../dist/stitching/mapAsyncIterator.js.map | 1 - .../dist/stitching/mergeSchemas.d.ts | 21 - .../dist/stitching/mergeSchemas.js | 358 - .../dist/stitching/mergeSchemas.js.map | 1 - .../stitching/observableToAsyncIterable.d.ts | 5 - .../stitching/observableToAsyncIterable.js | 124 - .../observableToAsyncIterable.js.map | 1 - .../stitching/resolveFromParentTypename.d.ts | 2 - .../stitching/resolveFromParentTypename.js | 15 - .../resolveFromParentTypename.js.map | 1 - .../dist/stitching/resolvers.d.ts | 19 - .../graphql-tools/dist/stitching/resolvers.js | 60 - .../dist/stitching/resolvers.js.map | 1 - .../dist/stitching/schemaRecreation.d.ts | 11 - .../dist/stitching/schemaRecreation.js | 255 - .../dist/stitching/schemaRecreation.js.map | 1 - .../dist/stitching/typeFromAST.d.ts | 3 - .../dist/stitching/typeFromAST.js | 168 - .../dist/stitching/typeFromAST.js.map | 1 - .../transforms/AddArgumentsAsVariables.d.ts | 11 - .../transforms/AddArgumentsAsVariables.js | 156 - .../transforms/AddArgumentsAsVariables.js.map | 1 - .../transforms/AddTypenameToAbstract.d.ts | 8 - .../dist/transforms/AddTypenameToAbstract.js | 53 - .../transforms/AddTypenameToAbstract.js.map | 1 - .../CheckResultAndHandleErrors.d.ts | 8 - .../transforms/CheckResultAndHandleErrors.js | 14 - .../CheckResultAndHandleErrors.js.map | 1 - .../dist/transforms/ConvertEnumResponse.d.ts | 7 - .../dist/transforms/ConvertEnumResponse.js | 16 - .../transforms/ConvertEnumResponse.js.map | 1 - .../dist/transforms/ConvertEnumValues.d.ts | 7 - .../dist/transforms/ConvertEnumValues.js | 51 - .../dist/transforms/ConvertEnumValues.js.map | 1 - .../dist/transforms/ExpandAbstractTypes.d.ts | 9 - .../dist/transforms/ExpandAbstractTypes.js | 173 - .../transforms/ExpandAbstractTypes.js.map | 1 - .../dist/transforms/ExtractField.d.ts | 10 - .../dist/transforms/ExtractField.js | 59 - .../dist/transforms/ExtractField.js.map | 1 - .../dist/transforms/FilterRootFields.d.ts | 8 - .../dist/transforms/FilterRootFields.js | 20 - .../dist/transforms/FilterRootFields.js.map | 1 - .../dist/transforms/FilterToSchema.d.ts | 8 - .../dist/transforms/FilterToSchema.js | 247 - .../dist/transforms/FilterToSchema.js.map | 1 - .../dist/transforms/FilterTypes.d.ts | 7 - .../dist/transforms/FilterTypes.js | 25 - .../dist/transforms/FilterTypes.js.map | 1 - .../dist/transforms/RenameRootFields.d.ts | 7 - .../dist/transforms/RenameRootFields.js | 20 - .../dist/transforms/RenameRootFields.js.map | 1 - .../dist/transforms/RenameTypes.d.ts | 18 - .../dist/transforms/RenameTypes.js | 103 - .../dist/transforms/RenameTypes.js.map | 1 - .../transforms/ReplaceFieldWithFragment.d.ts | 12 - .../transforms/ReplaceFieldWithFragment.js | 157 - .../ReplaceFieldWithFragment.js.map | 1 - .../dist/transforms/TransformRootFields.d.ts | 11 - .../dist/transforms/TransformRootFields.js | 67 - .../transforms/TransformRootFields.js.map | 1 - .../dist/transforms/WrapQuery.d.ts | 11 - .../dist/transforms/WrapQuery.js | 78 - .../dist/transforms/WrapQuery.js.map | 1 - .../graphql-tools/dist/transforms/index.d.ts | 16 - .../graphql-tools/dist/transforms/index.js | 30 - .../dist/transforms/index.js.map | 1 - .../dist/transforms/transformSchema.d.ts | 5 - .../dist/transforms/transformSchema.js | 22 - .../dist/transforms/transformSchema.js.map | 1 - .../dist/transforms/transforms.d.ts | 7 - .../dist/transforms/transforms.js | 48 - .../dist/transforms/transforms.js.map | 1 - .../dist/transforms/visitSchema.d.ts | 21 - .../dist/transforms/visitSchema.js | 116 - .../dist/transforms/visitSchema.js.map | 1 - .../graphql-tools/node_modules/.bin/uuid | 1 - .../node_modules/graphql-tools/package.json | 84 - .../node_modules/graphql-upload/changelog.md | 412 - .../graphql-upload/lib/GraphQLUpload.js | 21 - .../graphql-upload/lib/GraphQLUpload.mjs | 14 - .../graphql-upload/lib/constants.js | 6 - .../graphql-upload/lib/constants.mjs | 2 - .../lib/graphqlUploadExpress.js | 34 - .../lib/graphqlUploadExpress.mjs | 26 - .../graphql-upload/lib/graphqlUploadKoa.js | 27 - .../graphql-upload/lib/graphqlUploadKoa.mjs | 19 - .../graphql-upload/lib/ignoreStream.js | 11 - .../graphql-upload/lib/ignoreStream.mjs | 4 - .../node_modules/graphql-upload/lib/index.js | 20 - .../node_modules/graphql-upload/lib/index.mjs | 4 - .../graphql-upload/lib/isEnumerableObject.js | 9 - .../graphql-upload/lib/isEnumerableObject.mjs | 2 - .../graphql-upload/lib/processRequest.js | 318 - .../graphql-upload/lib/processRequest.mjs | 286 - .../node_modules/http-errors/HISTORY.md | 160 - .../node_modules/http-errors/LICENSE | 23 - .../node_modules/http-errors/README.md | 171 - .../node_modules/http-errors/index.js | 299 - .../node_modules/http-errors/package.json | 49 - .../node_modules/setprototypeof/LICENSE | 13 - .../node_modules/setprototypeof/README.md | 31 - .../node_modules/setprototypeof/index.d.ts | 2 - .../node_modules/setprototypeof/index.js | 17 - .../node_modules/setprototypeof/package.json | 38 - .../node_modules/setprototypeof/test/index.js | 24 - .../node_modules/graphql-upload/package.json | 83 - gateway/node_modules/graphql-upload/readme.md | 275 - gateway/node_modules/graphql/LICENSE | 21 - gateway/node_modules/graphql/README.md | 167 - .../graphql/error/GraphQLError.d.ts | 87 - .../graphql/error/GraphQLError.js | 288 - .../graphql/error/GraphQLError.js.flow | 242 - .../graphql/error/GraphQLError.mjs | 274 - .../graphql/error/formatError.d.ts | 40 - .../node_modules/graphql/error/formatError.js | 37 - .../graphql/error/formatError.js.flow | 51 - .../graphql/error/formatError.mjs | 28 - gateway/node_modules/graphql/error/index.d.ts | 4 - gateway/node_modules/graphql/error/index.js | 43 - .../node_modules/graphql/error/index.js.flow | 9 - gateway/node_modules/graphql/error/index.mjs | 4 - .../graphql/error/locatedError.d.ts | 16 - .../graphql/error/locatedError.js | 30 - .../graphql/error/locatedError.js.flow | 37 - .../graphql/error/locatedError.mjs | 20 - .../graphql/error/syntaxError.d.ts | 13 - .../node_modules/graphql/error/syntaxError.js | 16 - .../graphql/error/syntaxError.js.flow | 18 - .../graphql/error/syntaxError.mjs | 9 - .../graphql/execution/execute.d.ts | 195 - .../node_modules/graphql/execution/execute.js | 867 -- .../graphql/execution/execute.js.flow | 1248 --- .../graphql/execution/execute.mjs | 847 -- .../node_modules/graphql/execution/index.d.ts | 13 - .../node_modules/graphql/execution/index.js | 47 - .../graphql/execution/index.js.flow | 17 - .../node_modules/graphql/execution/index.mjs | 3 - .../graphql/execution/values.d.ts | 65 - .../node_modules/graphql/execution/values.js | 228 - .../graphql/execution/values.js.flow | 267 - .../node_modules/graphql/execution/values.mjs | 206 - gateway/node_modules/graphql/graphql.d.ts | 82 - gateway/node_modules/graphql/graphql.js | 118 - gateway/node_modules/graphql/graphql.js.flow | 207 - gateway/node_modules/graphql/graphql.mjs | 142 - gateway/node_modules/graphql/index.d.ts | 465 - gateway/node_modules/graphql/index.js | 1205 --- gateway/node_modules/graphql/index.js.flow | 454 - gateway/node_modules/graphql/index.mjs | 94 - .../node_modules/graphql/jsutils/Maybe.d.ts | 2 - .../node_modules/graphql/jsutils/ObjMap.js | 1 - .../graphql/jsutils/ObjMap.js.flow | 8 - .../node_modules/graphql/jsutils/ObjMap.mjs | 1 - .../node_modules/graphql/jsutils/Path.d.ts | 19 - gateway/node_modules/graphql/jsutils/Path.js | 34 - .../node_modules/graphql/jsutils/Path.js.flow | 30 - gateway/node_modules/graphql/jsutils/Path.mjs | 25 - .../graphql/jsutils/PromiseOrValue.d.ts | 1 - .../graphql/jsutils/PromiseOrValue.js | 1 - .../graphql/jsutils/PromiseOrValue.js.flow | 2 - .../graphql/jsutils/PromiseOrValue.mjs | 1 - .../graphql/jsutils/defineInspect.js | 25 - .../graphql/jsutils/defineInspect.js.flow | 20 - .../graphql/jsutils/defineInspect.mjs | 15 - .../node_modules/graphql/jsutils/devAssert.js | 14 - .../graphql/jsutils/devAssert.js.flow | 8 - .../graphql/jsutils/devAssert.mjs | 7 - .../graphql/jsutils/didYouMean.js | 42 - .../graphql/jsutils/didYouMean.js.flow | 39 - .../graphql/jsutils/didYouMean.mjs | 36 - .../graphql/jsutils/identityFunc.js | 13 - .../graphql/jsutils/identityFunc.js.flow | 7 - .../graphql/jsutils/identityFunc.mjs | 6 - .../node_modules/graphql/jsutils/inspect.js | 133 - .../graphql/jsutils/inspect.js.flow | 128 - .../node_modules/graphql/jsutils/inspect.mjs | 124 - .../graphql/jsutils/instanceOf.js | 36 - .../graphql/jsutils/instanceOf.js.flow | 45 - .../graphql/jsutils/instanceOf.mjs | 27 - .../node_modules/graphql/jsutils/invariant.js | 14 - .../graphql/jsutils/invariant.js.flow | 10 - .../graphql/jsutils/invariant.mjs | 7 - .../graphql/jsutils/isAsyncIterable.js | 19 - .../graphql/jsutils/isAsyncIterable.js.flow | 18 - .../graphql/jsutils/isAsyncIterable.mjs | 16 - .../graphql/jsutils/isCollection.js | 47 - .../graphql/jsutils/isCollection.js.flow | 38 - .../graphql/jsutils/isCollection.mjs | 40 - .../graphql/jsutils/isObjectLike.js | 16 - .../graphql/jsutils/isObjectLike.js.flow | 8 - .../graphql/jsutils/isObjectLike.mjs | 9 - .../node_modules/graphql/jsutils/isPromise.js | 15 - .../graphql/jsutils/isPromise.js.flow | 12 - .../graphql/jsutils/isPromise.mjs | 8 - .../node_modules/graphql/jsutils/keyMap.js | 36 - .../graphql/jsutils/keyMap.js.flow | 35 - .../node_modules/graphql/jsutils/keyMap.mjs | 29 - .../node_modules/graphql/jsutils/keyValMap.js | 30 - .../graphql/jsutils/keyValMap.js.flow | 30 - .../graphql/jsutils/keyValMap.mjs | 23 - .../node_modules/graphql/jsutils/mapValue.js | 27 - .../graphql/jsutils/mapValue.js.flow | 20 - .../node_modules/graphql/jsutils/mapValue.mjs | 18 - .../node_modules/graphql/jsutils/memoize3.js | 45 - .../graphql/jsutils/memoize3.js.flow | 39 - .../node_modules/graphql/jsutils/memoize3.mjs | 38 - .../jsutils/nodejsCustomInspectSymbol.js | 10 - .../jsutils/nodejsCustomInspectSymbol.js.flow | 8 - .../jsutils/nodejsCustomInspectSymbol.mjs | 3 - .../graphql/jsutils/printPathArray.js | 15 - .../graphql/jsutils/printPathArray.js.flow | 13 - .../graphql/jsutils/printPathArray.mjs | 8 - .../graphql/jsutils/promiseForObject.js | 26 - .../graphql/jsutils/promiseForObject.js.flow | 22 - .../graphql/jsutils/promiseForObject.mjs | 19 - .../graphql/jsutils/promiseReduce.js | 25 - .../graphql/jsutils/promiseReduce.js.flow | 25 - .../graphql/jsutils/promiseReduce.mjs | 16 - .../graphql/jsutils/suggestionList.js | 137 - .../graphql/jsutils/suggestionList.js.flow | 136 - .../graphql/jsutils/suggestionList.mjs | 129 - .../node_modules/graphql/jsutils/toObjMap.js | 28 - .../graphql/jsutils/toObjMap.js.flow | 26 - .../node_modules/graphql/jsutils/toObjMap.mjs | 18 - .../node_modules/graphql/language/ast.d.ts | 602 -- gateway/node_modules/graphql/language/ast.js | 132 - .../node_modules/graphql/language/ast.js.flow | 637 -- gateway/node_modules/graphql/language/ast.mjs | 118 - .../graphql/language/blockString.d.ts | 23 - .../graphql/language/blockString.js | 134 - .../graphql/language/blockString.js.flow | 121 - .../graphql/language/blockString.mjs | 124 - .../graphql/language/directiveLocation.d.ts | 32 - .../graphql/language/directiveLocation.js | 38 - .../language/directiveLocation.js.flow | 32 - .../graphql/language/directiveLocation.mjs | 29 - .../experimentalOnlineParser/grammar.d.ts | 1006 -- .../experimentalOnlineParser/grammar.js | 987 -- .../experimentalOnlineParser/grammar.js.flow | 1000 -- .../experimentalOnlineParser/grammar.mjs | 980 -- .../experimentalOnlineParser/index.d.ts | 6 - .../experimentalOnlineParser/index.js | 31 - .../experimentalOnlineParser/index.js.flow | 7 - .../experimentalOnlineParser/index.mjs | 1 - .../onlineParser.d.ts | 125 - .../experimentalOnlineParser/onlineParser.js | 604 -- .../onlineParser.js.flow | 723 -- .../experimentalOnlineParser/onlineParser.mjs | 587 -- .../node_modules/graphql/language/index.d.ts | 95 - .../node_modules/graphql/language/index.js | 191 - .../graphql/language/index.js.flow | 98 - .../node_modules/graphql/language/index.mjs | 12 - .../node_modules/graphql/language/kinds.d.ts | 74 - .../node_modules/graphql/language/kinds.js | 71 - .../graphql/language/kinds.js.flow | 75 - .../node_modules/graphql/language/kinds.mjs | 62 - .../node_modules/graphql/language/lexer.d.ts | 58 - .../node_modules/graphql/language/lexer.js | 690 -- .../graphql/language/lexer.js.flow | 701 -- .../node_modules/graphql/language/lexer.mjs | 676 -- .../graphql/language/location.d.ts | 15 - .../node_modules/graphql/language/location.js | 31 - .../graphql/language/location.js.flow | 26 - .../graphql/language/location.mjs | 24 - .../node_modules/graphql/language/parser.d.ts | 88 - .../node_modules/graphql/language/parser.js | 1566 --- .../graphql/language/parser.js.flow | 1568 --- .../node_modules/graphql/language/parser.mjs | 1547 --- .../graphql/language/predicates.d.ts | 36 - .../graphql/language/predicates.js | 52 - .../graphql/language/predicates.js.flow | 82 - .../graphql/language/predicates.mjs | 28 - .../graphql/language/printLocation.d.ts | 16 - .../graphql/language/printLocation.js | 75 - .../graphql/language/printLocation.js.flow | 88 - .../graphql/language/printLocation.mjs | 66 - .../graphql/language/printer.d.ts | 7 - .../node_modules/graphql/language/printer.js | 322 - .../graphql/language/printer.js.flow | 292 - .../node_modules/graphql/language/printer.mjs | 313 - .../node_modules/graphql/language/source.d.ts | 25 - .../node_modules/graphql/language/source.js | 67 - .../graphql/language/source.js.flow | 64 - .../node_modules/graphql/language/source.mjs | 51 - .../graphql/language/tokenKind.d.ts | 33 - .../graphql/language/tokenKind.js | 40 - .../graphql/language/tokenKind.js.flow | 34 - .../graphql/language/tokenKind.mjs | 31 - .../graphql/language/visitor.d.ts | 263 - .../node_modules/graphql/language/visitor.js | 397 - .../graphql/language/visitor.js.flow | 437 - .../node_modules/graphql/language/visitor.mjs | 383 - gateway/node_modules/graphql/package.json | 26 - .../graphql/polyfills/arrayFrom.js | 57 - .../graphql/polyfills/arrayFrom.js.flow | 58 - .../graphql/polyfills/arrayFrom.mjs | 49 - .../node_modules/graphql/polyfills/find.js | 22 - .../graphql/polyfills/find.js.flow | 20 - .../node_modules/graphql/polyfills/find.mjs | 14 - .../graphql/polyfills/isFinite.js | 15 - .../graphql/polyfills/isFinite.js.flow | 13 - .../graphql/polyfills/isFinite.mjs | 7 - .../graphql/polyfills/isInteger.js | 15 - .../graphql/polyfills/isInteger.js.flow | 16 - .../graphql/polyfills/isInteger.mjs | 7 - .../graphql/polyfills/objectEntries.js | 17 - .../graphql/polyfills/objectEntries.js.flow | 11 - .../graphql/polyfills/objectEntries.mjs | 9 - .../graphql/polyfills/objectValues.js | 17 - .../graphql/polyfills/objectValues.js.flow | 10 - .../graphql/polyfills/objectValues.mjs | 9 - .../node_modules/graphql/polyfills/symbols.js | 17 - .../graphql/polyfills/symbols.js.flow | 20 - .../graphql/polyfills/symbols.mjs | 8 - .../graphql/subscription/index.d.ts | 5 - .../graphql/subscription/index.js | 19 - .../graphql/subscription/index.js.flow | 3 - .../graphql/subscription/index.mjs | 1 - .../subscription/mapAsyncIterator.d.ts | 11 - .../graphql/subscription/mapAsyncIterator.js | 86 - .../subscription/mapAsyncIterator.js.flow | 74 - .../graphql/subscription/mapAsyncIterator.mjs | 79 - .../graphql/subscription/subscribe.d.ts | 80 - .../graphql/subscription/subscribe.js | 192 - .../graphql/subscription/subscribe.js.flow | 298 - .../graphql/subscription/subscribe.mjs | 172 - .../node_modules/graphql/type/definition.d.ts | 947 -- .../node_modules/graphql/type/definition.js | 1225 --- .../graphql/type/definition.js.flow | 1638 --- .../node_modules/graphql/type/definition.mjs | 1106 --- .../node_modules/graphql/type/directives.d.ts | 96 - .../node_modules/graphql/type/directives.js | 205 - .../graphql/type/directives.js.flow | 228 - .../node_modules/graphql/type/directives.mjs | 175 - gateway/node_modules/graphql/type/index.d.ts | 168 - gateway/node_modules/graphql/type/index.js | 509 - .../node_modules/graphql/type/index.js.flow | 163 - gateway/node_modules/graphql/type/index.mjs | 27 - .../graphql/type/introspection.d.ts | 40 - .../graphql/type/introspection.js | 615 -- .../graphql/type/introspection.js.flow | 550 -- .../graphql/type/introspection.mjs | 568 -- .../node_modules/graphql/type/scalars.d.ts | 11 - gateway/node_modules/graphql/type/scalars.js | 284 - .../node_modules/graphql/type/scalars.js.flow | 287 - gateway/node_modules/graphql/type/scalars.mjs | 258 - gateway/node_modules/graphql/type/schema.d.ts | 147 - gateway/node_modules/graphql/type/schema.js | 384 - .../node_modules/graphql/type/schema.js.flow | 435 - gateway/node_modules/graphql/type/schema.mjs | 361 - .../node_modules/graphql/type/validate.d.ts | 20 - gateway/node_modules/graphql/type/validate.js | 549 -- .../graphql/type/validate.js.flow | 670 -- .../node_modules/graphql/type/validate.mjs | 528 - .../graphql/utilities/TypeInfo.d.ts | 60 - .../graphql/utilities/TypeInfo.js | 397 - .../graphql/utilities/TypeInfo.js.flow | 359 - .../graphql/utilities/TypeInfo.mjs | 378 - .../graphql/utilities/assertValidName.d.ts | 11 - .../graphql/utilities/assertValidName.js | 44 - .../graphql/utilities/assertValidName.js.flow | 34 - .../graphql/utilities/assertValidName.mjs | 31 - .../graphql/utilities/astFromValue.d.ts | 26 - .../graphql/utilities/astFromValue.js | 198 - .../graphql/utilities/astFromValue.js.flow | 154 - .../graphql/utilities/astFromValue.mjs | 179 - .../graphql/utilities/buildASTSchema.d.ts | 53 - .../graphql/utilities/buildASTSchema.js | 117 - .../graphql/utilities/buildASTSchema.js.flow | 129 - .../graphql/utilities/buildASTSchema.mjs | 100 - .../graphql/utilities/buildClientSchema.d.ts | 20 - .../graphql/utilities/buildClientSchema.js | 334 - .../utilities/buildClientSchema.js.flow | 407 - .../graphql/utilities/buildClientSchema.mjs | 314 - .../graphql/utilities/coerceInputValue.d.ts | 17 - .../graphql/utilities/coerceInputValue.js | 149 - .../utilities/coerceInputValue.js.flow | 192 - .../graphql/utilities/coerceInputValue.mjs | 129 - .../graphql/utilities/concatAST.d.ts | 8 - .../graphql/utilities/concatAST.js | 25 - .../graphql/utilities/concatAST.js.flow | 17 - .../graphql/utilities/concatAST.mjs | 18 - .../graphql/utilities/extendSchema.d.ts | 75 - .../graphql/utilities/extendSchema.js | 719 -- .../graphql/utilities/extendSchema.js.flow | 782 -- .../graphql/utilities/extendSchema.mjs | 689 -- .../utilities/findBreakingChanges.d.ts | 57 - .../graphql/utilities/findBreakingChanges.js | 518 - .../utilities/findBreakingChanges.js.flow | 586 -- .../graphql/utilities/findBreakingChanges.mjs | 495 - .../utilities/findDeprecatedUsages.d.ts | 21 - .../graphql/utilities/findDeprecatedUsages.js | 27 - .../utilities/findDeprecatedUsages.js.flow | 29 - .../utilities/findDeprecatedUsages.mjs | 19 - .../utilities/getIntrospectionQuery.d.ts | 187 - .../utilities/getIntrospectionQuery.js | 27 - .../utilities/getIntrospectionQuery.js.flow | 299 - .../utilities/getIntrospectionQuery.mjs | 20 - .../graphql/utilities/getOperationAST.d.ts | 13 - .../graphql/utilities/getOperationAST.js | 40 - .../graphql/utilities/getOperationAST.js.flow | 31 - .../graphql/utilities/getOperationAST.mjs | 33 - .../utilities/getOperationRootType.d.ts | 14 - .../graphql/utilities/getOperationRootType.js | 45 - .../utilities/getOperationRootType.js.flow | 56 - .../utilities/getOperationRootType.mjs | 38 - .../node_modules/graphql/utilities/index.d.ts | 119 - .../node_modules/graphql/utilities/index.js | 247 - .../graphql/utilities/index.js.flow | 114 - .../node_modules/graphql/utilities/index.mjs | 49 - .../utilities/introspectionFromSchema.d.ts | 20 - .../utilities/introspectionFromSchema.js | 46 - .../utilities/introspectionFromSchema.js.flow | 39 - .../utilities/introspectionFromSchema.mjs | 34 - .../utilities/lexicographicSortSchema.d.ts | 8 - .../utilities/lexicographicSortSchema.js | 200 - .../utilities/lexicographicSortSchema.js.flow | 186 - .../utilities/lexicographicSortSchema.mjs | 184 - .../graphql/utilities/printSchema.d.ts | 30 - .../graphql/utilities/printSchema.js | 289 - .../graphql/utilities/printSchema.js.flow | 382 - .../graphql/utilities/printSchema.mjs | 268 - .../graphql/utilities/separateOperations.d.ts | 11 - .../graphql/utilities/separateOperations.js | 88 - .../utilities/separateOperations.js.flow | 87 - .../graphql/utilities/separateOperations.mjs | 80 - .../utilities/stripIgnoredCharacters.d.ts | 55 - .../utilities/stripIgnoredCharacters.js | 123 - .../utilities/stripIgnoredCharacters.js.flow | 115 - .../utilities/stripIgnoredCharacters.mjs | 113 - .../graphql/utilities/typeComparators.d.ts | 32 - .../graphql/utilities/typeComparators.js | 115 - .../graphql/utilities/typeComparators.js.flow | 120 - .../graphql/utilities/typeComparators.mjs | 104 - .../graphql/utilities/typeFromAST.d.ts | 29 - .../graphql/utilities/typeFromAST.js | 39 - .../graphql/utilities/typeFromAST.js.flow | 55 - .../graphql/utilities/typeFromAST.mjs | 36 - .../utilities/typedQueryDocumentNode.d.ts | 20 - .../graphql/utilities/valueFromAST.d.ts | 30 - .../graphql/utilities/valueFromAST.js | 186 - .../graphql/utilities/valueFromAST.js.flow | 164 - .../graphql/utilities/valueFromAST.mjs | 171 - .../utilities/valueFromASTUntyped.d.ts | 24 - .../graphql/utilities/valueFromASTUntyped.js | 68 - .../utilities/valueFromASTUntyped.js.flow | 57 - .../graphql/utilities/valueFromASTUntyped.mjs | 56 - .../graphql/validation/ValidationContext.d.ts | 98 - .../graphql/validation/ValidationContext.js | 241 - .../validation/ValidationContext.js.flow | 254 - .../graphql/validation/ValidationContext.mjs | 224 - .../graphql/validation/index.d.ts | 96 - .../node_modules/graphql/validation/index.js | 309 - .../graphql/validation/index.js.flow | 99 - .../node_modules/graphql/validation/index.mjs | 67 - .../rules/ExecutableDefinitions.d.ts | 8 - .../validation/rules/ExecutableDefinitions.js | 13 - .../rules/ExecutableDefinitions.js.flow | 9 - .../rules/ExecutableDefinitions.mjs | 8 - .../rules/ExecutableDefinitionsRule.d.ts | 12 - .../rules/ExecutableDefinitionsRule.js | 35 - .../rules/ExecutableDefinitionsRule.js.flow | 39 - .../rules/ExecutableDefinitionsRule.mjs | 26 - .../rules/FieldsOnCorrectTypeRule.d.ts | 10 - .../rules/FieldsOnCorrectTypeRule.js | 130 - .../rules/FieldsOnCorrectTypeRule.js.flow | 145 - .../rules/FieldsOnCorrectTypeRule.mjs | 116 - .../rules/FragmentsOnCompositeTypesRule.d.ts | 13 - .../rules/FragmentsOnCompositeTypesRule.js | 46 - .../FragmentsOnCompositeTypesRule.js.flow | 52 - .../rules/FragmentsOnCompositeTypesRule.mjs | 36 - .../rules/KnownArgumentNamesRule.d.ts | 17 - .../rules/KnownArgumentNamesRule.js | 104 - .../rules/KnownArgumentNamesRule.js.flow | 98 - .../rules/KnownArgumentNamesRule.mjs | 89 - .../validation/rules/KnownDirectivesRule.d.ts | 12 - .../validation/rules/KnownDirectivesRule.js | 148 - .../rules/KnownDirectivesRule.js.flow | 138 - .../validation/rules/KnownDirectivesRule.mjs | 134 - .../rules/KnownFragmentNamesRule.d.ts | 10 - .../rules/KnownFragmentNamesRule.js | 27 - .../rules/KnownFragmentNamesRule.js.flow | 26 - .../rules/KnownFragmentNamesRule.mjs | 20 - .../validation/rules/KnownTypeNamesRule.d.ts | 12 - .../validation/rules/KnownTypeNamesRule.js | 73 - .../rules/KnownTypeNamesRule.js.flow | 84 - .../validation/rules/KnownTypeNamesRule.mjs | 58 - .../rules/LoneAnonymousOperationRule.d.ts | 12 - .../rules/LoneAnonymousOperationRule.js | 32 - .../rules/LoneAnonymousOperationRule.js.flow | 36 - .../rules/LoneAnonymousOperationRule.mjs | 24 - .../rules/LoneSchemaDefinition.d.ts | 8 - .../validation/rules/LoneSchemaDefinition.js | 13 - .../rules/LoneSchemaDefinition.js.flow | 9 - .../validation/rules/LoneSchemaDefinition.mjs | 8 - .../rules/LoneSchemaDefinitionRule.d.ts | 11 - .../rules/LoneSchemaDefinitionRule.js | 35 - .../rules/LoneSchemaDefinitionRule.js.flow | 43 - .../rules/LoneSchemaDefinitionRule.mjs | 28 - .../rules/NoFragmentCyclesRule.d.ts | 4 - .../validation/rules/NoFragmentCyclesRule.js | 70 - .../rules/NoFragmentCyclesRule.js.flow | 78 - .../validation/rules/NoFragmentCyclesRule.mjs | 62 - .../rules/NoUndefinedVariablesRule.d.ts | 12 - .../rules/NoUndefinedVariablesRule.js | 41 - .../rules/NoUndefinedVariablesRule.js.flow | 46 - .../rules/NoUndefinedVariablesRule.mjs | 34 - .../rules/NoUnusedFragmentsRule.d.ts | 10 - .../validation/rules/NoUnusedFragmentsRule.js | 52 - .../rules/NoUnusedFragmentsRule.js.flow | 54 - .../rules/NoUnusedFragmentsRule.mjs | 45 - .../rules/NoUnusedVariablesRule.d.ts | 10 - .../validation/rules/NoUnusedVariablesRule.js | 47 - .../rules/NoUnusedVariablesRule.js.flow | 49 - .../rules/NoUnusedVariablesRule.mjs | 40 - .../OverlappingFieldsCanBeMergedRule.d.ts | 13 - .../rules/OverlappingFieldsCanBeMergedRule.js | 584 -- .../OverlappingFieldsCanBeMergedRule.js.flow | 833 -- .../OverlappingFieldsCanBeMergedRule.mjs | 568 -- .../rules/PossibleFragmentSpreadsRule.d.ts | 13 - .../rules/PossibleFragmentSpreadsRule.js | 63 - .../rules/PossibleFragmentSpreadsRule.js.flow | 78 - .../rules/PossibleFragmentSpreadsRule.mjs | 50 - .../rules/PossibleTypeExtensions.d.ts | 8 - .../rules/PossibleTypeExtensions.js | 13 - .../rules/PossibleTypeExtensions.js.flow | 9 - .../rules/PossibleTypeExtensions.mjs | 8 - .../rules/PossibleTypeExtensionsRule.d.ts | 11 - .../rules/PossibleTypeExtensionsRule.js | 141 - .../rules/PossibleTypeExtensionsRule.js.flow | 145 - .../rules/PossibleTypeExtensionsRule.mjs | 124 - .../rules/ProvidedRequiredArgumentsRule.d.ts | 19 - .../rules/ProvidedRequiredArgumentsRule.js | 136 - .../ProvidedRequiredArgumentsRule.js.flow | 125 - .../rules/ProvidedRequiredArgumentsRule.mjs | 119 - .../validation/rules/ScalarLeafsRule.d.ts | 10 - .../validation/rules/ScalarLeafsRule.js | 45 - .../validation/rules/ScalarLeafsRule.js.flow | 49 - .../validation/rules/ScalarLeafsRule.mjs | 34 - .../rules/SingleFieldSubscriptionsRule.d.ts | 11 - .../rules/SingleFieldSubscriptionsRule.js | 25 - .../SingleFieldSubscriptionsRule.js.flow | 33 - .../rules/SingleFieldSubscriptionsRule.mjs | 18 - .../rules/UniqueArgumentNamesRule.d.ts | 12 - .../rules/UniqueArgumentNamesRule.js | 37 - .../rules/UniqueArgumentNamesRule.js.flow | 39 - .../rules/UniqueArgumentNamesRule.mjs | 30 - .../rules/UniqueDirectiveNames.d.ts | 8 - .../validation/rules/UniqueDirectiveNames.js | 13 - .../rules/UniqueDirectiveNames.js.flow | 9 - .../validation/rules/UniqueDirectiveNames.mjs | 8 - .../rules/UniqueDirectiveNamesRule.d.ts | 11 - .../rules/UniqueDirectiveNamesRule.js | 36 - .../rules/UniqueDirectiveNamesRule.js.flow | 46 - .../rules/UniqueDirectiveNamesRule.mjs | 29 - .../UniqueDirectivesPerLocationRule.d.ts | 12 - .../rules/UniqueDirectivesPerLocationRule.js | 82 - .../UniqueDirectivesPerLocationRule.js.flow | 90 - .../rules/UniqueDirectivesPerLocationRule.mjs | 72 - .../rules/UniqueEnumValueNames.d.ts | 8 - .../validation/rules/UniqueEnumValueNames.js | 13 - .../rules/UniqueEnumValueNames.js.flow | 9 - .../validation/rules/UniqueEnumValueNames.mjs | 8 - .../rules/UniqueEnumValueNamesRule.d.ts | 11 - .../rules/UniqueEnumValueNamesRule.js | 55 - .../rules/UniqueEnumValueNamesRule.js.flow | 69 - .../rules/UniqueEnumValueNamesRule.mjs | 47 - .../rules/UniqueFieldDefinitionNames.d.ts | 8 - .../rules/UniqueFieldDefinitionNames.js | 13 - .../rules/UniqueFieldDefinitionNames.js.flow | 9 - .../rules/UniqueFieldDefinitionNames.mjs | 8 - .../rules/UniqueFieldDefinitionNamesRule.d.ts | 11 - .../rules/UniqueFieldDefinitionNamesRule.js | 66 - .../UniqueFieldDefinitionNamesRule.js.flow | 87 - .../rules/UniqueFieldDefinitionNamesRule.mjs | 58 - .../rules/UniqueFragmentNamesRule.d.ts | 11 - .../rules/UniqueFragmentNamesRule.js | 33 - .../rules/UniqueFragmentNamesRule.js.flow | 34 - .../rules/UniqueFragmentNamesRule.mjs | 26 - .../rules/UniqueInputFieldNamesRule.d.ts | 12 - .../rules/UniqueInputFieldNamesRule.js | 39 - .../rules/UniqueInputFieldNamesRule.js.flow | 44 - .../rules/UniqueInputFieldNamesRule.mjs | 32 - .../rules/UniqueOperationNamesRule.d.ts | 11 - .../rules/UniqueOperationNamesRule.js | 35 - .../rules/UniqueOperationNamesRule.js.flow | 36 - .../rules/UniqueOperationNamesRule.mjs | 28 - .../rules/UniqueOperationTypes.d.ts | 8 - .../validation/rules/UniqueOperationTypes.js | 13 - .../rules/UniqueOperationTypes.js.flow | 9 - .../validation/rules/UniqueOperationTypes.mjs | 8 - .../rules/UniqueOperationTypesRule.d.ts | 11 - .../rules/UniqueOperationTypesRule.js | 50 - .../rules/UniqueOperationTypesRule.js.flow | 66 - .../rules/UniqueOperationTypesRule.mjs | 43 - .../validation/rules/UniqueTypeNames.d.ts | 8 - .../validation/rules/UniqueTypeNames.js | 13 - .../validation/rules/UniqueTypeNames.js.flow | 9 - .../validation/rules/UniqueTypeNames.mjs | 8 - .../validation/rules/UniqueTypeNamesRule.d.ts | 9 - .../validation/rules/UniqueTypeNamesRule.js | 43 - .../rules/UniqueTypeNamesRule.js.flow | 53 - .../validation/rules/UniqueTypeNamesRule.mjs | 36 - .../rules/UniqueVariableNamesRule.d.ts | 11 - .../rules/UniqueVariableNamesRule.js | 31 - .../rules/UniqueVariableNamesRule.js.flow | 36 - .../rules/UniqueVariableNamesRule.mjs | 24 - .../rules/ValuesOfCorrectTypeRule.d.ts | 10 - .../rules/ValuesOfCorrectTypeRule.js | 143 - .../rules/ValuesOfCorrectTypeRule.js.flow | 158 - .../rules/ValuesOfCorrectTypeRule.mjs | 126 - .../rules/VariablesAreInputTypesRule.d.ts | 12 - .../rules/VariablesAreInputTypesRule.js | 34 - .../rules/VariablesAreInputTypesRule.js.flow | 40 - .../rules/VariablesAreInputTypesRule.mjs | 24 - .../rules/VariablesInAllowedPositionRule.d.ts | 9 - .../rules/VariablesInAllowedPositionRule.js | 87 - .../VariablesInAllowedPositionRule.js.flow | 98 - .../rules/VariablesInAllowedPositionRule.mjs | 72 - .../rules/custom/NoDeprecatedCustomRule.d.ts | 14 - .../rules/custom/NoDeprecatedCustomRule.js | 79 - .../custom/NoDeprecatedCustomRule.js.flow | 94 - .../rules/custom/NoDeprecatedCustomRule.mjs | 68 - .../NoSchemaIntrospectionCustomRule.d.ts | 16 - .../custom/NoSchemaIntrospectionCustomRule.js | 34 - .../NoSchemaIntrospectionCustomRule.js.flow | 38 - .../NoSchemaIntrospectionCustomRule.mjs | 25 - .../graphql/validation/specifiedRules.d.ts | 14 - .../graphql/validation/specifiedRules.js | 115 - .../graphql/validation/specifiedRules.js.flow | 148 - .../graphql/validation/specifiedRules.mjs | 73 - .../graphql/validation/validate.d.ts | 63 - .../graphql/validation/validate.js | 128 - .../graphql/validation/validate.js.flow | 128 - .../graphql/validation/validate.mjs | 107 - gateway/node_modules/graphql/version.d.ts | 14 - gateway/node_modules/graphql/version.js | 28 - gateway/node_modules/graphql/version.js.flow | 20 - gateway/node_modules/graphql/version.mjs | 19 - gateway/node_modules/has-flag/index.d.ts | 39 - gateway/node_modules/has-flag/index.js | 8 - gateway/node_modules/has-flag/license | 9 - gateway/node_modules/has-flag/package.json | 46 - gateway/node_modules/has-flag/readme.md | 89 - gateway/node_modules/has-symbols/.eslintrc | 11 - .../has-symbols/.github/FUNDING.yml | 12 - .../has-symbols/.github/workflows/rebase.yml | 15 - gateway/node_modules/has-symbols/.travis.yml | 12 - gateway/node_modules/has-symbols/CHANGELOG.md | 34 - gateway/node_modules/has-symbols/LICENSE | 21 - gateway/node_modules/has-symbols/README.md | 45 - gateway/node_modules/has-symbols/index.js | 13 - gateway/node_modules/has-symbols/package.json | 89 - gateway/node_modules/has-symbols/shams.js | 42 - .../node_modules/has-symbols/test/index.js | 22 - .../has-symbols/test/shams/core-js.js | 28 - .../test/shams/get-own-property-symbols.js | 28 - .../node_modules/has-symbols/test/tests.js | 54 - gateway/node_modules/has-yarn/index.d.ts | 16 - gateway/node_modules/has-yarn/index.js | 9 - gateway/node_modules/has-yarn/license | 9 - gateway/node_modules/has-yarn/package.json | 39 - gateway/node_modules/has-yarn/readme.md | 60 - gateway/node_modules/has/LICENSE-MIT | 22 - gateway/node_modules/has/README.md | 18 - gateway/node_modules/has/package.json | 48 - gateway/node_modules/has/src/index.js | 5 - gateway/node_modules/has/test/index.js | 10 - .../node_modules/http-cache-semantics/LICENSE | 9 - .../http-cache-semantics/README.md | 203 - .../http-cache-semantics/index.js | 673 -- .../http-cache-semantics/package.json | 24 - gateway/node_modules/http-errors/HISTORY.md | 149 - gateway/node_modules/http-errors/LICENSE | 23 - gateway/node_modules/http-errors/README.md | 163 - gateway/node_modules/http-errors/index.js | 266 - .../http-errors/node_modules/inherits/LICENSE | 16 - .../node_modules/inherits/README.md | 42 - .../node_modules/inherits/inherits.js | 7 - .../node_modules/inherits/inherits_browser.js | 23 - .../node_modules/inherits/package.json | 29 - gateway/node_modules/http-errors/package.json | 49 - .../node_modules/http-proxy-agent/README.md | 74 - .../http-proxy-agent/dist/agent.d.ts | 32 - .../http-proxy-agent/dist/agent.js | 145 - .../http-proxy-agent/dist/agent.js.map | 1 - .../http-proxy-agent/dist/index.d.ts | 21 - .../http-proxy-agent/dist/index.js | 14 - .../http-proxy-agent/dist/index.js.map | 1 - .../node_modules/debug/LICENSE | 19 - .../node_modules/debug/README.md | 455 - .../node_modules/debug/package.json | 59 - .../node_modules/debug/src/browser.js | 259 - .../node_modules/debug/src/common.js | 264 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 257 - .../http-proxy-agent/package.json | 57 - .../node_modules/https-proxy-agent/README.md | 137 - .../https-proxy-agent/dist/agent.d.ts | 30 - .../https-proxy-agent/dist/agent.js | 180 - .../https-proxy-agent/dist/agent.js.map | 1 - .../https-proxy-agent/dist/index.d.ts | 23 - .../https-proxy-agent/dist/index.js | 14 - .../https-proxy-agent/dist/index.js.map | 1 - .../dist/parse-proxy-response.d.ts | 7 - .../dist/parse-proxy-response.js | 66 - .../dist/parse-proxy-response.js.map | 1 - .../node_modules/debug/LICENSE | 19 - .../node_modules/debug/README.md | 455 - .../node_modules/debug/package.json | 59 - .../node_modules/debug/src/browser.js | 259 - .../node_modules/debug/src/common.js | 264 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 257 - .../https-proxy-agent/package.json | 56 - gateway/node_modules/humanize-ms/History.md | 25 - gateway/node_modules/humanize-ms/LICENSE | 17 - gateway/node_modules/humanize-ms/README.md | 40 - gateway/node_modules/humanize-ms/index.js | 24 - gateway/node_modules/humanize-ms/package.json | 37 - gateway/node_modules/iconv-lite/Changelog.md | 162 - gateway/node_modules/iconv-lite/LICENSE | 21 - gateway/node_modules/iconv-lite/README.md | 156 - .../iconv-lite/encodings/dbcs-codec.js | 555 -- .../iconv-lite/encodings/dbcs-data.js | 176 - .../iconv-lite/encodings/index.js | 22 - .../iconv-lite/encodings/internal.js | 188 - .../iconv-lite/encodings/sbcs-codec.js | 72 - .../encodings/sbcs-data-generated.js | 451 - .../iconv-lite/encodings/sbcs-data.js | 174 - .../encodings/tables/big5-added.json | 122 - .../iconv-lite/encodings/tables/cp936.json | 264 - .../iconv-lite/encodings/tables/cp949.json | 273 - .../iconv-lite/encodings/tables/cp950.json | 177 - .../iconv-lite/encodings/tables/eucjp.json | 182 - .../encodings/tables/gb18030-ranges.json | 1 - .../encodings/tables/gbk-added.json | 55 - .../iconv-lite/encodings/tables/shiftjis.json | 125 - .../iconv-lite/encodings/utf16.js | 177 - .../node_modules/iconv-lite/encodings/utf7.js | 290 - .../iconv-lite/lib/bom-handling.js | 52 - .../iconv-lite/lib/extend-node.js | 217 - .../node_modules/iconv-lite/lib/index.d.ts | 24 - gateway/node_modules/iconv-lite/lib/index.js | 153 - .../node_modules/iconv-lite/lib/streams.js | 121 - gateway/node_modules/iconv-lite/package.json | 46 - .../node_modules/ignore-by-default/LICENSE | 14 - .../node_modules/ignore-by-default/README.md | 26 - .../node_modules/ignore-by-default/index.js | 12 - .../ignore-by-default/package.json | 34 - gateway/node_modules/import-lazy/index.js | 53 - gateway/node_modules/import-lazy/license | 21 - gateway/node_modules/import-lazy/package.json | 44 - gateway/node_modules/import-lazy/readme.md | 64 - gateway/node_modules/imurmurhash/README.md | 122 - .../node_modules/imurmurhash/imurmurhash.js | 138 - .../imurmurhash/imurmurhash.min.js | 12 - gateway/node_modules/imurmurhash/package.json | 40 - gateway/node_modules/indent-string/index.d.ts | 42 - gateway/node_modules/indent-string/index.js | 35 - gateway/node_modules/indent-string/license | 9 - .../node_modules/indent-string/package.json | 37 - gateway/node_modules/indent-string/readme.md | 70 - gateway/node_modules/infer-owner/LICENSE | 15 - gateway/node_modules/infer-owner/README.md | 41 - gateway/node_modules/infer-owner/index.js | 71 - gateway/node_modules/infer-owner/package.json | 26 - gateway/node_modules/inflight/LICENSE | 15 - gateway/node_modules/inflight/README.md | 37 - gateway/node_modules/inflight/inflight.js | 54 - gateway/node_modules/inflight/package.json | 29 - gateway/node_modules/inherits/LICENSE | 16 - gateway/node_modules/inherits/README.md | 42 - gateway/node_modules/inherits/inherits.js | 9 - .../node_modules/inherits/inherits_browser.js | 27 - gateway/node_modules/inherits/package.json | 29 - gateway/node_modules/ini/LICENSE | 15 - gateway/node_modules/ini/README.md | 102 - gateway/node_modules/ini/ini.js | 194 - gateway/node_modules/ini/package.json | 30 - gateway/node_modules/ip/.jscsrc | 46 - gateway/node_modules/ip/.jshintrc | 89 - gateway/node_modules/ip/.npmignore | 2 - gateway/node_modules/ip/.travis.yml | 15 - gateway/node_modules/ip/README.md | 90 - gateway/node_modules/ip/lib/ip.js | 416 - gateway/node_modules/ip/package.json | 21 - gateway/node_modules/ip/test/api-test.js | 407 - gateway/node_modules/ipaddr.js/LICENSE | 19 - gateway/node_modules/ipaddr.js/README.md | 233 - gateway/node_modules/ipaddr.js/ipaddr.min.js | 1 - gateway/node_modules/ipaddr.js/lib/ipaddr.js | 673 -- .../node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 - gateway/node_modules/ipaddr.js/package.json | 35 - .../node_modules/is-binary-path/index.d.ts | 17 - gateway/node_modules/is-binary-path/index.js | 7 - gateway/node_modules/is-binary-path/license | 9 - .../node_modules/is-binary-path/package.json | 40 - gateway/node_modules/is-binary-path/readme.md | 34 - .../node_modules/is-callable/.editorconfig | 21 - gateway/node_modules/is-callable/.eslintrc | 21 - .../is-callable/.github/FUNDING.yml | 12 - .../is-callable/.github/main.workflow | 14 - .../is-callable/.github/workflows/rebase.yml | 15 - .../node_modules/is-callable/.istanbul.yml | 47 - gateway/node_modules/is-callable/.travis.yml | 12 - gateway/node_modules/is-callable/CHANGELOG.md | 86 - gateway/node_modules/is-callable/LICENSE | 22 - gateway/node_modules/is-callable/README.md | 68 - gateway/node_modules/is-callable/index.js | 70 - gateway/node_modules/is-callable/package.json | 100 - .../node_modules/is-callable/test/index.js | 190 - gateway/node_modules/is-ci/CHANGELOG.md | 14 - gateway/node_modules/is-ci/LICENSE | 21 - gateway/node_modules/is-ci/README.md | 50 - gateway/node_modules/is-ci/bin.js | 4 - gateway/node_modules/is-ci/index.js | 3 - gateway/node_modules/is-ci/package.json | 38 - gateway/node_modules/is-date-object/.eslintrc | 9 - .../is-date-object/.github/FUNDING.yml | 12 - .../.github/workflows/rebase.yml | 15 - .../node_modules/is-date-object/.jscs.json | 176 - .../node_modules/is-date-object/.travis.yml | 12 - .../node_modules/is-date-object/CHANGELOG.md | 76 - gateway/node_modules/is-date-object/LICENSE | 22 - gateway/node_modules/is-date-object/README.md | 53 - gateway/node_modules/is-date-object/index.js | 22 - .../node_modules/is-date-object/package.json | 73 - .../node_modules/is-date-object/test/index.js | 36 - gateway/node_modules/is-extglob/LICENSE | 21 - gateway/node_modules/is-extglob/README.md | 107 - gateway/node_modules/is-extglob/index.js | 20 - gateway/node_modules/is-extglob/package.json | 69 - .../is-fullwidth-code-point/index.d.ts | 17 - .../is-fullwidth-code-point/index.js | 50 - .../is-fullwidth-code-point/license | 9 - .../is-fullwidth-code-point/package.json | 42 - .../is-fullwidth-code-point/readme.md | 39 - gateway/node_modules/is-glob/LICENSE | 21 - gateway/node_modules/is-glob/README.md | 206 - gateway/node_modules/is-glob/index.js | 48 - gateway/node_modules/is-glob/package.json | 81 - .../is-installed-globally/index.d.ts | 19 - .../is-installed-globally/index.js | 15 - .../is-installed-globally/license | 9 - .../is-installed-globally/package.json | 54 - .../is-installed-globally/readme.md | 34 - gateway/node_modules/is-lambda/.npmignore | 1 - gateway/node_modules/is-lambda/.travis.yml | 8 - gateway/node_modules/is-lambda/LICENSE | 21 - gateway/node_modules/is-lambda/README.md | 27 - gateway/node_modules/is-lambda/index.js | 6 - gateway/node_modules/is-lambda/package.json | 35 - gateway/node_modules/is-lambda/test.js | 16 - .../node_modules/is-negative-zero/.eslintrc | 10 - .../node_modules/is-negative-zero/.jscs.json | 104 - .../node_modules/is-negative-zero/.npmignore | 15 - .../node_modules/is-negative-zero/.travis.yml | 46 - gateway/node_modules/is-negative-zero/LICENSE | 20 - .../node_modules/is-negative-zero/README.md | 56 - .../node_modules/is-negative-zero/index.js | 6 - .../is-negative-zero/package.json | 65 - gateway/node_modules/is-negative-zero/test.js | 28 - gateway/node_modules/is-npm/index.d.ts | 41 - gateway/node_modules/is-npm/index.js | 9 - gateway/node_modules/is-npm/license | 9 - gateway/node_modules/is-npm/package.json | 37 - gateway/node_modules/is-npm/readme.md | 59 - gateway/node_modules/is-number/LICENSE | 21 - gateway/node_modules/is-number/README.md | 187 - gateway/node_modules/is-number/index.js | 18 - gateway/node_modules/is-number/package.json | 82 - gateway/node_modules/is-obj/index.d.ts | 22 - gateway/node_modules/is-obj/index.js | 6 - gateway/node_modules/is-obj/license | 9 - gateway/node_modules/is-obj/package.json | 34 - gateway/node_modules/is-obj/readme.md | 39 - .../node_modules/is-path-inside/index.d.ts | 27 - gateway/node_modules/is-path-inside/index.js | 21 - gateway/node_modules/is-path-inside/license | 9 - .../node_modules/is-path-inside/package.json | 36 - gateway/node_modules/is-path-inside/readme.md | 63 - gateway/node_modules/is-regex/.editorconfig | 20 - gateway/node_modules/is-regex/.eslintrc | 19 - .../is-regex/.github/workflows/rebase.yml | 15 - gateway/node_modules/is-regex/.travis.yml | 12 - gateway/node_modules/is-regex/CHANGELOG.md | 163 - gateway/node_modules/is-regex/LICENSE | 20 - gateway/node_modules/is-regex/README.md | 54 - gateway/node_modules/is-regex/index.js | 58 - gateway/node_modules/is-regex/package.json | 83 - gateway/node_modules/is-regex/test/index.js | 105 - gateway/node_modules/is-symbol/.editorconfig | 13 - gateway/node_modules/is-symbol/.eslintrc | 14 - .../is-symbol/.github/FUNDING.yml | 12 - .../is-symbol/.github/workflows/rebase.yml | 15 - gateway/node_modules/is-symbol/.nvmrc | 1 - gateway/node_modules/is-symbol/.travis.yml | 12 - gateway/node_modules/is-symbol/CHANGELOG.md | 86 - gateway/node_modules/is-symbol/LICENSE | 22 - gateway/node_modules/is-symbol/Makefile | 61 - gateway/node_modules/is-symbol/README.md | 44 - gateway/node_modules/is-symbol/index.js | 35 - gateway/node_modules/is-symbol/package.json | 76 - gateway/node_modules/is-symbol/test/index.js | 92 - gateway/node_modules/is-typedarray/LICENSE.md | 18 - gateway/node_modules/is-typedarray/README.md | 16 - gateway/node_modules/is-typedarray/index.js | 41 - .../node_modules/is-typedarray/package.json | 30 - gateway/node_modules/is-typedarray/test.js | 34 - .../node_modules/is-yarn-global/.travis.yml | 4 - gateway/node_modules/is-yarn-global/LICENSE | 21 - gateway/node_modules/is-yarn-global/README.md | 28 - gateway/node_modules/is-yarn-global/index.js | 12 - .../node_modules/is-yarn-global/package.json | 15 - gateway/node_modules/iterall/LICENSE | 18 - gateway/node_modules/iterall/README.md | 838 -- gateway/node_modules/iterall/index.d.ts | 99 - gateway/node_modules/iterall/index.js | 195 - gateway/node_modules/iterall/index.js.flow | 721 -- gateway/node_modules/iterall/index.mjs | 721 -- gateway/node_modules/iterall/package.json | 20 - gateway/node_modules/json-buffer/.npmignore | 3 - gateway/node_modules/json-buffer/.travis.yml | 3 - gateway/node_modules/json-buffer/LICENSE | 22 - gateway/node_modules/json-buffer/README.md | 24 - gateway/node_modules/json-buffer/index.js | 58 - gateway/node_modules/json-buffer/package.json | 34 - .../node_modules/json-buffer/test/index.js | 63 - gateway/node_modules/keyv/LICENSE | 21 - gateway/node_modules/keyv/README.md | 276 - gateway/node_modules/keyv/package.json | 49 - gateway/node_modules/keyv/src/index.js | 103 - .../node_modules/latest-version/index.d.ts | 42 - gateway/node_modules/latest-version/index.js | 11 - gateway/node_modules/latest-version/license | 9 - .../node_modules/latest-version/package.json | 42 - gateway/node_modules/latest-version/readme.md | 42 - gateway/node_modules/lodash.sortby/LICENSE | 47 - gateway/node_modules/lodash.sortby/README.md | 18 - gateway/node_modules/lodash.sortby/index.js | 2630 ----- .../node_modules/lodash.sortby/package.json | 17 - gateway/node_modules/lodash.xorby/LICENSE | 47 - gateway/node_modules/lodash.xorby/README.md | 18 - gateway/node_modules/lodash.xorby/index.js | 2630 ----- .../node_modules/lodash.xorby/package.json | 17 - gateway/node_modules/loglevel/.editorconfig | 21 - .../node_modules/loglevel/.github/FUNDING.yml | 1 - gateway/node_modules/loglevel/.jshintrc | 14 - gateway/node_modules/loglevel/.travis.yml | 10 - gateway/node_modules/loglevel/CONTRIBUTING.md | 65 - gateway/node_modules/loglevel/Gruntfile.js | 230 - gateway/node_modules/loglevel/LICENSE-MIT | 22 - gateway/node_modules/loglevel/README.md | 352 - gateway/node_modules/loglevel/_config.yml | 1 - gateway/node_modules/loglevel/bower.json | 11 - .../node_modules/loglevel/dist/loglevel.js | 269 - .../loglevel/dist/loglevel.min.js | 2 - gateway/node_modules/loglevel/index.d.ts | 188 - gateway/node_modules/loglevel/lib/.jshintrc | 21 - gateway/node_modules/loglevel/lib/loglevel.js | 274 - gateway/node_modules/loglevel/package.json | 64 - gateway/node_modules/loglevel/test/.jshintrc | 34 - .../loglevel/test/console-fallback-test.js | 98 - .../node_modules/loglevel/test/cookie-test.js | 122 - .../loglevel/test/default-level-test.js | 60 - .../loglevel/test/get-current-level-test.js | 48 - .../global-integration-with-new-context.js | 29 - .../loglevel/test/global-integration.js | 25 - .../loglevel/test/integration-smoke-test.js | 71 - .../loglevel/test/level-setting-test.js | 281 - .../loglevel/test/local-storage-test.js | 201 - .../loglevel/test/manual-test.html | 8 - .../loglevel/test/method-factory-test.js | 42 - .../loglevel/test/multiple-logger-test.js | 139 - .../loglevel/test/node-integration.js | 44 - .../loglevel/test/test-context-using-apply.js | 6 - .../loglevel/test/test-helpers.js | 168 - .../loglevel/test/test-qunit.html | 19 - .../node_modules/loglevel/test/test-qunit.js | 51 - .../node_modules/loglevel/test/type-test.ts | 8 - .../loglevel/test/vendor/json2.js | 486 - gateway/node_modules/long/LICENSE | 202 - gateway/node_modules/long/README.md | 246 - gateway/node_modules/long/dist/long.js | 2 - gateway/node_modules/long/dist/long.js.map | 1 - gateway/node_modules/long/index.js | 1 - gateway/node_modules/long/package.json | 34 - gateway/node_modules/long/src/long.js | 1323 --- gateway/node_modules/lowercase-keys/index.js | 11 - gateway/node_modules/lowercase-keys/license | 21 - .../node_modules/lowercase-keys/package.json | 35 - gateway/node_modules/lowercase-keys/readme.md | 33 - gateway/node_modules/lru-cache/LICENSE | 15 - gateway/node_modules/lru-cache/README.md | 166 - gateway/node_modules/lru-cache/index.js | 334 - .../lru-cache/node_modules/yallist/LICENSE | 15 - .../lru-cache/node_modules/yallist/README.md | 204 - .../node_modules/yallist/iterator.js | 8 - .../node_modules/yallist/package.json | 29 - .../lru-cache/node_modules/yallist/yallist.js | 426 - gateway/node_modules/lru-cache/package.json | 32 - gateway/node_modules/make-dir/index.d.ts | 66 - gateway/node_modules/make-dir/index.js | 156 - gateway/node_modules/make-dir/license | 9 - .../make-dir/node_modules/.bin/semver | 1 - gateway/node_modules/make-dir/package.json | 59 - gateway/node_modules/make-dir/readme.md | 125 - .../make-fetch-happen/CHANGELOG.md | 654 -- .../node_modules/make-fetch-happen/LICENSE | 16 - .../node_modules/make-fetch-happen/README.md | 404 - .../node_modules/make-fetch-happen/agent.js | 213 - .../node_modules/make-fetch-happen/cache.js | 235 - .../node_modules/make-fetch-happen/index.js | 464 - .../node_modules/lru-cache/LICENSE | 15 - .../node_modules/lru-cache/README.md | 166 - .../node_modules/lru-cache/index.js | 334 - .../node_modules/lru-cache/package.json | 34 - .../make-fetch-happen/package.json | 67 - .../utils/configure-options.js | 33 - .../utils/initialize-cache.js | 26 - .../utils/is-header-conditional.js | 18 - .../utils/iterable-to-object.js | 9 - .../make-fetch-happen/utils/make-policy.js | 19 - .../node_modules/make-fetch-happen/warning.js | 24 - gateway/node_modules/media-typer/HISTORY.md | 22 - gateway/node_modules/media-typer/LICENSE | 22 - gateway/node_modules/media-typer/README.md | 81 - gateway/node_modules/media-typer/index.js | 270 - gateway/node_modules/media-typer/package.json | 26 - .../node_modules/merge-descriptors/HISTORY.md | 21 - .../node_modules/merge-descriptors/LICENSE | 23 - .../node_modules/merge-descriptors/README.md | 48 - .../node_modules/merge-descriptors/index.js | 60 - .../merge-descriptors/package.json | 32 - gateway/node_modules/methods/HISTORY.md | 29 - gateway/node_modules/methods/LICENSE | 24 - gateway/node_modules/methods/README.md | 51 - gateway/node_modules/methods/index.js | 69 - gateway/node_modules/methods/package.json | 36 - gateway/node_modules/mime-db/HISTORY.md | 446 - gateway/node_modules/mime-db/LICENSE | 22 - gateway/node_modules/mime-db/README.md | 102 - gateway/node_modules/mime-db/db.json | 8176 --------------- gateway/node_modules/mime-db/index.js | 11 - gateway/node_modules/mime-db/package.json | 59 - gateway/node_modules/mime-types/HISTORY.md | 333 - gateway/node_modules/mime-types/LICENSE | 23 - gateway/node_modules/mime-types/README.md | 123 - gateway/node_modules/mime-types/index.js | 188 - gateway/node_modules/mime-types/package.json | 44 - gateway/node_modules/mime/.npmignore | 0 gateway/node_modules/mime/CHANGELOG.md | 164 - gateway/node_modules/mime/LICENSE | 21 - gateway/node_modules/mime/README.md | 90 - gateway/node_modules/mime/cli.js | 8 - gateway/node_modules/mime/mime.js | 108 - gateway/node_modules/mime/package.json | 44 - gateway/node_modules/mime/src/build.js | 53 - gateway/node_modules/mime/src/test.js | 60 - gateway/node_modules/mime/types.json | 1 - gateway/node_modules/mimic-response/index.js | 32 - gateway/node_modules/mimic-response/license | 9 - .../node_modules/mimic-response/package.json | 37 - gateway/node_modules/mimic-response/readme.md | 54 - gateway/node_modules/minimatch/LICENSE | 15 - gateway/node_modules/minimatch/README.md | 209 - gateway/node_modules/minimatch/minimatch.js | 923 -- gateway/node_modules/minimatch/package.json | 30 - gateway/node_modules/minimist/.travis.yml | 8 - gateway/node_modules/minimist/LICENSE | 18 - .../node_modules/minimist/example/parse.js | 2 - gateway/node_modules/minimist/index.js | 245 - gateway/node_modules/minimist/package.json | 45 - gateway/node_modules/minimist/readme.markdown | 95 - .../node_modules/minimist/test/all_bool.js | 32 - gateway/node_modules/minimist/test/bool.js | 178 - gateway/node_modules/minimist/test/dash.js | 31 - .../minimist/test/default_bool.js | 35 - gateway/node_modules/minimist/test/dotted.js | 22 - .../node_modules/minimist/test/kv_short.js | 16 - gateway/node_modules/minimist/test/long.js | 31 - gateway/node_modules/minimist/test/num.js | 36 - gateway/node_modules/minimist/test/parse.js | 197 - .../minimist/test/parse_modified.js | 9 - gateway/node_modules/minimist/test/proto.js | 44 - gateway/node_modules/minimist/test/short.js | 67 - .../node_modules/minimist/test/stop_early.js | 15 - gateway/node_modules/minimist/test/unknown.js | 102 - .../node_modules/minimist/test/whitespace.js | 8 - gateway/node_modules/minipass-collect/LICENSE | 15 - .../node_modules/minipass-collect/README.md | 48 - .../node_modules/minipass-collect/index.js | 71 - .../minipass-collect/package.json | 29 - gateway/node_modules/minipass-fetch/LICENSE | 28 - gateway/node_modules/minipass-fetch/README.md | 29 - gateway/node_modules/minipass-fetch/index.js | 1 - .../minipass-fetch/lib/abort-error.js | 17 - .../node_modules/minipass-fetch/lib/blob.js | 97 - .../node_modules/minipass-fetch/lib/body.js | 334 - .../minipass-fetch/lib/fetch-error.js | 31 - .../minipass-fetch/lib/headers.js | 250 - .../node_modules/minipass-fetch/lib/index.js | 320 - .../minipass-fetch/lib/request.js | 258 - .../minipass-fetch/lib/response.js | 89 - .../node_modules/minipass-fetch/package.json | 54 - gateway/node_modules/minipass-flush/LICENSE | 15 - gateway/node_modules/minipass-flush/README.md | 47 - gateway/node_modules/minipass-flush/index.js | 39 - .../node_modules/minipass-flush/package.json | 39 - .../node_modules/minipass-pipeline/LICENSE | 15 - .../node_modules/minipass-pipeline/README.md | 69 - .../node_modules/minipass-pipeline/index.js | 128 - .../minipass-pipeline/package.json | 29 - .../node_modules/minipass-sized/.gitignore | 22 - gateway/node_modules/minipass-sized/LICENSE | 15 - gateway/node_modules/minipass-sized/README.md | 28 - gateway/node_modules/minipass-sized/index.js | 67 - .../minipass-sized/package-lock.json | 3464 ------- .../node_modules/minipass-sized/package.json | 39 - .../node_modules/minipass-sized/test/basic.js | 83 - gateway/node_modules/minipass/LICENSE | 15 - gateway/node_modules/minipass/README.md | 613 -- gateway/node_modules/minipass/index.js | 545 - gateway/node_modules/minipass/package.json | 39 - gateway/node_modules/minizlib/LICENSE | 26 - gateway/node_modules/minizlib/README.md | 60 - gateway/node_modules/minizlib/constants.js | 115 - gateway/node_modules/minizlib/index.js | 348 - gateway/node_modules/minizlib/package.json | 42 - gateway/node_modules/mkdirp/CHANGELOG.md | 15 - gateway/node_modules/mkdirp/LICENSE | 21 - gateway/node_modules/mkdirp/bin/cmd.js | 68 - gateway/node_modules/mkdirp/index.js | 31 - gateway/node_modules/mkdirp/lib/find-made.js | 29 - .../node_modules/mkdirp/lib/mkdirp-manual.js | 64 - .../node_modules/mkdirp/lib/mkdirp-native.js | 39 - gateway/node_modules/mkdirp/lib/opts-arg.js | 23 - gateway/node_modules/mkdirp/lib/path-arg.js | 29 - gateway/node_modules/mkdirp/lib/use-native.js | 10 - gateway/node_modules/mkdirp/package.json | 44 - gateway/node_modules/mkdirp/readme.markdown | 266 - gateway/node_modules/ms/index.js | 162 - gateway/node_modules/ms/license.md | 21 - gateway/node_modules/ms/package.json | 37 - gateway/node_modules/ms/readme.md | 60 - gateway/node_modules/negotiator/HISTORY.md | 103 - gateway/node_modules/negotiator/LICENSE | 24 - gateway/node_modules/negotiator/README.md | 203 - gateway/node_modules/negotiator/index.js | 124 - .../node_modules/negotiator/lib/charset.js | 169 - .../node_modules/negotiator/lib/encoding.js | 184 - .../node_modules/negotiator/lib/language.js | 179 - .../node_modules/negotiator/lib/mediaType.js | 294 - gateway/node_modules/negotiator/package.json | 42 - gateway/node_modules/node-fetch/CHANGELOG.md | 272 - gateway/node_modules/node-fetch/LICENSE.md | 22 - gateway/node_modules/node-fetch/README.md | 590 -- gateway/node_modules/node-fetch/browser.js | 25 - .../node_modules/node-fetch/lib/index.es.js | 1640 --- gateway/node_modules/node-fetch/lib/index.js | 1649 ---- gateway/node_modules/node-fetch/lib/index.mjs | 1638 --- gateway/node_modules/node-fetch/package.json | 66 - gateway/node_modules/nodemon/.eslintrc.json | 19 - gateway/node_modules/nodemon/.jshintrc | 16 - gateway/node_modules/nodemon/.travis.yml | 17 - gateway/node_modules/nodemon/LICENSE | 21 - gateway/node_modules/nodemon/README.md | 379 - gateway/node_modules/nodemon/bin/nodemon.js | 16 - .../node_modules/nodemon/bin/postinstall.js | 29 - .../node_modules/nodemon/commitlint.config.js | 7 - .../node_modules/nodemon/doc/cli/authors.txt | 8 - .../node_modules/nodemon/doc/cli/config.txt | 44 - gateway/node_modules/nodemon/doc/cli/help.txt | 29 - gateway/node_modules/nodemon/doc/cli/logo.txt | 20 - .../node_modules/nodemon/doc/cli/options.txt | 36 - .../node_modules/nodemon/doc/cli/topics.txt | 8 - .../node_modules/nodemon/doc/cli/usage.txt | 3 - .../node_modules/nodemon/doc/cli/whoami.txt | 9 - gateway/node_modules/nodemon/lib/cli/index.js | 49 - gateway/node_modules/nodemon/lib/cli/parse.js | 230 - .../nodemon/lib/config/command.js | 43 - .../nodemon/lib/config/defaults.js | 28 - .../node_modules/nodemon/lib/config/exec.js | 225 - .../node_modules/nodemon/lib/config/index.js | 93 - .../node_modules/nodemon/lib/config/load.js | 256 - .../node_modules/nodemon/lib/help/index.js | 27 - gateway/node_modules/nodemon/lib/index.js | 1 - .../node_modules/nodemon/lib/monitor/index.js | 4 - .../node_modules/nodemon/lib/monitor/match.js | 276 - .../node_modules/nodemon/lib/monitor/run.js | 474 - .../nodemon/lib/monitor/signals.js | 34 - .../node_modules/nodemon/lib/monitor/watch.js | 239 - gateway/node_modules/nodemon/lib/nodemon.js | 309 - gateway/node_modules/nodemon/lib/rules/add.js | 89 - .../node_modules/nodemon/lib/rules/index.js | 53 - .../node_modules/nodemon/lib/rules/parse.js | 43 - gateway/node_modules/nodemon/lib/spawn.js | 55 - gateway/node_modules/nodemon/lib/utils/bus.js | 44 - .../node_modules/nodemon/lib/utils/clone.js | 40 - .../node_modules/nodemon/lib/utils/colour.js | 26 - .../node_modules/nodemon/lib/utils/index.js | 102 - gateway/node_modules/nodemon/lib/utils/log.js | 82 - .../node_modules/nodemon/lib/utils/merge.js | 47 - gateway/node_modules/nodemon/lib/version.js | 100 - .../nodemon/node_modules/.bin/nodetouch | 1 - .../nodemon/node_modules/.bin/semver | 1 - .../nodemon/node_modules/debug/CHANGELOG.md | 395 - .../nodemon/node_modules/debug/LICENSE | 19 - .../nodemon/node_modules/debug/README.md | 437 - .../nodemon/node_modules/debug/dist/debug.js | 886 -- .../nodemon/node_modules/debug/node.js | 1 - .../nodemon/node_modules/debug/package.json | 51 - .../nodemon/node_modules/debug/src/browser.js | 180 - .../nodemon/node_modules/debug/src/common.js | 249 - .../nodemon/node_modules/debug/src/index.js | 12 - .../nodemon/node_modules/debug/src/node.js | 174 - .../nodemon/node_modules/has-flag/index.js | 8 - .../nodemon/node_modules/has-flag/license | 9 - .../node_modules/has-flag/package.json | 44 - .../nodemon/node_modules/has-flag/readme.md | 70 - .../nodemon/node_modules/semver/CHANGELOG.md | 39 - .../nodemon/node_modules/semver/LICENSE | 15 - .../nodemon/node_modules/semver/README.md | 412 - .../nodemon/node_modules/semver/bin/semver | 160 - .../nodemon/node_modules/semver/package.json | 28 - .../nodemon/node_modules/semver/range.bnf | 16 - .../nodemon/node_modules/semver/semver.js | 1483 --- .../node_modules/supports-color/browser.js | 5 - .../node_modules/supports-color/index.js | 131 - .../node_modules/supports-color/license | 9 - .../node_modules/supports-color/package.json | 53 - .../node_modules/supports-color/readme.md | 66 - gateway/node_modules/nodemon/package.json | 1 - gateway/node_modules/nopt/.gitignore | 0 gateway/node_modules/nopt/LICENSE | 23 - gateway/node_modules/nopt/README.md | 208 - gateway/node_modules/nopt/bin/nopt.js | 44 - .../node_modules/nopt/examples/my-program.js | 30 - gateway/node_modules/nopt/lib/nopt.js | 552 -- gateway/node_modules/nopt/package.json | 12 - gateway/node_modules/normalize-path/LICENSE | 21 - gateway/node_modules/normalize-path/README.md | 127 - gateway/node_modules/normalize-path/index.js | 35 - .../node_modules/normalize-path/package.json | 77 - gateway/node_modules/normalize-url/index.d.ts | 216 - gateway/node_modules/normalize-url/index.js | 221 - gateway/node_modules/normalize-url/license | 9 - .../node_modules/normalize-url/package.json | 44 - gateway/node_modules/normalize-url/readme.md | 232 - gateway/node_modules/object-assign/index.js | 90 - gateway/node_modules/object-assign/license | 21 - .../node_modules/object-assign/package.json | 42 - gateway/node_modules/object-assign/readme.md | 61 - .../node_modules/object-inspect/.eslintignore | 1 - gateway/node_modules/object-inspect/.eslintrc | 64 - .../.github/workflows/rebase.yml | 15 - gateway/node_modules/object-inspect/.nycrc | 17 - .../node_modules/object-inspect/.travis.yml | 53 - gateway/node_modules/object-inspect/LICENSE | 21 - .../object-inspect/example/all.js | 23 - .../object-inspect/example/circular.js | 6 - .../node_modules/object-inspect/example/fn.js | 5 - .../object-inspect/example/inspect.js | 10 - gateway/node_modules/object-inspect/index.js | 383 - .../node_modules/object-inspect/package.json | 73 - .../object-inspect/readme.markdown | 62 - .../object-inspect/test-core-js.js | 26 - .../object-inspect/test/bigint.js | 31 - .../object-inspect/test/browser/dom.js | 15 - .../object-inspect/test/circular.js | 9 - .../node_modules/object-inspect/test/deep.js | 9 - .../object-inspect/test/element.js | 53 - .../node_modules/object-inspect/test/err.js | 31 - .../node_modules/object-inspect/test/fn.js | 28 - .../node_modules/object-inspect/test/has.js | 34 - .../node_modules/object-inspect/test/holes.js | 15 - .../object-inspect/test/indent-option.js | 271 - .../object-inspect/test/inspect.js | 35 - .../object-inspect/test/lowbyte.js | 12 - .../object-inspect/test/number.js | 12 - .../object-inspect/test/quoteStyle.js | 17 - .../node_modules/object-inspect/test/undef.js | 12 - .../object-inspect/test/values.js | 171 - .../object-inspect/util.inspect.js | 1 - .../node_modules/object-keys/.editorconfig | 13 - gateway/node_modules/object-keys/.eslintrc | 17 - gateway/node_modules/object-keys/.travis.yml | 277 - gateway/node_modules/object-keys/CHANGELOG.md | 232 - gateway/node_modules/object-keys/LICENSE | 21 - gateway/node_modules/object-keys/README.md | 76 - .../object-keys/implementation.js | 122 - gateway/node_modules/object-keys/index.js | 32 - .../node_modules/object-keys/isArguments.js | 17 - gateway/node_modules/object-keys/package.json | 88 - .../node_modules/object-keys/test/index.js | 5 - gateway/node_modules/object-path/.travis.yml | 7 - gateway/node_modules/object-path/LICENSE | 21 - gateway/node_modules/object-path/README.md | 183 - gateway/node_modules/object-path/benchmark.js | 52 - gateway/node_modules/object-path/bower.json | 16 - .../node_modules/object-path/component.json | 22 - gateway/node_modules/object-path/index.js | 303 - gateway/node_modules/object-path/package.json | 48 - gateway/node_modules/object-path/test.js | 989 -- .../node_modules/object.assign/.editorconfig | 20 - .../node_modules/object.assign/.eslintignore | 1 - gateway/node_modules/object.assign/.eslintrc | 26 - .../object.assign/.github/FUNDING.yml | 12 - .../.github/workflows/rebase.yml | 15 - .../.github/workflows/require-allow-edits.yml | 14 - gateway/node_modules/object.assign/.nycrc | 14 - .../node_modules/object.assign/CHANGELOG.md | 201 - gateway/node_modules/object.assign/LICENSE | 21 - gateway/node_modules/object.assign/README.md | 135 - gateway/node_modules/object.assign/auto.js | 3 - .../object.assign/dist/browser.js | 865 -- .../node_modules/object.assign/hasSymbols.js | 43 - .../object.assign/implementation.js | 42 - gateway/node_modules/object.assign/index.js | 22 - .../node_modules/object.assign/package.json | 83 - .../node_modules/object.assign/polyfill.js | 55 - gateway/node_modules/object.assign/shim.js | 14 - .../node_modules/object.assign/test/index.js | 17 - .../node_modules/object.assign/test/native.js | 49 - .../object.assign/test/ses-compat.js | 12 - .../object.assign/test/shimmed.js | 52 - .../node_modules/object.assign/test/tests.js | 237 - .../.editorconfig | 13 - .../.eslintrc | 20 - .../.github/workflows/rebase.yml | 15 - .../.travis.yml | 12 - .../CHANGELOG.md | 67 - .../object.getownpropertydescriptors/LICENSE | 22 - .../object.getownpropertydescriptors/Makefile | 61 - .../README.md | 95 - .../object.getownpropertydescriptors/auto.js | 3 - .../implementation.js | 38 - .../object.getownpropertydescriptors/index.js | 15 - .../package.json | 77 - .../polyfill.js | 7 - .../object.getownpropertydescriptors/shim.js | 14 - .../test/index.js | 17 - .../test/shimmed.js | 35 - .../test/tests.js | 122 - gateway/node_modules/on-finished/HISTORY.md | 88 - gateway/node_modules/on-finished/LICENSE | 23 - gateway/node_modules/on-finished/README.md | 154 - gateway/node_modules/on-finished/index.js | 196 - gateway/node_modules/on-finished/package.json | 31 - gateway/node_modules/once/LICENSE | 15 - gateway/node_modules/once/README.md | 79 - gateway/node_modules/once/once.js | 42 - gateway/node_modules/once/package.json | 33 - gateway/node_modules/p-cancelable/index.d.ts | 168 - gateway/node_modules/p-cancelable/index.js | 103 - gateway/node_modules/p-cancelable/license | 9 - .../node_modules/p-cancelable/package.json | 49 - gateway/node_modules/p-cancelable/readme.md | 155 - gateway/node_modules/p-map/index.d.ts | 67 - gateway/node_modules/p-map/index.js | 81 - gateway/node_modules/p-map/license | 9 - gateway/node_modules/p-map/package.json | 53 - gateway/node_modules/p-map/readme.md | 89 - gateway/node_modules/package-json/index.d.ts | 199 - gateway/node_modules/package-json/index.js | 115 - gateway/node_modules/package-json/license | 9 - .../package-json/node_modules/.bin/semver | 1 - .../node_modules/package-json/package.json | 46 - gateway/node_modules/package-json/readme.md | 118 - gateway/node_modules/parseurl/HISTORY.md | 58 - gateway/node_modules/parseurl/LICENSE | 24 - gateway/node_modules/parseurl/README.md | 133 - gateway/node_modules/parseurl/index.js | 158 - gateway/node_modules/parseurl/package.json | 40 - .../node_modules/path-is-absolute/index.js | 20 - gateway/node_modules/path-is-absolute/license | 21 - .../path-is-absolute/package.json | 43 - .../node_modules/path-is-absolute/readme.md | 59 - .../node_modules/path-to-regexp/History.md | 36 - gateway/node_modules/path-to-regexp/LICENSE | 21 - gateway/node_modules/path-to-regexp/Readme.md | 35 - gateway/node_modules/path-to-regexp/index.js | 129 - .../node_modules/path-to-regexp/package.json | 30 - gateway/node_modules/picomatch/CHANGELOG.md | 113 - gateway/node_modules/picomatch/LICENSE | 21 - gateway/node_modules/picomatch/README.md | 691 -- gateway/node_modules/picomatch/index.js | 3 - .../node_modules/picomatch/lib/constants.js | 179 - gateway/node_modules/picomatch/lib/parse.js | 1078 -- .../node_modules/picomatch/lib/picomatch.js | 339 - gateway/node_modules/picomatch/lib/scan.js | 383 - gateway/node_modules/picomatch/lib/utils.js | 64 - gateway/node_modules/picomatch/package.json | 81 - gateway/node_modules/prepend-http/index.js | 15 - gateway/node_modules/prepend-http/license | 9 - .../node_modules/prepend-http/package.json | 35 - gateway/node_modules/prepend-http/readme.md | 56 - gateway/node_modules/pretty-format/LICENSE | 21 - gateway/node_modules/pretty-format/README.md | 454 - .../pretty-format/build/collections.d.ts | 32 - .../pretty-format/build/collections.js | 185 - .../pretty-format/build/index.d.ts | 37 - .../node_modules/pretty-format/build/index.js | 560 -- .../build/plugins/AsymmetricMatcher.d.ts | 11 - .../build/plugins/AsymmetricMatcher.js | 103 - .../build/plugins/ConvertAnsi.d.ts | 11 - .../build/plugins/ConvertAnsi.js | 96 - .../build/plugins/DOMCollection.d.ts | 11 - .../build/plugins/DOMCollection.js | 80 - .../build/plugins/DOMElement.d.ts | 11 - .../pretty-format/build/plugins/DOMElement.js | 125 - .../build/plugins/Immutable.d.ts | 11 - .../pretty-format/build/plugins/Immutable.js | 247 - .../build/plugins/ReactElement.d.ts | 11 - .../build/plugins/ReactElement.js | 166 - .../build/plugins/ReactTestComponent.d.ts | 18 - .../build/plugins/ReactTestComponent.js | 65 - .../build/plugins/lib/escapeHTML.d.ts | 7 - .../build/plugins/lib/escapeHTML.js | 16 - .../build/plugins/lib/markup.d.ts | 13 - .../pretty-format/build/plugins/lib/markup.js | 147 - .../pretty-format/build/types.d.ts | 100 - .../node_modules/pretty-format/build/types.js | 1 - .../node_modules/pretty-format/package.json | 37 - gateway/node_modules/promise-inflight/LICENSE | 14 - .../node_modules/promise-inflight/README.md | 34 - .../node_modules/promise-inflight/inflight.js | 36 - .../promise-inflight/package.json | 24 - .../node_modules/promise-retry/.editorconfig | 15 - gateway/node_modules/promise-retry/.jshintrc | 64 - gateway/node_modules/promise-retry/.npmignore | 2 - .../node_modules/promise-retry/.travis.yml | 5 - gateway/node_modules/promise-retry/LICENSE | 19 - gateway/node_modules/promise-retry/README.md | 92 - gateway/node_modules/promise-retry/index.js | 52 - .../node_modules/retry/.npmignore | 2 - .../promise-retry/node_modules/retry/License | 21 - .../promise-retry/node_modules/retry/Makefile | 22 - .../node_modules/retry/README.md | 215 - .../node_modules/retry/equation.gif | Bin 1209 -> 0 bytes .../node_modules/retry/example/dns.js | 31 - .../node_modules/retry/example/stop.js | 40 - .../promise-retry/node_modules/retry/index.js | 1 - .../node_modules/retry/lib/retry.js | 99 - .../node_modules/retry/lib/retry_operation.js | 143 - .../node_modules/retry/package.json | 24 - .../node_modules/retry/test/common.js | 10 - .../retry/test/integration/test-forever.js | 24 - .../test/integration/test-retry-operation.js | 176 - .../retry/test/integration/test-retry-wrap.js | 77 - .../retry/test/integration/test-timeouts.js | 69 - .../node_modules/retry/test/runner.js | 5 - .../node_modules/promise-retry/package.json | 37 - .../node_modules/promise-retry/test/test.js | 263 - gateway/node_modules/proxy-addr/HISTORY.md | 155 - gateway/node_modules/proxy-addr/LICENSE | 22 - gateway/node_modules/proxy-addr/README.md | 155 - gateway/node_modules/proxy-addr/index.js | 327 - gateway/node_modules/proxy-addr/package.json | 47 - gateway/node_modules/pstree.remy/.travis.yml | 8 - gateway/node_modules/pstree.remy/LICENSE | 7 - gateway/node_modules/pstree.remy/README.md | 26 - gateway/node_modules/pstree.remy/lib/index.js | 37 - gateway/node_modules/pstree.remy/lib/tree.js | 37 - gateway/node_modules/pstree.remy/lib/utils.js | 53 - gateway/node_modules/pstree.remy/package.json | 33 - .../pstree.remy/tests/fixtures/index.js | 13 - .../pstree.remy/tests/fixtures/out1 | 10 - .../pstree.remy/tests/fixtures/out2 | 29 - .../pstree.remy/tests/index.test.js | 51 - gateway/node_modules/pump/.travis.yml | 5 - gateway/node_modules/pump/LICENSE | 21 - gateway/node_modules/pump/README.md | 65 - gateway/node_modules/pump/index.js | 82 - gateway/node_modules/pump/package.json | 24 - gateway/node_modules/pump/test-browser.js | 66 - gateway/node_modules/pump/test-node.js | 53 - gateway/node_modules/pupa/index.d.ts | 32 - gateway/node_modules/pupa/index.js | 39 - gateway/node_modules/pupa/license | 9 - gateway/node_modules/pupa/package.json | 47 - gateway/node_modules/pupa/readme.md | 63 - gateway/node_modules/qs/.editorconfig | 30 - gateway/node_modules/qs/.eslintignore | 1 - gateway/node_modules/qs/.eslintrc | 21 - gateway/node_modules/qs/CHANGELOG.md | 256 - gateway/node_modules/qs/LICENSE | 28 - gateway/node_modules/qs/README.md | 570 -- gateway/node_modules/qs/dist/qs.js | 782 -- gateway/node_modules/qs/lib/formats.js | 18 - gateway/node_modules/qs/lib/index.js | 11 - gateway/node_modules/qs/lib/parse.js | 242 - gateway/node_modules/qs/lib/stringify.js | 269 - gateway/node_modules/qs/lib/utils.js | 230 - gateway/node_modules/qs/package.json | 58 - gateway/node_modules/qs/test/.eslintrc | 17 - gateway/node_modules/qs/test/index.js | 7 - gateway/node_modules/qs/test/parse.js | 676 -- gateway/node_modules/qs/test/stringify.js | 679 -- gateway/node_modules/qs/test/utils.js | 136 - gateway/node_modules/range-parser/HISTORY.md | 56 - gateway/node_modules/range-parser/LICENSE | 23 - gateway/node_modules/range-parser/README.md | 84 - gateway/node_modules/range-parser/index.js | 162 - .../node_modules/range-parser/package.json | 44 - gateway/node_modules/raw-body/HISTORY.md | 270 - gateway/node_modules/raw-body/LICENSE | 22 - gateway/node_modules/raw-body/README.md | 219 - gateway/node_modules/raw-body/index.d.ts | 87 - gateway/node_modules/raw-body/index.js | 286 - gateway/node_modules/raw-body/package.json | 48 - gateway/node_modules/rc/LICENSE.APACHE2 | 15 - gateway/node_modules/rc/LICENSE.BSD | 26 - gateway/node_modules/rc/LICENSE.MIT | 24 - gateway/node_modules/rc/README.md | 227 - gateway/node_modules/rc/browser.js | 7 - gateway/node_modules/rc/cli.js | 4 - gateway/node_modules/rc/index.js | 53 - gateway/node_modules/rc/lib/utils.js | 104 - gateway/node_modules/rc/package.json | 29 - gateway/node_modules/rc/test/ini.js | 16 - .../node_modules/rc/test/nested-env-vars.js | 50 - gateway/node_modules/rc/test/test.js | 59 - gateway/node_modules/react-is/LICENSE | 21 - gateway/node_modules/react-is/README.md | 104 - gateway/node_modules/react-is/build-info.json | 8 - .../react-is/cjs/react-is.development.js | 226 - .../react-is/cjs/react-is.production.min.js | 14 - gateway/node_modules/react-is/index.js | 7 - gateway/node_modules/react-is/package.json | 27 - .../react-is/umd/react-is.development.js | 225 - .../react-is/umd/react-is.production.min.js | 14 - gateway/node_modules/readdirp/LICENSE | 21 - gateway/node_modules/readdirp/README.md | 122 - gateway/node_modules/readdirp/index.d.ts | 43 - gateway/node_modules/readdirp/index.js | 282 - gateway/node_modules/readdirp/package.json | 122 - .../registry-auth-token/CHANGELOG.md | 134 - .../node_modules/registry-auth-token/LICENSE | 21 - .../registry-auth-token/README.md | 65 - .../registry-auth-token/base64.js | 12 - .../node_modules/registry-auth-token/index.js | 142 - .../registry-auth-token/node_modules/.bin/rc | 1 - .../registry-auth-token/package.json | 48 - .../registry-auth-token/registry-url.js | 5 - gateway/node_modules/registry-url/index.d.ts | 33 - gateway/node_modules/registry-url/index.js | 12 - gateway/node_modules/registry-url/license | 9 - .../registry-url/node_modules/.bin/rc | 1 - .../node_modules/registry-url/package.json | 44 - gateway/node_modules/registry-url/readme.md | 50 - gateway/node_modules/responselike/LICENSE | 19 - gateway/node_modules/responselike/README.md | 77 - .../node_modules/responselike/package.json | 38 - .../node_modules/responselike/src/index.js | 34 - gateway/node_modules/retry/.npmignore | 3 - gateway/node_modules/retry/.travis.yml | 15 - gateway/node_modules/retry/License | 21 - gateway/node_modules/retry/Makefile | 18 - gateway/node_modules/retry/README.md | 227 - gateway/node_modules/retry/equation.gif | Bin 1209 -> 0 bytes gateway/node_modules/retry/example/dns.js | 31 - gateway/node_modules/retry/example/stop.js | 40 - gateway/node_modules/retry/index.js | 1 - gateway/node_modules/retry/lib/retry.js | 100 - .../node_modules/retry/lib/retry_operation.js | 158 - gateway/node_modules/retry/package.json | 32 - gateway/node_modules/retry/test/common.js | 10 - .../retry/test/integration/test-forever.js | 24 - .../test/integration/test-retry-operation.js | 258 - .../retry/test/integration/test-retry-wrap.js | 101 - .../retry/test/integration/test-timeouts.js | 69 - gateway/node_modules/rimraf/CHANGELOG.md | 65 - gateway/node_modules/rimraf/LICENSE | 15 - gateway/node_modules/rimraf/README.md | 101 - gateway/node_modules/rimraf/bin.js | 68 - gateway/node_modules/rimraf/package.json | 32 - gateway/node_modules/rimraf/rimraf.js | 360 - gateway/node_modules/safe-buffer/LICENSE | 21 - gateway/node_modules/safe-buffer/README.md | 584 -- gateway/node_modules/safe-buffer/index.d.ts | 187 - gateway/node_modules/safe-buffer/index.js | 62 - gateway/node_modules/safe-buffer/package.json | 37 - gateway/node_modules/safer-buffer/LICENSE | 21 - .../safer-buffer/Porting-Buffer.md | 268 - gateway/node_modules/safer-buffer/Readme.md | 156 - .../node_modules/safer-buffer/dangerous.js | 58 - .../node_modules/safer-buffer/package.json | 34 - gateway/node_modules/safer-buffer/safer.js | 77 - gateway/node_modules/safer-buffer/tests.js | 406 - gateway/node_modules/semver-diff/index.d.ts | 58 - gateway/node_modules/semver-diff/index.js | 13 - gateway/node_modules/semver-diff/license | 9 - .../semver-diff/node_modules/.bin/semver | 1 - gateway/node_modules/semver-diff/package.json | 37 - gateway/node_modules/semver-diff/readme.md | 77 - gateway/node_modules/semver/CHANGELOG.md | 70 - gateway/node_modules/semver/LICENSE | 15 - gateway/node_modules/semver/README.md | 443 - gateway/node_modules/semver/bin/semver.js | 174 - gateway/node_modules/semver/package.json | 28 - gateway/node_modules/semver/range.bnf | 16 - gateway/node_modules/semver/semver.js | 1596 --- gateway/node_modules/send/HISTORY.md | 496 - gateway/node_modules/send/LICENSE | 23 - gateway/node_modules/send/README.md | 329 - gateway/node_modules/send/index.js | 1129 --- .../node_modules/send/node_modules/.bin/mime | 1 - .../send/node_modules/http-errors/HISTORY.md | 154 - .../send/node_modules/http-errors/LICENSE | 23 - .../send/node_modules/http-errors/README.md | 163 - .../send/node_modules/http-errors/index.js | 266 - .../node_modules/http-errors/package.json | 49 - .../send/node_modules/ms/index.js | 162 - .../send/node_modules/ms/license.md | 21 - .../send/node_modules/ms/package.json | 37 - .../send/node_modules/ms/readme.md | 60 - gateway/node_modules/send/package.json | 61 - gateway/node_modules/serve-static/HISTORY.md | 451 - gateway/node_modules/serve-static/LICENSE | 25 - gateway/node_modules/serve-static/README.md | 259 - gateway/node_modules/serve-static/index.js | 210 - .../node_modules/serve-static/package.json | 42 - gateway/node_modules/setprototypeof/LICENSE | 13 - gateway/node_modules/setprototypeof/README.md | 31 - .../node_modules/setprototypeof/index.d.ts | 2 - gateway/node_modules/setprototypeof/index.js | 17 - .../node_modules/setprototypeof/package.json | 36 - .../node_modules/setprototypeof/test/index.js | 24 - gateway/node_modules/sha.js/.travis.yml | 17 - gateway/node_modules/sha.js/LICENSE | 49 - gateway/node_modules/sha.js/README.md | 44 - gateway/node_modules/sha.js/bin.js | 41 - gateway/node_modules/sha.js/hash.js | 81 - gateway/node_modules/sha.js/index.js | 15 - .../sha.js/node_modules/safe-buffer/LICENSE | 21 - .../sha.js/node_modules/safe-buffer/README.md | 584 -- .../node_modules/safe-buffer/index.d.ts | 187 - .../sha.js/node_modules/safe-buffer/index.js | 65 - .../node_modules/safe-buffer/package.json | 51 - gateway/node_modules/sha.js/package.json | 30 - gateway/node_modules/sha.js/sha.js | 94 - gateway/node_modules/sha.js/sha1.js | 99 - gateway/node_modules/sha.js/sha224.js | 53 - gateway/node_modules/sha.js/sha256.js | 135 - gateway/node_modules/sha.js/sha384.js | 57 - gateway/node_modules/sha.js/sha512.js | 260 - gateway/node_modules/sha.js/test/hash.js | 75 - gateway/node_modules/sha.js/test/test.js | 100 - gateway/node_modules/sha.js/test/vectors.js | 72 - gateway/node_modules/signal-exit/CHANGELOG.md | 35 - gateway/node_modules/signal-exit/LICENSE.txt | 16 - gateway/node_modules/signal-exit/README.md | 39 - gateway/node_modules/signal-exit/index.js | 163 - gateway/node_modules/signal-exit/package.json | 38 - gateway/node_modules/signal-exit/signals.js | 53 - .../smart-buffer/.prettierrc.yaml | 5 - gateway/node_modules/smart-buffer/.travis.yml | 13 - gateway/node_modules/smart-buffer/LICENSE | 20 - gateway/node_modules/smart-buffer/README.md | 632 -- .../smart-buffer/build/smartbuffer.js | 1233 --- .../smart-buffer/build/smartbuffer.js.map | 1 - .../node_modules/smart-buffer/build/utils.js | 108 - .../smart-buffer/build/utils.js.map | 1 - .../smart-buffer/docs/CHANGELOG.md | 70 - .../smart-buffer/docs/README_v3.md | 367 - .../node_modules/smart-buffer/docs/ROADMAP.md | 0 .../node_modules/smart-buffer/package.json | 78 - .../smart-buffer/typings/smartbuffer.d.ts | 755 -- .../smart-buffer/typings/utils.d.ts | 66 - .../node_modules/socks-proxy-agent/README.md | 152 - .../socks-proxy-agent/dist/agent.d.ts | 21 - .../socks-proxy-agent/dist/agent.js | 182 - .../socks-proxy-agent/dist/agent.js.map | 1 - .../socks-proxy-agent/dist/index.d.ts | 18 - .../socks-proxy-agent/dist/index.js | 14 - .../socks-proxy-agent/dist/index.js.map | 1 - .../node_modules/debug/LICENSE | 19 - .../node_modules/debug/README.md | 455 - .../node_modules/debug/package.json | 59 - .../node_modules/debug/src/browser.js | 259 - .../node_modules/debug/src/common.js | 264 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 257 - .../socks-proxy-agent/package.json | 64 - gateway/node_modules/socks/.prettierrc.yaml | 7 - gateway/node_modules/socks/.travis.yml | 11 - gateway/node_modules/socks/LICENSE | 20 - gateway/node_modules/socks/README.md | 670 -- .../socks/build/client/socksclient.js | 742 -- .../socks/build/client/socksclient.js.map | 1 - .../socks/build/common/constants.js | 106 - .../socks/build/common/constants.js.map | 1 - .../socks/build/common/helpers.js | 101 - .../socks/build/common/helpers.js.map | 1 - .../socks/build/common/receivebuffer.js | 43 - .../socks/build/common/receivebuffer.js.map | 1 - .../node_modules/socks/build/common/util.js | 26 - .../socks/build/common/util.js.map | 1 - gateway/node_modules/socks/build/index.js | 14 - gateway/node_modules/socks/build/index.js.map | 1 - .../node_modules/socks/docs/examples/index.md | 17 - .../examples/javascript/associateExample.md | 90 - .../docs/examples/javascript/bindExample.md | 83 - .../examples/javascript/connectExample.md | 258 - .../examples/typescript/associateExample.md | 93 - .../docs/examples/typescript/bindExample.md | 86 - .../examples/typescript/connectExample.md | 265 - gateway/node_modules/socks/docs/index.md | 5 - .../socks/docs/migratingFromV1.md | 86 - gateway/node_modules/socks/package.json | 85 - .../socks/typings/client/socksclient.d.ts | 155 - .../socks/typings/common/constants.d.ts | 141 - .../socks/typings/common/helpers.d.ts | 13 - .../socks/typings/common/receivebuffer.d.ts | 12 - .../socks/typings/common/util.d.ts | 17 - gateway/node_modules/socks/typings/index.d.ts | 1 - gateway/node_modules/ssri/CHANGELOG.md | 348 - gateway/node_modules/ssri/LICENSE.md | 16 - gateway/node_modules/ssri/README.md | 528 - gateway/node_modules/ssri/index.js | 469 - gateway/node_modules/ssri/package.json | 52 - gateway/node_modules/statuses/HISTORY.md | 65 - gateway/node_modules/statuses/LICENSE | 23 - gateway/node_modules/statuses/README.md | 127 - gateway/node_modules/statuses/codes.json | 66 - gateway/node_modules/statuses/index.js | 113 - gateway/node_modules/statuses/package.json | 48 - gateway/node_modules/streamsearch/LICENSE | 19 - gateway/node_modules/streamsearch/README.md | 87 - gateway/node_modules/streamsearch/lib/sbmh.js | 213 - .../node_modules/streamsearch/package.json | 10 - gateway/node_modules/string-width/index.d.ts | 29 - gateway/node_modules/string-width/index.js | 43 - gateway/node_modules/string-width/license | 9 - .../node_modules/string-width/package.json | 56 - gateway/node_modules/string-width/readme.md | 50 - .../string.prototype.trimend/.editorconfig | 20 - .../string.prototype.trimend/.eslintrc | 15 - .../.github/workflows/rebase.yml | 15 - .../.github/workflows/require-allow-edits.yml | 14 - .../string.prototype.trimend/.travis.yml | 8 - .../string.prototype.trimend/CHANGELOG.md | 51 - .../string.prototype.trimend/LICENSE | 21 - .../string.prototype.trimend/README.md | 47 - .../string.prototype.trimend/auto.js | 3 - .../implementation.js | 12 - .../string.prototype.trimend/index.js | 18 - .../node_modules/es-abstract/.editorconfig | 13 - .../node_modules/es-abstract/.eslintignore | 1 - .../node_modules/es-abstract/.eslintrc | 72 - .../node_modules/es-abstract/.gitattributes | 612 -- .../es-abstract/.github/FUNDING.yml | 12 - .../.github/workflows/codeql-analysis.yml | 52 - .../es-abstract/.github/workflows/rebase.yml | 15 - .../node_modules/es-abstract/.nycrc | 14 - .../node_modules/es-abstract/.travis.yml | 38 - .../2015/AbstractEqualityComparison.js | 37 - .../2015/AbstractRelationalComparison.js | 66 - .../es-abstract/2015/AdvanceStringIndex.js | 47 - .../es-abstract/2015/ArrayCreate.js | 53 - .../es-abstract/2015/ArraySetLength.js | 85 - .../es-abstract/2015/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2015/Call.js | 13 - .../2015/CanonicalNumericIndexString.js | 22 - .../2015/CompletePropertyDescriptor.js | 39 - .../es-abstract/2015/CreateDataProperty.js | 45 - .../2015/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2015/CreateHTML.js | 30 - .../2015/CreateIterResultObject.js | 19 - .../2015/CreateListFromArrayLike.js | 43 - .../es-abstract/2015/CreateMethodProperty.js | 40 - .../es-abstract/2015/DateFromTime.js | 54 - .../node_modules/es-abstract/2015/Day.js | 11 - .../es-abstract/2015/DayFromYear.js | 10 - .../es-abstract/2015/DayWithinYear.js | 11 - .../es-abstract/2015/DaysInYear.js | 18 - .../es-abstract/2015/DefinePropertyOrThrow.js | 50 - .../es-abstract/2015/DeletePropertyOrThrow.js | 27 - .../es-abstract/2015/EnumerableOwnNames.js | 19 - .../2015/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2015/Get.js | 30 - .../es-abstract/2015/GetIterator.js | 35 - .../es-abstract/2015/GetMethod.js | 42 - .../es-abstract/2015/GetOwnPropertyKeys.js | 31 - .../2015/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2015/GetSubstitution.js | 104 - .../node_modules/es-abstract/2015/GetV.js | 29 - .../es-abstract/2015/HasOwnProperty.js | 22 - .../es-abstract/2015/HasProperty.js | 20 - .../es-abstract/2015/HourFromTime.js | 14 - .../es-abstract/2015/InLeapYear.js | 21 - .../es-abstract/2015/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2015/Invoke.js | 22 - .../es-abstract/2015/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2015/IsArray.js | 14 - .../es-abstract/2015/IsCallable.js | 5 - .../es-abstract/2015/IsConcatSpreadable.js | 25 - .../es-abstract/2015/IsConstructor.js | 40 - .../es-abstract/2015/IsDataDescriptor.js | 23 - .../es-abstract/2015/IsExtensible.js | 20 - .../es-abstract/2015/IsGenericDescriptor.js | 23 - .../es-abstract/2015/IsInteger.js | 17 - .../es-abstract/2015/IsPromise.js | 24 - .../es-abstract/2015/IsPropertyDescriptor.js | 17 - .../es-abstract/2015/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2015/IsRegExp.js | 24 - .../es-abstract/2015/IteratorClose.js | 50 - .../es-abstract/2015/IteratorComplete.js | 18 - .../es-abstract/2015/IteratorNext.js | 18 - .../es-abstract/2015/IteratorStep.js | 13 - .../es-abstract/2015/IteratorValue.js | 18 - .../node_modules/es-abstract/2015/MakeDate.js | 13 - .../node_modules/es-abstract/2015/MakeDay.js | 33 - .../node_modules/es-abstract/2015/MakeTime.js | 23 - .../es-abstract/2015/MinFromTime.js | 14 - .../es-abstract/2015/MonthFromTime.js | 47 - .../es-abstract/2015/ObjectCreate.js | 37 - .../2015/OrdinaryCreateFromConstructor.js | 20 - .../2015/OrdinaryDefineOwnProperty.js | 61 - .../2015/OrdinaryGetOwnProperty.js | 44 - .../es-abstract/2015/OrdinaryHasInstance.js | 25 - .../es-abstract/2015/OrdinaryHasProperty.js | 20 - .../es-abstract/2015/QuoteJSONString.js | 52 - .../es-abstract/2015/RegExpExec.js | 32 - .../2015/RequireObjectCoercible.js | 3 - .../es-abstract/2015/SameValue.js | 13 - .../es-abstract/2015/SameValueZero.js | 9 - .../es-abstract/2015/SecFromTime.js | 14 - .../node_modules/es-abstract/2015/Set.js | 47 - .../es-abstract/2015/SetFunctionName.js | 44 - .../es-abstract/2015/SetIntegrityLevel.js | 57 - .../es-abstract/2015/SpeciesConstructor.js | 32 - .../2015/StrictEqualityComparison.js | 17 - .../2015/SymbolDescriptiveString.js | 20 - .../es-abstract/2015/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2015/TimeClip.js | 21 - .../es-abstract/2015/TimeFromYear.js | 11 - .../es-abstract/2015/TimeWithinDay.js | 12 - .../es-abstract/2015/ToBoolean.js | 5 - .../es-abstract/2015/ToDateString.js | 22 - .../node_modules/es-abstract/2015/ToInt16.js | 10 - .../node_modules/es-abstract/2015/ToInt32.js | 9 - .../node_modules/es-abstract/2015/ToInt8.js | 10 - .../es-abstract/2015/ToInteger.js | 12 - .../node_modules/es-abstract/2015/ToLength.js | 12 - .../node_modules/es-abstract/2015/ToNumber.js | 59 - .../node_modules/es-abstract/2015/ToObject.js | 14 - .../es-abstract/2015/ToPrimitive.js | 12 - .../es-abstract/2015/ToPropertyDescriptor.js | 52 - .../es-abstract/2015/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2015/ToString.js | 15 - .../node_modules/es-abstract/2015/ToUint16.js | 19 - .../node_modules/es-abstract/2015/ToUint32.js | 9 - .../node_modules/es-abstract/2015/ToUint8.js | 20 - .../es-abstract/2015/ToUint8Clamp.js | 19 - .../node_modules/es-abstract/2015/Type.js | 12 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2015/WeekDay.js | 10 - .../es-abstract/2015/YearFromTime.js | 16 - .../node_modules/es-abstract/2015/abs.js | 11 - .../node_modules/es-abstract/2015/floor.js | 11 - .../node_modules/es-abstract/2015/modulo.js | 9 - .../es-abstract/2015/msFromTime.js | 11 - .../es-abstract/2015/thisBooleanValue.js | 15 - .../es-abstract/2015/thisNumberValue.js | 18 - .../es-abstract/2015/thisStringValue.js | 15 - .../es-abstract/2015/thisTimeValue.js | 9 - .../2016/AbstractEqualityComparison.js | 37 - .../2016/AbstractRelationalComparison.js | 66 - .../es-abstract/2016/AdvanceStringIndex.js | 47 - .../es-abstract/2016/ArrayCreate.js | 53 - .../es-abstract/2016/ArraySetLength.js | 85 - .../es-abstract/2016/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2016/Call.js | 13 - .../2016/CanonicalNumericIndexString.js | 22 - .../2016/CompletePropertyDescriptor.js | 39 - .../es-abstract/2016/CreateDataProperty.js | 45 - .../2016/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2016/CreateHTML.js | 30 - .../2016/CreateIterResultObject.js | 19 - .../2016/CreateListFromArrayLike.js | 43 - .../es-abstract/2016/CreateMethodProperty.js | 40 - .../es-abstract/2016/DateFromTime.js | 54 - .../node_modules/es-abstract/2016/Day.js | 11 - .../es-abstract/2016/DayFromYear.js | 10 - .../es-abstract/2016/DayWithinYear.js | 11 - .../es-abstract/2016/DaysInYear.js | 18 - .../es-abstract/2016/DefinePropertyOrThrow.js | 50 - .../es-abstract/2016/DeletePropertyOrThrow.js | 27 - .../es-abstract/2016/EnumerableOwnNames.js | 19 - .../2016/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2016/Get.js | 30 - .../es-abstract/2016/GetIterator.js | 35 - .../es-abstract/2016/GetMethod.js | 42 - .../es-abstract/2016/GetOwnPropertyKeys.js | 31 - .../2016/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2016/GetSubstitution.js | 104 - .../node_modules/es-abstract/2016/GetV.js | 29 - .../es-abstract/2016/HasOwnProperty.js | 22 - .../es-abstract/2016/HasProperty.js | 20 - .../es-abstract/2016/HourFromTime.js | 14 - .../es-abstract/2016/InLeapYear.js | 21 - .../es-abstract/2016/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2016/Invoke.js | 22 - .../es-abstract/2016/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2016/IsArray.js | 14 - .../es-abstract/2016/IsCallable.js | 5 - .../es-abstract/2016/IsConcatSpreadable.js | 25 - .../es-abstract/2016/IsConstructor.js | 40 - .../es-abstract/2016/IsDataDescriptor.js | 23 - .../es-abstract/2016/IsExtensible.js | 20 - .../es-abstract/2016/IsGenericDescriptor.js | 23 - .../es-abstract/2016/IsInteger.js | 17 - .../es-abstract/2016/IsPromise.js | 24 - .../es-abstract/2016/IsPropertyDescriptor.js | 17 - .../es-abstract/2016/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2016/IsRegExp.js | 24 - .../es-abstract/2016/IterableToArrayLike.js | 56 - .../es-abstract/2016/IteratorClose.js | 50 - .../es-abstract/2016/IteratorComplete.js | 18 - .../es-abstract/2016/IteratorNext.js | 18 - .../es-abstract/2016/IteratorStep.js | 13 - .../es-abstract/2016/IteratorValue.js | 18 - .../node_modules/es-abstract/2016/MakeDate.js | 13 - .../node_modules/es-abstract/2016/MakeDay.js | 33 - .../node_modules/es-abstract/2016/MakeTime.js | 23 - .../es-abstract/2016/MinFromTime.js | 14 - .../es-abstract/2016/MonthFromTime.js | 47 - .../es-abstract/2016/ObjectCreate.js | 37 - .../2016/OrdinaryCreateFromConstructor.js | 20 - .../2016/OrdinaryDefineOwnProperty.js | 61 - .../2016/OrdinaryGetOwnProperty.js | 44 - .../2016/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2016/OrdinaryHasInstance.js | 25 - .../es-abstract/2016/OrdinaryHasProperty.js | 20 - .../2016/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2016/QuoteJSONString.js | 52 - .../es-abstract/2016/RegExpExec.js | 32 - .../2016/RequireObjectCoercible.js | 3 - .../es-abstract/2016/SameValue.js | 13 - .../es-abstract/2016/SameValueNonNumber.js | 16 - .../es-abstract/2016/SameValueZero.js | 9 - .../es-abstract/2016/SecFromTime.js | 14 - .../node_modules/es-abstract/2016/Set.js | 47 - .../es-abstract/2016/SetFunctionName.js | 44 - .../es-abstract/2016/SetIntegrityLevel.js | 57 - .../es-abstract/2016/SpeciesConstructor.js | 32 - .../2016/StrictEqualityComparison.js | 17 - .../2016/SymbolDescriptiveString.js | 20 - .../es-abstract/2016/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2016/TimeClip.js | 21 - .../es-abstract/2016/TimeFromYear.js | 11 - .../es-abstract/2016/TimeWithinDay.js | 12 - .../es-abstract/2016/ToBoolean.js | 5 - .../es-abstract/2016/ToDateString.js | 22 - .../node_modules/es-abstract/2016/ToInt16.js | 10 - .../node_modules/es-abstract/2016/ToInt32.js | 9 - .../node_modules/es-abstract/2016/ToInt8.js | 10 - .../es-abstract/2016/ToInteger.js | 12 - .../node_modules/es-abstract/2016/ToLength.js | 12 - .../node_modules/es-abstract/2016/ToNumber.js | 59 - .../node_modules/es-abstract/2016/ToObject.js | 14 - .../es-abstract/2016/ToPrimitive.js | 12 - .../es-abstract/2016/ToPropertyDescriptor.js | 52 - .../es-abstract/2016/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2016/ToString.js | 15 - .../node_modules/es-abstract/2016/ToUint16.js | 19 - .../node_modules/es-abstract/2016/ToUint32.js | 9 - .../node_modules/es-abstract/2016/ToUint8.js | 20 - .../es-abstract/2016/ToUint8Clamp.js | 19 - .../node_modules/es-abstract/2016/Type.js | 12 - .../es-abstract/2016/UTF16Encoding.js | 23 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2016/WeekDay.js | 10 - .../es-abstract/2016/YearFromTime.js | 16 - .../node_modules/es-abstract/2016/abs.js | 11 - .../node_modules/es-abstract/2016/floor.js | 11 - .../node_modules/es-abstract/2016/modulo.js | 9 - .../es-abstract/2016/msFromTime.js | 11 - .../es-abstract/2016/thisBooleanValue.js | 15 - .../es-abstract/2016/thisNumberValue.js | 18 - .../es-abstract/2016/thisStringValue.js | 15 - .../es-abstract/2016/thisTimeValue.js | 9 - .../2017/AbstractEqualityComparison.js | 37 - .../2017/AbstractRelationalComparison.js | 66 - .../es-abstract/2017/AdvanceStringIndex.js | 47 - .../es-abstract/2017/ArrayCreate.js | 53 - .../es-abstract/2017/ArraySetLength.js | 85 - .../es-abstract/2017/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2017/Call.js | 13 - .../2017/CanonicalNumericIndexString.js | 22 - .../2017/CompletePropertyDescriptor.js | 39 - .../es-abstract/2017/CreateDataProperty.js | 45 - .../2017/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2017/CreateHTML.js | 30 - .../2017/CreateIterResultObject.js | 19 - .../2017/CreateListFromArrayLike.js | 43 - .../es-abstract/2017/CreateMethodProperty.js | 40 - .../es-abstract/2017/DateFromTime.js | 54 - .../node_modules/es-abstract/2017/Day.js | 11 - .../es-abstract/2017/DayFromYear.js | 10 - .../es-abstract/2017/DayWithinYear.js | 11 - .../es-abstract/2017/DaysInYear.js | 18 - .../es-abstract/2017/DefinePropertyOrThrow.js | 50 - .../es-abstract/2017/DeletePropertyOrThrow.js | 27 - .../2017/EnumerableOwnProperties.js | 43 - .../2017/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2017/Get.js | 30 - .../es-abstract/2017/GetIterator.js | 35 - .../es-abstract/2017/GetMethod.js | 42 - .../es-abstract/2017/GetOwnPropertyKeys.js | 31 - .../2017/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2017/GetSubstitution.js | 104 - .../node_modules/es-abstract/2017/GetV.js | 29 - .../es-abstract/2017/HasOwnProperty.js | 22 - .../es-abstract/2017/HasProperty.js | 20 - .../es-abstract/2017/HourFromTime.js | 14 - .../es-abstract/2017/InLeapYear.js | 21 - .../es-abstract/2017/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2017/Invoke.js | 22 - .../es-abstract/2017/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2017/IsArray.js | 14 - .../es-abstract/2017/IsCallable.js | 5 - .../es-abstract/2017/IsConcatSpreadable.js | 25 - .../es-abstract/2017/IsConstructor.js | 40 - .../es-abstract/2017/IsDataDescriptor.js | 23 - .../es-abstract/2017/IsExtensible.js | 20 - .../es-abstract/2017/IsGenericDescriptor.js | 23 - .../es-abstract/2017/IsInteger.js | 17 - .../es-abstract/2017/IsPromise.js | 24 - .../es-abstract/2017/IsPropertyDescriptor.js | 17 - .../es-abstract/2017/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2017/IsRegExp.js | 24 - .../es-abstract/2017/IterableToList.js | 24 - .../es-abstract/2017/IteratorClose.js | 50 - .../es-abstract/2017/IteratorComplete.js | 18 - .../es-abstract/2017/IteratorNext.js | 18 - .../es-abstract/2017/IteratorStep.js | 13 - .../es-abstract/2017/IteratorValue.js | 18 - .../node_modules/es-abstract/2017/MakeDate.js | 13 - .../node_modules/es-abstract/2017/MakeDay.js | 33 - .../node_modules/es-abstract/2017/MakeTime.js | 23 - .../es-abstract/2017/MinFromTime.js | 14 - .../es-abstract/2017/MonthFromTime.js | 47 - .../es-abstract/2017/ObjectCreate.js | 37 - .../2017/OrdinaryCreateFromConstructor.js | 20 - .../2017/OrdinaryDefineOwnProperty.js | 61 - .../2017/OrdinaryGetOwnProperty.js | 44 - .../2017/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2017/OrdinaryHasInstance.js | 25 - .../es-abstract/2017/OrdinaryHasProperty.js | 20 - .../2017/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2017/QuoteJSONString.js | 52 - .../es-abstract/2017/RegExpExec.js | 32 - .../2017/RequireObjectCoercible.js | 3 - .../es-abstract/2017/SameValue.js | 13 - .../es-abstract/2017/SameValueNonNumber.js | 16 - .../es-abstract/2017/SameValueZero.js | 9 - .../es-abstract/2017/SecFromTime.js | 14 - .../node_modules/es-abstract/2017/Set.js | 47 - .../es-abstract/2017/SetFunctionName.js | 44 - .../es-abstract/2017/SetIntegrityLevel.js | 57 - .../es-abstract/2017/SpeciesConstructor.js | 32 - .../2017/StrictEqualityComparison.js | 17 - .../es-abstract/2017/StringGetOwnProperty.js | 48 - .../2017/SymbolDescriptiveString.js | 20 - .../es-abstract/2017/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2017/TimeClip.js | 21 - .../es-abstract/2017/TimeFromYear.js | 11 - .../es-abstract/2017/TimeWithinDay.js | 12 - .../es-abstract/2017/ToBoolean.js | 5 - .../es-abstract/2017/ToDateString.js | 22 - .../node_modules/es-abstract/2017/ToIndex.js | 26 - .../node_modules/es-abstract/2017/ToInt16.js | 10 - .../node_modules/es-abstract/2017/ToInt32.js | 9 - .../node_modules/es-abstract/2017/ToInt8.js | 10 - .../es-abstract/2017/ToInteger.js | 12 - .../node_modules/es-abstract/2017/ToLength.js | 12 - .../node_modules/es-abstract/2017/ToNumber.js | 59 - .../node_modules/es-abstract/2017/ToObject.js | 14 - .../es-abstract/2017/ToPrimitive.js | 12 - .../es-abstract/2017/ToPropertyDescriptor.js | 52 - .../es-abstract/2017/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2017/ToString.js | 15 - .../node_modules/es-abstract/2017/ToUint16.js | 19 - .../node_modules/es-abstract/2017/ToUint32.js | 9 - .../node_modules/es-abstract/2017/ToUint8.js | 20 - .../es-abstract/2017/ToUint8Clamp.js | 19 - .../node_modules/es-abstract/2017/Type.js | 12 - .../es-abstract/2017/UTF16Encoding.js | 23 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2017/WeekDay.js | 10 - .../es-abstract/2017/YearFromTime.js | 16 - .../node_modules/es-abstract/2017/abs.js | 11 - .../node_modules/es-abstract/2017/floor.js | 11 - .../node_modules/es-abstract/2017/modulo.js | 9 - .../es-abstract/2017/msFromTime.js | 11 - .../es-abstract/2017/thisBooleanValue.js | 15 - .../es-abstract/2017/thisNumberValue.js | 18 - .../es-abstract/2017/thisStringValue.js | 15 - .../es-abstract/2017/thisTimeValue.js | 9 - .../2018/AbstractEqualityComparison.js | 37 - .../2018/AbstractRelationalComparison.js | 66 - .../es-abstract/2018/AdvanceStringIndex.js | 47 - .../es-abstract/2018/ArrayCreate.js | 53 - .../es-abstract/2018/ArraySetLength.js | 85 - .../es-abstract/2018/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2018/Call.js | 13 - .../2018/CanonicalNumericIndexString.js | 22 - .../2018/CompletePropertyDescriptor.js | 39 - .../es-abstract/2018/CopyDataProperties.js | 68 - .../es-abstract/2018/CreateDataProperty.js | 45 - .../2018/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2018/CreateHTML.js | 30 - .../2018/CreateIterResultObject.js | 19 - .../2018/CreateListFromArrayLike.js | 43 - .../es-abstract/2018/CreateMethodProperty.js | 40 - .../es-abstract/2018/DateFromTime.js | 54 - .../es-abstract/2018/DateString.js | 30 - .../node_modules/es-abstract/2018/Day.js | 11 - .../es-abstract/2018/DayFromYear.js | 10 - .../es-abstract/2018/DayWithinYear.js | 11 - .../es-abstract/2018/DaysInYear.js | 18 - .../es-abstract/2018/DefinePropertyOrThrow.js | 50 - .../es-abstract/2018/DeletePropertyOrThrow.js | 27 - .../2018/EnumerableOwnPropertyNames.js | 43 - .../2018/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2018/Get.js | 30 - .../es-abstract/2018/GetIterator.js | 35 - .../es-abstract/2018/GetMethod.js | 42 - .../es-abstract/2018/GetOwnPropertyKeys.js | 31 - .../2018/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2018/GetSubstitution.js | 128 - .../node_modules/es-abstract/2018/GetV.js | 29 - .../es-abstract/2018/HasOwnProperty.js | 22 - .../es-abstract/2018/HasProperty.js | 20 - .../es-abstract/2018/HourFromTime.js | 14 - .../es-abstract/2018/InLeapYear.js | 21 - .../es-abstract/2018/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2018/Invoke.js | 22 - .../es-abstract/2018/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2018/IsArray.js | 14 - .../es-abstract/2018/IsCallable.js | 5 - .../es-abstract/2018/IsConcatSpreadable.js | 25 - .../es-abstract/2018/IsConstructor.js | 40 - .../es-abstract/2018/IsDataDescriptor.js | 23 - .../es-abstract/2018/IsExtensible.js | 20 - .../es-abstract/2018/IsGenericDescriptor.js | 23 - .../es-abstract/2018/IsInteger.js | 17 - .../es-abstract/2018/IsPromise.js | 24 - .../es-abstract/2018/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2018/IsRegExp.js | 24 - .../es-abstract/2018/IsStringPrefix.js | 47 - .../es-abstract/2018/IterableToList.js | 24 - .../es-abstract/2018/IteratorClose.js | 50 - .../es-abstract/2018/IteratorComplete.js | 18 - .../es-abstract/2018/IteratorNext.js | 18 - .../es-abstract/2018/IteratorStep.js | 13 - .../es-abstract/2018/IteratorValue.js | 18 - .../node_modules/es-abstract/2018/MakeDate.js | 13 - .../node_modules/es-abstract/2018/MakeDay.js | 33 - .../node_modules/es-abstract/2018/MakeTime.js | 23 - .../es-abstract/2018/MinFromTime.js | 14 - .../es-abstract/2018/MonthFromTime.js | 47 - .../es-abstract/2018/NumberToString.js | 19 - .../es-abstract/2018/ObjectCreate.js | 37 - .../2018/OrdinaryCreateFromConstructor.js | 20 - .../2018/OrdinaryDefineOwnProperty.js | 61 - .../2018/OrdinaryGetOwnProperty.js | 44 - .../2018/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2018/OrdinaryHasInstance.js | 25 - .../es-abstract/2018/OrdinaryHasProperty.js | 20 - .../2018/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2018/PromiseResolve.js | 15 - .../es-abstract/2018/QuoteJSONString.js | 48 - .../es-abstract/2018/RegExpExec.js | 32 - .../2018/RequireObjectCoercible.js | 3 - .../es-abstract/2018/SameValue.js | 13 - .../es-abstract/2018/SameValueNonNumber.js | 16 - .../es-abstract/2018/SameValueZero.js | 9 - .../es-abstract/2018/SecFromTime.js | 14 - .../node_modules/es-abstract/2018/Set.js | 47 - .../es-abstract/2018/SetFunctionLength.js | 31 - .../es-abstract/2018/SetFunctionName.js | 44 - .../es-abstract/2018/SetIntegrityLevel.js | 57 - .../es-abstract/2018/SpeciesConstructor.js | 32 - .../2018/StrictEqualityComparison.js | 17 - .../es-abstract/2018/StringGetOwnProperty.js | 48 - .../2018/SymbolDescriptiveString.js | 20 - .../es-abstract/2018/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2018/TimeClip.js | 21 - .../es-abstract/2018/TimeFromYear.js | 11 - .../es-abstract/2018/TimeString.js | 25 - .../es-abstract/2018/TimeWithinDay.js | 12 - .../es-abstract/2018/ToBoolean.js | 5 - .../es-abstract/2018/ToDateString.js | 22 - .../node_modules/es-abstract/2018/ToIndex.js | 26 - .../node_modules/es-abstract/2018/ToInt16.js | 10 - .../node_modules/es-abstract/2018/ToInt32.js | 9 - .../node_modules/es-abstract/2018/ToInt8.js | 10 - .../es-abstract/2018/ToInteger.js | 12 - .../node_modules/es-abstract/2018/ToLength.js | 12 - .../node_modules/es-abstract/2018/ToNumber.js | 59 - .../node_modules/es-abstract/2018/ToObject.js | 14 - .../es-abstract/2018/ToPrimitive.js | 12 - .../es-abstract/2018/ToPropertyDescriptor.js | 52 - .../es-abstract/2018/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2018/ToString.js | 15 - .../node_modules/es-abstract/2018/ToUint16.js | 19 - .../node_modules/es-abstract/2018/ToUint32.js | 9 - .../node_modules/es-abstract/2018/ToUint8.js | 20 - .../es-abstract/2018/ToUint8Clamp.js | 19 - .../node_modules/es-abstract/2018/Type.js | 12 - .../es-abstract/2018/UTF16Encoding.js | 23 - .../es-abstract/2018/UnicodeEscape.js | 26 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2018/WeekDay.js | 10 - .../es-abstract/2018/YearFromTime.js | 16 - .../node_modules/es-abstract/2018/abs.js | 11 - .../node_modules/es-abstract/2018/floor.js | 11 - .../node_modules/es-abstract/2018/modulo.js | 9 - .../es-abstract/2018/msFromTime.js | 11 - .../es-abstract/2018/thisBooleanValue.js | 15 - .../es-abstract/2018/thisNumberValue.js | 18 - .../es-abstract/2018/thisStringValue.js | 15 - .../es-abstract/2018/thisSymbolValue.js | 19 - .../es-abstract/2018/thisTimeValue.js | 9 - .../2019/AbstractEqualityComparison.js | 37 - .../2019/AbstractRelationalComparison.js | 66 - .../2019/AddEntriesFromIterable.js | 52 - .../es-abstract/2019/AdvanceStringIndex.js | 47 - .../es-abstract/2019/ArrayCreate.js | 53 - .../es-abstract/2019/ArraySetLength.js | 85 - .../es-abstract/2019/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2019/Call.js | 13 - .../2019/CanonicalNumericIndexString.js | 22 - .../2019/CompletePropertyDescriptor.js | 39 - .../es-abstract/2019/CopyDataProperties.js | 68 - .../es-abstract/2019/CreateDataProperty.js | 45 - .../2019/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2019/CreateHTML.js | 30 - .../2019/CreateIterResultObject.js | 19 - .../2019/CreateListFromArrayLike.js | 43 - .../es-abstract/2019/CreateMethodProperty.js | 40 - .../es-abstract/2019/DateFromTime.js | 54 - .../es-abstract/2019/DateString.js | 30 - .../node_modules/es-abstract/2019/Day.js | 11 - .../es-abstract/2019/DayFromYear.js | 10 - .../es-abstract/2019/DayWithinYear.js | 11 - .../es-abstract/2019/DaysInYear.js | 18 - .../es-abstract/2019/DefinePropertyOrThrow.js | 50 - .../es-abstract/2019/DeletePropertyOrThrow.js | 27 - .../2019/EnumerableOwnPropertyNames.js | 43 - .../es-abstract/2019/FlattenIntoArray.js | 58 - .../2019/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2019/Get.js | 30 - .../es-abstract/2019/GetIterator.js | 35 - .../es-abstract/2019/GetMethod.js | 42 - .../es-abstract/2019/GetOwnPropertyKeys.js | 31 - .../2019/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2019/GetSubstitution.js | 128 - .../node_modules/es-abstract/2019/GetV.js | 29 - .../es-abstract/2019/HasOwnProperty.js | 22 - .../es-abstract/2019/HasProperty.js | 20 - .../es-abstract/2019/HourFromTime.js | 14 - .../es-abstract/2019/InLeapYear.js | 21 - .../es-abstract/2019/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2019/Invoke.js | 22 - .../es-abstract/2019/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2019/IsArray.js | 14 - .../es-abstract/2019/IsCallable.js | 5 - .../es-abstract/2019/IsConcatSpreadable.js | 25 - .../es-abstract/2019/IsConstructor.js | 40 - .../es-abstract/2019/IsDataDescriptor.js | 23 - .../es-abstract/2019/IsExtensible.js | 20 - .../es-abstract/2019/IsGenericDescriptor.js | 23 - .../es-abstract/2019/IsInteger.js | 17 - .../es-abstract/2019/IsPromise.js | 24 - .../es-abstract/2019/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2019/IsRegExp.js | 24 - .../es-abstract/2019/IsStringPrefix.js | 47 - .../es-abstract/2019/IterableToList.js | 24 - .../es-abstract/2019/IteratorClose.js | 50 - .../es-abstract/2019/IteratorComplete.js | 18 - .../es-abstract/2019/IteratorNext.js | 18 - .../es-abstract/2019/IteratorStep.js | 13 - .../es-abstract/2019/IteratorValue.js | 18 - .../node_modules/es-abstract/2019/MakeDate.js | 13 - .../node_modules/es-abstract/2019/MakeDay.js | 33 - .../node_modules/es-abstract/2019/MakeTime.js | 23 - .../es-abstract/2019/MinFromTime.js | 14 - .../es-abstract/2019/MonthFromTime.js | 47 - .../es-abstract/2019/NumberToString.js | 19 - .../es-abstract/2019/ObjectCreate.js | 37 - .../2019/OrdinaryCreateFromConstructor.js | 20 - .../2019/OrdinaryDefineOwnProperty.js | 61 - .../2019/OrdinaryGetOwnProperty.js | 44 - .../2019/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2019/OrdinaryHasInstance.js | 25 - .../es-abstract/2019/OrdinaryHasProperty.js | 20 - .../2019/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2019/PromiseResolve.js | 15 - .../es-abstract/2019/QuoteJSONString.js | 55 - .../es-abstract/2019/RegExpExec.js | 32 - .../2019/RequireObjectCoercible.js | 3 - .../es-abstract/2019/SameValue.js | 13 - .../es-abstract/2019/SameValueNonNumber.js | 16 - .../es-abstract/2019/SameValueZero.js | 9 - .../es-abstract/2019/SecFromTime.js | 14 - .../node_modules/es-abstract/2019/Set.js | 47 - .../es-abstract/2019/SetFunctionLength.js | 31 - .../es-abstract/2019/SetFunctionName.js | 44 - .../es-abstract/2019/SetIntegrityLevel.js | 57 - .../es-abstract/2019/SpeciesConstructor.js | 32 - .../2019/StrictEqualityComparison.js | 17 - .../es-abstract/2019/StringGetOwnProperty.js | 48 - .../2019/SymbolDescriptiveString.js | 20 - .../es-abstract/2019/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2019/TimeClip.js | 21 - .../es-abstract/2019/TimeFromYear.js | 11 - .../es-abstract/2019/TimeString.js | 25 - .../es-abstract/2019/TimeWithinDay.js | 12 - .../es-abstract/2019/ToBoolean.js | 5 - .../es-abstract/2019/ToDateString.js | 22 - .../node_modules/es-abstract/2019/ToIndex.js | 26 - .../node_modules/es-abstract/2019/ToInt16.js | 10 - .../node_modules/es-abstract/2019/ToInt32.js | 9 - .../node_modules/es-abstract/2019/ToInt8.js | 10 - .../es-abstract/2019/ToInteger.js | 12 - .../node_modules/es-abstract/2019/ToLength.js | 12 - .../node_modules/es-abstract/2019/ToNumber.js | 59 - .../node_modules/es-abstract/2019/ToObject.js | 14 - .../es-abstract/2019/ToPrimitive.js | 12 - .../es-abstract/2019/ToPropertyDescriptor.js | 52 - .../es-abstract/2019/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2019/ToString.js | 15 - .../node_modules/es-abstract/2019/ToUint16.js | 19 - .../node_modules/es-abstract/2019/ToUint32.js | 9 - .../node_modules/es-abstract/2019/ToUint8.js | 20 - .../es-abstract/2019/ToUint8Clamp.js | 19 - .../es-abstract/2019/TrimString.js | 29 - .../node_modules/es-abstract/2019/Type.js | 12 - .../es-abstract/2019/UTF16Encoding.js | 23 - .../es-abstract/2019/UnicodeEscape.js | 26 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2019/WeekDay.js | 10 - .../es-abstract/2019/YearFromTime.js | 16 - .../node_modules/es-abstract/2019/abs.js | 11 - .../node_modules/es-abstract/2019/floor.js | 11 - .../node_modules/es-abstract/2019/modulo.js | 9 - .../es-abstract/2019/msFromTime.js | 11 - .../es-abstract/2019/thisBooleanValue.js | 15 - .../es-abstract/2019/thisNumberValue.js | 18 - .../es-abstract/2019/thisStringValue.js | 15 - .../es-abstract/2019/thisSymbolValue.js | 19 - .../es-abstract/2019/thisTimeValue.js | 3 - .../2020/AbstractEqualityComparison.js | 37 - .../2020/AbstractRelationalComparison.js | 66 - .../2020/AddEntriesFromIterable.js | 52 - .../es-abstract/2020/AdvanceStringIndex.js | 34 - .../es-abstract/2020/ArrayCreate.js | 53 - .../es-abstract/2020/ArraySetLength.js | 85 - .../es-abstract/2020/ArraySpeciesCreate.js | 46 - .../es-abstract/2020/BigIntBitwiseOp.js | 66 - .../es-abstract/2020/BinaryAnd.js | 14 - .../node_modules/es-abstract/2020/BinaryOr.js | 14 - .../es-abstract/2020/BinaryXor.js | 14 - .../node_modules/es-abstract/2020/Call.js | 13 - .../2020/CanonicalNumericIndexString.js | 22 - .../es-abstract/2020/CodePointAt.js | 58 - .../2020/CompletePropertyDescriptor.js | 39 - .../es-abstract/2020/CopyDataProperties.js | 68 - .../es-abstract/2020/CreateDataProperty.js | 45 - .../2020/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2020/CreateHTML.js | 30 - .../2020/CreateIterResultObject.js | 19 - .../2020/CreateListFromArrayLike.js | 44 - .../es-abstract/2020/CreateMethodProperty.js | 40 - .../es-abstract/2020/DateFromTime.js | 54 - .../es-abstract/2020/DateString.js | 30 - .../node_modules/es-abstract/2020/Day.js | 11 - .../es-abstract/2020/DayFromYear.js | 10 - .../es-abstract/2020/DayWithinYear.js | 11 - .../es-abstract/2020/DaysInYear.js | 18 - .../es-abstract/2020/DefinePropertyOrThrow.js | 50 - .../es-abstract/2020/DeletePropertyOrThrow.js | 27 - .../2020/EnumerableOwnPropertyNames.js | 43 - .../es-abstract/2020/FlattenIntoArray.js | 58 - .../2020/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2020/Get.js | 30 - .../es-abstract/2020/GetIterator.js | 35 - .../es-abstract/2020/GetMethod.js | 42 - .../es-abstract/2020/GetOwnPropertyKeys.js | 31 - .../2020/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2020/GetSubstitution.js | 128 - .../node_modules/es-abstract/2020/GetV.js | 29 - .../es-abstract/2020/HasOwnProperty.js | 22 - .../es-abstract/2020/HasProperty.js | 20 - .../es-abstract/2020/HourFromTime.js | 14 - .../es-abstract/2020/InLeapYear.js | 21 - .../es-abstract/2020/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2020/Invoke.js | 22 - .../es-abstract/2020/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2020/IsArray.js | 14 - .../es-abstract/2020/IsBigIntElementType.js | 7 - .../es-abstract/2020/IsCallable.js | 5 - .../es-abstract/2020/IsConcatSpreadable.js | 25 - .../es-abstract/2020/IsConstructor.js | 40 - .../es-abstract/2020/IsDataDescriptor.js | 23 - .../es-abstract/2020/IsExtensible.js | 20 - .../es-abstract/2020/IsGenericDescriptor.js | 23 - .../es-abstract/2020/IsInteger.js | 17 - .../es-abstract/2020/IsNoTearConfiguration.js | 16 - .../es-abstract/2020/IsNonNegativeInteger.js | 9 - .../es-abstract/2020/IsPromise.js | 24 - .../es-abstract/2020/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2020/IsRegExp.js | 24 - .../es-abstract/2020/IsStringPrefix.js | 47 - .../2020/IsUnclampedIntegerElementType.js | 12 - .../es-abstract/2020/IsUnsignedElementType.js | 11 - .../es-abstract/2020/IterableToList.js | 24 - .../es-abstract/2020/IteratorClose.js | 50 - .../es-abstract/2020/IteratorComplete.js | 18 - .../es-abstract/2020/IteratorNext.js | 18 - .../es-abstract/2020/IteratorStep.js | 13 - .../es-abstract/2020/IteratorValue.js | 18 - .../es-abstract/2020/LengthOfArrayLike.js | 20 - .../node_modules/es-abstract/2020/MakeDate.js | 13 - .../node_modules/es-abstract/2020/MakeDay.js | 33 - .../node_modules/es-abstract/2020/MakeTime.js | 23 - .../es-abstract/2020/MinFromTime.js | 14 - .../es-abstract/2020/MonthFromTime.js | 47 - .../es-abstract/2020/NumberBitwiseOp.js | 25 - .../2020/OrdinaryCreateFromConstructor.js | 20 - .../2020/OrdinaryDefineOwnProperty.js | 61 - .../2020/OrdinaryGetOwnProperty.js | 44 - .../2020/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2020/OrdinaryHasInstance.js | 25 - .../es-abstract/2020/OrdinaryHasProperty.js | 20 - .../es-abstract/2020/OrdinaryObjectCreate.js | 46 - .../2020/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2020/PromiseResolve.js | 15 - .../es-abstract/2020/QuoteJSONString.js | 55 - .../es-abstract/2020/RegExpExec.js | 32 - .../2020/RequireObjectCoercible.js | 3 - .../es-abstract/2020/SameValue.js | 13 - .../es-abstract/2020/SameValueNonNumeric.js | 21 - .../es-abstract/2020/SameValueZero.js | 9 - .../es-abstract/2020/SecFromTime.js | 14 - .../node_modules/es-abstract/2020/Set.js | 47 - .../es-abstract/2020/SetFunctionLength.js | 31 - .../es-abstract/2020/SetFunctionName.js | 44 - .../es-abstract/2020/SetIntegrityLevel.js | 57 - .../es-abstract/2020/SpeciesConstructor.js | 32 - .../2020/StrictEqualityComparison.js | 17 - .../es-abstract/2020/StringGetOwnProperty.js | 48 - .../es-abstract/2020/StringPad.js | 43 - .../2020/SymbolDescriptiveString.js | 20 - .../es-abstract/2020/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2020/TimeClip.js | 21 - .../es-abstract/2020/TimeFromYear.js | 11 - .../es-abstract/2020/TimeString.js | 25 - .../es-abstract/2020/TimeWithinDay.js | 12 - .../es-abstract/2020/ToBoolean.js | 5 - .../es-abstract/2020/ToDateString.js | 22 - .../node_modules/es-abstract/2020/ToIndex.js | 26 - .../node_modules/es-abstract/2020/ToInt16.js | 10 - .../node_modules/es-abstract/2020/ToInt32.js | 9 - .../node_modules/es-abstract/2020/ToInt8.js | 10 - .../es-abstract/2020/ToInteger.js | 15 - .../node_modules/es-abstract/2020/ToLength.js | 12 - .../node_modules/es-abstract/2020/ToNumber.js | 59 - .../es-abstract/2020/ToNumeric.js | 21 - .../node_modules/es-abstract/2020/ToObject.js | 14 - .../es-abstract/2020/ToPrimitive.js | 12 - .../es-abstract/2020/ToPropertyDescriptor.js | 52 - .../es-abstract/2020/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2020/ToString.js | 15 - .../node_modules/es-abstract/2020/ToUint16.js | 19 - .../node_modules/es-abstract/2020/ToUint32.js | 9 - .../node_modules/es-abstract/2020/ToUint8.js | 20 - .../es-abstract/2020/ToUint8Clamp.js | 19 - .../es-abstract/2020/TrimString.js | 29 - .../node_modules/es-abstract/2020/Type.js | 15 - .../es-abstract/2020/UTF16DecodeString.js | 29 - .../2020/UTF16DecodeSurrogatePair.js | 19 - .../es-abstract/2020/UTF16Encoding.js | 23 - .../es-abstract/2020/UnicodeEscape.js | 27 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2020/WeekDay.js | 10 - .../es-abstract/2020/YearFromTime.js | 16 - .../node_modules/es-abstract/2020/abs.js | 11 - .../node_modules/es-abstract/2020/floor.js | 11 - .../node_modules/es-abstract/2020/modulo.js | 9 - .../es-abstract/2020/msFromTime.js | 11 - .../es-abstract/2020/thisBigIntValue.js | 22 - .../es-abstract/2020/thisBooleanValue.js | 15 - .../es-abstract/2020/thisNumberValue.js | 18 - .../es-abstract/2020/thisStringValue.js | 15 - .../es-abstract/2020/thisSymbolValue.js | 19 - .../es-abstract/2020/thisTimeValue.js | 3 - .../5/AbstractEqualityComparison.js | 37 - .../5/AbstractRelationalComparison.js | 66 - .../es-abstract/5/CheckObjectCoercible.js | 14 - .../es-abstract/5/DateFromTime.js | 54 - .../node_modules/es-abstract/5/Day.js | 11 - .../node_modules/es-abstract/5/DayFromYear.js | 10 - .../es-abstract/5/DayWithinYear.js | 11 - .../node_modules/es-abstract/5/DaysInYear.js | 18 - .../es-abstract/5/FromPropertyDescriptor.js | 39 - .../es-abstract/5/HourFromTime.js | 14 - .../node_modules/es-abstract/5/InLeapYear.js | 21 - .../es-abstract/5/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/5/IsCallable.js | 5 - .../es-abstract/5/IsDataDescriptor.js | 23 - .../es-abstract/5/IsGenericDescriptor.js | 23 - .../es-abstract/5/IsPropertyDescriptor.js | 17 - .../node_modules/es-abstract/5/MakeDate.js | 13 - .../node_modules/es-abstract/5/MakeDay.js | 33 - .../node_modules/es-abstract/5/MakeTime.js | 23 - .../node_modules/es-abstract/5/MinFromTime.js | 14 - .../es-abstract/5/MonthFromTime.js | 47 - .../node_modules/es-abstract/5/SameValue.js | 13 - .../node_modules/es-abstract/5/SecFromTime.js | 14 - .../es-abstract/5/StrictEqualityComparison.js | 17 - .../node_modules/es-abstract/5/TimeClip.js | 21 - .../es-abstract/5/TimeFromYear.js | 11 - .../es-abstract/5/TimeWithinDay.js | 12 - .../node_modules/es-abstract/5/ToBoolean.js | 5 - .../node_modules/es-abstract/5/ToInt32.js | 9 - .../node_modules/es-abstract/5/ToInteger.js | 18 - .../node_modules/es-abstract/5/ToNumber.js | 7 - .../node_modules/es-abstract/5/ToObject.js | 14 - .../node_modules/es-abstract/5/ToPrimitive.js | 5 - .../es-abstract/5/ToPropertyDescriptor.js | 52 - .../node_modules/es-abstract/5/ToString.js | 12 - .../node_modules/es-abstract/5/ToUint16.js | 19 - .../node_modules/es-abstract/5/ToUint32.js | 9 - .../node_modules/es-abstract/5/Type.js | 24 - .../node_modules/es-abstract/5/WeekDay.js | 10 - .../es-abstract/5/YearFromTime.js | 16 - .../node_modules/es-abstract/5/abs.js | 11 - .../node_modules/es-abstract/5/floor.js | 11 - .../node_modules/es-abstract/5/modulo.js | 9 - .../node_modules/es-abstract/5/msFromTime.js | 11 - .../node_modules/es-abstract/CHANGELOG.md | 387 - .../node_modules/es-abstract/GetIntrinsic.js | 289 - .../node_modules/es-abstract/LICENSE | 21 - .../node_modules/es-abstract/README.md | 48 - .../node_modules/es-abstract/es2015.js | 119 - .../node_modules/es-abstract/es2016.js | 124 - .../node_modules/es-abstract/es2017.js | 126 - .../node_modules/es-abstract/es2018.js | 134 - .../node_modules/es-abstract/es2019.js | 137 - .../node_modules/es-abstract/es2020.js | 153 - .../node_modules/es-abstract/es5.js | 51 - .../node_modules/es-abstract/es6.js | 3 - .../node_modules/es-abstract/es7.js | 3 - .../es-abstract/helpers/DefineOwnProperty.js | 45 - .../es-abstract/helpers/OwnPropertyKeys.js | 22 - .../es-abstract/helpers/assertRecord.js | 48 - .../es-abstract/helpers/assign.js | 22 - .../es-abstract/helpers/callBind.js | 34 - .../es-abstract/helpers/callBound.js | 15 - .../node_modules/es-abstract/helpers/every.js | 10 - .../es-abstract/helpers/forEach.js | 7 - .../es-abstract/helpers/getInferredName.js | 10 - .../es-abstract/helpers/getIteratorMethod.js | 45 - .../helpers/getOwnPropertyDescriptor.js | 15 - .../es-abstract/helpers/getProto.js | 15 - .../helpers/getSymbolDescription.js | 41 - .../es-abstract/helpers/isFinite.js | 5 - .../es-abstract/helpers/isLeadingSurrogate.js | 5 - .../node_modules/es-abstract/helpers/isNaN.js | 5 - .../es-abstract/helpers/isPrefixOf.js | 13 - .../es-abstract/helpers/isPrimitive.js | 5 - .../helpers/isPropertyDescriptor.js | 31 - .../helpers/isSamePropertyDescriptor.js | 20 - .../helpers/isTrailingSurrogate.js | 5 - .../es-abstract/helpers/maxSafeInteger.js | 8 - .../node_modules/es-abstract/helpers/mod.js | 8 - .../es-abstract/helpers/padTimeComponent.js | 9 - .../es-abstract/helpers/regexTester.js | 11 - .../es-abstract/helpers/setProto.js | 16 - .../node_modules/es-abstract/helpers/sign.js | 5 - .../es-abstract/helpers/timeConstants.js | 19 - .../node_modules/es-abstract/index.js | 28 - .../es-abstract/operations/.eslintrc | 5 - .../es-abstract/operations/2015.js | 249 - .../es-abstract/operations/2016.js | 276 - .../es-abstract/operations/2017.js | 324 - .../es-abstract/operations/2018.js | 350 - .../es-abstract/operations/2019.js | 355 - .../node_modules/es-abstract/package.json | 116 - .../es-abstract/test/GetIntrinsic.js | 207 - .../node_modules/es-abstract/test/diffOps.js | 27 - .../node_modules/es-abstract/test/es2015.js | 146 - .../node_modules/es-abstract/test/es2016.js | 168 - .../node_modules/es-abstract/test/es2017.js | 214 - .../node_modules/es-abstract/test/es2018.js | 233 - .../node_modules/es-abstract/test/es2019.js | 238 - .../node_modules/es-abstract/test/es2020.js | 267 - .../node_modules/es-abstract/test/es5.js | 786 -- .../node_modules/es-abstract/test/es6.js | 18 - .../node_modules/es-abstract/test/es7.js | 18 - .../test/helpers/OwnPropertyKeys.js | 42 - .../es-abstract/test/helpers/assertRecord.js | 60 - .../test/helpers/createBoundESNamespace.js | 21 - .../test/helpers/defineProperty.js | 27 - .../test/helpers/getSymbolDescription.js | 67 - .../test/helpers/runManifestTest.js | 27 - .../es-abstract/test/helpers/values.js | 127 - .../node_modules/es-abstract/test/index.js | 36 - .../es-abstract/test/ses-compat.js | 8 - .../node_modules/es-abstract/test/tests.js | 4933 ---------- .../string.prototype.trimend/package.json | 66 - .../string.prototype.trimend/polyfill.js | 15 - .../string.prototype.trimend/shim.js | 14 - .../string.prototype.trimend/test/index.js | 17 - .../string.prototype.trimend/test/shimmed.js | 37 - .../string.prototype.trimend/test/tests.js | 26 - .../string.prototype.trimstart/.editorconfig | 20 - .../string.prototype.trimstart/.eslintrc | 15 - .../.github/workflows/rebase.yml | 15 - .../.github/workflows/require-allow-edits.yml | 14 - .../string.prototype.trimstart/.travis.yml | 12 - .../string.prototype.trimstart/CHANGELOG.md | 51 - .../string.prototype.trimstart/LICENSE | 21 - .../string.prototype.trimstart/README.md | 47 - .../string.prototype.trimstart/auto.js | 3 - .../implementation.js | 12 - .../string.prototype.trimstart/index.js | 18 - .../node_modules/es-abstract/.editorconfig | 13 - .../node_modules/es-abstract/.eslintignore | 1 - .../node_modules/es-abstract/.eslintrc | 72 - .../node_modules/es-abstract/.gitattributes | 612 -- .../es-abstract/.github/FUNDING.yml | 12 - .../.github/workflows/codeql-analysis.yml | 52 - .../es-abstract/.github/workflows/rebase.yml | 15 - .../node_modules/es-abstract/.nycrc | 14 - .../node_modules/es-abstract/.travis.yml | 38 - .../2015/AbstractEqualityComparison.js | 37 - .../2015/AbstractRelationalComparison.js | 66 - .../es-abstract/2015/AdvanceStringIndex.js | 47 - .../es-abstract/2015/ArrayCreate.js | 53 - .../es-abstract/2015/ArraySetLength.js | 85 - .../es-abstract/2015/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2015/Call.js | 13 - .../2015/CanonicalNumericIndexString.js | 22 - .../2015/CompletePropertyDescriptor.js | 39 - .../es-abstract/2015/CreateDataProperty.js | 45 - .../2015/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2015/CreateHTML.js | 30 - .../2015/CreateIterResultObject.js | 19 - .../2015/CreateListFromArrayLike.js | 43 - .../es-abstract/2015/CreateMethodProperty.js | 40 - .../es-abstract/2015/DateFromTime.js | 54 - .../node_modules/es-abstract/2015/Day.js | 11 - .../es-abstract/2015/DayFromYear.js | 10 - .../es-abstract/2015/DayWithinYear.js | 11 - .../es-abstract/2015/DaysInYear.js | 18 - .../es-abstract/2015/DefinePropertyOrThrow.js | 50 - .../es-abstract/2015/DeletePropertyOrThrow.js | 27 - .../es-abstract/2015/EnumerableOwnNames.js | 19 - .../2015/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2015/Get.js | 30 - .../es-abstract/2015/GetIterator.js | 35 - .../es-abstract/2015/GetMethod.js | 42 - .../es-abstract/2015/GetOwnPropertyKeys.js | 31 - .../2015/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2015/GetSubstitution.js | 104 - .../node_modules/es-abstract/2015/GetV.js | 29 - .../es-abstract/2015/HasOwnProperty.js | 22 - .../es-abstract/2015/HasProperty.js | 20 - .../es-abstract/2015/HourFromTime.js | 14 - .../es-abstract/2015/InLeapYear.js | 21 - .../es-abstract/2015/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2015/Invoke.js | 22 - .../es-abstract/2015/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2015/IsArray.js | 14 - .../es-abstract/2015/IsCallable.js | 5 - .../es-abstract/2015/IsConcatSpreadable.js | 25 - .../es-abstract/2015/IsConstructor.js | 40 - .../es-abstract/2015/IsDataDescriptor.js | 23 - .../es-abstract/2015/IsExtensible.js | 20 - .../es-abstract/2015/IsGenericDescriptor.js | 23 - .../es-abstract/2015/IsInteger.js | 17 - .../es-abstract/2015/IsPromise.js | 24 - .../es-abstract/2015/IsPropertyDescriptor.js | 17 - .../es-abstract/2015/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2015/IsRegExp.js | 24 - .../es-abstract/2015/IteratorClose.js | 50 - .../es-abstract/2015/IteratorComplete.js | 18 - .../es-abstract/2015/IteratorNext.js | 18 - .../es-abstract/2015/IteratorStep.js | 13 - .../es-abstract/2015/IteratorValue.js | 18 - .../node_modules/es-abstract/2015/MakeDate.js | 13 - .../node_modules/es-abstract/2015/MakeDay.js | 33 - .../node_modules/es-abstract/2015/MakeTime.js | 23 - .../es-abstract/2015/MinFromTime.js | 14 - .../es-abstract/2015/MonthFromTime.js | 47 - .../es-abstract/2015/ObjectCreate.js | 37 - .../2015/OrdinaryCreateFromConstructor.js | 20 - .../2015/OrdinaryDefineOwnProperty.js | 61 - .../2015/OrdinaryGetOwnProperty.js | 44 - .../es-abstract/2015/OrdinaryHasInstance.js | 25 - .../es-abstract/2015/OrdinaryHasProperty.js | 20 - .../es-abstract/2015/QuoteJSONString.js | 52 - .../es-abstract/2015/RegExpExec.js | 32 - .../2015/RequireObjectCoercible.js | 3 - .../es-abstract/2015/SameValue.js | 13 - .../es-abstract/2015/SameValueZero.js | 9 - .../es-abstract/2015/SecFromTime.js | 14 - .../node_modules/es-abstract/2015/Set.js | 47 - .../es-abstract/2015/SetFunctionName.js | 44 - .../es-abstract/2015/SetIntegrityLevel.js | 57 - .../es-abstract/2015/SpeciesConstructor.js | 32 - .../2015/StrictEqualityComparison.js | 17 - .../2015/SymbolDescriptiveString.js | 20 - .../es-abstract/2015/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2015/TimeClip.js | 21 - .../es-abstract/2015/TimeFromYear.js | 11 - .../es-abstract/2015/TimeWithinDay.js | 12 - .../es-abstract/2015/ToBoolean.js | 5 - .../es-abstract/2015/ToDateString.js | 22 - .../node_modules/es-abstract/2015/ToInt16.js | 10 - .../node_modules/es-abstract/2015/ToInt32.js | 9 - .../node_modules/es-abstract/2015/ToInt8.js | 10 - .../es-abstract/2015/ToInteger.js | 12 - .../node_modules/es-abstract/2015/ToLength.js | 12 - .../node_modules/es-abstract/2015/ToNumber.js | 59 - .../node_modules/es-abstract/2015/ToObject.js | 14 - .../es-abstract/2015/ToPrimitive.js | 12 - .../es-abstract/2015/ToPropertyDescriptor.js | 52 - .../es-abstract/2015/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2015/ToString.js | 15 - .../node_modules/es-abstract/2015/ToUint16.js | 19 - .../node_modules/es-abstract/2015/ToUint32.js | 9 - .../node_modules/es-abstract/2015/ToUint8.js | 20 - .../es-abstract/2015/ToUint8Clamp.js | 19 - .../node_modules/es-abstract/2015/Type.js | 12 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2015/WeekDay.js | 10 - .../es-abstract/2015/YearFromTime.js | 16 - .../node_modules/es-abstract/2015/abs.js | 11 - .../node_modules/es-abstract/2015/floor.js | 11 - .../node_modules/es-abstract/2015/modulo.js | 9 - .../es-abstract/2015/msFromTime.js | 11 - .../es-abstract/2015/thisBooleanValue.js | 15 - .../es-abstract/2015/thisNumberValue.js | 18 - .../es-abstract/2015/thisStringValue.js | 15 - .../es-abstract/2015/thisTimeValue.js | 9 - .../2016/AbstractEqualityComparison.js | 37 - .../2016/AbstractRelationalComparison.js | 66 - .../es-abstract/2016/AdvanceStringIndex.js | 47 - .../es-abstract/2016/ArrayCreate.js | 53 - .../es-abstract/2016/ArraySetLength.js | 85 - .../es-abstract/2016/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2016/Call.js | 13 - .../2016/CanonicalNumericIndexString.js | 22 - .../2016/CompletePropertyDescriptor.js | 39 - .../es-abstract/2016/CreateDataProperty.js | 45 - .../2016/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2016/CreateHTML.js | 30 - .../2016/CreateIterResultObject.js | 19 - .../2016/CreateListFromArrayLike.js | 43 - .../es-abstract/2016/CreateMethodProperty.js | 40 - .../es-abstract/2016/DateFromTime.js | 54 - .../node_modules/es-abstract/2016/Day.js | 11 - .../es-abstract/2016/DayFromYear.js | 10 - .../es-abstract/2016/DayWithinYear.js | 11 - .../es-abstract/2016/DaysInYear.js | 18 - .../es-abstract/2016/DefinePropertyOrThrow.js | 50 - .../es-abstract/2016/DeletePropertyOrThrow.js | 27 - .../es-abstract/2016/EnumerableOwnNames.js | 19 - .../2016/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2016/Get.js | 30 - .../es-abstract/2016/GetIterator.js | 35 - .../es-abstract/2016/GetMethod.js | 42 - .../es-abstract/2016/GetOwnPropertyKeys.js | 31 - .../2016/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2016/GetSubstitution.js | 104 - .../node_modules/es-abstract/2016/GetV.js | 29 - .../es-abstract/2016/HasOwnProperty.js | 22 - .../es-abstract/2016/HasProperty.js | 20 - .../es-abstract/2016/HourFromTime.js | 14 - .../es-abstract/2016/InLeapYear.js | 21 - .../es-abstract/2016/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2016/Invoke.js | 22 - .../es-abstract/2016/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2016/IsArray.js | 14 - .../es-abstract/2016/IsCallable.js | 5 - .../es-abstract/2016/IsConcatSpreadable.js | 25 - .../es-abstract/2016/IsConstructor.js | 40 - .../es-abstract/2016/IsDataDescriptor.js | 23 - .../es-abstract/2016/IsExtensible.js | 20 - .../es-abstract/2016/IsGenericDescriptor.js | 23 - .../es-abstract/2016/IsInteger.js | 17 - .../es-abstract/2016/IsPromise.js | 24 - .../es-abstract/2016/IsPropertyDescriptor.js | 17 - .../es-abstract/2016/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2016/IsRegExp.js | 24 - .../es-abstract/2016/IterableToArrayLike.js | 56 - .../es-abstract/2016/IteratorClose.js | 50 - .../es-abstract/2016/IteratorComplete.js | 18 - .../es-abstract/2016/IteratorNext.js | 18 - .../es-abstract/2016/IteratorStep.js | 13 - .../es-abstract/2016/IteratorValue.js | 18 - .../node_modules/es-abstract/2016/MakeDate.js | 13 - .../node_modules/es-abstract/2016/MakeDay.js | 33 - .../node_modules/es-abstract/2016/MakeTime.js | 23 - .../es-abstract/2016/MinFromTime.js | 14 - .../es-abstract/2016/MonthFromTime.js | 47 - .../es-abstract/2016/ObjectCreate.js | 37 - .../2016/OrdinaryCreateFromConstructor.js | 20 - .../2016/OrdinaryDefineOwnProperty.js | 61 - .../2016/OrdinaryGetOwnProperty.js | 44 - .../2016/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2016/OrdinaryHasInstance.js | 25 - .../es-abstract/2016/OrdinaryHasProperty.js | 20 - .../2016/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2016/QuoteJSONString.js | 52 - .../es-abstract/2016/RegExpExec.js | 32 - .../2016/RequireObjectCoercible.js | 3 - .../es-abstract/2016/SameValue.js | 13 - .../es-abstract/2016/SameValueNonNumber.js | 16 - .../es-abstract/2016/SameValueZero.js | 9 - .../es-abstract/2016/SecFromTime.js | 14 - .../node_modules/es-abstract/2016/Set.js | 47 - .../es-abstract/2016/SetFunctionName.js | 44 - .../es-abstract/2016/SetIntegrityLevel.js | 57 - .../es-abstract/2016/SpeciesConstructor.js | 32 - .../2016/StrictEqualityComparison.js | 17 - .../2016/SymbolDescriptiveString.js | 20 - .../es-abstract/2016/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2016/TimeClip.js | 21 - .../es-abstract/2016/TimeFromYear.js | 11 - .../es-abstract/2016/TimeWithinDay.js | 12 - .../es-abstract/2016/ToBoolean.js | 5 - .../es-abstract/2016/ToDateString.js | 22 - .../node_modules/es-abstract/2016/ToInt16.js | 10 - .../node_modules/es-abstract/2016/ToInt32.js | 9 - .../node_modules/es-abstract/2016/ToInt8.js | 10 - .../es-abstract/2016/ToInteger.js | 12 - .../node_modules/es-abstract/2016/ToLength.js | 12 - .../node_modules/es-abstract/2016/ToNumber.js | 59 - .../node_modules/es-abstract/2016/ToObject.js | 14 - .../es-abstract/2016/ToPrimitive.js | 12 - .../es-abstract/2016/ToPropertyDescriptor.js | 52 - .../es-abstract/2016/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2016/ToString.js | 15 - .../node_modules/es-abstract/2016/ToUint16.js | 19 - .../node_modules/es-abstract/2016/ToUint32.js | 9 - .../node_modules/es-abstract/2016/ToUint8.js | 20 - .../es-abstract/2016/ToUint8Clamp.js | 19 - .../node_modules/es-abstract/2016/Type.js | 12 - .../es-abstract/2016/UTF16Encoding.js | 23 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2016/WeekDay.js | 10 - .../es-abstract/2016/YearFromTime.js | 16 - .../node_modules/es-abstract/2016/abs.js | 11 - .../node_modules/es-abstract/2016/floor.js | 11 - .../node_modules/es-abstract/2016/modulo.js | 9 - .../es-abstract/2016/msFromTime.js | 11 - .../es-abstract/2016/thisBooleanValue.js | 15 - .../es-abstract/2016/thisNumberValue.js | 18 - .../es-abstract/2016/thisStringValue.js | 15 - .../es-abstract/2016/thisTimeValue.js | 9 - .../2017/AbstractEqualityComparison.js | 37 - .../2017/AbstractRelationalComparison.js | 66 - .../es-abstract/2017/AdvanceStringIndex.js | 47 - .../es-abstract/2017/ArrayCreate.js | 53 - .../es-abstract/2017/ArraySetLength.js | 85 - .../es-abstract/2017/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2017/Call.js | 13 - .../2017/CanonicalNumericIndexString.js | 22 - .../2017/CompletePropertyDescriptor.js | 39 - .../es-abstract/2017/CreateDataProperty.js | 45 - .../2017/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2017/CreateHTML.js | 30 - .../2017/CreateIterResultObject.js | 19 - .../2017/CreateListFromArrayLike.js | 43 - .../es-abstract/2017/CreateMethodProperty.js | 40 - .../es-abstract/2017/DateFromTime.js | 54 - .../node_modules/es-abstract/2017/Day.js | 11 - .../es-abstract/2017/DayFromYear.js | 10 - .../es-abstract/2017/DayWithinYear.js | 11 - .../es-abstract/2017/DaysInYear.js | 18 - .../es-abstract/2017/DefinePropertyOrThrow.js | 50 - .../es-abstract/2017/DeletePropertyOrThrow.js | 27 - .../2017/EnumerableOwnProperties.js | 43 - .../2017/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2017/Get.js | 30 - .../es-abstract/2017/GetIterator.js | 35 - .../es-abstract/2017/GetMethod.js | 42 - .../es-abstract/2017/GetOwnPropertyKeys.js | 31 - .../2017/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2017/GetSubstitution.js | 104 - .../node_modules/es-abstract/2017/GetV.js | 29 - .../es-abstract/2017/HasOwnProperty.js | 22 - .../es-abstract/2017/HasProperty.js | 20 - .../es-abstract/2017/HourFromTime.js | 14 - .../es-abstract/2017/InLeapYear.js | 21 - .../es-abstract/2017/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2017/Invoke.js | 22 - .../es-abstract/2017/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2017/IsArray.js | 14 - .../es-abstract/2017/IsCallable.js | 5 - .../es-abstract/2017/IsConcatSpreadable.js | 25 - .../es-abstract/2017/IsConstructor.js | 40 - .../es-abstract/2017/IsDataDescriptor.js | 23 - .../es-abstract/2017/IsExtensible.js | 20 - .../es-abstract/2017/IsGenericDescriptor.js | 23 - .../es-abstract/2017/IsInteger.js | 17 - .../es-abstract/2017/IsPromise.js | 24 - .../es-abstract/2017/IsPropertyDescriptor.js | 17 - .../es-abstract/2017/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2017/IsRegExp.js | 24 - .../es-abstract/2017/IterableToList.js | 24 - .../es-abstract/2017/IteratorClose.js | 50 - .../es-abstract/2017/IteratorComplete.js | 18 - .../es-abstract/2017/IteratorNext.js | 18 - .../es-abstract/2017/IteratorStep.js | 13 - .../es-abstract/2017/IteratorValue.js | 18 - .../node_modules/es-abstract/2017/MakeDate.js | 13 - .../node_modules/es-abstract/2017/MakeDay.js | 33 - .../node_modules/es-abstract/2017/MakeTime.js | 23 - .../es-abstract/2017/MinFromTime.js | 14 - .../es-abstract/2017/MonthFromTime.js | 47 - .../es-abstract/2017/ObjectCreate.js | 37 - .../2017/OrdinaryCreateFromConstructor.js | 20 - .../2017/OrdinaryDefineOwnProperty.js | 61 - .../2017/OrdinaryGetOwnProperty.js | 44 - .../2017/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2017/OrdinaryHasInstance.js | 25 - .../es-abstract/2017/OrdinaryHasProperty.js | 20 - .../2017/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2017/QuoteJSONString.js | 52 - .../es-abstract/2017/RegExpExec.js | 32 - .../2017/RequireObjectCoercible.js | 3 - .../es-abstract/2017/SameValue.js | 13 - .../es-abstract/2017/SameValueNonNumber.js | 16 - .../es-abstract/2017/SameValueZero.js | 9 - .../es-abstract/2017/SecFromTime.js | 14 - .../node_modules/es-abstract/2017/Set.js | 47 - .../es-abstract/2017/SetFunctionName.js | 44 - .../es-abstract/2017/SetIntegrityLevel.js | 57 - .../es-abstract/2017/SpeciesConstructor.js | 32 - .../2017/StrictEqualityComparison.js | 17 - .../es-abstract/2017/StringGetOwnProperty.js | 48 - .../2017/SymbolDescriptiveString.js | 20 - .../es-abstract/2017/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2017/TimeClip.js | 21 - .../es-abstract/2017/TimeFromYear.js | 11 - .../es-abstract/2017/TimeWithinDay.js | 12 - .../es-abstract/2017/ToBoolean.js | 5 - .../es-abstract/2017/ToDateString.js | 22 - .../node_modules/es-abstract/2017/ToIndex.js | 26 - .../node_modules/es-abstract/2017/ToInt16.js | 10 - .../node_modules/es-abstract/2017/ToInt32.js | 9 - .../node_modules/es-abstract/2017/ToInt8.js | 10 - .../es-abstract/2017/ToInteger.js | 12 - .../node_modules/es-abstract/2017/ToLength.js | 12 - .../node_modules/es-abstract/2017/ToNumber.js | 59 - .../node_modules/es-abstract/2017/ToObject.js | 14 - .../es-abstract/2017/ToPrimitive.js | 12 - .../es-abstract/2017/ToPropertyDescriptor.js | 52 - .../es-abstract/2017/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2017/ToString.js | 15 - .../node_modules/es-abstract/2017/ToUint16.js | 19 - .../node_modules/es-abstract/2017/ToUint32.js | 9 - .../node_modules/es-abstract/2017/ToUint8.js | 20 - .../es-abstract/2017/ToUint8Clamp.js | 19 - .../node_modules/es-abstract/2017/Type.js | 12 - .../es-abstract/2017/UTF16Encoding.js | 23 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2017/WeekDay.js | 10 - .../es-abstract/2017/YearFromTime.js | 16 - .../node_modules/es-abstract/2017/abs.js | 11 - .../node_modules/es-abstract/2017/floor.js | 11 - .../node_modules/es-abstract/2017/modulo.js | 9 - .../es-abstract/2017/msFromTime.js | 11 - .../es-abstract/2017/thisBooleanValue.js | 15 - .../es-abstract/2017/thisNumberValue.js | 18 - .../es-abstract/2017/thisStringValue.js | 15 - .../es-abstract/2017/thisTimeValue.js | 9 - .../2018/AbstractEqualityComparison.js | 37 - .../2018/AbstractRelationalComparison.js | 66 - .../es-abstract/2018/AdvanceStringIndex.js | 47 - .../es-abstract/2018/ArrayCreate.js | 53 - .../es-abstract/2018/ArraySetLength.js | 85 - .../es-abstract/2018/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2018/Call.js | 13 - .../2018/CanonicalNumericIndexString.js | 22 - .../2018/CompletePropertyDescriptor.js | 39 - .../es-abstract/2018/CopyDataProperties.js | 68 - .../es-abstract/2018/CreateDataProperty.js | 45 - .../2018/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2018/CreateHTML.js | 30 - .../2018/CreateIterResultObject.js | 19 - .../2018/CreateListFromArrayLike.js | 43 - .../es-abstract/2018/CreateMethodProperty.js | 40 - .../es-abstract/2018/DateFromTime.js | 54 - .../es-abstract/2018/DateString.js | 30 - .../node_modules/es-abstract/2018/Day.js | 11 - .../es-abstract/2018/DayFromYear.js | 10 - .../es-abstract/2018/DayWithinYear.js | 11 - .../es-abstract/2018/DaysInYear.js | 18 - .../es-abstract/2018/DefinePropertyOrThrow.js | 50 - .../es-abstract/2018/DeletePropertyOrThrow.js | 27 - .../2018/EnumerableOwnPropertyNames.js | 43 - .../2018/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2018/Get.js | 30 - .../es-abstract/2018/GetIterator.js | 35 - .../es-abstract/2018/GetMethod.js | 42 - .../es-abstract/2018/GetOwnPropertyKeys.js | 31 - .../2018/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2018/GetSubstitution.js | 128 - .../node_modules/es-abstract/2018/GetV.js | 29 - .../es-abstract/2018/HasOwnProperty.js | 22 - .../es-abstract/2018/HasProperty.js | 20 - .../es-abstract/2018/HourFromTime.js | 14 - .../es-abstract/2018/InLeapYear.js | 21 - .../es-abstract/2018/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2018/Invoke.js | 22 - .../es-abstract/2018/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2018/IsArray.js | 14 - .../es-abstract/2018/IsCallable.js | 5 - .../es-abstract/2018/IsConcatSpreadable.js | 25 - .../es-abstract/2018/IsConstructor.js | 40 - .../es-abstract/2018/IsDataDescriptor.js | 23 - .../es-abstract/2018/IsExtensible.js | 20 - .../es-abstract/2018/IsGenericDescriptor.js | 23 - .../es-abstract/2018/IsInteger.js | 17 - .../es-abstract/2018/IsPromise.js | 24 - .../es-abstract/2018/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2018/IsRegExp.js | 24 - .../es-abstract/2018/IsStringPrefix.js | 47 - .../es-abstract/2018/IterableToList.js | 24 - .../es-abstract/2018/IteratorClose.js | 50 - .../es-abstract/2018/IteratorComplete.js | 18 - .../es-abstract/2018/IteratorNext.js | 18 - .../es-abstract/2018/IteratorStep.js | 13 - .../es-abstract/2018/IteratorValue.js | 18 - .../node_modules/es-abstract/2018/MakeDate.js | 13 - .../node_modules/es-abstract/2018/MakeDay.js | 33 - .../node_modules/es-abstract/2018/MakeTime.js | 23 - .../es-abstract/2018/MinFromTime.js | 14 - .../es-abstract/2018/MonthFromTime.js | 47 - .../es-abstract/2018/NumberToString.js | 19 - .../es-abstract/2018/ObjectCreate.js | 37 - .../2018/OrdinaryCreateFromConstructor.js | 20 - .../2018/OrdinaryDefineOwnProperty.js | 61 - .../2018/OrdinaryGetOwnProperty.js | 44 - .../2018/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2018/OrdinaryHasInstance.js | 25 - .../es-abstract/2018/OrdinaryHasProperty.js | 20 - .../2018/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2018/PromiseResolve.js | 15 - .../es-abstract/2018/QuoteJSONString.js | 48 - .../es-abstract/2018/RegExpExec.js | 32 - .../2018/RequireObjectCoercible.js | 3 - .../es-abstract/2018/SameValue.js | 13 - .../es-abstract/2018/SameValueNonNumber.js | 16 - .../es-abstract/2018/SameValueZero.js | 9 - .../es-abstract/2018/SecFromTime.js | 14 - .../node_modules/es-abstract/2018/Set.js | 47 - .../es-abstract/2018/SetFunctionLength.js | 31 - .../es-abstract/2018/SetFunctionName.js | 44 - .../es-abstract/2018/SetIntegrityLevel.js | 57 - .../es-abstract/2018/SpeciesConstructor.js | 32 - .../2018/StrictEqualityComparison.js | 17 - .../es-abstract/2018/StringGetOwnProperty.js | 48 - .../2018/SymbolDescriptiveString.js | 20 - .../es-abstract/2018/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2018/TimeClip.js | 21 - .../es-abstract/2018/TimeFromYear.js | 11 - .../es-abstract/2018/TimeString.js | 25 - .../es-abstract/2018/TimeWithinDay.js | 12 - .../es-abstract/2018/ToBoolean.js | 5 - .../es-abstract/2018/ToDateString.js | 22 - .../node_modules/es-abstract/2018/ToIndex.js | 26 - .../node_modules/es-abstract/2018/ToInt16.js | 10 - .../node_modules/es-abstract/2018/ToInt32.js | 9 - .../node_modules/es-abstract/2018/ToInt8.js | 10 - .../es-abstract/2018/ToInteger.js | 12 - .../node_modules/es-abstract/2018/ToLength.js | 12 - .../node_modules/es-abstract/2018/ToNumber.js | 59 - .../node_modules/es-abstract/2018/ToObject.js | 14 - .../es-abstract/2018/ToPrimitive.js | 12 - .../es-abstract/2018/ToPropertyDescriptor.js | 52 - .../es-abstract/2018/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2018/ToString.js | 15 - .../node_modules/es-abstract/2018/ToUint16.js | 19 - .../node_modules/es-abstract/2018/ToUint32.js | 9 - .../node_modules/es-abstract/2018/ToUint8.js | 20 - .../es-abstract/2018/ToUint8Clamp.js | 19 - .../node_modules/es-abstract/2018/Type.js | 12 - .../es-abstract/2018/UTF16Encoding.js | 23 - .../es-abstract/2018/UnicodeEscape.js | 26 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2018/WeekDay.js | 10 - .../es-abstract/2018/YearFromTime.js | 16 - .../node_modules/es-abstract/2018/abs.js | 11 - .../node_modules/es-abstract/2018/floor.js | 11 - .../node_modules/es-abstract/2018/modulo.js | 9 - .../es-abstract/2018/msFromTime.js | 11 - .../es-abstract/2018/thisBooleanValue.js | 15 - .../es-abstract/2018/thisNumberValue.js | 18 - .../es-abstract/2018/thisStringValue.js | 15 - .../es-abstract/2018/thisSymbolValue.js | 19 - .../es-abstract/2018/thisTimeValue.js | 9 - .../2019/AbstractEqualityComparison.js | 37 - .../2019/AbstractRelationalComparison.js | 66 - .../2019/AddEntriesFromIterable.js | 52 - .../es-abstract/2019/AdvanceStringIndex.js | 47 - .../es-abstract/2019/ArrayCreate.js | 53 - .../es-abstract/2019/ArraySetLength.js | 85 - .../es-abstract/2019/ArraySpeciesCreate.js | 46 - .../node_modules/es-abstract/2019/Call.js | 13 - .../2019/CanonicalNumericIndexString.js | 22 - .../2019/CompletePropertyDescriptor.js | 39 - .../es-abstract/2019/CopyDataProperties.js | 68 - .../es-abstract/2019/CreateDataProperty.js | 45 - .../2019/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2019/CreateHTML.js | 30 - .../2019/CreateIterResultObject.js | 19 - .../2019/CreateListFromArrayLike.js | 43 - .../es-abstract/2019/CreateMethodProperty.js | 40 - .../es-abstract/2019/DateFromTime.js | 54 - .../es-abstract/2019/DateString.js | 30 - .../node_modules/es-abstract/2019/Day.js | 11 - .../es-abstract/2019/DayFromYear.js | 10 - .../es-abstract/2019/DayWithinYear.js | 11 - .../es-abstract/2019/DaysInYear.js | 18 - .../es-abstract/2019/DefinePropertyOrThrow.js | 50 - .../es-abstract/2019/DeletePropertyOrThrow.js | 27 - .../2019/EnumerableOwnPropertyNames.js | 43 - .../es-abstract/2019/FlattenIntoArray.js | 58 - .../2019/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2019/Get.js | 30 - .../es-abstract/2019/GetIterator.js | 35 - .../es-abstract/2019/GetMethod.js | 42 - .../es-abstract/2019/GetOwnPropertyKeys.js | 31 - .../2019/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2019/GetSubstitution.js | 128 - .../node_modules/es-abstract/2019/GetV.js | 29 - .../es-abstract/2019/HasOwnProperty.js | 22 - .../es-abstract/2019/HasProperty.js | 20 - .../es-abstract/2019/HourFromTime.js | 14 - .../es-abstract/2019/InLeapYear.js | 21 - .../es-abstract/2019/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2019/Invoke.js | 22 - .../es-abstract/2019/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2019/IsArray.js | 14 - .../es-abstract/2019/IsCallable.js | 5 - .../es-abstract/2019/IsConcatSpreadable.js | 25 - .../es-abstract/2019/IsConstructor.js | 40 - .../es-abstract/2019/IsDataDescriptor.js | 23 - .../es-abstract/2019/IsExtensible.js | 20 - .../es-abstract/2019/IsGenericDescriptor.js | 23 - .../es-abstract/2019/IsInteger.js | 17 - .../es-abstract/2019/IsPromise.js | 24 - .../es-abstract/2019/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2019/IsRegExp.js | 24 - .../es-abstract/2019/IsStringPrefix.js | 47 - .../es-abstract/2019/IterableToList.js | 24 - .../es-abstract/2019/IteratorClose.js | 50 - .../es-abstract/2019/IteratorComplete.js | 18 - .../es-abstract/2019/IteratorNext.js | 18 - .../es-abstract/2019/IteratorStep.js | 13 - .../es-abstract/2019/IteratorValue.js | 18 - .../node_modules/es-abstract/2019/MakeDate.js | 13 - .../node_modules/es-abstract/2019/MakeDay.js | 33 - .../node_modules/es-abstract/2019/MakeTime.js | 23 - .../es-abstract/2019/MinFromTime.js | 14 - .../es-abstract/2019/MonthFromTime.js | 47 - .../es-abstract/2019/NumberToString.js | 19 - .../es-abstract/2019/ObjectCreate.js | 37 - .../2019/OrdinaryCreateFromConstructor.js | 20 - .../2019/OrdinaryDefineOwnProperty.js | 61 - .../2019/OrdinaryGetOwnProperty.js | 44 - .../2019/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2019/OrdinaryHasInstance.js | 25 - .../es-abstract/2019/OrdinaryHasProperty.js | 20 - .../2019/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2019/PromiseResolve.js | 15 - .../es-abstract/2019/QuoteJSONString.js | 55 - .../es-abstract/2019/RegExpExec.js | 32 - .../2019/RequireObjectCoercible.js | 3 - .../es-abstract/2019/SameValue.js | 13 - .../es-abstract/2019/SameValueNonNumber.js | 16 - .../es-abstract/2019/SameValueZero.js | 9 - .../es-abstract/2019/SecFromTime.js | 14 - .../node_modules/es-abstract/2019/Set.js | 47 - .../es-abstract/2019/SetFunctionLength.js | 31 - .../es-abstract/2019/SetFunctionName.js | 44 - .../es-abstract/2019/SetIntegrityLevel.js | 57 - .../es-abstract/2019/SpeciesConstructor.js | 32 - .../2019/StrictEqualityComparison.js | 17 - .../es-abstract/2019/StringGetOwnProperty.js | 48 - .../2019/SymbolDescriptiveString.js | 20 - .../es-abstract/2019/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2019/TimeClip.js | 21 - .../es-abstract/2019/TimeFromYear.js | 11 - .../es-abstract/2019/TimeString.js | 25 - .../es-abstract/2019/TimeWithinDay.js | 12 - .../es-abstract/2019/ToBoolean.js | 5 - .../es-abstract/2019/ToDateString.js | 22 - .../node_modules/es-abstract/2019/ToIndex.js | 26 - .../node_modules/es-abstract/2019/ToInt16.js | 10 - .../node_modules/es-abstract/2019/ToInt32.js | 9 - .../node_modules/es-abstract/2019/ToInt8.js | 10 - .../es-abstract/2019/ToInteger.js | 12 - .../node_modules/es-abstract/2019/ToLength.js | 12 - .../node_modules/es-abstract/2019/ToNumber.js | 59 - .../node_modules/es-abstract/2019/ToObject.js | 14 - .../es-abstract/2019/ToPrimitive.js | 12 - .../es-abstract/2019/ToPropertyDescriptor.js | 52 - .../es-abstract/2019/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2019/ToString.js | 15 - .../node_modules/es-abstract/2019/ToUint16.js | 19 - .../node_modules/es-abstract/2019/ToUint32.js | 9 - .../node_modules/es-abstract/2019/ToUint8.js | 20 - .../es-abstract/2019/ToUint8Clamp.js | 19 - .../es-abstract/2019/TrimString.js | 29 - .../node_modules/es-abstract/2019/Type.js | 12 - .../es-abstract/2019/UTF16Encoding.js | 23 - .../es-abstract/2019/UnicodeEscape.js | 26 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2019/WeekDay.js | 10 - .../es-abstract/2019/YearFromTime.js | 16 - .../node_modules/es-abstract/2019/abs.js | 11 - .../node_modules/es-abstract/2019/floor.js | 11 - .../node_modules/es-abstract/2019/modulo.js | 9 - .../es-abstract/2019/msFromTime.js | 11 - .../es-abstract/2019/thisBooleanValue.js | 15 - .../es-abstract/2019/thisNumberValue.js | 18 - .../es-abstract/2019/thisStringValue.js | 15 - .../es-abstract/2019/thisSymbolValue.js | 19 - .../es-abstract/2019/thisTimeValue.js | 3 - .../2020/AbstractEqualityComparison.js | 37 - .../2020/AbstractRelationalComparison.js | 66 - .../2020/AddEntriesFromIterable.js | 52 - .../es-abstract/2020/AdvanceStringIndex.js | 34 - .../es-abstract/2020/ArrayCreate.js | 53 - .../es-abstract/2020/ArraySetLength.js | 85 - .../es-abstract/2020/ArraySpeciesCreate.js | 46 - .../es-abstract/2020/BigIntBitwiseOp.js | 66 - .../es-abstract/2020/BinaryAnd.js | 14 - .../node_modules/es-abstract/2020/BinaryOr.js | 14 - .../es-abstract/2020/BinaryXor.js | 14 - .../node_modules/es-abstract/2020/Call.js | 13 - .../2020/CanonicalNumericIndexString.js | 22 - .../es-abstract/2020/CodePointAt.js | 58 - .../2020/CompletePropertyDescriptor.js | 39 - .../es-abstract/2020/CopyDataProperties.js | 68 - .../es-abstract/2020/CreateDataProperty.js | 45 - .../2020/CreateDataPropertyOrThrow.js | 25 - .../es-abstract/2020/CreateHTML.js | 30 - .../2020/CreateIterResultObject.js | 19 - .../2020/CreateListFromArrayLike.js | 44 - .../es-abstract/2020/CreateMethodProperty.js | 40 - .../es-abstract/2020/DateFromTime.js | 54 - .../es-abstract/2020/DateString.js | 30 - .../node_modules/es-abstract/2020/Day.js | 11 - .../es-abstract/2020/DayFromYear.js | 10 - .../es-abstract/2020/DayWithinYear.js | 11 - .../es-abstract/2020/DaysInYear.js | 18 - .../es-abstract/2020/DefinePropertyOrThrow.js | 50 - .../es-abstract/2020/DeletePropertyOrThrow.js | 27 - .../2020/EnumerableOwnPropertyNames.js | 43 - .../es-abstract/2020/FlattenIntoArray.js | 58 - .../2020/FromPropertyDescriptor.js | 36 - .../node_modules/es-abstract/2020/Get.js | 30 - .../es-abstract/2020/GetIterator.js | 35 - .../es-abstract/2020/GetMethod.js | 42 - .../es-abstract/2020/GetOwnPropertyKeys.js | 31 - .../2020/GetPrototypeFromConstructor.js | 28 - .../es-abstract/2020/GetSubstitution.js | 128 - .../node_modules/es-abstract/2020/GetV.js | 29 - .../es-abstract/2020/HasOwnProperty.js | 22 - .../es-abstract/2020/HasProperty.js | 20 - .../es-abstract/2020/HourFromTime.js | 14 - .../es-abstract/2020/InLeapYear.js | 21 - .../es-abstract/2020/InstanceofOperator.js | 30 - .../node_modules/es-abstract/2020/Invoke.js | 22 - .../es-abstract/2020/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/2020/IsArray.js | 14 - .../es-abstract/2020/IsBigIntElementType.js | 7 - .../es-abstract/2020/IsCallable.js | 5 - .../es-abstract/2020/IsConcatSpreadable.js | 25 - .../es-abstract/2020/IsConstructor.js | 40 - .../es-abstract/2020/IsDataDescriptor.js | 23 - .../es-abstract/2020/IsExtensible.js | 20 - .../es-abstract/2020/IsGenericDescriptor.js | 23 - .../es-abstract/2020/IsInteger.js | 17 - .../es-abstract/2020/IsNoTearConfiguration.js | 16 - .../es-abstract/2020/IsNonNegativeInteger.js | 9 - .../es-abstract/2020/IsPromise.js | 24 - .../es-abstract/2020/IsPropertyKey.js | 7 - .../node_modules/es-abstract/2020/IsRegExp.js | 24 - .../es-abstract/2020/IsStringPrefix.js | 47 - .../2020/IsUnclampedIntegerElementType.js | 12 - .../es-abstract/2020/IsUnsignedElementType.js | 11 - .../es-abstract/2020/IterableToList.js | 24 - .../es-abstract/2020/IteratorClose.js | 50 - .../es-abstract/2020/IteratorComplete.js | 18 - .../es-abstract/2020/IteratorNext.js | 18 - .../es-abstract/2020/IteratorStep.js | 13 - .../es-abstract/2020/IteratorValue.js | 18 - .../es-abstract/2020/LengthOfArrayLike.js | 20 - .../node_modules/es-abstract/2020/MakeDate.js | 13 - .../node_modules/es-abstract/2020/MakeDay.js | 33 - .../node_modules/es-abstract/2020/MakeTime.js | 23 - .../es-abstract/2020/MinFromTime.js | 14 - .../es-abstract/2020/MonthFromTime.js | 47 - .../es-abstract/2020/NumberBitwiseOp.js | 25 - .../2020/OrdinaryCreateFromConstructor.js | 20 - .../2020/OrdinaryDefineOwnProperty.js | 61 - .../2020/OrdinaryGetOwnProperty.js | 44 - .../2020/OrdinaryGetPrototypeOf.js | 21 - .../es-abstract/2020/OrdinaryHasInstance.js | 25 - .../es-abstract/2020/OrdinaryHasProperty.js | 20 - .../es-abstract/2020/OrdinaryObjectCreate.js | 46 - .../2020/OrdinarySetPrototypeOf.js | 53 - .../es-abstract/2020/PromiseResolve.js | 15 - .../es-abstract/2020/QuoteJSONString.js | 55 - .../es-abstract/2020/RegExpExec.js | 32 - .../2020/RequireObjectCoercible.js | 3 - .../es-abstract/2020/SameValue.js | 13 - .../es-abstract/2020/SameValueNonNumeric.js | 21 - .../es-abstract/2020/SameValueZero.js | 9 - .../es-abstract/2020/SecFromTime.js | 14 - .../node_modules/es-abstract/2020/Set.js | 47 - .../es-abstract/2020/SetFunctionLength.js | 31 - .../es-abstract/2020/SetFunctionName.js | 44 - .../es-abstract/2020/SetIntegrityLevel.js | 57 - .../es-abstract/2020/SpeciesConstructor.js | 32 - .../2020/StrictEqualityComparison.js | 17 - .../es-abstract/2020/StringGetOwnProperty.js | 48 - .../es-abstract/2020/StringPad.js | 43 - .../2020/SymbolDescriptiveString.js | 20 - .../es-abstract/2020/TestIntegrityLevel.js | 42 - .../node_modules/es-abstract/2020/TimeClip.js | 21 - .../es-abstract/2020/TimeFromYear.js | 11 - .../es-abstract/2020/TimeString.js | 25 - .../es-abstract/2020/TimeWithinDay.js | 12 - .../es-abstract/2020/ToBoolean.js | 5 - .../es-abstract/2020/ToDateString.js | 22 - .../node_modules/es-abstract/2020/ToIndex.js | 26 - .../node_modules/es-abstract/2020/ToInt16.js | 10 - .../node_modules/es-abstract/2020/ToInt32.js | 9 - .../node_modules/es-abstract/2020/ToInt8.js | 10 - .../es-abstract/2020/ToInteger.js | 15 - .../node_modules/es-abstract/2020/ToLength.js | 12 - .../node_modules/es-abstract/2020/ToNumber.js | 59 - .../es-abstract/2020/ToNumeric.js | 21 - .../node_modules/es-abstract/2020/ToObject.js | 14 - .../es-abstract/2020/ToPrimitive.js | 12 - .../es-abstract/2020/ToPropertyDescriptor.js | 52 - .../es-abstract/2020/ToPropertyKey.js | 15 - .../node_modules/es-abstract/2020/ToString.js | 15 - .../node_modules/es-abstract/2020/ToUint16.js | 19 - .../node_modules/es-abstract/2020/ToUint32.js | 9 - .../node_modules/es-abstract/2020/ToUint8.js | 20 - .../es-abstract/2020/ToUint8Clamp.js | 19 - .../es-abstract/2020/TrimString.js | 29 - .../node_modules/es-abstract/2020/Type.js | 15 - .../es-abstract/2020/UTF16DecodeString.js | 29 - .../2020/UTF16DecodeSurrogatePair.js | 19 - .../es-abstract/2020/UTF16Encoding.js | 23 - .../es-abstract/2020/UnicodeEscape.js | 27 - .../ValidateAndApplyPropertyDescriptor.js | 170 - .../node_modules/es-abstract/2020/WeekDay.js | 10 - .../es-abstract/2020/YearFromTime.js | 16 - .../node_modules/es-abstract/2020/abs.js | 11 - .../node_modules/es-abstract/2020/floor.js | 11 - .../node_modules/es-abstract/2020/modulo.js | 9 - .../es-abstract/2020/msFromTime.js | 11 - .../es-abstract/2020/thisBigIntValue.js | 22 - .../es-abstract/2020/thisBooleanValue.js | 15 - .../es-abstract/2020/thisNumberValue.js | 18 - .../es-abstract/2020/thisStringValue.js | 15 - .../es-abstract/2020/thisSymbolValue.js | 19 - .../es-abstract/2020/thisTimeValue.js | 3 - .../5/AbstractEqualityComparison.js | 37 - .../5/AbstractRelationalComparison.js | 66 - .../es-abstract/5/CheckObjectCoercible.js | 14 - .../es-abstract/5/DateFromTime.js | 54 - .../node_modules/es-abstract/5/Day.js | 11 - .../node_modules/es-abstract/5/DayFromYear.js | 10 - .../es-abstract/5/DayWithinYear.js | 11 - .../node_modules/es-abstract/5/DaysInYear.js | 18 - .../es-abstract/5/FromPropertyDescriptor.js | 39 - .../es-abstract/5/HourFromTime.js | 14 - .../node_modules/es-abstract/5/InLeapYear.js | 21 - .../es-abstract/5/IsAccessorDescriptor.js | 23 - .../node_modules/es-abstract/5/IsCallable.js | 5 - .../es-abstract/5/IsDataDescriptor.js | 23 - .../es-abstract/5/IsGenericDescriptor.js | 23 - .../es-abstract/5/IsPropertyDescriptor.js | 17 - .../node_modules/es-abstract/5/MakeDate.js | 13 - .../node_modules/es-abstract/5/MakeDay.js | 33 - .../node_modules/es-abstract/5/MakeTime.js | 23 - .../node_modules/es-abstract/5/MinFromTime.js | 14 - .../es-abstract/5/MonthFromTime.js | 47 - .../node_modules/es-abstract/5/SameValue.js | 13 - .../node_modules/es-abstract/5/SecFromTime.js | 14 - .../es-abstract/5/StrictEqualityComparison.js | 17 - .../node_modules/es-abstract/5/TimeClip.js | 21 - .../es-abstract/5/TimeFromYear.js | 11 - .../es-abstract/5/TimeWithinDay.js | 12 - .../node_modules/es-abstract/5/ToBoolean.js | 5 - .../node_modules/es-abstract/5/ToInt32.js | 9 - .../node_modules/es-abstract/5/ToInteger.js | 18 - .../node_modules/es-abstract/5/ToNumber.js | 7 - .../node_modules/es-abstract/5/ToObject.js | 14 - .../node_modules/es-abstract/5/ToPrimitive.js | 5 - .../es-abstract/5/ToPropertyDescriptor.js | 52 - .../node_modules/es-abstract/5/ToString.js | 12 - .../node_modules/es-abstract/5/ToUint16.js | 19 - .../node_modules/es-abstract/5/ToUint32.js | 9 - .../node_modules/es-abstract/5/Type.js | 24 - .../node_modules/es-abstract/5/WeekDay.js | 10 - .../es-abstract/5/YearFromTime.js | 16 - .../node_modules/es-abstract/5/abs.js | 11 - .../node_modules/es-abstract/5/floor.js | 11 - .../node_modules/es-abstract/5/modulo.js | 9 - .../node_modules/es-abstract/5/msFromTime.js | 11 - .../node_modules/es-abstract/CHANGELOG.md | 387 - .../node_modules/es-abstract/GetIntrinsic.js | 289 - .../node_modules/es-abstract/LICENSE | 21 - .../node_modules/es-abstract/README.md | 48 - .../node_modules/es-abstract/es2015.js | 119 - .../node_modules/es-abstract/es2016.js | 124 - .../node_modules/es-abstract/es2017.js | 126 - .../node_modules/es-abstract/es2018.js | 134 - .../node_modules/es-abstract/es2019.js | 137 - .../node_modules/es-abstract/es2020.js | 153 - .../node_modules/es-abstract/es5.js | 51 - .../node_modules/es-abstract/es6.js | 3 - .../node_modules/es-abstract/es7.js | 3 - .../es-abstract/helpers/DefineOwnProperty.js | 45 - .../es-abstract/helpers/OwnPropertyKeys.js | 22 - .../es-abstract/helpers/assertRecord.js | 48 - .../es-abstract/helpers/assign.js | 22 - .../es-abstract/helpers/callBind.js | 34 - .../es-abstract/helpers/callBound.js | 15 - .../node_modules/es-abstract/helpers/every.js | 10 - .../es-abstract/helpers/forEach.js | 7 - .../es-abstract/helpers/getInferredName.js | 10 - .../es-abstract/helpers/getIteratorMethod.js | 45 - .../helpers/getOwnPropertyDescriptor.js | 15 - .../es-abstract/helpers/getProto.js | 15 - .../helpers/getSymbolDescription.js | 41 - .../es-abstract/helpers/isFinite.js | 5 - .../es-abstract/helpers/isLeadingSurrogate.js | 5 - .../node_modules/es-abstract/helpers/isNaN.js | 5 - .../es-abstract/helpers/isPrefixOf.js | 13 - .../es-abstract/helpers/isPrimitive.js | 5 - .../helpers/isPropertyDescriptor.js | 31 - .../helpers/isSamePropertyDescriptor.js | 20 - .../helpers/isTrailingSurrogate.js | 5 - .../es-abstract/helpers/maxSafeInteger.js | 8 - .../node_modules/es-abstract/helpers/mod.js | 8 - .../es-abstract/helpers/padTimeComponent.js | 9 - .../es-abstract/helpers/regexTester.js | 11 - .../es-abstract/helpers/setProto.js | 16 - .../node_modules/es-abstract/helpers/sign.js | 5 - .../es-abstract/helpers/timeConstants.js | 19 - .../node_modules/es-abstract/index.js | 28 - .../es-abstract/operations/.eslintrc | 5 - .../es-abstract/operations/2015.js | 249 - .../es-abstract/operations/2016.js | 276 - .../es-abstract/operations/2017.js | 324 - .../es-abstract/operations/2018.js | 350 - .../es-abstract/operations/2019.js | 355 - .../node_modules/es-abstract/package.json | 116 - .../es-abstract/test/GetIntrinsic.js | 207 - .../node_modules/es-abstract/test/diffOps.js | 27 - .../node_modules/es-abstract/test/es2015.js | 146 - .../node_modules/es-abstract/test/es2016.js | 168 - .../node_modules/es-abstract/test/es2017.js | 214 - .../node_modules/es-abstract/test/es2018.js | 233 - .../node_modules/es-abstract/test/es2019.js | 238 - .../node_modules/es-abstract/test/es2020.js | 267 - .../node_modules/es-abstract/test/es5.js | 786 -- .../node_modules/es-abstract/test/es6.js | 18 - .../node_modules/es-abstract/test/es7.js | 18 - .../test/helpers/OwnPropertyKeys.js | 42 - .../es-abstract/test/helpers/assertRecord.js | 60 - .../test/helpers/createBoundESNamespace.js | 21 - .../test/helpers/defineProperty.js | 27 - .../test/helpers/getSymbolDescription.js | 67 - .../test/helpers/runManifestTest.js | 27 - .../es-abstract/test/helpers/values.js | 127 - .../node_modules/es-abstract/test/index.js | 36 - .../es-abstract/test/ses-compat.js | 8 - .../node_modules/es-abstract/test/tests.js | 4933 ---------- .../string.prototype.trimstart/package.json | 66 - .../string.prototype.trimstart/polyfill.js | 15 - .../string.prototype.trimstart/shim.js | 14 - .../string.prototype.trimstart/test/index.js | 18 - .../test/shimmed.js | 37 - .../string.prototype.trimstart/test/tests.js | 26 - gateway/node_modules/strip-ansi/index.d.ts | 17 - gateway/node_modules/strip-ansi/index.js | 4 - gateway/node_modules/strip-ansi/license | 9 - gateway/node_modules/strip-ansi/package.json | 54 - gateway/node_modules/strip-ansi/readme.md | 46 - .../node_modules/strip-json-comments/index.js | 70 - .../node_modules/strip-json-comments/license | 21 - .../strip-json-comments/package.json | 42 - .../strip-json-comments/readme.md | 64 - .../subscriptions-transport-ws/AUTHORS | 14 - .../subscriptions-transport-ws/CHANGELOG.md | 224 - .../CONTRIBUTING.md | 82 - .../subscriptions-transport-ws/LICENSE | 22 - .../subscriptions-transport-ws/PROTOCOL.md | 110 - .../subscriptions-transport-ws/README.md | 331 - .../browser/client.js | 2590 ----- .../dist/client.d.ts | 112 - .../subscriptions-transport-ws/dist/client.js | 560 -- .../dist/client.js.map | 1 - .../dist/defaults.d.ts | 3 - .../dist/defaults.js | 8 - .../dist/defaults.js.map | 1 - .../dist/index.d.ts | 4 - .../subscriptions-transport-ws/dist/index.js | 18 - .../dist/index.js.map | 1 - .../dist/legacy/parse-legacy-protocol.d.ts | 2 - .../dist/legacy/parse-legacy-protocol.js | 72 - .../dist/legacy/parse-legacy-protocol.js.map | 1 - .../dist/message-types.d.ts | 22 - .../dist/message-types.js | 29 - .../dist/message-types.js.map | 1 - .../dist/protocol.d.ts | 3 - .../dist/protocol.js | 8 - .../dist/protocol.js.map | 1 - .../dist/server.d.ts | 82 - .../subscriptions-transport-ws/dist/server.js | 299 - .../dist/server.js.map | 1 - .../dist/utils/empty-iterable.d.ts | 6 - .../dist/utils/empty-iterable.js | 23 - .../dist/utils/empty-iterable.js.map | 1 - .../dist/utils/is-object.d.ts | 1 - .../dist/utils/is-object.js | 7 - .../dist/utils/is-object.js.map | 1 - .../dist/utils/is-string.d.ts | 1 - .../dist/utils/is-string.js | 7 - .../dist/utils/is-string.js.map | 1 - .../dist/utils/is-subscriptions.d.ts | 2 - .../dist/utils/is-subscriptions.js | 9 - .../dist/utils/is-subscriptions.js.map | 1 - .../subscriptions-transport-ws/netlify.toml | 6 - .../node_modules/ws/LICENSE | 21 - .../node_modules/ws/README.md | 417 - .../node_modules/ws/index.js | 9 - .../node_modules/ws/lib/buffer-util.js | 72 - .../node_modules/ws/lib/constants.js | 10 - .../node_modules/ws/lib/event-target.js | 170 - .../node_modules/ws/lib/extension.js | 211 - .../node_modules/ws/lib/permessage-deflate.js | 516 - .../node_modules/ws/lib/receiver.js | 513 - .../node_modules/ws/lib/sender.js | 401 - .../node_modules/ws/lib/validation.js | 29 - .../node_modules/ws/lib/websocket-server.js | 357 - .../node_modules/ws/lib/websocket.js | 828 -- .../node_modules/ws/package.json | 44 - .../subscriptions-transport-ws/package.json | 63 - .../subscriptions-transport-ws/renovate.json | 6 - .../subscriptions-transport-ws/tsconfig.json | 27 - .../subscriptions-transport-ws/tslint.json | 134 - .../subscriptions-transport-ws/typings.d.ts | 20 - .../unpkg-webpack.config.js | 11 - .../node_modules/supports-color/browser.js | 5 - gateway/node_modules/supports-color/index.js | 135 - gateway/node_modules/supports-color/license | 9 - .../node_modules/supports-color/package.json | 53 - gateway/node_modules/supports-color/readme.md | 76 - .../symbol-observable/CHANGELOG.md | 136 - .../symbol-observable/es/index.js | 19 - .../symbol-observable/es/ponyfill.js | 17 - .../node_modules/symbol-observable/index.d.ts | 12 - .../node_modules/symbol-observable/index.js | 1 - .../symbol-observable/lib/index.js | 29 - .../symbol-observable/lib/ponyfill.js | 23 - .../node_modules/symbol-observable/license | 22 - .../symbol-observable/package.json | 49 - .../node_modules/symbol-observable/readme.md | 31 - gateway/node_modules/tar/CHANGELOG.md | 68 - gateway/node_modules/tar/LICENSE | 15 - gateway/node_modules/tar/README.md | 1031 -- gateway/node_modules/tar/index.js | 18 - gateway/node_modules/tar/lib/create.js | 105 - gateway/node_modules/tar/lib/extract.js | 112 - .../node_modules/tar/lib/get-write-flag.js | 20 - gateway/node_modules/tar/lib/header.js | 288 - .../node_modules/tar/lib/high-level-opt.js | 29 - gateway/node_modules/tar/lib/large-numbers.js | 97 - gateway/node_modules/tar/lib/list.js | 128 - gateway/node_modules/tar/lib/mkdir.js | 206 - gateway/node_modules/tar/lib/mode-fix.js | 24 - gateway/node_modules/tar/lib/pack.js | 403 - gateway/node_modules/tar/lib/parse.js | 483 - .../node_modules/tar/lib/path-reservations.js | 125 - gateway/node_modules/tar/lib/pax.js | 145 - gateway/node_modules/tar/lib/read-entry.js | 98 - gateway/node_modules/tar/lib/replace.js | 219 - gateway/node_modules/tar/lib/types.js | 44 - gateway/node_modules/tar/lib/unpack.js | 680 -- gateway/node_modules/tar/lib/update.js | 36 - gateway/node_modules/tar/lib/warn-mixin.js | 21 - gateway/node_modules/tar/lib/winchars.js | 23 - gateway/node_modules/tar/lib/write-entry.js | 436 - .../node_modules/tar/node_modules/.bin/mkdirp | 1 - gateway/node_modules/tar/package.json | 48 - gateway/node_modules/term-size/index.d.ts | 21 - gateway/node_modules/term-size/index.js | 72 - gateway/node_modules/term-size/license | 9 - gateway/node_modules/term-size/package.json | 43 - gateway/node_modules/term-size/readme.md | 48 - .../node_modules/term-size/vendor/.DS_Store | Bin 8196 -> 0 bytes .../term-size/vendor/macos/.DS_Store | Bin 6148 -> 0 bytes .../term-size/vendor/macos/term-size | Bin 27264 -> 0 bytes .../term-size/vendor/windows/term-size.exe | Bin 17408 -> 0 bytes .../node_modules/to-readable-stream/index.js | 11 - .../node_modules/to-readable-stream/license | 9 - .../to-readable-stream/package.json | 40 - .../node_modules/to-readable-stream/readme.md | 42 - gateway/node_modules/to-regex-range/LICENSE | 21 - gateway/node_modules/to-regex-range/README.md | 305 - gateway/node_modules/to-regex-range/index.js | 288 - .../node_modules/to-regex-range/package.json | 88 - gateway/node_modules/toidentifier/LICENSE | 21 - gateway/node_modules/toidentifier/README.md | 61 - gateway/node_modules/toidentifier/index.js | 30 - .../node_modules/toidentifier/package.json | 34 - gateway/node_modules/touch/LICENSE | 15 - gateway/node_modules/touch/README.md | 52 - gateway/node_modules/touch/bin/nodetouch.js | 112 - gateway/node_modules/touch/index.js | 224 - .../node_modules/touch/node_modules/.bin/nopt | 1 - gateway/node_modules/touch/package.json | 28 - gateway/node_modules/ts-invariant/LICENSE | 21 - gateway/node_modules/ts-invariant/README.md | 4 - .../ts-invariant/lib/invariant.d.ts | 14 - .../ts-invariant/lib/invariant.esm.js | 62 - .../ts-invariant/lib/invariant.esm.js.map | 1 - .../ts-invariant/lib/invariant.js | 67 - .../ts-invariant/lib/invariant.js.map | 1 - .../node_modules/ts-invariant/package.json | 41 - .../ts-invariant/rollup.config.js | 40 - .../node_modules/ts-invariant/tsconfig.json | 7 - .../ts-invariant/tsconfig.rollup.json | 6 - .../node_modules/tslib/CopyrightNotice.txt | 15 - gateway/node_modules/tslib/LICENSE.txt | 12 - gateway/node_modules/tslib/README.md | 142 - gateway/node_modules/tslib/modules/index.js | 51 - .../node_modules/tslib/modules/package.json | 3 - gateway/node_modules/tslib/package.json | 37 - .../index.js | 23 - .../package.json | 6 - gateway/node_modules/tslib/tslib.d.ts | 37 - gateway/node_modules/tslib/tslib.es6.html | 1 - gateway/node_modules/tslib/tslib.es6.js | 218 - gateway/node_modules/tslib/tslib.html | 1 - gateway/node_modules/tslib/tslib.js | 284 - gateway/node_modules/type-fest/index.d.ts | 20 - gateway/node_modules/type-fest/license | 9 - gateway/node_modules/type-fest/package.json | 51 - gateway/node_modules/type-fest/readme.md | 635 -- .../node_modules/type-fest/source/basic.d.ts | 67 - .../node_modules/type-fest/source/except.d.ts | 22 - .../type-fest/source/literal-union.d.ts | 33 - .../type-fest/source/merge-exclusive.d.ts | 39 - .../node_modules/type-fest/source/merge.d.ts | 22 - .../type-fest/source/mutable.d.ts | 22 - .../node_modules/type-fest/source/opaque.d.ts | 40 - .../type-fest/source/package-json.d.ts | 501 - .../type-fest/source/partial-deep.d.ts | 72 - .../type-fest/source/promisable.d.ts | 23 - .../type-fest/source/readonly-deep.d.ts | 59 - .../source/require-at-least-one.d.ts | 32 - .../type-fest/source/require-exactly-one.d.ts | 36 - .../type-fest/source/set-optional.d.ts | 32 - .../type-fest/source/set-required.d.ts | 32 - gateway/node_modules/type-is/HISTORY.md | 259 - gateway/node_modules/type-is/LICENSE | 23 - gateway/node_modules/type-is/README.md | 170 - gateway/node_modules/type-is/index.js | 266 - gateway/node_modules/type-is/package.json | 45 - .../typedarray-to-buffer/.airtap.yml | 15 - .../typedarray-to-buffer/.travis.yml | 11 - .../node_modules/typedarray-to-buffer/LICENSE | 21 - .../typedarray-to-buffer/README.md | 85 - .../typedarray-to-buffer/index.js | 25 - .../typedarray-to-buffer/package.json | 50 - .../typedarray-to-buffer/test/basic.js | 50 - gateway/node_modules/undefsafe/.jscsrc | 13 - gateway/node_modules/undefsafe/.jshintrc | 16 - gateway/node_modules/undefsafe/.npmignore | 2 - gateway/node_modules/undefsafe/.travis.yml | 18 - gateway/node_modules/undefsafe/LICENSE | 22 - gateway/node_modules/undefsafe/README.md | 63 - gateway/node_modules/undefsafe/example.js | 14 - .../node_modules/undefsafe/lib/undefsafe.js | 125 - gateway/node_modules/undefsafe/package.json | 36 - .../unique-filename/.nyc_output/54942.json | 1 - .../unique-filename/.nyc_output/54944.json | 1 - gateway/node_modules/unique-filename/LICENSE | 5 - .../node_modules/unique-filename/README.md | 33 - .../coverage/__root__/index.html | 73 - .../coverage/__root__/index.js.html | 69 - .../unique-filename/coverage/base.css | 182 - .../unique-filename/coverage/index.html | 73 - .../unique-filename/coverage/prettify.css | 1 - .../unique-filename/coverage/prettify.js | 1 - .../coverage/sort-arrow-sprite.png | Bin 209 -> 0 bytes .../unique-filename/coverage/sorter.js | 156 - gateway/node_modules/unique-filename/index.js | 8 - .../node_modules/unique-filename/package.json | 27 - .../unique-filename/test/index.js | 23 - gateway/node_modules/unique-slug/.travis.yml | 10 - gateway/node_modules/unique-slug/LICENSE | 15 - gateway/node_modules/unique-slug/README.md | 19 - gateway/node_modules/unique-slug/index.js | 11 - gateway/node_modules/unique-slug/package.json | 23 - .../node_modules/unique-slug/test/index.js | 13 - gateway/node_modules/unique-string/index.d.ts | 16 - gateway/node_modules/unique-string/index.js | 4 - gateway/node_modules/unique-string/license | 9 - .../node_modules/unique-string/package.json | 40 - gateway/node_modules/unique-string/readme.md | 32 - gateway/node_modules/unpipe/HISTORY.md | 4 - gateway/node_modules/unpipe/LICENSE | 22 - gateway/node_modules/unpipe/README.md | 43 - gateway/node_modules/unpipe/index.js | 69 - gateway/node_modules/unpipe/package.json | 27 - gateway/node_modules/update-notifier/check.js | 28 - gateway/node_modules/update-notifier/index.js | 187 - gateway/node_modules/update-notifier/license | 9 - .../update-notifier/node_modules/.bin/is-ci | 1 - .../node_modules/update-notifier/package.json | 64 - .../node_modules/update-notifier/readme.md | 223 - gateway/node_modules/url-parse-lax/index.js | 12 - gateway/node_modules/url-parse-lax/license | 9 - .../node_modules/url-parse-lax/package.json | 42 - gateway/node_modules/url-parse-lax/readme.md | 127 - gateway/node_modules/util.promisify/.eslintrc | 17 - .../util.promisify/.github/FUNDING.yml | 12 - .../.github/workflows/rebase.yml | 15 - .../node_modules/util.promisify/.travis.yml | 12 - .../node_modules/util.promisify/CHANGELOG.md | 58 - gateway/node_modules/util.promisify/LICENSE | 21 - gateway/node_modules/util.promisify/README.md | 28 - gateway/node_modules/util.promisify/auto.js | 3 - .../util.promisify/implementation.js | 88 - gateway/node_modules/util.promisify/index.js | 24 - .../node_modules/util.promisify/package.json | 57 - .../node_modules/util.promisify/polyfill.js | 11 - gateway/node_modules/util.promisify/shim.js | 17 - gateway/node_modules/utils-merge/.npmignore | 9 - gateway/node_modules/utils-merge/LICENSE | 20 - gateway/node_modules/utils-merge/README.md | 34 - gateway/node_modules/utils-merge/index.js | 23 - gateway/node_modules/utils-merge/package.json | 40 - gateway/node_modules/uuid/AUTHORS | 5 - gateway/node_modules/uuid/CHANGELOG.md | 119 - gateway/node_modules/uuid/LICENSE.md | 21 - gateway/node_modules/uuid/README.md | 276 - gateway/node_modules/uuid/bin/uuid | 65 - gateway/node_modules/uuid/index.js | 8 - gateway/node_modules/uuid/lib/bytesToUuid.js | 26 - gateway/node_modules/uuid/lib/md5-browser.js | 216 - gateway/node_modules/uuid/lib/md5.js | 25 - gateway/node_modules/uuid/lib/rng-browser.js | 34 - gateway/node_modules/uuid/lib/rng.js | 8 - gateway/node_modules/uuid/lib/sha1-browser.js | 89 - gateway/node_modules/uuid/lib/sha1.js | 25 - gateway/node_modules/uuid/lib/v35.js | 57 - gateway/node_modules/uuid/package.json | 49 - gateway/node_modules/uuid/v1.js | 109 - gateway/node_modules/uuid/v3.js | 4 - gateway/node_modules/uuid/v4.js | 29 - gateway/node_modules/uuid/v5.js | 3 - gateway/node_modules/vary/HISTORY.md | 39 - gateway/node_modules/vary/LICENSE | 22 - gateway/node_modules/vary/README.md | 101 - gateway/node_modules/vary/index.js | 149 - gateway/node_modules/vary/package.json | 43 - gateway/node_modules/widest-line/index.d.ts | 21 - gateway/node_modules/widest-line/index.js | 16 - gateway/node_modules/widest-line/license | 9 - gateway/node_modules/widest-line/package.json | 54 - gateway/node_modules/widest-line/readme.md | 34 - gateway/node_modules/wrappy/LICENSE | 15 - gateway/node_modules/wrappy/README.md | 36 - gateway/node_modules/wrappy/package.json | 29 - gateway/node_modules/wrappy/wrappy.js | 33 - .../write-file-atomic/CHANGELOG.md | 32 - .../node_modules/write-file-atomic/LICENSE | 6 - .../node_modules/write-file-atomic/README.md | 72 - .../node_modules/write-file-atomic/index.js | 259 - .../write-file-atomic/package.json | 48 - gateway/node_modules/ws/LICENSE | 21 - gateway/node_modules/ws/README.md | 449 - gateway/node_modules/ws/browser.js | 8 - gateway/node_modules/ws/index.js | 9 - gateway/node_modules/ws/lib/buffer-util.js | 144 - gateway/node_modules/ws/lib/constants.js | 10 - gateway/node_modules/ws/lib/event-target.js | 170 - gateway/node_modules/ws/lib/extension.js | 222 - .../node_modules/ws/lib/permessage-deflate.js | 502 - gateway/node_modules/ws/lib/receiver.js | 492 - gateway/node_modules/ws/lib/sender.js | 358 - gateway/node_modules/ws/lib/validation.js | 30 - .../node_modules/ws/lib/websocket-server.js | 401 - gateway/node_modules/ws/lib/websocket.js | 895 -- gateway/node_modules/ws/package.json | 45 - gateway/node_modules/xdg-basedir/index.d.ts | 81 - gateway/node_modules/xdg-basedir/index.js | 28 - gateway/node_modules/xdg-basedir/license | 9 - gateway/node_modules/xdg-basedir/package.json | 41 - gateway/node_modules/xdg-basedir/readme.md | 60 - gateway/node_modules/xss/CHANGELOG.md | 8 - gateway/node_modules/xss/LICENSE | 23 - gateway/node_modules/xss/README.md | 499 - gateway/node_modules/xss/README.zh.md | 485 - gateway/node_modules/xss/bin/xss | 67 - gateway/node_modules/xss/dist/test.html | 15 - gateway/node_modules/xss/dist/xss.js | 1621 --- gateway/node_modules/xss/dist/xss.min.js | 1 - gateway/node_modules/xss/lib/cli.js | 45 - gateway/node_modules/xss/lib/default.js | 419 - gateway/node_modules/xss/lib/index.js | 40 - gateway/node_modules/xss/lib/parser.js | 247 - gateway/node_modules/xss/lib/util.js | 34 - gateway/node_modules/xss/lib/xss.js | 211 - gateway/node_modules/xss/package.json | 63 - gateway/node_modules/xss/typings/xss.d.ts | 193 - gateway/node_modules/yallist/LICENSE | 15 - gateway/node_modules/yallist/README.md | 204 - gateway/node_modules/yallist/iterator.js | 8 - gateway/node_modules/yallist/package.json | 29 - gateway/node_modules/yallist/yallist.js | 426 - .../zen-observable-ts/CHANGELOG.md | 28 - .../node_modules/zen-observable-ts/LICENSE | 21 - .../zen-observable-ts/lib/bundle.cjs.js | 13 - .../zen-observable-ts/lib/bundle.cjs.js.map | 1 - .../zen-observable-ts/lib/bundle.esm.js | 7 - .../zen-observable-ts/lib/bundle.esm.js.map | 1 - .../zen-observable-ts/lib/bundle.umd.js | 17 - .../zen-observable-ts/lib/bundle.umd.js.map | 1 - .../zen-observable-ts/lib/index.d.ts | 4 - .../zen-observable-ts/lib/index.d.ts.map | 1 - .../zen-observable-ts/lib/index.js | 7 - .../zen-observable-ts/lib/index.js.map | 1 - .../zen-observable-ts/lib/types.d.ts | 23 - .../zen-observable-ts/lib/types.d.ts.map | 1 - .../zen-observable-ts/lib/types.js | 3 - .../zen-observable-ts/lib/types.js.map | 1 - .../zen-observable-ts/lib/zenObservable.d.ts | 21 - .../lib/zenObservable.d.ts.map | 1 - .../zen-observable-ts/lib/zenObservable.js | 6 - .../lib/zenObservable.js.map | 1 - .../zen-observable-ts/package.json | 58 - .../node_modules/zen-observable/.editorconfig | 7 - .../node_modules/zen-observable/.eslintrc.js | 47 - gateway/node_modules/zen-observable/LICENSE | 18 - gateway/node_modules/zen-observable/README.md | 176 - gateway/node_modules/zen-observable/esm.js | 5 - gateway/node_modules/zen-observable/extras.js | 1 - gateway/node_modules/zen-observable/index.js | 1 - .../zen-observable/lib/Observable.js | 617 -- .../node_modules/zen-observable/lib/extras.js | 132 - .../node_modules/zen-observable/package.json | 23 - .../zen-observable/scripts/babel-plugins.js | 16 - .../zen-observable/scripts/build.js | 7 - .../zen-observable/scripts/mocha-require.js | 3 - .../zen-observable/src/Observable.js | 476 - .../node_modules/zen-observable/src/extras.js | 99 - .../zen-observable/test/concat.js | 30 - .../zen-observable/test/constructor.js | 36 - .../test/extras/combine-latest.js | 43 - .../zen-observable/test/extras/merge.js | 16 - .../zen-observable/test/extras/parse.js | 11 - .../zen-observable/test/extras/zip.js | 21 - .../zen-observable/test/filter.js | 14 - .../zen-observable/test/flat-map.js | 23 - .../zen-observable/test/for-each.js | 70 - .../node_modules/zen-observable/test/from.js | 95 - .../node_modules/zen-observable/test/map.js | 13 - .../zen-observable/test/observer-closed.js | 35 - .../zen-observable/test/observer-complete.js | 143 - .../zen-observable/test/observer-error.js | 145 - .../zen-observable/test/observer-next.js | 137 - .../node_modules/zen-observable/test/of.js | 32 - .../zen-observable/test/properties.js | 31 - .../zen-observable/test/reduce.js | 38 - .../node_modules/zen-observable/test/setup.js | 9 - .../zen-observable/test/species.js | 28 - .../zen-observable/test/subscribe.js | 137 - .../zen-observable/test/subscription.js | 41 - gateway/yarn-error.log | 1328 --- product/__pycache__/__init__.cpython-38.pyc | Bin 151 -> 0 bytes product/__pycache__/main.cpython-38.pyc | Bin 1234 -> 0 bytes .../models/__pycache__/product.cpython-38.pyc | Bin 464 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 269 -> 0 bytes .../schema/__pycache__/query.cpython-38.pyc | Bin 640 -> 0 bytes review/__pycache__/__init__.cpython-38.pyc | Bin 150 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 157 -> 0 bytes .../models/__pycache__/review.cpython-38.pyc | Bin 566 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 395 -> 0 bytes .../schema/__pycache__/query.cpython-38.pyc | Bin 789 -> 0 bytes .../types/__pycache__/product.cpython-38.pyc | Bin 260 -> 0 bytes .../types/__pycache__/review.cpython-38.pyc | Bin 619 -> 0 bytes .../types/__pycache__/user.cpython-38.pyc | Bin 251 -> 0 bytes user/__pycache__/__init__.cpython-38.pyc | Bin 148 -> 0 bytes user/models/__pycache__/user.cpython-38.pyc | Bin 1648 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 384 -> 0 bytes .../__pycache__/mutation.cpython-38.pyc | Bin 691 -> 0 bytes user/schema/__pycache__/query.cpython-38.pyc | Bin 420 -> 0 bytes .../types/__pycache__/user.cpython-38.pyc | Bin 482 -> 0 bytes 8985 files changed, 360 insertions(+), 613050 deletions(-) create mode 100644 .gitignore delete mode 100644 .idea/dictionaries delete mode 120000 gateway/node_modules/.bin/apollo-pbjs delete mode 120000 gateway/node_modules/.bin/apollo-pbts delete mode 120000 gateway/node_modules/.bin/is-ci delete mode 120000 gateway/node_modules/.bin/mime delete mode 120000 gateway/node_modules/.bin/mkdirp delete mode 120000 gateway/node_modules/.bin/nodemon delete mode 120000 gateway/node_modules/.bin/nodetouch delete mode 120000 gateway/node_modules/.bin/nopt delete mode 120000 gateway/node_modules/.bin/rc delete mode 120000 gateway/node_modules/.bin/rimraf delete mode 120000 gateway/node_modules/.bin/semver delete mode 120000 gateway/node_modules/.bin/sha.js delete mode 120000 gateway/node_modules/.bin/uuid delete mode 120000 gateway/node_modules/.bin/xss delete mode 100644 gateway/node_modules/.yarn-integrity delete mode 100644 gateway/node_modules/@apollo/federation/CHANGELOG.md delete mode 100644 gateway/node_modules/@apollo/federation/LICENSE.md delete mode 100644 gateway/node_modules/@apollo/federation/README.md delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/compose.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/compose.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/compose.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/compose.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/normalize.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/normalize.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/normalize.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/normalize.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/rules.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/rules.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/rules.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/rules.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/types.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/types.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/types.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/types.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/utils.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/utils.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/utils.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/utils.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/csdlDirectives.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/csdlDirectives.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/csdlDirectives.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/csdlDirectives.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/directives.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/directives.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/directives.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/directives.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.js.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/types.d.ts delete mode 100644 gateway/node_modules/@apollo/federation/dist/types.d.ts.map delete mode 100644 gateway/node_modules/@apollo/federation/dist/types.js delete mode 100644 gateway/node_modules/@apollo/federation/dist/types.js.map delete mode 100644 gateway/node_modules/@apollo/federation/package.json delete mode 100644 gateway/node_modules/@apollo/federation/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/__tests__/compose.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/__tests__/composeAndValidate.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/__tests__/normalize.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/__tests__/utils.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/compose.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/composeAndValidate.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/normalize.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/rules.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/types.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/utils.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/executableDirectivesIdentical.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/executableDirectivesInAllServices.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalMissingOnBase.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalTypeMismatch.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalUnused.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keyFieldsMissingOnBase.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keyFieldsSelectInvalidType.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keysMatchBaseService.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesFieldsMissingExternals.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesFieldsSelectInvalidType.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesNotOnEntity.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/requiresFieldsMissingExternals.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/requiresFieldsMissingOnBase.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/executableDirectivesIdentical.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/executableDirectivesInAllServices.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalMissingOnBase.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalTypeMismatch.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalUnused.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keyFieldsMissingOnBase.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keyFieldsSelectInvalidType.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keysMatchBaseService.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesFieldsMissingExternal.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesFieldsSelectInvalidType.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesNotOnEntity.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/requiresFieldsMissingExternal.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/requiresFieldsMissingOnBase.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/duplicateEnumOrScalar.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/duplicateEnumValue.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/externalUsedOnBase.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/keyFieldsMissingExternal.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/requiresUsedOnBase.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/reservedFieldUsed.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/duplicateEnumOrScalar.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/duplicateEnumValue.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/externalUsedOnBase.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/keyFieldsMissingExternal.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/requiresUsedOnBase.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/reservedFieldUsed.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/__tests__/rootFieldUsed.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/rootFieldUsed.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/matchingEnums.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/matchingUnions.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/possibleTypeExtensions.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/uniqueFieldDefinitionNames.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/uniqueTypeNamesWithFields.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/matchingEnums.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/matchingUnions.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/possibleTypeExtensions.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/uniqueFieldDefinitionNames.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/composition/validate/sdl/uniqueTypeNamesWithFields.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/csdlDirectives.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/directives.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/service/__tests__/buildFederatedSchema.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/service/__tests__/printComposedSdl.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/service/__tests__/printFederatedSchema.test.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/service/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/federation/src/service/buildFederatedSchema.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/service/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/service/printComposedSdl.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/service/printFederatedSchema.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/snapshotSerializers/astSerializer.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/snapshotSerializers/graphqlErrorSerializer.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/snapshotSerializers/index.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/snapshotSerializers/selectionSetSerializer.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/snapshotSerializers/typeSerializer.ts delete mode 100644 gateway/node_modules/@apollo/federation/src/types.ts delete mode 100644 gateway/node_modules/@apollo/gateway/CHANGELOG.md delete mode 100644 gateway/node_modules/@apollo/gateway/LICENSE.md delete mode 100644 gateway/node_modules/@apollo/gateway/README.md delete mode 100644 gateway/node_modules/@apollo/gateway/dist/QueryPlan.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/QueryPlan.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/QueryPlan.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/QueryPlan.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/cache.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/cache.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/cache.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/cache.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/index.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/index.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/index.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/types.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/types.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/types.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/datasources/types.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/index.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/index.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/index.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/array.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/array.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/array.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/array.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/graphql.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/graphql.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/graphql.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/graphql.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/predicates.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/predicates.d.ts.map delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/predicates.js delete mode 100644 gateway/node_modules/@apollo/gateway/dist/utilities/predicates.js.map delete mode 100644 gateway/node_modules/@apollo/gateway/package.json delete mode 100644 gateway/node_modules/@apollo/gateway/src/QueryPlan.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__mocks__/apollo-server-env.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__mocks__/make-fetch-happen-fetcher.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/.gitkeep delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/CucumberREADME.md delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/build-query-plan-fragmentization.feature delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/build-query-plan.feature delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/buildQueryPlan.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/executeQueryPlan.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/execution-utils.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/gateway/buildService.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/gateway/executor.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/gateway/lifecycle-hooks.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/gateway/queryPlanCache.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/gateway/reporting.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/abstract-types.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/aliases.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/boolean.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/complex-key.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/custom-directives.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/execution-style.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/fragments.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/list-key.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/logger.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/merge-arrays.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/multiple-key.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/mutations.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/networkRequests.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/nockMocks.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/provides.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/requires.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/single-service.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/unions.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/value-types.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/integration/variables.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/loadServicesFromRemoteEndpoint.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toCallService.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toHaveBeenCalledBefore.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toHaveFetched.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toMatchAST.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/queryPlanCucumber.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/testSetup.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/gateway/src/buildQueryPlan.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/cache.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/datasources/LocalGraphQLDataSource.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/datasources/RemoteGraphQLDataSource.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/datasources/__tests__/LocalGraphQLDataSource.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/datasources/__tests__/RemoteGraphQLDataSource.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/datasources/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/gateway/src/datasources/index.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/datasources/types.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/executeQueryPlan.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/index.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/loadServicesFromRemoteEndpoint.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/loadServicesFromStorage.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/make-fetch-happen.d.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/snapshotSerializers/astSerializer.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/snapshotSerializers/index.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/snapshotSerializers/queryPlanSerializer.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/snapshotSerializers/selectionSetSerializer.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/snapshotSerializers/typeSerializer.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/utilities/__tests__/deepMerge.test.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/utilities/array.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/utilities/deepMerge.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/utilities/graphql.ts delete mode 100644 gateway/node_modules/@apollo/gateway/src/utilities/predicates.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/CHANGELOG.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/LICENSE delete mode 100644 gateway/node_modules/@apollo/protobufjs/README.md delete mode 100755 gateway/node_modules/@apollo/protobufjs/bin/pbjs delete mode 100755 gateway/node_modules/@apollo/protobufjs/bin/pbts delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/LICENSE delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/bin/pbjs delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/bin/pbts delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/index.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/index.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/LICENSE delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/plugin.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/publish.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/package-lock.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/package.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/package.standalone.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/pbjs.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/pbjs.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/pbts.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/pbts.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/targets/json-module.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/targets/json.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/targets/proto.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/targets/proto2.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/targets/proto3.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/targets/static-module.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/targets/static.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/util.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/wrappers/amd.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/wrappers/closure.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/wrappers/commonjs.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/wrappers/default.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/cli/wrappers/es6.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/light/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.js.map delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.min.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.min.js.map delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/minimal/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.js.map delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.min.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.min.js.map delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/protobuf.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/protobuf.js.map delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/protobuf.min.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/dist/protobuf.min.js.map delete mode 100644 gateway/node_modules/@apollo/protobufjs/ext/debug/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/ext/debug/index.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/ext/descriptor/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/ext/descriptor/index.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/ext/descriptor/index.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/ext/descriptor/test.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/LICENSE delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/api/annotations.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/api/annotations.proto delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/api/http.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/api/http.proto delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/protobuf/api.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/protobuf/api.proto delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/protobuf/descriptor.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/protobuf/descriptor.proto delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/protobuf/source_context.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/protobuf/source_context.proto delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/protobuf/type.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/google/protobuf/type.proto delete mode 100644 gateway/node_modules/@apollo/protobufjs/index.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/index.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/light.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/light.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/minimal.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/minimal.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/LICENSE delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/README.md delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/assert.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/async_hooks.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/base.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/buffer.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/child_process.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/cluster.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/console.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/constants.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/crypto.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/dgram.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/dns.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/domain.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/events.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/fs.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/globals.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/http.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/http2.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/https.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/index.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/inspector.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/module.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/net.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/os.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/package.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/path.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/perf_hooks.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/process.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/punycode.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/querystring.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/readline.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/repl.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/stream.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/string_decoder.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/timers.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/tls.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/trace_events.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/assert.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/base.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/index.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/tty.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/url.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/util.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/v8.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/vm.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/worker_threads.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/zlib.d.ts delete mode 100644 gateway/node_modules/@apollo/protobufjs/package-lock.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/package.json delete mode 100644 gateway/node_modules/@apollo/protobufjs/scripts/changelog.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/scripts/postinstall.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/common.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/converter.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/decoder.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/encoder.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/enum.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/field.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/index-light.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/index-minimal.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/index.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/mapfield.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/message.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/method.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/namespace.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/object.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/oneof.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/parse.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/reader.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/reader_buffer.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/root.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/roots.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/rpc.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/rpc/service.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/service.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/tokenize.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/type.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/types.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/typescript.jsdoc delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/util.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/util/longbits.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/util/minimal.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/verifier.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/wrappers.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/writer.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/src/writer_buffer.js delete mode 100644 gateway/node_modules/@apollo/protobufjs/tsconfig.json delete mode 100644 gateway/node_modules/@apollo/query-planner-wasm/LICENSE delete mode 100644 gateway/node_modules/@apollo/query-planner-wasm/README.md delete mode 100644 gateway/node_modules/@apollo/query-planner-wasm/dist/README.md delete mode 100644 gateway/node_modules/@apollo/query-planner-wasm/dist/index.d.ts delete mode 100644 gateway/node_modules/@apollo/query-planner-wasm/dist/index.js delete mode 100644 gateway/node_modules/@apollo/query-planner-wasm/dist/index_bg.wasm delete mode 100644 gateway/node_modules/@apollo/query-planner-wasm/dist/package.json delete mode 100644 gateway/node_modules/@apollo/query-planner-wasm/package.json delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/LICENSE delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/index.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/index.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/index.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/index.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.d.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.d.ts.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.js delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.js.map delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/package.json delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/buildServiceDefinition.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/index.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/schema/index.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/schema/resolveObject.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/schema/resolverMap.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/utilities/graphql.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/utilities/index.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/utilities/invariant.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/src/utilities/predicates.ts delete mode 100644 gateway/node_modules/@apollographql/apollo-tools/tsconfig.tsbuildinfo delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/README.md delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/get-loading-markup.d.ts delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/get-loading-markup.js delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/get-loading-markup.js.map delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/index.d.ts delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/index.js delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/index.js.map delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/render-playground-page.d.ts delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/render-playground-page.js delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/dist/render-playground-page.js.map delete mode 120000 gateway/node_modules/@apollographql/graphql-playground-html/node_modules/.bin/xss delete mode 100644 gateway/node_modules/@apollographql/graphql-playground-html/package.json delete mode 100644 gateway/node_modules/@jest/types/LICENSE delete mode 100644 gateway/node_modules/@jest/types/build/Circus.d.ts delete mode 100644 gateway/node_modules/@jest/types/build/Circus.js delete mode 100644 gateway/node_modules/@jest/types/build/Config.d.ts delete mode 100644 gateway/node_modules/@jest/types/build/Config.js delete mode 100644 gateway/node_modules/@jest/types/build/Global.d.ts delete mode 100644 gateway/node_modules/@jest/types/build/Global.js delete mode 100644 gateway/node_modules/@jest/types/build/TestResult.d.ts delete mode 100644 gateway/node_modules/@jest/types/build/TestResult.js delete mode 100644 gateway/node_modules/@jest/types/build/Transform.d.ts delete mode 100644 gateway/node_modules/@jest/types/build/Transform.js delete mode 100644 gateway/node_modules/@jest/types/build/index.d.ts delete mode 100644 gateway/node_modules/@jest/types/build/index.js delete mode 100644 gateway/node_modules/@jest/types/node_modules/chalk/index.d.ts delete mode 100644 gateway/node_modules/@jest/types/node_modules/chalk/license delete mode 100644 gateway/node_modules/@jest/types/node_modules/chalk/package.json delete mode 100644 gateway/node_modules/@jest/types/node_modules/chalk/readme.md delete mode 100644 gateway/node_modules/@jest/types/node_modules/chalk/source/index.js delete mode 100644 gateway/node_modules/@jest/types/node_modules/chalk/source/templates.js delete mode 100644 gateway/node_modules/@jest/types/node_modules/chalk/source/util.js delete mode 100644 gateway/node_modules/@jest/types/package.json delete mode 100644 gateway/node_modules/@npmcli/move-file/LICENSE.md delete mode 100644 gateway/node_modules/@npmcli/move-file/README.md delete mode 100644 gateway/node_modules/@npmcli/move-file/index.js delete mode 120000 gateway/node_modules/@npmcli/move-file/node_modules/.bin/mkdirp delete mode 100644 gateway/node_modules/@npmcli/move-file/package.json delete mode 100644 gateway/node_modules/@protobufjs/aspromise/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/aspromise/README.md delete mode 100644 gateway/node_modules/@protobufjs/aspromise/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/aspromise/index.js delete mode 100644 gateway/node_modules/@protobufjs/aspromise/package.json delete mode 100644 gateway/node_modules/@protobufjs/aspromise/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/base64/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/base64/README.md delete mode 100644 gateway/node_modules/@protobufjs/base64/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/base64/index.js delete mode 100644 gateway/node_modules/@protobufjs/base64/package.json delete mode 100644 gateway/node_modules/@protobufjs/base64/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/codegen/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/codegen/README.md delete mode 100644 gateway/node_modules/@protobufjs/codegen/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/codegen/index.js delete mode 100644 gateway/node_modules/@protobufjs/codegen/package.json delete mode 100644 gateway/node_modules/@protobufjs/codegen/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/eventemitter/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/eventemitter/README.md delete mode 100644 gateway/node_modules/@protobufjs/eventemitter/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/eventemitter/index.js delete mode 100644 gateway/node_modules/@protobufjs/eventemitter/package.json delete mode 100644 gateway/node_modules/@protobufjs/eventemitter/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/fetch/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/fetch/README.md delete mode 100644 gateway/node_modules/@protobufjs/fetch/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/fetch/index.js delete mode 100644 gateway/node_modules/@protobufjs/fetch/package.json delete mode 100644 gateway/node_modules/@protobufjs/fetch/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/float/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/float/README.md delete mode 100644 gateway/node_modules/@protobufjs/float/bench/index.js delete mode 100644 gateway/node_modules/@protobufjs/float/bench/suite.js delete mode 100644 gateway/node_modules/@protobufjs/float/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/float/index.js delete mode 100644 gateway/node_modules/@protobufjs/float/package.json delete mode 100644 gateway/node_modules/@protobufjs/float/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/inquire/.npmignore delete mode 100644 gateway/node_modules/@protobufjs/inquire/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/inquire/README.md delete mode 100644 gateway/node_modules/@protobufjs/inquire/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/inquire/index.js delete mode 100644 gateway/node_modules/@protobufjs/inquire/package.json delete mode 100644 gateway/node_modules/@protobufjs/inquire/tests/data/array.js delete mode 100644 gateway/node_modules/@protobufjs/inquire/tests/data/emptyArray.js delete mode 100644 gateway/node_modules/@protobufjs/inquire/tests/data/emptyObject.js delete mode 100644 gateway/node_modules/@protobufjs/inquire/tests/data/object.js delete mode 100644 gateway/node_modules/@protobufjs/inquire/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/path/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/path/README.md delete mode 100644 gateway/node_modules/@protobufjs/path/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/path/index.js delete mode 100644 gateway/node_modules/@protobufjs/path/package.json delete mode 100644 gateway/node_modules/@protobufjs/path/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/pool/.npmignore delete mode 100644 gateway/node_modules/@protobufjs/pool/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/pool/README.md delete mode 100644 gateway/node_modules/@protobufjs/pool/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/pool/index.js delete mode 100644 gateway/node_modules/@protobufjs/pool/package.json delete mode 100644 gateway/node_modules/@protobufjs/pool/tests/index.js delete mode 100644 gateway/node_modules/@protobufjs/utf8/.npmignore delete mode 100644 gateway/node_modules/@protobufjs/utf8/LICENSE delete mode 100644 gateway/node_modules/@protobufjs/utf8/README.md delete mode 100644 gateway/node_modules/@protobufjs/utf8/index.d.ts delete mode 100644 gateway/node_modules/@protobufjs/utf8/index.js delete mode 100644 gateway/node_modules/@protobufjs/utf8/package.json delete mode 100644 gateway/node_modules/@protobufjs/utf8/tests/data/utf8.txt delete mode 100644 gateway/node_modules/@protobufjs/utf8/tests/index.js delete mode 100644 gateway/node_modules/@sindresorhus/is/dist/index.d.ts delete mode 100644 gateway/node_modules/@sindresorhus/is/dist/index.js delete mode 100644 gateway/node_modules/@sindresorhus/is/dist/index.js.map delete mode 100644 gateway/node_modules/@sindresorhus/is/license delete mode 100644 gateway/node_modules/@sindresorhus/is/package.json delete mode 100644 gateway/node_modules/@sindresorhus/is/readme.md delete mode 100755 gateway/node_modules/@szmarczak/http-timer/LICENSE delete mode 100755 gateway/node_modules/@szmarczak/http-timer/README.md delete mode 100755 gateway/node_modules/@szmarczak/http-timer/package.json delete mode 100755 gateway/node_modules/@szmarczak/http-timer/source/index.js delete mode 100644 gateway/node_modules/@tootallnate/once/dist/index.d.ts delete mode 100644 gateway/node_modules/@tootallnate/once/dist/index.js delete mode 100644 gateway/node_modules/@tootallnate/once/dist/index.js.map delete mode 100644 gateway/node_modules/@tootallnate/once/package.json delete mode 100644 gateway/node_modules/@types/accepts/LICENSE delete mode 100644 gateway/node_modules/@types/accepts/README.md delete mode 100644 gateway/node_modules/@types/accepts/index.d.ts delete mode 100644 gateway/node_modules/@types/accepts/package.json delete mode 100644 gateway/node_modules/@types/body-parser/LICENSE delete mode 100644 gateway/node_modules/@types/body-parser/README.md delete mode 100644 gateway/node_modules/@types/body-parser/index.d.ts delete mode 100644 gateway/node_modules/@types/body-parser/package.json delete mode 100644 gateway/node_modules/@types/connect/LICENSE delete mode 100644 gateway/node_modules/@types/connect/README.md delete mode 100644 gateway/node_modules/@types/connect/index.d.ts delete mode 100644 gateway/node_modules/@types/connect/package.json delete mode 100644 gateway/node_modules/@types/content-disposition/LICENSE delete mode 100644 gateway/node_modules/@types/content-disposition/README.md delete mode 100644 gateway/node_modules/@types/content-disposition/index.d.ts delete mode 100644 gateway/node_modules/@types/content-disposition/package.json delete mode 100644 gateway/node_modules/@types/cookies/LICENSE delete mode 100644 gateway/node_modules/@types/cookies/README.md delete mode 100644 gateway/node_modules/@types/cookies/index.d.ts delete mode 100644 gateway/node_modules/@types/cookies/package.json delete mode 100644 gateway/node_modules/@types/cors/LICENSE delete mode 100644 gateway/node_modules/@types/cors/README.md delete mode 100644 gateway/node_modules/@types/cors/index.d.ts delete mode 100644 gateway/node_modules/@types/cors/package.json delete mode 100644 gateway/node_modules/@types/express-serve-static-core/LICENSE delete mode 100644 gateway/node_modules/@types/express-serve-static-core/README.md delete mode 100644 gateway/node_modules/@types/express-serve-static-core/index.d.ts delete mode 100644 gateway/node_modules/@types/express-serve-static-core/package.json delete mode 100644 gateway/node_modules/@types/express/LICENSE delete mode 100644 gateway/node_modules/@types/express/README.md delete mode 100644 gateway/node_modules/@types/express/index.d.ts delete mode 100644 gateway/node_modules/@types/express/package.json delete mode 100644 gateway/node_modules/@types/fs-capacitor/LICENSE delete mode 100644 gateway/node_modules/@types/fs-capacitor/README.md delete mode 100644 gateway/node_modules/@types/fs-capacitor/index.d.ts delete mode 100644 gateway/node_modules/@types/fs-capacitor/package.json delete mode 100644 gateway/node_modules/@types/graphql-upload/LICENSE delete mode 100644 gateway/node_modules/@types/graphql-upload/README.md delete mode 100644 gateway/node_modules/@types/graphql-upload/index.d.ts delete mode 100644 gateway/node_modules/@types/graphql-upload/package.json delete mode 100644 gateway/node_modules/@types/http-assert/LICENSE delete mode 100644 gateway/node_modules/@types/http-assert/README.md delete mode 100644 gateway/node_modules/@types/http-assert/index.d.ts delete mode 100644 gateway/node_modules/@types/http-assert/package.json delete mode 100644 gateway/node_modules/@types/http-errors/LICENSE delete mode 100644 gateway/node_modules/@types/http-errors/README.md delete mode 100644 gateway/node_modules/@types/http-errors/index.d.ts delete mode 100644 gateway/node_modules/@types/http-errors/package.json delete mode 100644 gateway/node_modules/@types/istanbul-lib-coverage/LICENSE delete mode 100644 gateway/node_modules/@types/istanbul-lib-coverage/README.md delete mode 100644 gateway/node_modules/@types/istanbul-lib-coverage/index.d.ts delete mode 100644 gateway/node_modules/@types/istanbul-lib-coverage/package.json delete mode 100644 gateway/node_modules/@types/istanbul-lib-report/LICENSE delete mode 100644 gateway/node_modules/@types/istanbul-lib-report/README.md delete mode 100644 gateway/node_modules/@types/istanbul-lib-report/index.d.ts delete mode 100644 gateway/node_modules/@types/istanbul-lib-report/package.json delete mode 100644 gateway/node_modules/@types/istanbul-reports/LICENSE delete mode 100644 gateway/node_modules/@types/istanbul-reports/README.md delete mode 100644 gateway/node_modules/@types/istanbul-reports/index.d.ts delete mode 100644 gateway/node_modules/@types/istanbul-reports/package.json delete mode 100644 gateway/node_modules/@types/keygrip/LICENSE delete mode 100644 gateway/node_modules/@types/keygrip/README.md delete mode 100644 gateway/node_modules/@types/keygrip/index.d.ts delete mode 100644 gateway/node_modules/@types/keygrip/package.json delete mode 100644 gateway/node_modules/@types/koa-compose/LICENSE delete mode 100644 gateway/node_modules/@types/koa-compose/README.md delete mode 100644 gateway/node_modules/@types/koa-compose/index.d.ts delete mode 100644 gateway/node_modules/@types/koa-compose/package.json delete mode 100644 gateway/node_modules/@types/koa/LICENSE delete mode 100644 gateway/node_modules/@types/koa/README.md delete mode 100644 gateway/node_modules/@types/koa/index.d.ts delete mode 100644 gateway/node_modules/@types/koa/package.json delete mode 100644 gateway/node_modules/@types/long/LICENSE delete mode 100644 gateway/node_modules/@types/long/README.md delete mode 100644 gateway/node_modules/@types/long/index.d.ts delete mode 100644 gateway/node_modules/@types/long/package.json delete mode 100644 gateway/node_modules/@types/mime/LICENSE delete mode 100644 gateway/node_modules/@types/mime/Mime.d.ts delete mode 100644 gateway/node_modules/@types/mime/README.md delete mode 100644 gateway/node_modules/@types/mime/index.d.ts delete mode 100644 gateway/node_modules/@types/mime/lite.d.ts delete mode 100644 gateway/node_modules/@types/mime/package.json delete mode 100644 gateway/node_modules/@types/node-fetch/LICENSE delete mode 100644 gateway/node_modules/@types/node-fetch/README.md delete mode 100644 gateway/node_modules/@types/node-fetch/externals.d.ts delete mode 100644 gateway/node_modules/@types/node-fetch/index.d.ts delete mode 100644 gateway/node_modules/@types/node-fetch/package.json delete mode 100644 gateway/node_modules/@types/node/LICENSE delete mode 100644 gateway/node_modules/@types/node/README.md delete mode 100644 gateway/node_modules/@types/node/assert.d.ts delete mode 100644 gateway/node_modules/@types/node/async_hooks.d.ts delete mode 100644 gateway/node_modules/@types/node/base.d.ts delete mode 100644 gateway/node_modules/@types/node/buffer.d.ts delete mode 100644 gateway/node_modules/@types/node/child_process.d.ts delete mode 100644 gateway/node_modules/@types/node/cluster.d.ts delete mode 100644 gateway/node_modules/@types/node/console.d.ts delete mode 100644 gateway/node_modules/@types/node/constants.d.ts delete mode 100644 gateway/node_modules/@types/node/crypto.d.ts delete mode 100644 gateway/node_modules/@types/node/dgram.d.ts delete mode 100644 gateway/node_modules/@types/node/dns.d.ts delete mode 100644 gateway/node_modules/@types/node/domain.d.ts delete mode 100644 gateway/node_modules/@types/node/events.d.ts delete mode 100644 gateway/node_modules/@types/node/fs.d.ts delete mode 100644 gateway/node_modules/@types/node/fs/promises.d.ts delete mode 100644 gateway/node_modules/@types/node/globals.d.ts delete mode 100644 gateway/node_modules/@types/node/globals.global.d.ts delete mode 100644 gateway/node_modules/@types/node/http.d.ts delete mode 100644 gateway/node_modules/@types/node/http2.d.ts delete mode 100644 gateway/node_modules/@types/node/https.d.ts delete mode 100644 gateway/node_modules/@types/node/index.d.ts delete mode 100644 gateway/node_modules/@types/node/inspector.d.ts delete mode 100644 gateway/node_modules/@types/node/module.d.ts delete mode 100644 gateway/node_modules/@types/node/net.d.ts delete mode 100644 gateway/node_modules/@types/node/os.d.ts delete mode 100644 gateway/node_modules/@types/node/package.json delete mode 100644 gateway/node_modules/@types/node/path.d.ts delete mode 100644 gateway/node_modules/@types/node/perf_hooks.d.ts delete mode 100644 gateway/node_modules/@types/node/process.d.ts delete mode 100644 gateway/node_modules/@types/node/punycode.d.ts delete mode 100644 gateway/node_modules/@types/node/querystring.d.ts delete mode 100644 gateway/node_modules/@types/node/readline.d.ts delete mode 100644 gateway/node_modules/@types/node/repl.d.ts delete mode 100644 gateway/node_modules/@types/node/stream.d.ts delete mode 100644 gateway/node_modules/@types/node/string_decoder.d.ts delete mode 100644 gateway/node_modules/@types/node/timers.d.ts delete mode 100644 gateway/node_modules/@types/node/tls.d.ts delete mode 100644 gateway/node_modules/@types/node/trace_events.d.ts delete mode 100644 gateway/node_modules/@types/node/ts3.4/assert.d.ts delete mode 100644 gateway/node_modules/@types/node/ts3.4/base.d.ts delete mode 100644 gateway/node_modules/@types/node/ts3.4/globals.global.d.ts delete mode 100644 gateway/node_modules/@types/node/ts3.4/index.d.ts delete mode 100644 gateway/node_modules/@types/node/ts3.6/base.d.ts delete mode 100644 gateway/node_modules/@types/node/ts3.6/index.d.ts delete mode 100644 gateway/node_modules/@types/node/tty.d.ts delete mode 100644 gateway/node_modules/@types/node/url.d.ts delete mode 100644 gateway/node_modules/@types/node/util.d.ts delete mode 100644 gateway/node_modules/@types/node/v8.d.ts delete mode 100644 gateway/node_modules/@types/node/vm.d.ts delete mode 100644 gateway/node_modules/@types/node/wasi.d.ts delete mode 100644 gateway/node_modules/@types/node/worker_threads.d.ts delete mode 100644 gateway/node_modules/@types/node/zlib.d.ts delete mode 100644 gateway/node_modules/@types/qs/LICENSE delete mode 100644 gateway/node_modules/@types/qs/README.md delete mode 100644 gateway/node_modules/@types/qs/index.d.ts delete mode 100644 gateway/node_modules/@types/qs/package.json delete mode 100644 gateway/node_modules/@types/range-parser/LICENSE delete mode 100644 gateway/node_modules/@types/range-parser/README.md delete mode 100644 gateway/node_modules/@types/range-parser/index.d.ts delete mode 100644 gateway/node_modules/@types/range-parser/package.json delete mode 100644 gateway/node_modules/@types/serve-static/LICENSE delete mode 100644 gateway/node_modules/@types/serve-static/README.md delete mode 100644 gateway/node_modules/@types/serve-static/index.d.ts delete mode 100644 gateway/node_modules/@types/serve-static/package.json delete mode 100644 gateway/node_modules/@types/ws/LICENSE delete mode 100644 gateway/node_modules/@types/ws/README.md delete mode 100644 gateway/node_modules/@types/ws/index.d.ts delete mode 100644 gateway/node_modules/@types/ws/package.json delete mode 100644 gateway/node_modules/@types/yargs-parser/LICENSE delete mode 100644 gateway/node_modules/@types/yargs-parser/README.md delete mode 100644 gateway/node_modules/@types/yargs-parser/index.d.ts delete mode 100644 gateway/node_modules/@types/yargs-parser/package.json delete mode 100644 gateway/node_modules/@types/yargs/LICENSE delete mode 100644 gateway/node_modules/@types/yargs/README.md delete mode 100644 gateway/node_modules/@types/yargs/index.d.ts delete mode 100644 gateway/node_modules/@types/yargs/package.json delete mode 100644 gateway/node_modules/@types/yargs/yargs.d.ts delete mode 100644 gateway/node_modules/@wry/equality/LICENSE delete mode 100644 gateway/node_modules/@wry/equality/README.md delete mode 100644 gateway/node_modules/@wry/equality/lib/equality.d.ts delete mode 100644 gateway/node_modules/@wry/equality/lib/equality.esm.js delete mode 100644 gateway/node_modules/@wry/equality/lib/equality.esm.js.map delete mode 100644 gateway/node_modules/@wry/equality/lib/equality.js delete mode 100644 gateway/node_modules/@wry/equality/lib/equality.js.map delete mode 100644 gateway/node_modules/@wry/equality/package.json delete mode 100644 gateway/node_modules/@wry/equality/rollup.config.js delete mode 100644 gateway/node_modules/@wry/equality/tsconfig.json delete mode 100644 gateway/node_modules/@wry/equality/tsconfig.rollup.json delete mode 100644 gateway/node_modules/abbrev/LICENSE delete mode 100644 gateway/node_modules/abbrev/README.md delete mode 100644 gateway/node_modules/abbrev/abbrev.js delete mode 100644 gateway/node_modules/abbrev/package.json delete mode 100644 gateway/node_modules/accepts/HISTORY.md delete mode 100644 gateway/node_modules/accepts/LICENSE delete mode 100644 gateway/node_modules/accepts/README.md delete mode 100644 gateway/node_modules/accepts/index.js delete mode 100644 gateway/node_modules/accepts/package.json delete mode 100644 gateway/node_modules/agent-base/README.md delete mode 100644 gateway/node_modules/agent-base/dist/src/index.d.ts delete mode 100644 gateway/node_modules/agent-base/dist/src/index.js delete mode 100644 gateway/node_modules/agent-base/dist/src/index.js.map delete mode 100644 gateway/node_modules/agent-base/dist/src/promisify.d.ts delete mode 100644 gateway/node_modules/agent-base/dist/src/promisify.js delete mode 100644 gateway/node_modules/agent-base/dist/src/promisify.js.map delete mode 100644 gateway/node_modules/agent-base/node_modules/debug/LICENSE delete mode 100644 gateway/node_modules/agent-base/node_modules/debug/README.md delete mode 100644 gateway/node_modules/agent-base/node_modules/debug/package.json delete mode 100644 gateway/node_modules/agent-base/node_modules/debug/src/browser.js delete mode 100644 gateway/node_modules/agent-base/node_modules/debug/src/common.js delete mode 100644 gateway/node_modules/agent-base/node_modules/debug/src/index.js delete mode 100644 gateway/node_modules/agent-base/node_modules/debug/src/node.js delete mode 100644 gateway/node_modules/agent-base/package.json delete mode 100644 gateway/node_modules/agent-base/src/index.ts delete mode 100644 gateway/node_modules/agent-base/src/promisify.ts delete mode 100644 gateway/node_modules/agentkeepalive/History.md delete mode 100644 gateway/node_modules/agentkeepalive/LICENSE delete mode 100644 gateway/node_modules/agentkeepalive/README.md delete mode 100644 gateway/node_modules/agentkeepalive/browser.js delete mode 100644 gateway/node_modules/agentkeepalive/index.d.ts delete mode 100644 gateway/node_modules/agentkeepalive/index.js delete mode 100644 gateway/node_modules/agentkeepalive/lib/agent.js delete mode 100644 gateway/node_modules/agentkeepalive/lib/constants.js delete mode 100644 gateway/node_modules/agentkeepalive/lib/https_agent.js delete mode 100644 gateway/node_modules/agentkeepalive/node_modules/debug/LICENSE delete mode 100644 gateway/node_modules/agentkeepalive/node_modules/debug/README.md delete mode 100644 gateway/node_modules/agentkeepalive/node_modules/debug/package.json delete mode 100644 gateway/node_modules/agentkeepalive/node_modules/debug/src/browser.js delete mode 100644 gateway/node_modules/agentkeepalive/node_modules/debug/src/common.js delete mode 100644 gateway/node_modules/agentkeepalive/node_modules/debug/src/index.js delete mode 100644 gateway/node_modules/agentkeepalive/node_modules/debug/src/node.js delete mode 100644 gateway/node_modules/agentkeepalive/package.json delete mode 100644 gateway/node_modules/aggregate-error/index.d.ts delete mode 100644 gateway/node_modules/aggregate-error/index.js delete mode 100644 gateway/node_modules/aggregate-error/license delete mode 100644 gateway/node_modules/aggregate-error/package.json delete mode 100644 gateway/node_modules/aggregate-error/readme.md delete mode 100644 gateway/node_modules/ansi-align/CHANGELOG.md delete mode 100644 gateway/node_modules/ansi-align/LICENSE delete mode 100644 gateway/node_modules/ansi-align/README.md delete mode 100644 gateway/node_modules/ansi-align/index.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/ansi-regex/index.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/ansi-regex/license delete mode 100644 gateway/node_modules/ansi-align/node_modules/ansi-regex/package.json delete mode 100644 gateway/node_modules/ansi-align/node_modules/ansi-regex/readme.md delete mode 100644 gateway/node_modules/ansi-align/node_modules/emoji-regex/LICENSE-MIT.txt delete mode 100644 gateway/node_modules/ansi-align/node_modules/emoji-regex/README.md delete mode 100644 gateway/node_modules/ansi-align/node_modules/emoji-regex/es2015/index.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/emoji-regex/es2015/text.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/emoji-regex/index.d.ts delete mode 100644 gateway/node_modules/ansi-align/node_modules/emoji-regex/index.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/emoji-regex/package.json delete mode 100644 gateway/node_modules/ansi-align/node_modules/emoji-regex/text.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/is-fullwidth-code-point/index.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/is-fullwidth-code-point/license delete mode 100644 gateway/node_modules/ansi-align/node_modules/is-fullwidth-code-point/package.json delete mode 100644 gateway/node_modules/ansi-align/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 gateway/node_modules/ansi-align/node_modules/string-width/index.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/string-width/license delete mode 100644 gateway/node_modules/ansi-align/node_modules/string-width/package.json delete mode 100644 gateway/node_modules/ansi-align/node_modules/string-width/readme.md delete mode 100644 gateway/node_modules/ansi-align/node_modules/strip-ansi/index.d.ts delete mode 100644 gateway/node_modules/ansi-align/node_modules/strip-ansi/index.js delete mode 100644 gateway/node_modules/ansi-align/node_modules/strip-ansi/license delete mode 100644 gateway/node_modules/ansi-align/node_modules/strip-ansi/package.json delete mode 100644 gateway/node_modules/ansi-align/node_modules/strip-ansi/readme.md delete mode 100644 gateway/node_modules/ansi-align/package.json delete mode 100644 gateway/node_modules/ansi-regex/index.d.ts delete mode 100644 gateway/node_modules/ansi-regex/index.js delete mode 100644 gateway/node_modules/ansi-regex/license delete mode 100644 gateway/node_modules/ansi-regex/package.json delete mode 100644 gateway/node_modules/ansi-regex/readme.md delete mode 100644 gateway/node_modules/ansi-styles/index.d.ts delete mode 100644 gateway/node_modules/ansi-styles/index.js delete mode 100644 gateway/node_modules/ansi-styles/license delete mode 100644 gateway/node_modules/ansi-styles/package.json delete mode 100644 gateway/node_modules/ansi-styles/readme.md delete mode 100644 gateway/node_modules/anymatch/LICENSE delete mode 100644 gateway/node_modules/anymatch/README.md delete mode 100644 gateway/node_modules/anymatch/index.d.ts delete mode 100644 gateway/node_modules/anymatch/index.js delete mode 100644 gateway/node_modules/anymatch/package.json delete mode 100644 gateway/node_modules/apollo-cache-control/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-cache-control/LICENSE delete mode 100644 gateway/node_modules/apollo-cache-control/README.md delete mode 100644 gateway/node_modules/apollo-cache-control/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-cache-control/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-cache-control/dist/index.js delete mode 100644 gateway/node_modules/apollo-cache-control/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-cache-control/package.json delete mode 100644 gateway/node_modules/apollo-cache-control/src/__tests__/cacheControlDirective.test.ts delete mode 100644 gateway/node_modules/apollo-cache-control/src/__tests__/cacheControlPlugin.test.ts delete mode 100644 gateway/node_modules/apollo-cache-control/src/__tests__/cacheControlSupport.ts delete mode 100644 gateway/node_modules/apollo-cache-control/src/__tests__/collectCacheControlHints.ts delete mode 100644 gateway/node_modules/apollo-cache-control/src/__tests__/dynamicCacheControl.test.ts delete mode 100644 gateway/node_modules/apollo-cache-control/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-cache-control/src/index.ts delete mode 100644 gateway/node_modules/apollo-datasource/LICENSE delete mode 100644 gateway/node_modules/apollo-datasource/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-datasource/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-datasource/dist/index.js delete mode 100644 gateway/node_modules/apollo-datasource/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-datasource/package.json delete mode 100644 gateway/node_modules/apollo-datasource/src/index.ts delete mode 100644 gateway/node_modules/apollo-env/LICENSE delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/fetch.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/fetch.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/fetch.js delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/fetch.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/global.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/global.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/global.js delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/global.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/index.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/index.js delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/index.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/url.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/url.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/url.js delete mode 100644 gateway/node_modules/apollo-env/lib/fetch/url.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/index.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/index.js delete mode 100644 gateway/node_modules/apollo-env/lib/index.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/array.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/array.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/array.js delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/array.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/index.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/index.js delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/index.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/object.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/object.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/object.js delete mode 100644 gateway/node_modules/apollo-env/lib/polyfills/object.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/typescript-utility-types.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/typescript-utility-types.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/typescript-utility-types.js delete mode 100644 gateway/node_modules/apollo-env/lib/typescript-utility-types.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/createHash.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/utils/createHash.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/createHash.js delete mode 100644 gateway/node_modules/apollo-env/lib/utils/createHash.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/index.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/utils/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/index.js delete mode 100644 gateway/node_modules/apollo-env/lib/utils/index.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/isNodeLike.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/utils/isNodeLike.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/isNodeLike.js delete mode 100644 gateway/node_modules/apollo-env/lib/utils/isNodeLike.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/mapValues.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/utils/mapValues.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/mapValues.js delete mode 100644 gateway/node_modules/apollo-env/lib/utils/mapValues.js.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/predicates.d.ts delete mode 100644 gateway/node_modules/apollo-env/lib/utils/predicates.d.ts.map delete mode 100644 gateway/node_modules/apollo-env/lib/utils/predicates.js delete mode 100644 gateway/node_modules/apollo-env/lib/utils/predicates.js.map delete mode 120000 gateway/node_modules/apollo-env/node_modules/.bin/sha.js delete mode 100644 gateway/node_modules/apollo-env/node_modules/@types/node-fetch/LICENSE delete mode 100644 gateway/node_modules/apollo-env/node_modules/@types/node-fetch/README.md delete mode 100644 gateway/node_modules/apollo-env/node_modules/@types/node-fetch/externals.d.ts delete mode 100644 gateway/node_modules/apollo-env/node_modules/@types/node-fetch/index.d.ts delete mode 100644 gateway/node_modules/apollo-env/node_modules/@types/node-fetch/package.json delete mode 100644 gateway/node_modules/apollo-env/package.json delete mode 100644 gateway/node_modules/apollo-env/src/fetch/fetch.ts delete mode 100644 gateway/node_modules/apollo-env/src/fetch/global.ts delete mode 100644 gateway/node_modules/apollo-env/src/fetch/index.d.ts delete mode 100644 gateway/node_modules/apollo-env/src/fetch/index.ts delete mode 100644 gateway/node_modules/apollo-env/src/fetch/tsconfig.json delete mode 100644 gateway/node_modules/apollo-env/src/fetch/url.ts delete mode 100644 gateway/node_modules/apollo-env/src/index.ts delete mode 100644 gateway/node_modules/apollo-env/src/polyfills/array.ts delete mode 100644 gateway/node_modules/apollo-env/src/polyfills/index.ts delete mode 100644 gateway/node_modules/apollo-env/src/polyfills/object.ts delete mode 100644 gateway/node_modules/apollo-env/src/typescript-utility-types.ts delete mode 100644 gateway/node_modules/apollo-env/src/utils/createHash.ts delete mode 100644 gateway/node_modules/apollo-env/src/utils/index.ts delete mode 100644 gateway/node_modules/apollo-env/src/utils/isNodeLike.ts delete mode 100644 gateway/node_modules/apollo-env/src/utils/mapValues.ts delete mode 100644 gateway/node_modules/apollo-env/src/utils/predicates.ts delete mode 100644 gateway/node_modules/apollo-env/tsconfig.json delete mode 100644 gateway/node_modules/apollo-env/tsconfig.tsbuildinfo delete mode 100644 gateway/node_modules/apollo-graphql/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-graphql/LICENSE delete mode 100644 gateway/node_modules/apollo-graphql/README.md delete mode 100644 gateway/node_modules/apollo-graphql/lib/index.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/index.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/index.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/operationId.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/operationId.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/operationId.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/operationId.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/GraphQLSchemaValidationError.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/GraphQLSchemaValidationError.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/GraphQLSchemaValidationError.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/GraphQLSchemaValidationError.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/buildSchemaFromSDL.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/buildSchemaFromSDL.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/buildSchemaFromSDL.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/buildSchemaFromSDL.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/index.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/index.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/index.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/resolveObject.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/resolveObject.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/resolveObject.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/resolveObject.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/resolverMap.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/resolverMap.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/resolverMap.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/resolverMap.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/transformSchema.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/transformSchema.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/transformSchema.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/schema/transformSchema.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/transforms.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/transforms.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/transforms.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/transforms.js.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/utilities/graphql.d.ts delete mode 100644 gateway/node_modules/apollo-graphql/lib/utilities/graphql.d.ts.map delete mode 100644 gateway/node_modules/apollo-graphql/lib/utilities/graphql.js delete mode 100644 gateway/node_modules/apollo-graphql/lib/utilities/graphql.js.map delete mode 100644 gateway/node_modules/apollo-graphql/package.json delete mode 100644 gateway/node_modules/apollo-graphql/src/__tests__/__snapshots__/operationId.test.ts.snap delete mode 100644 gateway/node_modules/apollo-graphql/src/__tests__/operationId.test.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/__tests__/transforms.test.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-graphql/src/index.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/operationId.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/GraphQLSchemaValidationError.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/__tests__/buildSchemaFromSDL.test.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/__tests__/snapshotSerializers/astSerializer.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/__tests__/snapshotSerializers/graphQLTypeSerializer.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/__tests__/snapshotSerializers/selectionSetSerializer.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/buildSchemaFromSDL.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/index.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/resolveObject.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/resolverMap.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/schema/transformSchema.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/transforms.ts delete mode 100644 gateway/node_modules/apollo-graphql/src/utilities/graphql.ts delete mode 100644 gateway/node_modules/apollo-link/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-link/LICENSE delete mode 100644 gateway/node_modules/apollo-link/README.md delete mode 100644 gateway/node_modules/apollo-link/lib/bundle.cjs.js delete mode 100644 gateway/node_modules/apollo-link/lib/bundle.cjs.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/bundle.esm.js delete mode 100644 gateway/node_modules/apollo-link/lib/bundle.esm.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/bundle.umd.js delete mode 100644 gateway/node_modules/apollo-link/lib/bundle.umd.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/index.d.ts delete mode 100644 gateway/node_modules/apollo-link/lib/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-link/lib/index.js delete mode 100644 gateway/node_modules/apollo-link/lib/index.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/link.d.ts delete mode 100644 gateway/node_modules/apollo-link/lib/link.d.ts.map delete mode 100644 gateway/node_modules/apollo-link/lib/link.js delete mode 100644 gateway/node_modules/apollo-link/lib/link.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/linkUtils.d.ts delete mode 100644 gateway/node_modules/apollo-link/lib/linkUtils.d.ts.map delete mode 100644 gateway/node_modules/apollo-link/lib/linkUtils.js delete mode 100644 gateway/node_modules/apollo-link/lib/linkUtils.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils.d.ts delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils.d.ts.map delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils.js delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/mockLink.d.ts delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/mockLink.d.ts.map delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/mockLink.js delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/mockLink.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/setContext.d.ts delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/setContext.d.ts.map delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/setContext.js delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/setContext.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/testingUtils.d.ts delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/testingUtils.d.ts.map delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/testingUtils.js delete mode 100644 gateway/node_modules/apollo-link/lib/test-utils/testingUtils.js.map delete mode 100644 gateway/node_modules/apollo-link/lib/types.d.ts delete mode 100644 gateway/node_modules/apollo-link/lib/types.d.ts.map delete mode 100644 gateway/node_modules/apollo-link/lib/types.js delete mode 100644 gateway/node_modules/apollo-link/lib/types.js.map delete mode 100644 gateway/node_modules/apollo-link/package.json delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/LICENSE delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/README.md delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/dist/index.js delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/dist/protobuf.d.ts delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/dist/protobuf.js delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/dist/reports.proto delete mode 120000 gateway/node_modules/apollo-reporting-protobuf/node_modules/.bin/apollo-pbjs delete mode 120000 gateway/node_modules/apollo-reporting-protobuf/node_modules/.bin/apollo-pbts delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/package.json delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/src/.editorconfig delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/src/index.d.ts delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/src/index.js delete mode 100644 gateway/node_modules/apollo-reporting-protobuf/src/reports.proto delete mode 100644 gateway/node_modules/apollo-server-caching/LICENSE delete mode 100644 gateway/node_modules/apollo-server-caching/README.md delete mode 100644 gateway/node_modules/apollo-server-caching/dist/InMemoryLRUCache.d.ts delete mode 100644 gateway/node_modules/apollo-server-caching/dist/InMemoryLRUCache.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-caching/dist/InMemoryLRUCache.js delete mode 100644 gateway/node_modules/apollo-server-caching/dist/InMemoryLRUCache.js.map delete mode 100644 gateway/node_modules/apollo-server-caching/dist/KeyValueCache.d.ts delete mode 100644 gateway/node_modules/apollo-server-caching/dist/KeyValueCache.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-caching/dist/KeyValueCache.js delete mode 100644 gateway/node_modules/apollo-server-caching/dist/KeyValueCache.js.map delete mode 100644 gateway/node_modules/apollo-server-caching/dist/PrefixingKeyValueCache.d.ts delete mode 100644 gateway/node_modules/apollo-server-caching/dist/PrefixingKeyValueCache.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-caching/dist/PrefixingKeyValueCache.js delete mode 100644 gateway/node_modules/apollo-server-caching/dist/PrefixingKeyValueCache.js.map delete mode 100644 gateway/node_modules/apollo-server-caching/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-caching/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-caching/dist/index.js delete mode 100644 gateway/node_modules/apollo-server-caching/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-server-caching/package.json delete mode 100644 gateway/node_modules/apollo-server-caching/src/InMemoryLRUCache.ts delete mode 100644 gateway/node_modules/apollo-server-caching/src/KeyValueCache.ts delete mode 100644 gateway/node_modules/apollo-server-caching/src/PrefixingKeyValueCache.ts delete mode 100644 gateway/node_modules/apollo-server-caching/src/__tests__/InMemoryLRUCache.test.ts delete mode 100644 gateway/node_modules/apollo-server-caching/src/__tests__/PrefixingKeyValueCache.test.ts delete mode 100644 gateway/node_modules/apollo-server-caching/src/__tests__/testsuite.ts delete mode 100644 gateway/node_modules/apollo-server-caching/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-server-caching/src/index.ts delete mode 100644 gateway/node_modules/apollo-server-core/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-server-core/LICENSE delete mode 100644 gateway/node_modules/apollo-server-core/README.md delete mode 100644 gateway/node_modules/apollo-server-core/dist/ApolloServer.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/ApolloServer.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/ApolloServer.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/ApolloServer.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/determineApolloConfig.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/determineApolloConfig.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/determineApolloConfig.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/determineApolloConfig.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/graphqlOptions.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/graphqlOptions.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/graphqlOptions.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/graphqlOptions.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/index.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/nodeHttpToRequest.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/nodeHttpToRequest.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/nodeHttpToRequest.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/nodeHttpToRequest.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/playground.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/playground.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/playground.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/playground.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/index.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/index.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/inlineTrace/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/inlineTrace/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/inlineTrace/index.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/inlineTrace/index.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/internalPlugin.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/internalPlugin.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/internalPlugin.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/internalPlugin.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/index.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/index.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/reportingOperationTypes.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/reportingOperationTypes.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/reportingOperationTypes.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/reportingOperationTypes.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/schemaReporter.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/schemaReporter.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/schemaReporter.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/schemaReporting/schemaReporter.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/traceTreeBuilder.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/traceTreeBuilder.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/traceTreeBuilder.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/traceTreeBuilder.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/durationHistogram.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/durationHistogram.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/durationHistogram.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/durationHistogram.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/index.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/index.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/legacyOptions.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/legacyOptions.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/legacyOptions.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/legacyOptions.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/options.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/options.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/options.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/options.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/plugin.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/plugin.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/plugin.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/plugin.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/signatureCache.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/signatureCache.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/signatureCache.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/signatureCache.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/traceDetails.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/traceDetails.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/traceDetails.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/plugin/usageReporting/traceDetails.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/processFileUploads.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/processFileUploads.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/processFileUploads.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/processFileUploads.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/requestPipeline.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/requestPipeline.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/requestPipeline.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/requestPipeline.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/requestPipelineAPI.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/requestPipelineAPI.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/requestPipelineAPI.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/requestPipelineAPI.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/runHttpQuery.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/runHttpQuery.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/runHttpQuery.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/runHttpQuery.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/types.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/types.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/types.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/types.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/createSHA.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/createSHA.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/createSHA.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/createSHA.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/dispatcher.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/dispatcher.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/dispatcher.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/dispatcher.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/isDirectiveDefined.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/isDirectiveDefined.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/isDirectiveDefined.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/isDirectiveDefined.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/isNodeLike.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/isNodeLike.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/isNodeLike.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/isNodeLike.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/pluginTestHarness.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/pluginTestHarness.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/pluginTestHarness.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/pluginTestHarness.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/runtimeSupportsUploads.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/runtimeSupportsUploads.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/runtimeSupportsUploads.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/runtimeSupportsUploads.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/schemaHash.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/schemaHash.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/schemaHash.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/schemaHash.js.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/schemaInstrumentation.d.ts delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/schemaInstrumentation.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/schemaInstrumentation.js delete mode 100644 gateway/node_modules/apollo-server-core/dist/utils/schemaInstrumentation.js.map delete mode 120000 gateway/node_modules/apollo-server-core/node_modules/.bin/sha.js delete mode 120000 gateway/node_modules/apollo-server-core/node_modules/.bin/uuid delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/CONTRIBUTING.md delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/LICENSE.md delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/README.md delete mode 100755 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/bin/uuid delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/index.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/md5.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/nil.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/parse.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/regex.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/rng.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/sha1.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/stringify.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/v1.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/v3.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/v35.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/v4.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/v5.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/validate.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-browser/version.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/index.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/md5.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/nil.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/parse.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/regex.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/rng.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/sha1.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/stringify.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/v1.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/v3.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/v35.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/v4.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/v5.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/validate.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/esm-node/version.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/index.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/md5-browser.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/md5.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/nil.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/parse.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/regex.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/rng-browser.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/rng.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/sha1-browser.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/sha1.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/stringify.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuid.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidNIL.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidParse.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidStringify.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidValidate.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidVersion.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidv1.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidv3.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidv4.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/umd/uuidv5.min.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/uuid-bin.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/v1.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/v3.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/v35.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/v4.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/v5.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/validate.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/dist/version.js delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/package.json delete mode 100644 gateway/node_modules/apollo-server-core/node_modules/uuid/wrapper.mjs delete mode 100644 gateway/node_modules/apollo-server-core/package.json delete mode 100644 gateway/node_modules/apollo-server-core/src/ApolloServer.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/__tests__/ApolloServerBase.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/__tests__/dataSources.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/__tests__/errors.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/__tests__/isDirectiveDefined.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/__tests__/logger.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/__tests__/runHttpQuery.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/__tests__/runQuery.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-server-core/src/determineApolloConfig.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/graphqlOptions.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/index.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/nodeHttpToRequest.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/playground.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/index.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/inlineTrace/index.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/internalPlugin.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/schemaReporting/__tests__/computeExecutableSchemaId.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/schemaReporting/__tests__/index.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/schemaReporting/__tests__/schemaReporter.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/schemaReporting/index.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/schemaReporting/reportingOperationTypes.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/schemaReporting/schemaReporter.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/traceTreeBuilder.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/__tests__/durationHistogram.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/__tests__/legacyOptions.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/__tests__/plugin.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/__tests__/signatureCache.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/__tests__/traceDetails.test.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/durationHistogram.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/index.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/legacyOptions.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/options.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/plugin.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/signatureCache.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/plugin/usageReporting/traceDetails.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/processFileUploads.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/requestPipeline.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/requestPipelineAPI.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/runHttpQuery.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/types.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/utils/createSHA.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/utils/dispatcher.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/utils/isDirectiveDefined.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/utils/isNodeLike.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/utils/pluginTestHarness.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/utils/runtimeSupportsUploads.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/utils/schemaHash.ts delete mode 100644 gateway/node_modules/apollo-server-core/src/utils/schemaInstrumentation.ts delete mode 100644 gateway/node_modules/apollo-server-env/LICENSE delete mode 100644 gateway/node_modules/apollo-server-env/README.md delete mode 100644 gateway/node_modules/apollo-server-env/dist/fetch.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/dist/global.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/dist/index.browser.js delete mode 100644 gateway/node_modules/apollo-server-env/dist/index.browser.js.map delete mode 100644 gateway/node_modules/apollo-server-env/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/dist/index.js delete mode 100644 gateway/node_modules/apollo-server-env/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-server-env/dist/polyfills/Object.entries.js delete mode 100644 gateway/node_modules/apollo-server-env/dist/polyfills/Object.entries.js.map delete mode 100644 gateway/node_modules/apollo-server-env/dist/polyfills/Object.values.js delete mode 100644 gateway/node_modules/apollo-server-env/dist/polyfills/Object.values.js.map delete mode 100644 gateway/node_modules/apollo-server-env/dist/polyfills/fetch.js delete mode 100644 gateway/node_modules/apollo-server-env/dist/polyfills/fetch.js.map delete mode 100644 gateway/node_modules/apollo-server-env/dist/polyfills/url.js delete mode 100644 gateway/node_modules/apollo-server-env/dist/polyfills/url.js.map delete mode 100644 gateway/node_modules/apollo-server-env/dist/typescript-utility-types.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/dist/url.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/dist/utils/runtimeSupportsPromisify.js delete mode 100644 gateway/node_modules/apollo-server-env/dist/utils/runtimeSupportsPromisify.js.map delete mode 100644 gateway/node_modules/apollo-server-env/package.json delete mode 100644 gateway/node_modules/apollo-server-env/src/fetch.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/src/global.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/src/index.browser.js delete mode 100644 gateway/node_modules/apollo-server-env/src/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/src/index.ts delete mode 100644 gateway/node_modules/apollo-server-env/src/polyfills/Object.entries.ts delete mode 100644 gateway/node_modules/apollo-server-env/src/polyfills/Object.values.ts delete mode 100644 gateway/node_modules/apollo-server-env/src/polyfills/fetch.js delete mode 100644 gateway/node_modules/apollo-server-env/src/polyfills/url.js delete mode 100644 gateway/node_modules/apollo-server-env/src/typescript-utility-types.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/src/url.d.ts delete mode 100644 gateway/node_modules/apollo-server-env/src/utils/runtimeSupportsPromisify.ts delete mode 100644 gateway/node_modules/apollo-server-errors/LICENSE delete mode 100644 gateway/node_modules/apollo-server-errors/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-errors/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-errors/dist/index.js delete mode 100644 gateway/node_modules/apollo-server-errors/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-server-errors/package.json delete mode 100644 gateway/node_modules/apollo-server-errors/src/__tests__/ApolloError.test.ts delete mode 100644 gateway/node_modules/apollo-server-errors/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-server-errors/src/index.ts delete mode 100644 gateway/node_modules/apollo-server-express/LICENSE delete mode 100644 gateway/node_modules/apollo-server-express/README.md delete mode 100644 gateway/node_modules/apollo-server-express/dist/ApolloServer.d.ts delete mode 100644 gateway/node_modules/apollo-server-express/dist/ApolloServer.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-express/dist/ApolloServer.js delete mode 100644 gateway/node_modules/apollo-server-express/dist/ApolloServer.js.map delete mode 100644 gateway/node_modules/apollo-server-express/dist/connectApollo.d.ts delete mode 100644 gateway/node_modules/apollo-server-express/dist/connectApollo.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-express/dist/connectApollo.js delete mode 100644 gateway/node_modules/apollo-server-express/dist/connectApollo.js.map delete mode 100644 gateway/node_modules/apollo-server-express/dist/expressApollo.d.ts delete mode 100644 gateway/node_modules/apollo-server-express/dist/expressApollo.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-express/dist/expressApollo.js delete mode 100644 gateway/node_modules/apollo-server-express/dist/expressApollo.js.map delete mode 100644 gateway/node_modules/apollo-server-express/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-express/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-express/dist/index.js delete mode 100644 gateway/node_modules/apollo-server-express/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-server-express/node_modules/@types/express/LICENSE delete mode 100644 gateway/node_modules/apollo-server-express/node_modules/@types/express/README.md delete mode 100644 gateway/node_modules/apollo-server-express/node_modules/@types/express/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-express/node_modules/@types/express/package.json delete mode 100644 gateway/node_modules/apollo-server-express/package.json delete mode 100644 gateway/node_modules/apollo-server-express/src/ApolloServer.ts delete mode 100644 gateway/node_modules/apollo-server-express/src/__tests__/ApolloServer.test.ts delete mode 100644 gateway/node_modules/apollo-server-express/src/__tests__/connectApollo.test.ts delete mode 100644 gateway/node_modules/apollo-server-express/src/__tests__/datasource.test.ts delete mode 100644 gateway/node_modules/apollo-server-express/src/__tests__/expressApollo.test.ts delete mode 100644 gateway/node_modules/apollo-server-express/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-server-express/src/connectApollo.ts delete mode 100644 gateway/node_modules/apollo-server-express/src/expressApollo.ts delete mode 100644 gateway/node_modules/apollo-server-express/src/index.ts delete mode 100644 gateway/node_modules/apollo-server-plugin-base/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-server-plugin-base/LICENSE delete mode 100644 gateway/node_modules/apollo-server-plugin-base/README.md delete mode 100644 gateway/node_modules/apollo-server-plugin-base/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-plugin-base/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-plugin-base/dist/index.js delete mode 100644 gateway/node_modules/apollo-server-plugin-base/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-server-plugin-base/package.json delete mode 100644 gateway/node_modules/apollo-server-plugin-base/src/index.ts delete mode 100644 gateway/node_modules/apollo-server-types/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-server-types/LICENSE delete mode 100644 gateway/node_modules/apollo-server-types/README.md delete mode 100644 gateway/node_modules/apollo-server-types/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-server-types/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server-types/dist/index.js delete mode 100644 gateway/node_modules/apollo-server-types/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-server-types/package.json delete mode 100644 gateway/node_modules/apollo-server-types/src/index.ts delete mode 100644 gateway/node_modules/apollo-server/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-server/LICENSE delete mode 100644 gateway/node_modules/apollo-server/README.md delete mode 100644 gateway/node_modules/apollo-server/dist/exports.d.ts delete mode 100644 gateway/node_modules/apollo-server/dist/exports.d.ts.map delete mode 100644 gateway/node_modules/apollo-server/dist/exports.js delete mode 100644 gateway/node_modules/apollo-server/dist/exports.js.map delete mode 100644 gateway/node_modules/apollo-server/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-server/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-server/dist/index.js delete mode 100644 gateway/node_modules/apollo-server/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-server/package.json delete mode 100644 gateway/node_modules/apollo-server/src/__tests__/index.test.ts delete mode 100644 gateway/node_modules/apollo-server/src/__tests__/tsconfig.json delete mode 100644 gateway/node_modules/apollo-server/src/exports.ts delete mode 100644 gateway/node_modules/apollo-server/src/index.ts delete mode 100644 gateway/node_modules/apollo-tracing/LICENSE delete mode 100644 gateway/node_modules/apollo-tracing/README.md delete mode 100644 gateway/node_modules/apollo-tracing/dist/index.d.ts delete mode 100644 gateway/node_modules/apollo-tracing/dist/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-tracing/dist/index.js delete mode 100644 gateway/node_modules/apollo-tracing/dist/index.js.map delete mode 100644 gateway/node_modules/apollo-tracing/package.json delete mode 100644 gateway/node_modules/apollo-tracing/src/index.ts delete mode 100644 gateway/node_modules/apollo-utilities/.flowconfig delete mode 100644 gateway/node_modules/apollo-utilities/CHANGELOG.md delete mode 100644 gateway/node_modules/apollo-utilities/LICENSE delete mode 100644 gateway/node_modules/apollo-utilities/jest.config.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/bundle.cjs.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/bundle.cjs.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/bundle.cjs.min.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/bundle.esm.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/bundle.esm.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/bundle.umd.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/bundle.umd.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/directives.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/directives.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/directives.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/directives.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/fragments.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/fragments.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/fragments.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/fragments.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/getFromAST.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/getFromAST.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/getFromAST.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/getFromAST.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/index.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/index.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/index.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/index.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/storeUtils.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/storeUtils.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/storeUtils.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/storeUtils.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/transform.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/transform.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/transform.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/transform.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/assign.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/assign.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/assign.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/assign.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/canUse.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/canUse.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/canUse.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/canUse.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/cloneDeep.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/cloneDeep.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/cloneDeep.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/cloneDeep.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/environment.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/environment.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/environment.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/environment.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/errorHandling.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/errorHandling.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/errorHandling.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/errorHandling.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/filterInPlace.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/filterInPlace.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/filterInPlace.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/filterInPlace.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/isEqual.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/isEqual.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/isEqual.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/isEqual.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/maybeDeepFreeze.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/maybeDeepFreeze.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/maybeDeepFreeze.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/maybeDeepFreeze.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/mergeDeep.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/mergeDeep.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/mergeDeep.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/mergeDeep.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/stripSymbols.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/stripSymbols.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/stripSymbols.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/stripSymbols.js.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/warnOnce.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/warnOnce.d.ts.map delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/warnOnce.js delete mode 100644 gateway/node_modules/apollo-utilities/lib/util/warnOnce.js.map delete mode 100644 gateway/node_modules/apollo-utilities/package.json delete mode 100644 gateway/node_modules/apollo-utilities/src/__tests__/directives.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/__tests__/fragments.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/__tests__/getFromAST.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/__tests__/storeUtils.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/__tests__/transform.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/declarations.d.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/directives.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/fragments.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/getFromAST.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/index.js.flow delete mode 100644 gateway/node_modules/apollo-utilities/src/index.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/storeUtils.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/transform.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/__tests__/assign.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/__tests__/cloneDeep.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/__tests__/environment.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/__tests__/isEqual.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/__tests__/maybeDeepFeeze.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/__tests__/mergeDeep.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/__tests__/stripSymbols.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/__tests__/warnOnce.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/assign.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/canUse.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/cloneDeep.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/environment.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/errorHandling.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/filterInPlace.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/isEqual.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/maybeDeepFreeze.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/mergeDeep.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/stripSymbols.ts delete mode 100644 gateway/node_modules/apollo-utilities/src/util/warnOnce.ts delete mode 100644 gateway/node_modules/array-flatten/LICENSE delete mode 100644 gateway/node_modules/array-flatten/README.md delete mode 100644 gateway/node_modules/array-flatten/array-flatten.js delete mode 100644 gateway/node_modules/array-flatten/package.json delete mode 100644 gateway/node_modules/async-limiter/.eslintignore delete mode 100644 gateway/node_modules/async-limiter/.nycrc delete mode 100644 gateway/node_modules/async-limiter/.travis.yml delete mode 100644 gateway/node_modules/async-limiter/LICENSE delete mode 100644 gateway/node_modules/async-limiter/index.js delete mode 100644 gateway/node_modules/async-limiter/package.json delete mode 100644 gateway/node_modules/async-limiter/readme.md delete mode 100644 gateway/node_modules/async-retry/LICENSE.md delete mode 100644 gateway/node_modules/async-retry/README.md delete mode 100644 gateway/node_modules/async-retry/lib/index.js delete mode 100644 gateway/node_modules/async-retry/package.json delete mode 100644 gateway/node_modules/asynckit/LICENSE delete mode 100644 gateway/node_modules/asynckit/README.md delete mode 100644 gateway/node_modules/asynckit/bench.js delete mode 100644 gateway/node_modules/asynckit/index.js delete mode 100644 gateway/node_modules/asynckit/lib/abort.js delete mode 100644 gateway/node_modules/asynckit/lib/async.js delete mode 100644 gateway/node_modules/asynckit/lib/defer.js delete mode 100644 gateway/node_modules/asynckit/lib/iterate.js delete mode 100644 gateway/node_modules/asynckit/lib/readable_asynckit.js delete mode 100644 gateway/node_modules/asynckit/lib/readable_parallel.js delete mode 100644 gateway/node_modules/asynckit/lib/readable_serial.js delete mode 100644 gateway/node_modules/asynckit/lib/readable_serial_ordered.js delete mode 100644 gateway/node_modules/asynckit/lib/state.js delete mode 100644 gateway/node_modules/asynckit/lib/streamify.js delete mode 100644 gateway/node_modules/asynckit/lib/terminator.js delete mode 100644 gateway/node_modules/asynckit/package.json delete mode 100644 gateway/node_modules/asynckit/parallel.js delete mode 100644 gateway/node_modules/asynckit/serial.js delete mode 100644 gateway/node_modules/asynckit/serialOrdered.js delete mode 100644 gateway/node_modules/asynckit/stream.js delete mode 100644 gateway/node_modules/backo2/.npmignore delete mode 100644 gateway/node_modules/backo2/History.md delete mode 100644 gateway/node_modules/backo2/Makefile delete mode 100644 gateway/node_modules/backo2/Readme.md delete mode 100644 gateway/node_modules/backo2/component.json delete mode 100644 gateway/node_modules/backo2/index.js delete mode 100644 gateway/node_modules/backo2/package.json delete mode 100644 gateway/node_modules/backo2/test/index.js delete mode 100644 gateway/node_modules/balanced-match/.npmignore delete mode 100644 gateway/node_modules/balanced-match/LICENSE.md delete mode 100644 gateway/node_modules/balanced-match/README.md delete mode 100644 gateway/node_modules/balanced-match/index.js delete mode 100644 gateway/node_modules/balanced-match/package.json delete mode 100644 gateway/node_modules/binary-extensions/binary-extensions.json delete mode 100644 gateway/node_modules/binary-extensions/binary-extensions.json.d.ts delete mode 100644 gateway/node_modules/binary-extensions/index.d.ts delete mode 100644 gateway/node_modules/binary-extensions/index.js delete mode 100644 gateway/node_modules/binary-extensions/license delete mode 100644 gateway/node_modules/binary-extensions/package.json delete mode 100644 gateway/node_modules/binary-extensions/readme.md delete mode 100644 gateway/node_modules/body-parser/HISTORY.md delete mode 100644 gateway/node_modules/body-parser/LICENSE delete mode 100644 gateway/node_modules/body-parser/README.md delete mode 100644 gateway/node_modules/body-parser/index.js delete mode 100644 gateway/node_modules/body-parser/lib/read.js delete mode 100644 gateway/node_modules/body-parser/lib/types/json.js delete mode 100644 gateway/node_modules/body-parser/lib/types/raw.js delete mode 100644 gateway/node_modules/body-parser/lib/types/text.js delete mode 100644 gateway/node_modules/body-parser/lib/types/urlencoded.js delete mode 100644 gateway/node_modules/body-parser/package.json delete mode 100644 gateway/node_modules/boxen/index.d.ts delete mode 100644 gateway/node_modules/boxen/index.js delete mode 100644 gateway/node_modules/boxen/license delete mode 100644 gateway/node_modules/boxen/package.json delete mode 100644 gateway/node_modules/boxen/readme.md delete mode 100644 gateway/node_modules/brace-expansion/LICENSE delete mode 100644 gateway/node_modules/brace-expansion/README.md delete mode 100644 gateway/node_modules/brace-expansion/index.js delete mode 100644 gateway/node_modules/brace-expansion/package.json delete mode 100644 gateway/node_modules/braces/CHANGELOG.md delete mode 100644 gateway/node_modules/braces/LICENSE delete mode 100644 gateway/node_modules/braces/README.md delete mode 100644 gateway/node_modules/braces/index.js delete mode 100644 gateway/node_modules/braces/lib/compile.js delete mode 100644 gateway/node_modules/braces/lib/constants.js delete mode 100644 gateway/node_modules/braces/lib/expand.js delete mode 100644 gateway/node_modules/braces/lib/parse.js delete mode 100644 gateway/node_modules/braces/lib/stringify.js delete mode 100644 gateway/node_modules/braces/lib/utils.js delete mode 100644 gateway/node_modules/braces/package.json delete mode 100644 gateway/node_modules/busboy/.travis.yml delete mode 100644 gateway/node_modules/busboy/LICENSE delete mode 100644 gateway/node_modules/busboy/README.md delete mode 100644 gateway/node_modules/busboy/deps/encoding/encoding-indexes.js delete mode 100644 gateway/node_modules/busboy/deps/encoding/encoding.js delete mode 100644 gateway/node_modules/busboy/lib/main.js delete mode 100644 gateway/node_modules/busboy/lib/types/multipart.js delete mode 100644 gateway/node_modules/busboy/lib/types/urlencoded.js delete mode 100644 gateway/node_modules/busboy/lib/utils.js delete mode 100644 gateway/node_modules/busboy/package.json delete mode 100644 gateway/node_modules/busboy/test/test-types-multipart-stream-pause.js delete mode 100644 gateway/node_modules/busboy/test/test-types-multipart.js delete mode 100644 gateway/node_modules/busboy/test/test-types-urlencoded.js delete mode 100644 gateway/node_modules/busboy/test/test-utils-decoder.js delete mode 100644 gateway/node_modules/busboy/test/test-utils-parse-params.js delete mode 100644 gateway/node_modules/busboy/test/test.js delete mode 100644 gateway/node_modules/bytes/History.md delete mode 100644 gateway/node_modules/bytes/LICENSE delete mode 100644 gateway/node_modules/bytes/Readme.md delete mode 100644 gateway/node_modules/bytes/index.js delete mode 100644 gateway/node_modules/bytes/package.json delete mode 100644 gateway/node_modules/cacache/CHANGELOG.md delete mode 100644 gateway/node_modules/cacache/LICENSE.md delete mode 100644 gateway/node_modules/cacache/README.md delete mode 100644 gateway/node_modules/cacache/get.js delete mode 100644 gateway/node_modules/cacache/index.js delete mode 100644 gateway/node_modules/cacache/lib/content/path.js delete mode 100644 gateway/node_modules/cacache/lib/content/read.js delete mode 100644 gateway/node_modules/cacache/lib/content/rm.js delete mode 100644 gateway/node_modules/cacache/lib/content/write.js delete mode 100644 gateway/node_modules/cacache/lib/entry-index.js delete mode 100644 gateway/node_modules/cacache/lib/memoization.js delete mode 100644 gateway/node_modules/cacache/lib/util/disposer.js delete mode 100644 gateway/node_modules/cacache/lib/util/fix-owner.js delete mode 100644 gateway/node_modules/cacache/lib/util/hash-to-segments.js delete mode 100644 gateway/node_modules/cacache/lib/util/move-file.js delete mode 100644 gateway/node_modules/cacache/lib/util/tmp.js delete mode 100644 gateway/node_modules/cacache/lib/verify.js delete mode 100644 gateway/node_modules/cacache/ls.js delete mode 120000 gateway/node_modules/cacache/node_modules/.bin/mkdirp delete mode 120000 gateway/node_modules/cacache/node_modules/.bin/rimraf delete mode 100644 gateway/node_modules/cacache/node_modules/lru-cache/LICENSE delete mode 100644 gateway/node_modules/cacache/node_modules/lru-cache/README.md delete mode 100644 gateway/node_modules/cacache/node_modules/lru-cache/index.js delete mode 100644 gateway/node_modules/cacache/node_modules/lru-cache/package.json delete mode 100644 gateway/node_modules/cacache/package.json delete mode 100644 gateway/node_modules/cacache/put.js delete mode 100644 gateway/node_modules/cacache/rm.js delete mode 100644 gateway/node_modules/cacache/verify.js delete mode 100644 gateway/node_modules/cacheable-request/LICENSE delete mode 100644 gateway/node_modules/cacheable-request/README.md delete mode 100644 gateway/node_modules/cacheable-request/node_modules/get-stream/buffer-stream.js delete mode 100644 gateway/node_modules/cacheable-request/node_modules/get-stream/index.d.ts delete mode 100644 gateway/node_modules/cacheable-request/node_modules/get-stream/index.js delete mode 100644 gateway/node_modules/cacheable-request/node_modules/get-stream/license delete mode 100644 gateway/node_modules/cacheable-request/node_modules/get-stream/package.json delete mode 100644 gateway/node_modules/cacheable-request/node_modules/get-stream/readme.md delete mode 100644 gateway/node_modules/cacheable-request/node_modules/lowercase-keys/index.d.ts delete mode 100644 gateway/node_modules/cacheable-request/node_modules/lowercase-keys/index.js delete mode 100644 gateway/node_modules/cacheable-request/node_modules/lowercase-keys/license delete mode 100644 gateway/node_modules/cacheable-request/node_modules/lowercase-keys/package.json delete mode 100644 gateway/node_modules/cacheable-request/node_modules/lowercase-keys/readme.md delete mode 100644 gateway/node_modules/cacheable-request/package.json delete mode 100644 gateway/node_modules/cacheable-request/src/index.js delete mode 100644 gateway/node_modules/call-bind/.eslintrc delete mode 100644 gateway/node_modules/call-bind/.github/FUNDING.yml delete mode 100644 gateway/node_modules/call-bind/.github/rebase.yml delete mode 100644 gateway/node_modules/call-bind/.github/require-allow-edits.yml delete mode 100644 gateway/node_modules/call-bind/.travis.yml delete mode 100644 gateway/node_modules/call-bind/CHANGELOG.md delete mode 100644 gateway/node_modules/call-bind/LICENSE delete mode 100644 gateway/node_modules/call-bind/README.md delete mode 100644 gateway/node_modules/call-bind/callBound.js delete mode 100644 gateway/node_modules/call-bind/index.js delete mode 100644 gateway/node_modules/call-bind/package.json delete mode 100644 gateway/node_modules/call-bind/test/callBound.js delete mode 100644 gateway/node_modules/call-bind/test/index.js delete mode 100644 gateway/node_modules/camelcase/index.d.ts delete mode 100644 gateway/node_modules/camelcase/index.js delete mode 100644 gateway/node_modules/camelcase/license delete mode 100644 gateway/node_modules/camelcase/package.json delete mode 100644 gateway/node_modules/camelcase/readme.md delete mode 100644 gateway/node_modules/chalk/index.d.ts delete mode 100644 gateway/node_modules/chalk/license delete mode 100644 gateway/node_modules/chalk/package.json delete mode 100644 gateway/node_modules/chalk/readme.md delete mode 100644 gateway/node_modules/chalk/source/index.js delete mode 100644 gateway/node_modules/chalk/source/templates.js delete mode 100644 gateway/node_modules/chalk/source/util.js delete mode 100644 gateway/node_modules/chokidar/LICENSE delete mode 100644 gateway/node_modules/chokidar/README.md delete mode 100644 gateway/node_modules/chokidar/index.js delete mode 100644 gateway/node_modules/chokidar/lib/constants.js delete mode 100644 gateway/node_modules/chokidar/lib/fsevents-handler.js delete mode 100644 gateway/node_modules/chokidar/lib/nodefs-handler.js delete mode 100644 gateway/node_modules/chokidar/package.json delete mode 100644 gateway/node_modules/chokidar/types/index.d.ts delete mode 100644 gateway/node_modules/chownr/LICENSE delete mode 100644 gateway/node_modules/chownr/README.md delete mode 100644 gateway/node_modules/chownr/chownr.js delete mode 100644 gateway/node_modules/chownr/package.json delete mode 100644 gateway/node_modules/ci-info/CHANGELOG.md delete mode 100644 gateway/node_modules/ci-info/LICENSE delete mode 100644 gateway/node_modules/ci-info/README.md delete mode 100644 gateway/node_modules/ci-info/index.js delete mode 100644 gateway/node_modules/ci-info/package.json delete mode 100644 gateway/node_modules/ci-info/vendors.json delete mode 100644 gateway/node_modules/clean-stack/index.d.ts delete mode 100644 gateway/node_modules/clean-stack/index.js delete mode 100644 gateway/node_modules/clean-stack/license delete mode 100644 gateway/node_modules/clean-stack/package.json delete mode 100644 gateway/node_modules/clean-stack/readme.md delete mode 100644 gateway/node_modules/cli-boxes/boxes.json delete mode 100644 gateway/node_modules/cli-boxes/index.d.ts delete mode 100644 gateway/node_modules/cli-boxes/index.js delete mode 100644 gateway/node_modules/cli-boxes/license delete mode 100644 gateway/node_modules/cli-boxes/package.json delete mode 100644 gateway/node_modules/cli-boxes/readme.md delete mode 100644 gateway/node_modules/clone-response/LICENSE delete mode 100644 gateway/node_modules/clone-response/README.md delete mode 100644 gateway/node_modules/clone-response/package.json delete mode 100644 gateway/node_modules/clone-response/src/index.js delete mode 100644 gateway/node_modules/color-convert/CHANGELOG.md delete mode 100644 gateway/node_modules/color-convert/LICENSE delete mode 100644 gateway/node_modules/color-convert/README.md delete mode 100644 gateway/node_modules/color-convert/conversions.js delete mode 100644 gateway/node_modules/color-convert/index.js delete mode 100644 gateway/node_modules/color-convert/package.json delete mode 100644 gateway/node_modules/color-convert/route.js delete mode 100644 gateway/node_modules/color-name/LICENSE delete mode 100644 gateway/node_modules/color-name/README.md delete mode 100644 gateway/node_modules/color-name/index.js delete mode 100644 gateway/node_modules/color-name/package.json delete mode 100644 gateway/node_modules/combined-stream/License delete mode 100644 gateway/node_modules/combined-stream/Readme.md delete mode 100644 gateway/node_modules/combined-stream/lib/combined_stream.js delete mode 100644 gateway/node_modules/combined-stream/package.json delete mode 100644 gateway/node_modules/combined-stream/yarn.lock delete mode 100644 gateway/node_modules/commander/CHANGELOG.md delete mode 100644 gateway/node_modules/commander/LICENSE delete mode 100644 gateway/node_modules/commander/Readme.md delete mode 100644 gateway/node_modules/commander/index.js delete mode 100644 gateway/node_modules/commander/package.json delete mode 100644 gateway/node_modules/commander/typings/index.d.ts delete mode 100644 gateway/node_modules/concat-map/.travis.yml delete mode 100644 gateway/node_modules/concat-map/LICENSE delete mode 100644 gateway/node_modules/concat-map/README.markdown delete mode 100644 gateway/node_modules/concat-map/example/map.js delete mode 100644 gateway/node_modules/concat-map/index.js delete mode 100644 gateway/node_modules/concat-map/package.json delete mode 100644 gateway/node_modules/concat-map/test/map.js delete mode 100644 gateway/node_modules/configstore/index.js delete mode 100644 gateway/node_modules/configstore/license delete mode 100644 gateway/node_modules/configstore/package.json delete mode 100644 gateway/node_modules/configstore/readme.md delete mode 100644 gateway/node_modules/content-disposition/HISTORY.md delete mode 100644 gateway/node_modules/content-disposition/LICENSE delete mode 100644 gateway/node_modules/content-disposition/README.md delete mode 100644 gateway/node_modules/content-disposition/index.js delete mode 100644 gateway/node_modules/content-disposition/package.json delete mode 100644 gateway/node_modules/content-type/HISTORY.md delete mode 100644 gateway/node_modules/content-type/LICENSE delete mode 100644 gateway/node_modules/content-type/README.md delete mode 100644 gateway/node_modules/content-type/index.js delete mode 100644 gateway/node_modules/content-type/package.json delete mode 100644 gateway/node_modules/cookie-signature/.npmignore delete mode 100644 gateway/node_modules/cookie-signature/History.md delete mode 100644 gateway/node_modules/cookie-signature/Readme.md delete mode 100644 gateway/node_modules/cookie-signature/index.js delete mode 100644 gateway/node_modules/cookie-signature/package.json delete mode 100644 gateway/node_modules/cookie/HISTORY.md delete mode 100644 gateway/node_modules/cookie/LICENSE delete mode 100644 gateway/node_modules/cookie/README.md delete mode 100644 gateway/node_modules/cookie/index.js delete mode 100644 gateway/node_modules/cookie/package.json delete mode 100644 gateway/node_modules/core-js/LICENSE delete mode 100644 gateway/node_modules/core-js/README.md delete mode 100644 gateway/node_modules/core-js/configurator.js delete mode 100644 gateway/node_modules/core-js/es/README.md delete mode 100644 gateway/node_modules/core-js/es/aggregate-error.js delete mode 100644 gateway/node_modules/core-js/es/array-buffer/constructor.js delete mode 100644 gateway/node_modules/core-js/es/array-buffer/index.js delete mode 100644 gateway/node_modules/core-js/es/array-buffer/is-view.js delete mode 100644 gateway/node_modules/core-js/es/array-buffer/slice.js delete mode 100644 gateway/node_modules/core-js/es/array/concat.js delete mode 100644 gateway/node_modules/core-js/es/array/copy-within.js delete mode 100644 gateway/node_modules/core-js/es/array/entries.js delete mode 100644 gateway/node_modules/core-js/es/array/every.js delete mode 100644 gateway/node_modules/core-js/es/array/fill.js delete mode 100644 gateway/node_modules/core-js/es/array/filter.js delete mode 100644 gateway/node_modules/core-js/es/array/find-index.js delete mode 100644 gateway/node_modules/core-js/es/array/find.js delete mode 100644 gateway/node_modules/core-js/es/array/flat-map.js delete mode 100644 gateway/node_modules/core-js/es/array/flat.js delete mode 100644 gateway/node_modules/core-js/es/array/for-each.js delete mode 100644 gateway/node_modules/core-js/es/array/from.js delete mode 100644 gateway/node_modules/core-js/es/array/includes.js delete mode 100644 gateway/node_modules/core-js/es/array/index-of.js delete mode 100644 gateway/node_modules/core-js/es/array/index.js delete mode 100644 gateway/node_modules/core-js/es/array/is-array.js delete mode 100644 gateway/node_modules/core-js/es/array/iterator.js delete mode 100644 gateway/node_modules/core-js/es/array/join.js delete mode 100644 gateway/node_modules/core-js/es/array/keys.js delete mode 100644 gateway/node_modules/core-js/es/array/last-index-of.js delete mode 100644 gateway/node_modules/core-js/es/array/map.js delete mode 100644 gateway/node_modules/core-js/es/array/of.js delete mode 100644 gateway/node_modules/core-js/es/array/reduce-right.js delete mode 100644 gateway/node_modules/core-js/es/array/reduce.js delete mode 100644 gateway/node_modules/core-js/es/array/reverse.js delete mode 100644 gateway/node_modules/core-js/es/array/slice.js delete mode 100644 gateway/node_modules/core-js/es/array/some.js delete mode 100644 gateway/node_modules/core-js/es/array/sort.js delete mode 100644 gateway/node_modules/core-js/es/array/splice.js delete mode 100644 gateway/node_modules/core-js/es/array/values.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/concat.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/copy-within.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/entries.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/every.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/fill.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/filter.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/find-index.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/find.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/flat-map.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/flat.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/for-each.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/includes.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/index-of.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/index.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/iterator.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/join.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/keys.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/last-index-of.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/map.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/reduce-right.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/reduce.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/reverse.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/slice.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/some.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/sort.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/splice.js delete mode 100644 gateway/node_modules/core-js/es/array/virtual/values.js delete mode 100644 gateway/node_modules/core-js/es/data-view/index.js delete mode 100644 gateway/node_modules/core-js/es/date/index.js delete mode 100644 gateway/node_modules/core-js/es/date/now.js delete mode 100644 gateway/node_modules/core-js/es/date/to-iso-string.js delete mode 100644 gateway/node_modules/core-js/es/date/to-json.js delete mode 100644 gateway/node_modules/core-js/es/date/to-primitive.js delete mode 100644 gateway/node_modules/core-js/es/date/to-string.js delete mode 100644 gateway/node_modules/core-js/es/function/bind.js delete mode 100644 gateway/node_modules/core-js/es/function/has-instance.js delete mode 100644 gateway/node_modules/core-js/es/function/index.js delete mode 100644 gateway/node_modules/core-js/es/function/name.js delete mode 100644 gateway/node_modules/core-js/es/function/virtual/bind.js delete mode 100644 gateway/node_modules/core-js/es/function/virtual/index.js delete mode 100644 gateway/node_modules/core-js/es/global-this.js delete mode 100644 gateway/node_modules/core-js/es/index.js delete mode 100644 gateway/node_modules/core-js/es/instance/bind.js delete mode 100644 gateway/node_modules/core-js/es/instance/code-point-at.js delete mode 100644 gateway/node_modules/core-js/es/instance/concat.js delete mode 100644 gateway/node_modules/core-js/es/instance/copy-within.js delete mode 100644 gateway/node_modules/core-js/es/instance/ends-with.js delete mode 100644 gateway/node_modules/core-js/es/instance/entries.js delete mode 100644 gateway/node_modules/core-js/es/instance/every.js delete mode 100644 gateway/node_modules/core-js/es/instance/fill.js delete mode 100644 gateway/node_modules/core-js/es/instance/filter.js delete mode 100644 gateway/node_modules/core-js/es/instance/find-index.js delete mode 100644 gateway/node_modules/core-js/es/instance/find.js delete mode 100644 gateway/node_modules/core-js/es/instance/flags.js delete mode 100644 gateway/node_modules/core-js/es/instance/flat-map.js delete mode 100644 gateway/node_modules/core-js/es/instance/flat.js delete mode 100644 gateway/node_modules/core-js/es/instance/for-each.js delete mode 100644 gateway/node_modules/core-js/es/instance/includes.js delete mode 100644 gateway/node_modules/core-js/es/instance/index-of.js delete mode 100644 gateway/node_modules/core-js/es/instance/keys.js delete mode 100644 gateway/node_modules/core-js/es/instance/last-index-of.js delete mode 100644 gateway/node_modules/core-js/es/instance/map.js delete mode 100644 gateway/node_modules/core-js/es/instance/match-all.js delete mode 100644 gateway/node_modules/core-js/es/instance/pad-end.js delete mode 100644 gateway/node_modules/core-js/es/instance/pad-start.js delete mode 100644 gateway/node_modules/core-js/es/instance/reduce-right.js delete mode 100644 gateway/node_modules/core-js/es/instance/reduce.js delete mode 100644 gateway/node_modules/core-js/es/instance/repeat.js delete mode 100644 gateway/node_modules/core-js/es/instance/reverse.js delete mode 100644 gateway/node_modules/core-js/es/instance/slice.js delete mode 100644 gateway/node_modules/core-js/es/instance/some.js delete mode 100644 gateway/node_modules/core-js/es/instance/sort.js delete mode 100644 gateway/node_modules/core-js/es/instance/splice.js delete mode 100644 gateway/node_modules/core-js/es/instance/starts-with.js delete mode 100644 gateway/node_modules/core-js/es/instance/trim-end.js delete mode 100644 gateway/node_modules/core-js/es/instance/trim-left.js delete mode 100644 gateway/node_modules/core-js/es/instance/trim-right.js delete mode 100644 gateway/node_modules/core-js/es/instance/trim-start.js delete mode 100644 gateway/node_modules/core-js/es/instance/trim.js delete mode 100644 gateway/node_modules/core-js/es/instance/values.js delete mode 100644 gateway/node_modules/core-js/es/json/index.js delete mode 100644 gateway/node_modules/core-js/es/json/stringify.js delete mode 100644 gateway/node_modules/core-js/es/json/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/es/map/index.js delete mode 100644 gateway/node_modules/core-js/es/math/acosh.js delete mode 100644 gateway/node_modules/core-js/es/math/asinh.js delete mode 100644 gateway/node_modules/core-js/es/math/atanh.js delete mode 100644 gateway/node_modules/core-js/es/math/cbrt.js delete mode 100644 gateway/node_modules/core-js/es/math/clz32.js delete mode 100644 gateway/node_modules/core-js/es/math/cosh.js delete mode 100644 gateway/node_modules/core-js/es/math/expm1.js delete mode 100644 gateway/node_modules/core-js/es/math/fround.js delete mode 100644 gateway/node_modules/core-js/es/math/hypot.js delete mode 100644 gateway/node_modules/core-js/es/math/imul.js delete mode 100644 gateway/node_modules/core-js/es/math/index.js delete mode 100644 gateway/node_modules/core-js/es/math/log10.js delete mode 100644 gateway/node_modules/core-js/es/math/log1p.js delete mode 100644 gateway/node_modules/core-js/es/math/log2.js delete mode 100644 gateway/node_modules/core-js/es/math/sign.js delete mode 100644 gateway/node_modules/core-js/es/math/sinh.js delete mode 100644 gateway/node_modules/core-js/es/math/tanh.js delete mode 100644 gateway/node_modules/core-js/es/math/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/es/math/trunc.js delete mode 100644 gateway/node_modules/core-js/es/number/constructor.js delete mode 100644 gateway/node_modules/core-js/es/number/epsilon.js delete mode 100644 gateway/node_modules/core-js/es/number/index.js delete mode 100644 gateway/node_modules/core-js/es/number/is-finite.js delete mode 100644 gateway/node_modules/core-js/es/number/is-integer.js delete mode 100644 gateway/node_modules/core-js/es/number/is-nan.js delete mode 100644 gateway/node_modules/core-js/es/number/is-safe-integer.js delete mode 100644 gateway/node_modules/core-js/es/number/max-safe-integer.js delete mode 100644 gateway/node_modules/core-js/es/number/min-safe-integer.js delete mode 100644 gateway/node_modules/core-js/es/number/parse-float.js delete mode 100644 gateway/node_modules/core-js/es/number/parse-int.js delete mode 100644 gateway/node_modules/core-js/es/number/to-fixed.js delete mode 100644 gateway/node_modules/core-js/es/number/to-precision.js delete mode 100644 gateway/node_modules/core-js/es/number/virtual/index.js delete mode 100644 gateway/node_modules/core-js/es/number/virtual/to-fixed.js delete mode 100644 gateway/node_modules/core-js/es/number/virtual/to-precision.js delete mode 100644 gateway/node_modules/core-js/es/object/assign.js delete mode 100644 gateway/node_modules/core-js/es/object/create.js delete mode 100644 gateway/node_modules/core-js/es/object/define-getter.js delete mode 100644 gateway/node_modules/core-js/es/object/define-properties.js delete mode 100644 gateway/node_modules/core-js/es/object/define-property.js delete mode 100644 gateway/node_modules/core-js/es/object/define-setter.js delete mode 100644 gateway/node_modules/core-js/es/object/entries.js delete mode 100644 gateway/node_modules/core-js/es/object/freeze.js delete mode 100644 gateway/node_modules/core-js/es/object/from-entries.js delete mode 100644 gateway/node_modules/core-js/es/object/get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/es/object/get-own-property-descriptors.js delete mode 100644 gateway/node_modules/core-js/es/object/get-own-property-names.js delete mode 100644 gateway/node_modules/core-js/es/object/get-own-property-symbols.js delete mode 100644 gateway/node_modules/core-js/es/object/get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/es/object/index.js delete mode 100644 gateway/node_modules/core-js/es/object/is-extensible.js delete mode 100644 gateway/node_modules/core-js/es/object/is-frozen.js delete mode 100644 gateway/node_modules/core-js/es/object/is-sealed.js delete mode 100644 gateway/node_modules/core-js/es/object/is.js delete mode 100644 gateway/node_modules/core-js/es/object/keys.js delete mode 100644 gateway/node_modules/core-js/es/object/lookup-getter.js delete mode 100644 gateway/node_modules/core-js/es/object/lookup-setter.js delete mode 100644 gateway/node_modules/core-js/es/object/prevent-extensions.js delete mode 100644 gateway/node_modules/core-js/es/object/seal.js delete mode 100644 gateway/node_modules/core-js/es/object/set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/es/object/to-string.js delete mode 100644 gateway/node_modules/core-js/es/object/values.js delete mode 100644 gateway/node_modules/core-js/es/parse-float.js delete mode 100644 gateway/node_modules/core-js/es/parse-int.js delete mode 100644 gateway/node_modules/core-js/es/promise/all-settled.js delete mode 100644 gateway/node_modules/core-js/es/promise/any.js delete mode 100644 gateway/node_modules/core-js/es/promise/finally.js delete mode 100644 gateway/node_modules/core-js/es/promise/index.js delete mode 100644 gateway/node_modules/core-js/es/reflect/apply.js delete mode 100644 gateway/node_modules/core-js/es/reflect/construct.js delete mode 100644 gateway/node_modules/core-js/es/reflect/define-property.js delete mode 100644 gateway/node_modules/core-js/es/reflect/delete-property.js delete mode 100644 gateway/node_modules/core-js/es/reflect/get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/es/reflect/get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/es/reflect/get.js delete mode 100644 gateway/node_modules/core-js/es/reflect/has.js delete mode 100644 gateway/node_modules/core-js/es/reflect/index.js delete mode 100644 gateway/node_modules/core-js/es/reflect/is-extensible.js delete mode 100644 gateway/node_modules/core-js/es/reflect/own-keys.js delete mode 100644 gateway/node_modules/core-js/es/reflect/prevent-extensions.js delete mode 100644 gateway/node_modules/core-js/es/reflect/set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/es/reflect/set.js delete mode 100644 gateway/node_modules/core-js/es/reflect/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/es/regexp/constructor.js delete mode 100644 gateway/node_modules/core-js/es/regexp/flags.js delete mode 100644 gateway/node_modules/core-js/es/regexp/index.js delete mode 100644 gateway/node_modules/core-js/es/regexp/match.js delete mode 100644 gateway/node_modules/core-js/es/regexp/replace.js delete mode 100644 gateway/node_modules/core-js/es/regexp/search.js delete mode 100644 gateway/node_modules/core-js/es/regexp/split.js delete mode 100644 gateway/node_modules/core-js/es/regexp/sticky.js delete mode 100644 gateway/node_modules/core-js/es/regexp/test.js delete mode 100644 gateway/node_modules/core-js/es/regexp/to-string.js delete mode 100644 gateway/node_modules/core-js/es/set/index.js delete mode 100644 gateway/node_modules/core-js/es/string/anchor.js delete mode 100644 gateway/node_modules/core-js/es/string/big.js delete mode 100644 gateway/node_modules/core-js/es/string/blink.js delete mode 100644 gateway/node_modules/core-js/es/string/bold.js delete mode 100644 gateway/node_modules/core-js/es/string/code-point-at.js delete mode 100644 gateway/node_modules/core-js/es/string/ends-with.js delete mode 100644 gateway/node_modules/core-js/es/string/fixed.js delete mode 100644 gateway/node_modules/core-js/es/string/fontcolor.js delete mode 100644 gateway/node_modules/core-js/es/string/fontsize.js delete mode 100644 gateway/node_modules/core-js/es/string/from-code-point.js delete mode 100644 gateway/node_modules/core-js/es/string/includes.js delete mode 100644 gateway/node_modules/core-js/es/string/index.js delete mode 100644 gateway/node_modules/core-js/es/string/italics.js delete mode 100644 gateway/node_modules/core-js/es/string/iterator.js delete mode 100644 gateway/node_modules/core-js/es/string/link.js delete mode 100644 gateway/node_modules/core-js/es/string/match-all.js delete mode 100644 gateway/node_modules/core-js/es/string/match.js delete mode 100644 gateway/node_modules/core-js/es/string/pad-end.js delete mode 100644 gateway/node_modules/core-js/es/string/pad-start.js delete mode 100644 gateway/node_modules/core-js/es/string/raw.js delete mode 100644 gateway/node_modules/core-js/es/string/repeat.js delete mode 100644 gateway/node_modules/core-js/es/string/replace-all.js delete mode 100644 gateway/node_modules/core-js/es/string/replace.js delete mode 100644 gateway/node_modules/core-js/es/string/search.js delete mode 100644 gateway/node_modules/core-js/es/string/small.js delete mode 100644 gateway/node_modules/core-js/es/string/split.js delete mode 100644 gateway/node_modules/core-js/es/string/starts-with.js delete mode 100644 gateway/node_modules/core-js/es/string/strike.js delete mode 100644 gateway/node_modules/core-js/es/string/sub.js delete mode 100644 gateway/node_modules/core-js/es/string/sup.js delete mode 100644 gateway/node_modules/core-js/es/string/trim-end.js delete mode 100644 gateway/node_modules/core-js/es/string/trim-left.js delete mode 100644 gateway/node_modules/core-js/es/string/trim-right.js delete mode 100644 gateway/node_modules/core-js/es/string/trim-start.js delete mode 100644 gateway/node_modules/core-js/es/string/trim.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/anchor.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/big.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/blink.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/bold.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/code-point-at.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/ends-with.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/fixed.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/fontcolor.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/fontsize.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/includes.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/index.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/italics.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/iterator.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/link.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/match-all.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/pad-end.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/pad-start.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/repeat.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/replace-all.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/small.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/starts-with.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/strike.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/sub.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/sup.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/trim-end.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/trim-left.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/trim-right.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/trim-start.js delete mode 100644 gateway/node_modules/core-js/es/string/virtual/trim.js delete mode 100644 gateway/node_modules/core-js/es/symbol/async-iterator.js delete mode 100644 gateway/node_modules/core-js/es/symbol/description.js delete mode 100644 gateway/node_modules/core-js/es/symbol/for.js delete mode 100644 gateway/node_modules/core-js/es/symbol/has-instance.js delete mode 100644 gateway/node_modules/core-js/es/symbol/index.js delete mode 100644 gateway/node_modules/core-js/es/symbol/is-concat-spreadable.js delete mode 100644 gateway/node_modules/core-js/es/symbol/iterator.js delete mode 100644 gateway/node_modules/core-js/es/symbol/key-for.js delete mode 100644 gateway/node_modules/core-js/es/symbol/match-all.js delete mode 100644 gateway/node_modules/core-js/es/symbol/match.js delete mode 100644 gateway/node_modules/core-js/es/symbol/replace.js delete mode 100644 gateway/node_modules/core-js/es/symbol/search.js delete mode 100644 gateway/node_modules/core-js/es/symbol/species.js delete mode 100644 gateway/node_modules/core-js/es/symbol/split.js delete mode 100644 gateway/node_modules/core-js/es/symbol/to-primitive.js delete mode 100644 gateway/node_modules/core-js/es/symbol/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/es/symbol/unscopables.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/copy-within.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/entries.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/every.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/fill.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/filter.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/find-index.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/find.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/float32-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/float64-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/for-each.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/from.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/includes.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/index-of.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/index.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/int16-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/int32-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/int8-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/iterator.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/join.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/keys.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/last-index-of.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/map.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/methods.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/of.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/reduce-right.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/reduce.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/reverse.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/set.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/slice.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/some.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/sort.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/subarray.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/to-locale-string.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/to-string.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/uint16-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/uint32-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/uint8-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/uint8-clamped-array.js delete mode 100644 gateway/node_modules/core-js/es/typed-array/values.js delete mode 100644 gateway/node_modules/core-js/es/weak-map/index.js delete mode 100644 gateway/node_modules/core-js/es/weak-set/index.js delete mode 100644 gateway/node_modules/core-js/features/README.md delete mode 100644 gateway/node_modules/core-js/features/aggregate-error.js delete mode 100644 gateway/node_modules/core-js/features/array-buffer/constructor.js delete mode 100644 gateway/node_modules/core-js/features/array-buffer/index.js delete mode 100644 gateway/node_modules/core-js/features/array-buffer/is-view.js delete mode 100644 gateway/node_modules/core-js/features/array-buffer/slice.js delete mode 100644 gateway/node_modules/core-js/features/array/concat.js delete mode 100644 gateway/node_modules/core-js/features/array/copy-within.js delete mode 100644 gateway/node_modules/core-js/features/array/entries.js delete mode 100644 gateway/node_modules/core-js/features/array/every.js delete mode 100644 gateway/node_modules/core-js/features/array/fill.js delete mode 100644 gateway/node_modules/core-js/features/array/filter.js delete mode 100644 gateway/node_modules/core-js/features/array/find-index.js delete mode 100644 gateway/node_modules/core-js/features/array/find.js delete mode 100644 gateway/node_modules/core-js/features/array/flat-map.js delete mode 100644 gateway/node_modules/core-js/features/array/flat.js delete mode 100644 gateway/node_modules/core-js/features/array/for-each.js delete mode 100644 gateway/node_modules/core-js/features/array/from.js delete mode 100644 gateway/node_modules/core-js/features/array/includes.js delete mode 100644 gateway/node_modules/core-js/features/array/index-of.js delete mode 100644 gateway/node_modules/core-js/features/array/index.js delete mode 100644 gateway/node_modules/core-js/features/array/is-array.js delete mode 100644 gateway/node_modules/core-js/features/array/is-template-object.js delete mode 100644 gateway/node_modules/core-js/features/array/iterator.js delete mode 100644 gateway/node_modules/core-js/features/array/join.js delete mode 100644 gateway/node_modules/core-js/features/array/keys.js delete mode 100644 gateway/node_modules/core-js/features/array/last-index-of.js delete mode 100644 gateway/node_modules/core-js/features/array/last-index.js delete mode 100644 gateway/node_modules/core-js/features/array/last-item.js delete mode 100644 gateway/node_modules/core-js/features/array/map.js delete mode 100644 gateway/node_modules/core-js/features/array/of.js delete mode 100644 gateway/node_modules/core-js/features/array/reduce-right.js delete mode 100644 gateway/node_modules/core-js/features/array/reduce.js delete mode 100644 gateway/node_modules/core-js/features/array/reverse.js delete mode 100644 gateway/node_modules/core-js/features/array/slice.js delete mode 100644 gateway/node_modules/core-js/features/array/some.js delete mode 100644 gateway/node_modules/core-js/features/array/sort.js delete mode 100644 gateway/node_modules/core-js/features/array/splice.js delete mode 100644 gateway/node_modules/core-js/features/array/values.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/concat.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/copy-within.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/entries.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/every.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/fill.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/filter.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/find-index.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/find.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/flat-map.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/flat.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/for-each.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/includes.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/index-of.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/index.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/iterator.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/join.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/keys.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/last-index-of.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/map.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/reduce-right.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/reduce.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/reverse.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/slice.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/some.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/sort.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/splice.js delete mode 100644 gateway/node_modules/core-js/features/array/virtual/values.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/as-indexed-pairs.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/drop.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/every.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/filter.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/find.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/flat-map.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/for-each.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/from.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/index.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/map.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/reduce.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/some.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/take.js delete mode 100644 gateway/node_modules/core-js/features/async-iterator/to-array.js delete mode 100644 gateway/node_modules/core-js/features/clear-immediate.js delete mode 100644 gateway/node_modules/core-js/features/composite-key.js delete mode 100644 gateway/node_modules/core-js/features/composite-symbol.js delete mode 100644 gateway/node_modules/core-js/features/data-view/index.js delete mode 100644 gateway/node_modules/core-js/features/date/index.js delete mode 100644 gateway/node_modules/core-js/features/date/now.js delete mode 100644 gateway/node_modules/core-js/features/date/to-iso-string.js delete mode 100644 gateway/node_modules/core-js/features/date/to-json.js delete mode 100644 gateway/node_modules/core-js/features/date/to-primitive.js delete mode 100644 gateway/node_modules/core-js/features/date/to-string.js delete mode 100644 gateway/node_modules/core-js/features/dom-collections/for-each.js delete mode 100644 gateway/node_modules/core-js/features/dom-collections/index.js delete mode 100644 gateway/node_modules/core-js/features/dom-collections/iterator.js delete mode 100644 gateway/node_modules/core-js/features/function/bind.js delete mode 100644 gateway/node_modules/core-js/features/function/has-instance.js delete mode 100644 gateway/node_modules/core-js/features/function/index.js delete mode 100644 gateway/node_modules/core-js/features/function/name.js delete mode 100644 gateway/node_modules/core-js/features/function/virtual/bind.js delete mode 100644 gateway/node_modules/core-js/features/function/virtual/index.js delete mode 100644 gateway/node_modules/core-js/features/get-iterator-method.js delete mode 100644 gateway/node_modules/core-js/features/get-iterator.js delete mode 100644 gateway/node_modules/core-js/features/global-this.js delete mode 100644 gateway/node_modules/core-js/features/index.js delete mode 100644 gateway/node_modules/core-js/features/instance/at.js delete mode 100644 gateway/node_modules/core-js/features/instance/bind.js delete mode 100644 gateway/node_modules/core-js/features/instance/code-point-at.js delete mode 100644 gateway/node_modules/core-js/features/instance/code-points.js delete mode 100644 gateway/node_modules/core-js/features/instance/concat.js delete mode 100644 gateway/node_modules/core-js/features/instance/copy-within.js delete mode 100644 gateway/node_modules/core-js/features/instance/ends-with.js delete mode 100644 gateway/node_modules/core-js/features/instance/entries.js delete mode 100644 gateway/node_modules/core-js/features/instance/every.js delete mode 100644 gateway/node_modules/core-js/features/instance/fill.js delete mode 100644 gateway/node_modules/core-js/features/instance/filter.js delete mode 100644 gateway/node_modules/core-js/features/instance/find-index.js delete mode 100644 gateway/node_modules/core-js/features/instance/find.js delete mode 100644 gateway/node_modules/core-js/features/instance/flags.js delete mode 100644 gateway/node_modules/core-js/features/instance/flat-map.js delete mode 100644 gateway/node_modules/core-js/features/instance/flat.js delete mode 100644 gateway/node_modules/core-js/features/instance/for-each.js delete mode 100644 gateway/node_modules/core-js/features/instance/includes.js delete mode 100644 gateway/node_modules/core-js/features/instance/index-of.js delete mode 100644 gateway/node_modules/core-js/features/instance/keys.js delete mode 100644 gateway/node_modules/core-js/features/instance/last-index-of.js delete mode 100644 gateway/node_modules/core-js/features/instance/map.js delete mode 100644 gateway/node_modules/core-js/features/instance/match-all.js delete mode 100644 gateway/node_modules/core-js/features/instance/pad-end.js delete mode 100644 gateway/node_modules/core-js/features/instance/pad-start.js delete mode 100644 gateway/node_modules/core-js/features/instance/reduce-right.js delete mode 100644 gateway/node_modules/core-js/features/instance/reduce.js delete mode 100644 gateway/node_modules/core-js/features/instance/repeat.js delete mode 100644 gateway/node_modules/core-js/features/instance/replace-all.js delete mode 100644 gateway/node_modules/core-js/features/instance/reverse.js delete mode 100644 gateway/node_modules/core-js/features/instance/slice.js delete mode 100644 gateway/node_modules/core-js/features/instance/some.js delete mode 100644 gateway/node_modules/core-js/features/instance/sort.js delete mode 100644 gateway/node_modules/core-js/features/instance/splice.js delete mode 100644 gateway/node_modules/core-js/features/instance/starts-with.js delete mode 100644 gateway/node_modules/core-js/features/instance/trim-end.js delete mode 100644 gateway/node_modules/core-js/features/instance/trim-left.js delete mode 100644 gateway/node_modules/core-js/features/instance/trim-right.js delete mode 100644 gateway/node_modules/core-js/features/instance/trim-start.js delete mode 100644 gateway/node_modules/core-js/features/instance/trim.js delete mode 100644 gateway/node_modules/core-js/features/instance/values.js delete mode 100644 gateway/node_modules/core-js/features/is-iterable.js delete mode 100644 gateway/node_modules/core-js/features/iterator/as-indexed-pairs.js delete mode 100644 gateway/node_modules/core-js/features/iterator/drop.js delete mode 100644 gateway/node_modules/core-js/features/iterator/every.js delete mode 100644 gateway/node_modules/core-js/features/iterator/filter.js delete mode 100644 gateway/node_modules/core-js/features/iterator/find.js delete mode 100644 gateway/node_modules/core-js/features/iterator/flat-map.js delete mode 100644 gateway/node_modules/core-js/features/iterator/for-each.js delete mode 100644 gateway/node_modules/core-js/features/iterator/from.js delete mode 100644 gateway/node_modules/core-js/features/iterator/index.js delete mode 100644 gateway/node_modules/core-js/features/iterator/map.js delete mode 100644 gateway/node_modules/core-js/features/iterator/reduce.js delete mode 100644 gateway/node_modules/core-js/features/iterator/some.js delete mode 100644 gateway/node_modules/core-js/features/iterator/take.js delete mode 100644 gateway/node_modules/core-js/features/iterator/to-array.js delete mode 100644 gateway/node_modules/core-js/features/json/index.js delete mode 100644 gateway/node_modules/core-js/features/json/stringify.js delete mode 100644 gateway/node_modules/core-js/features/json/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/features/map/delete-all.js delete mode 100644 gateway/node_modules/core-js/features/map/emplace.js delete mode 100644 gateway/node_modules/core-js/features/map/every.js delete mode 100644 gateway/node_modules/core-js/features/map/filter.js delete mode 100644 gateway/node_modules/core-js/features/map/find-key.js delete mode 100644 gateway/node_modules/core-js/features/map/find.js delete mode 100644 gateway/node_modules/core-js/features/map/from.js delete mode 100644 gateway/node_modules/core-js/features/map/group-by.js delete mode 100644 gateway/node_modules/core-js/features/map/includes.js delete mode 100644 gateway/node_modules/core-js/features/map/index.js delete mode 100644 gateway/node_modules/core-js/features/map/key-by.js delete mode 100644 gateway/node_modules/core-js/features/map/key-of.js delete mode 100644 gateway/node_modules/core-js/features/map/map-keys.js delete mode 100644 gateway/node_modules/core-js/features/map/map-values.js delete mode 100644 gateway/node_modules/core-js/features/map/merge.js delete mode 100644 gateway/node_modules/core-js/features/map/of.js delete mode 100644 gateway/node_modules/core-js/features/map/reduce.js delete mode 100644 gateway/node_modules/core-js/features/map/some.js delete mode 100644 gateway/node_modules/core-js/features/map/update-or-insert.js delete mode 100644 gateway/node_modules/core-js/features/map/update.js delete mode 100644 gateway/node_modules/core-js/features/map/upsert.js delete mode 100644 gateway/node_modules/core-js/features/math/acosh.js delete mode 100644 gateway/node_modules/core-js/features/math/asinh.js delete mode 100644 gateway/node_modules/core-js/features/math/atanh.js delete mode 100644 gateway/node_modules/core-js/features/math/cbrt.js delete mode 100644 gateway/node_modules/core-js/features/math/clamp.js delete mode 100644 gateway/node_modules/core-js/features/math/clz32.js delete mode 100644 gateway/node_modules/core-js/features/math/cosh.js delete mode 100644 gateway/node_modules/core-js/features/math/deg-per-rad.js delete mode 100644 gateway/node_modules/core-js/features/math/degrees.js delete mode 100644 gateway/node_modules/core-js/features/math/expm1.js delete mode 100644 gateway/node_modules/core-js/features/math/fround.js delete mode 100644 gateway/node_modules/core-js/features/math/fscale.js delete mode 100644 gateway/node_modules/core-js/features/math/hypot.js delete mode 100644 gateway/node_modules/core-js/features/math/iaddh.js delete mode 100644 gateway/node_modules/core-js/features/math/imul.js delete mode 100644 gateway/node_modules/core-js/features/math/imulh.js delete mode 100644 gateway/node_modules/core-js/features/math/index.js delete mode 100644 gateway/node_modules/core-js/features/math/isubh.js delete mode 100644 gateway/node_modules/core-js/features/math/log10.js delete mode 100644 gateway/node_modules/core-js/features/math/log1p.js delete mode 100644 gateway/node_modules/core-js/features/math/log2.js delete mode 100644 gateway/node_modules/core-js/features/math/rad-per-deg.js delete mode 100644 gateway/node_modules/core-js/features/math/radians.js delete mode 100644 gateway/node_modules/core-js/features/math/scale.js delete mode 100644 gateway/node_modules/core-js/features/math/seeded-prng.js delete mode 100644 gateway/node_modules/core-js/features/math/sign.js delete mode 100644 gateway/node_modules/core-js/features/math/signbit.js delete mode 100644 gateway/node_modules/core-js/features/math/sinh.js delete mode 100644 gateway/node_modules/core-js/features/math/tanh.js delete mode 100644 gateway/node_modules/core-js/features/math/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/features/math/trunc.js delete mode 100644 gateway/node_modules/core-js/features/math/umulh.js delete mode 100644 gateway/node_modules/core-js/features/number/constructor.js delete mode 100644 gateway/node_modules/core-js/features/number/epsilon.js delete mode 100644 gateway/node_modules/core-js/features/number/from-string.js delete mode 100644 gateway/node_modules/core-js/features/number/index.js delete mode 100644 gateway/node_modules/core-js/features/number/is-finite.js delete mode 100644 gateway/node_modules/core-js/features/number/is-integer.js delete mode 100644 gateway/node_modules/core-js/features/number/is-nan.js delete mode 100644 gateway/node_modules/core-js/features/number/is-safe-integer.js delete mode 100644 gateway/node_modules/core-js/features/number/max-safe-integer.js delete mode 100644 gateway/node_modules/core-js/features/number/min-safe-integer.js delete mode 100644 gateway/node_modules/core-js/features/number/parse-float.js delete mode 100644 gateway/node_modules/core-js/features/number/parse-int.js delete mode 100644 gateway/node_modules/core-js/features/number/to-fixed.js delete mode 100644 gateway/node_modules/core-js/features/number/to-precision.js delete mode 100644 gateway/node_modules/core-js/features/number/virtual/index.js delete mode 100644 gateway/node_modules/core-js/features/number/virtual/to-fixed.js delete mode 100644 gateway/node_modules/core-js/features/number/virtual/to-precision.js delete mode 100644 gateway/node_modules/core-js/features/object/assign.js delete mode 100644 gateway/node_modules/core-js/features/object/create.js delete mode 100644 gateway/node_modules/core-js/features/object/define-getter.js delete mode 100644 gateway/node_modules/core-js/features/object/define-properties.js delete mode 100644 gateway/node_modules/core-js/features/object/define-property.js delete mode 100644 gateway/node_modules/core-js/features/object/define-setter.js delete mode 100644 gateway/node_modules/core-js/features/object/entries.js delete mode 100644 gateway/node_modules/core-js/features/object/freeze.js delete mode 100644 gateway/node_modules/core-js/features/object/from-entries.js delete mode 100644 gateway/node_modules/core-js/features/object/get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/features/object/get-own-property-descriptors.js delete mode 100644 gateway/node_modules/core-js/features/object/get-own-property-names.js delete mode 100644 gateway/node_modules/core-js/features/object/get-own-property-symbols.js delete mode 100644 gateway/node_modules/core-js/features/object/get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/features/object/index.js delete mode 100644 gateway/node_modules/core-js/features/object/is-extensible.js delete mode 100644 gateway/node_modules/core-js/features/object/is-frozen.js delete mode 100644 gateway/node_modules/core-js/features/object/is-sealed.js delete mode 100644 gateway/node_modules/core-js/features/object/is.js delete mode 100644 gateway/node_modules/core-js/features/object/iterate-entries.js delete mode 100644 gateway/node_modules/core-js/features/object/iterate-keys.js delete mode 100644 gateway/node_modules/core-js/features/object/iterate-values.js delete mode 100644 gateway/node_modules/core-js/features/object/keys.js delete mode 100644 gateway/node_modules/core-js/features/object/lookup-getter.js delete mode 100644 gateway/node_modules/core-js/features/object/lookup-setter.js delete mode 100644 gateway/node_modules/core-js/features/object/prevent-extensions.js delete mode 100644 gateway/node_modules/core-js/features/object/seal.js delete mode 100644 gateway/node_modules/core-js/features/object/set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/features/object/to-string.js delete mode 100644 gateway/node_modules/core-js/features/object/values.js delete mode 100644 gateway/node_modules/core-js/features/observable/index.js delete mode 100644 gateway/node_modules/core-js/features/parse-float.js delete mode 100644 gateway/node_modules/core-js/features/parse-int.js delete mode 100644 gateway/node_modules/core-js/features/promise/all-settled.js delete mode 100644 gateway/node_modules/core-js/features/promise/any.js delete mode 100644 gateway/node_modules/core-js/features/promise/finally.js delete mode 100644 gateway/node_modules/core-js/features/promise/index.js delete mode 100644 gateway/node_modules/core-js/features/promise/try.js delete mode 100644 gateway/node_modules/core-js/features/queue-microtask.js delete mode 100644 gateway/node_modules/core-js/features/reflect/apply.js delete mode 100644 gateway/node_modules/core-js/features/reflect/construct.js delete mode 100644 gateway/node_modules/core-js/features/reflect/define-metadata.js delete mode 100644 gateway/node_modules/core-js/features/reflect/define-property.js delete mode 100644 gateway/node_modules/core-js/features/reflect/delete-metadata.js delete mode 100644 gateway/node_modules/core-js/features/reflect/delete-property.js delete mode 100644 gateway/node_modules/core-js/features/reflect/get-metadata-keys.js delete mode 100644 gateway/node_modules/core-js/features/reflect/get-metadata.js delete mode 100644 gateway/node_modules/core-js/features/reflect/get-own-metadata-keys.js delete mode 100644 gateway/node_modules/core-js/features/reflect/get-own-metadata.js delete mode 100644 gateway/node_modules/core-js/features/reflect/get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/features/reflect/get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/features/reflect/get.js delete mode 100644 gateway/node_modules/core-js/features/reflect/has-metadata.js delete mode 100644 gateway/node_modules/core-js/features/reflect/has-own-metadata.js delete mode 100644 gateway/node_modules/core-js/features/reflect/has.js delete mode 100644 gateway/node_modules/core-js/features/reflect/index.js delete mode 100644 gateway/node_modules/core-js/features/reflect/is-extensible.js delete mode 100644 gateway/node_modules/core-js/features/reflect/metadata.js delete mode 100644 gateway/node_modules/core-js/features/reflect/own-keys.js delete mode 100644 gateway/node_modules/core-js/features/reflect/prevent-extensions.js delete mode 100644 gateway/node_modules/core-js/features/reflect/set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/features/reflect/set.js delete mode 100644 gateway/node_modules/core-js/features/reflect/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/features/regexp/constructor.js delete mode 100644 gateway/node_modules/core-js/features/regexp/flags.js delete mode 100644 gateway/node_modules/core-js/features/regexp/index.js delete mode 100644 gateway/node_modules/core-js/features/regexp/match.js delete mode 100644 gateway/node_modules/core-js/features/regexp/replace.js delete mode 100644 gateway/node_modules/core-js/features/regexp/search.js delete mode 100644 gateway/node_modules/core-js/features/regexp/split.js delete mode 100644 gateway/node_modules/core-js/features/regexp/sticky.js delete mode 100644 gateway/node_modules/core-js/features/regexp/test.js delete mode 100644 gateway/node_modules/core-js/features/regexp/to-string.js delete mode 100644 gateway/node_modules/core-js/features/set-immediate.js delete mode 100644 gateway/node_modules/core-js/features/set-interval.js delete mode 100644 gateway/node_modules/core-js/features/set-timeout.js delete mode 100644 gateway/node_modules/core-js/features/set/add-all.js delete mode 100644 gateway/node_modules/core-js/features/set/delete-all.js delete mode 100644 gateway/node_modules/core-js/features/set/difference.js delete mode 100644 gateway/node_modules/core-js/features/set/every.js delete mode 100644 gateway/node_modules/core-js/features/set/filter.js delete mode 100644 gateway/node_modules/core-js/features/set/find.js delete mode 100644 gateway/node_modules/core-js/features/set/from.js delete mode 100644 gateway/node_modules/core-js/features/set/index.js delete mode 100644 gateway/node_modules/core-js/features/set/intersection.js delete mode 100644 gateway/node_modules/core-js/features/set/is-disjoint-from.js delete mode 100644 gateway/node_modules/core-js/features/set/is-subset-of.js delete mode 100644 gateway/node_modules/core-js/features/set/is-superset-of.js delete mode 100644 gateway/node_modules/core-js/features/set/join.js delete mode 100644 gateway/node_modules/core-js/features/set/map.js delete mode 100644 gateway/node_modules/core-js/features/set/of.js delete mode 100644 gateway/node_modules/core-js/features/set/reduce.js delete mode 100644 gateway/node_modules/core-js/features/set/some.js delete mode 100644 gateway/node_modules/core-js/features/set/symmetric-difference.js delete mode 100644 gateway/node_modules/core-js/features/set/union.js delete mode 100644 gateway/node_modules/core-js/features/string/anchor.js delete mode 100644 gateway/node_modules/core-js/features/string/at.js delete mode 100644 gateway/node_modules/core-js/features/string/big.js delete mode 100644 gateway/node_modules/core-js/features/string/blink.js delete mode 100644 gateway/node_modules/core-js/features/string/bold.js delete mode 100644 gateway/node_modules/core-js/features/string/code-point-at.js delete mode 100644 gateway/node_modules/core-js/features/string/code-points.js delete mode 100644 gateway/node_modules/core-js/features/string/ends-with.js delete mode 100644 gateway/node_modules/core-js/features/string/fixed.js delete mode 100644 gateway/node_modules/core-js/features/string/fontcolor.js delete mode 100644 gateway/node_modules/core-js/features/string/fontsize.js delete mode 100644 gateway/node_modules/core-js/features/string/from-code-point.js delete mode 100644 gateway/node_modules/core-js/features/string/includes.js delete mode 100644 gateway/node_modules/core-js/features/string/index.js delete mode 100644 gateway/node_modules/core-js/features/string/italics.js delete mode 100644 gateway/node_modules/core-js/features/string/iterator.js delete mode 100644 gateway/node_modules/core-js/features/string/link.js delete mode 100644 gateway/node_modules/core-js/features/string/match-all.js delete mode 100644 gateway/node_modules/core-js/features/string/match.js delete mode 100644 gateway/node_modules/core-js/features/string/pad-end.js delete mode 100644 gateway/node_modules/core-js/features/string/pad-start.js delete mode 100644 gateway/node_modules/core-js/features/string/raw.js delete mode 100644 gateway/node_modules/core-js/features/string/repeat.js delete mode 100644 gateway/node_modules/core-js/features/string/replace-all.js delete mode 100644 gateway/node_modules/core-js/features/string/replace.js delete mode 100644 gateway/node_modules/core-js/features/string/search.js delete mode 100644 gateway/node_modules/core-js/features/string/small.js delete mode 100644 gateway/node_modules/core-js/features/string/split.js delete mode 100644 gateway/node_modules/core-js/features/string/starts-with.js delete mode 100644 gateway/node_modules/core-js/features/string/strike.js delete mode 100644 gateway/node_modules/core-js/features/string/sub.js delete mode 100644 gateway/node_modules/core-js/features/string/sup.js delete mode 100644 gateway/node_modules/core-js/features/string/trim-end.js delete mode 100644 gateway/node_modules/core-js/features/string/trim-left.js delete mode 100644 gateway/node_modules/core-js/features/string/trim-right.js delete mode 100644 gateway/node_modules/core-js/features/string/trim-start.js delete mode 100644 gateway/node_modules/core-js/features/string/trim.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/anchor.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/at.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/big.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/blink.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/bold.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/code-point-at.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/code-points.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/ends-with.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/fixed.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/fontcolor.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/fontsize.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/includes.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/index.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/italics.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/iterator.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/link.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/match-all.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/pad-end.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/pad-start.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/repeat.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/replace-all.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/small.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/starts-with.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/strike.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/sub.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/sup.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/trim-end.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/trim-left.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/trim-right.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/trim-start.js delete mode 100644 gateway/node_modules/core-js/features/string/virtual/trim.js delete mode 100644 gateway/node_modules/core-js/features/symbol/async-dispose.js delete mode 100644 gateway/node_modules/core-js/features/symbol/async-iterator.js delete mode 100644 gateway/node_modules/core-js/features/symbol/description.js delete mode 100644 gateway/node_modules/core-js/features/symbol/dispose.js delete mode 100644 gateway/node_modules/core-js/features/symbol/for.js delete mode 100644 gateway/node_modules/core-js/features/symbol/has-instance.js delete mode 100644 gateway/node_modules/core-js/features/symbol/index.js delete mode 100644 gateway/node_modules/core-js/features/symbol/is-concat-spreadable.js delete mode 100644 gateway/node_modules/core-js/features/symbol/iterator.js delete mode 100644 gateway/node_modules/core-js/features/symbol/key-for.js delete mode 100644 gateway/node_modules/core-js/features/symbol/match-all.js delete mode 100644 gateway/node_modules/core-js/features/symbol/match.js delete mode 100644 gateway/node_modules/core-js/features/symbol/observable.js delete mode 100644 gateway/node_modules/core-js/features/symbol/pattern-match.js delete mode 100644 gateway/node_modules/core-js/features/symbol/replace-all.js delete mode 100644 gateway/node_modules/core-js/features/symbol/replace.js delete mode 100644 gateway/node_modules/core-js/features/symbol/search.js delete mode 100644 gateway/node_modules/core-js/features/symbol/species.js delete mode 100644 gateway/node_modules/core-js/features/symbol/split.js delete mode 100644 gateway/node_modules/core-js/features/symbol/to-primitive.js delete mode 100644 gateway/node_modules/core-js/features/symbol/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/features/symbol/unscopables.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/copy-within.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/entries.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/every.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/fill.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/filter.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/find-index.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/find.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/float32-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/float64-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/for-each.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/from.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/includes.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/index-of.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/index.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/int16-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/int32-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/int8-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/iterator.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/join.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/keys.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/last-index-of.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/map.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/of.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/reduce-right.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/reduce.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/reverse.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/set.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/slice.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/some.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/sort.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/subarray.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/to-locale-string.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/to-string.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/uint16-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/uint32-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/uint8-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/uint8-clamped-array.js delete mode 100644 gateway/node_modules/core-js/features/typed-array/values.js delete mode 100644 gateway/node_modules/core-js/features/url-search-params/index.js delete mode 100644 gateway/node_modules/core-js/features/url/index.js delete mode 100644 gateway/node_modules/core-js/features/url/to-json.js delete mode 100644 gateway/node_modules/core-js/features/weak-map/delete-all.js delete mode 100644 gateway/node_modules/core-js/features/weak-map/emplace.js delete mode 100644 gateway/node_modules/core-js/features/weak-map/from.js delete mode 100644 gateway/node_modules/core-js/features/weak-map/index.js delete mode 100644 gateway/node_modules/core-js/features/weak-map/of.js delete mode 100644 gateway/node_modules/core-js/features/weak-map/upsert.js delete mode 100644 gateway/node_modules/core-js/features/weak-set/add-all.js delete mode 100644 gateway/node_modules/core-js/features/weak-set/delete-all.js delete mode 100644 gateway/node_modules/core-js/features/weak-set/from.js delete mode 100644 gateway/node_modules/core-js/features/weak-set/index.js delete mode 100644 gateway/node_modules/core-js/features/weak-set/of.js delete mode 100644 gateway/node_modules/core-js/index.js delete mode 100644 gateway/node_modules/core-js/internals/README.md delete mode 100644 gateway/node_modules/core-js/internals/a-function.js delete mode 100644 gateway/node_modules/core-js/internals/a-possible-prototype.js delete mode 100644 gateway/node_modules/core-js/internals/add-to-unscopables.js delete mode 100644 gateway/node_modules/core-js/internals/advance-string-index.js delete mode 100644 gateway/node_modules/core-js/internals/an-instance.js delete mode 100644 gateway/node_modules/core-js/internals/an-object.js delete mode 100644 gateway/node_modules/core-js/internals/array-buffer-native.js delete mode 100644 gateway/node_modules/core-js/internals/array-buffer-view-core.js delete mode 100644 gateway/node_modules/core-js/internals/array-buffer.js delete mode 100644 gateway/node_modules/core-js/internals/array-copy-within.js delete mode 100644 gateway/node_modules/core-js/internals/array-fill.js delete mode 100644 gateway/node_modules/core-js/internals/array-for-each.js delete mode 100644 gateway/node_modules/core-js/internals/array-from.js delete mode 100644 gateway/node_modules/core-js/internals/array-includes.js delete mode 100644 gateway/node_modules/core-js/internals/array-iteration.js delete mode 100644 gateway/node_modules/core-js/internals/array-last-index-of.js delete mode 100644 gateway/node_modules/core-js/internals/array-method-has-species-support.js delete mode 100644 gateway/node_modules/core-js/internals/array-method-is-strict.js delete mode 100644 gateway/node_modules/core-js/internals/array-method-uses-to-length.js delete mode 100644 gateway/node_modules/core-js/internals/array-reduce.js delete mode 100644 gateway/node_modules/core-js/internals/array-species-create.js delete mode 100644 gateway/node_modules/core-js/internals/async-iterator-create-proxy.js delete mode 100644 gateway/node_modules/core-js/internals/async-iterator-iteration.js delete mode 100644 gateway/node_modules/core-js/internals/async-iterator-prototype.js delete mode 100644 gateway/node_modules/core-js/internals/call-with-safe-iteration-closing.js delete mode 100644 gateway/node_modules/core-js/internals/check-correctness-of-iteration.js delete mode 100644 gateway/node_modules/core-js/internals/classof-raw.js delete mode 100644 gateway/node_modules/core-js/internals/classof.js delete mode 100644 gateway/node_modules/core-js/internals/collection-add-all.js delete mode 100644 gateway/node_modules/core-js/internals/collection-delete-all.js delete mode 100644 gateway/node_modules/core-js/internals/collection-from.js delete mode 100644 gateway/node_modules/core-js/internals/collection-of.js delete mode 100644 gateway/node_modules/core-js/internals/collection-strong.js delete mode 100644 gateway/node_modules/core-js/internals/collection-weak.js delete mode 100644 gateway/node_modules/core-js/internals/collection.js delete mode 100644 gateway/node_modules/core-js/internals/composite-key.js delete mode 100644 gateway/node_modules/core-js/internals/copy-constructor-properties.js delete mode 100644 gateway/node_modules/core-js/internals/correct-is-regexp-logic.js delete mode 100644 gateway/node_modules/core-js/internals/correct-prototype-getter.js delete mode 100644 gateway/node_modules/core-js/internals/create-html.js delete mode 100644 gateway/node_modules/core-js/internals/create-iterator-constructor.js delete mode 100644 gateway/node_modules/core-js/internals/create-non-enumerable-property.js delete mode 100644 gateway/node_modules/core-js/internals/create-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/internals/create-property.js delete mode 100644 gateway/node_modules/core-js/internals/date-to-iso-string.js delete mode 100644 gateway/node_modules/core-js/internals/date-to-primitive.js delete mode 100644 gateway/node_modules/core-js/internals/define-iterator.js delete mode 100644 gateway/node_modules/core-js/internals/define-well-known-symbol.js delete mode 100644 gateway/node_modules/core-js/internals/descriptors.js delete mode 100644 gateway/node_modules/core-js/internals/document-create-element.js delete mode 100644 gateway/node_modules/core-js/internals/dom-iterables.js delete mode 100644 gateway/node_modules/core-js/internals/engine-is-ios.js delete mode 100644 gateway/node_modules/core-js/internals/engine-is-node.js delete mode 100644 gateway/node_modules/core-js/internals/engine-user-agent.js delete mode 100644 gateway/node_modules/core-js/internals/engine-v8-version.js delete mode 100644 gateway/node_modules/core-js/internals/entry-unbind.js delete mode 100644 gateway/node_modules/core-js/internals/entry-virtual.js delete mode 100644 gateway/node_modules/core-js/internals/enum-bug-keys.js delete mode 100644 gateway/node_modules/core-js/internals/export.js delete mode 100644 gateway/node_modules/core-js/internals/fails.js delete mode 100644 gateway/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js delete mode 100644 gateway/node_modules/core-js/internals/flatten-into-array.js delete mode 100644 gateway/node_modules/core-js/internals/freezing.js delete mode 100644 gateway/node_modules/core-js/internals/function-bind-context.js delete mode 100644 gateway/node_modules/core-js/internals/function-bind.js delete mode 100644 gateway/node_modules/core-js/internals/get-async-iterator-method.js delete mode 100644 gateway/node_modules/core-js/internals/get-built-in.js delete mode 100644 gateway/node_modules/core-js/internals/get-iterator-method.js delete mode 100644 gateway/node_modules/core-js/internals/get-iterator.js delete mode 100644 gateway/node_modules/core-js/internals/get-map-iterator.js delete mode 100644 gateway/node_modules/core-js/internals/get-set-iterator.js delete mode 100644 gateway/node_modules/core-js/internals/global.js delete mode 100644 gateway/node_modules/core-js/internals/has.js delete mode 100644 gateway/node_modules/core-js/internals/hidden-keys.js delete mode 100644 gateway/node_modules/core-js/internals/host-report-errors.js delete mode 100644 gateway/node_modules/core-js/internals/html.js delete mode 100644 gateway/node_modules/core-js/internals/ie8-dom-define.js delete mode 100644 gateway/node_modules/core-js/internals/ieee754.js delete mode 100644 gateway/node_modules/core-js/internals/indexed-object.js delete mode 100644 gateway/node_modules/core-js/internals/inherit-if-required.js delete mode 100644 gateway/node_modules/core-js/internals/inspect-source.js delete mode 100644 gateway/node_modules/core-js/internals/internal-metadata.js delete mode 100644 gateway/node_modules/core-js/internals/internal-state.js delete mode 100644 gateway/node_modules/core-js/internals/is-array-iterator-method.js delete mode 100644 gateway/node_modules/core-js/internals/is-array.js delete mode 100644 gateway/node_modules/core-js/internals/is-forced.js delete mode 100644 gateway/node_modules/core-js/internals/is-integer.js delete mode 100644 gateway/node_modules/core-js/internals/is-iterable.js delete mode 100644 gateway/node_modules/core-js/internals/is-object.js delete mode 100644 gateway/node_modules/core-js/internals/is-pure.js delete mode 100644 gateway/node_modules/core-js/internals/is-regexp.js delete mode 100644 gateway/node_modules/core-js/internals/iterate.js delete mode 100644 gateway/node_modules/core-js/internals/iterator-close.js delete mode 100644 gateway/node_modules/core-js/internals/iterator-create-proxy.js delete mode 100644 gateway/node_modules/core-js/internals/iterators-core.js delete mode 100644 gateway/node_modules/core-js/internals/iterators.js delete mode 100644 gateway/node_modules/core-js/internals/map-emplace.js delete mode 100644 gateway/node_modules/core-js/internals/map-upsert.js delete mode 100644 gateway/node_modules/core-js/internals/math-expm1.js delete mode 100644 gateway/node_modules/core-js/internals/math-fround.js delete mode 100644 gateway/node_modules/core-js/internals/math-log1p.js delete mode 100644 gateway/node_modules/core-js/internals/math-scale.js delete mode 100644 gateway/node_modules/core-js/internals/math-sign.js delete mode 100644 gateway/node_modules/core-js/internals/microtask.js delete mode 100644 gateway/node_modules/core-js/internals/native-promise-constructor.js delete mode 100644 gateway/node_modules/core-js/internals/native-symbol.js delete mode 100644 gateway/node_modules/core-js/internals/native-url.js delete mode 100644 gateway/node_modules/core-js/internals/native-weak-map.js delete mode 100644 gateway/node_modules/core-js/internals/new-promise-capability.js delete mode 100644 gateway/node_modules/core-js/internals/not-a-regexp.js delete mode 100644 gateway/node_modules/core-js/internals/number-is-finite.js delete mode 100644 gateway/node_modules/core-js/internals/number-parse-float.js delete mode 100644 gateway/node_modules/core-js/internals/number-parse-int.js delete mode 100644 gateway/node_modules/core-js/internals/object-assign.js delete mode 100644 gateway/node_modules/core-js/internals/object-create.js delete mode 100644 gateway/node_modules/core-js/internals/object-define-properties.js delete mode 100644 gateway/node_modules/core-js/internals/object-define-property.js delete mode 100644 gateway/node_modules/core-js/internals/object-get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/internals/object-get-own-property-names-external.js delete mode 100644 gateway/node_modules/core-js/internals/object-get-own-property-names.js delete mode 100644 gateway/node_modules/core-js/internals/object-get-own-property-symbols.js delete mode 100644 gateway/node_modules/core-js/internals/object-get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/internals/object-iterator.js delete mode 100644 gateway/node_modules/core-js/internals/object-keys-internal.js delete mode 100644 gateway/node_modules/core-js/internals/object-keys.js delete mode 100644 gateway/node_modules/core-js/internals/object-property-is-enumerable.js delete mode 100644 gateway/node_modules/core-js/internals/object-prototype-accessors-forced.js delete mode 100644 gateway/node_modules/core-js/internals/object-set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/internals/object-to-array.js delete mode 100644 gateway/node_modules/core-js/internals/object-to-string.js delete mode 100644 gateway/node_modules/core-js/internals/own-keys.js delete mode 100644 gateway/node_modules/core-js/internals/path.js delete mode 100644 gateway/node_modules/core-js/internals/perform.js delete mode 100644 gateway/node_modules/core-js/internals/promise-resolve.js delete mode 100644 gateway/node_modules/core-js/internals/redefine-all.js delete mode 100644 gateway/node_modules/core-js/internals/redefine.js delete mode 100644 gateway/node_modules/core-js/internals/reflect-metadata.js delete mode 100644 gateway/node_modules/core-js/internals/regexp-exec-abstract.js delete mode 100644 gateway/node_modules/core-js/internals/regexp-exec.js delete mode 100644 gateway/node_modules/core-js/internals/regexp-flags.js delete mode 100644 gateway/node_modules/core-js/internals/regexp-sticky-helpers.js delete mode 100644 gateway/node_modules/core-js/internals/require-object-coercible.js delete mode 100644 gateway/node_modules/core-js/internals/same-value-zero.js delete mode 100644 gateway/node_modules/core-js/internals/same-value.js delete mode 100644 gateway/node_modules/core-js/internals/set-global.js delete mode 100644 gateway/node_modules/core-js/internals/set-species.js delete mode 100644 gateway/node_modules/core-js/internals/set-to-string-tag.js delete mode 100644 gateway/node_modules/core-js/internals/shared-key.js delete mode 100644 gateway/node_modules/core-js/internals/shared-store.js delete mode 100644 gateway/node_modules/core-js/internals/shared.js delete mode 100644 gateway/node_modules/core-js/internals/species-constructor.js delete mode 100644 gateway/node_modules/core-js/internals/string-html-forced.js delete mode 100644 gateway/node_modules/core-js/internals/string-multibyte.js delete mode 100644 gateway/node_modules/core-js/internals/string-pad-webkit-bug.js delete mode 100644 gateway/node_modules/core-js/internals/string-pad.js delete mode 100644 gateway/node_modules/core-js/internals/string-punycode-to-ascii.js delete mode 100644 gateway/node_modules/core-js/internals/string-repeat.js delete mode 100644 gateway/node_modules/core-js/internals/string-trim-forced.js delete mode 100644 gateway/node_modules/core-js/internals/string-trim.js delete mode 100644 gateway/node_modules/core-js/internals/task.js delete mode 100644 gateway/node_modules/core-js/internals/this-number-value.js delete mode 100644 gateway/node_modules/core-js/internals/to-absolute-index.js delete mode 100644 gateway/node_modules/core-js/internals/to-index.js delete mode 100644 gateway/node_modules/core-js/internals/to-indexed-object.js delete mode 100644 gateway/node_modules/core-js/internals/to-integer.js delete mode 100644 gateway/node_modules/core-js/internals/to-length.js delete mode 100644 gateway/node_modules/core-js/internals/to-object.js delete mode 100644 gateway/node_modules/core-js/internals/to-offset.js delete mode 100644 gateway/node_modules/core-js/internals/to-positive-integer.js delete mode 100644 gateway/node_modules/core-js/internals/to-primitive.js delete mode 100644 gateway/node_modules/core-js/internals/to-string-tag-support.js delete mode 100644 gateway/node_modules/core-js/internals/typed-array-constructor.js delete mode 100644 gateway/node_modules/core-js/internals/typed-array-constructors-require-wrappers.js delete mode 100644 gateway/node_modules/core-js/internals/typed-array-from.js delete mode 100644 gateway/node_modules/core-js/internals/uid.js delete mode 100644 gateway/node_modules/core-js/internals/use-symbol-as-uid.js delete mode 100644 gateway/node_modules/core-js/internals/well-known-symbol-wrapped.js delete mode 100644 gateway/node_modules/core-js/internals/well-known-symbol.js delete mode 100644 gateway/node_modules/core-js/internals/whitespaces.js delete mode 100644 gateway/node_modules/core-js/modules/README.md delete mode 100644 gateway/node_modules/core-js/modules/es.aggregate-error.js delete mode 100644 gateway/node_modules/core-js/modules/es.array-buffer.constructor.js delete mode 100644 gateway/node_modules/core-js/modules/es.array-buffer.is-view.js delete mode 100644 gateway/node_modules/core-js/modules/es.array-buffer.slice.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.concat.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.copy-within.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.every.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.fill.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.filter.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.find-index.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.find.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.flat-map.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.flat.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.for-each.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.from.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.includes.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.index-of.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.is-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.iterator.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.join.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.last-index-of.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.map.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.of.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.reduce-right.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.reduce.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.reverse.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.slice.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.some.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.sort.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.species.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.splice.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.unscopables.flat-map.js delete mode 100644 gateway/node_modules/core-js/modules/es.array.unscopables.flat.js delete mode 100644 gateway/node_modules/core-js/modules/es.data-view.js delete mode 100644 gateway/node_modules/core-js/modules/es.date.now.js delete mode 100644 gateway/node_modules/core-js/modules/es.date.to-iso-string.js delete mode 100644 gateway/node_modules/core-js/modules/es.date.to-json.js delete mode 100644 gateway/node_modules/core-js/modules/es.date.to-primitive.js delete mode 100644 gateway/node_modules/core-js/modules/es.date.to-string.js delete mode 100644 gateway/node_modules/core-js/modules/es.function.bind.js delete mode 100644 gateway/node_modules/core-js/modules/es.function.has-instance.js delete mode 100644 gateway/node_modules/core-js/modules/es.function.name.js delete mode 100644 gateway/node_modules/core-js/modules/es.global-this.js delete mode 100644 gateway/node_modules/core-js/modules/es.json.stringify.js delete mode 100644 gateway/node_modules/core-js/modules/es.json.to-string-tag.js delete mode 100644 gateway/node_modules/core-js/modules/es.map.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.acosh.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.asinh.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.atanh.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.cbrt.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.clz32.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.cosh.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.expm1.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.fround.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.hypot.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.imul.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.log10.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.log1p.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.log2.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.sign.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.sinh.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.tanh.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.to-string-tag.js delete mode 100644 gateway/node_modules/core-js/modules/es.math.trunc.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.constructor.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.epsilon.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.is-finite.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.is-integer.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.is-nan.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.is-safe-integer.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.max-safe-integer.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.min-safe-integer.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.parse-float.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.parse-int.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.to-fixed.js delete mode 100644 gateway/node_modules/core-js/modules/es.number.to-precision.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.assign.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.create.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.define-getter.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.define-properties.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.define-property.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.define-setter.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.entries.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.freeze.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.from-entries.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.get-own-property-descriptors.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.get-own-property-names.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.is-extensible.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.is-frozen.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.is-sealed.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.is.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.keys.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.lookup-getter.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.lookup-setter.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.prevent-extensions.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.seal.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.to-string.js delete mode 100644 gateway/node_modules/core-js/modules/es.object.values.js delete mode 100644 gateway/node_modules/core-js/modules/es.parse-float.js delete mode 100644 gateway/node_modules/core-js/modules/es.parse-int.js delete mode 100644 gateway/node_modules/core-js/modules/es.promise.all-settled.js delete mode 100644 gateway/node_modules/core-js/modules/es.promise.any.js delete mode 100644 gateway/node_modules/core-js/modules/es.promise.finally.js delete mode 100644 gateway/node_modules/core-js/modules/es.promise.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.apply.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.construct.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.define-property.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.delete-property.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.get.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.has.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.is-extensible.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.own-keys.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.prevent-extensions.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.set.js delete mode 100644 gateway/node_modules/core-js/modules/es.reflect.to-string-tag.js delete mode 100644 gateway/node_modules/core-js/modules/es.regexp.constructor.js delete mode 100644 gateway/node_modules/core-js/modules/es.regexp.exec.js delete mode 100644 gateway/node_modules/core-js/modules/es.regexp.flags.js delete mode 100644 gateway/node_modules/core-js/modules/es.regexp.sticky.js delete mode 100644 gateway/node_modules/core-js/modules/es.regexp.test.js delete mode 100644 gateway/node_modules/core-js/modules/es.regexp.to-string.js delete mode 100644 gateway/node_modules/core-js/modules/es.set.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.anchor.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.big.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.blink.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.bold.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.code-point-at.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.ends-with.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.fixed.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.fontcolor.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.fontsize.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.from-code-point.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.includes.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.italics.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.iterator.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.link.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.match-all.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.match.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.pad-end.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.pad-start.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.raw.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.repeat.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.replace-all.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.replace.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.search.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.small.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.split.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.starts-with.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.strike.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.sub.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.sup.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.trim-end.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.trim-start.js delete mode 100644 gateway/node_modules/core-js/modules/es.string.trim.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.async-iterator.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.description.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.has-instance.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.iterator.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.match-all.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.match.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.replace.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.search.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.species.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.split.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.to-primitive.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.to-string-tag.js delete mode 100644 gateway/node_modules/core-js/modules/es.symbol.unscopables.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.copy-within.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.every.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.fill.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.filter.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.find-index.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.find.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.float32-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.float64-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.for-each.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.from.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.includes.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.index-of.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.int16-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.int32-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.int8-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.iterator.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.join.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.last-index-of.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.map.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.of.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.reduce-right.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.reduce.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.reverse.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.set.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.slice.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.some.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.sort.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.subarray.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.to-locale-string.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.to-string.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.uint16-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.uint32-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.uint8-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js delete mode 100644 gateway/node_modules/core-js/modules/es.weak-map.js delete mode 100644 gateway/node_modules/core-js/modules/es.weak-set.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.aggregate-error.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.array.is-template-object.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.array.last-index.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.array.last-item.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.constructor.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.drop.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.every.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.filter.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.find.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.flat-map.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.for-each.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.from.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.map.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.reduce.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.some.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.take.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.async-iterator.to-array.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.composite-key.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.composite-symbol.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.global-this.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.constructor.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.drop.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.every.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.filter.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.find.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.flat-map.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.for-each.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.from.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.map.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.reduce.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.some.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.take.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.iterator.to-array.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.delete-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.emplace.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.every.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.filter.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.find-key.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.find.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.from.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.group-by.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.includes.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.key-by.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.key-of.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.map-keys.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.map-values.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.merge.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.of.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.reduce.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.some.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.update-or-insert.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.update.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.map.upsert.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.clamp.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.deg-per-rad.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.degrees.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.fscale.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.iaddh.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.imulh.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.isubh.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.rad-per-deg.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.radians.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.scale.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.seeded-prng.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.signbit.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.math.umulh.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.number.from-string.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.object.iterate-entries.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.object.iterate-keys.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.object.iterate-values.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.observable.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.promise.all-settled.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.promise.any.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.promise.try.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.define-metadata.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.delete-metadata.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.get-metadata.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.has-metadata.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.reflect.metadata.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.add-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.delete-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.difference.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.every.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.filter.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.find.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.from.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.intersection.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.is-disjoint-from.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.is-subset-of.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.is-superset-of.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.join.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.map.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.of.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.reduce.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.some.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.symmetric-difference.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.set.union.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.string.at.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.string.code-points.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.string.match-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.string.replace-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.symbol.async-dispose.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.symbol.dispose.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.symbol.observable.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.symbol.pattern-match.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.symbol.replace-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-map.delete-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-map.emplace.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-map.from.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-map.of.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-map.upsert.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-set.add-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-set.delete-all.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-set.from.js delete mode 100644 gateway/node_modules/core-js/modules/esnext.weak-set.of.js delete mode 100644 gateway/node_modules/core-js/modules/web.dom-collections.for-each.js delete mode 100644 gateway/node_modules/core-js/modules/web.dom-collections.iterator.js delete mode 100644 gateway/node_modules/core-js/modules/web.immediate.js delete mode 100644 gateway/node_modules/core-js/modules/web.queue-microtask.js delete mode 100644 gateway/node_modules/core-js/modules/web.timers.js delete mode 100644 gateway/node_modules/core-js/modules/web.url-search-params.js delete mode 100644 gateway/node_modules/core-js/modules/web.url.js delete mode 100644 gateway/node_modules/core-js/modules/web.url.to-json.js delete mode 100644 gateway/node_modules/core-js/package.json delete mode 100644 gateway/node_modules/core-js/postinstall.js delete mode 100644 gateway/node_modules/core-js/proposals/array-is-template-object.js delete mode 100644 gateway/node_modules/core-js/proposals/array-last.js delete mode 100644 gateway/node_modules/core-js/proposals/collection-methods.js delete mode 100644 gateway/node_modules/core-js/proposals/collection-of-from.js delete mode 100644 gateway/node_modules/core-js/proposals/efficient-64-bit-arithmetic.js delete mode 100644 gateway/node_modules/core-js/proposals/global-this.js delete mode 100644 gateway/node_modules/core-js/proposals/index.js delete mode 100644 gateway/node_modules/core-js/proposals/iterator-helpers.js delete mode 100644 gateway/node_modules/core-js/proposals/keys-composition.js delete mode 100644 gateway/node_modules/core-js/proposals/map-update-or-insert.js delete mode 100644 gateway/node_modules/core-js/proposals/map-upsert.js delete mode 100644 gateway/node_modules/core-js/proposals/math-extensions.js delete mode 100644 gateway/node_modules/core-js/proposals/math-signbit.js delete mode 100644 gateway/node_modules/core-js/proposals/number-from-string.js delete mode 100644 gateway/node_modules/core-js/proposals/object-iteration.js delete mode 100644 gateway/node_modules/core-js/proposals/observable.js delete mode 100644 gateway/node_modules/core-js/proposals/pattern-matching.js delete mode 100644 gateway/node_modules/core-js/proposals/promise-all-settled.js delete mode 100644 gateway/node_modules/core-js/proposals/promise-any.js delete mode 100644 gateway/node_modules/core-js/proposals/promise-try.js delete mode 100644 gateway/node_modules/core-js/proposals/reflect-metadata.js delete mode 100644 gateway/node_modules/core-js/proposals/seeded-random.js delete mode 100644 gateway/node_modules/core-js/proposals/set-methods.js delete mode 100644 gateway/node_modules/core-js/proposals/string-at.js delete mode 100644 gateway/node_modules/core-js/proposals/string-code-points.js delete mode 100644 gateway/node_modules/core-js/proposals/string-match-all.js delete mode 100644 gateway/node_modules/core-js/proposals/string-replace-all.js delete mode 100644 gateway/node_modules/core-js/proposals/url.js delete mode 100644 gateway/node_modules/core-js/proposals/using-statement.js delete mode 100644 gateway/node_modules/core-js/stable/README.md delete mode 100644 gateway/node_modules/core-js/stable/aggregate-error.js delete mode 100644 gateway/node_modules/core-js/stable/array-buffer/constructor.js delete mode 100644 gateway/node_modules/core-js/stable/array-buffer/index.js delete mode 100644 gateway/node_modules/core-js/stable/array-buffer/is-view.js delete mode 100644 gateway/node_modules/core-js/stable/array-buffer/slice.js delete mode 100644 gateway/node_modules/core-js/stable/array/concat.js delete mode 100644 gateway/node_modules/core-js/stable/array/copy-within.js delete mode 100644 gateway/node_modules/core-js/stable/array/entries.js delete mode 100644 gateway/node_modules/core-js/stable/array/every.js delete mode 100644 gateway/node_modules/core-js/stable/array/fill.js delete mode 100644 gateway/node_modules/core-js/stable/array/filter.js delete mode 100644 gateway/node_modules/core-js/stable/array/find-index.js delete mode 100644 gateway/node_modules/core-js/stable/array/find.js delete mode 100644 gateway/node_modules/core-js/stable/array/flat-map.js delete mode 100644 gateway/node_modules/core-js/stable/array/flat.js delete mode 100644 gateway/node_modules/core-js/stable/array/for-each.js delete mode 100644 gateway/node_modules/core-js/stable/array/from.js delete mode 100644 gateway/node_modules/core-js/stable/array/includes.js delete mode 100644 gateway/node_modules/core-js/stable/array/index-of.js delete mode 100644 gateway/node_modules/core-js/stable/array/index.js delete mode 100644 gateway/node_modules/core-js/stable/array/is-array.js delete mode 100644 gateway/node_modules/core-js/stable/array/iterator.js delete mode 100644 gateway/node_modules/core-js/stable/array/join.js delete mode 100644 gateway/node_modules/core-js/stable/array/keys.js delete mode 100644 gateway/node_modules/core-js/stable/array/last-index-of.js delete mode 100644 gateway/node_modules/core-js/stable/array/map.js delete mode 100644 gateway/node_modules/core-js/stable/array/of.js delete mode 100644 gateway/node_modules/core-js/stable/array/reduce-right.js delete mode 100644 gateway/node_modules/core-js/stable/array/reduce.js delete mode 100644 gateway/node_modules/core-js/stable/array/reverse.js delete mode 100644 gateway/node_modules/core-js/stable/array/slice.js delete mode 100644 gateway/node_modules/core-js/stable/array/some.js delete mode 100644 gateway/node_modules/core-js/stable/array/sort.js delete mode 100644 gateway/node_modules/core-js/stable/array/splice.js delete mode 100644 gateway/node_modules/core-js/stable/array/values.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/concat.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/copy-within.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/entries.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/every.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/fill.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/filter.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/find-index.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/find.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/flat-map.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/flat.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/for-each.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/includes.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/index-of.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/index.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/iterator.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/join.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/keys.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/last-index-of.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/map.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/reduce-right.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/reduce.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/reverse.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/slice.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/some.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/sort.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/splice.js delete mode 100644 gateway/node_modules/core-js/stable/array/virtual/values.js delete mode 100644 gateway/node_modules/core-js/stable/clear-immediate.js delete mode 100644 gateway/node_modules/core-js/stable/data-view/index.js delete mode 100644 gateway/node_modules/core-js/stable/date/index.js delete mode 100644 gateway/node_modules/core-js/stable/date/now.js delete mode 100644 gateway/node_modules/core-js/stable/date/to-iso-string.js delete mode 100644 gateway/node_modules/core-js/stable/date/to-json.js delete mode 100644 gateway/node_modules/core-js/stable/date/to-primitive.js delete mode 100644 gateway/node_modules/core-js/stable/date/to-string.js delete mode 100644 gateway/node_modules/core-js/stable/dom-collections/for-each.js delete mode 100644 gateway/node_modules/core-js/stable/dom-collections/index.js delete mode 100644 gateway/node_modules/core-js/stable/dom-collections/iterator.js delete mode 100644 gateway/node_modules/core-js/stable/function/bind.js delete mode 100644 gateway/node_modules/core-js/stable/function/has-instance.js delete mode 100644 gateway/node_modules/core-js/stable/function/index.js delete mode 100644 gateway/node_modules/core-js/stable/function/name.js delete mode 100644 gateway/node_modules/core-js/stable/function/virtual/bind.js delete mode 100644 gateway/node_modules/core-js/stable/function/virtual/index.js delete mode 100644 gateway/node_modules/core-js/stable/global-this.js delete mode 100644 gateway/node_modules/core-js/stable/index.js delete mode 100644 gateway/node_modules/core-js/stable/instance/bind.js delete mode 100644 gateway/node_modules/core-js/stable/instance/code-point-at.js delete mode 100644 gateway/node_modules/core-js/stable/instance/concat.js delete mode 100644 gateway/node_modules/core-js/stable/instance/copy-within.js delete mode 100644 gateway/node_modules/core-js/stable/instance/ends-with.js delete mode 100644 gateway/node_modules/core-js/stable/instance/entries.js delete mode 100644 gateway/node_modules/core-js/stable/instance/every.js delete mode 100644 gateway/node_modules/core-js/stable/instance/fill.js delete mode 100644 gateway/node_modules/core-js/stable/instance/filter.js delete mode 100644 gateway/node_modules/core-js/stable/instance/find-index.js delete mode 100644 gateway/node_modules/core-js/stable/instance/find.js delete mode 100644 gateway/node_modules/core-js/stable/instance/flags.js delete mode 100644 gateway/node_modules/core-js/stable/instance/flat-map.js delete mode 100644 gateway/node_modules/core-js/stable/instance/flat.js delete mode 100644 gateway/node_modules/core-js/stable/instance/for-each.js delete mode 100644 gateway/node_modules/core-js/stable/instance/includes.js delete mode 100644 gateway/node_modules/core-js/stable/instance/index-of.js delete mode 100644 gateway/node_modules/core-js/stable/instance/keys.js delete mode 100644 gateway/node_modules/core-js/stable/instance/last-index-of.js delete mode 100644 gateway/node_modules/core-js/stable/instance/map.js delete mode 100644 gateway/node_modules/core-js/stable/instance/match-all.js delete mode 100644 gateway/node_modules/core-js/stable/instance/pad-end.js delete mode 100644 gateway/node_modules/core-js/stable/instance/pad-start.js delete mode 100644 gateway/node_modules/core-js/stable/instance/reduce-right.js delete mode 100644 gateway/node_modules/core-js/stable/instance/reduce.js delete mode 100644 gateway/node_modules/core-js/stable/instance/repeat.js delete mode 100644 gateway/node_modules/core-js/stable/instance/reverse.js delete mode 100644 gateway/node_modules/core-js/stable/instance/slice.js delete mode 100644 gateway/node_modules/core-js/stable/instance/some.js delete mode 100644 gateway/node_modules/core-js/stable/instance/sort.js delete mode 100644 gateway/node_modules/core-js/stable/instance/splice.js delete mode 100644 gateway/node_modules/core-js/stable/instance/starts-with.js delete mode 100644 gateway/node_modules/core-js/stable/instance/trim-end.js delete mode 100644 gateway/node_modules/core-js/stable/instance/trim-left.js delete mode 100644 gateway/node_modules/core-js/stable/instance/trim-right.js delete mode 100644 gateway/node_modules/core-js/stable/instance/trim-start.js delete mode 100644 gateway/node_modules/core-js/stable/instance/trim.js delete mode 100644 gateway/node_modules/core-js/stable/instance/values.js delete mode 100644 gateway/node_modules/core-js/stable/json/index.js delete mode 100644 gateway/node_modules/core-js/stable/json/stringify.js delete mode 100644 gateway/node_modules/core-js/stable/json/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/stable/map/index.js delete mode 100644 gateway/node_modules/core-js/stable/math/acosh.js delete mode 100644 gateway/node_modules/core-js/stable/math/asinh.js delete mode 100644 gateway/node_modules/core-js/stable/math/atanh.js delete mode 100644 gateway/node_modules/core-js/stable/math/cbrt.js delete mode 100644 gateway/node_modules/core-js/stable/math/clz32.js delete mode 100644 gateway/node_modules/core-js/stable/math/cosh.js delete mode 100644 gateway/node_modules/core-js/stable/math/expm1.js delete mode 100644 gateway/node_modules/core-js/stable/math/fround.js delete mode 100644 gateway/node_modules/core-js/stable/math/hypot.js delete mode 100644 gateway/node_modules/core-js/stable/math/imul.js delete mode 100644 gateway/node_modules/core-js/stable/math/index.js delete mode 100644 gateway/node_modules/core-js/stable/math/log10.js delete mode 100644 gateway/node_modules/core-js/stable/math/log1p.js delete mode 100644 gateway/node_modules/core-js/stable/math/log2.js delete mode 100644 gateway/node_modules/core-js/stable/math/sign.js delete mode 100644 gateway/node_modules/core-js/stable/math/sinh.js delete mode 100644 gateway/node_modules/core-js/stable/math/tanh.js delete mode 100644 gateway/node_modules/core-js/stable/math/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/stable/math/trunc.js delete mode 100644 gateway/node_modules/core-js/stable/number/constructor.js delete mode 100644 gateway/node_modules/core-js/stable/number/epsilon.js delete mode 100644 gateway/node_modules/core-js/stable/number/index.js delete mode 100644 gateway/node_modules/core-js/stable/number/is-finite.js delete mode 100644 gateway/node_modules/core-js/stable/number/is-integer.js delete mode 100644 gateway/node_modules/core-js/stable/number/is-nan.js delete mode 100644 gateway/node_modules/core-js/stable/number/is-safe-integer.js delete mode 100644 gateway/node_modules/core-js/stable/number/max-safe-integer.js delete mode 100644 gateway/node_modules/core-js/stable/number/min-safe-integer.js delete mode 100644 gateway/node_modules/core-js/stable/number/parse-float.js delete mode 100644 gateway/node_modules/core-js/stable/number/parse-int.js delete mode 100644 gateway/node_modules/core-js/stable/number/to-fixed.js delete mode 100644 gateway/node_modules/core-js/stable/number/to-precision.js delete mode 100644 gateway/node_modules/core-js/stable/number/virtual/index.js delete mode 100644 gateway/node_modules/core-js/stable/number/virtual/to-fixed.js delete mode 100644 gateway/node_modules/core-js/stable/number/virtual/to-precision.js delete mode 100644 gateway/node_modules/core-js/stable/object/assign.js delete mode 100644 gateway/node_modules/core-js/stable/object/create.js delete mode 100644 gateway/node_modules/core-js/stable/object/define-getter.js delete mode 100644 gateway/node_modules/core-js/stable/object/define-properties.js delete mode 100644 gateway/node_modules/core-js/stable/object/define-property.js delete mode 100644 gateway/node_modules/core-js/stable/object/define-setter.js delete mode 100644 gateway/node_modules/core-js/stable/object/entries.js delete mode 100644 gateway/node_modules/core-js/stable/object/freeze.js delete mode 100644 gateway/node_modules/core-js/stable/object/from-entries.js delete mode 100644 gateway/node_modules/core-js/stable/object/get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/stable/object/get-own-property-descriptors.js delete mode 100644 gateway/node_modules/core-js/stable/object/get-own-property-names.js delete mode 100644 gateway/node_modules/core-js/stable/object/get-own-property-symbols.js delete mode 100644 gateway/node_modules/core-js/stable/object/get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/stable/object/index.js delete mode 100644 gateway/node_modules/core-js/stable/object/is-extensible.js delete mode 100644 gateway/node_modules/core-js/stable/object/is-frozen.js delete mode 100644 gateway/node_modules/core-js/stable/object/is-sealed.js delete mode 100644 gateway/node_modules/core-js/stable/object/is.js delete mode 100644 gateway/node_modules/core-js/stable/object/keys.js delete mode 100644 gateway/node_modules/core-js/stable/object/lookup-getter.js delete mode 100644 gateway/node_modules/core-js/stable/object/lookup-setter.js delete mode 100644 gateway/node_modules/core-js/stable/object/prevent-extensions.js delete mode 100644 gateway/node_modules/core-js/stable/object/seal.js delete mode 100644 gateway/node_modules/core-js/stable/object/set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/stable/object/to-string.js delete mode 100644 gateway/node_modules/core-js/stable/object/values.js delete mode 100644 gateway/node_modules/core-js/stable/parse-float.js delete mode 100644 gateway/node_modules/core-js/stable/parse-int.js delete mode 100644 gateway/node_modules/core-js/stable/promise/all-settled.js delete mode 100644 gateway/node_modules/core-js/stable/promise/any.js delete mode 100644 gateway/node_modules/core-js/stable/promise/finally.js delete mode 100644 gateway/node_modules/core-js/stable/promise/index.js delete mode 100644 gateway/node_modules/core-js/stable/queue-microtask.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/apply.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/construct.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/define-property.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/delete-property.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/get-own-property-descriptor.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/get-prototype-of.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/get.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/has.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/index.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/is-extensible.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/own-keys.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/prevent-extensions.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/set-prototype-of.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/set.js delete mode 100644 gateway/node_modules/core-js/stable/reflect/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/constructor.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/flags.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/index.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/match.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/replace.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/search.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/split.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/sticky.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/test.js delete mode 100644 gateway/node_modules/core-js/stable/regexp/to-string.js delete mode 100644 gateway/node_modules/core-js/stable/set-immediate.js delete mode 100644 gateway/node_modules/core-js/stable/set-interval.js delete mode 100644 gateway/node_modules/core-js/stable/set-timeout.js delete mode 100644 gateway/node_modules/core-js/stable/set/index.js delete mode 100644 gateway/node_modules/core-js/stable/string/anchor.js delete mode 100644 gateway/node_modules/core-js/stable/string/big.js delete mode 100644 gateway/node_modules/core-js/stable/string/blink.js delete mode 100644 gateway/node_modules/core-js/stable/string/bold.js delete mode 100644 gateway/node_modules/core-js/stable/string/code-point-at.js delete mode 100644 gateway/node_modules/core-js/stable/string/ends-with.js delete mode 100644 gateway/node_modules/core-js/stable/string/fixed.js delete mode 100644 gateway/node_modules/core-js/stable/string/fontcolor.js delete mode 100644 gateway/node_modules/core-js/stable/string/fontsize.js delete mode 100644 gateway/node_modules/core-js/stable/string/from-code-point.js delete mode 100644 gateway/node_modules/core-js/stable/string/includes.js delete mode 100644 gateway/node_modules/core-js/stable/string/index.js delete mode 100644 gateway/node_modules/core-js/stable/string/italics.js delete mode 100644 gateway/node_modules/core-js/stable/string/iterator.js delete mode 100644 gateway/node_modules/core-js/stable/string/link.js delete mode 100644 gateway/node_modules/core-js/stable/string/match-all.js delete mode 100644 gateway/node_modules/core-js/stable/string/match.js delete mode 100644 gateway/node_modules/core-js/stable/string/pad-end.js delete mode 100644 gateway/node_modules/core-js/stable/string/pad-start.js delete mode 100644 gateway/node_modules/core-js/stable/string/raw.js delete mode 100644 gateway/node_modules/core-js/stable/string/repeat.js delete mode 100644 gateway/node_modules/core-js/stable/string/replace-all.js delete mode 100644 gateway/node_modules/core-js/stable/string/replace.js delete mode 100644 gateway/node_modules/core-js/stable/string/search.js delete mode 100644 gateway/node_modules/core-js/stable/string/small.js delete mode 100644 gateway/node_modules/core-js/stable/string/split.js delete mode 100644 gateway/node_modules/core-js/stable/string/starts-with.js delete mode 100644 gateway/node_modules/core-js/stable/string/strike.js delete mode 100644 gateway/node_modules/core-js/stable/string/sub.js delete mode 100644 gateway/node_modules/core-js/stable/string/sup.js delete mode 100644 gateway/node_modules/core-js/stable/string/trim-end.js delete mode 100644 gateway/node_modules/core-js/stable/string/trim-left.js delete mode 100644 gateway/node_modules/core-js/stable/string/trim-right.js delete mode 100644 gateway/node_modules/core-js/stable/string/trim-start.js delete mode 100644 gateway/node_modules/core-js/stable/string/trim.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/anchor.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/big.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/blink.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/bold.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/code-point-at.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/ends-with.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/fixed.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/fontcolor.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/fontsize.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/includes.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/index.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/italics.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/iterator.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/link.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/match-all.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/pad-end.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/pad-start.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/repeat.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/replace-all.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/small.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/starts-with.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/strike.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/sub.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/sup.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/trim-end.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/trim-left.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/trim-right.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/trim-start.js delete mode 100644 gateway/node_modules/core-js/stable/string/virtual/trim.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/async-iterator.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/description.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/for.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/has-instance.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/index.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/is-concat-spreadable.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/iterator.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/key-for.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/match-all.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/match.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/replace.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/search.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/species.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/split.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/to-primitive.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/to-string-tag.js delete mode 100644 gateway/node_modules/core-js/stable/symbol/unscopables.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/copy-within.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/entries.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/every.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/fill.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/filter.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/find-index.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/find.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/float32-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/float64-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/for-each.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/from.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/includes.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/index-of.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/index.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/int16-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/int32-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/int8-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/iterator.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/join.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/keys.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/last-index-of.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/map.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/of.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/reduce-right.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/reduce.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/reverse.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/set.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/slice.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/some.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/sort.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/subarray.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/to-locale-string.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/to-string.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/uint16-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/uint32-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/uint8-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/uint8-clamped-array.js delete mode 100644 gateway/node_modules/core-js/stable/typed-array/values.js delete mode 100644 gateway/node_modules/core-js/stable/url-search-params/index.js delete mode 100644 gateway/node_modules/core-js/stable/url/index.js delete mode 100644 gateway/node_modules/core-js/stable/url/to-json.js delete mode 100644 gateway/node_modules/core-js/stable/weak-map/index.js delete mode 100644 gateway/node_modules/core-js/stable/weak-set/index.js delete mode 100644 gateway/node_modules/core-js/stage/0.js delete mode 100644 gateway/node_modules/core-js/stage/1.js delete mode 100644 gateway/node_modules/core-js/stage/2.js delete mode 100644 gateway/node_modules/core-js/stage/3.js delete mode 100644 gateway/node_modules/core-js/stage/4.js delete mode 100644 gateway/node_modules/core-js/stage/README.md delete mode 100644 gateway/node_modules/core-js/stage/index.js delete mode 100644 gateway/node_modules/core-js/stage/pre.js delete mode 100644 gateway/node_modules/core-js/web/README.md delete mode 100644 gateway/node_modules/core-js/web/dom-collections.js delete mode 100644 gateway/node_modules/core-js/web/immediate.js delete mode 100644 gateway/node_modules/core-js/web/index.js delete mode 100644 gateway/node_modules/core-js/web/queue-microtask.js delete mode 100644 gateway/node_modules/core-js/web/timers.js delete mode 100644 gateway/node_modules/core-js/web/url-search-params.js delete mode 100644 gateway/node_modules/core-js/web/url.js delete mode 100644 gateway/node_modules/cors/CONTRIBUTING.md delete mode 100644 gateway/node_modules/cors/HISTORY.md delete mode 100644 gateway/node_modules/cors/LICENSE delete mode 100644 gateway/node_modules/cors/README.md delete mode 100644 gateway/node_modules/cors/lib/index.js delete mode 100644 gateway/node_modules/cors/package.json delete mode 100644 gateway/node_modules/crypto-random-string/index.d.ts delete mode 100644 gateway/node_modules/crypto-random-string/index.js delete mode 100644 gateway/node_modules/crypto-random-string/license delete mode 100644 gateway/node_modules/crypto-random-string/package.json delete mode 100644 gateway/node_modules/crypto-random-string/readme.md delete mode 100644 gateway/node_modules/cssfilter/LICENSE delete mode 100644 gateway/node_modules/cssfilter/README.md delete mode 100644 gateway/node_modules/cssfilter/lib/css.js delete mode 100644 gateway/node_modules/cssfilter/lib/default.js delete mode 100644 gateway/node_modules/cssfilter/lib/index.js delete mode 100644 gateway/node_modules/cssfilter/lib/parser.js delete mode 100644 gateway/node_modules/cssfilter/lib/util.js delete mode 100644 gateway/node_modules/cssfilter/package.json delete mode 100644 gateway/node_modules/debug/.coveralls.yml delete mode 100644 gateway/node_modules/debug/.eslintrc delete mode 100644 gateway/node_modules/debug/.npmignore delete mode 100644 gateway/node_modules/debug/.travis.yml delete mode 100644 gateway/node_modules/debug/CHANGELOG.md delete mode 100644 gateway/node_modules/debug/LICENSE delete mode 100644 gateway/node_modules/debug/Makefile delete mode 100644 gateway/node_modules/debug/README.md delete mode 100644 gateway/node_modules/debug/component.json delete mode 100644 gateway/node_modules/debug/karma.conf.js delete mode 100644 gateway/node_modules/debug/node.js delete mode 100644 gateway/node_modules/debug/node_modules/ms/index.js delete mode 100644 gateway/node_modules/debug/node_modules/ms/license.md delete mode 100644 gateway/node_modules/debug/node_modules/ms/package.json delete mode 100644 gateway/node_modules/debug/node_modules/ms/readme.md delete mode 100644 gateway/node_modules/debug/package.json delete mode 100644 gateway/node_modules/debug/src/browser.js delete mode 100644 gateway/node_modules/debug/src/debug.js delete mode 100644 gateway/node_modules/debug/src/index.js delete mode 100644 gateway/node_modules/debug/src/inspector-log.js delete mode 100644 gateway/node_modules/debug/src/node.js delete mode 100644 gateway/node_modules/decompress-response/index.js delete mode 100644 gateway/node_modules/decompress-response/license delete mode 100644 gateway/node_modules/decompress-response/package.json delete mode 100644 gateway/node_modules/decompress-response/readme.md delete mode 100644 gateway/node_modules/deep-extend/CHANGELOG.md delete mode 100644 gateway/node_modules/deep-extend/LICENSE delete mode 100644 gateway/node_modules/deep-extend/README.md delete mode 100644 gateway/node_modules/deep-extend/index.js delete mode 100644 gateway/node_modules/deep-extend/lib/deep-extend.js delete mode 100644 gateway/node_modules/deep-extend/package.json delete mode 100644 gateway/node_modules/defer-to-connect/LICENSE delete mode 100644 gateway/node_modules/defer-to-connect/README.md delete mode 100644 gateway/node_modules/defer-to-connect/dist/index.d.ts delete mode 100644 gateway/node_modules/defer-to-connect/dist/index.js delete mode 100644 gateway/node_modules/defer-to-connect/package.json delete mode 100644 gateway/node_modules/define-properties/.editorconfig delete mode 100644 gateway/node_modules/define-properties/.eslintrc delete mode 100644 gateway/node_modules/define-properties/.jscs.json delete mode 100644 gateway/node_modules/define-properties/.travis.yml delete mode 100644 gateway/node_modules/define-properties/CHANGELOG.md delete mode 100644 gateway/node_modules/define-properties/LICENSE delete mode 100644 gateway/node_modules/define-properties/README.md delete mode 100644 gateway/node_modules/define-properties/index.js delete mode 100644 gateway/node_modules/define-properties/package.json delete mode 100644 gateway/node_modules/define-properties/test/index.js delete mode 100644 gateway/node_modules/delayed-stream/.npmignore delete mode 100644 gateway/node_modules/delayed-stream/License delete mode 100644 gateway/node_modules/delayed-stream/Makefile delete mode 100644 gateway/node_modules/delayed-stream/Readme.md delete mode 100644 gateway/node_modules/delayed-stream/lib/delayed_stream.js delete mode 100644 gateway/node_modules/delayed-stream/package.json delete mode 100644 gateway/node_modules/depd/History.md delete mode 100644 gateway/node_modules/depd/LICENSE delete mode 100644 gateway/node_modules/depd/Readme.md delete mode 100644 gateway/node_modules/depd/index.js delete mode 100644 gateway/node_modules/depd/lib/browser/index.js delete mode 100644 gateway/node_modules/depd/lib/compat/callsite-tostring.js delete mode 100644 gateway/node_modules/depd/lib/compat/event-listener-count.js delete mode 100644 gateway/node_modules/depd/lib/compat/index.js delete mode 100644 gateway/node_modules/depd/package.json delete mode 100644 gateway/node_modules/deprecated-decorator/README.md delete mode 100644 gateway/node_modules/deprecated-decorator/bld/index.d.ts delete mode 100644 gateway/node_modules/deprecated-decorator/bld/index.js delete mode 100644 gateway/node_modules/deprecated-decorator/bld/index.js.map delete mode 100644 gateway/node_modules/deprecated-decorator/package.json delete mode 100644 gateway/node_modules/destroy/LICENSE delete mode 100644 gateway/node_modules/destroy/README.md delete mode 100644 gateway/node_modules/destroy/index.js delete mode 100644 gateway/node_modules/destroy/package.json delete mode 100644 gateway/node_modules/dicer/.travis.yml delete mode 100644 gateway/node_modules/dicer/LICENSE delete mode 100644 gateway/node_modules/dicer/README.md delete mode 100644 gateway/node_modules/dicer/bench/dicer-bench-multipart-parser.js delete mode 100644 gateway/node_modules/dicer/bench/formidable-bench-multipart-parser.js delete mode 100644 gateway/node_modules/dicer/bench/multipartser-bench-multipart-parser.js delete mode 100644 gateway/node_modules/dicer/bench/multiparty-bench-multipart-parser.js delete mode 100644 gateway/node_modules/dicer/bench/parted-bench-multipart-parser.js delete mode 100644 gateway/node_modules/dicer/bench/parted-multipart.js delete mode 100644 gateway/node_modules/dicer/lib/Dicer.js delete mode 100644 gateway/node_modules/dicer/lib/HeaderParser.js delete mode 100644 gateway/node_modules/dicer/lib/PartStream.js delete mode 100644 gateway/node_modules/dicer/package.json delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/original delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part1 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part1.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part2 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part2.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part3 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part3.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part4 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part4.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part5 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part5.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part6 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part6.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-noend/part7.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-wrongboundary/original delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-wrongboundary/preamble delete mode 100644 gateway/node_modules/dicer/test/fixtures/many-wrongboundary/preamble.error delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/original delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part1 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part1.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part2 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part2.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part3 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part3.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part4 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part4.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part5 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part5.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part6 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part6.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part7 delete mode 100644 gateway/node_modules/dicer/test/fixtures/many/part7.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested-full/original delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested-full/part1 delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested-full/part1.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested-full/part2 delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested-full/part2.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested-full/preamble.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested/original delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested/part1 delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested/part1.header delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested/part2 delete mode 100644 gateway/node_modules/dicer/test/fixtures/nested/part2.header delete mode 100644 gateway/node_modules/dicer/test/test-endfinish.js delete mode 100644 gateway/node_modules/dicer/test/test-headerparser.js delete mode 100644 gateway/node_modules/dicer/test/test-multipart-extra-trailer.js delete mode 100644 gateway/node_modules/dicer/test/test-multipart-nolisteners.js delete mode 100644 gateway/node_modules/dicer/test/test-multipart.js delete mode 100644 gateway/node_modules/dicer/test/test.js delete mode 100644 gateway/node_modules/dot-prop/index.d.ts delete mode 100644 gateway/node_modules/dot-prop/index.js delete mode 100644 gateway/node_modules/dot-prop/license delete mode 100644 gateway/node_modules/dot-prop/package.json delete mode 100644 gateway/node_modules/dot-prop/readme.md delete mode 100644 gateway/node_modules/duplexer3/LICENSE.md delete mode 100644 gateway/node_modules/duplexer3/README.md delete mode 100644 gateway/node_modules/duplexer3/index.js delete mode 100644 gateway/node_modules/duplexer3/package.json delete mode 100644 gateway/node_modules/ee-first/LICENSE delete mode 100644 gateway/node_modules/ee-first/README.md delete mode 100644 gateway/node_modules/ee-first/index.js delete mode 100644 gateway/node_modules/ee-first/package.json delete mode 100644 gateway/node_modules/emoji-regex/LICENSE-MIT.txt delete mode 100644 gateway/node_modules/emoji-regex/README.md delete mode 100644 gateway/node_modules/emoji-regex/es2015/index.js delete mode 100644 gateway/node_modules/emoji-regex/es2015/text.js delete mode 100644 gateway/node_modules/emoji-regex/index.d.ts delete mode 100644 gateway/node_modules/emoji-regex/index.js delete mode 100644 gateway/node_modules/emoji-regex/package.json delete mode 100644 gateway/node_modules/emoji-regex/text.js delete mode 100644 gateway/node_modules/encodeurl/HISTORY.md delete mode 100644 gateway/node_modules/encodeurl/LICENSE delete mode 100644 gateway/node_modules/encodeurl/README.md delete mode 100644 gateway/node_modules/encodeurl/index.js delete mode 100644 gateway/node_modules/encodeurl/package.json delete mode 100644 gateway/node_modules/encoding/.prettierrc.js delete mode 100644 gateway/node_modules/encoding/.travis.yml delete mode 100644 gateway/node_modules/encoding/LICENSE delete mode 100644 gateway/node_modules/encoding/README.md delete mode 100644 gateway/node_modules/encoding/lib/encoding.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/.github/dependabot.yml delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/Changelog.md delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/LICENSE delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/README.md delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/index.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/internal.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/utf32.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/lib/index.d.ts delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/lib/index.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/lib/streams.js delete mode 100644 gateway/node_modules/encoding/node_modules/iconv-lite/package.json delete mode 100644 gateway/node_modules/encoding/package.json delete mode 100644 gateway/node_modules/encoding/test/test.js delete mode 100644 gateway/node_modules/end-of-stream/LICENSE delete mode 100644 gateway/node_modules/end-of-stream/README.md delete mode 100644 gateway/node_modules/end-of-stream/index.js delete mode 100644 gateway/node_modules/end-of-stream/package.json delete mode 100644 gateway/node_modules/err-code/.editorconfig delete mode 100644 gateway/node_modules/err-code/.eslintrc.json delete mode 100644 gateway/node_modules/err-code/.npmignore delete mode 100644 gateway/node_modules/err-code/.travis.yml delete mode 100644 gateway/node_modules/err-code/README.md delete mode 100644 gateway/node_modules/err-code/bower.json delete mode 100644 gateway/node_modules/err-code/index.js delete mode 100644 gateway/node_modules/err-code/index.umd.js delete mode 100644 gateway/node_modules/err-code/package.json delete mode 100644 gateway/node_modules/err-code/test/.eslintrc.json delete mode 100644 gateway/node_modules/err-code/test/test.js delete mode 100644 gateway/node_modules/es-abstract/.editorconfig delete mode 100644 gateway/node_modules/es-abstract/.eslintignore delete mode 100644 gateway/node_modules/es-abstract/.eslintrc delete mode 100644 gateway/node_modules/es-abstract/.gitattributes delete mode 100644 gateway/node_modules/es-abstract/.github/FUNDING.yml delete mode 100644 gateway/node_modules/es-abstract/.github/workflows/codeql-analysis.yml delete mode 100644 gateway/node_modules/es-abstract/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/es-abstract/.nycrc delete mode 100644 gateway/node_modules/es-abstract/.travis.yml delete mode 100644 gateway/node_modules/es-abstract/2015/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2015/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/es-abstract/2015/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/es-abstract/2015/ArrayCreate.js delete mode 100644 gateway/node_modules/es-abstract/2015/ArraySetLength.js delete mode 100644 gateway/node_modules/es-abstract/2015/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/es-abstract/2015/Call.js delete mode 100644 gateway/node_modules/es-abstract/2015/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/es-abstract/2015/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2015/CreateDataProperty.js delete mode 100644 gateway/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2015/CreateHTML.js delete mode 100644 gateway/node_modules/es-abstract/2015/CreateIterResultObject.js delete mode 100644 gateway/node_modules/es-abstract/2015/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/es-abstract/2015/CreateMethodProperty.js delete mode 100644 gateway/node_modules/es-abstract/2015/DateFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2015/Day.js delete mode 100644 gateway/node_modules/es-abstract/2015/DayFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2015/DayWithinYear.js delete mode 100644 gateway/node_modules/es-abstract/2015/DaysInYear.js delete mode 100644 gateway/node_modules/es-abstract/2015/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2015/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2015/EnumerableOwnNames.js delete mode 100644 gateway/node_modules/es-abstract/2015/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2015/Get.js delete mode 100644 gateway/node_modules/es-abstract/2015/GetIterator.js delete mode 100644 gateway/node_modules/es-abstract/2015/GetMethod.js delete mode 100644 gateway/node_modules/es-abstract/2015/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2015/GetSubstitution.js delete mode 100644 gateway/node_modules/es-abstract/2015/GetV.js delete mode 100644 gateway/node_modules/es-abstract/2015/HasOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2015/HasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2015/HourFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2015/InLeapYear.js delete mode 100644 gateway/node_modules/es-abstract/2015/InstanceofOperator.js delete mode 100644 gateway/node_modules/es-abstract/2015/Invoke.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsArray.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsCallable.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsDataDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsExtensible.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsInteger.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsPromise.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2015/IsRegExp.js delete mode 100644 gateway/node_modules/es-abstract/2015/IteratorClose.js delete mode 100644 gateway/node_modules/es-abstract/2015/IteratorComplete.js delete mode 100644 gateway/node_modules/es-abstract/2015/IteratorNext.js delete mode 100644 gateway/node_modules/es-abstract/2015/IteratorStep.js delete mode 100644 gateway/node_modules/es-abstract/2015/IteratorValue.js delete mode 100644 gateway/node_modules/es-abstract/2015/MakeDate.js delete mode 100644 gateway/node_modules/es-abstract/2015/MakeDay.js delete mode 100644 gateway/node_modules/es-abstract/2015/MakeTime.js delete mode 100644 gateway/node_modules/es-abstract/2015/MinFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2015/MonthFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2015/ObjectCreate.js delete mode 100644 gateway/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2015/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/es-abstract/2015/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2015/RegExpExec.js delete mode 100644 gateway/node_modules/es-abstract/2015/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/es-abstract/2015/SameValue.js delete mode 100644 gateway/node_modules/es-abstract/2015/SameValueZero.js delete mode 100644 gateway/node_modules/es-abstract/2015/SecFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2015/Set.js delete mode 100644 gateway/node_modules/es-abstract/2015/SetFunctionName.js delete mode 100644 gateway/node_modules/es-abstract/2015/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2015/SpeciesConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2015/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2015/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/es-abstract/2015/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2015/TimeClip.js delete mode 100644 gateway/node_modules/es-abstract/2015/TimeFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2015/TimeWithinDay.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToBoolean.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToDateString.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToInt16.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToInt32.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToInt8.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToInteger.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToLength.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToNumber.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToObject.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToPrimitive.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToString.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToUint16.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToUint32.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToUint8.js delete mode 100644 gateway/node_modules/es-abstract/2015/ToUint8Clamp.js delete mode 100644 gateway/node_modules/es-abstract/2015/Type.js delete mode 100644 gateway/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2015/WeekDay.js delete mode 100644 gateway/node_modules/es-abstract/2015/YearFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2015/modulo.js delete mode 100644 gateway/node_modules/es-abstract/2015/msFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2015/thisBooleanValue.js delete mode 100644 gateway/node_modules/es-abstract/2015/thisNumberValue.js delete mode 100644 gateway/node_modules/es-abstract/2015/thisStringValue.js delete mode 100644 gateway/node_modules/es-abstract/2015/thisTimeValue.js delete mode 100644 gateway/node_modules/es-abstract/2016/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2016/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/es-abstract/2016/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/es-abstract/2016/ArrayCreate.js delete mode 100644 gateway/node_modules/es-abstract/2016/ArraySetLength.js delete mode 100644 gateway/node_modules/es-abstract/2016/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/es-abstract/2016/Call.js delete mode 100644 gateway/node_modules/es-abstract/2016/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/es-abstract/2016/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2016/CreateDataProperty.js delete mode 100644 gateway/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2016/CreateHTML.js delete mode 100644 gateway/node_modules/es-abstract/2016/CreateIterResultObject.js delete mode 100644 gateway/node_modules/es-abstract/2016/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/es-abstract/2016/CreateMethodProperty.js delete mode 100644 gateway/node_modules/es-abstract/2016/DateFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2016/Day.js delete mode 100644 gateway/node_modules/es-abstract/2016/DayFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2016/DayWithinYear.js delete mode 100644 gateway/node_modules/es-abstract/2016/DaysInYear.js delete mode 100644 gateway/node_modules/es-abstract/2016/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2016/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2016/EnumerableOwnNames.js delete mode 100644 gateway/node_modules/es-abstract/2016/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2016/Get.js delete mode 100644 gateway/node_modules/es-abstract/2016/GetIterator.js delete mode 100644 gateway/node_modules/es-abstract/2016/GetMethod.js delete mode 100644 gateway/node_modules/es-abstract/2016/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2016/GetSubstitution.js delete mode 100644 gateway/node_modules/es-abstract/2016/GetV.js delete mode 100644 gateway/node_modules/es-abstract/2016/HasOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2016/HasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2016/HourFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2016/InLeapYear.js delete mode 100644 gateway/node_modules/es-abstract/2016/InstanceofOperator.js delete mode 100644 gateway/node_modules/es-abstract/2016/Invoke.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsArray.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsCallable.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsDataDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsExtensible.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsInteger.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsPromise.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2016/IsRegExp.js delete mode 100644 gateway/node_modules/es-abstract/2016/IterableToArrayLike.js delete mode 100644 gateway/node_modules/es-abstract/2016/IteratorClose.js delete mode 100644 gateway/node_modules/es-abstract/2016/IteratorComplete.js delete mode 100644 gateway/node_modules/es-abstract/2016/IteratorNext.js delete mode 100644 gateway/node_modules/es-abstract/2016/IteratorStep.js delete mode 100644 gateway/node_modules/es-abstract/2016/IteratorValue.js delete mode 100644 gateway/node_modules/es-abstract/2016/MakeDate.js delete mode 100644 gateway/node_modules/es-abstract/2016/MakeDay.js delete mode 100644 gateway/node_modules/es-abstract/2016/MakeTime.js delete mode 100644 gateway/node_modules/es-abstract/2016/MinFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2016/MonthFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2016/ObjectCreate.js delete mode 100644 gateway/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/es-abstract/2016/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/es-abstract/2016/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/es-abstract/2016/RegExpExec.js delete mode 100644 gateway/node_modules/es-abstract/2016/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/es-abstract/2016/SameValue.js delete mode 100644 gateway/node_modules/es-abstract/2016/SameValueNonNumber.js delete mode 100644 gateway/node_modules/es-abstract/2016/SameValueZero.js delete mode 100644 gateway/node_modules/es-abstract/2016/SecFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2016/Set.js delete mode 100644 gateway/node_modules/es-abstract/2016/SetFunctionName.js delete mode 100644 gateway/node_modules/es-abstract/2016/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2016/SpeciesConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2016/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2016/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/es-abstract/2016/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2016/TimeClip.js delete mode 100644 gateway/node_modules/es-abstract/2016/TimeFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2016/TimeWithinDay.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToBoolean.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToDateString.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToInt16.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToInt32.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToInt8.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToInteger.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToLength.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToNumber.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToObject.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToPrimitive.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToString.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToUint16.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToUint32.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToUint8.js delete mode 100644 gateway/node_modules/es-abstract/2016/ToUint8Clamp.js delete mode 100644 gateway/node_modules/es-abstract/2016/Type.js delete mode 100644 gateway/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2016/WeekDay.js delete mode 100644 gateway/node_modules/es-abstract/2016/YearFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2016/modulo.js delete mode 100644 gateway/node_modules/es-abstract/2016/msFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2016/thisBooleanValue.js delete mode 100644 gateway/node_modules/es-abstract/2016/thisNumberValue.js delete mode 100644 gateway/node_modules/es-abstract/2016/thisStringValue.js delete mode 100644 gateway/node_modules/es-abstract/2016/thisTimeValue.js delete mode 100644 gateway/node_modules/es-abstract/2017/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2017/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/es-abstract/2017/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/es-abstract/2017/ArrayCreate.js delete mode 100644 gateway/node_modules/es-abstract/2017/ArraySetLength.js delete mode 100644 gateway/node_modules/es-abstract/2017/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/es-abstract/2017/Call.js delete mode 100644 gateway/node_modules/es-abstract/2017/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/es-abstract/2017/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2017/CreateDataProperty.js delete mode 100644 gateway/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2017/CreateHTML.js delete mode 100644 gateway/node_modules/es-abstract/2017/CreateIterResultObject.js delete mode 100644 gateway/node_modules/es-abstract/2017/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/es-abstract/2017/CreateMethodProperty.js delete mode 100644 gateway/node_modules/es-abstract/2017/DateFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2017/Day.js delete mode 100644 gateway/node_modules/es-abstract/2017/DayFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2017/DayWithinYear.js delete mode 100644 gateway/node_modules/es-abstract/2017/DaysInYear.js delete mode 100644 gateway/node_modules/es-abstract/2017/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2017/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2017/EnumerableOwnProperties.js delete mode 100644 gateway/node_modules/es-abstract/2017/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2017/Get.js delete mode 100644 gateway/node_modules/es-abstract/2017/GetIterator.js delete mode 100644 gateway/node_modules/es-abstract/2017/GetMethod.js delete mode 100644 gateway/node_modules/es-abstract/2017/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2017/GetSubstitution.js delete mode 100644 gateway/node_modules/es-abstract/2017/GetV.js delete mode 100644 gateway/node_modules/es-abstract/2017/HasOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2017/HasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2017/HourFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2017/InLeapYear.js delete mode 100644 gateway/node_modules/es-abstract/2017/InstanceofOperator.js delete mode 100644 gateway/node_modules/es-abstract/2017/Invoke.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsArray.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsCallable.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsDataDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsExtensible.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsInteger.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsPromise.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2017/IsRegExp.js delete mode 100644 gateway/node_modules/es-abstract/2017/IterableToList.js delete mode 100644 gateway/node_modules/es-abstract/2017/IteratorClose.js delete mode 100644 gateway/node_modules/es-abstract/2017/IteratorComplete.js delete mode 100644 gateway/node_modules/es-abstract/2017/IteratorNext.js delete mode 100644 gateway/node_modules/es-abstract/2017/IteratorStep.js delete mode 100644 gateway/node_modules/es-abstract/2017/IteratorValue.js delete mode 100644 gateway/node_modules/es-abstract/2017/MakeDate.js delete mode 100644 gateway/node_modules/es-abstract/2017/MakeDay.js delete mode 100644 gateway/node_modules/es-abstract/2017/MakeTime.js delete mode 100644 gateway/node_modules/es-abstract/2017/MinFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2017/MonthFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2017/ObjectCreate.js delete mode 100644 gateway/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/es-abstract/2017/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/es-abstract/2017/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/es-abstract/2017/RegExpExec.js delete mode 100644 gateway/node_modules/es-abstract/2017/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/es-abstract/2017/SameValue.js delete mode 100644 gateway/node_modules/es-abstract/2017/SameValueNonNumber.js delete mode 100644 gateway/node_modules/es-abstract/2017/SameValueZero.js delete mode 100644 gateway/node_modules/es-abstract/2017/SecFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2017/Set.js delete mode 100644 gateway/node_modules/es-abstract/2017/SetFunctionName.js delete mode 100644 gateway/node_modules/es-abstract/2017/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2017/SpeciesConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2017/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2017/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/es-abstract/2017/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2017/TimeClip.js delete mode 100644 gateway/node_modules/es-abstract/2017/TimeFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2017/TimeWithinDay.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToBoolean.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToDateString.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToIndex.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToInt16.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToInt32.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToInt8.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToInteger.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToLength.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToNumber.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToObject.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToPrimitive.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToString.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToUint16.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToUint32.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToUint8.js delete mode 100644 gateway/node_modules/es-abstract/2017/ToUint8Clamp.js delete mode 100644 gateway/node_modules/es-abstract/2017/Type.js delete mode 100644 gateway/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2017/WeekDay.js delete mode 100644 gateway/node_modules/es-abstract/2017/YearFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2017/modulo.js delete mode 100644 gateway/node_modules/es-abstract/2017/msFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2017/thisBooleanValue.js delete mode 100644 gateway/node_modules/es-abstract/2017/thisNumberValue.js delete mode 100644 gateway/node_modules/es-abstract/2017/thisStringValue.js delete mode 100644 gateway/node_modules/es-abstract/2017/thisTimeValue.js delete mode 100644 gateway/node_modules/es-abstract/2018/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2018/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/es-abstract/2018/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/es-abstract/2018/ArrayCreate.js delete mode 100644 gateway/node_modules/es-abstract/2018/ArraySetLength.js delete mode 100644 gateway/node_modules/es-abstract/2018/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/es-abstract/2018/Call.js delete mode 100644 gateway/node_modules/es-abstract/2018/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/es-abstract/2018/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2018/CopyDataProperties.js delete mode 100644 gateway/node_modules/es-abstract/2018/CreateDataProperty.js delete mode 100644 gateway/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2018/CreateHTML.js delete mode 100644 gateway/node_modules/es-abstract/2018/CreateIterResultObject.js delete mode 100644 gateway/node_modules/es-abstract/2018/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/es-abstract/2018/CreateMethodProperty.js delete mode 100644 gateway/node_modules/es-abstract/2018/DateFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2018/DateString.js delete mode 100644 gateway/node_modules/es-abstract/2018/Day.js delete mode 100644 gateway/node_modules/es-abstract/2018/DayFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2018/DayWithinYear.js delete mode 100644 gateway/node_modules/es-abstract/2018/DaysInYear.js delete mode 100644 gateway/node_modules/es-abstract/2018/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2018/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js delete mode 100644 gateway/node_modules/es-abstract/2018/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2018/Get.js delete mode 100644 gateway/node_modules/es-abstract/2018/GetIterator.js delete mode 100644 gateway/node_modules/es-abstract/2018/GetMethod.js delete mode 100644 gateway/node_modules/es-abstract/2018/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2018/GetSubstitution.js delete mode 100644 gateway/node_modules/es-abstract/2018/GetV.js delete mode 100644 gateway/node_modules/es-abstract/2018/HasOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2018/HasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2018/HourFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2018/InLeapYear.js delete mode 100644 gateway/node_modules/es-abstract/2018/InstanceofOperator.js delete mode 100644 gateway/node_modules/es-abstract/2018/Invoke.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsArray.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsCallable.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsDataDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsExtensible.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsInteger.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsPromise.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsRegExp.js delete mode 100644 gateway/node_modules/es-abstract/2018/IsStringPrefix.js delete mode 100644 gateway/node_modules/es-abstract/2018/IterableToList.js delete mode 100644 gateway/node_modules/es-abstract/2018/IteratorClose.js delete mode 100644 gateway/node_modules/es-abstract/2018/IteratorComplete.js delete mode 100644 gateway/node_modules/es-abstract/2018/IteratorNext.js delete mode 100644 gateway/node_modules/es-abstract/2018/IteratorStep.js delete mode 100644 gateway/node_modules/es-abstract/2018/IteratorValue.js delete mode 100644 gateway/node_modules/es-abstract/2018/MakeDate.js delete mode 100644 gateway/node_modules/es-abstract/2018/MakeDay.js delete mode 100644 gateway/node_modules/es-abstract/2018/MakeTime.js delete mode 100644 gateway/node_modules/es-abstract/2018/MinFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2018/MonthFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2018/NumberToString.js delete mode 100644 gateway/node_modules/es-abstract/2018/ObjectCreate.js delete mode 100644 gateway/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/es-abstract/2018/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/es-abstract/2018/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/es-abstract/2018/PromiseResolve.js delete mode 100644 gateway/node_modules/es-abstract/2018/RegExpExec.js delete mode 100644 gateway/node_modules/es-abstract/2018/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/es-abstract/2018/SameValue.js delete mode 100644 gateway/node_modules/es-abstract/2018/SameValueNonNumber.js delete mode 100644 gateway/node_modules/es-abstract/2018/SameValueZero.js delete mode 100644 gateway/node_modules/es-abstract/2018/SecFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2018/Set.js delete mode 100644 gateway/node_modules/es-abstract/2018/SetFunctionName.js delete mode 100644 gateway/node_modules/es-abstract/2018/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2018/SpeciesConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2018/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2018/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/es-abstract/2018/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2018/TimeClip.js delete mode 100644 gateway/node_modules/es-abstract/2018/TimeFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2018/TimeString.js delete mode 100644 gateway/node_modules/es-abstract/2018/TimeWithinDay.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToBoolean.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToDateString.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToIndex.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToInt16.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToInt32.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToInt8.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToInteger.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToLength.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToNumber.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToObject.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToPrimitive.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToString.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToUint16.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToUint32.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToUint8.js delete mode 100644 gateway/node_modules/es-abstract/2018/ToUint8Clamp.js delete mode 100644 gateway/node_modules/es-abstract/2018/Type.js delete mode 100644 gateway/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2018/WeekDay.js delete mode 100644 gateway/node_modules/es-abstract/2018/YearFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2018/modulo.js delete mode 100644 gateway/node_modules/es-abstract/2018/msFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2018/thisBooleanValue.js delete mode 100644 gateway/node_modules/es-abstract/2018/thisNumberValue.js delete mode 100644 gateway/node_modules/es-abstract/2018/thisStringValue.js delete mode 100644 gateway/node_modules/es-abstract/2018/thisSymbolValue.js delete mode 100644 gateway/node_modules/es-abstract/2018/thisTimeValue.js delete mode 100644 gateway/node_modules/es-abstract/2019/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2019/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/es-abstract/2019/AddEntriesFromIterable.js delete mode 100644 gateway/node_modules/es-abstract/2019/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/es-abstract/2019/ArrayCreate.js delete mode 100644 gateway/node_modules/es-abstract/2019/ArraySetLength.js delete mode 100644 gateway/node_modules/es-abstract/2019/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/es-abstract/2019/Call.js delete mode 100644 gateway/node_modules/es-abstract/2019/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/es-abstract/2019/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2019/CopyDataProperties.js delete mode 100644 gateway/node_modules/es-abstract/2019/CreateDataProperty.js delete mode 100644 gateway/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2019/CreateHTML.js delete mode 100644 gateway/node_modules/es-abstract/2019/CreateIterResultObject.js delete mode 100644 gateway/node_modules/es-abstract/2019/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/es-abstract/2019/CreateMethodProperty.js delete mode 100644 gateway/node_modules/es-abstract/2019/DateFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2019/DateString.js delete mode 100644 gateway/node_modules/es-abstract/2019/Day.js delete mode 100644 gateway/node_modules/es-abstract/2019/DayFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2019/DayWithinYear.js delete mode 100644 gateway/node_modules/es-abstract/2019/DaysInYear.js delete mode 100644 gateway/node_modules/es-abstract/2019/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2019/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js delete mode 100644 gateway/node_modules/es-abstract/2019/FlattenIntoArray.js delete mode 100644 gateway/node_modules/es-abstract/2019/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2019/Get.js delete mode 100644 gateway/node_modules/es-abstract/2019/GetIterator.js delete mode 100644 gateway/node_modules/es-abstract/2019/GetMethod.js delete mode 100644 gateway/node_modules/es-abstract/2019/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2019/GetSubstitution.js delete mode 100644 gateway/node_modules/es-abstract/2019/GetV.js delete mode 100644 gateway/node_modules/es-abstract/2019/HasOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2019/HasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2019/HourFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2019/InLeapYear.js delete mode 100644 gateway/node_modules/es-abstract/2019/InstanceofOperator.js delete mode 100644 gateway/node_modules/es-abstract/2019/Invoke.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsArray.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsCallable.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsDataDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsExtensible.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsInteger.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsPromise.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsRegExp.js delete mode 100644 gateway/node_modules/es-abstract/2019/IsStringPrefix.js delete mode 100644 gateway/node_modules/es-abstract/2019/IterableToList.js delete mode 100644 gateway/node_modules/es-abstract/2019/IteratorClose.js delete mode 100644 gateway/node_modules/es-abstract/2019/IteratorComplete.js delete mode 100644 gateway/node_modules/es-abstract/2019/IteratorNext.js delete mode 100644 gateway/node_modules/es-abstract/2019/IteratorStep.js delete mode 100644 gateway/node_modules/es-abstract/2019/IteratorValue.js delete mode 100644 gateway/node_modules/es-abstract/2019/MakeDate.js delete mode 100644 gateway/node_modules/es-abstract/2019/MakeDay.js delete mode 100644 gateway/node_modules/es-abstract/2019/MakeTime.js delete mode 100644 gateway/node_modules/es-abstract/2019/MinFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2019/MonthFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2019/NumberToString.js delete mode 100644 gateway/node_modules/es-abstract/2019/ObjectCreate.js delete mode 100644 gateway/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/es-abstract/2019/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/es-abstract/2019/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/es-abstract/2019/PromiseResolve.js delete mode 100644 gateway/node_modules/es-abstract/2019/RegExpExec.js delete mode 100644 gateway/node_modules/es-abstract/2019/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/es-abstract/2019/SameValue.js delete mode 100644 gateway/node_modules/es-abstract/2019/SameValueNonNumber.js delete mode 100644 gateway/node_modules/es-abstract/2019/SameValueZero.js delete mode 100644 gateway/node_modules/es-abstract/2019/SecFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2019/Set.js delete mode 100644 gateway/node_modules/es-abstract/2019/SetFunctionName.js delete mode 100644 gateway/node_modules/es-abstract/2019/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2019/SpeciesConstructor.js delete mode 100644 gateway/node_modules/es-abstract/2019/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/2019/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/es-abstract/2019/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/es-abstract/2019/TimeClip.js delete mode 100644 gateway/node_modules/es-abstract/2019/TimeFromYear.js delete mode 100644 gateway/node_modules/es-abstract/2019/TimeString.js delete mode 100644 gateway/node_modules/es-abstract/2019/TimeWithinDay.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToBoolean.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToDateString.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToIndex.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToInt16.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToInt32.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToInt8.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToInteger.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToLength.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToNumber.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToObject.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToPrimitive.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToPropertyKey.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToString.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToUint16.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToUint32.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToUint8.js delete mode 100644 gateway/node_modules/es-abstract/2019/ToUint8Clamp.js delete mode 100644 gateway/node_modules/es-abstract/2019/TrimString.js delete mode 100644 gateway/node_modules/es-abstract/2019/Type.js delete mode 100644 gateway/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/2019/WeekDay.js delete mode 100644 gateway/node_modules/es-abstract/2019/YearFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2019/modulo.js delete mode 100644 gateway/node_modules/es-abstract/2019/msFromTime.js delete mode 100644 gateway/node_modules/es-abstract/2019/thisBooleanValue.js delete mode 100644 gateway/node_modules/es-abstract/2019/thisNumberValue.js delete mode 100644 gateway/node_modules/es-abstract/2019/thisStringValue.js delete mode 100644 gateway/node_modules/es-abstract/2019/thisSymbolValue.js delete mode 100644 gateway/node_modules/es-abstract/2019/thisTimeValue.js delete mode 100644 gateway/node_modules/es-abstract/5/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/5/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/es-abstract/5/CheckObjectCoercible.js delete mode 100644 gateway/node_modules/es-abstract/5/DateFromTime.js delete mode 100644 gateway/node_modules/es-abstract/5/Day.js delete mode 100644 gateway/node_modules/es-abstract/5/DayFromYear.js delete mode 100644 gateway/node_modules/es-abstract/5/DayWithinYear.js delete mode 100644 gateway/node_modules/es-abstract/5/DaysInYear.js delete mode 100644 gateway/node_modules/es-abstract/5/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/5/HourFromTime.js delete mode 100644 gateway/node_modules/es-abstract/5/InLeapYear.js delete mode 100644 gateway/node_modules/es-abstract/5/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/5/IsCallable.js delete mode 100644 gateway/node_modules/es-abstract/5/IsDataDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/5/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/5/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/5/MakeDate.js delete mode 100644 gateway/node_modules/es-abstract/5/MakeDay.js delete mode 100644 gateway/node_modules/es-abstract/5/MakeTime.js delete mode 100644 gateway/node_modules/es-abstract/5/MinFromTime.js delete mode 100644 gateway/node_modules/es-abstract/5/MonthFromTime.js delete mode 100644 gateway/node_modules/es-abstract/5/SameValue.js delete mode 100644 gateway/node_modules/es-abstract/5/SecFromTime.js delete mode 100644 gateway/node_modules/es-abstract/5/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/es-abstract/5/TimeClip.js delete mode 100644 gateway/node_modules/es-abstract/5/TimeFromYear.js delete mode 100644 gateway/node_modules/es-abstract/5/TimeWithinDay.js delete mode 100644 gateway/node_modules/es-abstract/5/ToBoolean.js delete mode 100644 gateway/node_modules/es-abstract/5/ToInt32.js delete mode 100644 gateway/node_modules/es-abstract/5/ToInteger.js delete mode 100644 gateway/node_modules/es-abstract/5/ToNumber.js delete mode 100644 gateway/node_modules/es-abstract/5/ToObject.js delete mode 100644 gateway/node_modules/es-abstract/5/ToPrimitive.js delete mode 100644 gateway/node_modules/es-abstract/5/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/5/ToString.js delete mode 100644 gateway/node_modules/es-abstract/5/ToUint16.js delete mode 100644 gateway/node_modules/es-abstract/5/ToUint32.js delete mode 100644 gateway/node_modules/es-abstract/5/Type.js delete mode 100644 gateway/node_modules/es-abstract/5/WeekDay.js delete mode 100644 gateway/node_modules/es-abstract/5/YearFromTime.js delete mode 100644 gateway/node_modules/es-abstract/5/modulo.js delete mode 100644 gateway/node_modules/es-abstract/5/msFromTime.js delete mode 100644 gateway/node_modules/es-abstract/CHANGELOG.md delete mode 100644 gateway/node_modules/es-abstract/GetIntrinsic.js delete mode 100644 gateway/node_modules/es-abstract/LICENSE delete mode 100644 gateway/node_modules/es-abstract/README.md delete mode 100644 gateway/node_modules/es-abstract/es2015.js delete mode 100644 gateway/node_modules/es-abstract/es2016.js delete mode 100644 gateway/node_modules/es-abstract/es2017.js delete mode 100644 gateway/node_modules/es-abstract/es2018.js delete mode 100644 gateway/node_modules/es-abstract/es2019.js delete mode 100644 gateway/node_modules/es-abstract/es5.js delete mode 100644 gateway/node_modules/es-abstract/es6.js delete mode 100644 gateway/node_modules/es-abstract/es7.js delete mode 100644 gateway/node_modules/es-abstract/helpers/DefineOwnProperty.js delete mode 100644 gateway/node_modules/es-abstract/helpers/OwnPropertyKeys.js delete mode 100644 gateway/node_modules/es-abstract/helpers/assertRecord.js delete mode 100644 gateway/node_modules/es-abstract/helpers/assign.js delete mode 100644 gateway/node_modules/es-abstract/helpers/callBind.js delete mode 100644 gateway/node_modules/es-abstract/helpers/callBound.js delete mode 100644 gateway/node_modules/es-abstract/helpers/every.js delete mode 100644 gateway/node_modules/es-abstract/helpers/forEach.js delete mode 100644 gateway/node_modules/es-abstract/helpers/getInferredName.js delete mode 100644 gateway/node_modules/es-abstract/helpers/getIteratorMethod.js delete mode 100644 gateway/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/helpers/getProto.js delete mode 100644 gateway/node_modules/es-abstract/helpers/getSymbolDescription.js delete mode 100644 gateway/node_modules/es-abstract/helpers/isFinite.js delete mode 100644 gateway/node_modules/es-abstract/helpers/isNaN.js delete mode 100644 gateway/node_modules/es-abstract/helpers/isPrefixOf.js delete mode 100644 gateway/node_modules/es-abstract/helpers/isPrimitive.js delete mode 100644 gateway/node_modules/es-abstract/helpers/isPropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js delete mode 100644 gateway/node_modules/es-abstract/helpers/maxSafeInteger.js delete mode 100644 gateway/node_modules/es-abstract/helpers/mod.js delete mode 100644 gateway/node_modules/es-abstract/helpers/padTimeComponent.js delete mode 100644 gateway/node_modules/es-abstract/helpers/regexTester.js delete mode 100644 gateway/node_modules/es-abstract/helpers/setProto.js delete mode 100644 gateway/node_modules/es-abstract/helpers/sign.js delete mode 100644 gateway/node_modules/es-abstract/helpers/timeConstants.js delete mode 100644 gateway/node_modules/es-abstract/index.js delete mode 100644 gateway/node_modules/es-abstract/operations/.eslintrc delete mode 100644 gateway/node_modules/es-abstract/operations/2015.js delete mode 100644 gateway/node_modules/es-abstract/operations/2016.js delete mode 100644 gateway/node_modules/es-abstract/operations/2017.js delete mode 100644 gateway/node_modules/es-abstract/operations/2018.js delete mode 100644 gateway/node_modules/es-abstract/operations/2019.js delete mode 100644 gateway/node_modules/es-abstract/package.json delete mode 100644 gateway/node_modules/es-abstract/test/GetIntrinsic.js delete mode 100644 gateway/node_modules/es-abstract/test/diffOps.js delete mode 100644 gateway/node_modules/es-abstract/test/es2015.js delete mode 100644 gateway/node_modules/es-abstract/test/es2016.js delete mode 100644 gateway/node_modules/es-abstract/test/es2017.js delete mode 100644 gateway/node_modules/es-abstract/test/es2018.js delete mode 100644 gateway/node_modules/es-abstract/test/es2019.js delete mode 100644 gateway/node_modules/es-abstract/test/es5.js delete mode 100644 gateway/node_modules/es-abstract/test/es6.js delete mode 100644 gateway/node_modules/es-abstract/test/es7.js delete mode 100644 gateway/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js delete mode 100644 gateway/node_modules/es-abstract/test/helpers/assertRecord.js delete mode 100644 gateway/node_modules/es-abstract/test/helpers/createBoundESNamespace.js delete mode 100644 gateway/node_modules/es-abstract/test/helpers/defineProperty.js delete mode 100644 gateway/node_modules/es-abstract/test/helpers/getSymbolDescription.js delete mode 100644 gateway/node_modules/es-abstract/test/helpers/runManifestTest.js delete mode 100644 gateway/node_modules/es-abstract/test/helpers/values.js delete mode 100644 gateway/node_modules/es-abstract/test/index.js delete mode 100644 gateway/node_modules/es-abstract/test/tests.js delete mode 100644 gateway/node_modules/es-to-primitive/.eslintrc delete mode 100644 gateway/node_modules/es-to-primitive/.github/FUNDING.yml delete mode 100644 gateway/node_modules/es-to-primitive/.travis.yml delete mode 100644 gateway/node_modules/es-to-primitive/CHANGELOG.md delete mode 100644 gateway/node_modules/es-to-primitive/LICENSE delete mode 100644 gateway/node_modules/es-to-primitive/Makefile delete mode 100644 gateway/node_modules/es-to-primitive/README.md delete mode 100644 gateway/node_modules/es-to-primitive/es2015.js delete mode 100644 gateway/node_modules/es-to-primitive/es5.js delete mode 100644 gateway/node_modules/es-to-primitive/es6.js delete mode 100644 gateway/node_modules/es-to-primitive/helpers/isPrimitive.js delete mode 100644 gateway/node_modules/es-to-primitive/index.js delete mode 100644 gateway/node_modules/es-to-primitive/package.json delete mode 100644 gateway/node_modules/es-to-primitive/test/es2015.js delete mode 100644 gateway/node_modules/es-to-primitive/test/es5.js delete mode 100644 gateway/node_modules/es-to-primitive/test/es6.js delete mode 100644 gateway/node_modules/es-to-primitive/test/index.js delete mode 100644 gateway/node_modules/escape-goat/index.d.ts delete mode 100644 gateway/node_modules/escape-goat/index.js delete mode 100644 gateway/node_modules/escape-goat/license delete mode 100644 gateway/node_modules/escape-goat/package.json delete mode 100644 gateway/node_modules/escape-goat/readme.md delete mode 100644 gateway/node_modules/escape-html/LICENSE delete mode 100644 gateway/node_modules/escape-html/Readme.md delete mode 100644 gateway/node_modules/escape-html/index.js delete mode 100644 gateway/node_modules/escape-html/package.json delete mode 100644 gateway/node_modules/etag/HISTORY.md delete mode 100644 gateway/node_modules/etag/LICENSE delete mode 100644 gateway/node_modules/etag/README.md delete mode 100644 gateway/node_modules/etag/index.js delete mode 100644 gateway/node_modules/etag/package.json delete mode 100644 gateway/node_modules/eventemitter3/LICENSE delete mode 100644 gateway/node_modules/eventemitter3/README.md delete mode 100644 gateway/node_modules/eventemitter3/index.d.ts delete mode 100644 gateway/node_modules/eventemitter3/index.js delete mode 100644 gateway/node_modules/eventemitter3/package.json delete mode 100644 gateway/node_modules/eventemitter3/umd/eventemitter3.js delete mode 100644 gateway/node_modules/eventemitter3/umd/eventemitter3.min.js delete mode 100644 gateway/node_modules/eventemitter3/umd/eventemitter3.min.js.map delete mode 100644 gateway/node_modules/express/History.md delete mode 100644 gateway/node_modules/express/LICENSE delete mode 100644 gateway/node_modules/express/Readme.md delete mode 100644 gateway/node_modules/express/index.js delete mode 100644 gateway/node_modules/express/lib/application.js delete mode 100644 gateway/node_modules/express/lib/express.js delete mode 100644 gateway/node_modules/express/lib/middleware/init.js delete mode 100644 gateway/node_modules/express/lib/middleware/query.js delete mode 100644 gateway/node_modules/express/lib/request.js delete mode 100644 gateway/node_modules/express/lib/response.js delete mode 100644 gateway/node_modules/express/lib/router/index.js delete mode 100644 gateway/node_modules/express/lib/router/layer.js delete mode 100644 gateway/node_modules/express/lib/router/route.js delete mode 100644 gateway/node_modules/express/lib/utils.js delete mode 100644 gateway/node_modules/express/lib/view.js delete mode 100644 gateway/node_modules/express/package.json delete mode 100644 gateway/node_modules/fast-json-stable-stringify/.eslintrc.yml delete mode 100644 gateway/node_modules/fast-json-stable-stringify/.github/FUNDING.yml delete mode 100644 gateway/node_modules/fast-json-stable-stringify/.travis.yml delete mode 100644 gateway/node_modules/fast-json-stable-stringify/LICENSE delete mode 100644 gateway/node_modules/fast-json-stable-stringify/README.md delete mode 100644 gateway/node_modules/fast-json-stable-stringify/benchmark/index.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/benchmark/test.json delete mode 100644 gateway/node_modules/fast-json-stable-stringify/example/key_cmp.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/example/nested.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/example/str.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/example/value_cmp.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/index.d.ts delete mode 100644 gateway/node_modules/fast-json-stable-stringify/index.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/package.json delete mode 100644 gateway/node_modules/fast-json-stable-stringify/test/cmp.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/test/nested.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/test/str.js delete mode 100644 gateway/node_modules/fast-json-stable-stringify/test/to-json.js delete mode 100644 gateway/node_modules/fill-range/LICENSE delete mode 100644 gateway/node_modules/fill-range/README.md delete mode 100644 gateway/node_modules/fill-range/index.js delete mode 100644 gateway/node_modules/fill-range/package.json delete mode 100644 gateway/node_modules/finalhandler/HISTORY.md delete mode 100644 gateway/node_modules/finalhandler/LICENSE delete mode 100644 gateway/node_modules/finalhandler/README.md delete mode 100644 gateway/node_modules/finalhandler/index.js delete mode 100644 gateway/node_modules/finalhandler/package.json delete mode 100644 gateway/node_modules/form-data/License delete mode 100644 gateway/node_modules/form-data/README.md delete mode 100644 gateway/node_modules/form-data/README.md.bak delete mode 100644 gateway/node_modules/form-data/index.d.ts delete mode 100644 gateway/node_modules/form-data/lib/browser.js delete mode 100644 gateway/node_modules/form-data/lib/form_data.js delete mode 100644 gateway/node_modules/form-data/lib/populate.js delete mode 100644 gateway/node_modules/form-data/package.json delete mode 100644 gateway/node_modules/forwarded/HISTORY.md delete mode 100644 gateway/node_modules/forwarded/LICENSE delete mode 100644 gateway/node_modules/forwarded/README.md delete mode 100644 gateway/node_modules/forwarded/index.js delete mode 100644 gateway/node_modules/forwarded/package.json delete mode 100644 gateway/node_modules/fresh/HISTORY.md delete mode 100644 gateway/node_modules/fresh/LICENSE delete mode 100644 gateway/node_modules/fresh/README.md delete mode 100644 gateway/node_modules/fresh/index.js delete mode 100644 gateway/node_modules/fresh/package.json delete mode 100644 gateway/node_modules/fs-capacitor/.eslintignore delete mode 100644 gateway/node_modules/fs-capacitor/.eslintrc.json delete mode 100644 gateway/node_modules/fs-capacitor/.gitignore delete mode 100644 gateway/node_modules/fs-capacitor/.huskyrc.json delete mode 100644 gateway/node_modules/fs-capacitor/.lintstagedrc.json delete mode 100644 gateway/node_modules/fs-capacitor/.npmrc delete mode 100644 gateway/node_modules/fs-capacitor/.prettierignore delete mode 100644 gateway/node_modules/fs-capacitor/.prettierrc.json delete mode 100644 gateway/node_modules/fs-capacitor/.travis.yml delete mode 100644 gateway/node_modules/fs-capacitor/babel.config.js delete mode 100644 gateway/node_modules/fs-capacitor/changelog.md delete mode 100644 gateway/node_modules/fs-capacitor/package.json delete mode 100644 gateway/node_modules/fs-capacitor/readme.md delete mode 100644 gateway/node_modules/fs-capacitor/src/index.mjs delete mode 100644 gateway/node_modules/fs-capacitor/src/test.mjs delete mode 100644 gateway/node_modules/fs-minipass/LICENSE delete mode 100644 gateway/node_modules/fs-minipass/README.md delete mode 100644 gateway/node_modules/fs-minipass/index.js delete mode 100644 gateway/node_modules/fs-minipass/package.json delete mode 100644 gateway/node_modules/fs.realpath/LICENSE delete mode 100644 gateway/node_modules/fs.realpath/README.md delete mode 100644 gateway/node_modules/fs.realpath/index.js delete mode 100644 gateway/node_modules/fs.realpath/old.js delete mode 100644 gateway/node_modules/fs.realpath/package.json delete mode 100644 gateway/node_modules/fsevents/LICENSE delete mode 100644 gateway/node_modules/fsevents/README.md delete mode 100644 gateway/node_modules/fsevents/fsevents.d.ts delete mode 100644 gateway/node_modules/fsevents/fsevents.js delete mode 100755 gateway/node_modules/fsevents/fsevents.node delete mode 100644 gateway/node_modules/fsevents/package.json delete mode 100644 gateway/node_modules/function-bind/.editorconfig delete mode 100644 gateway/node_modules/function-bind/.eslintrc delete mode 100644 gateway/node_modules/function-bind/.jscs.json delete mode 100644 gateway/node_modules/function-bind/.npmignore delete mode 100644 gateway/node_modules/function-bind/.travis.yml delete mode 100644 gateway/node_modules/function-bind/LICENSE delete mode 100644 gateway/node_modules/function-bind/README.md delete mode 100644 gateway/node_modules/function-bind/implementation.js delete mode 100644 gateway/node_modules/function-bind/index.js delete mode 100644 gateway/node_modules/function-bind/package.json delete mode 100644 gateway/node_modules/function-bind/test/.eslintrc delete mode 100644 gateway/node_modules/function-bind/test/index.js delete mode 100644 gateway/node_modules/get-intrinsic/.eslintrc delete mode 100644 gateway/node_modules/get-intrinsic/.github/FUNDING.yml delete mode 100644 gateway/node_modules/get-intrinsic/.github/rebase.yml delete mode 100644 gateway/node_modules/get-intrinsic/.github/require-allow-edits.yml delete mode 100644 gateway/node_modules/get-intrinsic/.nycrc delete mode 100644 gateway/node_modules/get-intrinsic/.travis.yml delete mode 100644 gateway/node_modules/get-intrinsic/CHANGELOG.md delete mode 100644 gateway/node_modules/get-intrinsic/LICENSE delete mode 100644 gateway/node_modules/get-intrinsic/README.md delete mode 100644 gateway/node_modules/get-intrinsic/index.js delete mode 100644 gateway/node_modules/get-intrinsic/package.json delete mode 100644 gateway/node_modules/get-intrinsic/test/GetIntrinsic.js delete mode 100644 gateway/node_modules/get-stream/buffer-stream.js delete mode 100644 gateway/node_modules/get-stream/index.js delete mode 100644 gateway/node_modules/get-stream/license delete mode 100644 gateway/node_modules/get-stream/package.json delete mode 100644 gateway/node_modules/get-stream/readme.md delete mode 100644 gateway/node_modules/glob-parent/LICENSE delete mode 100644 gateway/node_modules/glob-parent/README.md delete mode 100644 gateway/node_modules/glob-parent/index.js delete mode 100644 gateway/node_modules/glob-parent/package.json delete mode 100644 gateway/node_modules/glob/LICENSE delete mode 100644 gateway/node_modules/glob/README.md delete mode 100644 gateway/node_modules/glob/changelog.md delete mode 100644 gateway/node_modules/glob/common.js delete mode 100644 gateway/node_modules/glob/glob.js delete mode 100644 gateway/node_modules/glob/package.json delete mode 100644 gateway/node_modules/glob/sync.js delete mode 100644 gateway/node_modules/global-dirs/index.d.ts delete mode 100644 gateway/node_modules/global-dirs/index.js delete mode 100644 gateway/node_modules/global-dirs/license delete mode 100644 gateway/node_modules/global-dirs/package.json delete mode 100644 gateway/node_modules/global-dirs/readme.md delete mode 100644 gateway/node_modules/got/license delete mode 100644 gateway/node_modules/got/package.json delete mode 100644 gateway/node_modules/got/readme.md delete mode 100644 gateway/node_modules/got/source/as-promise.js delete mode 100644 gateway/node_modules/got/source/as-stream.js delete mode 100644 gateway/node_modules/got/source/create.js delete mode 100644 gateway/node_modules/got/source/errors.js delete mode 100644 gateway/node_modules/got/source/get-response.js delete mode 100644 gateway/node_modules/got/source/index.js delete mode 100644 gateway/node_modules/got/source/known-hook-events.js delete mode 100644 gateway/node_modules/got/source/merge.js delete mode 100644 gateway/node_modules/got/source/normalize-arguments.js delete mode 100644 gateway/node_modules/got/source/progress.js delete mode 100644 gateway/node_modules/got/source/request-as-event-emitter.js delete mode 100644 gateway/node_modules/got/source/utils/deep-freeze.js delete mode 100644 gateway/node_modules/got/source/utils/get-body-size.js delete mode 100644 gateway/node_modules/got/source/utils/is-form-data.js delete mode 100644 gateway/node_modules/got/source/utils/timed-out.js delete mode 100644 gateway/node_modules/got/source/utils/url-to-options.js delete mode 100644 gateway/node_modules/graceful-fs/LICENSE delete mode 100644 gateway/node_modules/graceful-fs/README.md delete mode 100644 gateway/node_modules/graceful-fs/clone.js delete mode 100644 gateway/node_modules/graceful-fs/graceful-fs.js delete mode 100644 gateway/node_modules/graceful-fs/legacy-streams.js delete mode 100644 gateway/node_modules/graceful-fs/package.json delete mode 100644 gateway/node_modules/graceful-fs/polyfills.js delete mode 100644 gateway/node_modules/graphql-extensions/CHANGELOG.md delete mode 100644 gateway/node_modules/graphql-extensions/LICENSE delete mode 100644 gateway/node_modules/graphql-extensions/README.md delete mode 100644 gateway/node_modules/graphql-extensions/dist/index.d.ts delete mode 100644 gateway/node_modules/graphql-extensions/dist/index.d.ts.map delete mode 100644 gateway/node_modules/graphql-extensions/dist/index.js delete mode 100644 gateway/node_modules/graphql-extensions/dist/index.js.map delete mode 100644 gateway/node_modules/graphql-extensions/package.json delete mode 100644 gateway/node_modules/graphql-extensions/src/index.ts delete mode 100644 gateway/node_modules/graphql-subscriptions/.designs/authorization.md delete mode 100644 gateway/node_modules/graphql-subscriptions/.github/ISSUE_TEMPLATE.md delete mode 100644 gateway/node_modules/graphql-subscriptions/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 gateway/node_modules/graphql-subscriptions/.travis.yml delete mode 100644 gateway/node_modules/graphql-subscriptions/AUTHORS delete mode 100644 gateway/node_modules/graphql-subscriptions/CHANGELOG.md delete mode 100644 gateway/node_modules/graphql-subscriptions/CONTRIBUTING.md delete mode 100644 gateway/node_modules/graphql-subscriptions/LICENSE delete mode 100644 gateway/node_modules/graphql-subscriptions/README.md delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/index.d.ts delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/index.js delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/index.js.map delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub-async-iterator.d.ts delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub-async-iterator.js delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub-async-iterator.js.map delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub-engine.d.ts delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub-engine.js delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub-engine.js.map delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub.d.ts delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub.js delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/pubsub.js.map delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/with-filter.d.ts delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/with-filter.js delete mode 100644 gateway/node_modules/graphql-subscriptions/dist/with-filter.js.map delete mode 100644 gateway/node_modules/graphql-subscriptions/package.json delete mode 100644 gateway/node_modules/graphql-tag/CHANGELOG.md delete mode 100644 gateway/node_modules/graphql-tag/CONTRIBUTING.md delete mode 100644 gateway/node_modules/graphql-tag/LICENSE delete mode 100644 gateway/node_modules/graphql-tag/README.md delete mode 100644 gateway/node_modules/graphql-tag/index.d.ts delete mode 100644 gateway/node_modules/graphql-tag/lib/graphql-tag.umd.js delete mode 100644 gateway/node_modules/graphql-tag/lib/graphql-tag.umd.js.flow delete mode 100644 gateway/node_modules/graphql-tag/lib/graphql-tag.umd.js.map delete mode 100644 gateway/node_modules/graphql-tag/loader.js delete mode 100644 gateway/node_modules/graphql-tag/package.json delete mode 100644 gateway/node_modules/graphql-tag/src/index.js delete mode 100644 gateway/node_modules/graphql-tag/src/index.js.flow delete mode 100644 gateway/node_modules/graphql-tag/test/graphql.js delete mode 100644 gateway/node_modules/graphql-tag/test/mocha.opts delete mode 100644 gateway/node_modules/graphql-tools/CHANGELOG.md delete mode 100644 gateway/node_modules/graphql-tools/CONTRIBUTING.md delete mode 100644 gateway/node_modules/graphql-tools/LICENSE delete mode 100644 gateway/node_modules/graphql-tools/README.md delete mode 100644 gateway/node_modules/graphql-tools/dist/Interfaces.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/Interfaces.js delete mode 100644 gateway/node_modules/graphql-tools/dist/Interfaces.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/Logger.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/Logger.js delete mode 100644 gateway/node_modules/graphql-tools/dist/Logger.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/SchemaError.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/SchemaError.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/SchemaError.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/addResolveFunctionsToSchema.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/addResolveFunctionsToSchema.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/addResolveFunctionsToSchema.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/addSchemaLevelResolveFunction.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/addSchemaLevelResolveFunction.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/addSchemaLevelResolveFunction.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/assertResolveFunctionsPresent.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/assertResolveFunctionsPresent.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/assertResolveFunctionsPresent.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/attachConnectorsToContext.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/attachConnectorsToContext.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/attachConnectorsToContext.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/attachDirectiveResolvers.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/attachDirectiveResolvers.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/attachDirectiveResolvers.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/buildSchemaFromTypeDefinitions.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/buildSchemaFromTypeDefinitions.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/buildSchemaFromTypeDefinitions.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/chainResolvers.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/chainResolvers.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/chainResolvers.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/checkForResolveTypeResolver.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/checkForResolveTypeResolver.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/checkForResolveTypeResolver.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/concatenateTypeDefs.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/concatenateTypeDefs.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/concatenateTypeDefs.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/decorateWithLogger.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/decorateWithLogger.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/decorateWithLogger.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/extendResolversFromInterfaces.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/extendResolversFromInterfaces.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/extendResolversFromInterfaces.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/extractExtensionDefinitions.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/extractExtensionDefinitions.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/extractExtensionDefinitions.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/filterExtensionDefinitions.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/filterExtensionDefinitions.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/filterExtensionDefinitions.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/forEachField.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/forEachField.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/forEachField.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/index.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/index.js delete mode 100644 gateway/node_modules/graphql-tools/dist/generate/index.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/implementsAbstractType.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/implementsAbstractType.js delete mode 100644 gateway/node_modules/graphql-tools/dist/implementsAbstractType.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/index.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/index.js delete mode 100644 gateway/node_modules/graphql-tools/dist/index.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/isEmptyObject.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/isEmptyObject.js delete mode 100644 gateway/node_modules/graphql-tools/dist/isEmptyObject.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/isSpecifiedScalarType.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/isSpecifiedScalarType.js delete mode 100644 gateway/node_modules/graphql-tools/dist/isSpecifiedScalarType.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/makeExecutableSchema.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/makeExecutableSchema.js delete mode 100644 gateway/node_modules/graphql-tools/dist/makeExecutableSchema.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/mergeDeep.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/mergeDeep.js delete mode 100644 gateway/node_modules/graphql-tools/dist/mergeDeep.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/mock.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/mock.js delete mode 100644 gateway/node_modules/graphql-tools/dist/mock.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/schemaVisitor.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/schemaVisitor.js delete mode 100644 gateway/node_modules/graphql-tools/dist/schemaVisitor.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/defaultMergedResolver.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/defaultMergedResolver.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/defaultMergedResolver.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/delegateToSchema.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/delegateToSchema.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/delegateToSchema.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/errors.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/errors.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/errors.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/getResponseKeyFromInfo.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/getResponseKeyFromInfo.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/getResponseKeyFromInfo.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/index.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/index.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/index.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/introspectSchema.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/introspectSchema.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/introspectSchema.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/linkToFetcher.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/linkToFetcher.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/linkToFetcher.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/makeRemoteExecutableSchema.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/makeRemoteExecutableSchema.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/makeRemoteExecutableSchema.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/mapAsyncIterator.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/mapAsyncIterator.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/mapAsyncIterator.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/mergeSchemas.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/mergeSchemas.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/mergeSchemas.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/observableToAsyncIterable.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/observableToAsyncIterable.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/observableToAsyncIterable.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/resolveFromParentTypename.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/resolveFromParentTypename.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/resolveFromParentTypename.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/resolvers.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/resolvers.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/resolvers.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/schemaRecreation.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/schemaRecreation.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/schemaRecreation.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/typeFromAST.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/typeFromAST.js delete mode 100644 gateway/node_modules/graphql-tools/dist/stitching/typeFromAST.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/AddArgumentsAsVariables.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/AddArgumentsAsVariables.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/AddArgumentsAsVariables.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/AddTypenameToAbstract.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/AddTypenameToAbstract.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/AddTypenameToAbstract.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/CheckResultAndHandleErrors.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/CheckResultAndHandleErrors.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/CheckResultAndHandleErrors.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ConvertEnumResponse.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ConvertEnumResponse.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ConvertEnumResponse.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ConvertEnumValues.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ConvertEnumValues.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ConvertEnumValues.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ExpandAbstractTypes.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ExpandAbstractTypes.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ExpandAbstractTypes.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ExtractField.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ExtractField.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ExtractField.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterRootFields.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterRootFields.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterRootFields.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterToSchema.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterToSchema.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterToSchema.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterTypes.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterTypes.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/FilterTypes.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/RenameRootFields.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/RenameRootFields.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/RenameRootFields.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/RenameTypes.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/RenameTypes.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/RenameTypes.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ReplaceFieldWithFragment.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ReplaceFieldWithFragment.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/ReplaceFieldWithFragment.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/TransformRootFields.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/TransformRootFields.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/TransformRootFields.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/WrapQuery.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/WrapQuery.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/WrapQuery.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/index.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/index.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/index.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/transformSchema.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/transformSchema.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/transformSchema.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/transforms.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/transforms.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/transforms.js.map delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/visitSchema.d.ts delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/visitSchema.js delete mode 100644 gateway/node_modules/graphql-tools/dist/transforms/visitSchema.js.map delete mode 120000 gateway/node_modules/graphql-tools/node_modules/.bin/uuid delete mode 100644 gateway/node_modules/graphql-tools/package.json delete mode 100644 gateway/node_modules/graphql-upload/changelog.md delete mode 100644 gateway/node_modules/graphql-upload/lib/GraphQLUpload.js delete mode 100644 gateway/node_modules/graphql-upload/lib/GraphQLUpload.mjs delete mode 100644 gateway/node_modules/graphql-upload/lib/constants.js delete mode 100644 gateway/node_modules/graphql-upload/lib/constants.mjs delete mode 100644 gateway/node_modules/graphql-upload/lib/graphqlUploadExpress.js delete mode 100644 gateway/node_modules/graphql-upload/lib/graphqlUploadExpress.mjs delete mode 100644 gateway/node_modules/graphql-upload/lib/graphqlUploadKoa.js delete mode 100644 gateway/node_modules/graphql-upload/lib/graphqlUploadKoa.mjs delete mode 100644 gateway/node_modules/graphql-upload/lib/ignoreStream.js delete mode 100644 gateway/node_modules/graphql-upload/lib/ignoreStream.mjs delete mode 100644 gateway/node_modules/graphql-upload/lib/index.js delete mode 100644 gateway/node_modules/graphql-upload/lib/index.mjs delete mode 100644 gateway/node_modules/graphql-upload/lib/isEnumerableObject.js delete mode 100644 gateway/node_modules/graphql-upload/lib/isEnumerableObject.mjs delete mode 100644 gateway/node_modules/graphql-upload/lib/processRequest.js delete mode 100644 gateway/node_modules/graphql-upload/lib/processRequest.mjs delete mode 100644 gateway/node_modules/graphql-upload/node_modules/http-errors/HISTORY.md delete mode 100644 gateway/node_modules/graphql-upload/node_modules/http-errors/LICENSE delete mode 100644 gateway/node_modules/graphql-upload/node_modules/http-errors/README.md delete mode 100644 gateway/node_modules/graphql-upload/node_modules/http-errors/index.js delete mode 100644 gateway/node_modules/graphql-upload/node_modules/http-errors/package.json delete mode 100644 gateway/node_modules/graphql-upload/node_modules/setprototypeof/LICENSE delete mode 100644 gateway/node_modules/graphql-upload/node_modules/setprototypeof/README.md delete mode 100644 gateway/node_modules/graphql-upload/node_modules/setprototypeof/index.d.ts delete mode 100644 gateway/node_modules/graphql-upload/node_modules/setprototypeof/index.js delete mode 100644 gateway/node_modules/graphql-upload/node_modules/setprototypeof/package.json delete mode 100644 gateway/node_modules/graphql-upload/node_modules/setprototypeof/test/index.js delete mode 100644 gateway/node_modules/graphql-upload/package.json delete mode 100644 gateway/node_modules/graphql-upload/readme.md delete mode 100644 gateway/node_modules/graphql/LICENSE delete mode 100644 gateway/node_modules/graphql/README.md delete mode 100644 gateway/node_modules/graphql/error/GraphQLError.d.ts delete mode 100644 gateway/node_modules/graphql/error/GraphQLError.js delete mode 100644 gateway/node_modules/graphql/error/GraphQLError.js.flow delete mode 100644 gateway/node_modules/graphql/error/GraphQLError.mjs delete mode 100644 gateway/node_modules/graphql/error/formatError.d.ts delete mode 100644 gateway/node_modules/graphql/error/formatError.js delete mode 100644 gateway/node_modules/graphql/error/formatError.js.flow delete mode 100644 gateway/node_modules/graphql/error/formatError.mjs delete mode 100644 gateway/node_modules/graphql/error/index.d.ts delete mode 100644 gateway/node_modules/graphql/error/index.js delete mode 100644 gateway/node_modules/graphql/error/index.js.flow delete mode 100644 gateway/node_modules/graphql/error/index.mjs delete mode 100644 gateway/node_modules/graphql/error/locatedError.d.ts delete mode 100644 gateway/node_modules/graphql/error/locatedError.js delete mode 100644 gateway/node_modules/graphql/error/locatedError.js.flow delete mode 100644 gateway/node_modules/graphql/error/locatedError.mjs delete mode 100644 gateway/node_modules/graphql/error/syntaxError.d.ts delete mode 100644 gateway/node_modules/graphql/error/syntaxError.js delete mode 100644 gateway/node_modules/graphql/error/syntaxError.js.flow delete mode 100644 gateway/node_modules/graphql/error/syntaxError.mjs delete mode 100644 gateway/node_modules/graphql/execution/execute.d.ts delete mode 100644 gateway/node_modules/graphql/execution/execute.js delete mode 100644 gateway/node_modules/graphql/execution/execute.js.flow delete mode 100644 gateway/node_modules/graphql/execution/execute.mjs delete mode 100644 gateway/node_modules/graphql/execution/index.d.ts delete mode 100644 gateway/node_modules/graphql/execution/index.js delete mode 100644 gateway/node_modules/graphql/execution/index.js.flow delete mode 100644 gateway/node_modules/graphql/execution/index.mjs delete mode 100644 gateway/node_modules/graphql/execution/values.d.ts delete mode 100644 gateway/node_modules/graphql/execution/values.js delete mode 100644 gateway/node_modules/graphql/execution/values.js.flow delete mode 100644 gateway/node_modules/graphql/execution/values.mjs delete mode 100644 gateway/node_modules/graphql/graphql.d.ts delete mode 100644 gateway/node_modules/graphql/graphql.js delete mode 100644 gateway/node_modules/graphql/graphql.js.flow delete mode 100644 gateway/node_modules/graphql/graphql.mjs delete mode 100644 gateway/node_modules/graphql/index.d.ts delete mode 100644 gateway/node_modules/graphql/index.js delete mode 100644 gateway/node_modules/graphql/index.js.flow delete mode 100644 gateway/node_modules/graphql/index.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/Maybe.d.ts delete mode 100644 gateway/node_modules/graphql/jsutils/ObjMap.js delete mode 100644 gateway/node_modules/graphql/jsutils/ObjMap.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/ObjMap.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/Path.d.ts delete mode 100644 gateway/node_modules/graphql/jsutils/Path.js delete mode 100644 gateway/node_modules/graphql/jsutils/Path.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/Path.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/PromiseOrValue.d.ts delete mode 100644 gateway/node_modules/graphql/jsutils/PromiseOrValue.js delete mode 100644 gateway/node_modules/graphql/jsutils/PromiseOrValue.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/PromiseOrValue.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/defineInspect.js delete mode 100644 gateway/node_modules/graphql/jsutils/defineInspect.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/defineInspect.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/devAssert.js delete mode 100644 gateway/node_modules/graphql/jsutils/devAssert.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/devAssert.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/didYouMean.js delete mode 100644 gateway/node_modules/graphql/jsutils/didYouMean.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/didYouMean.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/identityFunc.js delete mode 100644 gateway/node_modules/graphql/jsutils/identityFunc.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/identityFunc.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/inspect.js delete mode 100644 gateway/node_modules/graphql/jsutils/inspect.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/inspect.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/instanceOf.js delete mode 100644 gateway/node_modules/graphql/jsutils/instanceOf.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/instanceOf.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/invariant.js delete mode 100644 gateway/node_modules/graphql/jsutils/invariant.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/invariant.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/isAsyncIterable.js delete mode 100644 gateway/node_modules/graphql/jsutils/isAsyncIterable.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/isAsyncIterable.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/isCollection.js delete mode 100644 gateway/node_modules/graphql/jsutils/isCollection.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/isCollection.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/isObjectLike.js delete mode 100644 gateway/node_modules/graphql/jsutils/isObjectLike.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/isObjectLike.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/isPromise.js delete mode 100644 gateway/node_modules/graphql/jsutils/isPromise.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/isPromise.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/keyMap.js delete mode 100644 gateway/node_modules/graphql/jsutils/keyMap.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/keyMap.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/keyValMap.js delete mode 100644 gateway/node_modules/graphql/jsutils/keyValMap.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/keyValMap.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/mapValue.js delete mode 100644 gateway/node_modules/graphql/jsutils/mapValue.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/mapValue.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/memoize3.js delete mode 100644 gateway/node_modules/graphql/jsutils/memoize3.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/memoize3.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js delete mode 100644 gateway/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/printPathArray.js delete mode 100644 gateway/node_modules/graphql/jsutils/printPathArray.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/printPathArray.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/promiseForObject.js delete mode 100644 gateway/node_modules/graphql/jsutils/promiseForObject.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/promiseForObject.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/promiseReduce.js delete mode 100644 gateway/node_modules/graphql/jsutils/promiseReduce.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/promiseReduce.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/suggestionList.js delete mode 100644 gateway/node_modules/graphql/jsutils/suggestionList.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/suggestionList.mjs delete mode 100644 gateway/node_modules/graphql/jsutils/toObjMap.js delete mode 100644 gateway/node_modules/graphql/jsutils/toObjMap.js.flow delete mode 100644 gateway/node_modules/graphql/jsutils/toObjMap.mjs delete mode 100644 gateway/node_modules/graphql/language/ast.d.ts delete mode 100644 gateway/node_modules/graphql/language/ast.js delete mode 100644 gateway/node_modules/graphql/language/ast.js.flow delete mode 100644 gateway/node_modules/graphql/language/ast.mjs delete mode 100644 gateway/node_modules/graphql/language/blockString.d.ts delete mode 100644 gateway/node_modules/graphql/language/blockString.js delete mode 100644 gateway/node_modules/graphql/language/blockString.js.flow delete mode 100644 gateway/node_modules/graphql/language/blockString.mjs delete mode 100644 gateway/node_modules/graphql/language/directiveLocation.d.ts delete mode 100644 gateway/node_modules/graphql/language/directiveLocation.js delete mode 100644 gateway/node_modules/graphql/language/directiveLocation.js.flow delete mode 100644 gateway/node_modules/graphql/language/directiveLocation.mjs delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/grammar.d.ts delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/grammar.js delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/grammar.js.flow delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/grammar.mjs delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/index.d.ts delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/index.js delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/index.js.flow delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/index.mjs delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/onlineParser.d.ts delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/onlineParser.js delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/onlineParser.js.flow delete mode 100644 gateway/node_modules/graphql/language/experimentalOnlineParser/onlineParser.mjs delete mode 100644 gateway/node_modules/graphql/language/index.d.ts delete mode 100644 gateway/node_modules/graphql/language/index.js delete mode 100644 gateway/node_modules/graphql/language/index.js.flow delete mode 100644 gateway/node_modules/graphql/language/index.mjs delete mode 100644 gateway/node_modules/graphql/language/kinds.d.ts delete mode 100644 gateway/node_modules/graphql/language/kinds.js delete mode 100644 gateway/node_modules/graphql/language/kinds.js.flow delete mode 100644 gateway/node_modules/graphql/language/kinds.mjs delete mode 100644 gateway/node_modules/graphql/language/lexer.d.ts delete mode 100644 gateway/node_modules/graphql/language/lexer.js delete mode 100644 gateway/node_modules/graphql/language/lexer.js.flow delete mode 100644 gateway/node_modules/graphql/language/lexer.mjs delete mode 100644 gateway/node_modules/graphql/language/location.d.ts delete mode 100644 gateway/node_modules/graphql/language/location.js delete mode 100644 gateway/node_modules/graphql/language/location.js.flow delete mode 100644 gateway/node_modules/graphql/language/location.mjs delete mode 100644 gateway/node_modules/graphql/language/parser.d.ts delete mode 100644 gateway/node_modules/graphql/language/parser.js delete mode 100644 gateway/node_modules/graphql/language/parser.js.flow delete mode 100644 gateway/node_modules/graphql/language/parser.mjs delete mode 100644 gateway/node_modules/graphql/language/predicates.d.ts delete mode 100644 gateway/node_modules/graphql/language/predicates.js delete mode 100644 gateway/node_modules/graphql/language/predicates.js.flow delete mode 100644 gateway/node_modules/graphql/language/predicates.mjs delete mode 100644 gateway/node_modules/graphql/language/printLocation.d.ts delete mode 100644 gateway/node_modules/graphql/language/printLocation.js delete mode 100644 gateway/node_modules/graphql/language/printLocation.js.flow delete mode 100644 gateway/node_modules/graphql/language/printLocation.mjs delete mode 100644 gateway/node_modules/graphql/language/printer.d.ts delete mode 100644 gateway/node_modules/graphql/language/printer.js delete mode 100644 gateway/node_modules/graphql/language/printer.js.flow delete mode 100644 gateway/node_modules/graphql/language/printer.mjs delete mode 100644 gateway/node_modules/graphql/language/source.d.ts delete mode 100644 gateway/node_modules/graphql/language/source.js delete mode 100644 gateway/node_modules/graphql/language/source.js.flow delete mode 100644 gateway/node_modules/graphql/language/source.mjs delete mode 100644 gateway/node_modules/graphql/language/tokenKind.d.ts delete mode 100644 gateway/node_modules/graphql/language/tokenKind.js delete mode 100644 gateway/node_modules/graphql/language/tokenKind.js.flow delete mode 100644 gateway/node_modules/graphql/language/tokenKind.mjs delete mode 100644 gateway/node_modules/graphql/language/visitor.d.ts delete mode 100644 gateway/node_modules/graphql/language/visitor.js delete mode 100644 gateway/node_modules/graphql/language/visitor.js.flow delete mode 100644 gateway/node_modules/graphql/language/visitor.mjs delete mode 100644 gateway/node_modules/graphql/package.json delete mode 100644 gateway/node_modules/graphql/polyfills/arrayFrom.js delete mode 100644 gateway/node_modules/graphql/polyfills/arrayFrom.js.flow delete mode 100644 gateway/node_modules/graphql/polyfills/arrayFrom.mjs delete mode 100644 gateway/node_modules/graphql/polyfills/find.js delete mode 100644 gateway/node_modules/graphql/polyfills/find.js.flow delete mode 100644 gateway/node_modules/graphql/polyfills/find.mjs delete mode 100644 gateway/node_modules/graphql/polyfills/isFinite.js delete mode 100644 gateway/node_modules/graphql/polyfills/isFinite.js.flow delete mode 100644 gateway/node_modules/graphql/polyfills/isFinite.mjs delete mode 100644 gateway/node_modules/graphql/polyfills/isInteger.js delete mode 100644 gateway/node_modules/graphql/polyfills/isInteger.js.flow delete mode 100644 gateway/node_modules/graphql/polyfills/isInteger.mjs delete mode 100644 gateway/node_modules/graphql/polyfills/objectEntries.js delete mode 100644 gateway/node_modules/graphql/polyfills/objectEntries.js.flow delete mode 100644 gateway/node_modules/graphql/polyfills/objectEntries.mjs delete mode 100644 gateway/node_modules/graphql/polyfills/objectValues.js delete mode 100644 gateway/node_modules/graphql/polyfills/objectValues.js.flow delete mode 100644 gateway/node_modules/graphql/polyfills/objectValues.mjs delete mode 100644 gateway/node_modules/graphql/polyfills/symbols.js delete mode 100644 gateway/node_modules/graphql/polyfills/symbols.js.flow delete mode 100644 gateway/node_modules/graphql/polyfills/symbols.mjs delete mode 100644 gateway/node_modules/graphql/subscription/index.d.ts delete mode 100644 gateway/node_modules/graphql/subscription/index.js delete mode 100644 gateway/node_modules/graphql/subscription/index.js.flow delete mode 100644 gateway/node_modules/graphql/subscription/index.mjs delete mode 100644 gateway/node_modules/graphql/subscription/mapAsyncIterator.d.ts delete mode 100644 gateway/node_modules/graphql/subscription/mapAsyncIterator.js delete mode 100644 gateway/node_modules/graphql/subscription/mapAsyncIterator.js.flow delete mode 100644 gateway/node_modules/graphql/subscription/mapAsyncIterator.mjs delete mode 100644 gateway/node_modules/graphql/subscription/subscribe.d.ts delete mode 100644 gateway/node_modules/graphql/subscription/subscribe.js delete mode 100644 gateway/node_modules/graphql/subscription/subscribe.js.flow delete mode 100644 gateway/node_modules/graphql/subscription/subscribe.mjs delete mode 100644 gateway/node_modules/graphql/type/definition.d.ts delete mode 100644 gateway/node_modules/graphql/type/definition.js delete mode 100644 gateway/node_modules/graphql/type/definition.js.flow delete mode 100644 gateway/node_modules/graphql/type/definition.mjs delete mode 100644 gateway/node_modules/graphql/type/directives.d.ts delete mode 100644 gateway/node_modules/graphql/type/directives.js delete mode 100644 gateway/node_modules/graphql/type/directives.js.flow delete mode 100644 gateway/node_modules/graphql/type/directives.mjs delete mode 100644 gateway/node_modules/graphql/type/index.d.ts delete mode 100644 gateway/node_modules/graphql/type/index.js delete mode 100644 gateway/node_modules/graphql/type/index.js.flow delete mode 100644 gateway/node_modules/graphql/type/index.mjs delete mode 100644 gateway/node_modules/graphql/type/introspection.d.ts delete mode 100644 gateway/node_modules/graphql/type/introspection.js delete mode 100644 gateway/node_modules/graphql/type/introspection.js.flow delete mode 100644 gateway/node_modules/graphql/type/introspection.mjs delete mode 100644 gateway/node_modules/graphql/type/scalars.d.ts delete mode 100644 gateway/node_modules/graphql/type/scalars.js delete mode 100644 gateway/node_modules/graphql/type/scalars.js.flow delete mode 100644 gateway/node_modules/graphql/type/scalars.mjs delete mode 100644 gateway/node_modules/graphql/type/schema.d.ts delete mode 100644 gateway/node_modules/graphql/type/schema.js delete mode 100644 gateway/node_modules/graphql/type/schema.js.flow delete mode 100644 gateway/node_modules/graphql/type/schema.mjs delete mode 100644 gateway/node_modules/graphql/type/validate.d.ts delete mode 100644 gateway/node_modules/graphql/type/validate.js delete mode 100644 gateway/node_modules/graphql/type/validate.js.flow delete mode 100644 gateway/node_modules/graphql/type/validate.mjs delete mode 100644 gateway/node_modules/graphql/utilities/TypeInfo.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/TypeInfo.js delete mode 100644 gateway/node_modules/graphql/utilities/TypeInfo.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/TypeInfo.mjs delete mode 100644 gateway/node_modules/graphql/utilities/assertValidName.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/assertValidName.js delete mode 100644 gateway/node_modules/graphql/utilities/assertValidName.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/assertValidName.mjs delete mode 100644 gateway/node_modules/graphql/utilities/astFromValue.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/astFromValue.js delete mode 100644 gateway/node_modules/graphql/utilities/astFromValue.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/astFromValue.mjs delete mode 100644 gateway/node_modules/graphql/utilities/buildASTSchema.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/buildASTSchema.js delete mode 100644 gateway/node_modules/graphql/utilities/buildASTSchema.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/buildASTSchema.mjs delete mode 100644 gateway/node_modules/graphql/utilities/buildClientSchema.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/buildClientSchema.js delete mode 100644 gateway/node_modules/graphql/utilities/buildClientSchema.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/buildClientSchema.mjs delete mode 100644 gateway/node_modules/graphql/utilities/coerceInputValue.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/coerceInputValue.js delete mode 100644 gateway/node_modules/graphql/utilities/coerceInputValue.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/coerceInputValue.mjs delete mode 100644 gateway/node_modules/graphql/utilities/concatAST.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/concatAST.js delete mode 100644 gateway/node_modules/graphql/utilities/concatAST.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/concatAST.mjs delete mode 100644 gateway/node_modules/graphql/utilities/extendSchema.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/extendSchema.js delete mode 100644 gateway/node_modules/graphql/utilities/extendSchema.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/extendSchema.mjs delete mode 100644 gateway/node_modules/graphql/utilities/findBreakingChanges.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/findBreakingChanges.js delete mode 100644 gateway/node_modules/graphql/utilities/findBreakingChanges.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/findBreakingChanges.mjs delete mode 100644 gateway/node_modules/graphql/utilities/findDeprecatedUsages.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/findDeprecatedUsages.js delete mode 100644 gateway/node_modules/graphql/utilities/findDeprecatedUsages.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/findDeprecatedUsages.mjs delete mode 100644 gateway/node_modules/graphql/utilities/getIntrospectionQuery.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/getIntrospectionQuery.js delete mode 100644 gateway/node_modules/graphql/utilities/getIntrospectionQuery.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/getIntrospectionQuery.mjs delete mode 100644 gateway/node_modules/graphql/utilities/getOperationAST.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/getOperationAST.js delete mode 100644 gateway/node_modules/graphql/utilities/getOperationAST.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/getOperationAST.mjs delete mode 100644 gateway/node_modules/graphql/utilities/getOperationRootType.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/getOperationRootType.js delete mode 100644 gateway/node_modules/graphql/utilities/getOperationRootType.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/getOperationRootType.mjs delete mode 100644 gateway/node_modules/graphql/utilities/index.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/index.js delete mode 100644 gateway/node_modules/graphql/utilities/index.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/index.mjs delete mode 100644 gateway/node_modules/graphql/utilities/introspectionFromSchema.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/introspectionFromSchema.js delete mode 100644 gateway/node_modules/graphql/utilities/introspectionFromSchema.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/introspectionFromSchema.mjs delete mode 100644 gateway/node_modules/graphql/utilities/lexicographicSortSchema.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/lexicographicSortSchema.js delete mode 100644 gateway/node_modules/graphql/utilities/lexicographicSortSchema.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/lexicographicSortSchema.mjs delete mode 100644 gateway/node_modules/graphql/utilities/printSchema.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/printSchema.js delete mode 100644 gateway/node_modules/graphql/utilities/printSchema.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/printSchema.mjs delete mode 100644 gateway/node_modules/graphql/utilities/separateOperations.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/separateOperations.js delete mode 100644 gateway/node_modules/graphql/utilities/separateOperations.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/separateOperations.mjs delete mode 100644 gateway/node_modules/graphql/utilities/stripIgnoredCharacters.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/stripIgnoredCharacters.js delete mode 100644 gateway/node_modules/graphql/utilities/stripIgnoredCharacters.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/stripIgnoredCharacters.mjs delete mode 100644 gateway/node_modules/graphql/utilities/typeComparators.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/typeComparators.js delete mode 100644 gateway/node_modules/graphql/utilities/typeComparators.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/typeComparators.mjs delete mode 100644 gateway/node_modules/graphql/utilities/typeFromAST.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/typeFromAST.js delete mode 100644 gateway/node_modules/graphql/utilities/typeFromAST.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/typeFromAST.mjs delete mode 100644 gateway/node_modules/graphql/utilities/typedQueryDocumentNode.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/valueFromAST.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/valueFromAST.js delete mode 100644 gateway/node_modules/graphql/utilities/valueFromAST.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/valueFromAST.mjs delete mode 100644 gateway/node_modules/graphql/utilities/valueFromASTUntyped.d.ts delete mode 100644 gateway/node_modules/graphql/utilities/valueFromASTUntyped.js delete mode 100644 gateway/node_modules/graphql/utilities/valueFromASTUntyped.js.flow delete mode 100644 gateway/node_modules/graphql/utilities/valueFromASTUntyped.mjs delete mode 100644 gateway/node_modules/graphql/validation/ValidationContext.d.ts delete mode 100644 gateway/node_modules/graphql/validation/ValidationContext.js delete mode 100644 gateway/node_modules/graphql/validation/ValidationContext.js.flow delete mode 100644 gateway/node_modules/graphql/validation/ValidationContext.mjs delete mode 100644 gateway/node_modules/graphql/validation/index.d.ts delete mode 100644 gateway/node_modules/graphql/validation/index.js delete mode 100644 gateway/node_modules/graphql/validation/index.js.flow delete mode 100644 gateway/node_modules/graphql/validation/index.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/ExecutableDefinitions.js delete mode 100644 gateway/node_modules/graphql/validation/rules/ExecutableDefinitions.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/ExecutableDefinitions.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownArgumentNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownArgumentNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownDirectivesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownDirectivesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownDirectivesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownDirectivesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownFragmentNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownFragmentNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownTypeNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownTypeNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownTypeNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/KnownTypeNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneSchemaDefinition.js delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneSchemaDefinition.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/NoFragmentCyclesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/NoFragmentCyclesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUnusedVariablesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/NoUnusedVariablesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleTypeExtensions.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleTypeExtensions.js delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleTypeExtensions.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleTypeExtensions.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/ScalarLeafsRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/ScalarLeafsRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/ScalarLeafsRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectiveNames.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectiveNames.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectiveNames.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectiveNames.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueEnumValueNames.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueEnumValueNames.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueEnumValueNames.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueEnumValueNames.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationTypes.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationTypes.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationTypes.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationTypes.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationTypesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueOperationTypesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueTypeNames.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueTypeNames.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueTypeNames.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueTypeNames.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueTypeNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueTypeNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueVariableNamesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/UniqueVariableNamesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts delete mode 100644 gateway/node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js delete mode 100644 gateway/node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow delete mode 100644 gateway/node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs delete mode 100644 gateway/node_modules/graphql/validation/specifiedRules.d.ts delete mode 100644 gateway/node_modules/graphql/validation/specifiedRules.js delete mode 100644 gateway/node_modules/graphql/validation/specifiedRules.js.flow delete mode 100644 gateway/node_modules/graphql/validation/specifiedRules.mjs delete mode 100644 gateway/node_modules/graphql/validation/validate.d.ts delete mode 100644 gateway/node_modules/graphql/validation/validate.js delete mode 100644 gateway/node_modules/graphql/validation/validate.js.flow delete mode 100644 gateway/node_modules/graphql/validation/validate.mjs delete mode 100644 gateway/node_modules/graphql/version.d.ts delete mode 100644 gateway/node_modules/graphql/version.js delete mode 100644 gateway/node_modules/graphql/version.js.flow delete mode 100644 gateway/node_modules/graphql/version.mjs delete mode 100644 gateway/node_modules/has-flag/index.d.ts delete mode 100644 gateway/node_modules/has-flag/index.js delete mode 100644 gateway/node_modules/has-flag/license delete mode 100644 gateway/node_modules/has-flag/package.json delete mode 100644 gateway/node_modules/has-flag/readme.md delete mode 100644 gateway/node_modules/has-symbols/.eslintrc delete mode 100644 gateway/node_modules/has-symbols/.github/FUNDING.yml delete mode 100644 gateway/node_modules/has-symbols/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/has-symbols/.travis.yml delete mode 100644 gateway/node_modules/has-symbols/CHANGELOG.md delete mode 100644 gateway/node_modules/has-symbols/LICENSE delete mode 100644 gateway/node_modules/has-symbols/README.md delete mode 100644 gateway/node_modules/has-symbols/index.js delete mode 100644 gateway/node_modules/has-symbols/package.json delete mode 100644 gateway/node_modules/has-symbols/shams.js delete mode 100644 gateway/node_modules/has-symbols/test/index.js delete mode 100644 gateway/node_modules/has-symbols/test/shams/core-js.js delete mode 100644 gateway/node_modules/has-symbols/test/shams/get-own-property-symbols.js delete mode 100644 gateway/node_modules/has-symbols/test/tests.js delete mode 100644 gateway/node_modules/has-yarn/index.d.ts delete mode 100644 gateway/node_modules/has-yarn/index.js delete mode 100644 gateway/node_modules/has-yarn/license delete mode 100644 gateway/node_modules/has-yarn/package.json delete mode 100644 gateway/node_modules/has-yarn/readme.md delete mode 100644 gateway/node_modules/has/LICENSE-MIT delete mode 100644 gateway/node_modules/has/README.md delete mode 100644 gateway/node_modules/has/package.json delete mode 100644 gateway/node_modules/has/src/index.js delete mode 100644 gateway/node_modules/has/test/index.js delete mode 100644 gateway/node_modules/http-cache-semantics/LICENSE delete mode 100644 gateway/node_modules/http-cache-semantics/README.md delete mode 100644 gateway/node_modules/http-cache-semantics/index.js delete mode 100644 gateway/node_modules/http-cache-semantics/package.json delete mode 100644 gateway/node_modules/http-errors/HISTORY.md delete mode 100644 gateway/node_modules/http-errors/LICENSE delete mode 100644 gateway/node_modules/http-errors/README.md delete mode 100644 gateway/node_modules/http-errors/index.js delete mode 100644 gateway/node_modules/http-errors/node_modules/inherits/LICENSE delete mode 100644 gateway/node_modules/http-errors/node_modules/inherits/README.md delete mode 100644 gateway/node_modules/http-errors/node_modules/inherits/inherits.js delete mode 100644 gateway/node_modules/http-errors/node_modules/inherits/inherits_browser.js delete mode 100644 gateway/node_modules/http-errors/node_modules/inherits/package.json delete mode 100644 gateway/node_modules/http-errors/package.json delete mode 100644 gateway/node_modules/http-proxy-agent/README.md delete mode 100644 gateway/node_modules/http-proxy-agent/dist/agent.d.ts delete mode 100644 gateway/node_modules/http-proxy-agent/dist/agent.js delete mode 100644 gateway/node_modules/http-proxy-agent/dist/agent.js.map delete mode 100644 gateway/node_modules/http-proxy-agent/dist/index.d.ts delete mode 100644 gateway/node_modules/http-proxy-agent/dist/index.js delete mode 100644 gateway/node_modules/http-proxy-agent/dist/index.js.map delete mode 100644 gateway/node_modules/http-proxy-agent/node_modules/debug/LICENSE delete mode 100644 gateway/node_modules/http-proxy-agent/node_modules/debug/README.md delete mode 100644 gateway/node_modules/http-proxy-agent/node_modules/debug/package.json delete mode 100644 gateway/node_modules/http-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 gateway/node_modules/http-proxy-agent/node_modules/debug/src/common.js delete mode 100644 gateway/node_modules/http-proxy-agent/node_modules/debug/src/index.js delete mode 100644 gateway/node_modules/http-proxy-agent/node_modules/debug/src/node.js delete mode 100644 gateway/node_modules/http-proxy-agent/package.json delete mode 100644 gateway/node_modules/https-proxy-agent/README.md delete mode 100644 gateway/node_modules/https-proxy-agent/dist/agent.d.ts delete mode 100644 gateway/node_modules/https-proxy-agent/dist/agent.js delete mode 100644 gateway/node_modules/https-proxy-agent/dist/agent.js.map delete mode 100644 gateway/node_modules/https-proxy-agent/dist/index.d.ts delete mode 100644 gateway/node_modules/https-proxy-agent/dist/index.js delete mode 100644 gateway/node_modules/https-proxy-agent/dist/index.js.map delete mode 100644 gateway/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts delete mode 100644 gateway/node_modules/https-proxy-agent/dist/parse-proxy-response.js delete mode 100644 gateway/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map delete mode 100644 gateway/node_modules/https-proxy-agent/node_modules/debug/LICENSE delete mode 100644 gateway/node_modules/https-proxy-agent/node_modules/debug/README.md delete mode 100644 gateway/node_modules/https-proxy-agent/node_modules/debug/package.json delete mode 100644 gateway/node_modules/https-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 gateway/node_modules/https-proxy-agent/node_modules/debug/src/common.js delete mode 100644 gateway/node_modules/https-proxy-agent/node_modules/debug/src/index.js delete mode 100644 gateway/node_modules/https-proxy-agent/node_modules/debug/src/node.js delete mode 100644 gateway/node_modules/https-proxy-agent/package.json delete mode 100644 gateway/node_modules/humanize-ms/History.md delete mode 100644 gateway/node_modules/humanize-ms/LICENSE delete mode 100644 gateway/node_modules/humanize-ms/README.md delete mode 100644 gateway/node_modules/humanize-ms/index.js delete mode 100644 gateway/node_modules/humanize-ms/package.json delete mode 100644 gateway/node_modules/iconv-lite/Changelog.md delete mode 100644 gateway/node_modules/iconv-lite/LICENSE delete mode 100644 gateway/node_modules/iconv-lite/README.md delete mode 100644 gateway/node_modules/iconv-lite/encodings/dbcs-codec.js delete mode 100644 gateway/node_modules/iconv-lite/encodings/dbcs-data.js delete mode 100644 gateway/node_modules/iconv-lite/encodings/index.js delete mode 100644 gateway/node_modules/iconv-lite/encodings/internal.js delete mode 100644 gateway/node_modules/iconv-lite/encodings/sbcs-codec.js delete mode 100644 gateway/node_modules/iconv-lite/encodings/sbcs-data-generated.js delete mode 100644 gateway/node_modules/iconv-lite/encodings/sbcs-data.js delete mode 100644 gateway/node_modules/iconv-lite/encodings/tables/big5-added.json delete mode 100644 gateway/node_modules/iconv-lite/encodings/tables/cp936.json delete mode 100644 gateway/node_modules/iconv-lite/encodings/tables/cp949.json delete mode 100644 gateway/node_modules/iconv-lite/encodings/tables/cp950.json delete mode 100644 gateway/node_modules/iconv-lite/encodings/tables/eucjp.json delete mode 100644 gateway/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json delete mode 100644 gateway/node_modules/iconv-lite/encodings/tables/gbk-added.json delete mode 100644 gateway/node_modules/iconv-lite/encodings/tables/shiftjis.json delete mode 100644 gateway/node_modules/iconv-lite/encodings/utf16.js delete mode 100644 gateway/node_modules/iconv-lite/encodings/utf7.js delete mode 100644 gateway/node_modules/iconv-lite/lib/bom-handling.js delete mode 100644 gateway/node_modules/iconv-lite/lib/extend-node.js delete mode 100644 gateway/node_modules/iconv-lite/lib/index.d.ts delete mode 100644 gateway/node_modules/iconv-lite/lib/index.js delete mode 100644 gateway/node_modules/iconv-lite/lib/streams.js delete mode 100644 gateway/node_modules/iconv-lite/package.json delete mode 100644 gateway/node_modules/ignore-by-default/LICENSE delete mode 100644 gateway/node_modules/ignore-by-default/README.md delete mode 100644 gateway/node_modules/ignore-by-default/index.js delete mode 100644 gateway/node_modules/ignore-by-default/package.json delete mode 100644 gateway/node_modules/import-lazy/index.js delete mode 100644 gateway/node_modules/import-lazy/license delete mode 100644 gateway/node_modules/import-lazy/package.json delete mode 100644 gateway/node_modules/import-lazy/readme.md delete mode 100644 gateway/node_modules/imurmurhash/README.md delete mode 100644 gateway/node_modules/imurmurhash/imurmurhash.js delete mode 100644 gateway/node_modules/imurmurhash/imurmurhash.min.js delete mode 100644 gateway/node_modules/imurmurhash/package.json delete mode 100644 gateway/node_modules/indent-string/index.d.ts delete mode 100644 gateway/node_modules/indent-string/index.js delete mode 100644 gateway/node_modules/indent-string/license delete mode 100644 gateway/node_modules/indent-string/package.json delete mode 100644 gateway/node_modules/indent-string/readme.md delete mode 100644 gateway/node_modules/infer-owner/LICENSE delete mode 100644 gateway/node_modules/infer-owner/README.md delete mode 100644 gateway/node_modules/infer-owner/index.js delete mode 100644 gateway/node_modules/infer-owner/package.json delete mode 100644 gateway/node_modules/inflight/LICENSE delete mode 100644 gateway/node_modules/inflight/README.md delete mode 100644 gateway/node_modules/inflight/inflight.js delete mode 100644 gateway/node_modules/inflight/package.json delete mode 100644 gateway/node_modules/inherits/LICENSE delete mode 100644 gateway/node_modules/inherits/README.md delete mode 100644 gateway/node_modules/inherits/inherits.js delete mode 100644 gateway/node_modules/inherits/inherits_browser.js delete mode 100644 gateway/node_modules/inherits/package.json delete mode 100644 gateway/node_modules/ini/LICENSE delete mode 100644 gateway/node_modules/ini/README.md delete mode 100644 gateway/node_modules/ini/ini.js delete mode 100644 gateway/node_modules/ini/package.json delete mode 100644 gateway/node_modules/ip/.jscsrc delete mode 100644 gateway/node_modules/ip/.jshintrc delete mode 100644 gateway/node_modules/ip/.npmignore delete mode 100644 gateway/node_modules/ip/.travis.yml delete mode 100644 gateway/node_modules/ip/README.md delete mode 100644 gateway/node_modules/ip/lib/ip.js delete mode 100644 gateway/node_modules/ip/package.json delete mode 100644 gateway/node_modules/ip/test/api-test.js delete mode 100644 gateway/node_modules/ipaddr.js/LICENSE delete mode 100644 gateway/node_modules/ipaddr.js/README.md delete mode 100644 gateway/node_modules/ipaddr.js/ipaddr.min.js delete mode 100644 gateway/node_modules/ipaddr.js/lib/ipaddr.js delete mode 100644 gateway/node_modules/ipaddr.js/lib/ipaddr.js.d.ts delete mode 100644 gateway/node_modules/ipaddr.js/package.json delete mode 100644 gateway/node_modules/is-binary-path/index.d.ts delete mode 100644 gateway/node_modules/is-binary-path/index.js delete mode 100644 gateway/node_modules/is-binary-path/license delete mode 100644 gateway/node_modules/is-binary-path/package.json delete mode 100644 gateway/node_modules/is-binary-path/readme.md delete mode 100644 gateway/node_modules/is-callable/.editorconfig delete mode 100644 gateway/node_modules/is-callable/.eslintrc delete mode 100644 gateway/node_modules/is-callable/.github/FUNDING.yml delete mode 100644 gateway/node_modules/is-callable/.github/main.workflow delete mode 100644 gateway/node_modules/is-callable/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/is-callable/.istanbul.yml delete mode 100644 gateway/node_modules/is-callable/.travis.yml delete mode 100644 gateway/node_modules/is-callable/CHANGELOG.md delete mode 100644 gateway/node_modules/is-callable/LICENSE delete mode 100644 gateway/node_modules/is-callable/README.md delete mode 100644 gateway/node_modules/is-callable/index.js delete mode 100644 gateway/node_modules/is-callable/package.json delete mode 100644 gateway/node_modules/is-callable/test/index.js delete mode 100644 gateway/node_modules/is-ci/CHANGELOG.md delete mode 100644 gateway/node_modules/is-ci/LICENSE delete mode 100644 gateway/node_modules/is-ci/README.md delete mode 100755 gateway/node_modules/is-ci/bin.js delete mode 100644 gateway/node_modules/is-ci/index.js delete mode 100644 gateway/node_modules/is-ci/package.json delete mode 100644 gateway/node_modules/is-date-object/.eslintrc delete mode 100644 gateway/node_modules/is-date-object/.github/FUNDING.yml delete mode 100644 gateway/node_modules/is-date-object/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/is-date-object/.jscs.json delete mode 100644 gateway/node_modules/is-date-object/.travis.yml delete mode 100644 gateway/node_modules/is-date-object/CHANGELOG.md delete mode 100644 gateway/node_modules/is-date-object/LICENSE delete mode 100644 gateway/node_modules/is-date-object/README.md delete mode 100644 gateway/node_modules/is-date-object/index.js delete mode 100644 gateway/node_modules/is-date-object/package.json delete mode 100644 gateway/node_modules/is-date-object/test/index.js delete mode 100644 gateway/node_modules/is-extglob/LICENSE delete mode 100644 gateway/node_modules/is-extglob/README.md delete mode 100644 gateway/node_modules/is-extglob/index.js delete mode 100644 gateway/node_modules/is-extglob/package.json delete mode 100644 gateway/node_modules/is-fullwidth-code-point/index.d.ts delete mode 100644 gateway/node_modules/is-fullwidth-code-point/index.js delete mode 100644 gateway/node_modules/is-fullwidth-code-point/license delete mode 100644 gateway/node_modules/is-fullwidth-code-point/package.json delete mode 100644 gateway/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 gateway/node_modules/is-glob/LICENSE delete mode 100644 gateway/node_modules/is-glob/README.md delete mode 100644 gateway/node_modules/is-glob/index.js delete mode 100644 gateway/node_modules/is-glob/package.json delete mode 100644 gateway/node_modules/is-installed-globally/index.d.ts delete mode 100644 gateway/node_modules/is-installed-globally/index.js delete mode 100644 gateway/node_modules/is-installed-globally/license delete mode 100644 gateway/node_modules/is-installed-globally/package.json delete mode 100644 gateway/node_modules/is-installed-globally/readme.md delete mode 100644 gateway/node_modules/is-lambda/.npmignore delete mode 100644 gateway/node_modules/is-lambda/.travis.yml delete mode 100644 gateway/node_modules/is-lambda/LICENSE delete mode 100644 gateway/node_modules/is-lambda/README.md delete mode 100644 gateway/node_modules/is-lambda/index.js delete mode 100644 gateway/node_modules/is-lambda/package.json delete mode 100644 gateway/node_modules/is-lambda/test.js delete mode 100644 gateway/node_modules/is-negative-zero/.eslintrc delete mode 100644 gateway/node_modules/is-negative-zero/.jscs.json delete mode 100644 gateway/node_modules/is-negative-zero/.npmignore delete mode 100644 gateway/node_modules/is-negative-zero/.travis.yml delete mode 100644 gateway/node_modules/is-negative-zero/LICENSE delete mode 100644 gateway/node_modules/is-negative-zero/README.md delete mode 100644 gateway/node_modules/is-negative-zero/index.js delete mode 100644 gateway/node_modules/is-negative-zero/package.json delete mode 100644 gateway/node_modules/is-negative-zero/test.js delete mode 100644 gateway/node_modules/is-npm/index.d.ts delete mode 100644 gateway/node_modules/is-npm/index.js delete mode 100644 gateway/node_modules/is-npm/license delete mode 100644 gateway/node_modules/is-npm/package.json delete mode 100644 gateway/node_modules/is-npm/readme.md delete mode 100644 gateway/node_modules/is-number/LICENSE delete mode 100644 gateway/node_modules/is-number/README.md delete mode 100644 gateway/node_modules/is-number/index.js delete mode 100644 gateway/node_modules/is-number/package.json delete mode 100644 gateway/node_modules/is-obj/index.d.ts delete mode 100644 gateway/node_modules/is-obj/index.js delete mode 100644 gateway/node_modules/is-obj/license delete mode 100644 gateway/node_modules/is-obj/package.json delete mode 100644 gateway/node_modules/is-obj/readme.md delete mode 100644 gateway/node_modules/is-path-inside/index.d.ts delete mode 100644 gateway/node_modules/is-path-inside/index.js delete mode 100644 gateway/node_modules/is-path-inside/license delete mode 100644 gateway/node_modules/is-path-inside/package.json delete mode 100644 gateway/node_modules/is-path-inside/readme.md delete mode 100644 gateway/node_modules/is-regex/.editorconfig delete mode 100644 gateway/node_modules/is-regex/.eslintrc delete mode 100644 gateway/node_modules/is-regex/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/is-regex/.travis.yml delete mode 100644 gateway/node_modules/is-regex/CHANGELOG.md delete mode 100644 gateway/node_modules/is-regex/LICENSE delete mode 100644 gateway/node_modules/is-regex/README.md delete mode 100644 gateway/node_modules/is-regex/index.js delete mode 100644 gateway/node_modules/is-regex/package.json delete mode 100644 gateway/node_modules/is-regex/test/index.js delete mode 100644 gateway/node_modules/is-symbol/.editorconfig delete mode 100644 gateway/node_modules/is-symbol/.eslintrc delete mode 100644 gateway/node_modules/is-symbol/.github/FUNDING.yml delete mode 100644 gateway/node_modules/is-symbol/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/is-symbol/.nvmrc delete mode 100644 gateway/node_modules/is-symbol/.travis.yml delete mode 100644 gateway/node_modules/is-symbol/CHANGELOG.md delete mode 100644 gateway/node_modules/is-symbol/LICENSE delete mode 100644 gateway/node_modules/is-symbol/Makefile delete mode 100644 gateway/node_modules/is-symbol/README.md delete mode 100644 gateway/node_modules/is-symbol/index.js delete mode 100644 gateway/node_modules/is-symbol/package.json delete mode 100644 gateway/node_modules/is-symbol/test/index.js delete mode 100644 gateway/node_modules/is-typedarray/LICENSE.md delete mode 100644 gateway/node_modules/is-typedarray/README.md delete mode 100644 gateway/node_modules/is-typedarray/index.js delete mode 100644 gateway/node_modules/is-typedarray/package.json delete mode 100644 gateway/node_modules/is-typedarray/test.js delete mode 100644 gateway/node_modules/is-yarn-global/.travis.yml delete mode 100644 gateway/node_modules/is-yarn-global/LICENSE delete mode 100644 gateway/node_modules/is-yarn-global/README.md delete mode 100644 gateway/node_modules/is-yarn-global/index.js delete mode 100644 gateway/node_modules/is-yarn-global/package.json delete mode 100644 gateway/node_modules/iterall/LICENSE delete mode 100644 gateway/node_modules/iterall/README.md delete mode 100644 gateway/node_modules/iterall/index.d.ts delete mode 100644 gateway/node_modules/iterall/index.js delete mode 100644 gateway/node_modules/iterall/index.js.flow delete mode 100644 gateway/node_modules/iterall/index.mjs delete mode 100644 gateway/node_modules/iterall/package.json delete mode 100644 gateway/node_modules/json-buffer/.npmignore delete mode 100644 gateway/node_modules/json-buffer/.travis.yml delete mode 100644 gateway/node_modules/json-buffer/LICENSE delete mode 100644 gateway/node_modules/json-buffer/README.md delete mode 100644 gateway/node_modules/json-buffer/index.js delete mode 100644 gateway/node_modules/json-buffer/package.json delete mode 100644 gateway/node_modules/json-buffer/test/index.js delete mode 100644 gateway/node_modules/keyv/LICENSE delete mode 100644 gateway/node_modules/keyv/README.md delete mode 100644 gateway/node_modules/keyv/package.json delete mode 100644 gateway/node_modules/keyv/src/index.js delete mode 100644 gateway/node_modules/latest-version/index.d.ts delete mode 100644 gateway/node_modules/latest-version/index.js delete mode 100644 gateway/node_modules/latest-version/license delete mode 100644 gateway/node_modules/latest-version/package.json delete mode 100644 gateway/node_modules/latest-version/readme.md delete mode 100644 gateway/node_modules/lodash.sortby/LICENSE delete mode 100644 gateway/node_modules/lodash.sortby/README.md delete mode 100644 gateway/node_modules/lodash.sortby/index.js delete mode 100644 gateway/node_modules/lodash.sortby/package.json delete mode 100644 gateway/node_modules/lodash.xorby/LICENSE delete mode 100644 gateway/node_modules/lodash.xorby/README.md delete mode 100644 gateway/node_modules/lodash.xorby/index.js delete mode 100644 gateway/node_modules/lodash.xorby/package.json delete mode 100644 gateway/node_modules/loglevel/.editorconfig delete mode 100644 gateway/node_modules/loglevel/.github/FUNDING.yml delete mode 100644 gateway/node_modules/loglevel/.jshintrc delete mode 100644 gateway/node_modules/loglevel/.travis.yml delete mode 100644 gateway/node_modules/loglevel/CONTRIBUTING.md delete mode 100644 gateway/node_modules/loglevel/Gruntfile.js delete mode 100644 gateway/node_modules/loglevel/LICENSE-MIT delete mode 100644 gateway/node_modules/loglevel/README.md delete mode 100644 gateway/node_modules/loglevel/_config.yml delete mode 100644 gateway/node_modules/loglevel/bower.json delete mode 100644 gateway/node_modules/loglevel/dist/loglevel.js delete mode 100644 gateway/node_modules/loglevel/dist/loglevel.min.js delete mode 100644 gateway/node_modules/loglevel/index.d.ts delete mode 100644 gateway/node_modules/loglevel/lib/.jshintrc delete mode 100644 gateway/node_modules/loglevel/lib/loglevel.js delete mode 100644 gateway/node_modules/loglevel/package.json delete mode 100644 gateway/node_modules/loglevel/test/.jshintrc delete mode 100644 gateway/node_modules/loglevel/test/console-fallback-test.js delete mode 100644 gateway/node_modules/loglevel/test/cookie-test.js delete mode 100644 gateway/node_modules/loglevel/test/default-level-test.js delete mode 100644 gateway/node_modules/loglevel/test/get-current-level-test.js delete mode 100644 gateway/node_modules/loglevel/test/global-integration-with-new-context.js delete mode 100644 gateway/node_modules/loglevel/test/global-integration.js delete mode 100644 gateway/node_modules/loglevel/test/integration-smoke-test.js delete mode 100644 gateway/node_modules/loglevel/test/level-setting-test.js delete mode 100644 gateway/node_modules/loglevel/test/local-storage-test.js delete mode 100644 gateway/node_modules/loglevel/test/manual-test.html delete mode 100644 gateway/node_modules/loglevel/test/method-factory-test.js delete mode 100644 gateway/node_modules/loglevel/test/multiple-logger-test.js delete mode 100644 gateway/node_modules/loglevel/test/node-integration.js delete mode 100644 gateway/node_modules/loglevel/test/test-context-using-apply.js delete mode 100644 gateway/node_modules/loglevel/test/test-helpers.js delete mode 100644 gateway/node_modules/loglevel/test/test-qunit.html delete mode 100644 gateway/node_modules/loglevel/test/test-qunit.js delete mode 100644 gateway/node_modules/loglevel/test/type-test.ts delete mode 100644 gateway/node_modules/loglevel/test/vendor/json2.js delete mode 100644 gateway/node_modules/long/LICENSE delete mode 100644 gateway/node_modules/long/README.md delete mode 100644 gateway/node_modules/long/dist/long.js delete mode 100644 gateway/node_modules/long/dist/long.js.map delete mode 100644 gateway/node_modules/long/index.js delete mode 100644 gateway/node_modules/long/package.json delete mode 100644 gateway/node_modules/long/src/long.js delete mode 100644 gateway/node_modules/lowercase-keys/index.js delete mode 100644 gateway/node_modules/lowercase-keys/license delete mode 100644 gateway/node_modules/lowercase-keys/package.json delete mode 100644 gateway/node_modules/lowercase-keys/readme.md delete mode 100644 gateway/node_modules/lru-cache/LICENSE delete mode 100644 gateway/node_modules/lru-cache/README.md delete mode 100644 gateway/node_modules/lru-cache/index.js delete mode 100644 gateway/node_modules/lru-cache/node_modules/yallist/LICENSE delete mode 100644 gateway/node_modules/lru-cache/node_modules/yallist/README.md delete mode 100644 gateway/node_modules/lru-cache/node_modules/yallist/iterator.js delete mode 100644 gateway/node_modules/lru-cache/node_modules/yallist/package.json delete mode 100644 gateway/node_modules/lru-cache/node_modules/yallist/yallist.js delete mode 100644 gateway/node_modules/lru-cache/package.json delete mode 100644 gateway/node_modules/make-dir/index.d.ts delete mode 100644 gateway/node_modules/make-dir/index.js delete mode 100644 gateway/node_modules/make-dir/license delete mode 120000 gateway/node_modules/make-dir/node_modules/.bin/semver delete mode 100644 gateway/node_modules/make-dir/package.json delete mode 100644 gateway/node_modules/make-dir/readme.md delete mode 100644 gateway/node_modules/make-fetch-happen/CHANGELOG.md delete mode 100644 gateway/node_modules/make-fetch-happen/LICENSE delete mode 100644 gateway/node_modules/make-fetch-happen/README.md delete mode 100644 gateway/node_modules/make-fetch-happen/agent.js delete mode 100644 gateway/node_modules/make-fetch-happen/cache.js delete mode 100644 gateway/node_modules/make-fetch-happen/index.js delete mode 100644 gateway/node_modules/make-fetch-happen/node_modules/lru-cache/LICENSE delete mode 100644 gateway/node_modules/make-fetch-happen/node_modules/lru-cache/README.md delete mode 100644 gateway/node_modules/make-fetch-happen/node_modules/lru-cache/index.js delete mode 100644 gateway/node_modules/make-fetch-happen/node_modules/lru-cache/package.json delete mode 100644 gateway/node_modules/make-fetch-happen/package.json delete mode 100644 gateway/node_modules/make-fetch-happen/utils/configure-options.js delete mode 100644 gateway/node_modules/make-fetch-happen/utils/initialize-cache.js delete mode 100644 gateway/node_modules/make-fetch-happen/utils/is-header-conditional.js delete mode 100644 gateway/node_modules/make-fetch-happen/utils/iterable-to-object.js delete mode 100644 gateway/node_modules/make-fetch-happen/utils/make-policy.js delete mode 100644 gateway/node_modules/make-fetch-happen/warning.js delete mode 100644 gateway/node_modules/media-typer/HISTORY.md delete mode 100644 gateway/node_modules/media-typer/LICENSE delete mode 100644 gateway/node_modules/media-typer/README.md delete mode 100644 gateway/node_modules/media-typer/index.js delete mode 100644 gateway/node_modules/media-typer/package.json delete mode 100644 gateway/node_modules/merge-descriptors/HISTORY.md delete mode 100644 gateway/node_modules/merge-descriptors/LICENSE delete mode 100644 gateway/node_modules/merge-descriptors/README.md delete mode 100644 gateway/node_modules/merge-descriptors/index.js delete mode 100644 gateway/node_modules/merge-descriptors/package.json delete mode 100644 gateway/node_modules/methods/HISTORY.md delete mode 100644 gateway/node_modules/methods/LICENSE delete mode 100644 gateway/node_modules/methods/README.md delete mode 100644 gateway/node_modules/methods/index.js delete mode 100644 gateway/node_modules/methods/package.json delete mode 100644 gateway/node_modules/mime-db/HISTORY.md delete mode 100644 gateway/node_modules/mime-db/LICENSE delete mode 100644 gateway/node_modules/mime-db/README.md delete mode 100644 gateway/node_modules/mime-db/db.json delete mode 100644 gateway/node_modules/mime-db/index.js delete mode 100644 gateway/node_modules/mime-db/package.json delete mode 100644 gateway/node_modules/mime-types/HISTORY.md delete mode 100644 gateway/node_modules/mime-types/LICENSE delete mode 100644 gateway/node_modules/mime-types/README.md delete mode 100644 gateway/node_modules/mime-types/index.js delete mode 100644 gateway/node_modules/mime-types/package.json delete mode 100644 gateway/node_modules/mime/.npmignore delete mode 100644 gateway/node_modules/mime/CHANGELOG.md delete mode 100644 gateway/node_modules/mime/LICENSE delete mode 100644 gateway/node_modules/mime/README.md delete mode 100755 gateway/node_modules/mime/cli.js delete mode 100644 gateway/node_modules/mime/mime.js delete mode 100644 gateway/node_modules/mime/package.json delete mode 100755 gateway/node_modules/mime/src/build.js delete mode 100644 gateway/node_modules/mime/src/test.js delete mode 100644 gateway/node_modules/mime/types.json delete mode 100644 gateway/node_modules/mimic-response/index.js delete mode 100644 gateway/node_modules/mimic-response/license delete mode 100644 gateway/node_modules/mimic-response/package.json delete mode 100644 gateway/node_modules/mimic-response/readme.md delete mode 100644 gateway/node_modules/minimatch/LICENSE delete mode 100644 gateway/node_modules/minimatch/README.md delete mode 100644 gateway/node_modules/minimatch/minimatch.js delete mode 100644 gateway/node_modules/minimatch/package.json delete mode 100644 gateway/node_modules/minimist/.travis.yml delete mode 100644 gateway/node_modules/minimist/LICENSE delete mode 100644 gateway/node_modules/minimist/example/parse.js delete mode 100644 gateway/node_modules/minimist/index.js delete mode 100644 gateway/node_modules/minimist/package.json delete mode 100644 gateway/node_modules/minimist/readme.markdown delete mode 100644 gateway/node_modules/minimist/test/all_bool.js delete mode 100644 gateway/node_modules/minimist/test/bool.js delete mode 100644 gateway/node_modules/minimist/test/dash.js delete mode 100644 gateway/node_modules/minimist/test/default_bool.js delete mode 100644 gateway/node_modules/minimist/test/dotted.js delete mode 100644 gateway/node_modules/minimist/test/kv_short.js delete mode 100644 gateway/node_modules/minimist/test/long.js delete mode 100644 gateway/node_modules/minimist/test/num.js delete mode 100644 gateway/node_modules/minimist/test/parse.js delete mode 100644 gateway/node_modules/minimist/test/parse_modified.js delete mode 100644 gateway/node_modules/minimist/test/proto.js delete mode 100644 gateway/node_modules/minimist/test/short.js delete mode 100644 gateway/node_modules/minimist/test/stop_early.js delete mode 100644 gateway/node_modules/minimist/test/unknown.js delete mode 100644 gateway/node_modules/minimist/test/whitespace.js delete mode 100644 gateway/node_modules/minipass-collect/LICENSE delete mode 100644 gateway/node_modules/minipass-collect/README.md delete mode 100644 gateway/node_modules/minipass-collect/index.js delete mode 100644 gateway/node_modules/minipass-collect/package.json delete mode 100644 gateway/node_modules/minipass-fetch/LICENSE delete mode 100644 gateway/node_modules/minipass-fetch/README.md delete mode 100644 gateway/node_modules/minipass-fetch/index.js delete mode 100644 gateway/node_modules/minipass-fetch/lib/abort-error.js delete mode 100644 gateway/node_modules/minipass-fetch/lib/blob.js delete mode 100644 gateway/node_modules/minipass-fetch/lib/body.js delete mode 100644 gateway/node_modules/minipass-fetch/lib/fetch-error.js delete mode 100644 gateway/node_modules/minipass-fetch/lib/headers.js delete mode 100644 gateway/node_modules/minipass-fetch/lib/index.js delete mode 100644 gateway/node_modules/minipass-fetch/lib/request.js delete mode 100644 gateway/node_modules/minipass-fetch/lib/response.js delete mode 100644 gateway/node_modules/minipass-fetch/package.json delete mode 100644 gateway/node_modules/minipass-flush/LICENSE delete mode 100644 gateway/node_modules/minipass-flush/README.md delete mode 100644 gateway/node_modules/minipass-flush/index.js delete mode 100644 gateway/node_modules/minipass-flush/package.json delete mode 100644 gateway/node_modules/minipass-pipeline/LICENSE delete mode 100644 gateway/node_modules/minipass-pipeline/README.md delete mode 100644 gateway/node_modules/minipass-pipeline/index.js delete mode 100644 gateway/node_modules/minipass-pipeline/package.json delete mode 100644 gateway/node_modules/minipass-sized/.gitignore delete mode 100644 gateway/node_modules/minipass-sized/LICENSE delete mode 100644 gateway/node_modules/minipass-sized/README.md delete mode 100644 gateway/node_modules/minipass-sized/index.js delete mode 100644 gateway/node_modules/minipass-sized/package-lock.json delete mode 100644 gateway/node_modules/minipass-sized/package.json delete mode 100644 gateway/node_modules/minipass-sized/test/basic.js delete mode 100644 gateway/node_modules/minipass/LICENSE delete mode 100644 gateway/node_modules/minipass/README.md delete mode 100644 gateway/node_modules/minipass/index.js delete mode 100644 gateway/node_modules/minipass/package.json delete mode 100644 gateway/node_modules/minizlib/LICENSE delete mode 100644 gateway/node_modules/minizlib/README.md delete mode 100644 gateway/node_modules/minizlib/constants.js delete mode 100644 gateway/node_modules/minizlib/index.js delete mode 100644 gateway/node_modules/minizlib/package.json delete mode 100644 gateway/node_modules/mkdirp/CHANGELOG.md delete mode 100644 gateway/node_modules/mkdirp/LICENSE delete mode 100755 gateway/node_modules/mkdirp/bin/cmd.js delete mode 100644 gateway/node_modules/mkdirp/index.js delete mode 100644 gateway/node_modules/mkdirp/lib/find-made.js delete mode 100644 gateway/node_modules/mkdirp/lib/mkdirp-manual.js delete mode 100644 gateway/node_modules/mkdirp/lib/mkdirp-native.js delete mode 100644 gateway/node_modules/mkdirp/lib/opts-arg.js delete mode 100644 gateway/node_modules/mkdirp/lib/path-arg.js delete mode 100644 gateway/node_modules/mkdirp/lib/use-native.js delete mode 100644 gateway/node_modules/mkdirp/package.json delete mode 100644 gateway/node_modules/mkdirp/readme.markdown delete mode 100644 gateway/node_modules/ms/index.js delete mode 100644 gateway/node_modules/ms/license.md delete mode 100644 gateway/node_modules/ms/package.json delete mode 100644 gateway/node_modules/ms/readme.md delete mode 100644 gateway/node_modules/negotiator/HISTORY.md delete mode 100644 gateway/node_modules/negotiator/LICENSE delete mode 100644 gateway/node_modules/negotiator/README.md delete mode 100644 gateway/node_modules/negotiator/index.js delete mode 100644 gateway/node_modules/negotiator/lib/charset.js delete mode 100644 gateway/node_modules/negotiator/lib/encoding.js delete mode 100644 gateway/node_modules/negotiator/lib/language.js delete mode 100644 gateway/node_modules/negotiator/lib/mediaType.js delete mode 100644 gateway/node_modules/negotiator/package.json delete mode 100644 gateway/node_modules/node-fetch/CHANGELOG.md delete mode 100644 gateway/node_modules/node-fetch/LICENSE.md delete mode 100644 gateway/node_modules/node-fetch/README.md delete mode 100644 gateway/node_modules/node-fetch/browser.js delete mode 100644 gateway/node_modules/node-fetch/lib/index.es.js delete mode 100644 gateway/node_modules/node-fetch/lib/index.js delete mode 100644 gateway/node_modules/node-fetch/lib/index.mjs delete mode 100644 gateway/node_modules/node-fetch/package.json delete mode 100644 gateway/node_modules/nodemon/.eslintrc.json delete mode 100644 gateway/node_modules/nodemon/.jshintrc delete mode 100644 gateway/node_modules/nodemon/.travis.yml delete mode 100644 gateway/node_modules/nodemon/LICENSE delete mode 100644 gateway/node_modules/nodemon/README.md delete mode 100755 gateway/node_modules/nodemon/bin/nodemon.js delete mode 100755 gateway/node_modules/nodemon/bin/postinstall.js delete mode 100644 gateway/node_modules/nodemon/commitlint.config.js delete mode 100644 gateway/node_modules/nodemon/doc/cli/authors.txt delete mode 100644 gateway/node_modules/nodemon/doc/cli/config.txt delete mode 100644 gateway/node_modules/nodemon/doc/cli/help.txt delete mode 100644 gateway/node_modules/nodemon/doc/cli/logo.txt delete mode 100644 gateway/node_modules/nodemon/doc/cli/options.txt delete mode 100644 gateway/node_modules/nodemon/doc/cli/topics.txt delete mode 100644 gateway/node_modules/nodemon/doc/cli/usage.txt delete mode 100644 gateway/node_modules/nodemon/doc/cli/whoami.txt delete mode 100644 gateway/node_modules/nodemon/lib/cli/index.js delete mode 100644 gateway/node_modules/nodemon/lib/cli/parse.js delete mode 100644 gateway/node_modules/nodemon/lib/config/command.js delete mode 100644 gateway/node_modules/nodemon/lib/config/defaults.js delete mode 100644 gateway/node_modules/nodemon/lib/config/exec.js delete mode 100644 gateway/node_modules/nodemon/lib/config/index.js delete mode 100644 gateway/node_modules/nodemon/lib/config/load.js delete mode 100644 gateway/node_modules/nodemon/lib/help/index.js delete mode 100644 gateway/node_modules/nodemon/lib/index.js delete mode 100644 gateway/node_modules/nodemon/lib/monitor/index.js delete mode 100644 gateway/node_modules/nodemon/lib/monitor/match.js delete mode 100644 gateway/node_modules/nodemon/lib/monitor/run.js delete mode 100644 gateway/node_modules/nodemon/lib/monitor/signals.js delete mode 100644 gateway/node_modules/nodemon/lib/monitor/watch.js delete mode 100644 gateway/node_modules/nodemon/lib/nodemon.js delete mode 100644 gateway/node_modules/nodemon/lib/rules/add.js delete mode 100644 gateway/node_modules/nodemon/lib/rules/index.js delete mode 100644 gateway/node_modules/nodemon/lib/rules/parse.js delete mode 100644 gateway/node_modules/nodemon/lib/spawn.js delete mode 100644 gateway/node_modules/nodemon/lib/utils/bus.js delete mode 100644 gateway/node_modules/nodemon/lib/utils/clone.js delete mode 100644 gateway/node_modules/nodemon/lib/utils/colour.js delete mode 100644 gateway/node_modules/nodemon/lib/utils/index.js delete mode 100644 gateway/node_modules/nodemon/lib/utils/log.js delete mode 100644 gateway/node_modules/nodemon/lib/utils/merge.js delete mode 100644 gateway/node_modules/nodemon/lib/version.js delete mode 120000 gateway/node_modules/nodemon/node_modules/.bin/nodetouch delete mode 120000 gateway/node_modules/nodemon/node_modules/.bin/semver delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/CHANGELOG.md delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/LICENSE delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/README.md delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/dist/debug.js delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/node.js delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/package.json delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/src/browser.js delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/src/common.js delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/src/index.js delete mode 100644 gateway/node_modules/nodemon/node_modules/debug/src/node.js delete mode 100644 gateway/node_modules/nodemon/node_modules/has-flag/index.js delete mode 100644 gateway/node_modules/nodemon/node_modules/has-flag/license delete mode 100644 gateway/node_modules/nodemon/node_modules/has-flag/package.json delete mode 100644 gateway/node_modules/nodemon/node_modules/has-flag/readme.md delete mode 100644 gateway/node_modules/nodemon/node_modules/semver/CHANGELOG.md delete mode 100644 gateway/node_modules/nodemon/node_modules/semver/LICENSE delete mode 100644 gateway/node_modules/nodemon/node_modules/semver/README.md delete mode 100755 gateway/node_modules/nodemon/node_modules/semver/bin/semver delete mode 100644 gateway/node_modules/nodemon/node_modules/semver/package.json delete mode 100644 gateway/node_modules/nodemon/node_modules/semver/range.bnf delete mode 100644 gateway/node_modules/nodemon/node_modules/semver/semver.js delete mode 100644 gateway/node_modules/nodemon/node_modules/supports-color/browser.js delete mode 100644 gateway/node_modules/nodemon/node_modules/supports-color/index.js delete mode 100644 gateway/node_modules/nodemon/node_modules/supports-color/license delete mode 100644 gateway/node_modules/nodemon/node_modules/supports-color/package.json delete mode 100644 gateway/node_modules/nodemon/node_modules/supports-color/readme.md delete mode 100644 gateway/node_modules/nodemon/package.json delete mode 100644 gateway/node_modules/nopt/.gitignore delete mode 100644 gateway/node_modules/nopt/LICENSE delete mode 100644 gateway/node_modules/nopt/README.md delete mode 100755 gateway/node_modules/nopt/bin/nopt.js delete mode 100755 gateway/node_modules/nopt/examples/my-program.js delete mode 100644 gateway/node_modules/nopt/lib/nopt.js delete mode 100644 gateway/node_modules/nopt/package.json delete mode 100644 gateway/node_modules/normalize-path/LICENSE delete mode 100644 gateway/node_modules/normalize-path/README.md delete mode 100644 gateway/node_modules/normalize-path/index.js delete mode 100644 gateway/node_modules/normalize-path/package.json delete mode 100644 gateway/node_modules/normalize-url/index.d.ts delete mode 100644 gateway/node_modules/normalize-url/index.js delete mode 100644 gateway/node_modules/normalize-url/license delete mode 100644 gateway/node_modules/normalize-url/package.json delete mode 100644 gateway/node_modules/normalize-url/readme.md delete mode 100644 gateway/node_modules/object-assign/index.js delete mode 100644 gateway/node_modules/object-assign/license delete mode 100644 gateway/node_modules/object-assign/package.json delete mode 100644 gateway/node_modules/object-assign/readme.md delete mode 100644 gateway/node_modules/object-inspect/.eslintignore delete mode 100644 gateway/node_modules/object-inspect/.eslintrc delete mode 100644 gateway/node_modules/object-inspect/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/object-inspect/.nycrc delete mode 100644 gateway/node_modules/object-inspect/.travis.yml delete mode 100644 gateway/node_modules/object-inspect/LICENSE delete mode 100644 gateway/node_modules/object-inspect/example/all.js delete mode 100644 gateway/node_modules/object-inspect/example/circular.js delete mode 100644 gateway/node_modules/object-inspect/example/fn.js delete mode 100644 gateway/node_modules/object-inspect/example/inspect.js delete mode 100644 gateway/node_modules/object-inspect/index.js delete mode 100644 gateway/node_modules/object-inspect/package.json delete mode 100644 gateway/node_modules/object-inspect/readme.markdown delete mode 100644 gateway/node_modules/object-inspect/test-core-js.js delete mode 100644 gateway/node_modules/object-inspect/test/bigint.js delete mode 100644 gateway/node_modules/object-inspect/test/browser/dom.js delete mode 100644 gateway/node_modules/object-inspect/test/circular.js delete mode 100644 gateway/node_modules/object-inspect/test/deep.js delete mode 100644 gateway/node_modules/object-inspect/test/element.js delete mode 100644 gateway/node_modules/object-inspect/test/err.js delete mode 100644 gateway/node_modules/object-inspect/test/fn.js delete mode 100644 gateway/node_modules/object-inspect/test/has.js delete mode 100644 gateway/node_modules/object-inspect/test/holes.js delete mode 100644 gateway/node_modules/object-inspect/test/indent-option.js delete mode 100644 gateway/node_modules/object-inspect/test/inspect.js delete mode 100644 gateway/node_modules/object-inspect/test/lowbyte.js delete mode 100644 gateway/node_modules/object-inspect/test/number.js delete mode 100644 gateway/node_modules/object-inspect/test/quoteStyle.js delete mode 100644 gateway/node_modules/object-inspect/test/undef.js delete mode 100644 gateway/node_modules/object-inspect/test/values.js delete mode 100644 gateway/node_modules/object-inspect/util.inspect.js delete mode 100644 gateway/node_modules/object-keys/.editorconfig delete mode 100644 gateway/node_modules/object-keys/.eslintrc delete mode 100644 gateway/node_modules/object-keys/.travis.yml delete mode 100644 gateway/node_modules/object-keys/CHANGELOG.md delete mode 100644 gateway/node_modules/object-keys/LICENSE delete mode 100644 gateway/node_modules/object-keys/README.md delete mode 100644 gateway/node_modules/object-keys/implementation.js delete mode 100644 gateway/node_modules/object-keys/index.js delete mode 100644 gateway/node_modules/object-keys/isArguments.js delete mode 100644 gateway/node_modules/object-keys/package.json delete mode 100644 gateway/node_modules/object-keys/test/index.js delete mode 100755 gateway/node_modules/object-path/.travis.yml delete mode 100644 gateway/node_modules/object-path/LICENSE delete mode 100644 gateway/node_modules/object-path/README.md delete mode 100644 gateway/node_modules/object-path/benchmark.js delete mode 100644 gateway/node_modules/object-path/bower.json delete mode 100644 gateway/node_modules/object-path/component.json delete mode 100644 gateway/node_modules/object-path/index.js delete mode 100644 gateway/node_modules/object-path/package.json delete mode 100644 gateway/node_modules/object-path/test.js delete mode 100644 gateway/node_modules/object.assign/.editorconfig delete mode 100644 gateway/node_modules/object.assign/.eslintignore delete mode 100644 gateway/node_modules/object.assign/.eslintrc delete mode 100644 gateway/node_modules/object.assign/.github/FUNDING.yml delete mode 100644 gateway/node_modules/object.assign/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/object.assign/.github/workflows/require-allow-edits.yml delete mode 100644 gateway/node_modules/object.assign/.nycrc delete mode 100644 gateway/node_modules/object.assign/CHANGELOG.md delete mode 100644 gateway/node_modules/object.assign/LICENSE delete mode 100644 gateway/node_modules/object.assign/README.md delete mode 100644 gateway/node_modules/object.assign/auto.js delete mode 100644 gateway/node_modules/object.assign/dist/browser.js delete mode 100644 gateway/node_modules/object.assign/hasSymbols.js delete mode 100644 gateway/node_modules/object.assign/implementation.js delete mode 100644 gateway/node_modules/object.assign/index.js delete mode 100644 gateway/node_modules/object.assign/package.json delete mode 100644 gateway/node_modules/object.assign/polyfill.js delete mode 100644 gateway/node_modules/object.assign/shim.js delete mode 100644 gateway/node_modules/object.assign/test/index.js delete mode 100644 gateway/node_modules/object.assign/test/native.js delete mode 100644 gateway/node_modules/object.assign/test/ses-compat.js delete mode 100644 gateway/node_modules/object.assign/test/shimmed.js delete mode 100644 gateway/node_modules/object.assign/test/tests.js delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/.editorconfig delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/.eslintrc delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/.travis.yml delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/CHANGELOG.md delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/LICENSE delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/Makefile delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/README.md delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/auto.js delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/implementation.js delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/index.js delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/package.json delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/polyfill.js delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/shim.js delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/test/index.js delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/test/shimmed.js delete mode 100644 gateway/node_modules/object.getownpropertydescriptors/test/tests.js delete mode 100644 gateway/node_modules/on-finished/HISTORY.md delete mode 100644 gateway/node_modules/on-finished/LICENSE delete mode 100644 gateway/node_modules/on-finished/README.md delete mode 100644 gateway/node_modules/on-finished/index.js delete mode 100644 gateway/node_modules/on-finished/package.json delete mode 100644 gateway/node_modules/once/LICENSE delete mode 100644 gateway/node_modules/once/README.md delete mode 100644 gateway/node_modules/once/once.js delete mode 100644 gateway/node_modules/once/package.json delete mode 100644 gateway/node_modules/p-cancelable/index.d.ts delete mode 100644 gateway/node_modules/p-cancelable/index.js delete mode 100644 gateway/node_modules/p-cancelable/license delete mode 100644 gateway/node_modules/p-cancelable/package.json delete mode 100644 gateway/node_modules/p-cancelable/readme.md delete mode 100644 gateway/node_modules/p-map/index.d.ts delete mode 100644 gateway/node_modules/p-map/index.js delete mode 100644 gateway/node_modules/p-map/license delete mode 100644 gateway/node_modules/p-map/package.json delete mode 100644 gateway/node_modules/p-map/readme.md delete mode 100644 gateway/node_modules/package-json/index.d.ts delete mode 100644 gateway/node_modules/package-json/index.js delete mode 100644 gateway/node_modules/package-json/license delete mode 120000 gateway/node_modules/package-json/node_modules/.bin/semver delete mode 100644 gateway/node_modules/package-json/package.json delete mode 100644 gateway/node_modules/package-json/readme.md delete mode 100644 gateway/node_modules/parseurl/HISTORY.md delete mode 100644 gateway/node_modules/parseurl/LICENSE delete mode 100644 gateway/node_modules/parseurl/README.md delete mode 100644 gateway/node_modules/parseurl/index.js delete mode 100644 gateway/node_modules/parseurl/package.json delete mode 100644 gateway/node_modules/path-is-absolute/index.js delete mode 100644 gateway/node_modules/path-is-absolute/license delete mode 100644 gateway/node_modules/path-is-absolute/package.json delete mode 100644 gateway/node_modules/path-is-absolute/readme.md delete mode 100644 gateway/node_modules/path-to-regexp/History.md delete mode 100644 gateway/node_modules/path-to-regexp/LICENSE delete mode 100644 gateway/node_modules/path-to-regexp/Readme.md delete mode 100644 gateway/node_modules/path-to-regexp/index.js delete mode 100644 gateway/node_modules/path-to-regexp/package.json delete mode 100755 gateway/node_modules/picomatch/CHANGELOG.md delete mode 100755 gateway/node_modules/picomatch/LICENSE delete mode 100755 gateway/node_modules/picomatch/README.md delete mode 100755 gateway/node_modules/picomatch/index.js delete mode 100755 gateway/node_modules/picomatch/lib/constants.js delete mode 100755 gateway/node_modules/picomatch/lib/parse.js delete mode 100755 gateway/node_modules/picomatch/lib/picomatch.js delete mode 100755 gateway/node_modules/picomatch/lib/scan.js delete mode 100755 gateway/node_modules/picomatch/lib/utils.js delete mode 100755 gateway/node_modules/picomatch/package.json delete mode 100644 gateway/node_modules/prepend-http/index.js delete mode 100644 gateway/node_modules/prepend-http/license delete mode 100644 gateway/node_modules/prepend-http/package.json delete mode 100644 gateway/node_modules/prepend-http/readme.md delete mode 100644 gateway/node_modules/pretty-format/LICENSE delete mode 100755 gateway/node_modules/pretty-format/README.md delete mode 100644 gateway/node_modules/pretty-format/build/collections.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/collections.js delete mode 100644 gateway/node_modules/pretty-format/build/index.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/index.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/AsymmetricMatcher.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/AsymmetricMatcher.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/ConvertAnsi.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/ConvertAnsi.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/DOMCollection.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/DOMCollection.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/DOMElement.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/DOMElement.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/Immutable.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/Immutable.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/ReactElement.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/ReactElement.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/ReactTestComponent.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/ReactTestComponent.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/lib/escapeHTML.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/lib/escapeHTML.js delete mode 100644 gateway/node_modules/pretty-format/build/plugins/lib/markup.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/plugins/lib/markup.js delete mode 100644 gateway/node_modules/pretty-format/build/types.d.ts delete mode 100644 gateway/node_modules/pretty-format/build/types.js delete mode 100644 gateway/node_modules/pretty-format/package.json delete mode 100644 gateway/node_modules/promise-inflight/LICENSE delete mode 100644 gateway/node_modules/promise-inflight/README.md delete mode 100644 gateway/node_modules/promise-inflight/inflight.js delete mode 100644 gateway/node_modules/promise-inflight/package.json delete mode 100644 gateway/node_modules/promise-retry/.editorconfig delete mode 100644 gateway/node_modules/promise-retry/.jshintrc delete mode 100644 gateway/node_modules/promise-retry/.npmignore delete mode 100644 gateway/node_modules/promise-retry/.travis.yml delete mode 100644 gateway/node_modules/promise-retry/LICENSE delete mode 100644 gateway/node_modules/promise-retry/README.md delete mode 100644 gateway/node_modules/promise-retry/index.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/.npmignore delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/License delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/Makefile delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/README.md delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/equation.gif delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/example/dns.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/example/stop.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/index.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/lib/retry.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/lib/retry_operation.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/package.json delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/test/common.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/test/integration/test-forever.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-operation.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-wrap.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/test/integration/test-timeouts.js delete mode 100644 gateway/node_modules/promise-retry/node_modules/retry/test/runner.js delete mode 100644 gateway/node_modules/promise-retry/package.json delete mode 100644 gateway/node_modules/promise-retry/test/test.js delete mode 100644 gateway/node_modules/proxy-addr/HISTORY.md delete mode 100644 gateway/node_modules/proxy-addr/LICENSE delete mode 100644 gateway/node_modules/proxy-addr/README.md delete mode 100644 gateway/node_modules/proxy-addr/index.js delete mode 100644 gateway/node_modules/proxy-addr/package.json delete mode 100644 gateway/node_modules/pstree.remy/.travis.yml delete mode 100644 gateway/node_modules/pstree.remy/LICENSE delete mode 100644 gateway/node_modules/pstree.remy/README.md delete mode 100644 gateway/node_modules/pstree.remy/lib/index.js delete mode 100644 gateway/node_modules/pstree.remy/lib/tree.js delete mode 100644 gateway/node_modules/pstree.remy/lib/utils.js delete mode 100644 gateway/node_modules/pstree.remy/package.json delete mode 100644 gateway/node_modules/pstree.remy/tests/fixtures/index.js delete mode 100644 gateway/node_modules/pstree.remy/tests/fixtures/out1 delete mode 100644 gateway/node_modules/pstree.remy/tests/fixtures/out2 delete mode 100644 gateway/node_modules/pstree.remy/tests/index.test.js delete mode 100644 gateway/node_modules/pump/.travis.yml delete mode 100644 gateway/node_modules/pump/LICENSE delete mode 100644 gateway/node_modules/pump/README.md delete mode 100644 gateway/node_modules/pump/index.js delete mode 100644 gateway/node_modules/pump/package.json delete mode 100644 gateway/node_modules/pump/test-browser.js delete mode 100644 gateway/node_modules/pump/test-node.js delete mode 100644 gateway/node_modules/pupa/index.d.ts delete mode 100644 gateway/node_modules/pupa/index.js delete mode 100644 gateway/node_modules/pupa/license delete mode 100644 gateway/node_modules/pupa/package.json delete mode 100644 gateway/node_modules/pupa/readme.md delete mode 100644 gateway/node_modules/qs/.editorconfig delete mode 100644 gateway/node_modules/qs/.eslintignore delete mode 100644 gateway/node_modules/qs/.eslintrc delete mode 100644 gateway/node_modules/qs/CHANGELOG.md delete mode 100644 gateway/node_modules/qs/LICENSE delete mode 100644 gateway/node_modules/qs/README.md delete mode 100644 gateway/node_modules/qs/dist/qs.js delete mode 100644 gateway/node_modules/qs/lib/formats.js delete mode 100644 gateway/node_modules/qs/lib/index.js delete mode 100644 gateway/node_modules/qs/lib/parse.js delete mode 100644 gateway/node_modules/qs/lib/stringify.js delete mode 100644 gateway/node_modules/qs/lib/utils.js delete mode 100644 gateway/node_modules/qs/package.json delete mode 100644 gateway/node_modules/qs/test/.eslintrc delete mode 100644 gateway/node_modules/qs/test/index.js delete mode 100644 gateway/node_modules/qs/test/parse.js delete mode 100644 gateway/node_modules/qs/test/stringify.js delete mode 100644 gateway/node_modules/qs/test/utils.js delete mode 100644 gateway/node_modules/range-parser/HISTORY.md delete mode 100644 gateway/node_modules/range-parser/LICENSE delete mode 100644 gateway/node_modules/range-parser/README.md delete mode 100644 gateway/node_modules/range-parser/index.js delete mode 100644 gateway/node_modules/range-parser/package.json delete mode 100644 gateway/node_modules/raw-body/HISTORY.md delete mode 100644 gateway/node_modules/raw-body/LICENSE delete mode 100644 gateway/node_modules/raw-body/README.md delete mode 100644 gateway/node_modules/raw-body/index.d.ts delete mode 100644 gateway/node_modules/raw-body/index.js delete mode 100644 gateway/node_modules/raw-body/package.json delete mode 100644 gateway/node_modules/rc/LICENSE.APACHE2 delete mode 100644 gateway/node_modules/rc/LICENSE.BSD delete mode 100644 gateway/node_modules/rc/LICENSE.MIT delete mode 100644 gateway/node_modules/rc/README.md delete mode 100644 gateway/node_modules/rc/browser.js delete mode 100755 gateway/node_modules/rc/cli.js delete mode 100755 gateway/node_modules/rc/index.js delete mode 100644 gateway/node_modules/rc/lib/utils.js delete mode 100644 gateway/node_modules/rc/package.json delete mode 100644 gateway/node_modules/rc/test/ini.js delete mode 100644 gateway/node_modules/rc/test/nested-env-vars.js delete mode 100644 gateway/node_modules/rc/test/test.js delete mode 100644 gateway/node_modules/react-is/LICENSE delete mode 100644 gateway/node_modules/react-is/README.md delete mode 100644 gateway/node_modules/react-is/build-info.json delete mode 100644 gateway/node_modules/react-is/cjs/react-is.development.js delete mode 100644 gateway/node_modules/react-is/cjs/react-is.production.min.js delete mode 100644 gateway/node_modules/react-is/index.js delete mode 100644 gateway/node_modules/react-is/package.json delete mode 100644 gateway/node_modules/react-is/umd/react-is.development.js delete mode 100644 gateway/node_modules/react-is/umd/react-is.production.min.js delete mode 100644 gateway/node_modules/readdirp/LICENSE delete mode 100644 gateway/node_modules/readdirp/README.md delete mode 100644 gateway/node_modules/readdirp/index.d.ts delete mode 100644 gateway/node_modules/readdirp/index.js delete mode 100644 gateway/node_modules/readdirp/package.json delete mode 100644 gateway/node_modules/registry-auth-token/CHANGELOG.md delete mode 100644 gateway/node_modules/registry-auth-token/LICENSE delete mode 100644 gateway/node_modules/registry-auth-token/README.md delete mode 100644 gateway/node_modules/registry-auth-token/base64.js delete mode 100644 gateway/node_modules/registry-auth-token/index.js delete mode 120000 gateway/node_modules/registry-auth-token/node_modules/.bin/rc delete mode 100644 gateway/node_modules/registry-auth-token/package.json delete mode 100644 gateway/node_modules/registry-auth-token/registry-url.js delete mode 100644 gateway/node_modules/registry-url/index.d.ts delete mode 100644 gateway/node_modules/registry-url/index.js delete mode 100644 gateway/node_modules/registry-url/license delete mode 120000 gateway/node_modules/registry-url/node_modules/.bin/rc delete mode 100644 gateway/node_modules/registry-url/package.json delete mode 100644 gateway/node_modules/registry-url/readme.md delete mode 100644 gateway/node_modules/responselike/LICENSE delete mode 100644 gateway/node_modules/responselike/README.md delete mode 100644 gateway/node_modules/responselike/package.json delete mode 100644 gateway/node_modules/responselike/src/index.js delete mode 100644 gateway/node_modules/retry/.npmignore delete mode 100644 gateway/node_modules/retry/.travis.yml delete mode 100644 gateway/node_modules/retry/License delete mode 100644 gateway/node_modules/retry/Makefile delete mode 100644 gateway/node_modules/retry/README.md delete mode 100644 gateway/node_modules/retry/equation.gif delete mode 100644 gateway/node_modules/retry/example/dns.js delete mode 100644 gateway/node_modules/retry/example/stop.js delete mode 100644 gateway/node_modules/retry/index.js delete mode 100644 gateway/node_modules/retry/lib/retry.js delete mode 100644 gateway/node_modules/retry/lib/retry_operation.js delete mode 100644 gateway/node_modules/retry/package.json delete mode 100644 gateway/node_modules/retry/test/common.js delete mode 100644 gateway/node_modules/retry/test/integration/test-forever.js delete mode 100644 gateway/node_modules/retry/test/integration/test-retry-operation.js delete mode 100644 gateway/node_modules/retry/test/integration/test-retry-wrap.js delete mode 100644 gateway/node_modules/retry/test/integration/test-timeouts.js delete mode 100644 gateway/node_modules/rimraf/CHANGELOG.md delete mode 100644 gateway/node_modules/rimraf/LICENSE delete mode 100644 gateway/node_modules/rimraf/README.md delete mode 100755 gateway/node_modules/rimraf/bin.js delete mode 100644 gateway/node_modules/rimraf/package.json delete mode 100644 gateway/node_modules/rimraf/rimraf.js delete mode 100644 gateway/node_modules/safe-buffer/LICENSE delete mode 100644 gateway/node_modules/safe-buffer/README.md delete mode 100644 gateway/node_modules/safe-buffer/index.d.ts delete mode 100644 gateway/node_modules/safe-buffer/index.js delete mode 100644 gateway/node_modules/safe-buffer/package.json delete mode 100644 gateway/node_modules/safer-buffer/LICENSE delete mode 100644 gateway/node_modules/safer-buffer/Porting-Buffer.md delete mode 100644 gateway/node_modules/safer-buffer/Readme.md delete mode 100644 gateway/node_modules/safer-buffer/dangerous.js delete mode 100644 gateway/node_modules/safer-buffer/package.json delete mode 100644 gateway/node_modules/safer-buffer/safer.js delete mode 100644 gateway/node_modules/safer-buffer/tests.js delete mode 100644 gateway/node_modules/semver-diff/index.d.ts delete mode 100644 gateway/node_modules/semver-diff/index.js delete mode 100644 gateway/node_modules/semver-diff/license delete mode 120000 gateway/node_modules/semver-diff/node_modules/.bin/semver delete mode 100644 gateway/node_modules/semver-diff/package.json delete mode 100644 gateway/node_modules/semver-diff/readme.md delete mode 100644 gateway/node_modules/semver/CHANGELOG.md delete mode 100644 gateway/node_modules/semver/LICENSE delete mode 100644 gateway/node_modules/semver/README.md delete mode 100755 gateway/node_modules/semver/bin/semver.js delete mode 100644 gateway/node_modules/semver/package.json delete mode 100644 gateway/node_modules/semver/range.bnf delete mode 100644 gateway/node_modules/semver/semver.js delete mode 100644 gateway/node_modules/send/HISTORY.md delete mode 100644 gateway/node_modules/send/LICENSE delete mode 100644 gateway/node_modules/send/README.md delete mode 100644 gateway/node_modules/send/index.js delete mode 120000 gateway/node_modules/send/node_modules/.bin/mime delete mode 100644 gateway/node_modules/send/node_modules/http-errors/HISTORY.md delete mode 100644 gateway/node_modules/send/node_modules/http-errors/LICENSE delete mode 100644 gateway/node_modules/send/node_modules/http-errors/README.md delete mode 100644 gateway/node_modules/send/node_modules/http-errors/index.js delete mode 100644 gateway/node_modules/send/node_modules/http-errors/package.json delete mode 100644 gateway/node_modules/send/node_modules/ms/index.js delete mode 100644 gateway/node_modules/send/node_modules/ms/license.md delete mode 100644 gateway/node_modules/send/node_modules/ms/package.json delete mode 100644 gateway/node_modules/send/node_modules/ms/readme.md delete mode 100644 gateway/node_modules/send/package.json delete mode 100644 gateway/node_modules/serve-static/HISTORY.md delete mode 100644 gateway/node_modules/serve-static/LICENSE delete mode 100644 gateway/node_modules/serve-static/README.md delete mode 100644 gateway/node_modules/serve-static/index.js delete mode 100644 gateway/node_modules/serve-static/package.json delete mode 100644 gateway/node_modules/setprototypeof/LICENSE delete mode 100644 gateway/node_modules/setprototypeof/README.md delete mode 100644 gateway/node_modules/setprototypeof/index.d.ts delete mode 100644 gateway/node_modules/setprototypeof/index.js delete mode 100644 gateway/node_modules/setprototypeof/package.json delete mode 100644 gateway/node_modules/setprototypeof/test/index.js delete mode 100644 gateway/node_modules/sha.js/.travis.yml delete mode 100644 gateway/node_modules/sha.js/LICENSE delete mode 100644 gateway/node_modules/sha.js/README.md delete mode 100755 gateway/node_modules/sha.js/bin.js delete mode 100644 gateway/node_modules/sha.js/hash.js delete mode 100644 gateway/node_modules/sha.js/index.js delete mode 100644 gateway/node_modules/sha.js/node_modules/safe-buffer/LICENSE delete mode 100644 gateway/node_modules/sha.js/node_modules/safe-buffer/README.md delete mode 100644 gateway/node_modules/sha.js/node_modules/safe-buffer/index.d.ts delete mode 100644 gateway/node_modules/sha.js/node_modules/safe-buffer/index.js delete mode 100644 gateway/node_modules/sha.js/node_modules/safe-buffer/package.json delete mode 100644 gateway/node_modules/sha.js/package.json delete mode 100644 gateway/node_modules/sha.js/sha.js delete mode 100644 gateway/node_modules/sha.js/sha1.js delete mode 100644 gateway/node_modules/sha.js/sha224.js delete mode 100644 gateway/node_modules/sha.js/sha256.js delete mode 100644 gateway/node_modules/sha.js/sha384.js delete mode 100644 gateway/node_modules/sha.js/sha512.js delete mode 100644 gateway/node_modules/sha.js/test/hash.js delete mode 100644 gateway/node_modules/sha.js/test/test.js delete mode 100644 gateway/node_modules/sha.js/test/vectors.js delete mode 100644 gateway/node_modules/signal-exit/CHANGELOG.md delete mode 100644 gateway/node_modules/signal-exit/LICENSE.txt delete mode 100644 gateway/node_modules/signal-exit/README.md delete mode 100644 gateway/node_modules/signal-exit/index.js delete mode 100644 gateway/node_modules/signal-exit/package.json delete mode 100644 gateway/node_modules/signal-exit/signals.js delete mode 100644 gateway/node_modules/smart-buffer/.prettierrc.yaml delete mode 100644 gateway/node_modules/smart-buffer/.travis.yml delete mode 100644 gateway/node_modules/smart-buffer/LICENSE delete mode 100644 gateway/node_modules/smart-buffer/README.md delete mode 100644 gateway/node_modules/smart-buffer/build/smartbuffer.js delete mode 100644 gateway/node_modules/smart-buffer/build/smartbuffer.js.map delete mode 100644 gateway/node_modules/smart-buffer/build/utils.js delete mode 100644 gateway/node_modules/smart-buffer/build/utils.js.map delete mode 100644 gateway/node_modules/smart-buffer/docs/CHANGELOG.md delete mode 100644 gateway/node_modules/smart-buffer/docs/README_v3.md delete mode 100644 gateway/node_modules/smart-buffer/docs/ROADMAP.md delete mode 100644 gateway/node_modules/smart-buffer/package.json delete mode 100644 gateway/node_modules/smart-buffer/typings/smartbuffer.d.ts delete mode 100644 gateway/node_modules/smart-buffer/typings/utils.d.ts delete mode 100644 gateway/node_modules/socks-proxy-agent/README.md delete mode 100644 gateway/node_modules/socks-proxy-agent/dist/agent.d.ts delete mode 100644 gateway/node_modules/socks-proxy-agent/dist/agent.js delete mode 100644 gateway/node_modules/socks-proxy-agent/dist/agent.js.map delete mode 100644 gateway/node_modules/socks-proxy-agent/dist/index.d.ts delete mode 100644 gateway/node_modules/socks-proxy-agent/dist/index.js delete mode 100644 gateway/node_modules/socks-proxy-agent/dist/index.js.map delete mode 100644 gateway/node_modules/socks-proxy-agent/node_modules/debug/LICENSE delete mode 100644 gateway/node_modules/socks-proxy-agent/node_modules/debug/README.md delete mode 100644 gateway/node_modules/socks-proxy-agent/node_modules/debug/package.json delete mode 100644 gateway/node_modules/socks-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 gateway/node_modules/socks-proxy-agent/node_modules/debug/src/common.js delete mode 100644 gateway/node_modules/socks-proxy-agent/node_modules/debug/src/index.js delete mode 100644 gateway/node_modules/socks-proxy-agent/node_modules/debug/src/node.js delete mode 100644 gateway/node_modules/socks-proxy-agent/package.json delete mode 100644 gateway/node_modules/socks/.prettierrc.yaml delete mode 100644 gateway/node_modules/socks/.travis.yml delete mode 100644 gateway/node_modules/socks/LICENSE delete mode 100644 gateway/node_modules/socks/README.md delete mode 100644 gateway/node_modules/socks/build/client/socksclient.js delete mode 100644 gateway/node_modules/socks/build/client/socksclient.js.map delete mode 100644 gateway/node_modules/socks/build/common/constants.js delete mode 100644 gateway/node_modules/socks/build/common/constants.js.map delete mode 100644 gateway/node_modules/socks/build/common/helpers.js delete mode 100644 gateway/node_modules/socks/build/common/helpers.js.map delete mode 100644 gateway/node_modules/socks/build/common/receivebuffer.js delete mode 100644 gateway/node_modules/socks/build/common/receivebuffer.js.map delete mode 100644 gateway/node_modules/socks/build/common/util.js delete mode 100644 gateway/node_modules/socks/build/common/util.js.map delete mode 100644 gateway/node_modules/socks/build/index.js delete mode 100644 gateway/node_modules/socks/build/index.js.map delete mode 100644 gateway/node_modules/socks/docs/examples/index.md delete mode 100644 gateway/node_modules/socks/docs/examples/javascript/associateExample.md delete mode 100644 gateway/node_modules/socks/docs/examples/javascript/bindExample.md delete mode 100644 gateway/node_modules/socks/docs/examples/javascript/connectExample.md delete mode 100644 gateway/node_modules/socks/docs/examples/typescript/associateExample.md delete mode 100644 gateway/node_modules/socks/docs/examples/typescript/bindExample.md delete mode 100644 gateway/node_modules/socks/docs/examples/typescript/connectExample.md delete mode 100644 gateway/node_modules/socks/docs/index.md delete mode 100644 gateway/node_modules/socks/docs/migratingFromV1.md delete mode 100644 gateway/node_modules/socks/package.json delete mode 100644 gateway/node_modules/socks/typings/client/socksclient.d.ts delete mode 100644 gateway/node_modules/socks/typings/common/constants.d.ts delete mode 100644 gateway/node_modules/socks/typings/common/helpers.d.ts delete mode 100644 gateway/node_modules/socks/typings/common/receivebuffer.d.ts delete mode 100644 gateway/node_modules/socks/typings/common/util.d.ts delete mode 100644 gateway/node_modules/socks/typings/index.d.ts delete mode 100644 gateway/node_modules/ssri/CHANGELOG.md delete mode 100644 gateway/node_modules/ssri/LICENSE.md delete mode 100644 gateway/node_modules/ssri/README.md delete mode 100644 gateway/node_modules/ssri/index.js delete mode 100644 gateway/node_modules/ssri/package.json delete mode 100644 gateway/node_modules/statuses/HISTORY.md delete mode 100644 gateway/node_modules/statuses/LICENSE delete mode 100644 gateway/node_modules/statuses/README.md delete mode 100644 gateway/node_modules/statuses/codes.json delete mode 100644 gateway/node_modules/statuses/index.js delete mode 100644 gateway/node_modules/statuses/package.json delete mode 100644 gateway/node_modules/streamsearch/LICENSE delete mode 100644 gateway/node_modules/streamsearch/README.md delete mode 100644 gateway/node_modules/streamsearch/lib/sbmh.js delete mode 100644 gateway/node_modules/streamsearch/package.json delete mode 100644 gateway/node_modules/string-width/index.d.ts delete mode 100644 gateway/node_modules/string-width/index.js delete mode 100644 gateway/node_modules/string-width/license delete mode 100644 gateway/node_modules/string-width/package.json delete mode 100644 gateway/node_modules/string-width/readme.md delete mode 100644 gateway/node_modules/string.prototype.trimend/.editorconfig delete mode 100644 gateway/node_modules/string.prototype.trimend/.eslintrc delete mode 100644 gateway/node_modules/string.prototype.trimend/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/string.prototype.trimend/.github/workflows/require-allow-edits.yml delete mode 100644 gateway/node_modules/string.prototype.trimend/.travis.yml delete mode 100644 gateway/node_modules/string.prototype.trimend/CHANGELOG.md delete mode 100644 gateway/node_modules/string.prototype.trimend/LICENSE delete mode 100644 gateway/node_modules/string.prototype.trimend/README.md delete mode 100644 gateway/node_modules/string.prototype.trimend/auto.js delete mode 100644 gateway/node_modules/string.prototype.trimend/implementation.js delete mode 100644 gateway/node_modules/string.prototype.trimend/index.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.editorconfig delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.eslintignore delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.eslintrc delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.gitattributes delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.github/FUNDING.yml delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.github/workflows/codeql-analysis.yml delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.nycrc delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/.travis.yml delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/EnumerableOwnNames.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2015/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/EnumerableOwnNames.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IterableToArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/SameValueNonNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2016/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/EnumerableOwnProperties.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IterableToList.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/SameValueNonNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/StringGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2017/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CopyDataProperties.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/DateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IsStringPrefix.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IterableToList.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/NumberToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/PromiseResolve.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SameValueNonNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SetFunctionLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/StringGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/TimeString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/UnicodeEscape.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/thisSymbolValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2018/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/AddEntriesFromIterable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CopyDataProperties.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/DateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/FlattenIntoArray.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IsStringPrefix.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IterableToList.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/NumberToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/PromiseResolve.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SameValueNonNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SetFunctionLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/StringGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/TimeString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/TrimString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/UnicodeEscape.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/thisSymbolValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2019/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/AddEntriesFromIterable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/BigIntBitwiseOp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/BinaryAnd.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/BinaryOr.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/BinaryXor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CodePointAt.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CopyDataProperties.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/DateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/FlattenIntoArray.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsBigIntElementType.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsNoTearConfiguration.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsNonNegativeInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsStringPrefix.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsUnclampedIntegerElementType.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IsUnsignedElementType.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IterableToList.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/LengthOfArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/NumberBitwiseOp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/OrdinaryObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/PromiseResolve.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SameValueNonNumeric.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SetFunctionLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/StringGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/StringPad.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/TimeString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToNumeric.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/TrimString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/UTF16DecodeString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/UTF16DecodeSurrogatePair.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/UnicodeEscape.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/thisBigIntValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/thisSymbolValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/2020/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/CheckObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/5/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/CHANGELOG.md delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/GetIntrinsic.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/LICENSE delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/README.md delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es2015.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es2016.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es2017.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es2018.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es2019.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es2020.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es5.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es6.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/es7.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/DefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/OwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/assertRecord.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/assign.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/callBind.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/callBound.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/every.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/forEach.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/getInferredName.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/getIteratorMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/getProto.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/getSymbolDescription.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/isFinite.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/isLeadingSurrogate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/isNaN.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/isPrefixOf.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/isPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/isPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/isTrailingSurrogate.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/maxSafeInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/mod.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/padTimeComponent.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/regexTester.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/setProto.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/sign.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/helpers/timeConstants.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/index.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/operations/.eslintrc delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/operations/2015.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/operations/2016.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/operations/2017.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/operations/2018.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/operations/2019.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/package.json delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/GetIntrinsic.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/diffOps.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es2015.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es2016.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es2017.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es2018.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es2019.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es2020.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es5.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es6.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/es7.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/helpers/assertRecord.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/helpers/createBoundESNamespace.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/helpers/defineProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/helpers/getSymbolDescription.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/helpers/runManifestTest.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/helpers/values.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/index.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/ses-compat.js delete mode 100644 gateway/node_modules/string.prototype.trimend/node_modules/es-abstract/test/tests.js delete mode 100644 gateway/node_modules/string.prototype.trimend/package.json delete mode 100644 gateway/node_modules/string.prototype.trimend/polyfill.js delete mode 100644 gateway/node_modules/string.prototype.trimend/shim.js delete mode 100644 gateway/node_modules/string.prototype.trimend/test/index.js delete mode 100644 gateway/node_modules/string.prototype.trimend/test/shimmed.js delete mode 100644 gateway/node_modules/string.prototype.trimend/test/tests.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/.editorconfig delete mode 100644 gateway/node_modules/string.prototype.trimstart/.eslintrc delete mode 100644 gateway/node_modules/string.prototype.trimstart/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/string.prototype.trimstart/.github/workflows/require-allow-edits.yml delete mode 100644 gateway/node_modules/string.prototype.trimstart/.travis.yml delete mode 100644 gateway/node_modules/string.prototype.trimstart/CHANGELOG.md delete mode 100644 gateway/node_modules/string.prototype.trimstart/LICENSE delete mode 100644 gateway/node_modules/string.prototype.trimstart/README.md delete mode 100644 gateway/node_modules/string.prototype.trimstart/auto.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/implementation.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/index.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.editorconfig delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.eslintignore delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.eslintrc delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.gitattributes delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.github/FUNDING.yml delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.github/workflows/codeql-analysis.yml delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.nycrc delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/.travis.yml delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/EnumerableOwnNames.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2015/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/EnumerableOwnNames.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IterableToArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/SameValueNonNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2016/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/EnumerableOwnProperties.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IterableToList.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/SameValueNonNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/StringGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2017/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CopyDataProperties.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/DateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IsStringPrefix.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IterableToList.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/NumberToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/PromiseResolve.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SameValueNonNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SetFunctionLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/StringGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/TimeString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/UnicodeEscape.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/thisSymbolValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2018/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/AddEntriesFromIterable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CopyDataProperties.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/DateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/FlattenIntoArray.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IsStringPrefix.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IterableToList.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/NumberToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/PromiseResolve.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SameValueNonNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SetFunctionLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/StringGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/TimeString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/TrimString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/UnicodeEscape.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/thisSymbolValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2019/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/AddEntriesFromIterable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/AdvanceStringIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ArrayCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ArraySetLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ArraySpeciesCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/BigIntBitwiseOp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/BinaryAnd.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/BinaryOr.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/BinaryXor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/Call.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CanonicalNumericIndexString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CodePointAt.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CompletePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CopyDataProperties.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CreateDataProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CreateHTML.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CreateIterResultObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CreateListFromArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/CreateMethodProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/DateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/DefinePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/DeletePropertyOrThrow.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/FlattenIntoArray.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/Get.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/GetIterator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/GetMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/GetOwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/GetSubstitution.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/GetV.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/HasOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/HasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/InstanceofOperator.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/Invoke.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsArray.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsBigIntElementType.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsConcatSpreadable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsExtensible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsNoTearConfiguration.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsNonNegativeInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsPromise.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsRegExp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsStringPrefix.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsUnclampedIntegerElementType.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IsUnsignedElementType.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IterableToList.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IteratorClose.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IteratorComplete.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IteratorNext.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IteratorStep.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/IteratorValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/LengthOfArrayLike.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/NumberBitwiseOp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/OrdinaryCreateFromConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/OrdinaryHasInstance.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/OrdinaryHasProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/OrdinaryObjectCreate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/PromiseResolve.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/QuoteJSONString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/RegExpExec.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/RequireObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SameValueNonNumeric.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SameValueZero.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/Set.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SetFunctionLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SetFunctionName.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SetIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SpeciesConstructor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/StringGetOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/StringPad.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/SymbolDescriptiveString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/TestIntegrityLevel.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/TimeString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToDateString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToIndex.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToInt16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToInt8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToLength.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToNumeric.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToPropertyKey.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToUint8.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ToUint8Clamp.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/TrimString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/UTF16DecodeString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/UTF16DecodeSurrogatePair.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/UTF16Encoding.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/UnicodeEscape.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/thisBigIntValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/thisBooleanValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/thisNumberValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/thisStringValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/thisSymbolValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/2020/thisTimeValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/AbstractEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/AbstractRelationalComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/CheckObjectCoercible.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/DateFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/Day.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/DayFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/DayWithinYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/DaysInYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/FromPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/HourFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/InLeapYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/IsAccessorDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/IsCallable.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/IsDataDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/IsGenericDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/IsPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/MakeDate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/MakeDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/MakeTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/MinFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/MonthFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/SameValue.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/SecFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/StrictEqualityComparison.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/TimeClip.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/TimeFromYear.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/TimeWithinDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToBoolean.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToInt32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToNumber.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToObject.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToString.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToUint16.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/ToUint32.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/Type.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/WeekDay.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/YearFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/abs.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/floor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/modulo.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/5/msFromTime.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/CHANGELOG.md delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/GetIntrinsic.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/LICENSE delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/README.md delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es2015.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es2016.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es2017.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es2018.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es2019.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es2020.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es5.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es6.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/es7.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/DefineOwnProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/OwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/assertRecord.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/assign.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/callBind.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/callBound.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/every.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/forEach.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/getInferredName.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/getIteratorMethod.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/getProto.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/getSymbolDescription.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/isFinite.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/isLeadingSurrogate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/isNaN.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/isPrefixOf.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/isPrimitive.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/isPropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/isTrailingSurrogate.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/maxSafeInteger.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/mod.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/padTimeComponent.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/regexTester.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/setProto.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/sign.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/helpers/timeConstants.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/index.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/operations/.eslintrc delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/operations/2015.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/operations/2016.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/operations/2017.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/operations/2018.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/operations/2019.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/package.json delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/GetIntrinsic.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/diffOps.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es2015.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es2016.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es2017.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es2018.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es2019.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es2020.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es5.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es6.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/es7.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/helpers/assertRecord.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/helpers/createBoundESNamespace.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/helpers/defineProperty.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/helpers/getSymbolDescription.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/helpers/runManifestTest.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/helpers/values.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/index.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/ses-compat.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/node_modules/es-abstract/test/tests.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/package.json delete mode 100644 gateway/node_modules/string.prototype.trimstart/polyfill.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/shim.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/test/index.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/test/shimmed.js delete mode 100644 gateway/node_modules/string.prototype.trimstart/test/tests.js delete mode 100644 gateway/node_modules/strip-ansi/index.d.ts delete mode 100644 gateway/node_modules/strip-ansi/index.js delete mode 100644 gateway/node_modules/strip-ansi/license delete mode 100644 gateway/node_modules/strip-ansi/package.json delete mode 100644 gateway/node_modules/strip-ansi/readme.md delete mode 100644 gateway/node_modules/strip-json-comments/index.js delete mode 100644 gateway/node_modules/strip-json-comments/license delete mode 100644 gateway/node_modules/strip-json-comments/package.json delete mode 100644 gateway/node_modules/strip-json-comments/readme.md delete mode 100644 gateway/node_modules/subscriptions-transport-ws/AUTHORS delete mode 100644 gateway/node_modules/subscriptions-transport-ws/CHANGELOG.md delete mode 100644 gateway/node_modules/subscriptions-transport-ws/CONTRIBUTING.md delete mode 100644 gateway/node_modules/subscriptions-transport-ws/LICENSE delete mode 100644 gateway/node_modules/subscriptions-transport-ws/PROTOCOL.md delete mode 100644 gateway/node_modules/subscriptions-transport-ws/README.md delete mode 100644 gateway/node_modules/subscriptions-transport-ws/browser/client.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/client.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/client.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/client.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/defaults.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/defaults.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/defaults.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/index.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/index.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/index.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/legacy/parse-legacy-protocol.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/legacy/parse-legacy-protocol.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/legacy/parse-legacy-protocol.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/message-types.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/message-types.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/message-types.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/protocol.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/protocol.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/protocol.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/server.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/server.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/server.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/empty-iterable.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/empty-iterable.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/empty-iterable.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-object.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-object.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-object.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-string.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-string.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-string.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-subscriptions.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-subscriptions.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/dist/utils/is-subscriptions.js.map delete mode 100644 gateway/node_modules/subscriptions-transport-ws/netlify.toml delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/LICENSE delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/README.md delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/index.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/buffer-util.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/constants.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/event-target.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/extension.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/permessage-deflate.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/receiver.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/sender.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/validation.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/websocket-server.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/lib/websocket.js delete mode 100644 gateway/node_modules/subscriptions-transport-ws/node_modules/ws/package.json delete mode 100644 gateway/node_modules/subscriptions-transport-ws/package.json delete mode 100644 gateway/node_modules/subscriptions-transport-ws/renovate.json delete mode 100644 gateway/node_modules/subscriptions-transport-ws/tsconfig.json delete mode 100644 gateway/node_modules/subscriptions-transport-ws/tslint.json delete mode 100644 gateway/node_modules/subscriptions-transport-ws/typings.d.ts delete mode 100644 gateway/node_modules/subscriptions-transport-ws/unpkg-webpack.config.js delete mode 100644 gateway/node_modules/supports-color/browser.js delete mode 100644 gateway/node_modules/supports-color/index.js delete mode 100644 gateway/node_modules/supports-color/license delete mode 100644 gateway/node_modules/supports-color/package.json delete mode 100644 gateway/node_modules/supports-color/readme.md delete mode 100644 gateway/node_modules/symbol-observable/CHANGELOG.md delete mode 100644 gateway/node_modules/symbol-observable/es/index.js delete mode 100644 gateway/node_modules/symbol-observable/es/ponyfill.js delete mode 100644 gateway/node_modules/symbol-observable/index.d.ts delete mode 100644 gateway/node_modules/symbol-observable/index.js delete mode 100644 gateway/node_modules/symbol-observable/lib/index.js delete mode 100644 gateway/node_modules/symbol-observable/lib/ponyfill.js delete mode 100644 gateway/node_modules/symbol-observable/license delete mode 100644 gateway/node_modules/symbol-observable/package.json delete mode 100644 gateway/node_modules/symbol-observable/readme.md delete mode 100644 gateway/node_modules/tar/CHANGELOG.md delete mode 100644 gateway/node_modules/tar/LICENSE delete mode 100644 gateway/node_modules/tar/README.md delete mode 100644 gateway/node_modules/tar/index.js delete mode 100644 gateway/node_modules/tar/lib/create.js delete mode 100644 gateway/node_modules/tar/lib/extract.js delete mode 100644 gateway/node_modules/tar/lib/get-write-flag.js delete mode 100644 gateway/node_modules/tar/lib/header.js delete mode 100644 gateway/node_modules/tar/lib/high-level-opt.js delete mode 100644 gateway/node_modules/tar/lib/large-numbers.js delete mode 100644 gateway/node_modules/tar/lib/list.js delete mode 100644 gateway/node_modules/tar/lib/mkdir.js delete mode 100644 gateway/node_modules/tar/lib/mode-fix.js delete mode 100644 gateway/node_modules/tar/lib/pack.js delete mode 100644 gateway/node_modules/tar/lib/parse.js delete mode 100644 gateway/node_modules/tar/lib/path-reservations.js delete mode 100644 gateway/node_modules/tar/lib/pax.js delete mode 100644 gateway/node_modules/tar/lib/read-entry.js delete mode 100644 gateway/node_modules/tar/lib/replace.js delete mode 100644 gateway/node_modules/tar/lib/types.js delete mode 100644 gateway/node_modules/tar/lib/unpack.js delete mode 100644 gateway/node_modules/tar/lib/update.js delete mode 100644 gateway/node_modules/tar/lib/warn-mixin.js delete mode 100644 gateway/node_modules/tar/lib/winchars.js delete mode 100644 gateway/node_modules/tar/lib/write-entry.js delete mode 120000 gateway/node_modules/tar/node_modules/.bin/mkdirp delete mode 100644 gateway/node_modules/tar/package.json delete mode 100644 gateway/node_modules/term-size/index.d.ts delete mode 100644 gateway/node_modules/term-size/index.js delete mode 100644 gateway/node_modules/term-size/license delete mode 100644 gateway/node_modules/term-size/package.json delete mode 100644 gateway/node_modules/term-size/readme.md delete mode 100644 gateway/node_modules/term-size/vendor/.DS_Store delete mode 100644 gateway/node_modules/term-size/vendor/macos/.DS_Store delete mode 100755 gateway/node_modules/term-size/vendor/macos/term-size delete mode 100644 gateway/node_modules/term-size/vendor/windows/term-size.exe delete mode 100644 gateway/node_modules/to-readable-stream/index.js delete mode 100644 gateway/node_modules/to-readable-stream/license delete mode 100644 gateway/node_modules/to-readable-stream/package.json delete mode 100644 gateway/node_modules/to-readable-stream/readme.md delete mode 100644 gateway/node_modules/to-regex-range/LICENSE delete mode 100644 gateway/node_modules/to-regex-range/README.md delete mode 100644 gateway/node_modules/to-regex-range/index.js delete mode 100644 gateway/node_modules/to-regex-range/package.json delete mode 100644 gateway/node_modules/toidentifier/LICENSE delete mode 100644 gateway/node_modules/toidentifier/README.md delete mode 100644 gateway/node_modules/toidentifier/index.js delete mode 100644 gateway/node_modules/toidentifier/package.json delete mode 100644 gateway/node_modules/touch/LICENSE delete mode 100644 gateway/node_modules/touch/README.md delete mode 100755 gateway/node_modules/touch/bin/nodetouch.js delete mode 100644 gateway/node_modules/touch/index.js delete mode 120000 gateway/node_modules/touch/node_modules/.bin/nopt delete mode 100644 gateway/node_modules/touch/package.json delete mode 100644 gateway/node_modules/ts-invariant/LICENSE delete mode 100644 gateway/node_modules/ts-invariant/README.md delete mode 100644 gateway/node_modules/ts-invariant/lib/invariant.d.ts delete mode 100644 gateway/node_modules/ts-invariant/lib/invariant.esm.js delete mode 100644 gateway/node_modules/ts-invariant/lib/invariant.esm.js.map delete mode 100644 gateway/node_modules/ts-invariant/lib/invariant.js delete mode 100644 gateway/node_modules/ts-invariant/lib/invariant.js.map delete mode 100644 gateway/node_modules/ts-invariant/package.json delete mode 100644 gateway/node_modules/ts-invariant/rollup.config.js delete mode 100644 gateway/node_modules/ts-invariant/tsconfig.json delete mode 100644 gateway/node_modules/ts-invariant/tsconfig.rollup.json delete mode 100644 gateway/node_modules/tslib/CopyrightNotice.txt delete mode 100644 gateway/node_modules/tslib/LICENSE.txt delete mode 100644 gateway/node_modules/tslib/README.md delete mode 100644 gateway/node_modules/tslib/modules/index.js delete mode 100644 gateway/node_modules/tslib/modules/package.json delete mode 100644 gateway/node_modules/tslib/package.json delete mode 100644 gateway/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js delete mode 100644 gateway/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json delete mode 100644 gateway/node_modules/tslib/tslib.d.ts delete mode 100644 gateway/node_modules/tslib/tslib.es6.html delete mode 100644 gateway/node_modules/tslib/tslib.es6.js delete mode 100644 gateway/node_modules/tslib/tslib.html delete mode 100644 gateway/node_modules/tslib/tslib.js delete mode 100644 gateway/node_modules/type-fest/index.d.ts delete mode 100644 gateway/node_modules/type-fest/license delete mode 100644 gateway/node_modules/type-fest/package.json delete mode 100644 gateway/node_modules/type-fest/readme.md delete mode 100644 gateway/node_modules/type-fest/source/basic.d.ts delete mode 100644 gateway/node_modules/type-fest/source/except.d.ts delete mode 100644 gateway/node_modules/type-fest/source/literal-union.d.ts delete mode 100644 gateway/node_modules/type-fest/source/merge-exclusive.d.ts delete mode 100644 gateway/node_modules/type-fest/source/merge.d.ts delete mode 100644 gateway/node_modules/type-fest/source/mutable.d.ts delete mode 100644 gateway/node_modules/type-fest/source/opaque.d.ts delete mode 100644 gateway/node_modules/type-fest/source/package-json.d.ts delete mode 100644 gateway/node_modules/type-fest/source/partial-deep.d.ts delete mode 100644 gateway/node_modules/type-fest/source/promisable.d.ts delete mode 100644 gateway/node_modules/type-fest/source/readonly-deep.d.ts delete mode 100644 gateway/node_modules/type-fest/source/require-at-least-one.d.ts delete mode 100644 gateway/node_modules/type-fest/source/require-exactly-one.d.ts delete mode 100644 gateway/node_modules/type-fest/source/set-optional.d.ts delete mode 100644 gateway/node_modules/type-fest/source/set-required.d.ts delete mode 100644 gateway/node_modules/type-is/HISTORY.md delete mode 100644 gateway/node_modules/type-is/LICENSE delete mode 100644 gateway/node_modules/type-is/README.md delete mode 100644 gateway/node_modules/type-is/index.js delete mode 100644 gateway/node_modules/type-is/package.json delete mode 100644 gateway/node_modules/typedarray-to-buffer/.airtap.yml delete mode 100644 gateway/node_modules/typedarray-to-buffer/.travis.yml delete mode 100644 gateway/node_modules/typedarray-to-buffer/LICENSE delete mode 100644 gateway/node_modules/typedarray-to-buffer/README.md delete mode 100644 gateway/node_modules/typedarray-to-buffer/index.js delete mode 100644 gateway/node_modules/typedarray-to-buffer/package.json delete mode 100644 gateway/node_modules/typedarray-to-buffer/test/basic.js delete mode 100644 gateway/node_modules/undefsafe/.jscsrc delete mode 100644 gateway/node_modules/undefsafe/.jshintrc delete mode 100644 gateway/node_modules/undefsafe/.npmignore delete mode 100644 gateway/node_modules/undefsafe/.travis.yml delete mode 100644 gateway/node_modules/undefsafe/LICENSE delete mode 100644 gateway/node_modules/undefsafe/README.md delete mode 100644 gateway/node_modules/undefsafe/example.js delete mode 100644 gateway/node_modules/undefsafe/lib/undefsafe.js delete mode 100644 gateway/node_modules/undefsafe/package.json delete mode 100644 gateway/node_modules/unique-filename/.nyc_output/54942.json delete mode 100644 gateway/node_modules/unique-filename/.nyc_output/54944.json delete mode 100644 gateway/node_modules/unique-filename/LICENSE delete mode 100644 gateway/node_modules/unique-filename/README.md delete mode 100644 gateway/node_modules/unique-filename/coverage/__root__/index.html delete mode 100644 gateway/node_modules/unique-filename/coverage/__root__/index.js.html delete mode 100644 gateway/node_modules/unique-filename/coverage/base.css delete mode 100644 gateway/node_modules/unique-filename/coverage/index.html delete mode 100644 gateway/node_modules/unique-filename/coverage/prettify.css delete mode 100644 gateway/node_modules/unique-filename/coverage/prettify.js delete mode 100644 gateway/node_modules/unique-filename/coverage/sort-arrow-sprite.png delete mode 100644 gateway/node_modules/unique-filename/coverage/sorter.js delete mode 100644 gateway/node_modules/unique-filename/index.js delete mode 100644 gateway/node_modules/unique-filename/package.json delete mode 100644 gateway/node_modules/unique-filename/test/index.js delete mode 100644 gateway/node_modules/unique-slug/.travis.yml delete mode 100644 gateway/node_modules/unique-slug/LICENSE delete mode 100644 gateway/node_modules/unique-slug/README.md delete mode 100644 gateway/node_modules/unique-slug/index.js delete mode 100644 gateway/node_modules/unique-slug/package.json delete mode 100644 gateway/node_modules/unique-slug/test/index.js delete mode 100644 gateway/node_modules/unique-string/index.d.ts delete mode 100644 gateway/node_modules/unique-string/index.js delete mode 100644 gateway/node_modules/unique-string/license delete mode 100644 gateway/node_modules/unique-string/package.json delete mode 100644 gateway/node_modules/unique-string/readme.md delete mode 100644 gateway/node_modules/unpipe/HISTORY.md delete mode 100644 gateway/node_modules/unpipe/LICENSE delete mode 100644 gateway/node_modules/unpipe/README.md delete mode 100644 gateway/node_modules/unpipe/index.js delete mode 100644 gateway/node_modules/unpipe/package.json delete mode 100644 gateway/node_modules/update-notifier/check.js delete mode 100644 gateway/node_modules/update-notifier/index.js delete mode 100644 gateway/node_modules/update-notifier/license delete mode 120000 gateway/node_modules/update-notifier/node_modules/.bin/is-ci delete mode 100644 gateway/node_modules/update-notifier/package.json delete mode 100644 gateway/node_modules/update-notifier/readme.md delete mode 100644 gateway/node_modules/url-parse-lax/index.js delete mode 100644 gateway/node_modules/url-parse-lax/license delete mode 100644 gateway/node_modules/url-parse-lax/package.json delete mode 100644 gateway/node_modules/url-parse-lax/readme.md delete mode 100644 gateway/node_modules/util.promisify/.eslintrc delete mode 100644 gateway/node_modules/util.promisify/.github/FUNDING.yml delete mode 100644 gateway/node_modules/util.promisify/.github/workflows/rebase.yml delete mode 100644 gateway/node_modules/util.promisify/.travis.yml delete mode 100644 gateway/node_modules/util.promisify/CHANGELOG.md delete mode 100644 gateway/node_modules/util.promisify/LICENSE delete mode 100644 gateway/node_modules/util.promisify/README.md delete mode 100644 gateway/node_modules/util.promisify/auto.js delete mode 100644 gateway/node_modules/util.promisify/implementation.js delete mode 100644 gateway/node_modules/util.promisify/index.js delete mode 100644 gateway/node_modules/util.promisify/package.json delete mode 100644 gateway/node_modules/util.promisify/polyfill.js delete mode 100644 gateway/node_modules/util.promisify/shim.js delete mode 100644 gateway/node_modules/utils-merge/.npmignore delete mode 100644 gateway/node_modules/utils-merge/LICENSE delete mode 100644 gateway/node_modules/utils-merge/README.md delete mode 100644 gateway/node_modules/utils-merge/index.js delete mode 100644 gateway/node_modules/utils-merge/package.json delete mode 100644 gateway/node_modules/uuid/AUTHORS delete mode 100644 gateway/node_modules/uuid/CHANGELOG.md delete mode 100644 gateway/node_modules/uuid/LICENSE.md delete mode 100644 gateway/node_modules/uuid/README.md delete mode 100755 gateway/node_modules/uuid/bin/uuid delete mode 100644 gateway/node_modules/uuid/index.js delete mode 100644 gateway/node_modules/uuid/lib/bytesToUuid.js delete mode 100644 gateway/node_modules/uuid/lib/md5-browser.js delete mode 100644 gateway/node_modules/uuid/lib/md5.js delete mode 100644 gateway/node_modules/uuid/lib/rng-browser.js delete mode 100644 gateway/node_modules/uuid/lib/rng.js delete mode 100644 gateway/node_modules/uuid/lib/sha1-browser.js delete mode 100644 gateway/node_modules/uuid/lib/sha1.js delete mode 100644 gateway/node_modules/uuid/lib/v35.js delete mode 100644 gateway/node_modules/uuid/package.json delete mode 100644 gateway/node_modules/uuid/v1.js delete mode 100644 gateway/node_modules/uuid/v3.js delete mode 100644 gateway/node_modules/uuid/v4.js delete mode 100644 gateway/node_modules/uuid/v5.js delete mode 100644 gateway/node_modules/vary/HISTORY.md delete mode 100644 gateway/node_modules/vary/LICENSE delete mode 100644 gateway/node_modules/vary/README.md delete mode 100644 gateway/node_modules/vary/index.js delete mode 100644 gateway/node_modules/vary/package.json delete mode 100644 gateway/node_modules/widest-line/index.d.ts delete mode 100644 gateway/node_modules/widest-line/index.js delete mode 100644 gateway/node_modules/widest-line/license delete mode 100644 gateway/node_modules/widest-line/package.json delete mode 100644 gateway/node_modules/widest-line/readme.md delete mode 100644 gateway/node_modules/wrappy/LICENSE delete mode 100644 gateway/node_modules/wrappy/README.md delete mode 100644 gateway/node_modules/wrappy/package.json delete mode 100644 gateway/node_modules/wrappy/wrappy.js delete mode 100644 gateway/node_modules/write-file-atomic/CHANGELOG.md delete mode 100644 gateway/node_modules/write-file-atomic/LICENSE delete mode 100644 gateway/node_modules/write-file-atomic/README.md delete mode 100644 gateway/node_modules/write-file-atomic/index.js delete mode 100644 gateway/node_modules/write-file-atomic/package.json delete mode 100644 gateway/node_modules/ws/LICENSE delete mode 100644 gateway/node_modules/ws/README.md delete mode 100644 gateway/node_modules/ws/browser.js delete mode 100644 gateway/node_modules/ws/index.js delete mode 100644 gateway/node_modules/ws/lib/buffer-util.js delete mode 100644 gateway/node_modules/ws/lib/constants.js delete mode 100644 gateway/node_modules/ws/lib/event-target.js delete mode 100644 gateway/node_modules/ws/lib/extension.js delete mode 100644 gateway/node_modules/ws/lib/permessage-deflate.js delete mode 100644 gateway/node_modules/ws/lib/receiver.js delete mode 100644 gateway/node_modules/ws/lib/sender.js delete mode 100644 gateway/node_modules/ws/lib/validation.js delete mode 100644 gateway/node_modules/ws/lib/websocket-server.js delete mode 100644 gateway/node_modules/ws/lib/websocket.js delete mode 100644 gateway/node_modules/ws/package.json delete mode 100644 gateway/node_modules/xdg-basedir/index.d.ts delete mode 100644 gateway/node_modules/xdg-basedir/index.js delete mode 100644 gateway/node_modules/xdg-basedir/license delete mode 100644 gateway/node_modules/xdg-basedir/package.json delete mode 100644 gateway/node_modules/xdg-basedir/readme.md delete mode 100644 gateway/node_modules/xss/CHANGELOG.md delete mode 100644 gateway/node_modules/xss/LICENSE delete mode 100644 gateway/node_modules/xss/README.md delete mode 100644 gateway/node_modules/xss/README.zh.md delete mode 100755 gateway/node_modules/xss/bin/xss delete mode 100644 gateway/node_modules/xss/dist/test.html delete mode 100644 gateway/node_modules/xss/dist/xss.js delete mode 100644 gateway/node_modules/xss/dist/xss.min.js delete mode 100644 gateway/node_modules/xss/lib/cli.js delete mode 100644 gateway/node_modules/xss/lib/default.js delete mode 100644 gateway/node_modules/xss/lib/index.js delete mode 100644 gateway/node_modules/xss/lib/parser.js delete mode 100644 gateway/node_modules/xss/lib/util.js delete mode 100644 gateway/node_modules/xss/lib/xss.js delete mode 100644 gateway/node_modules/xss/package.json delete mode 100644 gateway/node_modules/xss/typings/xss.d.ts delete mode 100644 gateway/node_modules/yallist/LICENSE delete mode 100644 gateway/node_modules/yallist/README.md delete mode 100644 gateway/node_modules/yallist/iterator.js delete mode 100644 gateway/node_modules/yallist/package.json delete mode 100644 gateway/node_modules/yallist/yallist.js delete mode 100644 gateway/node_modules/zen-observable-ts/CHANGELOG.md delete mode 100644 gateway/node_modules/zen-observable-ts/LICENSE delete mode 100644 gateway/node_modules/zen-observable-ts/lib/bundle.cjs.js delete mode 100644 gateway/node_modules/zen-observable-ts/lib/bundle.cjs.js.map delete mode 100644 gateway/node_modules/zen-observable-ts/lib/bundle.esm.js delete mode 100644 gateway/node_modules/zen-observable-ts/lib/bundle.esm.js.map delete mode 100644 gateway/node_modules/zen-observable-ts/lib/bundle.umd.js delete mode 100644 gateway/node_modules/zen-observable-ts/lib/bundle.umd.js.map delete mode 100644 gateway/node_modules/zen-observable-ts/lib/index.d.ts delete mode 100644 gateway/node_modules/zen-observable-ts/lib/index.d.ts.map delete mode 100644 gateway/node_modules/zen-observable-ts/lib/index.js delete mode 100644 gateway/node_modules/zen-observable-ts/lib/index.js.map delete mode 100644 gateway/node_modules/zen-observable-ts/lib/types.d.ts delete mode 100644 gateway/node_modules/zen-observable-ts/lib/types.d.ts.map delete mode 100644 gateway/node_modules/zen-observable-ts/lib/types.js delete mode 100644 gateway/node_modules/zen-observable-ts/lib/types.js.map delete mode 100644 gateway/node_modules/zen-observable-ts/lib/zenObservable.d.ts delete mode 100644 gateway/node_modules/zen-observable-ts/lib/zenObservable.d.ts.map delete mode 100644 gateway/node_modules/zen-observable-ts/lib/zenObservable.js delete mode 100644 gateway/node_modules/zen-observable-ts/lib/zenObservable.js.map delete mode 100644 gateway/node_modules/zen-observable-ts/package.json delete mode 100644 gateway/node_modules/zen-observable/.editorconfig delete mode 100644 gateway/node_modules/zen-observable/.eslintrc.js delete mode 100644 gateway/node_modules/zen-observable/LICENSE delete mode 100644 gateway/node_modules/zen-observable/README.md delete mode 100644 gateway/node_modules/zen-observable/esm.js delete mode 100644 gateway/node_modules/zen-observable/extras.js delete mode 100644 gateway/node_modules/zen-observable/index.js delete mode 100644 gateway/node_modules/zen-observable/lib/Observable.js delete mode 100644 gateway/node_modules/zen-observable/lib/extras.js delete mode 100644 gateway/node_modules/zen-observable/package.json delete mode 100644 gateway/node_modules/zen-observable/scripts/babel-plugins.js delete mode 100644 gateway/node_modules/zen-observable/scripts/build.js delete mode 100644 gateway/node_modules/zen-observable/scripts/mocha-require.js delete mode 100644 gateway/node_modules/zen-observable/src/Observable.js delete mode 100644 gateway/node_modules/zen-observable/src/extras.js delete mode 100644 gateway/node_modules/zen-observable/test/concat.js delete mode 100644 gateway/node_modules/zen-observable/test/constructor.js delete mode 100644 gateway/node_modules/zen-observable/test/extras/combine-latest.js delete mode 100644 gateway/node_modules/zen-observable/test/extras/merge.js delete mode 100644 gateway/node_modules/zen-observable/test/extras/parse.js delete mode 100644 gateway/node_modules/zen-observable/test/extras/zip.js delete mode 100644 gateway/node_modules/zen-observable/test/filter.js delete mode 100644 gateway/node_modules/zen-observable/test/flat-map.js delete mode 100644 gateway/node_modules/zen-observable/test/for-each.js delete mode 100644 gateway/node_modules/zen-observable/test/from.js delete mode 100644 gateway/node_modules/zen-observable/test/map.js delete mode 100644 gateway/node_modules/zen-observable/test/observer-closed.js delete mode 100644 gateway/node_modules/zen-observable/test/observer-complete.js delete mode 100644 gateway/node_modules/zen-observable/test/observer-error.js delete mode 100644 gateway/node_modules/zen-observable/test/observer-next.js delete mode 100644 gateway/node_modules/zen-observable/test/of.js delete mode 100644 gateway/node_modules/zen-observable/test/properties.js delete mode 100644 gateway/node_modules/zen-observable/test/reduce.js delete mode 100644 gateway/node_modules/zen-observable/test/setup.js delete mode 100644 gateway/node_modules/zen-observable/test/species.js delete mode 100644 gateway/node_modules/zen-observable/test/subscribe.js delete mode 100644 gateway/node_modules/zen-observable/test/subscription.js delete mode 100644 gateway/yarn-error.log delete mode 100644 product/__pycache__/__init__.cpython-38.pyc delete mode 100644 product/__pycache__/main.cpython-38.pyc delete mode 100644 product/models/__pycache__/product.cpython-38.pyc delete mode 100644 product/schema/__pycache__/__init__.cpython-38.pyc delete mode 100644 product/schema/__pycache__/query.cpython-38.pyc delete mode 100644 review/__pycache__/__init__.cpython-38.pyc delete mode 100644 review/models/__pycache__/__init__.cpython-38.pyc delete mode 100644 review/models/__pycache__/review.cpython-38.pyc delete mode 100644 review/schema/__pycache__/__init__.cpython-38.pyc delete mode 100644 review/schema/__pycache__/query.cpython-38.pyc delete mode 100644 review/schema/types/__pycache__/product.cpython-38.pyc delete mode 100644 review/schema/types/__pycache__/review.cpython-38.pyc delete mode 100644 review/schema/types/__pycache__/user.cpython-38.pyc delete mode 100644 user/__pycache__/__init__.cpython-38.pyc delete mode 100644 user/models/__pycache__/user.cpython-38.pyc delete mode 100644 user/schema/__pycache__/__init__.cpython-38.pyc delete mode 100644 user/schema/__pycache__/mutation.cpython-38.pyc delete mode 100644 user/schema/__pycache__/query.cpython-38.pyc delete mode 100644 user/schema/types/__pycache__/user.cpython-38.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0dae17f --- /dev/null +++ b/.gitignore @@ -0,0 +1,360 @@ +# Created by .ignore support plugin (hsz.mobi) +### Python template +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +### macOS template +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Node template +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + diff --git a/.idea/dictionaries b/.idea/dictionaries deleted file mode 100644 index 5261c27..0000000 --- a/.idea/dictionaries +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/gateway/node_modules/.bin/apollo-pbjs b/gateway/node_modules/.bin/apollo-pbjs deleted file mode 120000 index 8edaa96..0000000 --- a/gateway/node_modules/.bin/apollo-pbjs +++ /dev/null @@ -1 +0,0 @@ -../@apollo/protobufjs/bin/pbjs \ No newline at end of file diff --git a/gateway/node_modules/.bin/apollo-pbts b/gateway/node_modules/.bin/apollo-pbts deleted file mode 120000 index 4b508ee..0000000 --- a/gateway/node_modules/.bin/apollo-pbts +++ /dev/null @@ -1 +0,0 @@ -../@apollo/protobufjs/bin/pbts \ No newline at end of file diff --git a/gateway/node_modules/.bin/is-ci b/gateway/node_modules/.bin/is-ci deleted file mode 120000 index fe6aca6..0000000 --- a/gateway/node_modules/.bin/is-ci +++ /dev/null @@ -1 +0,0 @@ -../is-ci/bin.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/mime b/gateway/node_modules/.bin/mime deleted file mode 120000 index fbb7ee0..0000000 --- a/gateway/node_modules/.bin/mime +++ /dev/null @@ -1 +0,0 @@ -../mime/cli.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/mkdirp b/gateway/node_modules/.bin/mkdirp deleted file mode 120000 index 017896c..0000000 --- a/gateway/node_modules/.bin/mkdirp +++ /dev/null @@ -1 +0,0 @@ -../mkdirp/bin/cmd.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/nodemon b/gateway/node_modules/.bin/nodemon deleted file mode 120000 index 1056ddc..0000000 --- a/gateway/node_modules/.bin/nodemon +++ /dev/null @@ -1 +0,0 @@ -../nodemon/bin/nodemon.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/nodetouch b/gateway/node_modules/.bin/nodetouch deleted file mode 120000 index 3409fdb..0000000 --- a/gateway/node_modules/.bin/nodetouch +++ /dev/null @@ -1 +0,0 @@ -../touch/bin/nodetouch.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/nopt b/gateway/node_modules/.bin/nopt deleted file mode 120000 index 6b6566e..0000000 --- a/gateway/node_modules/.bin/nopt +++ /dev/null @@ -1 +0,0 @@ -../nopt/bin/nopt.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/rc b/gateway/node_modules/.bin/rc deleted file mode 120000 index 48b3cda..0000000 --- a/gateway/node_modules/.bin/rc +++ /dev/null @@ -1 +0,0 @@ -../rc/cli.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/rimraf b/gateway/node_modules/.bin/rimraf deleted file mode 120000 index 4cd49a4..0000000 --- a/gateway/node_modules/.bin/rimraf +++ /dev/null @@ -1 +0,0 @@ -../rimraf/bin.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/semver b/gateway/node_modules/.bin/semver deleted file mode 120000 index 933e12d..0000000 --- a/gateway/node_modules/.bin/semver +++ /dev/null @@ -1 +0,0 @@ -../nodemon/node_modules/semver/bin/semver \ No newline at end of file diff --git a/gateway/node_modules/.bin/sha.js b/gateway/node_modules/.bin/sha.js deleted file mode 120000 index 3c76105..0000000 --- a/gateway/node_modules/.bin/sha.js +++ /dev/null @@ -1 +0,0 @@ -../sha.js/bin.js \ No newline at end of file diff --git a/gateway/node_modules/.bin/uuid b/gateway/node_modules/.bin/uuid deleted file mode 120000 index 208502a..0000000 --- a/gateway/node_modules/.bin/uuid +++ /dev/null @@ -1 +0,0 @@ -../apollo-server-core/node_modules/uuid/dist/bin/uuid \ No newline at end of file diff --git a/gateway/node_modules/.bin/xss b/gateway/node_modules/.bin/xss deleted file mode 120000 index e9e309f..0000000 --- a/gateway/node_modules/.bin/xss +++ /dev/null @@ -1 +0,0 @@ -../xss/bin/xss \ No newline at end of file diff --git a/gateway/node_modules/.yarn-integrity b/gateway/node_modules/.yarn-integrity deleted file mode 100644 index 34d225c..0000000 --- a/gateway/node_modules/.yarn-integrity +++ /dev/null @@ -1,430 +0,0 @@ -{ - "systemParams": "darwin-x64-83", - "modulesFolders": [ - "node_modules" - ], - "flags": [], - "linkedModules": [], - "topLevelPatterns": [ - "@apollo/gateway@^0.21.1", - "apollo-server@^2.19.0", - "graphql@^15.4.0", - "nodemon@^2.0.6" - ], - "lockfileEntries": { - "@apollo/federation@^0.20.4": "https://registry.yarnpkg.com/@apollo/federation/-/federation-0.20.4.tgz#49baf1e94e7b9dea3e3736c9801c7c230157f94f", - "@apollo/gateway@^0.21.1": "https://registry.yarnpkg.com/@apollo/gateway/-/gateway-0.21.1.tgz#e7dd3065303d2047e411803973447c459a7c338a", - "@apollo/protobufjs@^1.0.3": "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.0.5.tgz#a78b726147efc0795e74c8cb8a11aafc6e02f773", - "@apollo/query-planner-wasm@^0.0.7": "https://registry.yarnpkg.com/@apollo/query-planner-wasm/-/query-planner-wasm-0.0.7.tgz#6fa5ea9d49b546475b66afe9aa79fbaada28b7fb", - "@apollographql/apollo-tools@^0.4.3": "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz#d81da89ee880c2345eb86bddb92b35291f6135ed", - "@apollographql/graphql-playground-html@1.6.26": "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz#2f7b610392e2a872722912fc342b43cf8d641cb3", - "@jest/types@^26.6.2": "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e", - "@npmcli/move-file@^1.0.1": "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464", - "@protobufjs/aspromise@^1.1.1": "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf", - "@protobufjs/aspromise@^1.1.2": "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf", - "@protobufjs/base64@^1.1.2": "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735", - "@protobufjs/codegen@^2.0.4": "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb", - "@protobufjs/eventemitter@^1.1.0": "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70", - "@protobufjs/fetch@^1.1.0": "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45", - "@protobufjs/float@^1.0.2": "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1", - "@protobufjs/inquire@^1.1.0": "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089", - "@protobufjs/path@^1.1.2": "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d", - "@protobufjs/pool@^1.1.0": "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54", - "@protobufjs/utf8@^1.1.0": "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570", - "@sindresorhus/is@^0.14.0": "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea", - "@szmarczak/http-timer@^1.1.2": "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421", - "@tootallnate/once@1": "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82", - "@types/accepts@*": "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575", - "@types/accepts@^1.3.5": "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575", - "@types/body-parser@*": "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f", - "@types/body-parser@1.19.0": "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f", - "@types/connect@*": "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546", - "@types/content-disposition@*": "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96", - "@types/cookies@*": "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.5.tgz#aa42c9a9834724bffee597028da5319b38e85e84", - "@types/cors@2.8.8": "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.8.tgz#317a8d8561995c60e35b9e0fcaa8d36660c98092", - "@types/express-serve-static-core@*": "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz#d9af025e925fc8b089be37423b8d1eac781be084", - "@types/express-serve-static-core@4.17.13": "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz#d9af025e925fc8b089be37423b8d1eac781be084", - "@types/express@*": "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78", - "@types/express@4.17.7": "https://registry.yarnpkg.com/@types/express/-/express-4.17.7.tgz#42045be6475636d9801369cd4418ef65cdb0dd59", - "@types/fs-capacitor@*": "https://registry.yarnpkg.com/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e", - "@types/graphql-upload@^8.0.0": "https://registry.yarnpkg.com/@types/graphql-upload/-/graphql-upload-8.0.4.tgz#23a8ffb3d2fe6e0ee07e6f16ee9d9d5e995a2f4f", - "@types/http-assert@*": "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b", - "@types/http-errors@*": "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69", - "@types/istanbul-lib-coverage@*": "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762", - "@types/istanbul-lib-coverage@^2.0.0": "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762", - "@types/istanbul-lib-report@*": "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686", - "@types/istanbul-reports@^3.0.0": "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821", - "@types/keygrip@*": "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72", - "@types/koa-compose@*": "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d", - "@types/koa@*": "https://registry.yarnpkg.com/@types/koa/-/koa-2.11.6.tgz#b7030caa6b44af801c2aea13ba77d74aff7484d5", - "@types/long@^4.0.0": "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9", - "@types/mime@*": "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a", - "@types/node-fetch@2.5.4": "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.4.tgz#5245b6d8841fc3a6208b82291119bc11c4e0ce44", - "@types/node-fetch@2.5.7": "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c", - "@types/node@*": "https://registry.yarnpkg.com/@types/node/-/node-14.14.7.tgz#8ea1e8f8eae2430cf440564b98c6dfce1ec5945d", - "@types/node@^10.1.0": "https://registry.yarnpkg.com/@types/node/-/node-10.17.44.tgz#3945e6b702cb6403f22b779c8ea9e5c3f44ead40", - "@types/qs@*": "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b", - "@types/range-parser@*": "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c", - "@types/serve-static@*": "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.7.tgz#e51b51a0becda910f9fd04c718044da69d6c492e", - "@types/ws@^7.0.0": "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.0.tgz#499690ea08736e05a8186113dac37769ab251a0e", - "@types/yargs-parser@*": "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d", - "@types/yargs@^15.0.0": "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.9.tgz#524cd7998fe810cdb02f26101b699cccd156ff19", - "@wry/equality@^0.1.2": "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790", - "abbrev@1": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8", - "accepts@^1.3.5": "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd", - "accepts@~1.3.7": "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd", - "agent-base@6": "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77", - "agentkeepalive@^4.1.0": "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.3.tgz#360a09d743a1f4fde749f9ba07caa6575d08259a", - "aggregate-error@^3.0.0": "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a", - "ansi-align@^3.0.0": "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb", - "ansi-regex@^4.1.0": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997", - "ansi-regex@^5.0.0": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75", - "ansi-styles@^4.0.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937", - "ansi-styles@^4.1.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937", - "anymatch@~3.1.1": "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142", - "apollo-cache-control@^0.11.4": "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.11.4.tgz#06d57d728e6f928e03b9cc3b993f6102f305c32e", - "apollo-datasource@^0.7.2": "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.7.2.tgz#1662ee93453a9b89af6f73ce561bde46b41ebf31", - "apollo-env@^0.6.5": "https://registry.yarnpkg.com/apollo-env/-/apollo-env-0.6.5.tgz#5a36e699d39e2356381f7203493187260fded9f3", - "apollo-graphql@^0.6.0": "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.6.0.tgz#37bee7dc853213269137f4c60bfdf2ee28658669", - "apollo-link@^1.2.14": "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9", - "apollo-reporting-protobuf@^0.6.0": "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.1.tgz#09294e5f5f6b2285eb94b40621ed42113eaabea3", - "apollo-reporting-protobuf@^0.6.1": "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.1.tgz#09294e5f5f6b2285eb94b40621ed42113eaabea3", - "apollo-server-caching@^0.5.2": "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz#bef5d5e0d48473a454927a66b7bb947a0b6eb13e", - "apollo-server-core@^2.19.0": "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.19.0.tgz#ff14e788f228c2d6739478a68cf93f46a16e5bfa", - "apollo-server-env@^2.4.5": "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.5.tgz#73730b4f0439094a2272a9d0caa4079d4b661d5f", - "apollo-server-errors@^2.4.2": "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz#1128738a1d14da989f58420896d70524784eabe5", - "apollo-server-express@^2.19.0": "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.19.0.tgz#a8735e854e2da20e624583bef3c2e54b0cdd6a9b", - "apollo-server-plugin-base@^0.10.2": "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.2.tgz#185aea98ba22afe275fb01659070edeb480a89a7", - "apollo-server-types@^0.6.1": "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.6.1.tgz#61486980b44cacee2cb4939f0b369a0eb661a098", - "apollo-server@^2.19.0": "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.19.0.tgz#8a596573aa5a9535494fdafd635eab7c84342699", - "apollo-tracing@^0.12.0": "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.12.0.tgz#26250d7789c28aa89d63226eb674706dd69a568a", - "apollo-utilities@^1.0.1": "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf", - "apollo-utilities@^1.3.0": "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf", - "array-flatten@1.1.1": "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2", - "async-limiter@~1.0.0": "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd", - "async-retry@^1.2.1": "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55", - "asynckit@^0.4.0": "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79", - "backo2@^1.0.2": "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947", - "balanced-match@^1.0.0": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", - "binary-extensions@^2.0.0": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9", - "body-parser@1.19.0": "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a", - "body-parser@^1.18.3": "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a", - "boxen@^4.2.0": "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64", - "brace-expansion@^1.1.7": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", - "braces@~3.0.2": "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107", - "busboy@^0.3.1": "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b", - "bytes@3.1.0": "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6", - "cacache@^15.0.0": "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0", - "cacheable-request@^6.0.0": "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912", - "call-bind@^1.0.0": "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce", - "camelcase@^5.3.1": "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320", - "chalk@^3.0.0": "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4", - "chalk@^4.0.0": "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a", - "chokidar@^3.2.2": "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b", - "chownr@^2.0.0": "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece", - "ci-info@^2.0.0": "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46", - "clean-stack@^2.0.0": "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b", - "cli-boxes@^2.2.0": "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f", - "clone-response@^1.0.2": "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b", - "color-convert@^2.0.1": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3", - "color-name@~1.1.4": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2", - "combined-stream@^1.0.8": "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f", - "commander@^2.20.3": "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33", - "concat-map@0.0.1": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "configstore@^5.0.1": "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96", - "content-disposition@0.5.3": "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd", - "content-type@~1.0.4": "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b", - "cookie-signature@1.0.6": "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c", - "cookie@0.4.0": "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba", - "core-js@^3.0.1": "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz#b0a761a02488577afbf97179e4681bf49568520f", - "core-js@^3.4.0": "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz#b0a761a02488577afbf97179e4681bf49568520f", - "cors@^2.8.4": "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29", - "crypto-random-string@^2.0.0": "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5", - "cssfilter@0.0.10": "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae", - "debug@2.6.9": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", - "debug@4": "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1", - "debug@^2.2.0": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", - "debug@^3.2.6": "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b", - "debug@^4.1.0": "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1", - "decompress-response@^3.3.0": "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3", - "deep-extend@^0.6.0": "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac", - "defer-to-connect@^1.0.1": "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591", - "define-properties@^1.1.3": "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1", - "delayed-stream@~1.0.0": "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619", - "depd@^1.1.2": "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9", - "depd@~1.1.2": "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9", - "deprecated-decorator@^0.1.6": "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37", - "destroy@~1.0.4": "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80", - "dicer@0.3.0": "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872", - "dot-prop@^5.2.0": "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88", - "duplexer3@^0.1.4": "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2", - "ee-first@1.1.1": "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d", - "emoji-regex@^7.0.1": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156", - "emoji-regex@^8.0.0": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37", - "encodeurl@~1.0.2": "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59", - "encoding@^0.1.12": "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9", - "end-of-stream@^1.1.0": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0", - "err-code@^1.0.0": "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960", - "es-abstract@^1.17.0-next.1": "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c", - "es-abstract@^1.17.2": "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c", - "es-abstract@^1.18.0-next.1": "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68", - "es-to-primitive@^1.2.1": "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a", - "escape-goat@^2.0.0": "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675", - "escape-html@~1.0.3": "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988", - "etag@~1.8.1": "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887", - "eventemitter3@^3.1.0": "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7", - "express@^4.0.0": "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134", - "express@^4.17.1": "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134", - "fast-json-stable-stringify@^2.0.0": "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633", - "fill-range@^7.0.1": "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40", - "finalhandler@~1.1.2": "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d", - "form-data@^3.0.0": "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682", - "forwarded@~0.1.2": "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84", - "fresh@0.5.2": "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7", - "fs-capacitor@^2.0.4": "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c", - "fs-minipass@^2.0.0": "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb", - "fs.realpath@^1.0.0": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", - "fsevents@~2.1.2": "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e", - "function-bind@^1.1.1": "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d", - "get-intrinsic@^1.0.0": "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be", - "get-stream@^4.1.0": "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5", - "get-stream@^5.1.0": "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3", - "glob-parent@~5.1.0": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229", - "glob@^7.1.3": "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6", - "glob@^7.1.4": "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6", - "global-dirs@^2.0.1": "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201", - "got@^9.6.0": "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85", - "graceful-fs@^4.1.2": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb", - "graphql-extensions@^0.12.6": "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.12.6.tgz#c66be43035662a8cfb0b8efe9df96595338bd13c", - "graphql-subscriptions@^1.0.0": "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz#5f2fa4233eda44cf7570526adfcf3c16937aef11", - "graphql-tag@^2.9.2": "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd", - "graphql-tools@^4.0.0": "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.8.tgz#e7fb9f0d43408fb0878ba66b522ce871bafe9d30", - "graphql-upload@^8.0.2": "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-8.1.0.tgz#6d0ab662db5677a68bfb1f2c870ab2544c14939a", - "graphql@^15.3.0": "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz#e459dea1150da5a106486ba7276518b5295a4347", - "graphql@^15.4.0": "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz#e459dea1150da5a106486ba7276518b5295a4347", - "has-flag@^3.0.0": "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd", - "has-flag@^4.0.0": "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b", - "has-symbols@^1.0.1": "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8", - "has-yarn@^2.1.0": "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77", - "has@^1.0.3": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796", - "http-cache-semantics@^4.0.0": "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390", - "http-cache-semantics@^4.0.4": "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390", - "http-errors@1.7.2": "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f", - "http-errors@^1.7.3": "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507", - "http-errors@~1.7.2": "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06", - "http-proxy-agent@^4.0.1": "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a", - "https-proxy-agent@^5.0.0": "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2", - "humanize-ms@^1.2.1": "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed", - "iconv-lite@0.4.24": "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b", - "iconv-lite@^0.6.2": "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01", - "ignore-by-default@^1.0.1": "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09", - "import-lazy@^2.1.0": "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43", - "imurmurhash@^0.1.4": "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "indent-string@^4.0.0": "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251", - "infer-owner@^1.0.4": "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467", - "inflight@^1.0.4": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "inherits@2": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c", - "inherits@2.0.3": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", - "inherits@2.0.4": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c", - "inherits@^2.0.1": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c", - "ini@^1.3.5": "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927", - "ini@~1.3.0": "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927", - "ip@^1.1.5": "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a", - "ipaddr.js@1.9.1": "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3", - "is-binary-path@~2.1.0": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09", - "is-callable@^1.1.4": "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9", - "is-callable@^1.2.2": "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9", - "is-ci@^2.0.0": "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c", - "is-date-object@^1.0.1": "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e", - "is-extglob@^2.1.1": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2", - "is-fullwidth-code-point@^2.0.0": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", - "is-fullwidth-code-point@^3.0.0": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d", - "is-glob@^4.0.1": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc", - "is-glob@~4.0.1": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc", - "is-installed-globally@^0.3.1": "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141", - "is-lambda@^1.0.1": "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5", - "is-negative-zero@^2.0.0": "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461", - "is-npm@^4.0.0": "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d", - "is-number@^7.0.0": "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b", - "is-obj@^2.0.0": "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982", - "is-path-inside@^3.0.1": "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017", - "is-regex@^1.1.1": "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9", - "is-symbol@^1.0.2": "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937", - "is-typedarray@^1.0.0": "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a", - "is-yarn-global@^0.3.0": "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232", - "iterall@^1.1.3": "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea", - "iterall@^1.2.1": "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea", - "json-buffer@3.0.0": "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898", - "keyv@^3.0.0": "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9", - "latest-version@^5.0.0": "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face", - "lodash.sortby@^4.7.0": "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438", - "lodash.xorby@^4.7.0": "https://registry.yarnpkg.com/lodash.xorby/-/lodash.xorby-4.7.0.tgz#9c19a6f9f063a6eb53dd03c1b6871799801463d7", - "loglevel@^1.6.1": "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0", - "loglevel@^1.6.7": "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0", - "long@^4.0.0": "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28", - "lowercase-keys@^1.0.0": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f", - "lowercase-keys@^1.0.1": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f", - "lowercase-keys@^2.0.0": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479", - "lru-cache@^5.0.0": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920", - "lru-cache@^6.0.0": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94", - "make-dir@^3.0.0": "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f", - "make-fetch-happen@^8.0.0": "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz#f37c5d93d14290488ca6a2ae917a380bd7d24f16", - "media-typer@0.3.0": "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748", - "merge-descriptors@1.0.1": "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61", - "methods@~1.1.2": "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee", - "mime-db@1.44.0": "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92", - "mime-types@^2.1.12": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f", - "mime-types@~2.1.24": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f", - "mime@1.6.0": "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1", - "mimic-response@^1.0.0": "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b", - "mimic-response@^1.0.1": "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b", - "minimatch@^3.0.4": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", - "minimist@^1.2.0": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602", - "minipass-collect@^1.0.2": "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617", - "minipass-fetch@^1.3.0": "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.2.tgz#573766fb1ae86e30df916a6b060bc2e801bf8f37", - "minipass-flush@^1.0.5": "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373", - "minipass-pipeline@^1.2.2": "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c", - "minipass-sized@^1.0.3": "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70", - "minipass@^3.0.0": "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd", - "minipass@^3.1.0": "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd", - "minipass@^3.1.1": "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd", - "minipass@^3.1.3": "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd", - "minizlib@^2.0.0": "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931", - "minizlib@^2.1.1": "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931", - "mkdirp@^1.0.3": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e", - "mkdirp@^1.0.4": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e", - "ms@2.0.0": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8", - "ms@2.1.1": "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a", - "ms@2.1.2": "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009", - "ms@^2.0.0": "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009", - "ms@^2.1.1": "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009", - "negotiator@0.6.2": "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb", - "node-fetch@^2.1.2": "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052", - "node-fetch@^2.2.0": "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052", - "nodemon@^2.0.6": "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.6.tgz#1abe1937b463aaf62f0d52e2b7eaadf28cc2240d", - "nopt@~1.0.10": "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee", - "normalize-path@^3.0.0": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", - "normalize-path@~3.0.0": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", - "normalize-url@^4.1.0": "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129", - "object-assign@^4": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", - "object-inspect@^1.8.0": "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0", - "object-keys@^1.0.12": "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e", - "object-keys@^1.1.1": "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e", - "object-path@^0.11.4": "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a", - "object.assign@^4.1.1": "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940", - "object.getownpropertydescriptors@^2.1.0": "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649", - "on-finished@~2.3.0": "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947", - "once@^1.3.0": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "once@^1.3.1": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "once@^1.4.0": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "p-cancelable@^1.0.0": "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc", - "p-map@^4.0.0": "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b", - "package-json@^6.3.0": "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0", - "parseurl@^1.3.2": "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4", - "parseurl@~1.3.3": "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4", - "path-is-absolute@^1.0.0": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "path-to-regexp@0.1.7": "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c", - "picomatch@^2.0.4": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad", - "picomatch@^2.2.1": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad", - "prepend-http@^2.0.0": "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897", - "pretty-format@^26.0.0": "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93", - "promise-inflight@^1.0.1": "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3", - "promise-retry@^1.1.1": "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d", - "proxy-addr@~2.0.5": "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf", - "pstree.remy@^1.1.7": "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a", - "pump@^3.0.0": "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64", - "pupa@^2.0.1": "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62", - "qs@6.7.0": "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc", - "range-parser@~1.2.1": "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031", - "raw-body@2.4.0": "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332", - "rc@^1.2.8": "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed", - "react-is@^17.0.1": "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339", - "readdirp@~3.5.0": "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e", - "registry-auth-token@^4.0.0": "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250", - "registry-url@^5.0.0": "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009", - "responselike@^1.0.2": "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7", - "retry@0.12.0": "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b", - "retry@^0.10.0": "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4", - "rimraf@^3.0.2": "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a", - "safe-buffer@5.1.2": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", - "safe-buffer@^5.0.1": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6", - "safer-buffer@>= 2.1.2 < 3": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", - "safer-buffer@>= 2.1.2 < 3.0.0": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", - "semver-diff@^3.1.1": "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b", - "semver@^5.7.1": "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7", - "semver@^6.0.0": "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d", - "semver@^6.2.0": "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d", - "semver@^6.3.0": "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d", - "send@0.17.1": "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8", - "serve-static@1.14.1": "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9", - "setprototypeof@1.1.1": "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683", - "setprototypeof@1.2.0": "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424", - "sha.js@^2.4.11": "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7", - "signal-exit@^3.0.2": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c", - "smart-buffer@^4.1.0": "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba", - "socks-proxy-agent@^5.0.0": "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60", - "socks@^2.3.3": "https://registry.yarnpkg.com/socks/-/socks-2.5.0.tgz#3a7c286db114f67864a4bd8b4207a91d1db3d6db", - "ssri@^8.0.0": "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808", - "statuses@>= 1.5.0 < 2": "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c", - "statuses@~1.5.0": "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c", - "streamsearch@0.1.2": "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a", - "string-width@^3.0.0": "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961", - "string-width@^4.0.0": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5", - "string-width@^4.1.0": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5", - "string.prototype.trimend@^1.0.1": "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46", - "string.prototype.trimstart@^1.0.1": "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7", - "strip-ansi@^5.1.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae", - "strip-ansi@^6.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532", - "strip-json-comments@~2.0.1": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a", - "subscriptions-transport-ws@^0.9.11": "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz#bcf02320c911fbadb054f7f928e51c6041a37b97", - "subscriptions-transport-ws@^0.9.16": "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz#bcf02320c911fbadb054f7f928e51c6041a37b97", - "supports-color@^5.5.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f", - "supports-color@^7.1.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da", - "symbol-observable@^1.0.4": "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804", - "tar@^6.0.2": "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f", - "term-size@^2.1.0": "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54", - "to-readable-stream@^1.0.0": "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771", - "to-regex-range@^5.0.1": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4", - "toidentifier@1.0.0": "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553", - "touch@^3.1.0": "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b", - "ts-invariant@^0.4.0": "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86", - "tslib@^1.10.0": "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00", - "tslib@^1.9.3": "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00", - "type-fest@^0.8.1": "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d", - "type-is@^1.6.16": "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131", - "type-is@~1.6.17": "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131", - "type-is@~1.6.18": "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131", - "typedarray-to-buffer@^3.1.5": "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080", - "undefsafe@^2.0.3": "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae", - "unique-filename@^1.1.1": "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230", - "unique-slug@^2.0.0": "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c", - "unique-string@^2.0.0": "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d", - "unpipe@1.0.0": "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "unpipe@~1.0.0": "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "update-notifier@^4.1.0": "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3", - "url-parse-lax@^3.0.0": "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c", - "util.promisify@^1.0.0": "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee", - "utils-merge@1.0.1": "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713", - "uuid@^3.1.0": "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee", - "uuid@^8.0.0": "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31", - "vary@^1": "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc", - "vary@~1.1.2": "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc", - "widest-line@^3.1.0": "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca", - "wrappy@1": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "write-file-atomic@^3.0.0": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8", - "ws@^5.2.0": "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f", - "ws@^6.0.0": "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb", - "xdg-basedir@^4.0.0": "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13", - "xss@^1.0.6": "https://registry.yarnpkg.com/xss/-/xss-1.0.8.tgz#32feb87feb74b3dcd3d404b7a68ababf10700535", - "yallist@^3.0.2": "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd", - "yallist@^4.0.0": "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72", - "zen-observable-ts@^0.8.21": "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d", - "zen-observable@^0.8.0": "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - }, - "files": [], - "artifacts": { - "@apollo/protobufjs@1.0.5": [ - "cli" - ] - } -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/CHANGELOG.md b/gateway/node_modules/@apollo/federation/CHANGELOG.md deleted file mode 100644 index 2afd669..0000000 --- a/gateway/node_modules/@apollo/federation/CHANGELOG.md +++ /dev/null @@ -1,191 +0,0 @@ -# CHANGELOG for `@apollo/federation` - -## vNEXT - -> The changes noted within this `vNEXT` section have not been released yet. New PRs and commits which introduce changes should include an entry in this `vNEXT` section as part of their development. When a release is being prepared, a new header will be (manually) created below and the appropriate changes within that release will be moved into the new section. - -## v0.20.4 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.20.3 - -- Fix warning for non-matching `@external` types when the declaration's type is non-null or a list [PR #4392](https://github.com/apollographql/apollo-server/pull/4392) - -## v0.20.2 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.20.1 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.20.0 - -- __FIX__: CSDL complex `@key`s shouldn't result in an unparseable document [PR #4490](https://github.com/apollographql/apollo-server/pull/4490) -- __FIX__: Value type validations - restrict unions, scalars, enums [PR #4496](https://github.com/apollographql/apollo-server/pull/4496) -- __FIX__: Composition - aggregate interfaces for types and interfaces in composed schema [PR #4497](https://github.com/apollographql/apollo-server/pull/4497) -- __FIX__: Create new `@key` validations to prevent invalid compositions [PR #4498](https://github.com/apollographql/apollo-server/pull/4498) -- CSDL: make `fields` directive args parseable [PR #4489](https://github.com/apollographql/apollo-server/pull/4489) - -## v0.19.1 - -- Include new directive definitions in CSDL [PR #4452](https://github.com/apollographql/apollo-server/pull/4452) - -## v0.19.0 - -- New federation composition format. Capture federation metadata in SDL [PR #4405](https://github.com/apollographql/apollo-server/pull/4405) - -## v0.18.1 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.18.0 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.17.0 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.16.11 - -- Reinstate typings for `make-fetch-happen` at the `apollo-gateway` project level (and now, additionally, `apollo-server-plugin-operation-registry`) [PR #4333](https://github.com/apollographql/apollo-server/pull/4333) - -## 0.16.10 - -- The default branch of the repository has been changed to `main`. As this changed a number of references in the repository's `package.json` and `README.md` files (e.g., for badges, links, etc.), this necessitates a release to publish those changes to npm. [PR #4302](https://github.com/apollographql/apollo-server/pull/4302) -- __BREAKING__: Move federation metadata from custom objects on schema nodes over to the `extensions` field on schema nodes which are intended for metadata. This is a breaking change because it narrows the `graphql` peer dependency from `^14.0.2` to `^14.5.0` which is when [`extensions` were introduced](https://github.com/graphql/graphql-js/pull/2097) for all Type System objects. [PR #4302](https://github.com/apollographql/apollo-server/pull/4313) - -## 0.16.9 - -- Handle `@external` validation edge case for interface implementors [#4284](https://github.com/apollographql/apollo-server/pull/4284) - -## 0.16.7 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.16.6 - -- In-house `Maybe` type which was previously imported from `graphql` and has been moved in `v15.1.0`. [#4230](https://github.com/apollographql/apollo-server/pull/4230) -- Remove remaining common primitives from SDL during composition. This is a follow up to [#4209](https://github.com/apollographql/apollo-server/pull/4209), and additionally removes directives which are included in a schema by default (`@skip`, `@include`, `@deprecated`, and `@specifiedBy`) [#4228](https://github.com/apollographql/apollo-server/pull/4209) - -## v0.16.5 - -- Remove federation primitives from SDL during composition. This allows for services to report their *full* SDL from the `{ _service { sdl } }` query as opposed to the previously limited SDL without federation definitions. [#4209](https://github.com/apollographql/apollo-server/pull/4209) - -## v0.16.4 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.16.3 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.16.2 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.16.1 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.16.0 - -- No changes. This package was major versioned to maintain lockstep versioning with @apollo/gateway. - -## v0.15.1 - -- Export `defaultRootOperationNameLookup` and `normalizeTypeDefs`; needed by `@apollo/gateway` to normalize root operation types when reporting to Apollo Graph Manager. [#4071](https://github.com/apollographql/apollo-server/pull/4071) - -## v0.15.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/e37384a49b2bf474eed0de3e9f4a1bebaeee64c7) - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.14.1 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/b898396e9fcd3b9092b168f9aac8466ca186fa6b) - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.14.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/71a3863f59f4ab2c9052c316479d94c6708c4309) - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.13.2 - -- Only changes in the similarly versioned `@apollo/gateway` package. - -## v0.12.1 - -- Fix `v0.12.0` regression: Preserve the `@deprecated` type-system directive as a special case when removing type system directives during composition, resolving an unintentional breaking change introduced by [#3736](https://github.com/apollographql/apollo-server/pull/3736). [#3792](https://github.com/apollographql/apollo-server/pull/3792) - -## v0.12.0 - -- Strip all Type System Directives during composition [#3736](https://github.com/apollographql/apollo-server/pull/3736) -- Prepare for changes in upcoming `graphql@15` release. [#3712](https://github.com/apollographql/apollo-server/pull/3712) - -## v0.11.1 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/2a4c654986a158aaccf947ee56a4bfc48a3173c7) - -- Ignore TypeSystemDirectiveLocations during composition [#3536](https://github.com/apollographql/apollo-server/pull/3536) - -## v0.11.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/93002737d53dd9a50b473ab9cef14849b3e539aa) - -- Begin supporting executable directives in federation [#3464](https://github.com/apollographql/apollo-server/pull/3464) - -## v0.10.3 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/3cdde1b7a71ace6411fbacf82a1a61bf737444a6) - -- Remove `apollo-env` dependency to eliminate circular dependency between the two packages. This circular dependency makes the tooling repo unpublishable when `apollo-env` requires a version bump. [#3463](https://github.com/apollographql/apollo-server/pull/3463) - -## v0.10.1 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/aa200ce24b834320fc79d2605dac340b37d3e434) - -- Use reference-equality when omitting validation rules during composition. [#3338](https://github.com/apollographql/apollo-server/pull/3338) - -## v0.10.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/6100fb5e0797cd1f578ded7cb77b60fac47e58e3) - -- Remove federation directives from composed schema [#3272](https://github.com/apollographql/apollo-server/pull/3272) -- Do not remove Query/Mutation/Subscription types when schema is included if schema references those types [#3260](https://github.com/apollographql/apollo-server/pull/3260) - -## v0.9.1 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/029c8dca3af812ee70589cdb6de749df3d2843d8) - -- Fix value type behavior within composition and execution [#3182](https://github.com/apollographql/apollo-server/pull/2922) - -## v0.6.8 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/5974b2ce405a06bc331230400b9073f6381738d3) - -- Support __typenames if defined by an incoming operation [#2922](https://github.com/apollographql/apollo-server/pull/2922) - -## v0.6.7 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/2ea5887acc43461a5539071f4981a5f70e0d0652) - -- Fix bug in externalUnused validation [#2919](https://github.com/apollographql/apollo-server/pull/2919) - -## v0.6.6 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/183de5f112324def375a45c239955e1bf1608fae) - -- Allow specified directives during validation (@deprecated) [#2823](https://github.com/apollographql/apollo-server/pull/2823) - -## v0.6.1 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/1209839c01b4cac1eb23f42c747296dd9507a8ac) - -- Normalize SDL in a normalization step before validation [#2771](https://github.com/apollographql/apollo-server/pull/2771) diff --git a/gateway/node_modules/@apollo/federation/LICENSE.md b/gateway/node_modules/@apollo/federation/LICENSE.md deleted file mode 100644 index c177b43..0000000 --- a/gateway/node_modules/@apollo/federation/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2020- Apollo Graph, Inc. -Copyright (c) 2019-2020 Meteor Development Group, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/@apollo/federation/README.md b/gateway/node_modules/@apollo/federation/README.md deleted file mode 100644 index 7980e3b..0000000 --- a/gateway/node_modules/@apollo/federation/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# `Apollo Federation Utilities` - -This package provides utilities for creating GraphQL microservices, which can be combined into a single endpoint through tools like [Apollo Gateway](https://github.com/apollographql/apollo-server/tree/main/packages/apollo-gateway). - -For complete documentation, see the [Apollo Federation API reference](https://www.apollographql.com/docs/apollo-server/api/apollo-federation/). - -## Usage - -```js -const { ApolloServer, gql } = require("apollo-server"); -const { buildFederatedSchema } = require("@apollo/federation"); - -const typeDefs = gql` - type Query { - me: User - } - - type User @key(fields: "id") { - id: ID! - username: String - } -`; - -const resolvers = { - Query: { - me() { - return { id: "1", username: "@ava" } - } - }, - User: { - __resolveReference(user, { fetchUserById }){ - return fetchUserById(user.id) - } - } -}; - -const server = new ApolloServer({ - schema: buildFederatedSchema([{ typeDefs, resolvers }]) -}); -``` diff --git a/gateway/node_modules/@apollo/federation/dist/composition/compose.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/compose.d.ts deleted file mode 100644 index 990b551..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/compose.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -import 'apollo-server-env'; -import { GraphQLSchema, GraphQLError, TypeDefinitionNode, DirectiveDefinitionNode, TypeExtensionNode } from 'graphql'; -import { ServiceDefinition, ExternalFieldDefinition, ServiceNameToKeyDirectivesMap } from './types'; -interface TypeDefinitionsMap { - [name: string]: TypeDefinitionNode[]; -} -interface TypeExtensionsMap { - [name: string]: TypeExtensionNode[]; -} -interface DirectiveDefinitionsMap { - [name: string]: { - [serviceName: string]: DirectiveDefinitionNode; - }; -} -interface TypeToServiceMap { - [typeName: string]: { - owningService?: string; - extensionFieldsToOwningServiceMap: { - [fieldName: string]: string; - }; - }; -} -export interface KeyDirectivesMap { - [typeName: string]: ServiceNameToKeyDirectivesMap; -} -declare type ValueTypes = Set; -export declare type ComposedGraphQLSchema = GraphQLSchema & { - extensions: { - serviceList: ServiceDefinition[]; - }; -}; -export declare function buildMapsFromServiceList(serviceList: ServiceDefinition[]): { - typeToServiceMap: TypeToServiceMap; - typeDefinitionsMap: TypeDefinitionsMap; - typeExtensionsMap: TypeExtensionsMap; - directiveDefinitionsMap: DirectiveDefinitionsMap; - externalFields: ExternalFieldDefinition[]; - keyDirectivesMap: KeyDirectivesMap; - valueTypes: ValueTypes; -}; -export declare function buildSchemaFromDefinitionsAndExtensions({ typeDefinitionsMap, typeExtensionsMap, directiveDefinitionsMap, }: { - typeDefinitionsMap: TypeDefinitionsMap; - typeExtensionsMap: TypeExtensionsMap; - directiveDefinitionsMap: DirectiveDefinitionsMap; -}): { - schema: GraphQLSchema; - errors: GraphQLError[]; -}; -export declare function addFederationMetadataToSchemaNodes({ schema, typeToServiceMap, externalFields, keyDirectivesMap, valueTypes, directiveDefinitionsMap, }: { - schema: GraphQLSchema; - typeToServiceMap: TypeToServiceMap; - externalFields: ExternalFieldDefinition[]; - keyDirectivesMap: KeyDirectivesMap; - valueTypes: ValueTypes; - directiveDefinitionsMap: DirectiveDefinitionsMap; -}): void; -export declare function composeServices(services: ServiceDefinition[]): { - schema: ComposedGraphQLSchema; - errors: GraphQLError[]; -}; -export {}; -//# sourceMappingURL=compose.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/compose.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/compose.d.ts.map deleted file mode 100644 index dc1e585..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/compose.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/composition/compose.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EAKb,YAAY,EAQZ,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EAGlB,MAAM,SAAS,CAAC;AAiBjB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,6BAA6B,EAI9B,MAAM,SAAS,CAAC;AAkBjB,UAAU,kBAAkB;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;CACtC;AAED,UAAU,iBAAiB;IACzB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;CACrC;AAGD,UAAU,uBAAuB;IAC/B,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,CAAC;CACpE;AAoBD,UAAU,gBAAgB;IACxB,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iCAAiC,EAAE;YAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACpE,CAAC;CACH;AAcD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,QAAQ,EAAE,MAAM,GAAG,6BAA6B,CAAC;CACnD;AAMD,aAAK,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AAE9B,oBAAY,qBAAqB,GAAG,aAAa,GAAG;IAClD,UAAU,EAAE;QAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAA;CACjD,CAAC;AAMF,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,iBAAiB,EAAE;;;;;;;;EAgNxE;AAED,wBAAgB,uCAAuC,CAAC,EACtD,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,GACxB,EAAE;IACD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,uBAAuB,EAAE,uBAAuB,CAAC;CAClD;;;EAqFA;AAMD,wBAAgB,kCAAkC,CAAC,EACjD,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,uBAAuB,GACxB,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,uBAAuB,EAAE,uBAAuB,CAAC;CAClD,QA8IA;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,EAAE;;;EA6D5D"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/compose.js b/gateway/node_modules/@apollo/federation/dist/composition/compose.js deleted file mode 100644 index f01f697..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/compose.js +++ /dev/null @@ -1,273 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.composeServices = exports.addFederationMetadataToSchemaNodes = exports.buildSchemaFromDefinitionsAndExtensions = exports.buildMapsFromServiceList = void 0; -require("apollo-server-env"); -const graphql_1 = require("graphql"); -const apollo_graphql_1 = require("apollo-graphql"); -const directives_1 = __importDefault(require("../directives")); -const utils_1 = require("./utils"); -const validate_1 = require("graphql/validation/validate"); -const rules_1 = require("./rules"); -const EmptyQueryDefinition = { - kind: graphql_1.Kind.OBJECT_TYPE_DEFINITION, - name: { kind: graphql_1.Kind.NAME, value: utils_1.defaultRootOperationNameLookup.query }, - fields: [], - serviceName: null, -}; -const EmptyMutationDefinition = { - kind: graphql_1.Kind.OBJECT_TYPE_DEFINITION, - name: { kind: graphql_1.Kind.NAME, value: utils_1.defaultRootOperationNameLookup.mutation }, - fields: [], - serviceName: null, -}; -function buildMapsFromServiceList(serviceList) { - const typeDefinitionsMap = Object.create(null); - const typeExtensionsMap = Object.create(null); - const directiveDefinitionsMap = Object.create(null); - const typeToServiceMap = Object.create(null); - const externalFields = []; - const keyDirectivesMap = Object.create(null); - const valueTypes = new Set(); - for (const { typeDefs, name: serviceName } of serviceList) { - const { typeDefsWithoutExternalFields, strippedFields, } = utils_1.stripExternalFieldsFromTypeDefs(typeDefs, serviceName); - externalFields.push(...strippedFields); - const typeDefsWithoutTypeSystemDirectives = utils_1.stripTypeSystemDirectivesFromTypeDefs(typeDefsWithoutExternalFields); - for (const definition of typeDefsWithoutTypeSystemDirectives.definitions) { - if (definition.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION || - definition.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION) { - const typeName = definition.name.value; - for (const keyDirective of utils_1.findDirectivesOnTypeOrField(definition, 'key')) { - if (keyDirective.arguments && - utils_1.isStringValueNode(keyDirective.arguments[0].value)) { - keyDirectivesMap[typeName] = keyDirectivesMap[typeName] || {}; - keyDirectivesMap[typeName][serviceName] = - keyDirectivesMap[typeName][serviceName] || []; - keyDirectivesMap[typeName][serviceName].push(utils_1.parseSelections(keyDirective.arguments[0].value.value)); - } - } - } - if (graphql_1.isTypeDefinitionNode(definition)) { - const typeName = definition.name.value; - if (!typeToServiceMap[typeName]) { - typeToServiceMap[typeName] = { - extensionFieldsToOwningServiceMap: Object.create(null), - }; - } - typeToServiceMap[typeName].owningService = serviceName; - if (typeDefinitionsMap[typeName]) { - const isValueType = utils_1.typeNodesAreEquivalent(typeDefinitionsMap[typeName][typeDefinitionsMap[typeName].length - 1], definition); - if (isValueType) { - valueTypes.add(typeName); - } - typeDefinitionsMap[typeName].push(Object.assign(Object.assign({}, definition), { serviceName })); - } - else { - typeDefinitionsMap[typeName] = [Object.assign(Object.assign({}, definition), { serviceName })]; - } - } - else if (graphql_1.isTypeExtensionNode(definition)) { - const typeName = definition.name.value; - if (definition.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION || - definition.kind === graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION) { - if (!definition.fields) - break; - const fields = utils_1.mapFieldNamesToServiceName(definition.fields, serviceName); - if (typeToServiceMap[typeName]) { - typeToServiceMap[typeName].extensionFieldsToOwningServiceMap = Object.assign(Object.assign({}, typeToServiceMap[typeName].extensionFieldsToOwningServiceMap), fields); - } - else { - typeToServiceMap[typeName] = { - extensionFieldsToOwningServiceMap: fields, - }; - } - } - if (definition.kind === graphql_1.Kind.ENUM_TYPE_EXTENSION) { - if (!definition.values) - break; - const values = utils_1.mapFieldNamesToServiceName(definition.values, serviceName); - if (typeToServiceMap[typeName]) { - typeToServiceMap[typeName].extensionFieldsToOwningServiceMap = Object.assign(Object.assign({}, typeToServiceMap[typeName].extensionFieldsToOwningServiceMap), values); - } - else { - typeToServiceMap[typeName] = { - extensionFieldsToOwningServiceMap: values, - }; - } - } - if (typeExtensionsMap[typeName]) { - typeExtensionsMap[typeName].push(Object.assign(Object.assign({}, definition), { serviceName })); - } - else { - typeExtensionsMap[typeName] = [Object.assign(Object.assign({}, definition), { serviceName })]; - } - } - else if (definition.kind === graphql_1.Kind.DIRECTIVE_DEFINITION) { - const directiveName = definition.name.value; - const executableLocations = definition.locations.filter(location => utils_1.executableDirectiveLocations.includes(location.value)); - if (executableLocations.length === 0) - continue; - const definitionWithExecutableLocations = Object.assign(Object.assign({}, definition), { locations: executableLocations }); - if (directiveDefinitionsMap[directiveName]) { - directiveDefinitionsMap[directiveName][serviceName] = definitionWithExecutableLocations; - } - else { - directiveDefinitionsMap[directiveName] = { - [serviceName]: definitionWithExecutableLocations, - }; - } - } - } - } - if (!typeDefinitionsMap.Query) - typeDefinitionsMap.Query = [EmptyQueryDefinition]; - if (typeExtensionsMap.Mutation && !typeDefinitionsMap.Mutation) - typeDefinitionsMap.Mutation = [EmptyMutationDefinition]; - return { - typeToServiceMap, - typeDefinitionsMap, - typeExtensionsMap, - directiveDefinitionsMap, - externalFields, - keyDirectivesMap, - valueTypes, - }; -} -exports.buildMapsFromServiceList = buildMapsFromServiceList; -function buildSchemaFromDefinitionsAndExtensions({ typeDefinitionsMap, typeExtensionsMap, directiveDefinitionsMap, }) { - let errors = undefined; - let schema = new graphql_1.GraphQLSchema({ - query: undefined, - directives: [...graphql_1.specifiedDirectives, ...directives_1.default], - }); - function nodeHasInterfaces(node) { - return 'interfaces' in node; - } - const definitionsDocument = { - kind: graphql_1.Kind.DOCUMENT, - definitions: [ - ...Object.values(typeDefinitionsMap).flatMap(typeDefinitions => { - if (!typeDefinitions.some(nodeHasInterfaces)) - return typeDefinitions; - const uniqueInterfaces = typeDefinitions.reduce((map, objectTypeDef) => { - var _a; - (_a = objectTypeDef.interfaces) === null || _a === void 0 ? void 0 : _a.forEach((iface) => map.set(iface.name.value, iface)); - return map; - }, new Map()); - if (uniqueInterfaces.size === 0) - return typeDefinitions; - const [first, ...rest] = typeDefinitions; - return [ - ...rest, - Object.assign(Object.assign({}, first), { interfaces: Array.from(uniqueInterfaces.values()) }), - ]; - }), - ...Object.values(directiveDefinitionsMap).map(definitions => Object.values(definitions)[0]), - ], - }; - errors = validate_1.validateSDL(definitionsDocument, schema, rules_1.compositionRules); - schema = graphql_1.extendSchema(schema, definitionsDocument, { assumeValidSDL: true }); - const extensionsDocument = { - kind: graphql_1.Kind.DOCUMENT, - definitions: Object.values(typeExtensionsMap).flat(), - }; - errors.push(...validate_1.validateSDL(extensionsDocument, schema, rules_1.compositionRules)); - schema = graphql_1.extendSchema(schema, extensionsDocument, { assumeValidSDL: true }); - schema = new graphql_1.GraphQLSchema(Object.assign(Object.assign({}, schema.toConfig()), { directives: [ - ...schema.getDirectives().filter(x => !utils_1.isFederationDirective(x)), - ] })); - return { schema, errors }; -} -exports.buildSchemaFromDefinitionsAndExtensions = buildSchemaFromDefinitionsAndExtensions; -function addFederationMetadataToSchemaNodes({ schema, typeToServiceMap, externalFields, keyDirectivesMap, valueTypes, directiveDefinitionsMap, }) { - var _a; - for (const [typeName, { owningService, extensionFieldsToOwningServiceMap },] of Object.entries(typeToServiceMap)) { - const namedType = schema.getType(typeName); - if (!namedType) - continue; - const isValueType = valueTypes.has(typeName); - const serviceName = isValueType ? null : owningService; - const federationMetadata = Object.assign(Object.assign(Object.assign({}, utils_1.getFederationMetadata(namedType)), { serviceName, - isValueType }), (keyDirectivesMap[typeName] && { - keys: keyDirectivesMap[typeName], - })); - namedType.extensions = Object.assign(Object.assign({}, namedType.extensions), { federation: federationMetadata }); - if (graphql_1.isObjectType(namedType)) { - for (const field of Object.values(namedType.getFields())) { - const [providesDirective] = utils_1.findDirectivesOnTypeOrField(field.astNode, 'provides'); - if (providesDirective && - providesDirective.arguments && - utils_1.isStringValueNode(providesDirective.arguments[0].value)) { - const fieldFederationMetadata = Object.assign(Object.assign({}, utils_1.getFederationMetadata(field)), { serviceName, provides: utils_1.parseSelections(providesDirective.arguments[0].value.value), belongsToValueType: isValueType }); - field.extensions = Object.assign(Object.assign({}, field.extensions), { federation: fieldFederationMetadata }); - } - } - } - for (const [fieldName, extendingServiceName] of Object.entries(extensionFieldsToOwningServiceMap)) { - if (graphql_1.isObjectType(namedType)) { - const field = namedType.getFields()[fieldName]; - const fieldFederationMetadata = Object.assign(Object.assign({}, utils_1.getFederationMetadata(field)), { serviceName: extendingServiceName }); - field.extensions = Object.assign(Object.assign({}, field.extensions), { federation: fieldFederationMetadata }); - const [requiresDirective] = utils_1.findDirectivesOnTypeOrField(field.astNode, 'requires'); - if (requiresDirective && - requiresDirective.arguments && - utils_1.isStringValueNode(requiresDirective.arguments[0].value)) { - const fieldFederationMetadata = Object.assign(Object.assign({}, utils_1.getFederationMetadata(field)), { requires: utils_1.parseSelections(requiresDirective.arguments[0].value.value) }); - field.extensions = Object.assign(Object.assign({}, field.extensions), { federation: fieldFederationMetadata }); - } - } - } - } - for (const field of externalFields) { - const namedType = schema.getType(field.parentTypeName); - if (!namedType) - continue; - const existingMetadata = utils_1.getFederationMetadata(namedType); - const typeFederationMetadata = Object.assign(Object.assign({}, existingMetadata), { externals: Object.assign(Object.assign({}, existingMetadata === null || existingMetadata === void 0 ? void 0 : existingMetadata.externals), { [field.serviceName]: [ - ...(((_a = existingMetadata === null || existingMetadata === void 0 ? void 0 : existingMetadata.externals) === null || _a === void 0 ? void 0 : _a[field.serviceName]) || []), - field, - ] }) }); - namedType.extensions = Object.assign(Object.assign({}, namedType.extensions), { federation: typeFederationMetadata }); - } - for (const directiveName of Object.keys(directiveDefinitionsMap)) { - const directive = schema.getDirective(directiveName); - if (!directive) - continue; - const directiveFederationMetadata = Object.assign(Object.assign({}, utils_1.getFederationMetadata(directive)), { directiveDefinitions: directiveDefinitionsMap[directiveName] }); - directive.extensions = Object.assign(Object.assign({}, directive.extensions), { federation: directiveFederationMetadata }); - } -} -exports.addFederationMetadataToSchemaNodes = addFederationMetadataToSchemaNodes; -function composeServices(services) { - const { typeToServiceMap, typeDefinitionsMap, typeExtensionsMap, directiveDefinitionsMap, externalFields, keyDirectivesMap, valueTypes, } = buildMapsFromServiceList(services); - let { schema, errors } = buildSchemaFromDefinitionsAndExtensions({ - typeDefinitionsMap, - typeExtensionsMap, - directiveDefinitionsMap, - }); - schema = new graphql_1.GraphQLSchema(Object.assign(Object.assign(Object.assign({}, schema.toConfig()), utils_1.mapValues(utils_1.defaultRootOperationNameLookup, typeName => typeName - ? schema.getType(typeName) - : undefined)), { extensions: { - serviceList: services - } })); - schema = apollo_graphql_1.transformSchema(schema, type => { - if (graphql_1.isObjectType(type)) { - const config = type.toConfig(); - return new graphql_1.GraphQLObjectType(Object.assign(Object.assign({}, config), { interfaces: Array.from(new Set(config.interfaces)) })); - } - return undefined; - }); - addFederationMetadataToSchemaNodes({ - schema, - typeToServiceMap, - externalFields, - keyDirectivesMap, - valueTypes, - directiveDefinitionsMap, - }); - return { schema: schema, errors }; -} -exports.composeServices = composeServices; -//# sourceMappingURL=compose.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/compose.js.map b/gateway/node_modules/@apollo/federation/dist/composition/compose.js.map deleted file mode 100644 index 6bbbf0e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/compose.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/composition/compose.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.d.ts deleted file mode 100644 index f88a647..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ServiceDefinition } from './types'; -export declare function composeAndValidate(serviceList: ServiceDefinition[]): { - schema: import("./compose").ComposedGraphQLSchema; - warnings: never[]; - errors: import("graphql").GraphQLError[]; - composedSdl: string | undefined; -}; -//# sourceMappingURL=composeAndValidate.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.d.ts.map deleted file mode 100644 index 5ed7f5e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"composeAndValidate.d.ts","sourceRoot":"","sources":["../../src/composition/composeAndValidate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAI5C,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,EAAE;;;;;EAoClE"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.js b/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.js deleted file mode 100644 index 0898c5a..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.composeAndValidate = void 0; -const compose_1 = require("./compose"); -const validate_1 = require("./validate"); -const normalize_1 = require("./normalize"); -const printComposedSdl_1 = require("../service/printComposedSdl"); -function composeAndValidate(serviceList) { - const errors = validate_1.validateServicesBeforeNormalization(serviceList); - const normalizedServiceList = serviceList.map(({ name, typeDefs }) => ({ - name, - typeDefs: normalize_1.normalizeTypeDefs(typeDefs), - })); - errors.push(...validate_1.validateServicesBeforeComposition(normalizedServiceList)); - const compositionResult = compose_1.composeServices(normalizedServiceList); - errors.push(...compositionResult.errors); - errors.push(...validate_1.validateComposedSchema({ - schema: compositionResult.schema, - serviceList, - })); - const composedSdl = errors.length === 0 - ? printComposedSdl_1.printComposedSdl(compositionResult.schema, serviceList) - : undefined; - return { - schema: compositionResult.schema, - warnings: [], - errors, - composedSdl, - }; -} -exports.composeAndValidate = composeAndValidate; -//# sourceMappingURL=composeAndValidate.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.js.map b/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.js.map deleted file mode 100644 index e2b02ba..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/composeAndValidate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"composeAndValidate.js","sourceRoot":"","sources":["../../src/composition/composeAndValidate.ts"],"names":[],"mappings":";;;AAAA,uCAA4C;AAC5C,yCAIoB;AAEpB,2CAAgD;AAChD,kEAA+D;AAE/D,SAAgB,kBAAkB,CAAC,WAAgC;IACjE,MAAM,MAAM,GAAG,8CAAmC,CAAC,WAAW,CAAC,CAAC;IAEhE,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI;QACJ,QAAQ,EAAE,6BAAiB,CAAC,QAAQ,CAAC;KACtC,CAAC,CAAC,CAAC;IAGJ,MAAM,CAAC,IAAI,CAAC,GAAG,4CAAiC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAGzE,MAAM,iBAAiB,GAAG,yBAAe,CAAC,qBAAqB,CAAC,CAAC;IACjE,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAGzC,MAAM,CAAC,IAAI,CACT,GAAG,iCAAsB,CAAC;QACxB,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,WAAW;KACZ,CAAC,CACH,CAAC;IAGF,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC,mCAAgB,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC;QACzD,CAAC,CAAC,SAAS,CAAC;IAGhB,OAAO;QACL,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,QAAQ,EAAE,EAAE;QACZ,MAAM;QACN,WAAW;KACZ,CAAC;AACJ,CAAC;AApCD,gDAoCC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/index.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/index.d.ts deleted file mode 100644 index 7cd7d16..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './compose'; -export * from './composeAndValidate'; -export * from './types'; -export { compositionRules } from './rules'; -export { normalizeTypeDefs } from './normalize'; -export { defaultRootOperationNameLookup } from './utils'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/index.d.ts.map deleted file mode 100644 index 5ea9ade..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/index.js b/gateway/node_modules/@apollo/federation/dist/composition/index.js deleted file mode 100644 index 740be8f..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./compose"), exports); -__exportStar(require("./composeAndValidate"), exports); -__exportStar(require("./types"), exports); -var rules_1 = require("./rules"); -Object.defineProperty(exports, "compositionRules", { enumerable: true, get: function () { return rules_1.compositionRules; } }); -var normalize_1 = require("./normalize"); -Object.defineProperty(exports, "normalizeTypeDefs", { enumerable: true, get: function () { return normalize_1.normalizeTypeDefs; } }); -var utils_1 = require("./utils"); -Object.defineProperty(exports, "defaultRootOperationNameLookup", { enumerable: true, get: function () { return utils_1.defaultRootOperationNameLookup; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/index.js.map b/gateway/node_modules/@apollo/federation/dist/composition/index.js.map deleted file mode 100644 index 867ef0c..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,uDAAqC;AACrC,0CAAwB;AACxB,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AACzB,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA;AAC1B,iCAAyD;AAAhD,uHAAA,8BAA8B,OAAA"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/normalize.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/normalize.d.ts deleted file mode 100644 index 65f88cd..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/normalize.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { DocumentNode } from 'graphql'; -export declare function normalizeTypeDefs(typeDefs: DocumentNode): any; -export declare function defaultRootOperationTypes(typeDefs: DocumentNode): DocumentNode; -export declare function replaceExtendedDefinitionsWithExtensions(typeDefs: DocumentNode): any; -export declare function stripCommonPrimitives(document: DocumentNode): any; -//# sourceMappingURL=normalize.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/normalize.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/normalize.d.ts.map deleted file mode 100644 index f82791c..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/normalize.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/composition/normalize.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAQb,MAAM,SAAS,CAAC;AASjB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,OASvD;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,GACrB,YAAY,CA8Ld;AAID,wBAAgB,wCAAwC,CACtD,QAAQ,EAAE,YAAY,OA6BvB;AAaD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,OAmD3D"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/normalize.js b/gateway/node_modules/@apollo/federation/dist/composition/normalize.js deleted file mode 100644 index 8afd9c7d..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/normalize.js +++ /dev/null @@ -1,145 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.stripCommonPrimitives = exports.replaceExtendedDefinitionsWithExtensions = exports.defaultRootOperationTypes = exports.normalizeTypeDefs = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("./utils"); -const directives_1 = __importDefault(require("../directives")); -function normalizeTypeDefs(typeDefs) { - return stripCommonPrimitives(defaultRootOperationTypes(replaceExtendedDefinitionsWithExtensions(typeDefs))); -} -exports.normalizeTypeDefs = normalizeTypeDefs; -function defaultRootOperationTypes(typeDefs) { - const defaultRootOperationNames = Object.values(utils_1.defaultRootOperationNameLookup); - let rootOperationTypeMap = Object.create(null); - let hasSchemaDefinitionOrExtension = false; - graphql_1.visit(typeDefs, { - OperationTypeDefinition(node) { - hasSchemaDefinitionOrExtension = true; - rootOperationTypeMap[node.type.name.value] = - utils_1.defaultRootOperationNameLookup[node.operation]; - }, - }); - if (!hasSchemaDefinitionOrExtension) { - rootOperationTypeMap = { - Query: 'Query', - Mutation: 'Mutation', - Subscription: 'Subscription', - }; - } - let schemaWithoutConflictingDefaultDefinitions; - if (!hasSchemaDefinitionOrExtension) { - schemaWithoutConflictingDefaultDefinitions = typeDefs; - } - else { - schemaWithoutConflictingDefaultDefinitions = graphql_1.visit(typeDefs, { - ObjectTypeDefinition(node) { - if (defaultRootOperationNames.includes(node.name.value) && - !rootOperationTypeMap[node.name.value]) { - return null; - } - return; - }, - ObjectTypeExtension(node) { - if (defaultRootOperationNames.includes(node.name.value) && - !rootOperationTypeMap[node.name.value]) { - return null; - } - return; - }, - FieldDefinition(node) { - if (node.type.kind === graphql_1.Kind.NAMED_TYPE && - defaultRootOperationNames.includes(node.type.name.value)) { - return null; - } - if (node.type.kind === graphql_1.Kind.NON_NULL_TYPE && - node.type.type.kind === graphql_1.Kind.NAMED_TYPE && - defaultRootOperationNames.includes(node.type.type.name.value)) { - return null; - } - return; - }, - }); - } - const schemaWithDefaultRootTypes = graphql_1.visit(schemaWithoutConflictingDefaultDefinitions, { - SchemaDefinition() { - return null; - }, - SchemaExtension() { - return null; - }, - ObjectTypeDefinition(node) { - if (node.name.value in rootOperationTypeMap || - defaultRootOperationNames.includes(node.name.value)) { - return Object.assign(Object.assign({}, node), { name: Object.assign(Object.assign({}, node.name), { value: rootOperationTypeMap[node.name.value] || node.name.value }), kind: graphql_1.Kind.OBJECT_TYPE_EXTENSION }); - } - return; - }, - ObjectTypeExtension(node) { - if (node.name.value in rootOperationTypeMap || - defaultRootOperationNames.includes(node.name.value)) { - return Object.assign(Object.assign({}, node), { name: Object.assign(Object.assign({}, node.name), { value: rootOperationTypeMap[node.name.value] || node.name.value }) }); - } - return; - }, - NamedType(node) { - if (node.name.value in rootOperationTypeMap) { - return Object.assign(Object.assign({}, node), { name: Object.assign(Object.assign({}, node.name), { value: rootOperationTypeMap[node.name.value] }) }); - } - return; - }, - }); - return schemaWithDefaultRootTypes; -} -exports.defaultRootOperationTypes = defaultRootOperationTypes; -function replaceExtendedDefinitionsWithExtensions(typeDefs) { - const typeDefsWithExtendedTypesReplaced = graphql_1.visit(typeDefs, { - ObjectTypeDefinition: visitor, - InterfaceTypeDefinition: visitor, - }); - function visitor(node) { - const isExtensionDefinition = utils_1.findDirectivesOnTypeOrField(node, 'extends').length > 0; - if (!isExtensionDefinition) { - return node; - } - const filteredDirectives = node.directives && - node.directives.filter(directive => directive.name.value !== 'extends'); - return Object.assign(Object.assign(Object.assign({}, node), (filteredDirectives && { directives: filteredDirectives })), { kind: utils_1.defKindToExtKind[node.kind] }); - } - return typeDefsWithExtendedTypesReplaced; -} -exports.replaceExtendedDefinitionsWithExtensions = replaceExtendedDefinitionsWithExtensions; -function stripCommonPrimitives(document) { - const typeDefinitionVisitor = (node) => { - var _a; - if (node.name.value === utils_1.defaultRootOperationNameLookup.query) { - const filteredFieldDefinitions = (_a = node.fields) === null || _a === void 0 ? void 0 : _a.filter((fieldDefinition) => !utils_1.reservedRootFields.includes(fieldDefinition.name.value)); - if (!filteredFieldDefinitions || filteredFieldDefinitions.length === 0) { - return null; - } - return Object.assign(Object.assign({}, node), { fields: filteredFieldDefinitions }); - } - const isFederationType = node.name.value === '_Service'; - return isFederationType ? null : node; - }; - return graphql_1.visit(document, { - DirectiveDefinition(node) { - const isCommonDirective = [...directives_1.default, ...graphql_1.specifiedDirectives].some((directive) => directive.name === node.name.value); - return isCommonDirective ? null : node; - }, - ScalarTypeDefinition(node) { - const isFederationScalar = ['_Any', '_FieldSet'].includes(node.name.value); - return isFederationScalar ? null : node; - }, - UnionTypeDefinition(node) { - const isFederationUnion = node.name.value === "_Entity"; - return isFederationUnion ? null : node; - }, - ObjectTypeDefinition: typeDefinitionVisitor, - ObjectTypeExtension: typeDefinitionVisitor, - }); -} -exports.stripCommonPrimitives = stripCommonPrimitives; -//# sourceMappingURL=normalize.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/normalize.js.map b/gateway/node_modules/@apollo/federation/dist/composition/normalize.js.map deleted file mode 100644 index 262eb94..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/normalize.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/composition/normalize.ts"],"names":[],"mappings":";;;;;;AACA,qCASiB;AACjB,mCAKiB;AACjB,+DAAiD;AAEjD,SAAgB,iBAAiB,CAAC,QAAsB;IAItD,OAAO,qBAAqB,CAC1B,yBAAyB,CACvB,wCAAwC,CAAC,QAAQ,CAAC,CACnD,CACF,CAAC;AACJ,CAAC;AATD,8CASC;AAED,SAAgB,yBAAyB,CACvC,QAAsB;IAGtB,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAC7C,sCAA8B,CAC/B,CAAC;IAIF,IAAI,oBAAoB,GAEpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAExB,IAAI,8BAA8B,GAAG,KAAK,CAAC;IAC3C,eAAK,CAAC,QAAQ,EAAE;QACd,uBAAuB,CAAC,IAAI;YAG1B,8BAA8B,GAAG,IAAI,CAAC;YAEtC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxC,sCAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC;KACF,CAAC,CAAC;IAGH,IAAI,CAAC,8BAA8B,EAAE;QACnC,oBAAoB,GAAG;YACrB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,cAAc;SAC7B,CAAC;KACH;IAKD,IAAI,0CAA0C,CAAC;IAC/C,IAAI,CAAC,8BAA8B,EAAE;QAGnC,0CAA0C,GAAG,QAAQ,CAAC;KACvD;SAAM;QAeL,0CAA0C,GAAG,eAAK,CAAC,QAAQ,EAAE;YAC3D,oBAAoB,CAAC,IAAI;gBACvB,IACK,yBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBACjE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACxC;oBACA,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO;YACT,CAAC;YACD,mBAAmB,CAAC,IAAI;gBACtB,IACK,yBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBACjE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACxC;oBACA,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO;YACT,CAAC;YAcD,eAAe,CAAC,IAAI;gBAClB,IACE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,UAAU;oBACjC,yBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACtE;oBACA,OAAO,IAAI,CAAC;iBACb;gBAED,IACE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,aAAa;oBACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,UAAU;oBACtC,yBAAsC,CAAC,QAAQ,CAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAC1B,EACD;oBACA,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO;YACT,CAAC;SACF,CAAC,CAAC;KACJ;IAED,MAAM,0BAA0B,GAAG,eAAK,CACtC,0CAA0C,EAC1C;QAGE,gBAAgB;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QACD,eAAe;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,oBAAoB,CAAC,IAAI;YACvB,IACE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,oBAAoB;gBACtC,yBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACjE;gBACA,uCACK,IAAI,KACP,IAAI,kCACC,IAAI,CAAC,IAAI,KACZ,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAEjE,IAAI,EAAE,cAAI,CAAC,qBAAqB,IAChC;aACH;YACD,OAAO;QACT,CAAC;QAQD,mBAAmB,CAAC,IAAI;YACtB,IACE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,oBAAoB;gBACtC,yBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACjE;gBACA,uCACK,IAAI,KACP,IAAI,kCACC,IAAI,CAAC,IAAI,KACZ,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,OAEjE;aACH;YACD,OAAO;QACT,CAAC;QAgBD,SAAS,CAAC,IAAI;YACZ,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,oBAAoB,EAAE;gBAC3C,uCACK,IAAI,KACP,IAAI,kCACC,IAAI,CAAC,IAAI,KACZ,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAE9C;aACH;YACD,OAAO;QACT,CAAC;KACF,CACF,CAAC;IAEF,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAhMD,8DAgMC;AAID,SAAgB,wCAAwC,CACtD,QAAsB;IAEtB,MAAM,iCAAiC,GAAG,eAAK,CAAC,QAAQ,EAAE;QACxD,oBAAoB,EAAE,OAAO;QAC7B,uBAAuB,EAAE,OAAO;KACjC,CAAC,CAAC;IAEH,SAAS,OAAO,CACd,IAA4D;QAE5D,MAAM,qBAAqB,GACzB,mCAA2B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAE1D,IAAI,CAAC,qBAAqB,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,kBAAkB,GACtB,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAE1E,qDACK,IAAI,GACJ,CAAC,kBAAkB,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,KAC7D,IAAI,EAAE,wBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IACjC;IACJ,CAAC;IAED,OAAO,iCAAiC,CAAC;AAC3C,CAAC;AA9BD,4FA8BC;AAaD,SAAgB,qBAAqB,CAAC,QAAsB;IAC1D,MAAM,qBAAqB,GAGvB,CAAC,IAAI,EAAE,EAAE;;QAEX,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,sCAA8B,CAAC,KAAK,EAAE;YAC5D,MAAM,wBAAwB,SAAG,IAAI,CAAC,MAAM,0CAAE,MAAM,CAClD,CAAC,eAAe,EAAE,EAAE,CAClB,CAAC,0BAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAC3D,CAAC;YAGF,IAAI,CAAC,wBAAwB,IAAI,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtE,OAAO,IAAI,CAAC;aACb;YAED,uCACK,IAAI,KACP,MAAM,EAAE,wBAAwB,IAChC;SACH;QAGD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC;QACxD,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC,CAAC;IAEF,OAAO,eAAK,CAAC,QAAQ,EAAE;QAErB,mBAAmB,CAAC,IAAI;YACtB,MAAM,iBAAiB,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,6BAAmB,CAAC,CAAC,IAAI,CAC9E,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAClD,CAAC;YACF,OAAO,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QAED,oBAAoB,CAAC,IAAI;YACvB,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CACvD,IAAI,CAAC,IAAI,CAAC,KAAK,CAChB,CAAC;YACF,OAAO,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QAED,mBAAmB,CAAC,IAAI;YACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;YACxD,OAAO,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QACD,oBAAoB,EAAE,qBAAqB;QAC3C,mBAAmB,EAAE,qBAAqB;KAC3C,CAAC,CAAC;AACL,CAAC;AAnDD,sDAmDC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/rules.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/rules.d.ts deleted file mode 100644 index d5729bf..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/rules.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const compositionRules: import("graphql/validation/ValidationContext").SDLValidationRule[]; -//# sourceMappingURL=rules.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/rules.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/rules.d.ts.map deleted file mode 100644 index 6820054..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/rules.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/composition/rules.ts"],"names":[],"mappings":"AAkDA,eAAO,MAAM,gBAAgB,oEAQzB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/rules.js b/gateway/node_modules/@apollo/federation/dist/composition/rules.js deleted file mode 100644 index 02ee0f8..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/rules.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.compositionRules = void 0; -const specifiedRules_1 = require("graphql/validation/specifiedRules"); -const graphql_1 = require("graphql"); -const UniqueTypeNames_1 = require("graphql/validation/rules/UniqueTypeNames"); -const UniqueEnumValueNames_1 = require("graphql/validation/rules/UniqueEnumValueNames"); -const PossibleTypeExtensions_1 = require("graphql/validation/rules/PossibleTypeExtensions"); -const UniqueFieldDefinitionNames_1 = require("graphql/validation/rules/UniqueFieldDefinitionNames"); -const sdl_1 = require("./validate/sdl"); -const omit = [ - graphql_1.UniqueDirectivesPerLocationRule, - UniqueTypeNames_1.UniqueTypeNames, - UniqueEnumValueNames_1.UniqueEnumValueNames, - PossibleTypeExtensions_1.PossibleTypeExtensions, - UniqueFieldDefinitionNames_1.UniqueFieldDefinitionNames, -]; -exports.compositionRules = specifiedRules_1.specifiedSDLRules - .filter(rule => !omit.includes(rule)) - .concat([ - sdl_1.UniqueFieldDefinitionNames, - sdl_1.UniqueTypeNamesWithFields, - sdl_1.MatchingEnums, - sdl_1.UniqueUnionTypes, - sdl_1.PossibleTypeExtensions, -]); -//# sourceMappingURL=rules.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/rules.js.map b/gateway/node_modules/@apollo/federation/dist/composition/rules.js.map deleted file mode 100644 index 16d4b3b..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/rules.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/composition/rules.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AAatE,qCAEiB;AACjB,8EAEkD;AAClD,wFAEuD;AACvD,4FAEyD;AACzD,oGAE6D;AAO7D,wCAMyB;AAEzB,MAAM,IAAI,GAAG;IACX,yCAA4C;IAC5C,iCAA4B;IAC5B,2CAAiC;IACjC,+CAAmC;IACnC,uDAAuC;CACxC,CAAC;AAEW,QAAA,gBAAgB,GAAG,kCAAiB;KAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACpC,MAAM,CAAC;IACN,gCAA0C;IAC1C,+BAAwC;IACxC,mBAA4B;IAC5B,sBAA+B;IAC/B,4BAAqC;CACtC,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/types.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/types.d.ts deleted file mode 100644 index 1288f11..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/types.d.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { SelectionNode, DocumentNode, FieldDefinitionNode, DirectiveDefinitionNode } from 'graphql'; -export declare type Maybe = null | undefined | T; -export declare type ServiceName = string | null; -export declare type DefaultRootOperationTypeName = 'Query' | 'Mutation' | 'Subscription'; -export interface ExternalFieldDefinition { - field: FieldDefinitionNode; - parentTypeName: string; - serviceName: string; -} -export interface ServiceNameToKeyDirectivesMap { - [serviceName: string]: ReadonlyArray[]; -} -export interface FederationType { - serviceName?: ServiceName; - keys?: ServiceNameToKeyDirectivesMap; - externals?: { - [serviceName: string]: ExternalFieldDefinition[]; - }; - isValueType?: boolean; -} -export interface FederationField { - serviceName?: ServiceName; - requires?: ReadonlyArray; - provides?: ReadonlyArray; - belongsToValueType?: boolean; -} -export interface FederationDirective { - directiveDefinitions: { - [serviceName: string]: DirectiveDefinitionNode; - }; -} -export interface ServiceDefinition { - typeDefs: DocumentNode; - name: string; - url?: string; -} -declare module 'graphql/language/ast' { - interface UnionTypeDefinitionNode { - serviceName?: string | null; - } - interface UnionTypeExtensionNode { - serviceName?: string | null; - } - interface EnumTypeDefinitionNode { - serviceName?: string | null; - } - interface EnumTypeExtensionNode { - serviceName?: string | null; - } - interface ScalarTypeDefinitionNode { - serviceName?: string | null; - } - interface ScalarTypeExtensionNode { - serviceName?: string | null; - } - interface ObjectTypeDefinitionNode { - serviceName?: string | null; - } - interface ObjectTypeExtensionNode { - serviceName?: string | null; - } - interface InterfaceTypeDefinitionNode { - serviceName?: string | null; - } - interface InterfaceTypeExtensionNode { - serviceName?: string | null; - } - interface InputObjectTypeDefinitionNode { - serviceName?: string | null; - } - interface InputObjectTypeExtensionNode { - serviceName?: string | null; - } -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/types.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/types.d.ts.map deleted file mode 100644 index 6f7f253..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/composition/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB,oBAAY,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;AAE5C,oBAAY,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AAExC,oBAAY,4BAA4B,GACpC,OAAO,GACP,UAAU,GACV,cAAc,CAAC;AAEnB,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,6BAA6B,CAAC;IACrC,SAAS,CAAC,EAAE;QACV,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAAC;KAClD,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,EAAE;QACpB,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAAC;KAChD,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,uBAAuB;QAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IACD,UAAU,sBAAsB;QAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,sBAAsB;QAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,qBAAqB;QAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,wBAAwB;QAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,uBAAuB;QAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,wBAAwB;QAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,uBAAuB;QAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,2BAA2B;QACnC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,0BAA0B;QAClC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,6BAA6B;QACrC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAU,4BAA4B;QACpC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;CACF"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/types.js b/gateway/node_modules/@apollo/federation/dist/composition/types.js deleted file mode 100644 index 11e638d..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/types.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/types.js.map b/gateway/node_modules/@apollo/federation/dist/composition/types.js.map deleted file mode 100644 index 71498ab..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/composition/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/utils.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/utils.d.ts deleted file mode 100644 index 4edc0ec..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/utils.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import 'apollo-server-env'; -import { FieldDefinitionNode, StringValueNode, NameNode, DocumentNode, DirectiveNode, GraphQLNamedType, GraphQLError, GraphQLSchema, GraphQLObjectType, GraphQLField, SelectionNode, TypeDefinitionNode, TypeExtensionNode, ASTNode, DirectiveDefinitionNode, GraphQLDirective, OperationTypeNode } from 'graphql'; -import { ExternalFieldDefinition, DefaultRootOperationTypeName, Maybe, FederationType, FederationDirective, FederationField } from './types'; -export declare function isStringValueNode(node: any): node is StringValueNode; -export declare function mapFieldNamesToServiceName(fields: ReadonlyArray, serviceName: string): any; -export declare function findDirectivesOnTypeOrField(node: Maybe, directiveName: string): DirectiveNode[]; -export declare function stripExternalFieldsFromTypeDefs(typeDefs: DocumentNode, serviceName: string): { - typeDefsWithoutExternalFields: DocumentNode; - strippedFields: ExternalFieldDefinition[]; -}; -export declare function stripTypeSystemDirectivesFromTypeDefs(typeDefs: DocumentNode): DocumentNode; -export declare function parseSelections(source: string): readonly SelectionNode[]; -export declare function hasMatchingFieldInDirectives({ directives, fieldNameToMatch, namedType, }: { - directives: DirectiveNode[]; - fieldNameToMatch: String; - namedType: GraphQLNamedType; -}): boolean; -export declare const logServiceAndType: (serviceName: string, typeName: string, fieldName?: string | undefined) => string; -export declare function logDirective(directiveName: string): string; -export declare function errorWithCode(code: string, message: string, nodes?: ReadonlyArray | ASTNode | undefined): GraphQLError; -export declare function findTypesContainingFieldWithReturnType(schema: GraphQLSchema, node: GraphQLField): GraphQLObjectType[]; -export declare function findFieldsThatReturnType({ schema, typeToFind, }: { - schema: GraphQLSchema; - typeToFind: GraphQLNamedType; -}): GraphQLField[]; -export declare function selectionIncludesField({ selections, selectionSetType, typeToFind, fieldToFind, }: { - selections: readonly SelectionNode[]; - selectionSetType: GraphQLObjectType; - typeToFind: GraphQLObjectType; - fieldToFind: string; -}): boolean; -export declare function isTypeNodeAnEntity(node: TypeDefinitionNode | TypeExtensionNode): boolean; -export declare function diffTypeNodes(firstNode: TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode, secondNode: TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode): { - name: string[]; - kind: ("ScalarTypeDefinition" | "ObjectTypeDefinition" | "InterfaceTypeDefinition" | "UnionTypeDefinition" | "EnumTypeDefinition" | "InputObjectTypeDefinition" | "DirectiveDefinition" | "ScalarTypeExtension" | "ObjectTypeExtension" | "InterfaceTypeExtension" | "UnionTypeExtension" | "EnumTypeExtension" | "InputObjectTypeExtension")[]; - fields: { - [fieldName: string]: string[]; - }; - unionTypes: { - [typeName: string]: boolean; - }; - locations: string[]; - args: { - [argumentName: string]: string[]; - }; -}; -export declare function typeNodesAreEquivalent(firstNode: TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode, secondNode: TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode): boolean; -export declare const defKindToExtKind: { - [kind: string]: string; -}; -export declare function mapValues(object: Record, callback: (value: T) => U): Record; -export declare function isNotNullOrUndefined(value: T | null | undefined): value is T; -export declare const executableDirectiveLocations: string[]; -export declare function isFederationDirective(directive: GraphQLDirective): boolean; -export declare const reservedRootFields: string[]; -export declare const defaultRootOperationNameLookup: { - [node in OperationTypeNode]: DefaultRootOperationTypeName; -}; -export declare function getFederationMetadata(obj: GraphQLNamedType): FederationType | undefined; -export declare function getFederationMetadata(obj: GraphQLField): FederationField | undefined; -export declare function getFederationMetadata(obj: GraphQLDirective): FederationDirective | undefined; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/utils.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/utils.d.ts.map deleted file mode 100644 index c7bfc07..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/composition/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/utils.js b/gateway/node_modules/@apollo/federation/dist/composition/utils.js deleted file mode 100644 index ad257ef..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/utils.js +++ /dev/null @@ -1,324 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getFederationMetadata = exports.defaultRootOperationNameLookup = exports.reservedRootFields = exports.isFederationDirective = exports.executableDirectiveLocations = exports.isNotNullOrUndefined = exports.mapValues = exports.defKindToExtKind = exports.typeNodesAreEquivalent = exports.diffTypeNodes = exports.isTypeNodeAnEntity = exports.selectionIncludesField = exports.findFieldsThatReturnType = exports.findTypesContainingFieldWithReturnType = exports.errorWithCode = exports.logDirective = exports.logServiceAndType = exports.hasMatchingFieldInDirectives = exports.parseSelections = exports.stripTypeSystemDirectivesFromTypeDefs = exports.stripExternalFieldsFromTypeDefs = exports.findDirectivesOnTypeOrField = exports.mapFieldNamesToServiceName = exports.isStringValueNode = void 0; -require("apollo-server-env"); -const graphql_1 = require("graphql"); -const directives_1 = __importDefault(require("../directives")); -function isStringValueNode(node) { - return node.kind === graphql_1.Kind.STRING; -} -exports.isStringValueNode = isStringValueNode; -function mapFieldNamesToServiceName(fields, serviceName) { - return fields.reduce((prev, next) => { - prev[next.name.value] = serviceName; - return prev; - }, Object.create(null)); -} -exports.mapFieldNamesToServiceName = mapFieldNamesToServiceName; -function findDirectivesOnTypeOrField(node, directiveName) { - return node && node.directives - ? node.directives.filter(directive => directive.name.value === directiveName) - : []; -} -exports.findDirectivesOnTypeOrField = findDirectivesOnTypeOrField; -function stripExternalFieldsFromTypeDefs(typeDefs, serviceName) { - const strippedFields = []; - const typeDefsWithoutExternalFields = graphql_1.visit(typeDefs, { - ObjectTypeExtension: removeExternalFieldsFromExtensionVisitor(strippedFields, serviceName), - InterfaceTypeExtension: removeExternalFieldsFromExtensionVisitor(strippedFields, serviceName), - }); - return { typeDefsWithoutExternalFields, strippedFields }; -} -exports.stripExternalFieldsFromTypeDefs = stripExternalFieldsFromTypeDefs; -function stripTypeSystemDirectivesFromTypeDefs(typeDefs) { - const typeDefsWithoutTypeSystemDirectives = graphql_1.visit(typeDefs, { - Directive(node) { - if (node.name.value === 'deprecated' || node.name.value === 'specifiedBy') - return; - const isFederationDirective = directives_1.default.some(({ name }) => name === node.name.value); - return isFederationDirective ? undefined : null; - }, - }); - return typeDefsWithoutTypeSystemDirectives; -} -exports.stripTypeSystemDirectivesFromTypeDefs = stripTypeSystemDirectivesFromTypeDefs; -function removeExternalFieldsFromExtensionVisitor(collector, serviceName) { - return (node) => { - let fields = node.fields; - if (fields) { - fields = fields.filter(field => { - const externalDirectives = findDirectivesOnTypeOrField(field, 'external'); - if (externalDirectives.length > 0) { - collector.push({ - field, - parentTypeName: node.name.value, - serviceName, - }); - return false; - } - return true; - }); - } - return Object.assign(Object.assign({}, node), { fields }); - }; -} -function parseSelections(source) { - return graphql_1.parse(`query { ${source} }`) - .definitions[0].selectionSet.selections; -} -exports.parseSelections = parseSelections; -function hasMatchingFieldInDirectives({ directives, fieldNameToMatch, namedType, }) { - return Boolean(namedType.astNode && - directives - .map(keyDirective => keyDirective.arguments && - isStringValueNode(keyDirective.arguments[0].value) - ? { - typeName: namedType.astNode.name.value, - keyArgument: keyDirective.arguments[0].value.value, - } - : null) - .filter(isNotNullOrUndefined) - .flatMap(selection => parseSelections(selection.keyArgument)) - .some(field => field.kind === graphql_1.Kind.FIELD && field.name.value === fieldNameToMatch)); -} -exports.hasMatchingFieldInDirectives = hasMatchingFieldInDirectives; -exports.logServiceAndType = (serviceName, typeName, fieldName) => `[${serviceName}] ${typeName}${fieldName ? `.${fieldName} -> ` : ' -> '}`; -function logDirective(directiveName) { - return `[@${directiveName}] -> `; -} -exports.logDirective = logDirective; -function errorWithCode(code, message, nodes) { - return new graphql_1.GraphQLError(message, nodes, undefined, undefined, undefined, undefined, { - code, - }); -} -exports.errorWithCode = errorWithCode; -function findTypesContainingFieldWithReturnType(schema, node) { - const returnType = graphql_1.getNamedType(node.type); - if (!graphql_1.isObjectType(returnType)) - return []; - const containingTypes = []; - const types = schema.getTypeMap(); - for (const selectionSetType of Object.values(types)) { - if (!graphql_1.isObjectType(selectionSetType)) - continue; - const allFields = selectionSetType.getFields(); - Object.values(allFields).forEach(field => { - const fieldReturnType = graphql_1.getNamedType(field.type); - if (fieldReturnType === returnType) { - containingTypes.push(fieldReturnType); - } - }); - } - return containingTypes; -} -exports.findTypesContainingFieldWithReturnType = findTypesContainingFieldWithReturnType; -function findFieldsThatReturnType({ schema, typeToFind, }) { - if (!graphql_1.isObjectType(typeToFind)) - return []; - const fieldsThatReturnType = []; - const types = schema.getTypeMap(); - for (const selectionSetType of Object.values(types)) { - if (!graphql_1.isObjectType(selectionSetType)) - continue; - const fieldsOnNamedType = selectionSetType.getFields(); - Object.values(fieldsOnNamedType).forEach(field => { - const fieldReturnType = graphql_1.getNamedType(field.type); - if (fieldReturnType === typeToFind) { - fieldsThatReturnType.push(field); - } - }); - } - return fieldsThatReturnType; -} -exports.findFieldsThatReturnType = findFieldsThatReturnType; -function selectionIncludesField({ selections, selectionSetType, typeToFind, fieldToFind, }) { - for (const selection of selections) { - const selectionName = selection.name.value; - if (selectionName === fieldToFind && - graphql_1.isEqualType(selectionSetType, typeToFind)) - return true; - const typeIncludesField = selectionName && - Object.keys(selectionSetType.getFields()).includes(selectionName); - if (!selectionName || !typeIncludesField) - continue; - const returnType = graphql_1.getNamedType(selectionSetType.getFields()[selectionName].type); - if (!returnType || !graphql_1.isObjectType(returnType)) - continue; - const subselections = selection.selectionSet && selection.selectionSet.selections; - if (subselections) { - const selectionDoesIncludeField = selectionIncludesField({ - selectionSetType: returnType, - selections: subselections, - typeToFind, - fieldToFind, - }); - if (selectionDoesIncludeField) - return true; - } - } - return false; -} -exports.selectionIncludesField = selectionIncludesField; -function isTypeNodeAnEntity(node) { - let isEntity = false; - graphql_1.visit(node, { - Directive(directive) { - if (directive.name.value === 'key') { - isEntity = true; - return graphql_1.BREAK; - } - }, - }); - return isEntity; -} -exports.isTypeNodeAnEntity = isTypeNodeAnEntity; -function diffTypeNodes(firstNode, secondNode) { - const fieldsDiff = Object.create(null); - const unionTypesDiff = Object.create(null); - const locationsDiff = new Set(); - const argumentsDiff = Object.create(null); - const document = { - kind: graphql_1.Kind.DOCUMENT, - definitions: [firstNode, secondNode], - }; - function fieldVisitor(node) { - const fieldName = node.name.value; - const type = graphql_1.print(node.type); - if (!fieldsDiff[fieldName]) { - fieldsDiff[fieldName] = [type]; - return; - } - const fieldTypes = fieldsDiff[fieldName]; - if (fieldTypes[0] === type) { - delete fieldsDiff[fieldName]; - } - else { - fieldTypes.push(type); - } - } - graphql_1.visit(document, { - FieldDefinition: fieldVisitor, - InputValueDefinition: fieldVisitor, - UnionTypeDefinition(node) { - if (!node.types) - return graphql_1.BREAK; - for (const namedTypeNode of node.types) { - const name = namedTypeNode.name.value; - if (unionTypesDiff[name]) { - delete unionTypesDiff[name]; - } - else { - unionTypesDiff[name] = true; - } - } - }, - DirectiveDefinition(node) { - node.locations.forEach(location => { - const locationName = location.value; - if (locationsDiff.has(locationName)) { - locationsDiff.delete(locationName); - } - else { - locationsDiff.add(locationName); - } - }); - if (!node.arguments) - return; - node.arguments.forEach(argument => { - const argumentName = argument.name.value; - const printedType = graphql_1.print(argument.type); - if (argumentsDiff[argumentName]) { - if (printedType === argumentsDiff[argumentName][0]) { - delete argumentsDiff[argumentName]; - } - else { - argumentsDiff[argumentName].push(printedType); - } - } - else { - argumentsDiff[argumentName] = [printedType]; - } - }); - }, - }); - const typeNameDiff = firstNode.name.value === secondNode.name.value - ? [] - : [firstNode.name.value, secondNode.name.value]; - const kindDiff = firstNode.kind === secondNode.kind ? [] : [firstNode.kind, secondNode.kind]; - return { - name: typeNameDiff, - kind: kindDiff, - fields: fieldsDiff, - unionTypes: unionTypesDiff, - locations: Array.from(locationsDiff), - args: argumentsDiff, - }; -} -exports.diffTypeNodes = diffTypeNodes; -function typeNodesAreEquivalent(firstNode, secondNode) { - const { name, kind, fields, unionTypes, locations, args } = diffTypeNodes(firstNode, secondNode); - return (name.length === 0 && - kind.length === 0 && - Object.keys(fields).length === 0 && - Object.keys(unionTypes).length === 0 && - locations.length === 0 && - Object.keys(args).length === 0); -} -exports.typeNodesAreEquivalent = typeNodesAreEquivalent; -exports.defKindToExtKind = { - [graphql_1.Kind.SCALAR_TYPE_DEFINITION]: graphql_1.Kind.SCALAR_TYPE_EXTENSION, - [graphql_1.Kind.OBJECT_TYPE_DEFINITION]: graphql_1.Kind.OBJECT_TYPE_EXTENSION, - [graphql_1.Kind.INTERFACE_TYPE_DEFINITION]: graphql_1.Kind.INTERFACE_TYPE_EXTENSION, - [graphql_1.Kind.UNION_TYPE_DEFINITION]: graphql_1.Kind.UNION_TYPE_EXTENSION, - [graphql_1.Kind.ENUM_TYPE_DEFINITION]: graphql_1.Kind.ENUM_TYPE_EXTENSION, - [graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION]: graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION, -}; -function mapValues(object, callback) { - const result = Object.create(null); - for (const [key, value] of Object.entries(object)) { - result[key] = callback(value); - } - return result; -} -exports.mapValues = mapValues; -function isNotNullOrUndefined(value) { - return value !== null && typeof value !== 'undefined'; -} -exports.isNotNullOrUndefined = isNotNullOrUndefined; -exports.executableDirectiveLocations = [ - 'QUERY', - 'MUTATION', - 'SUBSCRIPTION', - 'FIELD', - 'FRAGMENT_DEFINITION', - 'FRAGMENT_SPREAD', - 'INLINE_FRAGMENT', - 'VARIABLE_DEFINITION', -]; -function isFederationDirective(directive) { - return directives_1.default.some(({ name }) => name === directive.name); -} -exports.isFederationDirective = isFederationDirective; -exports.reservedRootFields = ['_service', '_entities']; -exports.defaultRootOperationNameLookup = { - query: 'Query', - mutation: 'Mutation', - subscription: 'Subscription', -}; -function getFederationMetadata(obj) { - var _a, _b, _c; - if (typeof obj === "undefined") - return undefined; - else if (graphql_1.isNamedType(obj)) - return (_a = obj.extensions) === null || _a === void 0 ? void 0 : _a.federation; - else if (graphql_1.isDirective(obj)) - return (_b = obj.extensions) === null || _b === void 0 ? void 0 : _b.federation; - else - return (_c = obj.extensions) === null || _c === void 0 ? void 0 : _c.federation; -} -exports.getFederationMetadata = getFederationMetadata; -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/utils.js.map b/gateway/node_modules/@apollo/federation/dist/composition/utils.js.map deleted file mode 100644 index 75c675f..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/composition/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/index.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/index.d.ts deleted file mode 100644 index ee645d7..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { GraphQLSchema, GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../types'; -export declare function validateServicesBeforeNormalization(services: ServiceDefinition[]): GraphQLError[]; -export declare const validateServicesBeforeComposition: (services: ServiceDefinition[]) => GraphQLError[]; -export declare const validateComposedSchema: ({ schema, serviceList, }: { - schema: GraphQLSchema; - serviceList: ServiceDefinition[]; -}) => GraphQLError[]; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/index.d.ts.map deleted file mode 100644 index c498772..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/composition/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAkB,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAS7C,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,iBAAiB,EAAE,kBAW9B;AAID,eAAO,MAAM,iCAAiC,aAClC,iBAAiB,EAAE,mBAW9B,CAAC;AAIF,eAAO,MAAM,sBAAsB;YAIzB,aAAa;iBACR,iBAAiB,EAAE;MAC9B,YAAY,EAUf,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/index.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/index.js deleted file mode 100644 index 2e759cc..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/index.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.validateComposedSchema = exports.validateServicesBeforeComposition = exports.validateServicesBeforeNormalization = void 0; -const graphql_1 = require("graphql"); -const preNormalizationRules = __importStar(require("./preNormalization")); -const preCompositionRules = __importStar(require("./preComposition")); -const postCompositionRules = __importStar(require("./postComposition")); -const preNormalizationValidators = Object.values(preNormalizationRules); -function validateServicesBeforeNormalization(services) { - const errors = []; - for (const serviceDefinition of services) { - for (const validator of preNormalizationValidators) { - errors.push(...validator(serviceDefinition)); - } - } - return errors; -} -exports.validateServicesBeforeNormalization = validateServicesBeforeNormalization; -const preCompositionValidators = Object.values(preCompositionRules); -exports.validateServicesBeforeComposition = (services) => { - const warningsOrErrors = []; - for (const serviceDefinition of services) { - for (const validator of preCompositionValidators) { - warningsOrErrors.push(...validator(serviceDefinition)); - } - } - return warningsOrErrors; -}; -const postCompositionValidators = Object.values(postCompositionRules); -exports.validateComposedSchema = ({ schema, serviceList, }) => { - const warningsOrErrors = []; - warningsOrErrors.push(...graphql_1.validateSchema(schema)); - for (const validator of postCompositionValidators) { - warningsOrErrors.push(...validator({ schema, serviceList })); - } - return warningsOrErrors; -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/index.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/index.js.map deleted file mode 100644 index 84c9554..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/composition/validate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAsE;AAItE,0EAA4D;AAC5D,sEAAwD;AACxD,wEAA0D;AAE1D,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAExE,SAAgB,mCAAmC,CACjD,QAA6B;IAE7B,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,iBAAiB,IAAI,QAAQ,EAAE;QACxC,KAAK,MAAM,SAAS,IAAI,0BAA0B,EAAE;YAClD,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;SAC9C;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,kFAYC;AAED,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAEvD,QAAA,iCAAiC,GAAG,CAC/C,QAA6B,EAC7B,EAAE;IACF,MAAM,gBAAgB,GAAmB,EAAE,CAAC;IAE5C,KAAK,MAAM,iBAAiB,IAAI,QAAQ,EAAE;QACxC,KAAK,MAAM,SAAS,IAAI,wBAAwB,EAAE;YAChD,gBAAgB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACxD;KACF;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAEzD,QAAA,sBAAsB,GAAG,CAAC,EACrC,MAAM,EACN,WAAW,GAIZ,EAAkB,EAAE;IACnB,MAAM,gBAAgB,GAAmB,EAAE,CAAC;IAG5C,gBAAgB,CAAC,IAAI,CAAC,GAAG,wBAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,KAAK,MAAM,SAAS,IAAI,yBAAyB,EAAE;QACjD,gBAAgB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;KAC9D;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.d.ts deleted file mode 100644 index 91740f1..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import 'apollo-server-env'; -import { PostCompositionValidator } from '.'; -export declare const executableDirectivesIdentical: PostCompositionValidator; -//# sourceMappingURL=executableDirectivesIdentical.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.d.ts.map deleted file mode 100644 index 12d0383..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"executableDirectivesIdentical.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/executableDirectivesIdentical.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAS3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAQ7C,eAAO,MAAM,6BAA6B,EAAE,wBA0C3C,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.js deleted file mode 100644 index 254e591..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.executableDirectivesIdentical = void 0; -require("apollo-server-env"); -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.executableDirectivesIdentical = ({ schema, }) => { - const errors = []; - const customDirectives = schema - .getDirectives() - .filter(x => !utils_1.isFederationDirective(x) && !graphql_1.isSpecifiedDirective(x)); - customDirectives.forEach(directive => { - const directiveFederationMetadata = utils_1.getFederationMetadata(directive); - if (!directiveFederationMetadata) - return; - const definitions = Object.entries(directiveFederationMetadata.directiveDefinitions); - const shouldError = definitions.some(([, definition], index) => { - if (index === 0) - return; - const [, previousDefinition] = definitions[index - 1]; - return !utils_1.typeNodesAreEquivalent(definition, previousDefinition); - }); - if (shouldError) { - errors.push(utils_1.errorWithCode('EXECUTABLE_DIRECTIVES_IDENTICAL', utils_1.logDirective(directive.name) + - `custom directives must be defined identically across all services. See below for a list of current implementations:\n${definitions - .map(([serviceName, definition]) => { - return `\t${serviceName}: ${graphql_1.print(definition)}`; - }) - .join('\n')}`)); - } - }); - return errors; -}; -//# sourceMappingURL=executableDirectivesIdentical.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.js.map deleted file mode 100644 index 32deac0..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesIdentical.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"executableDirectivesIdentical.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/executableDirectivesIdentical.ts"],"names":[],"mappings":";;;AAAA,6BAA2B;AAC3B,qCAAoE;AACpE,uCAMqB;AASR,QAAA,6BAA6B,GAA6B,CAAC,EACtE,MAAM,GACP,EAAE,EAAE;IACH,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,gBAAgB,GAAG,MAAM;SAC5B,aAAa,EAAE;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,6BAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,8BAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACnC,MAAM,2BAA2B,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAC;QAErE,IAAI,CAAC,2BAA2B;YAAE,OAAO;QAEzC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAChC,2BAA2B,CAAC,oBAAoB,CACjD,CAAC;QAIF,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;YAE7D,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO;YACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,8BAAsB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE;YACf,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,iCAAiC,EACjC,oBAAY,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,wHAAwH,WAAW;qBAChI,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,EAAE;oBACjC,OAAO,KAAK,WAAW,KAAK,eAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClD,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAClB,CACF,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.d.ts deleted file mode 100644 index 52adcc7..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import 'apollo-server-env'; -import { PostCompositionValidator } from '.'; -export declare const executableDirectivesInAllServices: PostCompositionValidator; -//# sourceMappingURL=executableDirectivesInAllServices.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.d.ts.map deleted file mode 100644 index 5702503..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"executableDirectivesInAllServices.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/executableDirectivesInAllServices.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAO7C,eAAO,MAAM,iCAAiC,EAAE,wBA4C/C,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.js deleted file mode 100644 index 39e0be7..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.executableDirectivesInAllServices = void 0; -require("apollo-server-env"); -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.executableDirectivesInAllServices = ({ schema, serviceList, }) => { - const errors = []; - const customExecutableDirectives = schema - .getDirectives() - .filter(x => !utils_1.isFederationDirective(x) && !graphql_1.isSpecifiedDirective(x)); - customExecutableDirectives.forEach(directive => { - const directiveFederationMetadata = utils_1.getFederationMetadata(directive); - if (!directiveFederationMetadata) - return; - const allServiceNames = serviceList.map(({ name }) => name); - const serviceNamesWithDirective = Object.keys(directiveFederationMetadata.directiveDefinitions); - const serviceNamesWithoutDirective = allServiceNames.reduce((without, serviceName) => { - if (!serviceNamesWithDirective.includes(serviceName)) { - without.push(serviceName); - } - return without; - }, []); - if (serviceNamesWithoutDirective.length > 0) { - errors.push(utils_1.errorWithCode('EXECUTABLE_DIRECTIVES_IN_ALL_SERVICES', utils_1.logDirective(directive.name) + - `Custom directives must be implemented in every service. The following services do not implement the @${directive.name} directive: ${serviceNamesWithoutDirective.join(', ')}.`)); - } - }); - return errors; -}; -//# sourceMappingURL=executableDirectivesInAllServices.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.js.map deleted file mode 100644 index 7474a26..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/executableDirectivesInAllServices.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"executableDirectivesInAllServices.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/executableDirectivesInAllServices.ts"],"names":[],"mappings":";;;AAAA,6BAA2B;AAC3B,qCAA6D;AAC7D,uCAKqB;AAQR,QAAA,iCAAiC,GAA6B,CAAC,EAC1E,MAAM,EACN,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,0BAA0B,GAAG,MAAM;SACtC,aAAa,EAAE;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,6BAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,8BAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,0BAA0B,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC7C,MAAM,2BAA2B,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAC;QAErE,IAAI,CAAC,2BAA2B;YAAE,OAAO;QAEzC,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAC3C,2BAA2B,CAAC,oBAAoB,CACjD,CAAC;QAEF,MAAM,4BAA4B,GAAG,eAAe,CAAC,MAAM,CACzD,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE;YACvB,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACpD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC3B;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,EACD,EAAc,CACf,CAAC;QAEF,IAAI,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,uCAAuC,EACvC,oBAAY,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,wGACE,SAAS,CAAC,IACZ,eAAe,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5D,CACF,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.d.ts deleted file mode 100644 index 595bfde..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import 'apollo-server-env'; -import { PostCompositionValidator } from '.'; -export declare const externalMissingOnBase: PostCompositionValidator; -//# sourceMappingURL=externalMissingOnBase.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.d.ts.map deleted file mode 100644 index 431c105..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"externalMissingOnBase.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/externalMissingOnBase.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAG3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAK7C,eAAO,MAAM,qBAAqB,EAAE,wBAqDnC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.js deleted file mode 100644 index 32996ed..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.externalMissingOnBase = void 0; -require("apollo-server-env"); -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.externalMissingOnBase = ({ schema }) => { - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - const typeFederationMetadata = utils_1.getFederationMetadata(namedType); - if (typeFederationMetadata === null || typeFederationMetadata === void 0 ? void 0 : typeFederationMetadata.externals) { - for (const [serviceName, externalFieldsForService] of Object.entries(typeFederationMetadata.externals)) { - for (const { field: externalField } of externalFieldsForService) { - const externalFieldName = externalField.name.value; - const allFields = namedType.getFields(); - const matchingBaseField = allFields[externalFieldName]; - if (!matchingBaseField) { - errors.push(utils_1.errorWithCode('EXTERNAL_MISSING_ON_BASE', utils_1.logServiceAndType(serviceName, typeName, externalFieldName) + - `marked @external but ${externalFieldName} is not defined on the base service of ${typeName} (${typeFederationMetadata.serviceName})`)); - continue; - } - const fieldFederationMetadata = utils_1.getFederationMetadata(matchingBaseField); - if (fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.serviceName) { - errors.push(utils_1.errorWithCode('EXTERNAL_MISSING_ON_BASE', utils_1.logServiceAndType(serviceName, typeName, externalFieldName) + - `marked @external but ${externalFieldName} was defined in ${fieldFederationMetadata.serviceName}, not in the service that owns ${typeName} (${typeFederationMetadata.serviceName})`)); - } - } - } - } - } - return errors; -}; -//# sourceMappingURL=externalMissingOnBase.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.js.map deleted file mode 100644 index 558a370..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalMissingOnBase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"externalMissingOnBase.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/externalMissingOnBase.ts"],"names":[],"mappings":";;;AAAA,6BAA2B;AAC3B,qCAAqD;AACrD,uCAAsF;AAMzE,QAAA,qBAAqB,GAA6B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5E,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAEzD,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;YAAE,SAAS;QAEvC,MAAM,sBAAsB,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAC;QAIhE,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,SAAS,EAAE;YAErC,KAAK,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC,IAAI,MAAM,CAAC,OAAO,CAClE,sBAAsB,CAAC,SAAS,CACjC,EAAE;gBAED,KAAK,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,wBAAwB,EAAE;oBAC/D,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;oBACxC,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;oBAGvD,IAAI,CAAC,iBAAiB,EAAE;wBACtB,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,0BAA0B,EAC1B,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC;4BACzD,wBAAwB,iBAAiB,0CAA0C,QAAQ,KAAK,sBAAsB,CAAC,WAAW,GAAG,CACxI,CACF,CAAC;wBACF,SAAS;qBACV;oBAID,MAAM,uBAAuB,GAAG,6BAAqB,CAAC,iBAAiB,CAAC,CAAC;oBAEzE,IAAI,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,WAAW,EAAE;wBACxC,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,0BAA0B,EAC1B,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC;4BACzD,wBAAwB,iBAAiB,mBAAmB,uBAAuB,CAAC,WAAW,kCAAkC,QAAQ,KAAK,sBAAsB,CAAC,WAAW,GAAG,CACtL,CACF,CAAC;qBACH;iBACF;aACF;SACF;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.d.ts deleted file mode 100644 index 6be5d2a..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const externalTypeMismatch: PostCompositionValidator; -//# sourceMappingURL=externalTypeMismatch.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.d.ts.map deleted file mode 100644 index 85dcb45..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"externalTypeMismatch.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/externalTypeMismatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAM7C,eAAO,MAAM,oBAAoB,EAAE,wBAwDlC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.js deleted file mode 100644 index df1c08e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.externalTypeMismatch = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.externalTypeMismatch = ({ schema }) => { - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - const typeFederationMetadata = utils_1.getFederationMetadata(namedType); - if (typeFederationMetadata === null || typeFederationMetadata === void 0 ? void 0 : typeFederationMetadata.externals) { - for (const [serviceName, externalFieldsForService] of Object.entries(typeFederationMetadata.externals)) { - for (const { field: externalField } of externalFieldsForService) { - const externalFieldName = externalField.name.value; - const allFields = namedType.getFields(); - const matchingBaseField = allFields[externalFieldName]; - const externalFieldType = graphql_1.typeFromAST(schema, externalField.type); - if (!externalFieldType) { - errors.push(utils_1.errorWithCode('EXTERNAL_TYPE_MISMATCH', utils_1.logServiceAndType(serviceName, typeName, externalFieldName) + - `the type of the @external field does not exist in the resulting composed schema`)); - } - else if (matchingBaseField && - !graphql_1.isEqualType(matchingBaseField.type, externalFieldType)) { - errors.push(utils_1.errorWithCode('EXTERNAL_TYPE_MISMATCH', utils_1.logServiceAndType(serviceName, typeName, externalFieldName) + - `Type \`${externalFieldType}\` does not match the type of the original field in ${typeFederationMetadata.serviceName} (\`${matchingBaseField.type}\`)`)); - } - } - } - } - } - return errors; -}; -//# sourceMappingURL=externalTypeMismatch.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.js.map deleted file mode 100644 index 0795c15..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalTypeMismatch.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"externalTypeMismatch.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/externalTypeMismatch.ts"],"names":[],"mappings":";;;AAAA,qCAA4F;AAC5F,uCAAsF;AAOzE,QAAA,oBAAoB,GAA6B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAEzD,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;YAAE,SAAS;QAIvC,MAAM,sBAAsB,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,SAAS,EAAE;YAErC,KAAK,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC,IAAI,MAAM,CAAC,OAAO,CAClE,sBAAsB,CAAC,SAAS,CACjC,EAAE;gBAED,KAAK,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,wBAAwB,EAAE;oBAC/D,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;oBACxC,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;oBAKvD,MAAM,iBAAiB,GAAG,qBAAW,CACnC,MAAM,EACN,aAAa,CAAC,IAAW,CACX,CAAC;oBAEjB,IAAI,CAAC,iBAAiB,EAAE;wBACtB,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,wBAAwB,EACxB,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC;4BACzD,iFAAiF,CACpF,CACF,CAAC;qBACH;yBAAM,IACL,iBAAiB;wBACjB,CAAC,qBAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,EACvD;wBACA,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,wBAAwB,EACxB,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC;4BACzD,UAAU,iBAAiB,uDAAuD,sBAAsB,CAAC,WAAW,OAAO,iBAAiB,CAAC,IAAI,KAAK,CACzJ,CACF,CAAC;qBACH;iBACF;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.d.ts deleted file mode 100644 index 580119f..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const externalUnused: PostCompositionValidator; -//# sourceMappingURL=externalUnused.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.d.ts.map deleted file mode 100644 index a6f5b3b..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"externalUnused.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/externalUnused.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAM7C,eAAO,MAAM,cAAc,EAAE,wBA0N5B,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.js deleted file mode 100644 index 1638641..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.js +++ /dev/null @@ -1,94 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.externalUnused = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.externalUnused = ({ schema }) => { - const errors = []; - const types = schema.getTypeMap(); - for (const [parentTypeName, parentType] of Object.entries(types)) { - if (!graphql_1.isObjectType(parentType)) - continue; - const typeFederationMetadata = utils_1.getFederationMetadata(parentType); - if (typeFederationMetadata) { - const { serviceName, keys } = typeFederationMetadata; - if (serviceName && keys && !keys[serviceName]) - continue; - } - if (typeFederationMetadata === null || typeFederationMetadata === void 0 ? void 0 : typeFederationMetadata.externals) { - for (const [serviceName, externalFieldsForService] of Object.entries(typeFederationMetadata.externals)) { - for (const { field: externalField } of externalFieldsForService) { - const externalFieldName = externalField.name.value; - const hasMatchingKeyOnType = Boolean(utils_1.hasMatchingFieldInDirectives({ - directives: utils_1.findDirectivesOnTypeOrField(parentType.astNode, 'key'), - fieldNameToMatch: externalFieldName, - namedType: parentType, - })); - if (hasMatchingKeyOnType) - continue; - const hasMatchingProvidesOnAnotherType = utils_1.findFieldsThatReturnType({ - schema, - typeToFind: parentType, - }).some(field => utils_1.findDirectivesOnTypeOrField(field.astNode, 'provides').some(directive => { - if (!directive.arguments) - return false; - const selections = utils_1.isStringValueNode(directive.arguments[0].value) && - utils_1.parseSelections(directive.arguments[0].value.value); - return (selections && - selections.some(selection => selection.kind === graphql_1.Kind.FIELD && - selection.name.value === externalFieldName)); - })); - if (hasMatchingProvidesOnAnotherType) - continue; - const hasMatchingRequiresOnAnotherType = Object.values(schema.getTypeMap()).some(namedType => { - if (!graphql_1.isObjectType(namedType)) - return false; - return Object.values(namedType.getFields()).some(field => utils_1.findDirectivesOnTypeOrField(field.astNode, 'requires').some(directive => { - if (!directive.arguments) - return false; - const selections = utils_1.isStringValueNode(directive.arguments[0].value) && - utils_1.parseSelections(directive.arguments[0].value.value); - if (!selections) - return false; - return utils_1.selectionIncludesField({ - selections, - selectionSetType: namedType, - typeToFind: parentType, - fieldToFind: externalFieldName, - }); - })); - }); - if (hasMatchingRequiresOnAnotherType) - continue; - const hasMatchingRequiresOnType = Object.values(parentType.getFields()).some(maybeRequiresField => { - var _a; - const fieldOwner = (_a = utils_1.getFederationMetadata(maybeRequiresField)) === null || _a === void 0 ? void 0 : _a.serviceName; - if (fieldOwner !== serviceName) - return false; - const requiresDirectives = utils_1.findDirectivesOnTypeOrField(maybeRequiresField.astNode, 'requires'); - return utils_1.hasMatchingFieldInDirectives({ - directives: requiresDirectives, - fieldNameToMatch: externalFieldName, - namedType: parentType, - }); - }); - if (hasMatchingRequiresOnType) - continue; - const fieldsOnInterfacesImplementedByParentType = new Set(); - for (const _interface of parentType.getInterfaces()) { - for (const fieldName in _interface.getFields()) { - fieldsOnInterfacesImplementedByParentType.add(fieldName); - } - } - if (fieldsOnInterfacesImplementedByParentType.has(externalFieldName)) { - continue; - } - errors.push(utils_1.errorWithCode('EXTERNAL_UNUSED', utils_1.logServiceAndType(serviceName, parentTypeName, externalFieldName) + - `is marked as @external but is not used by a @requires, @key, or @provides directive.`)); - } - } - } - } - return errors; -}; -//# sourceMappingURL=externalUnused.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.js.map deleted file mode 100644 index d36be10..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/externalUnused.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"externalUnused.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/externalUnused.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,uCAUqB;AAOR,QAAA,cAAc,GAA6B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACrE,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAEhE,IAAI,CAAC,sBAAY,CAAC,UAAU,CAAC;YAAE,SAAS;QAGxC,MAAM,sBAAsB,GAAG,6BAAqB,CAAC,UAAU,CAAC,CAAC;QAIjE,IAAI,sBAAsB,EAAE;YAC1B,MAAM,EAAC,WAAW,EAAE,IAAI,EAAC,GAAG,sBAAsB,CAAC;YACnD,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;gBAAE,SAAS;SACzD;QAED,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,SAAS,EAAE;YAErC,KAAK,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC,IAAI,MAAM,CAAC,OAAO,CAClE,sBAAsB,CAAC,SAAS,CACjC,EAAE;gBAED,KAAK,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,wBAAwB,EAAE;oBAC/D,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;oBAGnD,MAAM,oBAAoB,GAAG,OAAO,CAClC,oCAA4B,CAAC;wBAC3B,UAAU,EAAE,mCAA2B,CACrC,UAAU,CAAC,OAAO,EAClB,KAAK,CACN;wBACD,gBAAgB,EAAE,iBAAiB;wBACnC,SAAS,EAAE,UAAU;qBACtB,CAAC,CACH,CAAC;oBACF,IAAI,oBAAoB;wBAAE,SAAS;oBAmBnC,MAAM,gCAAgC,GAAG,gCAAwB,CAAC;wBAChE,MAAM;wBACN,UAAU,EAAE,UAAU;qBACvB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACd,mCAA2B,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CACzD,SAAS,CAAC,EAAE;wBACV,IAAI,CAAC,SAAS,CAAC,SAAS;4BAAE,OAAO,KAAK,CAAC;wBACvC,MAAM,UAAU,GACd,yBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;4BAC/C,uBAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAGtD,OAAO,CACL,UAAU;4BACV,UAAU,CAAC,IAAI,CACb,SAAS,CAAC,EAAE,CACV,SAAS,CAAC,IAAI,KAAK,cAAI,CAAC,KAAK;gCAC7B,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,iBAAiB,CAC7C,CACF,CAAC;oBACJ,CAAC,CACF,CACF,CAAC;oBAEF,IAAI,gCAAgC;wBAAE,SAAS;oBAwB/C,MAAM,gCAAgC,GAAG,MAAM,CAAC,MAAM,CACpD,MAAM,CAAC,UAAU,EAAE,CACpB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;wBACjB,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;4BAAE,OAAO,KAAK,CAAC;wBAG3C,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACvD,mCAA2B,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CACzD,SAAS,CAAC,EAAE;4BACV,IAAI,CAAC,SAAS,CAAC,SAAS;gCAAE,OAAO,KAAK,CAAC;4BACvC,MAAM,UAAU,GACd,yBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gCAC/C,uBAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BAEtD,IAAI,CAAC,UAAU;gCAAE,OAAO,KAAK,CAAC;4BAC9B,OAAO,8BAAsB,CAAC;gCAC5B,UAAU;gCACV,gBAAgB,EAAE,SAAS;gCAC3B,UAAU,EAAE,UAAU;gCACtB,WAAW,EAAE,iBAAiB;6BAC/B,CAAC,CAAC;wBACL,CAAC,CACF,CACF,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,IAAI,gCAAgC;wBAAE,SAAS;oBAE/C,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAC7C,UAAU,CAAC,SAAS,EAAE,CACvB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;;wBAC1B,MAAM,UAAU,SAAG,6BAAqB,CAAC,kBAAkB,CAAC,0CAAE,WAAW,CAAC;wBAC1E,IAAI,UAAU,KAAK,WAAW;4BAAE,OAAO,KAAK,CAAC;wBAE7C,MAAM,kBAAkB,GAAG,mCAA2B,CACpD,kBAAkB,CAAC,OAAO,EAC1B,UAAU,CACX,CAAC;wBAEF,OAAO,oCAA4B,CAAC;4BAClC,UAAU,EAAE,kBAAkB;4BAC9B,gBAAgB,EAAE,iBAAiB;4BACnC,SAAS,EAAE,UAAU;yBACtB,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,IAAI,yBAAyB;wBAAE,SAAS;oBAoCxC,MAAM,yCAAyC,GAAgB,IAAI,GAAG,EAAE,CAAC;oBAGzE,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,aAAa,EAAE,EAAE;wBAEnD,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE;4BAC9C,yCAAyC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;yBAC1D;qBACF;oBAGD,IAAI,yCAAyC,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;wBACpE,SAAS;qBACV;oBAED,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,iBAAiB,EACjB,yBAAiB,CACf,WAAW,EACX,cAAc,EACd,iBAAiB,CAClB;wBACC,sFAAsF,CACzF,CACF,CAAC;iBACH;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.d.ts deleted file mode 100644 index 6107e99..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { GraphQLSchema, GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; -export { externalUnused } from './externalUnused'; -export { externalMissingOnBase } from './externalMissingOnBase'; -export { externalTypeMismatch } from './externalTypeMismatch'; -export { requiresFieldsMissingExternal } from './requiresFieldsMissingExternal'; -export { requiresFieldsMissingOnBase } from './requiresFieldsMissingOnBase'; -export { keyFieldsMissingOnBase } from './keyFieldsMissingOnBase'; -export { keyFieldsSelectInvalidType } from './keyFieldsSelectInvalidType'; -export { providesFieldsMissingExternal } from './providesFieldsMissingExternal'; -export { providesFieldsSelectInvalidType, } from './providesFieldsSelectInvalidType'; -export { providesNotOnEntity } from './providesNotOnEntity'; -export { executableDirectivesInAllServices, } from './executableDirectivesInAllServices'; -export { executableDirectivesIdentical } from './executableDirectivesIdentical'; -export { keysMatchBaseService } from './keysMatchBaseService'; -export declare type PostCompositionValidator = ({ schema, serviceList, }: { - schema: GraphQLSchema; - serviceList: ServiceDefinition[]; -}) => GraphQLError[]; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.d.ts.map deleted file mode 100644 index ae453e7..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EACL,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,iCAAiC,GAClC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,oBAAY,wBAAwB,GAAG,CAAC,EACtC,MAAM,EACN,WAAW,GACZ,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,KAAK,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.js deleted file mode 100644 index ca3d37e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var externalUnused_1 = require("./externalUnused"); -Object.defineProperty(exports, "externalUnused", { enumerable: true, get: function () { return externalUnused_1.externalUnused; } }); -var externalMissingOnBase_1 = require("./externalMissingOnBase"); -Object.defineProperty(exports, "externalMissingOnBase", { enumerable: true, get: function () { return externalMissingOnBase_1.externalMissingOnBase; } }); -var externalTypeMismatch_1 = require("./externalTypeMismatch"); -Object.defineProperty(exports, "externalTypeMismatch", { enumerable: true, get: function () { return externalTypeMismatch_1.externalTypeMismatch; } }); -var requiresFieldsMissingExternal_1 = require("./requiresFieldsMissingExternal"); -Object.defineProperty(exports, "requiresFieldsMissingExternal", { enumerable: true, get: function () { return requiresFieldsMissingExternal_1.requiresFieldsMissingExternal; } }); -var requiresFieldsMissingOnBase_1 = require("./requiresFieldsMissingOnBase"); -Object.defineProperty(exports, "requiresFieldsMissingOnBase", { enumerable: true, get: function () { return requiresFieldsMissingOnBase_1.requiresFieldsMissingOnBase; } }); -var keyFieldsMissingOnBase_1 = require("./keyFieldsMissingOnBase"); -Object.defineProperty(exports, "keyFieldsMissingOnBase", { enumerable: true, get: function () { return keyFieldsMissingOnBase_1.keyFieldsMissingOnBase; } }); -var keyFieldsSelectInvalidType_1 = require("./keyFieldsSelectInvalidType"); -Object.defineProperty(exports, "keyFieldsSelectInvalidType", { enumerable: true, get: function () { return keyFieldsSelectInvalidType_1.keyFieldsSelectInvalidType; } }); -var providesFieldsMissingExternal_1 = require("./providesFieldsMissingExternal"); -Object.defineProperty(exports, "providesFieldsMissingExternal", { enumerable: true, get: function () { return providesFieldsMissingExternal_1.providesFieldsMissingExternal; } }); -var providesFieldsSelectInvalidType_1 = require("./providesFieldsSelectInvalidType"); -Object.defineProperty(exports, "providesFieldsSelectInvalidType", { enumerable: true, get: function () { return providesFieldsSelectInvalidType_1.providesFieldsSelectInvalidType; } }); -var providesNotOnEntity_1 = require("./providesNotOnEntity"); -Object.defineProperty(exports, "providesNotOnEntity", { enumerable: true, get: function () { return providesNotOnEntity_1.providesNotOnEntity; } }); -var executableDirectivesInAllServices_1 = require("./executableDirectivesInAllServices"); -Object.defineProperty(exports, "executableDirectivesInAllServices", { enumerable: true, get: function () { return executableDirectivesInAllServices_1.executableDirectivesInAllServices; } }); -var executableDirectivesIdentical_1 = require("./executableDirectivesIdentical"); -Object.defineProperty(exports, "executableDirectivesIdentical", { enumerable: true, get: function () { return executableDirectivesIdentical_1.executableDirectivesIdentical; } }); -var keysMatchBaseService_1 = require("./keysMatchBaseService"); -Object.defineProperty(exports, "keysMatchBaseService", { enumerable: true, get: function () { return keysMatchBaseService_1.keysMatchBaseService; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.js.map deleted file mode 100644 index 6cb7cb5..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/index.ts"],"names":[],"mappings":";;AAGA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,iFAAgF;AAAvE,8IAAA,6BAA6B,OAAA;AACtC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,iFAAgF;AAAvE,8IAAA,6BAA6B,OAAA;AACtC,qFAE2C;AADzC,kJAAA,+BAA+B,OAAA;AAEjC,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,yFAE6C;AAD3C,sJAAA,iCAAiC,OAAA;AAEnC,iFAAgF;AAAvE,8IAAA,6BAA6B,OAAA;AACtC,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.d.ts deleted file mode 100644 index 521add1..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const keyFieldsMissingOnBase: PostCompositionValidator; -//# sourceMappingURL=keyFieldsMissingOnBase.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.d.ts.map deleted file mode 100644 index 93eb7d0..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keyFieldsMissingOnBase.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/keyFieldsMissingOnBase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAK7C,eAAO,MAAM,sBAAsB,EAAE,wBA4CpC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.js deleted file mode 100644 index 3bf9b84..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.keyFieldsMissingOnBase = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.keyFieldsMissingOnBase = ({ schema, }) => { - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - const typeFederationMetadata = utils_1.getFederationMetadata(namedType); - if (typeFederationMetadata === null || typeFederationMetadata === void 0 ? void 0 : typeFederationMetadata.keys) { - const allFieldsInType = namedType.getFields(); - for (const [serviceName, selectionSets] of Object.entries(typeFederationMetadata.keys)) { - for (const selectionSet of selectionSets) { - for (const field of selectionSet) { - const name = field.name.value; - const matchingField = allFieldsInType[name]; - if (matchingField) { - const fieldFederationMetadata = utils_1.getFederationMetadata(matchingField); - if (fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.serviceName) { - errors.push(utils_1.errorWithCode('KEY_FIELDS_MISSING_ON_BASE', utils_1.logServiceAndType(serviceName, typeName) + - `A @key selects ${name}, but ${typeName}.${name} was either created or overwritten by ${fieldFederationMetadata.serviceName}, not ${serviceName}`)); - } - } - } - } - } - } - } - return errors; -}; -//# sourceMappingURL=keyFieldsMissingOnBase.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.js.map deleted file mode 100644 index bd16997..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsMissingOnBase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keyFieldsMissingOnBase.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/keyFieldsMissingOnBase.ts"],"names":[],"mappings":";;;AAAA,qCAAgE;AAChE,uCAAsF;AAMzE,QAAA,sBAAsB,GAA6B,CAAC,EAC/D,MAAM,GACP,EAAE,EAAE;IACH,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzD,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;YAAE,SAAS;QAEvC,MAAM,sBAAsB,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,EAAE;YAChC,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CACvD,sBAAsB,CAAC,IAAI,CAC5B,EAAE;gBACD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;oBACxC,KAAK,MAAM,KAAK,IAAI,YAA2B,EAAE;wBAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;wBAG9B,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;wBAI5C,IAAI,aAAa,EAAE;4BACjB,MAAM,uBAAuB,GAAG,6BAAqB,CAAC,aAAa,CAAC,CAAC;4BAErE,IAAI,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,WAAW,EAAE;gCACxC,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,4BAA4B,EAC5B,yBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC;oCACtC,kBAAkB,IAAI,SAAS,QAAQ,IAAI,IAAI,yCAAyC,uBAAuB,CAAC,WAAW,SAAS,WAAW,EAAE,CACpJ,CACF,CAAC;6BACH;yBACF;qBACF;iBACF;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.d.ts deleted file mode 100644 index f780def..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const keyFieldsSelectInvalidType: PostCompositionValidator; -//# sourceMappingURL=keyFieldsSelectInvalidType.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.d.ts.map deleted file mode 100644 index 777fa17..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keyFieldsSelectInvalidType.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/keyFieldsSelectInvalidType.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAO7C,eAAO,MAAM,0BAA0B,EAAE,wBAmExC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.js deleted file mode 100644 index 7b5e2b2..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.keyFieldsSelectInvalidType = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.keyFieldsSelectInvalidType = ({ schema, }) => { - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - const typeFederationMetadata = utils_1.getFederationMetadata(namedType); - if (typeFederationMetadata === null || typeFederationMetadata === void 0 ? void 0 : typeFederationMetadata.keys) { - const allFieldsInType = namedType.getFields(); - for (const [serviceName, selectionSets] of Object.entries(typeFederationMetadata.keys)) { - for (const selectionSet of selectionSets) { - for (const field of selectionSet) { - const name = field.name.value; - const matchingField = allFieldsInType[name]; - if (!matchingField) { - errors.push(utils_1.errorWithCode('KEY_FIELDS_SELECT_INVALID_TYPE', utils_1.logServiceAndType(serviceName, typeName) + - `A @key selects ${name}, but ${typeName}.${name} could not be found`)); - } - if (matchingField) { - if (graphql_1.isInterfaceType(matchingField.type) || - (graphql_1.isNonNullType(matchingField.type) && - graphql_1.isInterfaceType(graphql_1.getNullableType(matchingField.type)))) { - errors.push(utils_1.errorWithCode('KEY_FIELDS_SELECT_INVALID_TYPE', utils_1.logServiceAndType(serviceName, typeName) + - `A @key selects ${typeName}.${name}, which is an interface type. Keys cannot select interfaces.`)); - } - if (graphql_1.isUnionType(matchingField.type) || - (graphql_1.isNonNullType(matchingField.type) && - graphql_1.isUnionType(graphql_1.getNullableType(matchingField.type)))) { - errors.push(utils_1.errorWithCode('KEY_FIELDS_SELECT_INVALID_TYPE', utils_1.logServiceAndType(serviceName, typeName) + - `A @key selects ${typeName}.${name}, which is a union type. Keys cannot select union types.`)); - } - } - } - } - } - } - } - return errors; -}; -//# sourceMappingURL=keyFieldsSelectInvalidType.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.js.map deleted file mode 100644 index 42c1b7d..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keyFieldsSelectInvalidType.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keyFieldsSelectInvalidType.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/keyFieldsSelectInvalidType.ts"],"names":[],"mappings":";;;AAAA,qCAQiB;AACjB,uCAAsF;AAQzE,QAAA,0BAA0B,GAA6B,CAAC,EACnE,MAAM,GACP,EAAE,EAAE;IACH,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzD,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;YAAE,SAAS;QAEvC,MAAM,sBAAsB,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,EAAE;YAChC,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CACvD,sBAAsB,CAAC,IAAI,CAC5B,EAAE;gBACD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;oBACxC,KAAK,MAAM,KAAK,IAAI,YAA2B,EAAE;wBAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;wBAG9B,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;wBAC5C,IAAI,CAAC,aAAa,EAAE;4BAClB,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,gCAAgC,EAChC,yBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC;gCACtC,kBAAkB,IAAI,SAAS,QAAQ,IAAI,IAAI,qBAAqB,CACvE,CACF,CAAC;yBACH;wBAED,IAAI,aAAa,EAAE;4BACjB,IACE,yBAAe,CAAC,aAAa,CAAC,IAAI,CAAC;gCACnC,CAAC,uBAAa,CAAC,aAAa,CAAC,IAAI,CAAC;oCAChC,yBAAe,CAAC,yBAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EACvD;gCACA,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,gCAAgC,EAChC,yBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC;oCACtC,kBAAkB,QAAQ,IAAI,IAAI,8DAA8D,CACnG,CACF,CAAC;6BACH;4BAED,IACE,qBAAW,CAAC,aAAa,CAAC,IAAI,CAAC;gCAC/B,CAAC,uBAAa,CAAC,aAAa,CAAC,IAAI,CAAC;oCAChC,qBAAW,CAAC,yBAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EACnD;gCACA,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,gCAAgC,EAChC,yBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC;oCACtC,kBAAkB,QAAQ,IAAI,IAAI,0DAA0D,CAC/F,CACF,CAAC;6BACH;yBACF;qBACF;iBACF;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.d.ts deleted file mode 100644 index 58a8f05..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const keysMatchBaseService: PostCompositionValidator; -//# sourceMappingURL=keysMatchBaseService.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.d.ts.map deleted file mode 100644 index 01e6fd2..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keysMatchBaseService.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/keysMatchBaseService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAQ7C,eAAO,MAAM,oBAAoB,EAAE,wBAmElC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.js deleted file mode 100644 index 2bc5e49..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.keysMatchBaseService = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -const service_1 = require("../../../service"); -exports.keysMatchBaseService = function ({ schema, }) { - const errors = []; - const types = schema.getTypeMap(); - for (const [parentTypeName, parentType] of Object.entries(types)) { - if (!graphql_1.isObjectType(parentType)) - continue; - const typeFederationMetadata = utils_1.getFederationMetadata(parentType); - if (typeFederationMetadata) { - const { serviceName, keys } = typeFederationMetadata; - if (serviceName && keys) { - if (!keys[serviceName]) { - errors.push(utils_1.errorWithCode('KEY_MISSING_ON_BASE', utils_1.logServiceAndType(serviceName, parentTypeName) + - `appears to be an entity but no @key directives are specified on the originating type.`)); - continue; - } - const availableKeys = keys[serviceName].map(printFieldSet); - Object.entries(keys) - .filter(([service]) => service !== serviceName) - .forEach(([extendingService, keyFields]) => { - if (keyFields.length > 1) { - errors.push(utils_1.errorWithCode('MULTIPLE_KEYS_ON_EXTENSION', utils_1.logServiceAndType(extendingService, parentTypeName) + - `is extended from service ${serviceName} but specifies multiple @key directives. Extensions may only specify one @key.`)); - return; - } - const extensionKey = printFieldSet(keyFields[0]); - if (!availableKeys.includes(extensionKey)) { - errors.push(utils_1.errorWithCode('KEY_NOT_SPECIFIED', utils_1.logServiceAndType(extendingService, parentTypeName) + - `extends from ${serviceName} but specifies an invalid @key directive. Valid @key directives are specified by the originating type. Available @key directives for this type are:\n` + - `\t${availableKeys - .map((fieldSet) => `@key(fields: "${fieldSet}")`) - .join('\n\t')}`)); - return; - } - }); - } - } - } - return errors; -}; -function printFieldSet(selections) { - return selections.map(service_1.printWithReducedWhitespace).join(' '); -} -//# sourceMappingURL=keysMatchBaseService.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.js.map deleted file mode 100644 index f3f1329..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/keysMatchBaseService.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keysMatchBaseService.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/keysMatchBaseService.ts"],"names":[],"mappings":";;;AAAA,qCAAoE;AACpE,uCAIqB;AAErB,8CAA8D;AAOjD,QAAA,oBAAoB,GAA6B,UAAU,EACtE,MAAM,GACP;IACC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAEhE,IAAI,CAAC,sBAAY,CAAC,UAAU,CAAC;YAAE,SAAS;QAExC,MAAM,sBAAsB,GAAG,6BAAqB,CAAC,UAAU,CAAC,CAAC;QAEjE,IAAI,sBAAsB,EAAE;YAC1B,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,sBAAsB,CAAC;YAErD,IAAI,WAAW,IAAI,IAAI,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;oBACtB,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,qBAAqB,EACrB,yBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC;wBAC5C,uFAAuF,CAC1F,CACF,CAAC;oBACF,SAAS;iBACV;gBAED,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;qBAEjB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC;qBAC9C,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAAE;oBAEzC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBACxB,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,4BAA4B,EAC5B,yBAAiB,CAAC,gBAAgB,EAAE,cAAc,CAAC;4BACjD,4BAA4B,WAAW,gFAAgF,CAC1H,CACF,CAAC;wBACF,OAAO;qBACR;oBAMD,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;wBACzC,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,mBAAmB,EACnB,yBAAiB,CAAC,gBAAgB,EAAE,cAAc,CAAC;4BACjD,gBAAgB,WAAW,uJAAuJ;4BAClL,KAAK,aAAa;iCACf,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,QAAQ,IAAI,CAAC;iCAChD,IAAI,CAAC,MAAM,CAAC,EAAE,CACpB,CACF,CAAC;wBACF,OAAO;qBACR;gBACH,CAAC,CAAC,CAAC;aACN;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,SAAS,aAAa,CAAC,UAAoC;IACzD,OAAO,UAAU,CAAC,GAAG,CAAC,oCAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.d.ts deleted file mode 100644 index cddde1b..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const providesFieldsMissingExternal: PostCompositionValidator; -//# sourceMappingURL=providesFieldsMissingExternal.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.d.ts.map deleted file mode 100644 index 2ab2a3e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"providesFieldsMissingExternal.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/providesFieldsMissingExternal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAK7C,eAAO,MAAM,6BAA6B,EAAE,wBAoD3C,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.js deleted file mode 100644 index c544b5d..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.providesFieldsMissingExternal = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.providesFieldsMissingExternal = ({ schema, }) => { - var _a; - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = utils_1.getFederationMetadata(field); - const serviceName = fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.serviceName; - if (!serviceName) - continue; - const fieldType = field.type; - if (!graphql_1.isObjectType(fieldType)) - continue; - const fieldTypeFederationMetadata = utils_1.getFederationMetadata(fieldType); - const externalFieldsOnTypeForService = (_a = fieldTypeFederationMetadata === null || fieldTypeFederationMetadata === void 0 ? void 0 : fieldTypeFederationMetadata.externals) === null || _a === void 0 ? void 0 : _a[serviceName]; - if (fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.provides) { - const selections = fieldFederationMetadata.provides; - for (const selection of selections) { - const foundMatchingExternal = externalFieldsOnTypeForService - ? externalFieldsOnTypeForService.some(ext => ext.field.name.value === selection.name.value) - : undefined; - if (!foundMatchingExternal) { - errors.push(utils_1.errorWithCode('PROVIDES_FIELDS_MISSING_EXTERNAL', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `provides the field \`${selection.name.value}\` and requires ${fieldType}.${selection.name.value} to be marked as @external.`)); - } - } - } - } - } - return errors; -}; -//# sourceMappingURL=providesFieldsMissingExternal.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.js.map deleted file mode 100644 index 12dad45..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsMissingExternal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"providesFieldsMissingExternal.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/providesFieldsMissingExternal.ts"],"names":[],"mappings":";;;AAAA,qCAAgE;AAChE,uCAAsF;AAMzE,QAAA,6BAA6B,GAA6B,CAAC,EACtE,MAAM,GACP,EAAE,EAAE;;IACH,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAEzD,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;YAAE,SAAS;QAIvC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE;YACtE,MAAM,uBAAuB,GAAG,6BAAqB,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,WAAW,CAAC;YAMzD,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;gBAAE,SAAS;YAEvC,MAAM,2BAA2B,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAC;YAErE,MAAM,8BAA8B,SAAG,2BAA2B,aAA3B,2BAA2B,uBAA3B,2BAA2B,CAAE,SAAS,0CAAG,WAAW,CAAC,CAAC;YAE7F,IAAI,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,EAAE;gBACrC,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAuB,CAAC;gBACnE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,qBAAqB,GAAG,8BAA8B;wBAC1D,CAAC,CAAC,8BAA8B,CAAC,IAAI,CACjC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CACrD;wBACH,CAAC,CAAC,SAAS,CAAC;oBACd,IAAI,CAAC,qBAAqB,EAAE;wBAC1B,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,kCAAkC,EAClC,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;4BACjD,wBAAwB,SAAS,CAAC,IAAI,CAAC,KAAK,mBAAmB,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,6BAA6B,CAChI,CACF,CAAC;qBACH;iBACF;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.d.ts deleted file mode 100644 index 672b675..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const providesFieldsSelectInvalidType: PostCompositionValidator; -//# sourceMappingURL=providesFieldsSelectInvalidType.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.d.ts.map deleted file mode 100644 index a6c8e01..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"providesFieldsSelectInvalidType.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/providesFieldsSelectInvalidType.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAO7C,eAAO,MAAM,+BAA+B,EAAE,wBAuF7C,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.js deleted file mode 100644 index 430976c..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.providesFieldsSelectInvalidType = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.providesFieldsSelectInvalidType = ({ schema, }) => { - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = utils_1.getFederationMetadata(field); - const serviceName = fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.serviceName; - if (!serviceName) - continue; - const fieldType = field.type; - if (!graphql_1.isObjectType(fieldType)) - continue; - const allFields = fieldType.getFields(); - if (fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.provides) { - const selections = fieldFederationMetadata.provides; - for (const selection of selections) { - const name = selection.name.value; - const matchingField = allFields[name]; - if (!matchingField) { - errors.push(utils_1.errorWithCode('PROVIDES_FIELDS_SELECT_INVALID_TYPE', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `A @provides selects ${name}, but ${fieldType.name}.${name} could not be found`)); - continue; - } - if (graphql_1.isListType(matchingField.type) || - (graphql_1.isNonNullType(matchingField.type) && - graphql_1.isListType(graphql_1.getNullableType(matchingField.type)))) { - errors.push(utils_1.errorWithCode('PROVIDES_FIELDS_SELECT_INVALID_TYPE', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `A @provides selects ${fieldType.name}.${name}, which is a list type. A field cannot @provide lists.`)); - } - if (graphql_1.isInterfaceType(matchingField.type) || - (graphql_1.isNonNullType(matchingField.type) && - graphql_1.isInterfaceType(graphql_1.getNullableType(matchingField.type)))) { - errors.push(utils_1.errorWithCode('PROVIDES_FIELDS_SELECT_INVALID_TYPE', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `A @provides selects ${fieldType.name}.${name}, which is an interface type. A field cannot @provide interfaces.`)); - } - if (graphql_1.isUnionType(matchingField.type) || - (graphql_1.isNonNullType(matchingField.type) && - graphql_1.isUnionType(graphql_1.getNullableType(matchingField.type)))) { - errors.push(utils_1.errorWithCode('PROVIDES_FIELDS_SELECT_INVALID_TYPE', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `A @provides selects ${fieldType.name}.${name}, which is a union type. A field cannot @provide union types.`)); - } - } - } - } - } - return errors; -}; -//# sourceMappingURL=providesFieldsSelectInvalidType.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.js.map deleted file mode 100644 index 4c4c6f6..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesFieldsSelectInvalidType.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"providesFieldsSelectInvalidType.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/providesFieldsSelectInvalidType.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.d.ts deleted file mode 100644 index c99dc41..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const providesNotOnEntity: PostCompositionValidator; -//# sourceMappingURL=providesNotOnEntity.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.d.ts.map deleted file mode 100644 index c61a1b3..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"providesNotOnEntity.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/providesNotOnEntity.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAK7C,eAAO,MAAM,mBAAmB,EAAE,wBAgEjC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.js deleted file mode 100644 index 55648fa..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.providesNotOnEntity = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.providesNotOnEntity = ({ schema }) => { - var _a; - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = utils_1.getFederationMetadata(field); - const serviceName = fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.serviceName; - if (!serviceName && (fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.provides) && - !(fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.belongsToValueType)) - throw Error('Internal Consistency Error: field with provides information does not have service name.'); - if (!serviceName) - continue; - const getBaseType = (type) => graphql_1.isListType(type) || graphql_1.isNonNullType(type) - ? getBaseType(type.ofType) - : type; - const baseType = getBaseType(field.type); - if (fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.provides) { - if (!graphql_1.isObjectType(baseType)) { - errors.push(utils_1.errorWithCode('PROVIDES_NOT_ON_ENTITY', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `uses the @provides directive but \`${typeName}.${fieldName}\` returns \`${field.type}\`, which is not an Object or List type. @provides can only be used on Object types with at least one @key, or Lists of such Objects.`)); - continue; - } - const fieldType = types[baseType.name]; - const selectedFieldIsEntity = (_a = utils_1.getFederationMetadata(fieldType)) === null || _a === void 0 ? void 0 : _a.keys; - if (!selectedFieldIsEntity) { - errors.push(utils_1.errorWithCode('PROVIDES_NOT_ON_ENTITY', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `uses the @provides directive but \`${typeName}.${fieldName}\` does not return a type that has a @key. Try adding a @key to the \`${baseType}\` type.`)); - } - } - } - } - return errors; -}; -//# sourceMappingURL=providesNotOnEntity.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.js.map deleted file mode 100644 index 96db199..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/providesNotOnEntity.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"providesNotOnEntity.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/providesNotOnEntity.ts"],"names":[],"mappings":";;;AAAA,qCAKiB;AACjB,uCAAsF;AAMzE,QAAA,mBAAmB,GAA6B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;IAC1E,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAEzD,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;YAAE,SAAS;QAIvC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE;YACtE,MAAM,uBAAuB,GAAG,6BAAqB,CAAC,KAAK,CAAC,CAAA;YAC5D,MAAM,WAAW,GAAG,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,WAAW,CAAC;YAMzD,IACE,CAAC,WAAW,KACZ,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,CAAA;gBACjC,EAAC,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,kBAAkB,CAAA;gBAE5C,MAAM,KAAK,CACT,yFAAyF,CAC1F,CAAC;YACJ,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,MAAM,WAAW,GAAG,CAAC,IAAS,EAAO,EAAE,CACrC,oBAAU,CAAC,IAAI,CAAC,IAAI,uBAAa,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAGzC,IAAI,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,EAAE;gBACrC,IAAI,CAAC,sBAAY,CAAC,QAAQ,CAAC,EAAE;oBAC3B,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,wBAAwB,EACxB,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;wBACjD,sCAAsC,QAAQ,IAAI,SAAS,gBAAgB,KAAK,CAAC,IAAI,uIAAuI,CAC/N,CACF,CAAC;oBACF,SAAS;iBACV;gBAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,qBAAqB,SAAG,6BAAqB,CAAC,SAAS,CAAC,0CAAE,IAAI,CAAC;gBAErE,IAAI,CAAC,qBAAqB,EAAE;oBAC1B,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,wBAAwB,EACxB,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;wBACjD,sCAAsC,QAAQ,IAAI,SAAS,yEAAyE,QAAQ,UAAU,CACzJ,CACF,CAAC;iBACH;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.d.ts deleted file mode 100644 index 604ba81..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const requiresFieldsMissingExternal: PostCompositionValidator; -//# sourceMappingURL=requiresFieldsMissingExternal.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.d.ts.map deleted file mode 100644 index 236cc89..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"requiresFieldsMissingExternal.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/requiresFieldsMissingExternal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAK7C,eAAO,MAAM,6BAA6B,EAAE,wBAiD3C,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.js deleted file mode 100644 index 2198246..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.requiresFieldsMissingExternal = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.requiresFieldsMissingExternal = ({ schema, }) => { - var _a; - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = utils_1.getFederationMetadata(field); - const serviceName = fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.serviceName; - if (!serviceName) - continue; - if (fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.requires) { - const typeFederationMetadata = utils_1.getFederationMetadata(namedType); - const externalFieldsOnTypeForService = (_a = typeFederationMetadata === null || typeFederationMetadata === void 0 ? void 0 : typeFederationMetadata.externals) === null || _a === void 0 ? void 0 : _a[serviceName]; - const selections = fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.requires; - for (const selection of selections) { - const foundMatchingExternal = externalFieldsOnTypeForService - ? externalFieldsOnTypeForService.some(ext => ext.field.name.value === selection.name.value) - : undefined; - if (!foundMatchingExternal) { - errors.push(utils_1.errorWithCode('REQUIRES_FIELDS_MISSING_EXTERNAL', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `requires the field \`${selection.name.value}\` to be marked as @external.`)); - } - } - } - } - } - return errors; -}; -//# sourceMappingURL=requiresFieldsMissingExternal.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.js.map deleted file mode 100644 index 8b5830d..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingExternal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"requiresFieldsMissingExternal.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/requiresFieldsMissingExternal.ts"],"names":[],"mappings":";;;AAAA,qCAAgE;AAChE,uCAAsF;AAMzE,QAAA,6BAA6B,GAA6B,CAAC,EACtE,MAAM,GACP,EAAE,EAAE;;IACH,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAEzD,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;YAAE,SAAS;QAIvC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE;YACtE,MAAM,uBAAuB,GAAG,6BAAqB,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,WAAW,CAAC;YAMzD,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,IAAI,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,EAAE;gBACrC,MAAM,sBAAsB,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAC;gBAChE,MAAM,8BAA8B,SAClC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,SAAS,0CAAG,WAAW,CAAC,CAAC;gBAEnD,MAAM,UAAU,GAAG,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAuB,CAAC;gBACpE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,qBAAqB,GAAG,8BAA8B;wBAC1D,CAAC,CAAC,8BAA8B,CAAC,IAAI,CACjC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CACrD;wBACH,CAAC,CAAC,SAAS,CAAC;oBACd,IAAI,CAAC,qBAAqB,EAAE;wBAC1B,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,kCAAkC,EAClC,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;4BACjD,wBAAwB,SAAS,CAAC,IAAI,CAAC,KAAK,+BAA+B,CAC9E,CACF,CAAC;qBACH;iBACF;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.d.ts deleted file mode 100644 index d3332d7..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PostCompositionValidator } from '.'; -export declare const requiresFieldsMissingOnBase: PostCompositionValidator; -//# sourceMappingURL=requiresFieldsMissingOnBase.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.d.ts.map deleted file mode 100644 index c92db64..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"requiresFieldsMissingOnBase.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/requiresFieldsMissingOnBase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAK7C,eAAO,MAAM,2BAA2B,EAAE,wBA8CzC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.js deleted file mode 100644 index df96a03..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.requiresFieldsMissingOnBase = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.requiresFieldsMissingOnBase = ({ schema, }) => { - const errors = []; - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!graphql_1.isObjectType(namedType)) - continue; - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = utils_1.getFederationMetadata(field); - const serviceName = fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.serviceName; - if (!serviceName) - continue; - if (fieldFederationMetadata === null || fieldFederationMetadata === void 0 ? void 0 : fieldFederationMetadata.requires) { - const selections = fieldFederationMetadata.requires; - for (const selection of selections) { - const matchingFieldOnType = namedType.getFields()[selection.name.value]; - const typeFederationMetadata = utils_1.getFederationMetadata(matchingFieldOnType); - if (typeFederationMetadata === null || typeFederationMetadata === void 0 ? void 0 : typeFederationMetadata.serviceName) { - errors.push(utils_1.errorWithCode('REQUIRES_FIELDS_MISSING_ON_BASE', utils_1.logServiceAndType(serviceName, typeName, fieldName) + - `requires the field \`${selection.name.value}\` to be @external. @external fields must exist on the base type, not an extension.`)); - } - } - } - } - } - return errors; -}; -//# sourceMappingURL=requiresFieldsMissingOnBase.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.js.map deleted file mode 100644 index a89a673..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/postComposition/requiresFieldsMissingOnBase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"requiresFieldsMissingOnBase.js","sourceRoot":"","sources":["../../../../src/composition/validate/postComposition/requiresFieldsMissingOnBase.ts"],"names":[],"mappings":";;;AAAA,qCAAgE;AAChE,uCAAsF;AAMzE,QAAA,2BAA2B,GAA6B,CAAC,EACpE,MAAM,GACP,EAAE,EAAE;IACH,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAEzD,IAAI,CAAC,sBAAY,CAAC,SAAS,CAAC;YAAE,SAAS;QAIvC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE;YACtE,MAAM,uBAAuB,GAAG,6BAAqB,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,WAAW,CAAC;YAMzD,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,IAAI,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,EAAE;gBACrC,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAuB,CAAC;gBACnE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAElC,MAAM,mBAAmB,GAAG,SAAS,CAAC,SAAS,EAAE,CAC/C,SAAS,CAAC,IAAI,CAAC,KAAK,CACrB,CAAC;oBACF,MAAM,sBAAsB,GAAG,6BAAqB,CAAC,mBAAmB,CAAC,CAAC;oBAE1E,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,WAAW,EAAE;wBACvC,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,iCAAiC,EACjC,yBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;4BACjD,wBAAwB,SAAS,CAAC,IAAI,CAAC,KAAK,qFAAqF,CACpI,CACF,CAAC;qBACH;iBACF;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.d.ts deleted file mode 100644 index 3da68c5..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; -export declare const duplicateEnumOrScalar: ({ name: serviceName, typeDefs, }: ServiceDefinition) => GraphQLError[]; -//# sourceMappingURL=duplicateEnumOrScalar.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.d.ts.map deleted file mode 100644 index f4675c3..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"duplicateEnumOrScalar.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/duplicateEnumOrScalar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD,eAAO,MAAM,qBAAqB,qCAG/B,iBAAiB,mBAyCnB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.js deleted file mode 100644 index adbafeb..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.duplicateEnumOrScalar = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.duplicateEnumOrScalar = ({ name: serviceName, typeDefs, }) => { - const errors = []; - const enums = []; - const scalars = []; - graphql_1.visit(typeDefs, { - EnumTypeDefinition(definition) { - const name = definition.name.value; - if (enums.includes(name)) { - errors.push(utils_1.errorWithCode('DUPLICATE_ENUM_DEFINITION', utils_1.logServiceAndType(serviceName, name) + - `The enum, \`${name}\` was defined multiple times in this service. Remove one of the definitions for \`${name}\``)); - return definition; - } - enums.push(name); - return definition; - }, - ScalarTypeDefinition(definition) { - const name = definition.name.value; - if (scalars.includes(name)) { - errors.push(utils_1.errorWithCode('DUPLICATE_SCALAR_DEFINITION', utils_1.logServiceAndType(serviceName, name) + - `The scalar, \`${name}\` was defined multiple times in this service. Remove one of the definitions for \`${name}\``)); - return definition; - } - scalars.push(name); - return definition; - }, - }); - return errors; -}; -//# sourceMappingURL=duplicateEnumOrScalar.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.js.map deleted file mode 100644 index 2476bc2..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumOrScalar.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"duplicateEnumOrScalar.js","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/duplicateEnumOrScalar.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAG9C,uCAA+D;AAElD,QAAA,qBAAqB,GAAG,CAAC,EACpC,IAAI,EAAE,WAAW,EACjB,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,MAAM,GAAmB,EAAE,CAAC;IAGlC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,eAAK,CAAC,QAAQ,EAAE;QACd,kBAAkB,CAAC,UAAU;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,2BAA2B,EAC3B,yBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC;oBAClC,eAAe,IAAI,sFAAsF,IAAI,IAAI,CACpH,CACF,CAAC;gBACF,OAAO,UAAU,CAAC;aACnB;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,oBAAoB,CAAC,UAAU;YAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC1B,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,6BAA6B,EAC7B,yBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC;oBAClC,iBAAiB,IAAI,sFAAsF,IAAI,IAAI,CACtH,CACF,CAAC;gBACF,OAAO,UAAU,CAAC;aACnB;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.d.ts deleted file mode 100644 index 4badf07..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; -export declare const duplicateEnumValue: ({ name: serviceName, typeDefs, }: ServiceDefinition) => GraphQLError[]; -//# sourceMappingURL=duplicateEnumValue.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.d.ts.map deleted file mode 100644 index 559a34a..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"duplicateEnumValue.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/duplicateEnumValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD,eAAO,MAAM,kBAAkB,qCAG5B,iBAAiB,mBA+DnB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.js deleted file mode 100644 index 51c9059..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.js +++ /dev/null @@ -1,53 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.duplicateEnumValue = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.duplicateEnumValue = ({ name: serviceName, typeDefs, }) => { - const errors = []; - const enums = {}; - graphql_1.visit(typeDefs, { - EnumTypeDefinition(definition) { - const name = definition.name.value; - const enumValues = definition.values && definition.values.map(value => value.name.value); - if (!enumValues) - return definition; - if (enums[name] && enums[name].length) { - enumValues.map(valueName => { - if (enums[name].includes(valueName)) { - errors.push(utils_1.errorWithCode('DUPLICATE_ENUM_VALUE', utils_1.logServiceAndType(serviceName, name, valueName) + - `The enum, \`${name}\` has multiple definitions of the \`${valueName}\` value.`)); - return; - } - enums[name].push(valueName); - }); - } - else { - enums[name] = enumValues; - } - return definition; - }, - EnumTypeExtension(definition) { - const name = definition.name.value; - const enumValues = definition.values && definition.values.map(value => value.name.value); - if (!enumValues) - return definition; - if (enums[name] && enums[name].length) { - enumValues.map(valueName => { - if (enums[name].includes(valueName)) { - errors.push(utils_1.errorWithCode('DUPLICATE_ENUM_VALUE', utils_1.logServiceAndType(serviceName, name, valueName) + - `The enum, \`${name}\` has multiple definitions of the \`${valueName}\` value.`)); - return; - } - enums[name].push(valueName); - }); - } - else { - enums[name] = enumValues; - } - return definition; - }, - }); - return errors; -}; -//# sourceMappingURL=duplicateEnumValue.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.js.map deleted file mode 100644 index a927f52..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/duplicateEnumValue.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"duplicateEnumValue.js","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/duplicateEnumValue.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAG9C,uCAA+D;AAElD,QAAA,kBAAkB,GAAG,CAAC,EACjC,IAAI,EAAE,WAAW,EACjB,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,KAAK,GAAiC,EAAE,CAAC;IAE/C,eAAK,CAAC,QAAQ,EAAE;QACd,kBAAkB,CAAC,UAAU;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,MAAM,UAAU,GACd,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExE,IAAI,CAAC,UAAU;gBAAE,OAAO,UAAU,CAAC;YAEnC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;gBACrC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACzB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;wBACnC,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,sBAAsB,EACtB,yBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;4BAC7C,eAAe,IAAI,wCAAwC,SAAS,WAAW,CAClF,CACF,CAAC;wBACF,OAAO;qBACR;oBACD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;aAC1B;YAED,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,iBAAiB,CAAC,UAAU;YAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,MAAM,UAAU,GACd,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExE,IAAI,CAAC,UAAU;gBAAE,OAAO,UAAU,CAAC;YAEnC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;gBACrC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACzB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;wBACnC,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,sBAAsB,EACtB,yBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;4BAC7C,eAAe,IAAI,wCAAwC,SAAS,WAAW,CAClF,CACF,CAAC;wBACF,OAAO;qBACR;oBACD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;aAC1B;YAED,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.d.ts deleted file mode 100644 index ea75041..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; -export declare const externalUsedOnBase: ({ name: serviceName, typeDefs, }: ServiceDefinition) => GraphQLError[]; -//# sourceMappingURL=externalUsedOnBase.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.d.ts.map deleted file mode 100644 index 4f57b37..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"externalUsedOnBase.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/externalUsedOnBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOhD,eAAO,MAAM,kBAAkB,qCAG5B,iBAAiB,mBA+BnB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.js deleted file mode 100644 index ca733b6..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.externalUsedOnBase = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.externalUsedOnBase = ({ name: serviceName, typeDefs, }) => { - const errors = []; - graphql_1.visit(typeDefs, { - ObjectTypeDefinition(typeDefinition) { - if (typeDefinition.fields) { - for (const field of typeDefinition.fields) { - if (field.directives) { - for (const directive of field.directives) { - const name = directive.name.value; - if (name === 'external') { - errors.push(utils_1.errorWithCode('EXTERNAL_USED_ON_BASE', utils_1.logServiceAndType(serviceName, typeDefinition.name.value, field.name.value) + - `Found extraneous @external directive. @external cannot be used on base types.`)); - } - } - } - } - } - }, - }); - return errors; -}; -//# sourceMappingURL=externalUsedOnBase.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.js.map deleted file mode 100644 index 668894a..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/externalUsedOnBase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"externalUsedOnBase.js","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/externalUsedOnBase.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAG9C,uCAA+D;AAKlD,QAAA,kBAAkB,GAAG,CAAC,EACjC,IAAI,EAAE,WAAW,EACjB,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,eAAK,CAAC,QAAQ,EAAE;QACd,oBAAoB,CAAC,cAAc;YACjC,IAAI,cAAc,CAAC,MAAM,EAAE;gBACzB,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE;oBACzC,IAAI,KAAK,CAAC,UAAU,EAAE;wBACpB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE;4BACxC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;4BAClC,IAAI,IAAI,KAAK,UAAU,EAAE;gCACvB,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,uBAAuB,EACvB,yBAAiB,CACf,WAAW,EACX,cAAc,CAAC,IAAI,CAAC,KAAK,EACzB,KAAK,CAAC,IAAI,CAAC,KAAK,CACjB;oCACC,+EAA+E,CAClF,CACF,CAAC;6BACH;yBACF;qBACF;iBACF;aACF;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.d.ts deleted file mode 100644 index 489796b..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { externalUsedOnBase } from './externalUsedOnBase'; -export { requiresUsedOnBase } from './requiresUsedOnBase'; -export { keyFieldsMissingExternal } from './keyFieldsMissingExternal'; -export { reservedFieldUsed } from './reservedFieldUsed'; -export { duplicateEnumOrScalar } from './duplicateEnumOrScalar'; -export { duplicateEnumValue } from './duplicateEnumValue'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.d.ts.map deleted file mode 100644 index 7706590..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.js deleted file mode 100644 index 36d76da..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var externalUsedOnBase_1 = require("./externalUsedOnBase"); -Object.defineProperty(exports, "externalUsedOnBase", { enumerable: true, get: function () { return externalUsedOnBase_1.externalUsedOnBase; } }); -var requiresUsedOnBase_1 = require("./requiresUsedOnBase"); -Object.defineProperty(exports, "requiresUsedOnBase", { enumerable: true, get: function () { return requiresUsedOnBase_1.requiresUsedOnBase; } }); -var keyFieldsMissingExternal_1 = require("./keyFieldsMissingExternal"); -Object.defineProperty(exports, "keyFieldsMissingExternal", { enumerable: true, get: function () { return keyFieldsMissingExternal_1.keyFieldsMissingExternal; } }); -var reservedFieldUsed_1 = require("./reservedFieldUsed"); -Object.defineProperty(exports, "reservedFieldUsed", { enumerable: true, get: function () { return reservedFieldUsed_1.reservedFieldUsed; } }); -var duplicateEnumOrScalar_1 = require("./duplicateEnumOrScalar"); -Object.defineProperty(exports, "duplicateEnumOrScalar", { enumerable: true, get: function () { return duplicateEnumOrScalar_1.duplicateEnumOrScalar; } }); -var duplicateEnumValue_1 = require("./duplicateEnumValue"); -Object.defineProperty(exports, "duplicateEnumValue", { enumerable: true, get: function () { return duplicateEnumValue_1.duplicateEnumValue; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.js.map deleted file mode 100644 index 03be5b4..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/index.ts"],"names":[],"mappings":";;AAAA,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AACjC,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.d.ts deleted file mode 100644 index a68592e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; -export declare const keyFieldsMissingExternal: ({ name: serviceName, typeDefs, }: ServiceDefinition) => GraphQLError[]; -//# sourceMappingURL=keyFieldsMissingExternal.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.d.ts.map deleted file mode 100644 index 61bde18..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keyFieldsMissingExternal.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/keyFieldsMissingExternal.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,YAAY,EAEb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAYhD,eAAO,MAAM,wBAAwB,qCAGlC,iBAAiB,mBAwFnB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.js deleted file mode 100644 index b14887a..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.js +++ /dev/null @@ -1,61 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.keyFieldsMissingExternal = void 0; -const graphql_1 = require("graphql"); -const apollo_graphql_1 = require("apollo-graphql"); -const directives_1 = require("../../../directives"); -const utils_1 = require("../../utils"); -exports.keyFieldsMissingExternal = ({ name: serviceName, typeDefs, }) => { - const errors = []; - let keyDirectiveInfoOnTypeExtensions = []; - graphql_1.visit(typeDefs, { - ObjectTypeExtension(node) { - const keyDirectivesOnTypeExtension = utils_1.findDirectivesOnTypeOrField(node, 'key'); - const keyDirectivesInfo = keyDirectivesOnTypeExtension - .map(keyDirective => keyDirective.arguments && - utils_1.isStringValueNode(keyDirective.arguments[0].value) - ? { - typeName: node.name.value, - keyArgument: keyDirective.arguments[0].value.value, - } - : null) - .filter(utils_1.isNotNullOrUndefined); - keyDirectiveInfoOnTypeExtensions.push(...keyDirectivesInfo); - }, - }); - let schema = new graphql_1.GraphQLSchema({ - query: undefined, - directives: [...graphql_1.specifiedDirectives, ...directives_1.federationDirectives], - }); - try { - schema = apollo_graphql_1.buildSchemaFromSDL(typeDefs, schema); - } - catch (e) { - errors.push(e); - return errors; - } - const typeInfo = new graphql_1.TypeInfo(schema); - for (const { typeName, keyArgument } of keyDirectiveInfoOnTypeExtensions) { - const keyDirectiveSelectionSet = graphql_1.parse(`fragment __generated on ${typeName} { ${keyArgument} }`); - graphql_1.visit(keyDirectiveSelectionSet, graphql_1.visitWithTypeInfo(typeInfo, { - Field() { - const fieldDef = typeInfo.getFieldDef(); - const parentType = typeInfo.getParentType(); - if (parentType) { - if (!fieldDef) { - errors.push(utils_1.errorWithCode('KEY_FIELDS_MISSING_EXTERNAL', utils_1.logServiceAndType(serviceName, parentType.name) + - `A @key directive specifies a field which is not found in this service. Add a field to this type with @external.`)); - return; - } - const externalDirectivesOnField = utils_1.findDirectivesOnTypeOrField(fieldDef.astNode, 'external'); - if (externalDirectivesOnField.length === 0) { - errors.push(utils_1.errorWithCode('KEY_FIELDS_MISSING_EXTERNAL', utils_1.logServiceAndType(serviceName, parentType.name) + - `A @key directive specifies the \`${fieldDef.name}\` field which has no matching @external field.`)); - } - } - }, - })); - } - return errors; -}; -//# sourceMappingURL=keyFieldsMissingExternal.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.js.map deleted file mode 100644 index b975baa..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/keyFieldsMissingExternal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keyFieldsMissingExternal.js","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/keyFieldsMissingExternal.ts"],"names":[],"mappings":";;;AAAA,qCAQiB;AACjB,mDAAoD;AACpD,oDAA2D;AAE3D,uCAMqB;AAKR,QAAA,wBAAwB,GAAG,CAAC,EACvC,IAAI,EAAE,WAAW,EACjB,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,MAAM,GAAmB,EAAE,CAAC;IAGlC,IAAI,gCAAgC,GAG9B,EAAE,CAAC;IACT,eAAK,CAAC,QAAQ,EAAE;QACd,mBAAmB,CAAC,IAAI;YACtB,MAAM,4BAA4B,GAAG,mCAA2B,CAC9D,IAAI,EACJ,KAAK,CACN,CAAC;YAEF,MAAM,iBAAiB,GAAG,4BAA4B;iBACnD,GAAG,CAAC,YAAY,CAAC,EAAE,CAClB,YAAY,CAAC,SAAS;gBACtB,yBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAChD,CAAC,CAAC;oBACE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;oBACzB,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;iBACnD;gBACH,CAAC,CAAC,IAAI,CACT;iBACA,MAAM,CAAC,4BAAoB,CAAC,CAAC;YAEhC,gCAAgC,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC,CAAC;IAGH,IAAI,MAAM,GAAG,IAAI,uBAAa,CAAC;QAC7B,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,CAAC,GAAG,6BAAmB,EAAE,GAAG,iCAAoB,CAAC;KAC9D,CAAC,CAAC;IACH,IAAI;QACF,MAAM,GAAG,mCAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC/C;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,MAAM,CAAC;KACf;IAED,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,CAAC;IAEtC,KAAK,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,gCAAgC,EAAE;QACxE,MAAM,wBAAwB,GAAG,eAAK,CACpC,2BAA2B,QAAQ,MAAM,WAAW,IAAI,CACzD,CAAC;QACF,eAAK,CACH,wBAAwB,EACxB,2BAAiB,CAAC,QAAQ,EAAE;YAC1B,KAAK;gBACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC5C,IAAI,UAAU,EAAE;oBACd,IAAI,CAAC,QAAQ,EAAE;wBAEb,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,6BAA6B,EAC7B,yBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC;4BAC7C,iHAAiH,CACpH,CACF,CAAC;wBACF,OAAO;qBACR;oBACD,MAAM,yBAAyB,GAAG,mCAA2B,CAC3D,QAAQ,CAAC,OAAO,EAChB,UAAU,CACX,CAAC;oBAEF,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC1C,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,6BAA6B,EAC7B,yBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC;4BAC7C,oCAAoC,QAAQ,CAAC,IAAI,iDAAiD,CACrG,CACF,CAAC;qBACH;iBACF;YACH,CAAC;SACF,CAAC,CACH,CAAC;KACH;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.d.ts deleted file mode 100644 index d542976..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; -export declare const requiresUsedOnBase: ({ name: serviceName, typeDefs, }: ServiceDefinition) => GraphQLError[]; -//# sourceMappingURL=requiresUsedOnBase.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.d.ts.map deleted file mode 100644 index ceb5f11..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"requiresUsedOnBase.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/requiresUsedOnBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOhD,eAAO,MAAM,kBAAkB,qCAG5B,iBAAiB,mBA+BnB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.js deleted file mode 100644 index 70750a5..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.requiresUsedOnBase = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.requiresUsedOnBase = ({ name: serviceName, typeDefs, }) => { - const errors = []; - graphql_1.visit(typeDefs, { - ObjectTypeDefinition(typeDefinition) { - if (typeDefinition.fields) { - for (const field of typeDefinition.fields) { - if (field.directives) { - for (const directive of field.directives) { - const name = directive.name.value; - if (name === 'requires') { - errors.push(utils_1.errorWithCode('REQUIRES_USED_ON_BASE', utils_1.logServiceAndType(serviceName, typeDefinition.name.value, field.name.value) + - `Found extraneous @requires directive. @requires cannot be used on base types.`)); - } - } - } - } - } - }, - }); - return errors; -}; -//# sourceMappingURL=requiresUsedOnBase.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.js.map deleted file mode 100644 index 25c86af..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/requiresUsedOnBase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"requiresUsedOnBase.js","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/requiresUsedOnBase.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAG9C,uCAA+D;AAKlD,QAAA,kBAAkB,GAAG,CAAC,EACjC,IAAI,EAAE,WAAW,EACjB,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,eAAK,CAAC,QAAQ,EAAE;QACd,oBAAoB,CAAC,cAAc;YACjC,IAAI,cAAc,CAAC,MAAM,EAAE;gBACzB,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE;oBACzC,IAAI,KAAK,CAAC,UAAU,EAAE;wBACpB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE;4BACxC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;4BAClC,IAAI,IAAI,KAAK,UAAU,EAAE;gCACvB,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,uBAAuB,EACvB,yBAAiB,CACf,WAAW,EACX,cAAc,CAAC,IAAI,CAAC,KAAK,EACzB,KAAK,CAAC,IAAI,CAAC,KAAK,CACjB;oCACC,+EAA+E,CAClF,CACF,CAAC;6BACH;yBACF;qBACF;iBACF;aACF;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.d.ts deleted file mode 100644 index 6d8c8e7..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; -export declare const reservedFieldUsed: ({ name: serviceName, typeDefs, }: ServiceDefinition) => GraphQLError[]; -//# sourceMappingURL=reservedFieldUsed.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.d.ts.map deleted file mode 100644 index 07b6df9..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"reservedFieldUsed.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/reservedFieldUsed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUhD,eAAO,MAAM,iBAAiB,qCAG3B,iBAAiB,mBAiCnB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.js deleted file mode 100644 index fe69fee..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.reservedFieldUsed = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.reservedFieldUsed = ({ name: serviceName, typeDefs, }) => { - const errors = []; - let rootQueryName = 'Query'; - graphql_1.visit(typeDefs, { - OperationTypeDefinition(node) { - if (node.operation === 'query') { - rootQueryName = node.type.name.value; - } - }, - }); - graphql_1.visit(typeDefs, { - ObjectTypeDefinition(node) { - if (node.name.value === rootQueryName && node.fields) { - for (const field of node.fields) { - const { value: fieldName } = field.name; - if (utils_1.reservedRootFields.includes(fieldName)) { - errors.push(utils_1.errorWithCode('RESERVED_FIELD_USED', utils_1.logServiceAndType(serviceName, rootQueryName, fieldName) + - `${fieldName} is a field reserved for federation and can\'t be used at the Query root.`)); - } - } - } - }, - }); - return errors; -}; -//# sourceMappingURL=reservedFieldUsed.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.js.map deleted file mode 100644 index 69c02e0..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preComposition/reservedFieldUsed.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"reservedFieldUsed.js","sourceRoot":"","sources":["../../../../src/composition/validate/preComposition/reservedFieldUsed.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAE9C,uCAIqB;AAKR,QAAA,iBAAiB,GAAG,CAAC,EAChC,IAAI,EAAE,WAAW,EACjB,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,IAAI,aAAa,GAAG,OAAO,CAAC;IAC5B,eAAK,CAAC,QAAQ,EAAE;QAEd,uBAAuB,CAAC,IAAI;YAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;gBAC9B,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aACtC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,eAAK,CAAC,QAAQ,EAAE;QACd,oBAAoB,CAAC,IAAI;YACvB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE;gBACpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC/B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;oBACxC,IAAI,0BAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;wBAC1C,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,qBAAqB,EACrB,yBAAiB,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC;4BACtD,GAAG,SAAS,2EAA2E,CAC1F,CACF,CAAC;qBACH;iBACF;aACF;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.d.ts deleted file mode 100644 index 9d62709..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { rootFieldUsed } from './rootFieldUsed'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.d.ts.map deleted file mode 100644 index 07d67ae..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preNormalization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.js deleted file mode 100644 index 285d9e2..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var rootFieldUsed_1 = require("./rootFieldUsed"); -Object.defineProperty(exports, "rootFieldUsed", { enumerable: true, get: function () { return rootFieldUsed_1.rootFieldUsed; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.js.map deleted file mode 100644 index 06b8062..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/composition/validate/preNormalization/index.ts"],"names":[],"mappings":";;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.d.ts deleted file mode 100644 index a765ff4..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; -export declare const rootFieldUsed: ({ name: serviceName, typeDefs, }: ServiceDefinition) => GraphQLError[]; -//# sourceMappingURL=rootFieldUsed.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.d.ts.map deleted file mode 100644 index 2071f77..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"rootFieldUsed.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/preNormalization/rootFieldUsed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAgC,MAAM,aAAa,CAAC;AAY9E,eAAO,MAAM,aAAa,qCAGvB,iBAAiB,mBA2DnB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.js deleted file mode 100644 index e71e653..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.rootFieldUsed = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -exports.rootFieldUsed = ({ name: serviceName, typeDefs, }) => { - const errors = []; - const defaultRootOperationNames = Object.values(utils_1.defaultRootOperationNameLookup); - const disallowedTypeNames = {}; - let hasSchemaDefinitionOrExtension = false; - graphql_1.visit(typeDefs, { - OperationTypeDefinition(node) { - hasSchemaDefinitionOrExtension = true; - if (!defaultRootOperationNames.includes(node.type.name - .value)) { - disallowedTypeNames[utils_1.defaultRootOperationNameLookup[node.operation]] = true; - } - }, - }); - if (hasSchemaDefinitionOrExtension) { - graphql_1.visit(typeDefs, { - ObjectTypeDefinition: visitType, - ObjectTypeExtension: visitType, - }); - function visitType(node) { - if (disallowedTypeNames[node.name.value]) { - const rootOperationName = node.name.value; - errors.push(utils_1.errorWithCode(`ROOT_${rootOperationName.toUpperCase()}_USED`, utils_1.logServiceAndType(serviceName, rootOperationName) + - `Found invalid use of default root operation name \`${rootOperationName}\`. \`${rootOperationName}\` is disallowed when \`Schema.${rootOperationName.toLowerCase()}\` is set to a type other than \`${rootOperationName}\`.`)); - } - } - } - return errors; -}; -//# sourceMappingURL=rootFieldUsed.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.js.map deleted file mode 100644 index 4643383..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/preNormalization/rootFieldUsed.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"rootFieldUsed.js","sourceRoot":"","sources":["../../../../src/composition/validate/preNormalization/rootFieldUsed.ts"],"names":[],"mappings":";;;AAAA,qCAKiB;AAEjB,uCAIqB;AAOR,QAAA,aAAa,GAAG,CAAC,EAC5B,IAAI,EAAE,WAAW,EACjB,QAAQ,GACU,EAAE,EAAE;IACtB,MAAM,MAAM,GAAmB,EAAE,CAAC;IAGlC,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAC7C,sCAA8B,CAC/B,CAAC;IAEF,MAAM,mBAAmB,GAErB,EAAE,CAAC;IAEP,IAAI,8BAA8B,GAAG,KAAK,CAAC;IAC3C,eAAK,CAAC,QAAQ,EAAE;QACd,uBAAuB,CAAC,IAAI;YAG1B,8BAA8B,GAAG,IAAI,CAAC;YAEtC,IACE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;iBAC/C,KAAqC,CAAC,EACzC;gBACA,mBAAmB,CACjB,sCAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,CAC/C,GAAG,IAAI,CAAC;aACV;QACH,CAAC;KACF,CAAC,CAAC;IAMH,IAAI,8BAA8B,EAAE;QAClC,eAAK,CAAC,QAAQ,EAAE;YACd,oBAAoB,EAAE,SAAS;YAC/B,mBAAmB,EAAE,SAAS;SAC/B,CAAC,CAAC;QAEH,SAAS,SAAS,CAChB,IAAwD;YAExD,IACE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAqC,CAAC,EACpE;gBACA,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC1C,MAAM,CAAC,IAAI,CACT,qBAAa,CACX,QAAQ,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAC9C,yBAAiB,CAAC,WAAW,EAAE,iBAAiB,CAAC;oBAC/C,sDAAsD,iBAAiB,SAAS,iBAAiB,kCAAkC,iBAAiB,CAAC,WAAW,EAAE,oCAAoC,iBAAiB,KAAK,CAC/N,CACF,CAAC;aACH;QACH,CAAC;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.d.ts deleted file mode 100644 index d2c3128..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { UniqueTypeNamesWithFields } from './uniqueTypeNamesWithFields'; -export { MatchingEnums } from './matchingEnums'; -export { PossibleTypeExtensions } from './possibleTypeExtensions'; -export { UniqueFieldDefinitionNames } from './uniqueFieldDefinitionNames'; -export { UniqueUnionTypes } from './matchingUnions'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.d.ts.map deleted file mode 100644 index 0c18ccd..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.js deleted file mode 100644 index ab783ec..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var uniqueTypeNamesWithFields_1 = require("./uniqueTypeNamesWithFields"); -Object.defineProperty(exports, "UniqueTypeNamesWithFields", { enumerable: true, get: function () { return uniqueTypeNamesWithFields_1.UniqueTypeNamesWithFields; } }); -var matchingEnums_1 = require("./matchingEnums"); -Object.defineProperty(exports, "MatchingEnums", { enumerable: true, get: function () { return matchingEnums_1.MatchingEnums; } }); -var possibleTypeExtensions_1 = require("./possibleTypeExtensions"); -Object.defineProperty(exports, "PossibleTypeExtensions", { enumerable: true, get: function () { return possibleTypeExtensions_1.PossibleTypeExtensions; } }); -var uniqueFieldDefinitionNames_1 = require("./uniqueFieldDefinitionNames"); -Object.defineProperty(exports, "UniqueFieldDefinitionNames", { enumerable: true, get: function () { return uniqueFieldDefinitionNames_1.UniqueFieldDefinitionNames; } }); -var matchingUnions_1 = require("./matchingUnions"); -Object.defineProperty(exports, "UniqueUnionTypes", { enumerable: true, get: function () { return matchingUnions_1.UniqueUnionTypes; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.js.map deleted file mode 100644 index d3baa49..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/index.ts"],"names":[],"mappings":";;AAAA,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,mDAAoD;AAA3C,kHAAA,gBAAgB,OAAA"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.d.ts deleted file mode 100644 index a489d3b..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -import { ASTVisitor } from 'graphql'; -export declare function MatchingEnums(context: SDLValidationContext): ASTVisitor; -//# sourceMappingURL=matchingEnums.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.d.ts.map deleted file mode 100644 index 836f25a..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"matchingEnums.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/matchingEnums.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EACL,UAAU,EAKX,MAAM,SAAS,CAAC;AAYjB,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,UAAU,CAuGvE"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.js deleted file mode 100644 index 75b6b2d..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.js +++ /dev/null @@ -1,67 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MatchingEnums = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -const util_1 = require("util"); -function isEnumDefinition(node) { - return node.kind === graphql_1.Kind.ENUM_TYPE_DEFINITION; -} -function MatchingEnums(context) { - const { definitions } = context.getDocument(); - let definitionsByName = definitions.reduce((typeToDefinitionsMap, node) => { - const name = node.name.value; - if (typeToDefinitionsMap[name]) { - typeToDefinitionsMap[name].push(node); - } - else { - typeToDefinitionsMap[name] = [node]; - } - return typeToDefinitionsMap; - }, {}); - for (const [name, definitions] of Object.entries(definitionsByName)) { - if (definitions.every(isEnumDefinition)) { - let simpleEnumDefs = []; - for (const { values, serviceName, } of definitions) { - if (serviceName && values) - simpleEnumDefs.push({ - serviceName, - values: values.map((enumValue) => enumValue.name.value), - }); - } - for (const definition of simpleEnumDefs) { - definition.values = definition.values.sort(); - } - let matchingEnumGroups = {}; - for (const definition of simpleEnumDefs) { - const key = definition.values.join(); - if (matchingEnumGroups[key]) { - matchingEnumGroups[key].push(definition.serviceName); - } - else { - matchingEnumGroups[key] = [definition.serviceName]; - } - } - if (Object.keys(matchingEnumGroups).length > 1) { - context.reportError(utils_1.errorWithCode('ENUM_MISMATCH', `The \`${name}\` enum does not have identical values in all services. Groups of services with identical values are: ${Object.values(matchingEnumGroups) - .map(serviceNames => `[${serviceNames.join(', ')}]`) - .join(', ')}`)); - } - } - else if (definitions.some(isEnumDefinition)) { - const servicesWithEnum = definitions - .filter(isEnumDefinition) - .map(definition => definition.serviceName) - .filter(util_1.isString); - const servicesWithoutEnum = definitions - .filter(d => !isEnumDefinition(d)) - .map(d => d.serviceName) - .filter(util_1.isString); - context.reportError(utils_1.errorWithCode('ENUM_MISMATCH_TYPE', utils_1.logServiceAndType(servicesWithEnum[0], name) + - `${name} is an enum in [${servicesWithEnum.join(', ')}], but not in [${servicesWithoutEnum.join(', ')}]`)); - } - } - return {}; -} -exports.MatchingEnums = MatchingEnums; -//# sourceMappingURL=matchingEnums.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.js.map deleted file mode 100644 index 11f884b..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingEnums.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"matchingEnums.js","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/matchingEnums.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.d.ts deleted file mode 100644 index 28d0547..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ASTVisitor } from 'graphql'; -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -export declare function UniqueUnionTypes(context: SDLValidationContext): ASTVisitor; -//# sourceMappingURL=matchingUnions.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.d.ts.map deleted file mode 100644 index 1e81dd9..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"matchingUnions.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/matchingUnions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAA2B,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAc5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,UAAU,CAyE1E"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.js deleted file mode 100644 index b799498..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.UniqueUnionTypes = void 0; -const graphql_1 = require("graphql"); -const lodash_xorby_1 = __importDefault(require("lodash.xorby")); -const utils_1 = require("../../utils"); -const uniqueTypeNamesWithFields_1 = require("./uniqueTypeNamesWithFields"); -function UniqueUnionTypes(context) { - const knownTypes = Object.create(null); - const schema = context.getSchema(); - return { - UnionTypeDefinition: validateUnionTypes, - }; - function validateUnionTypes(node) { - const typeName = node.name.value; - const typeFromSchema = schema && schema.getType(typeName); - const typeNodeFromSchema = typeFromSchema && - typeFromSchema.astNode; - const typeNodeFromDefs = knownTypes[typeName]; - const duplicateTypeNode = typeNodeFromSchema || typeNodeFromDefs; - if (duplicateTypeNode) { - const unionDiff = lodash_xorby_1.default(node.types, duplicateTypeNode.types, 'name.value'); - const diffLength = unionDiff.length; - if (diffLength > 0) { - context.reportError(utils_1.errorWithCode('VALUE_TYPE_UNION_TYPES_MISMATCH', `${utils_1.logServiceAndType(duplicateTypeNode.serviceName, typeName)}The union \`${typeName}\` is defined in services \`${duplicateTypeNode.serviceName}\` and \`${node.serviceName}\`, however their types do not match. Union types with the same name must also consist of identical types. The type${diffLength > 1 ? 's' : ''} ${unionDiff.map(diffEntry => diffEntry.name.value).join(', ')} ${diffLength > 1 ? 'are' : 'is'} mismatched.`, [node, duplicateTypeNode])); - } - return false; - } - if (typeFromSchema) { - context.reportError(new graphql_1.GraphQLError(uniqueTypeNamesWithFields_1.existedTypeNameMessage(typeName), node.name)); - return; - } - if (knownTypes[typeName]) { - context.reportError(new graphql_1.GraphQLError(uniqueTypeNamesWithFields_1.duplicateTypeNameMessage(typeName), [ - knownTypes[typeName], - node.name, - ])); - } - else { - knownTypes[typeName] = node; - } - return false; - } -} -exports.UniqueUnionTypes = UniqueUnionTypes; -//# sourceMappingURL=matchingUnions.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.js.map deleted file mode 100644 index 4c312a2..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/matchingUnions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"matchingUnions.js","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/matchingUnions.ts"],"names":[],"mappings":";;;;;;AAAA,qCAA4E;AAE5E,gEAAiC;AAEjC,uCAA+D;AAC/D,2EAGqC;AAOrC,SAAgB,gBAAgB,CAAC,OAA6B;IAC5D,MAAM,UAAU,GAEZ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAEnC,OAAO;QACL,mBAAmB,EAAE,kBAAkB;KACxC,CAAC;IAEF,SAAS,kBAAkB,CAAC,IAA6B;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,MAAM,cAAc,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,kBAAkB,GACtB,cAAc;YACb,cAAc,CAAC,OAA0C,CAAC;QAE7D,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,iBAAiB,GAAG,kBAAkB,IAAI,gBAAgB,CAAC;QAGjE,IAAI,iBAAiB,EAAE;YACrB,MAAM,SAAS,GAAG,sBAAK,CACrB,IAAI,CAAC,KAAK,EACV,iBAAiB,CAAC,KAAK,EACvB,YAAY,CACb,CAAC;YAEF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;YACpC,IAAI,UAAU,GAAG,CAAC,EAAE;gBAClB,OAAO,CAAC,WAAW,CACjB,qBAAa,CACX,iCAAiC,EACjC,GAAG,yBAAiB,CAClB,iBAAiB,CAAC,WAAY,EAC9B,QAAQ,CACT,eAAe,QAAQ,+BACtB,iBAAiB,CAAC,WACpB,YACE,IAAI,CAAC,WACP,sHACE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACzB,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAC7D,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAC3B,cAAc,EACd,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAC1B,CACF,CAAC;aACH;YAED,OAAO,KAAK,CAAC;SACd;QAED,IAAI,cAAc,EAAE;YAClB,OAAO,CAAC,WAAW,CACjB,IAAI,sBAAY,CAAC,kDAAsB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAC9D,CAAC;YACF,OAAO;SACR;QAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,CAAC,WAAW,CACjB,IAAI,sBAAY,CAAC,oDAAwB,CAAC,QAAQ,CAAC,EAAE;gBACnD,UAAU,CAAC,QAAQ,CAAC;gBACpB,IAAI,CAAC,IAAI;aACV,CAAC,CACH,CAAC;SACH;aAAM;YACL,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SAC7B;QAED,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAzED,4CAyEC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.d.ts deleted file mode 100644 index 8feab50..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -import { ASTVisitor } from 'graphql'; -export declare function PossibleTypeExtensions(context: SDLValidationContext): ASTVisitor; -//# sourceMappingURL=possibleTypeExtensions.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.d.ts.map deleted file mode 100644 index 32cfc4f..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"possibleTypeExtensions.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/possibleTypeExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EACL,UAAU,EAYX,MAAM,SAAS,CAAC;AAiBjB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,UAAU,CAyDZ"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.js deleted file mode 100644 index b82d9e1..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.js +++ /dev/null @@ -1,90 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PossibleTypeExtensions = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -function PossibleTypeExtensions(context) { - const schema = context.getSchema(); - const definedTypes = Object.create(null); - for (const def of context.getDocument().definitions) { - if (graphql_1.isTypeDefinitionNode(def)) { - definedTypes[def.name.value] = def; - } - } - const checkExtension = (node) => { - const typeName = node.name.value; - const defNode = definedTypes[typeName]; - const existingType = schema && schema.getType(typeName); - const serviceName = node.serviceName; - if (!serviceName) - return; - if (defNode) { - const expectedKind = utils_1.defKindToExtKind[defNode.kind]; - const baseKind = defNode.kind; - if (expectedKind !== node.kind) { - context.reportError(utils_1.errorWithCode('EXTENSION_OF_WRONG_KIND', utils_1.logServiceAndType(serviceName, typeName) + - `\`${typeName}\` was originally defined as a ${baseKind} and can only be extended by a ${expectedKind}. ${serviceName} defines ${typeName} as a ${node.kind}`)); - } - } - else if (existingType) { - const expectedKind = typeToExtKind(existingType); - const baseKind = typeToKind(existingType); - if (expectedKind !== node.kind) { - context.reportError(utils_1.errorWithCode('EXTENSION_OF_WRONG_KIND', utils_1.logServiceAndType(serviceName, typeName) + - `\`${typeName}\` was originally defined as a ${baseKind} and can only be extended by a ${expectedKind}. ${serviceName} defines ${typeName} as a ${node.kind}`)); - } - } - else { - context.reportError(utils_1.errorWithCode('EXTENSION_WITH_NO_BASE', utils_1.logServiceAndType(serviceName, typeName) + - `\`${typeName}\` is an extension type, but \`${typeName}\` is not defined in any service`)); - } - }; - return { - ObjectTypeExtension: checkExtension, - InterfaceTypeExtension: checkExtension, - }; -} -exports.PossibleTypeExtensions = PossibleTypeExtensions; -function typeToExtKind(type) { - if (graphql_1.isScalarType(type)) { - return graphql_1.Kind.SCALAR_TYPE_EXTENSION; - } - else if (graphql_1.isObjectType(type)) { - return graphql_1.Kind.OBJECT_TYPE_EXTENSION; - } - else if (graphql_1.isInterfaceType(type)) { - return graphql_1.Kind.INTERFACE_TYPE_EXTENSION; - } - else if (graphql_1.isUnionType(type)) { - return graphql_1.Kind.UNION_TYPE_EXTENSION; - } - else if (graphql_1.isEnumType(type)) { - return graphql_1.Kind.ENUM_TYPE_EXTENSION; - } - else if (graphql_1.isInputObjectType(type)) { - return graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION; - } - return null; -} -function typeToKind(type) { - if (graphql_1.isScalarType(type)) { - return graphql_1.Kind.SCALAR_TYPE_DEFINITION; - } - else if (graphql_1.isObjectType(type)) { - return graphql_1.Kind.OBJECT_TYPE_DEFINITION; - } - else if (graphql_1.isInterfaceType(type)) { - return graphql_1.Kind.INTERFACE_TYPE_DEFINITION; - } - else if (graphql_1.isUnionType(type)) { - return graphql_1.Kind.UNION_TYPE_DEFINITION; - } - else if (graphql_1.isEnumType(type)) { - return graphql_1.Kind.ENUM_TYPE_DEFINITION; - } - else if (graphql_1.isInputObjectType(type)) { - return graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION; - } - return null; -} -//# sourceMappingURL=possibleTypeExtensions.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.js.map deleted file mode 100644 index 26d8c65..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/possibleTypeExtensions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"possibleTypeExtensions.js","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/possibleTypeExtensions.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.d.ts deleted file mode 100644 index bc659f3..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { ASTVisitor } from 'graphql'; -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -export declare function duplicateFieldDefinitionNameMessage(typeName: string, fieldName: string): string; -export declare function existedFieldDefinitionNameMessage(typeName: string, fieldName: string, serviceName: string): string; -export declare function UniqueFieldDefinitionNames(context: SDLValidationContext): ASTVisitor; -//# sourceMappingURL=uniqueFieldDefinitionNames.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.d.ts.map deleted file mode 100644 index 6f2a2e5..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uniqueFieldDefinitionNames.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/uniqueFieldDefinitionNames.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAaX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAiB5E,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAMR;AAQD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,oBAAoB,GAC5B,UAAU,CA6IZ"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.js deleted file mode 100644 index 81e61dd..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.js +++ /dev/null @@ -1,95 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.UniqueFieldDefinitionNames = exports.existedFieldDefinitionNameMessage = exports.duplicateFieldDefinitionNameMessage = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -function duplicateFieldDefinitionNameMessage(typeName, fieldName) { - return `Field "${typeName}.${fieldName}" can only be defined once.`; -} -exports.duplicateFieldDefinitionNameMessage = duplicateFieldDefinitionNameMessage; -function existedFieldDefinitionNameMessage(typeName, fieldName, serviceName) { - return `${utils_1.logServiceAndType(serviceName, typeName, fieldName)}Field "${typeName}.${fieldName}" already exists in the schema. It cannot also be defined in this type extension. If this is meant to be an external field, add the \`@external\` directive.`; -} -exports.existedFieldDefinitionNameMessage = existedFieldDefinitionNameMessage; -function UniqueFieldDefinitionNames(context) { - const schema = context.getSchema(); - const existingTypeMap = schema - ? schema.getTypeMap() - : Object.create(null); - const knownFieldNames = Object.create(null); - const possibleValueTypes = Object.create(null); - return { - InputObjectTypeExtension: checkFieldUniqueness, - InterfaceTypeExtension: checkFieldUniqueness, - ObjectTypeExtension: checkFieldUniqueness, - InputObjectTypeDefinition: checkFieldUniquenessExcludingValueTypes, - InterfaceTypeDefinition: checkFieldUniquenessExcludingValueTypes, - ObjectTypeDefinition: checkFieldUniquenessExcludingValueTypes, - }; - function checkFieldUniqueness(node) { - const typeName = node.name.value; - if (!knownFieldNames[typeName]) { - knownFieldNames[typeName] = Object.create(null); - } - if (!node.fields) { - return false; - } - const fieldNames = knownFieldNames[typeName]; - for (const fieldDef of node.fields) { - const fieldName = fieldDef.name.value; - if (hasField(existingTypeMap[typeName], fieldName)) { - context.reportError(new graphql_1.GraphQLError(existedFieldDefinitionNameMessage(typeName, fieldName, existingTypeMap[typeName].astNode.serviceName), fieldDef.name)); - } - else if (fieldNames[fieldName]) { - context.reportError(new graphql_1.GraphQLError(duplicateFieldDefinitionNameMessage(typeName, fieldName), [fieldNames[fieldName], fieldDef.name])); - } - else { - fieldNames[fieldName] = fieldDef.name; - } - } - return false; - } - function checkFieldUniquenessExcludingValueTypes(node) { - const typeName = node.name.value; - const valueTypeFromSchema = existingTypeMap[typeName] && - existingTypeMap[typeName].astNode; - const duplicateTypeNode = valueTypeFromSchema || possibleValueTypes[node.name.value]; - if (duplicateTypeNode) { - const { fields } = utils_1.diffTypeNodes(node, duplicateTypeNode); - if (Object.values(fields).every(diffEntry => diffEntry.length === 2)) { - return false; - } - } - else { - possibleValueTypes[node.name.value] = node; - } - if (!knownFieldNames[typeName]) { - knownFieldNames[typeName] = Object.create(null); - } - if (!node.fields) { - return false; - } - const fieldNames = knownFieldNames[typeName]; - for (const fieldDef of node.fields) { - const fieldName = fieldDef.name.value; - if (hasField(existingTypeMap[typeName], fieldName)) { - context.reportError(new graphql_1.GraphQLError(existedFieldDefinitionNameMessage(typeName, fieldName, existingTypeMap[typeName].astNode.serviceName), fieldDef.name)); - } - else if (fieldNames[fieldName]) { - context.reportError(new graphql_1.GraphQLError(duplicateFieldDefinitionNameMessage(typeName, fieldName), [fieldNames[fieldName], fieldDef.name])); - } - else { - fieldNames[fieldName] = fieldDef.name; - } - } - return false; - } -} -exports.UniqueFieldDefinitionNames = UniqueFieldDefinitionNames; -function hasField(type, fieldName) { - if (graphql_1.isObjectType(type) || graphql_1.isInterfaceType(type) || graphql_1.isInputObjectType(type)) { - return Boolean(type.getFields()[fieldName]); - } - return false; -} -//# sourceMappingURL=uniqueFieldDefinitionNames.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.js.map deleted file mode 100644 index f1e0455..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueFieldDefinitionNames.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uniqueFieldDefinitionNames.js","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/uniqueFieldDefinitionNames.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.d.ts b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.d.ts deleted file mode 100644 index 1f24eee..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { ASTVisitor } from 'graphql'; -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -export declare function duplicateTypeNameMessage(typeName: string): string; -export declare function existedTypeNameMessage(typeName: string): string; -export declare function UniqueTypeNamesWithFields(context: SDLValidationContext): ASTVisitor; -//# sourceMappingURL=uniqueTypeNamesWithFields.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.d.ts.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.d.ts.map deleted file mode 100644 index e1caff5..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uniqueTypeNamesWithFields.d.ts","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/uniqueTypeNamesWithFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAS5E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAOD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,oBAAoB,GAC5B,UAAU,CA6IZ"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.js b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.js deleted file mode 100644 index 7021ee8..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.js +++ /dev/null @@ -1,76 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.UniqueTypeNamesWithFields = exports.existedTypeNameMessage = exports.duplicateTypeNameMessage = void 0; -const graphql_1 = require("graphql"); -const utils_1 = require("../../utils"); -function duplicateTypeNameMessage(typeName) { - return `There can be only one type named "${typeName}".`; -} -exports.duplicateTypeNameMessage = duplicateTypeNameMessage; -function existedTypeNameMessage(typeName) { - return `Type "${typeName}" already exists in the schema. It cannot also be defined in this type definition.`; -} -exports.existedTypeNameMessage = existedTypeNameMessage; -function UniqueTypeNamesWithFields(context) { - const knownTypes = Object.create(null); - const schema = context.getSchema(); - return { - ScalarTypeDefinition: checkTypeName, - ObjectTypeDefinition: checkTypeName, - InterfaceTypeDefinition: checkTypeName, - UnionTypeDefinition: checkTypeName, - EnumTypeDefinition: checkTypeName, - InputObjectTypeDefinition: checkTypeName, - }; - function checkTypeName(node) { - const typeName = node.name.value; - const typeFromSchema = schema && schema.getType(typeName); - const typeNodeFromSchema = typeFromSchema && - typeFromSchema.astNode; - const typeNodeFromDefs = knownTypes[typeName]; - const duplicateTypeNode = typeNodeFromSchema || typeNodeFromDefs; - if (duplicateTypeNode) { - const possibleErrors = []; - const { kind, fields } = utils_1.diffTypeNodes(node, duplicateTypeNode); - const fieldsDiff = Object.entries(fields); - if (kind.length > 0) { - context.reportError(utils_1.errorWithCode('VALUE_TYPE_KIND_MISMATCH', `${utils_1.logServiceAndType(duplicateTypeNode.serviceName, typeName)}Found kind mismatch on expected value type belonging to services \`${duplicateTypeNode.serviceName}\` and \`${node.serviceName}\`. \`${typeName}\` is defined as both a \`${kind[0]}\` and a \`${kind[1]}\`. In order to define \`${typeName}\` in multiple places, the kinds must be identical.`, [node, duplicateTypeNode])); - return; - } - const typesHaveSameShape = fieldsDiff.length === 0 || - fieldsDiff.every(([fieldName, types]) => { - if (types.length === 2) { - possibleErrors.push(utils_1.errorWithCode('VALUE_TYPE_FIELD_TYPE_MISMATCH', `${utils_1.logServiceAndType(duplicateTypeNode.serviceName, typeName, fieldName)}A field was defined differently in different services. \`${duplicateTypeNode.serviceName}\` and \`${node.serviceName}\` define \`${typeName}.${fieldName}\` as a ${types[1]} and ${types[0]} respectively. In order to define \`${typeName}\` in multiple places, the fields and their types must be identical.`, [node, duplicateTypeNode])); - return true; - } - return false; - }); - if (typesHaveSameShape) { - possibleErrors.forEach(error => context.reportError(error)); - if (utils_1.isTypeNodeAnEntity(node) || utils_1.isTypeNodeAnEntity(duplicateTypeNode)) { - const entityNode = utils_1.isTypeNodeAnEntity(duplicateTypeNode) - ? duplicateTypeNode - : node; - context.reportError(utils_1.errorWithCode('VALUE_TYPE_NO_ENTITY', `${utils_1.logServiceAndType(entityNode.serviceName, typeName)}Value types cannot be entities (using the \`@key\` directive). Please ensure that the \`${typeName}\` type is extended properly or remove the \`@key\` directive if this is not an entity.`, [node, duplicateTypeNode])); - } - return false; - } - } - if (typeFromSchema) { - context.reportError(new graphql_1.GraphQLError(existedTypeNameMessage(typeName), node.name)); - return; - } - if (knownTypes[typeName]) { - context.reportError(new graphql_1.GraphQLError(duplicateTypeNameMessage(typeName), [ - knownTypes[typeName], - node.name, - ])); - } - else { - knownTypes[typeName] = node; - } - return false; - } -} -exports.UniqueTypeNamesWithFields = UniqueTypeNamesWithFields; -//# sourceMappingURL=uniqueTypeNamesWithFields.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.js.map b/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.js.map deleted file mode 100644 index fbacee0..0000000 --- a/gateway/node_modules/@apollo/federation/dist/composition/validate/sdl/uniqueTypeNamesWithFields.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uniqueTypeNamesWithFields.js","sourceRoot":"","sources":["../../../../src/composition/validate/sdl/uniqueTypeNamesWithFields.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/csdlDirectives.d.ts b/gateway/node_modules/@apollo/federation/dist/csdlDirectives.d.ts deleted file mode 100644 index 5c9d5a9..0000000 --- a/gateway/node_modules/@apollo/federation/dist/csdlDirectives.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { GraphQLDirective } from 'graphql'; -export declare const ComposedGraphDirective: GraphQLDirective; -export declare const GraphDirective: GraphQLDirective; -export declare const OwnerDirective: GraphQLDirective; -export declare const KeyDirective: GraphQLDirective; -export declare const ResolveDirective: GraphQLDirective; -export declare const ProvidesDirective: GraphQLDirective; -export declare const RequiresDirective: GraphQLDirective; -export declare const csdlDirectives: GraphQLDirective[]; -export default csdlDirectives; -//# sourceMappingURL=csdlDirectives.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/csdlDirectives.d.ts.map b/gateway/node_modules/@apollo/federation/dist/csdlDirectives.d.ts.map deleted file mode 100644 index fced7a1..0000000 --- a/gateway/node_modules/@apollo/federation/dist/csdlDirectives.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"csdlDirectives.d.ts","sourceRoot":"","sources":["../src/csdlDirectives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAKjB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,sBAAsB,kBAQjC,CAAC;AAEH,eAAO,MAAM,cAAc,kBAWzB,CAAC;AAEH,eAAO,MAAM,cAAc,kBAQzB,CAAC;AAEH,eAAO,MAAM,YAAY,kBAWvB,CAAC;AAEH,eAAO,MAAM,gBAAgB,kBAQ3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAQ5B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAQ5B,CAAC;AAEH,eAAO,MAAM,cAAc,oBAQ1B,CAAC;AAEF,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/csdlDirectives.js b/gateway/node_modules/@apollo/federation/dist/csdlDirectives.js deleted file mode 100644 index f076c89..0000000 --- a/gateway/node_modules/@apollo/federation/dist/csdlDirectives.js +++ /dev/null @@ -1,84 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.csdlDirectives = exports.RequiresDirective = exports.ProvidesDirective = exports.ResolveDirective = exports.KeyDirective = exports.OwnerDirective = exports.GraphDirective = exports.ComposedGraphDirective = void 0; -const graphql_1 = require("graphql"); -exports.ComposedGraphDirective = new graphql_1.GraphQLDirective({ - name: 'composedGraph', - locations: [graphql_1.DirectiveLocation.SCHEMA], - args: { - version: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLInt), - }, - }, -}); -exports.GraphDirective = new graphql_1.GraphQLDirective({ - name: 'graph', - locations: [graphql_1.DirectiveLocation.SCHEMA], - args: { - name: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - url: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.OwnerDirective = new graphql_1.GraphQLDirective({ - name: 'owner', - locations: [graphql_1.DirectiveLocation.OBJECT], - args: { - graph: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.KeyDirective = new graphql_1.GraphQLDirective({ - name: 'key', - locations: [graphql_1.DirectiveLocation.OBJECT], - args: { - fields: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - graph: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.ResolveDirective = new graphql_1.GraphQLDirective({ - name: 'resolve', - locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION], - args: { - graph: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.ProvidesDirective = new graphql_1.GraphQLDirective({ - name: 'provides', - locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION], - args: { - fields: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.RequiresDirective = new graphql_1.GraphQLDirective({ - name: 'requires', - locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION], - args: { - fields: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.csdlDirectives = [ - exports.ComposedGraphDirective, - exports.GraphDirective, - exports.OwnerDirective, - exports.KeyDirective, - exports.ResolveDirective, - exports.ProvidesDirective, - exports.RequiresDirective, -]; -exports.default = exports.csdlDirectives; -//# sourceMappingURL=csdlDirectives.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/csdlDirectives.js.map b/gateway/node_modules/@apollo/federation/dist/csdlDirectives.js.map deleted file mode 100644 index 39fa201..0000000 --- a/gateway/node_modules/@apollo/federation/dist/csdlDirectives.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"csdlDirectives.js","sourceRoot":"","sources":["../src/csdlDirectives.ts"],"names":[],"mappings":";;;AAAA,qCAMiB;AAEJ,QAAA,sBAAsB,GAAG,IAAI,0BAAgB,CAAC;IACzD,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,IAAI,EAAE,wBAAc,CAAC,oBAAU,CAAC;SACjC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,IAAI,0BAAgB,CAAC;IACjD,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;QACD,GAAG,EAAE;YACH,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,IAAI,0BAAgB,CAAC;IACjD,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,YAAY,GAAG,IAAI,0BAAgB,CAAC;IAC/C,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,IAAI,0BAAgB,CAAC;IACnD,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,CAAC,2BAAiB,CAAC,gBAAgB,CAAC;IAC/C,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAI,0BAAgB,CAAC;IACpD,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,CAAC,2BAAiB,CAAC,gBAAgB,CAAC;IAC/C,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAI,0BAAgB,CAAC;IACpD,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,CAAC,2BAAiB,CAAC,gBAAgB,CAAC;IAC/C,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG;IAC5B,8BAAsB;IACtB,sBAAc;IACd,sBAAc;IACd,oBAAY;IACZ,wBAAgB;IAChB,yBAAiB;IACjB,yBAAiB;CAClB,CAAC;AAEF,kBAAe,sBAAc,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/directives.d.ts b/gateway/node_modules/@apollo/federation/dist/directives.d.ts deleted file mode 100644 index 5416efd..0000000 --- a/gateway/node_modules/@apollo/federation/dist/directives.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { GraphQLDirective, GraphQLNamedType, GraphQLInputObjectType, DirectiveNode, ScalarTypeDefinitionNode, ObjectTypeDefinitionNode, InterfaceTypeDefinitionNode, UnionTypeDefinitionNode, EnumTypeDefinitionNode, ScalarTypeExtensionNode, ObjectTypeExtensionNode, InterfaceTypeExtensionNode, UnionTypeExtensionNode, EnumTypeExtensionNode, GraphQLField, FieldDefinitionNode } from 'graphql'; -export declare const KeyDirective: GraphQLDirective; -export declare const ExtendsDirective: GraphQLDirective; -export declare const ExternalDirective: GraphQLDirective; -export declare const RequiresDirective: GraphQLDirective; -export declare const ProvidesDirective: GraphQLDirective; -export declare const federationDirectives: GraphQLDirective[]; -export default federationDirectives; -export declare type ASTNodeWithDirectives = ScalarTypeDefinitionNode | ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode | EnumTypeDefinitionNode | ScalarTypeExtensionNode | ObjectTypeExtensionNode | InterfaceTypeExtensionNode | UnionTypeExtensionNode | EnumTypeExtensionNode | FieldDefinitionNode; -export declare type GraphQLNamedTypeWithDirectives = Exclude; -export declare function gatherDirectives(type: GraphQLNamedTypeWithDirectives | GraphQLField): DirectiveNode[]; -export declare function typeIncludesDirective(type: GraphQLNamedType, directiveName: string): boolean; -//# sourceMappingURL=directives.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/directives.d.ts.map b/gateway/node_modules/@apollo/federation/dist/directives.d.ts.map deleted file mode 100644 index 18f8313..0000000 --- a/gateway/node_modules/@apollo/federation/dist/directives.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../src/directives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAIhB,gBAAgB,EAEhB,sBAAsB,EACtB,aAAa,EACb,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,YAAY,kBAQvB,CAAC;AAEH,eAAO,MAAM,gBAAgB,kBAG3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAG5B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAQ5B,CAAC;AAEH,eAAO,MAAM,iBAAiB,kBAQ5B,CAAC;AAEH,eAAO,MAAM,oBAAoB,oBAMhC,CAAC;AAEF,eAAe,oBAAoB,CAAC;AAEpC,oBAAY,qBAAqB,GAC7B,wBAAwB,GACxB,wBAAwB,GACxB,2BAA2B,GAC3B,uBAAuB,GACvB,sBAAsB,GACtB,uBAAuB,GACvB,uBAAuB,GACvB,0BAA0B,GAC1B,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,CAAC;AAGxB,oBAAY,8BAA8B,GAAG,OAAO,CAClD,gBAAgB,EAChB,sBAAsB,CACvB,CAAC;AAUF,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,8BAA8B,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAC5D,aAAa,EAAE,CAcjB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAIT"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/directives.js b/gateway/node_modules/@apollo/federation/dist/directives.js deleted file mode 100644 index 90a963a..0000000 --- a/gateway/node_modules/@apollo/federation/dist/directives.js +++ /dev/null @@ -1,72 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.typeIncludesDirective = exports.gatherDirectives = exports.federationDirectives = exports.ProvidesDirective = exports.RequiresDirective = exports.ExternalDirective = exports.ExtendsDirective = exports.KeyDirective = void 0; -const graphql_1 = require("graphql"); -exports.KeyDirective = new graphql_1.GraphQLDirective({ - name: 'key', - locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE], - args: { - fields: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.ExtendsDirective = new graphql_1.GraphQLDirective({ - name: 'extends', - locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE], -}); -exports.ExternalDirective = new graphql_1.GraphQLDirective({ - name: 'external', - locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.FIELD_DEFINITION], -}); -exports.RequiresDirective = new graphql_1.GraphQLDirective({ - name: 'requires', - locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION], - args: { - fields: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.ProvidesDirective = new graphql_1.GraphQLDirective({ - name: 'provides', - locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION], - args: { - fields: { - type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString), - }, - }, -}); -exports.federationDirectives = [ - exports.KeyDirective, - exports.ExtendsDirective, - exports.ExternalDirective, - exports.RequiresDirective, - exports.ProvidesDirective, -]; -exports.default = exports.federationDirectives; -function hasDirectives(node) { - return Boolean('directives' in node && node.directives); -} -function gatherDirectives(type) { - let directives = []; - if ('extensionASTNodes' in type && type.extensionASTNodes) { - for (const node of type.extensionASTNodes) { - if (hasDirectives(node)) { - directives = directives.concat(node.directives); - } - } - } - if (type.astNode && hasDirectives(type.astNode)) - directives = directives.concat(type.astNode.directives); - return directives; -} -exports.gatherDirectives = gatherDirectives; -function typeIncludesDirective(type, directiveName) { - if (graphql_1.isInputObjectType(type)) - return false; - const directives = gatherDirectives(type); - return directives.some(directive => directive.name.value === directiveName); -} -exports.typeIncludesDirective = typeIncludesDirective; -//# sourceMappingURL=directives.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/directives.js.map b/gateway/node_modules/@apollo/federation/dist/directives.js.map deleted file mode 100644 index f349d90..0000000 --- a/gateway/node_modules/@apollo/federation/dist/directives.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"directives.js","sourceRoot":"","sources":["../src/directives.ts"],"names":[],"mappings":";;;AAAA,qCAqBiB;AAEJ,QAAA,YAAY,GAAG,IAAI,0BAAgB,CAAC;IAC/C,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,EAAE,2BAAiB,CAAC,SAAS,CAAC;IAClE,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,IAAI,0BAAgB,CAAC;IACnD,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,EAAE,2BAAiB,CAAC,SAAS,CAAC;CACnE,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAI,0BAAgB,CAAC;IACpD,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,EAAE,2BAAiB,CAAC,gBAAgB,CAAC;CAC1E,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAI,0BAAgB,CAAC;IACpD,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,CAAC,2BAAiB,CAAC,gBAAgB,CAAC;IAC/C,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAI,0BAAgB,CAAC;IACpD,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,CAAC,2BAAiB,CAAC,gBAAgB,CAAC;IAC/C,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,wBAAc,CAAC,uBAAa,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG;IAClC,oBAAY;IACZ,wBAAgB;IAChB,yBAAiB;IACjB,yBAAiB;IACjB,yBAAiB;CAClB,CAAC;AAEF,kBAAe,4BAAoB,CAAC;AAqBpC,SAAS,aAAa,CACpB,IAA2B;IAI3B,OAAO,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,gBAAgB,CAC9B,IAA6D;IAE7D,IAAI,UAAU,GAAoB,EAAE,CAAC;IACrC,IAAI,mBAAmB,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE;QACzD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACzC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;gBACvB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjD;SACF;KACF;IAED,IAAI,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7C,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1D,OAAO,UAAU,CAAC;AACpB,CAAC;AAhBD,4CAgBC;AAED,SAAgB,qBAAqB,CACnC,IAAsB,EACtB,aAAqB;IAErB,IAAI,2BAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAsC,CAAC,CAAC;IAC5E,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;AAC9E,CAAC;AAPD,sDAOC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/index.d.ts b/gateway/node_modules/@apollo/federation/dist/index.d.ts deleted file mode 100644 index 4cd5706..0000000 --- a/gateway/node_modules/@apollo/federation/dist/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import "core-js/features/array/flat"; -import "core-js/features/array/flat-map"; -export * from './composition'; -export * from './service'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/index.d.ts.map deleted file mode 100644 index 043ce34..0000000 --- a/gateway/node_modules/@apollo/federation/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,iCAAiC,CAAC;AAEzC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/index.js b/gateway/node_modules/@apollo/federation/dist/index.js deleted file mode 100644 index fd6a156..0000000 --- a/gateway/node_modules/@apollo/federation/dist/index.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -require("core-js/features/array/flat"); -require("core-js/features/array/flat-map"); -__exportStar(require("./composition"), exports); -__exportStar(require("./service"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/index.js.map b/gateway/node_modules/@apollo/federation/dist/index.js.map deleted file mode 100644 index 20b0ae6..0000000 --- a/gateway/node_modules/@apollo/federation/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAqC;AACrC,2CAAyC;AAEzC,gDAA8B;AAC9B,4CAA0B"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.d.ts b/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.d.ts deleted file mode 100644 index 87158c1..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { DocumentNode, GraphQLSchema } from 'graphql'; -import { GraphQLSchemaModule, GraphQLResolverMap } from 'apollo-graphql'; -import 'apollo-server-env'; -declare type LegacySchemaModule = { - typeDefs: DocumentNode | DocumentNode[]; - resolvers?: GraphQLResolverMap; -}; -export declare function buildFederatedSchema(modulesOrSDL: (GraphQLSchemaModule | DocumentNode)[] | DocumentNode | LegacySchemaModule): GraphQLSchema; -export {}; -//# sourceMappingURL=buildFederatedSchema.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.d.ts.map b/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.d.ts.map deleted file mode 100644 index 6fc9aa8..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"buildFederatedSchema.d.ts","sourceRoot":"","sources":["../../src/service/buildFederatedSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EAMd,MAAM,SAAS,CAAC;AACjB,OAAO,EAGL,mBAAmB,EAGnB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,mBAAmB,CAAC;AAE3B,aAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;CACrC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,YAAY,EACR,CAAC,mBAAmB,GAAG,YAAY,CAAC,EAAE,GACtC,YAAY,GACZ,kBAAkB,GACrB,aAAa,CAkGf"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.js b/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.js deleted file mode 100644 index 278553e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.js +++ /dev/null @@ -1,79 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.buildFederatedSchema = void 0; -const graphql_1 = require("graphql"); -const apollo_graphql_1 = require("apollo-graphql"); -const directives_1 = __importStar(require("../directives")); -const types_1 = require("../types"); -const printFederatedSchema_1 = require("./printFederatedSchema"); -require("apollo-server-env"); -function buildFederatedSchema(modulesOrSDL) { - let shapedModulesOrSDL; - if ('typeDefs' in modulesOrSDL) { - const { typeDefs, resolvers } = modulesOrSDL; - const augmentedTypeDefs = Array.isArray(typeDefs) ? typeDefs : [typeDefs]; - shapedModulesOrSDL = augmentedTypeDefs.map((typeDefs, i) => { - const module = { typeDefs }; - if (i === 0 && resolvers) - module.resolvers = resolvers; - return module; - }); - } - else { - shapedModulesOrSDL = modulesOrSDL; - } - const modules = apollo_graphql_1.modulesFromSDL(shapedModulesOrSDL); - let schema = apollo_graphql_1.buildSchemaFromSDL(modules, new graphql_1.GraphQLSchema({ - query: undefined, - directives: [...graphql_1.specifiedDirectives, ...directives_1.default], - })); - const sdl = printFederatedSchema_1.printSchema(schema); - if (!schema.getQueryType()) { - schema = new graphql_1.GraphQLSchema(Object.assign(Object.assign({}, schema.toConfig()), { query: new graphql_1.GraphQLObjectType({ - name: 'Query', - fields: {}, - }) })); - } - const entityTypes = Object.values(schema.getTypeMap()).filter(type => graphql_1.isObjectType(type) && directives_1.typeIncludesDirective(type, 'key')); - const hasEntities = entityTypes.length > 0; - schema = apollo_graphql_1.transformSchema(schema, type => { - if (graphql_1.isObjectType(type) && type === schema.getQueryType()) { - const config = type.toConfig(); - return new graphql_1.GraphQLObjectType(Object.assign(Object.assign({}, config), { fields: Object.assign(Object.assign(Object.assign({}, (hasEntities && { _entities: types_1.entitiesField })), { _service: Object.assign(Object.assign({}, types_1.serviceField), { resolve: () => ({ sdl }) }) }), config.fields) })); - } - return undefined; - }); - schema = apollo_graphql_1.transformSchema(schema, type => { - if (hasEntities && graphql_1.isUnionType(type) && type.name === types_1.EntityType.name) { - return new graphql_1.GraphQLUnionType(Object.assign(Object.assign({}, types_1.EntityType.toConfig()), { types: entityTypes.filter(graphql_1.isObjectType) })); - } - return undefined; - }); - for (const module of modules) { - if (!module.resolvers) - continue; - apollo_graphql_1.addResolversToSchema(schema, module.resolvers); - } - return schema; -} -exports.buildFederatedSchema = buildFederatedSchema; -//# sourceMappingURL=buildFederatedSchema.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.js.map b/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.js.map deleted file mode 100644 index 1fc2d7d..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/buildFederatedSchema.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"buildFederatedSchema.js","sourceRoot":"","sources":["../../src/service/buildFederatedSchema.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/index.d.ts b/gateway/node_modules/@apollo/federation/dist/service/index.d.ts deleted file mode 100644 index 3d847ca..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './buildFederatedSchema'; -export * from './printFederatedSchema'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/service/index.d.ts.map deleted file mode 100644 index 6786a23..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/index.js b/gateway/node_modules/@apollo/federation/dist/service/index.js deleted file mode 100644 index 451c606..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/index.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./buildFederatedSchema"), exports); -__exportStar(require("./printFederatedSchema"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/index.js.map b/gateway/node_modules/@apollo/federation/dist/service/index.js.map deleted file mode 100644 index b6a41df..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAuC;AACvC,yDAAuC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.d.ts b/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.d.ts deleted file mode 100644 index f16fe82..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { GraphQLSchema, GraphQLNamedType, ASTNode } from 'graphql'; -import { ServiceDefinition } from '../composition'; -declare type Options = { - commentDescriptions?: boolean; -}; -export declare function printComposedSdl(schema: GraphQLSchema, serviceList: ServiceDefinition[], options?: Options): string; -export declare function printIntrospectionSchema(schema: GraphQLSchema, options?: Options): string; -export declare function printType(type: GraphQLNamedType, options?: Options): string; -export declare function printWithReducedWhitespace(ast: ASTNode): string; -export declare function printBlockString(value: string, indentation?: string, preferMultipleLines?: boolean): string; -export {}; -//# sourceMappingURL=printComposedSdl.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.d.ts.map b/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.d.ts.map deleted file mode 100644 index 70a99a2..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"printComposedSdl.d.ts","sourceRoot":"","sources":["../../src/service/printComposedSdl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAIb,gBAAgB,EAsBhB,OAAO,EAER,MAAM,SAAS,CAAC;AACjB,OAAO,EAAS,iBAAiB,EAAmC,MAAM,gBAAgB,CAAC;AAK3F,aAAK,OAAO,GAAG;IASb,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AASF,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAYR;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAQR;AA6ED,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAgB3E;AAyID,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAI/D;AA0KD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAW,EACxB,mBAAmB,GAAE,OAAe,GACnC,MAAM,CAsBR"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.js b/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.js deleted file mode 100644 index 09b56bb..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.js +++ /dev/null @@ -1,284 +0,0 @@ -"use strict"; -var __rest = (this && this.__rest) || function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.printBlockString = exports.printWithReducedWhitespace = exports.printType = exports.printIntrospectionSchema = exports.printComposedSdl = void 0; -const graphql_1 = require("graphql"); -const types_1 = require("../types"); -const utils_1 = require("../composition/utils"); -const csdlDirectives_1 = __importDefault(require("../csdlDirectives")); -function printComposedSdl(schema, serviceList, options) { - return printFilteredSchema(schema, serviceList, (n) => !graphql_1.isSpecifiedDirective(n) && !utils_1.isFederationDirective(n), isDefinedType, options); -} -exports.printComposedSdl = printComposedSdl; -function printIntrospectionSchema(schema, options) { - return printFilteredSchema(schema, [], graphql_1.isSpecifiedDirective, graphql_1.isIntrospectionType, options); -} -exports.printIntrospectionSchema = printIntrospectionSchema; -function isDefinedType(type) { - return (!graphql_1.isSpecifiedScalarType(type) && - !graphql_1.isIntrospectionType(type) && - !types_1.isFederationType(type)); -} -function printFilteredSchema(schema, serviceList, directiveFilter, typeFilter, options) { - const directives = [ - ...csdlDirectives_1.default, - ...schema.getDirectives().filter(directiveFilter), - ]; - const types = Object.values(schema.getTypeMap()) - .sort((type1, type2) => type1.name.localeCompare(type2.name)) - .filter(typeFilter); - return ([printSchemaDefinition(schema, serviceList)] - .concat(directives.map(directive => printDirective(directive, options)), types.map(type => printType(type, options))) - .filter(Boolean) - .join('\n\n') + '\n'); -} -function printSchemaDefinition(schema, serviceList) { - const operationTypes = []; - const queryType = schema.getQueryType(); - if (queryType) { - operationTypes.push(` query: ${queryType.name}`); - } - const mutationType = schema.getMutationType(); - if (mutationType) { - operationTypes.push(` mutation: ${mutationType.name}`); - } - const subscriptionType = schema.getSubscriptionType(); - if (subscriptionType) { - operationTypes.push(` subscription: ${subscriptionType.name}`); - } - return ('schema' + - printFederationSchemaDirectives(serviceList) + - `\n{\n${operationTypes.join('\n')}\n}`); -} -function printFederationSchemaDirectives(serviceList) { - return (serviceList.map(service => `\n @graph(name: "${service.name}", url: "${service.url}")`).join('') + - `\n @composedGraph(version: 1)`); -} -function printType(type, options) { - if (graphql_1.isScalarType(type)) { - return printScalar(type, options); - } - else if (graphql_1.isObjectType(type)) { - return printObject(type, options); - } - else if (graphql_1.isInterfaceType(type)) { - return printInterface(type, options); - } - else if (graphql_1.isUnionType(type)) { - return printUnion(type, options); - } - else if (graphql_1.isEnumType(type)) { - return printEnum(type, options); - } - else if (graphql_1.isInputObjectType(type)) { - return printInputObject(type, options); - } - throw Error('Unexpected type: ' + type.toString()); -} -exports.printType = printType; -function printScalar(type, options) { - return printDescription(options, type) + `scalar ${type.name}`; -} -function printObject(type, options) { - const interfaces = type.getInterfaces(); - const implementedInterfaces = interfaces.length - ? ' implements ' + interfaces.map(i => i.name).join(' & ') - : ''; - const isExtension = type.extensionASTNodes && type.astNode && !type.astNode.fields; - return (printDescription(options, type) + - (isExtension ? 'extend ' : '') + - `type ${type.name}` + - implementedInterfaces + - printFederationTypeDirectives(type) + - printFields(options, type)); -} -function printFederationTypeDirectives(type) { - var _a; - const metadata = (_a = type.extensions) === null || _a === void 0 ? void 0 : _a.federation; - if (!metadata) - return ''; - const { serviceName: ownerService, keys } = metadata; - if (!ownerService || !keys) - return ''; - const _b = keys, _c = ownerService, ownerKeys = _b[_c], restKeys = __rest(_b, [typeof _c === "symbol" ? _c : _c + ""]); - const ownerEntry = [ownerService, ownerKeys]; - const restEntries = Object.entries(restKeys); - return (`\n @owner(graph: "${ownerService}")` + - [ownerEntry, ...restEntries].map(([service, keys]) => keys - .map((selections) => `\n @key(fields: "${printFieldSet(selections)}", graph: "${service}")`) - .join('')) - .join('')); -} -function printInterface(type, options) { - const isExtension = type.extensionASTNodes && type.astNode && !type.astNode.fields; - return (printDescription(options, type) + - (isExtension ? 'extend ' : '') + - `interface ${type.name}` + - printFields(options, type)); -} -function printUnion(type, options) { - const types = type.getTypes(); - const possibleTypes = types.length ? ' = ' + types.join(' | ') : ''; - return printDescription(options, type) + 'union ' + type.name + possibleTypes; -} -function printEnum(type, options) { - const values = type - .getValues() - .map((value, i) => printDescription(options, value, ' ', !i) + - ' ' + - value.name + - printDeprecated(value)); - return (printDescription(options, type) + `enum ${type.name}` + printBlock(values)); -} -function printInputObject(type, options) { - const fields = Object.values(type.getFields()).map((f, i) => printDescription(options, f, ' ', !i) + ' ' + printInputValue(f)); - return (printDescription(options, type) + `input ${type.name}` + printBlock(fields)); -} -function printFields(options, type) { - var _a, _b; - const fields = Object.values(type.getFields()).map((f, i) => printDescription(options, f, ' ', !i) + - ' ' + - f.name + - printArgs(options, f.args, ' ') + - ': ' + - String(f.type) + - printDeprecated(f) + - printFederationFieldDirectives(f, type)); - const isEntity = Boolean((_b = (_a = type.extensions) === null || _a === void 0 ? void 0 : _a.federation) === null || _b === void 0 ? void 0 : _b.keys); - return printBlock(fields, isEntity); -} -function printWithReducedWhitespace(ast) { - return graphql_1.print(ast) - .replace(/\s+/g, ' ') - .trim(); -} -exports.printWithReducedWhitespace = printWithReducedWhitespace; -function printFieldSet(selections) { - return `{ ${selections.map(printWithReducedWhitespace).join(' ')} }`; -} -function printFederationFieldDirectives(field, parentType) { - var _a, _b, _c; - if (!((_a = field.extensions) === null || _a === void 0 ? void 0 : _a.federation)) - return ''; - const { serviceName, requires = [], provides = [], } = field.extensions.federation; - let printed = ''; - if (serviceName && - serviceName !== ((_c = (_b = parentType.extensions) === null || _b === void 0 ? void 0 : _b.federation) === null || _c === void 0 ? void 0 : _c.serviceName)) { - printed += ` @resolve(graph: "${serviceName}")`; - } - if (requires.length > 0) { - printed += ` @requires(fields: "${printFieldSet(requires)}")`; - } - if (provides.length > 0) { - printed += ` @provides(fields: "${printFieldSet(provides)}")`; - } - return printed; -} -function printBlock(items, onNewLine) { - return items.length !== 0 - ? onNewLine - ? '\n{\n' + items.join('\n') + '\n}' - : ' {\n' + items.join('\n') + '\n}' - : ''; -} -function printArgs(options, args, indentation = '') { - if (args.length === 0) { - return ''; - } - if (args.every((arg) => !arg.description)) { - return '(' + args.map(printInputValue).join(', ') + ')'; - } - return ('(\n' + - args - .map((arg, i) => printDescription(options, arg, ' ' + indentation, !i) + - ' ' + - indentation + - printInputValue(arg)) - .join('\n') + - '\n' + - indentation + - ')'); -} -function printInputValue(arg) { - const defaultAST = graphql_1.astFromValue(arg.defaultValue, arg.type); - let argDecl = arg.name + ': ' + String(arg.type); - if (defaultAST) { - argDecl += ` = ${graphql_1.print(defaultAST)}`; - } - return argDecl; -} -function printDirective(directive, options) { - return (printDescription(options, directive) + - 'directive @' + - directive.name + - printArgs(options, directive.args) + - (directive.isRepeatable ? ' repeatable' : '') + - ' on ' + - directive.locations.join(' | ')); -} -function printDeprecated(fieldOrEnumVal) { - if (!fieldOrEnumVal.isDeprecated) { - return ''; - } - const reason = fieldOrEnumVal.deprecationReason; - const reasonAST = graphql_1.astFromValue(reason, graphql_1.GraphQLString); - if (reasonAST && reason !== graphql_1.DEFAULT_DEPRECATION_REASON) { - return ' @deprecated(reason: ' + graphql_1.print(reasonAST) + ')'; - } - return ' @deprecated'; -} -function printDescription(options, def, indentation = '', firstInBlock = true) { - const { description } = def; - if (description == null) { - return ''; - } - if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) { - return printDescriptionWithComments(description, indentation, firstInBlock); - } - const preferMultipleLines = description.length > 70; - const blockString = printBlockString(description, '', preferMultipleLines); - const prefix = indentation && !firstInBlock ? '\n' + indentation : indentation; - return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n'; -} -function printDescriptionWithComments(description, indentation, firstInBlock) { - const prefix = indentation && !firstInBlock ? '\n' : ''; - const comment = description - .split('\n') - .map((line) => indentation + (line !== '' ? '# ' + line : '#')) - .join('\n'); - return prefix + comment + '\n'; -} -function printBlockString(value, indentation = '', preferMultipleLines = false) { - const isSingleLine = value.indexOf('\n') === -1; - const hasLeadingSpace = value[0] === ' ' || value[0] === '\t'; - const hasTrailingQuote = value[value.length - 1] === '"'; - const hasTrailingSlash = value[value.length - 1] === '\\'; - const printAsMultipleLines = !isSingleLine || - hasTrailingQuote || - hasTrailingSlash || - preferMultipleLines; - let result = ''; - if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) { - result += '\n' + indentation; - } - result += indentation ? value.replace(/\n/g, '\n' + indentation) : value; - if (printAsMultipleLines) { - result += '\n'; - } - return '"""' + result.replace(/"""/g, '\\"""') + '"""'; -} -exports.printBlockString = printBlockString; -//# sourceMappingURL=printComposedSdl.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.js.map b/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.js.map deleted file mode 100644 index 5830c57..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/printComposedSdl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"printComposedSdl.js","sourceRoot":"","sources":["../../src/service/printComposedSdl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCA6BiB;AAEjB,oCAA4C;AAC5C,gDAA6D;AAC7D,uEAA+C;AAqB/C,SAAgB,gBAAgB,CAC9B,MAAqB,EACrB,WAAgC,EAChC,OAAiB;IAEjB,OAAO,mBAAmB,CACxB,MAAM,EAEN,WAAW,EAIX,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,8BAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,6BAAqB,CAAC,CAAC,CAAC,EAC5D,aAAa,EACb,OAAO,CACR,CAAC;AACJ,CAAC;AAhBD,4CAgBC;AAED,SAAgB,wBAAwB,CACtC,MAAqB,EACrB,OAAiB;IAEjB,OAAO,mBAAmB,CACxB,MAAM,EACN,EAAE,EACF,8BAAoB,EACpB,6BAAmB,EACnB,OAAO,CACR,CAAC;AACJ,CAAC;AAXD,4DAWC;AAKD,SAAS,aAAa,CAAC,IAAsB;IAC3C,OAAO,CACL,CAAC,+BAAqB,CAAC,IAAI,CAAC;QAC5B,CAAC,6BAAmB,CAAC,IAAI,CAAC;QAC1B,CAAC,wBAAgB,CAAC,IAAI,CAAC,CACxB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAqB,EAErB,WAAgC,EAChC,eAAoD,EACpD,UAA+C,EAC/C,OAAiB;IAGjB,MAAM,UAAU,GAAG;QACjB,GAAG,wBAAc;QACjB,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;KAClD,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;SAC7C,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC5D,MAAM,CAAC,UAAU,CAAC,CAAC;IAEtB,OAAO,CACL,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;SACzC,MAAM,CACL,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAC/D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAC5C;SACA,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CACvB,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAqB,EACrB,WAAgC;IAEhC,MAAM,cAAc,GAAG,EAAE,CAAC;IAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IACxC,IAAI,SAAS,EAAE;QACb,cAAc,CAAC,IAAI,CAAC,YAAY,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;KACnD;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,IAAI,YAAY,EAAE;QAChB,cAAc,CAAC,IAAI,CAAC,eAAe,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;KACzD;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACtD,IAAI,gBAAgB,EAAE;QACpB,cAAc,CAAC,IAAI,CAAC,mBAAmB,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;KACjE;IAED,OAAO,CACL,QAAQ;QAER,+BAA+B,CAAC,WAAW,CAAC;QAC5C,QAAQ,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,WAAgC;IACvE,OAAO,CACL,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,qBAAqB,OAAO,CAAC,IAAI,YAAY,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACjG,gCAAgC,CACjC,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAC,IAAsB,EAAE,OAAiB;IACjE,IAAI,sBAAY,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;SAAM,IAAI,sBAAY,CAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;SAAM,IAAI,yBAAe,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACtC;SAAM,IAAI,qBAAW,CAAC,IAAI,CAAC,EAAE;QAC5B,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAClC;SAAM,IAAI,oBAAU,CAAC,IAAI,CAAC,EAAE;QAC3B,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACjC;SAAM,IAAI,2BAAiB,CAAC,IAAI,CAAC,EAAE;QAClC,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACxC;IAED,MAAM,KAAK,CAAC,mBAAmB,GAAI,IAAyB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3E,CAAC;AAhBD,8BAgBC;AAED,SAAS,WAAW,CAAC,IAAuB,EAAE,OAAiB;IAC7D,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,WAAW,CAAC,IAAuB,EAAE,OAAiB;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACxC,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM;QAC7C,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1D,CAAC,CAAC,EAAE,CAAC;IAUP,MAAM,WAAW,GACf,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAEjE,OAAO,CACL,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;QAC/B,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE;QACnB,qBAAqB;QAErB,6BAA6B,CAAC,IAAI,CAAC;QACnC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAC3B,CAAC;AACJ,CAAC;AAGD,SAAS,6BAA6B,CAAC,IAAuB;;IAC5D,MAAM,QAAQ,SAAmB,IAAI,CAAC,UAAU,0CAAE,UAAU,CAAC;IAC7D,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAItC,MAAmD,KAAA,IAAI,EAA/C,KAAC,YAAa,EAAE,SAAS,SAAA,EAAK,QAAQ,cAAxC,uCAA0C,CAAO,CAAA;IACvD,MAAM,UAAU,GAA2C,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO,CACL,sBAAsB,YAAY,IAAI;QACtC,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CACnD,IAAI;aACD,GAAG,CACF,CAAC,UAAU,EAAE,EAAE,CACb,qBAAqB,aAAa,CAAC,UAAU,CAAC,cAAc,OAAO,IAAI,CAC1E;aACA,IAAI,CAAC,EAAE,CAAC,CACZ;aACA,IAAI,CAAC,EAAE,CAAC,CACV,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAA0B,EAAE,OAAiB;IAKnE,MAAM,WAAW,GACf,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAEjE,OAAO,CACL,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;QAC/B,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,aAAa,IAAI,CAAC,IAAI,EAAE;QACxB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAsB,EAAE,OAAiB;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAAC,IAAqB,EAAE,OAAiB;IACzD,MAAM,MAAM,GAAG,IAAI;SAChB,SAAS,EAAE;SACX,GAAG,CACF,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACX,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI;QACJ,KAAK,CAAC,IAAI;QACV,eAAe,CAAC,KAAK,CAAC,CACzB,CAAC;IAEJ,OAAO,CACL,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,IAA4B,EAC5B,OAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAChD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CACrE,CAAC;IACF,OAAO,CACL,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,OAA4B,EAC5B,IAA8C;;IAG9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAChD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI;QACJ,CAAC,CAAC,IAAI;QACN,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;QAChC,IAAI;QACJ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACd,eAAe,CAAC,CAAC,CAAC;QAClB,8BAA8B,CAAC,CAAC,EAAE,IAAI,CAAC,CAC1C,CAAC;IAIF,MAAM,QAAQ,GAAG,OAAO,aAAC,IAAI,CAAC,UAAU,0CAAE,UAAU,0CAAE,IAAI,CAAC,CAAC;IAE5D,OAAO,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,SAAgB,0BAA0B,CAAC,GAAY;IACrD,OAAO,eAAK,CAAC,GAAG,CAAC;SACd,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAJD,gEAIC;AAOD,SAAS,aAAa,CAAC,UAAoC;IACzD,OAAO,KAAK,UAAU,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACvE,CAAC;AAQD,SAAS,8BAA8B,CACrC,KAA6B,EAC7B,UAAoD;;IAEpD,IAAI,QAAC,KAAK,CAAC,UAAU,0CAAE,UAAU,CAAA;QAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,EACJ,WAAW,EACX,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,EAAE,GACd,GAAoB,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;IAEjD,IAAI,OAAO,GAAG,EAAE,CAAC;IAGjB,IACE,WAAW;QACX,WAAW,kBAAK,UAAU,CAAC,UAAU,0CAAE,UAAU,0CAAE,WAAW,CAAA,EAC9D;QACA,OAAO,IAAI,qBAAqB,WAAW,IAAI,CAAC;KACjD;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,IAAI,uBAAuB,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC/D;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,IAAI,uBAAuB,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC/D;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAID,SAAS,UAAU,CAAC,KAAe,EAAE,SAAmB;IACtD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,SAAS;YACT,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK;YACpC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK;QACrC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,SAAS,CAChB,OAA4B,EAC5B,IAAuB,EACvB,WAAW,GAAG,EAAE;IAEhB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,EAAE,CAAC;KACX;IAGD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACzC,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;KACzD;IAED,OAAO,CACL,KAAK;QACL,IAAI;aACD,GAAG,CACF,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACT,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI;YACJ,WAAW;YACX,eAAe,CAAC,GAAG,CAAC,CACvB;aACA,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,WAAW;QACX,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAsB;IAC7C,MAAM,UAAU,GAAG,sBAAY,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,UAAU,EAAE;QACd,OAAO,IAAI,MAAM,eAAK,CAAC,UAAU,CAAC,EAAE,CAAC;KACtC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,SAA2B,EAAE,OAAiB;IACpE,OAAO,CACL,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;QACpC,aAAa;QACb,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC;QAClC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM;QACN,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,cAAyD;IAEzD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;QAChC,OAAO,EAAE,CAAC;KACX;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,iBAAiB,CAAC;IAChD,MAAM,SAAS,GAAG,sBAAY,CAAC,MAAM,EAAE,uBAAa,CAAC,CAAC;IACtD,IAAI,SAAS,IAAI,MAAM,KAAK,oCAA0B,EAAE;QACtD,OAAO,uBAAuB,GAAG,eAAK,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;KACzD;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA4B,EAC5B,GAAM,EACN,WAAW,GAAG,EAAE,EAChB,YAAY,GAAG,IAAI;IAEnB,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC5B,IAAI,WAAW,IAAI,IAAI,EAAE;QACvB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,MAAK,IAAI,EAAE;QACzC,OAAO,4BAA4B,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;KAC7E;IAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,MAAM,GACV,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IAElE,OAAO,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;AACxE,CAAC;AAED,SAAS,4BAA4B,CACnC,WAAmB,EACnB,WAAmB,EACnB,YAAqB;IAErB,MAAM,MAAM,GAAG,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,WAAW;SACxB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC9D,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACjC,CAAC;AASD,SAAgB,gBAAgB,CAC9B,KAAa,EACb,cAAsB,EAAE,EACxB,sBAA+B,KAAK;IAEpC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9D,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;IACzD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IAC1D,MAAM,oBAAoB,GACxB,CAAC,YAAY;QACb,gBAAgB;QAChB,gBAAgB;QAChB,mBAAmB,CAAC;IAEtB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,oBAAoB,IAAI,CAAC,CAAC,YAAY,IAAI,eAAe,CAAC,EAAE;QAC9D,MAAM,IAAI,IAAI,GAAG,WAAW,CAAC;KAC9B;IACD,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,IAAI,oBAAoB,EAAE;QACxB,MAAM,IAAI,IAAI,CAAC;KAChB;IAED,OAAO,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AACzD,CAAC;AA1BD,4CA0BC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.d.ts b/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.d.ts deleted file mode 100644 index 753f8dc..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { GraphQLSchema, GraphQLNamedType, ASTNode } from 'graphql'; -declare type Options = { - commentDescriptions?: boolean; -}; -export declare function printSchema(schema: GraphQLSchema, options?: Options): string; -export declare function printIntrospectionSchema(schema: GraphQLSchema, options?: Options): string; -export declare function printType(type: GraphQLNamedType, options?: Options): string; -export declare function printWithReducedWhitespace(ast: ASTNode): string; -export declare function printBlockString(value: string, indentation?: string, preferMultipleLines?: boolean): string; -export {}; -//# sourceMappingURL=printFederatedSchema.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.d.ts.map b/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.d.ts.map deleted file mode 100644 index 0b3d171..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"printFederatedSchema.d.ts","sourceRoot":"","sources":["../../src/service/printFederatedSchema.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,aAAa,EAIb,gBAAgB,EAsBhB,OAAO,EACR,MAAM,SAAS,CAAC;AAMjB,aAAK,OAAO,GAAG;IASb,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AASF,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAU5E;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAOR;AA2FD,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAgB3E;AAuHD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAI/D;AAoHD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAW,EACxB,mBAAmB,GAAE,OAAe,GACnC,MAAM,CAsBR"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.js b/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.js deleted file mode 100644 index af2268f..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.js +++ /dev/null @@ -1,265 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.printBlockString = exports.printWithReducedWhitespace = exports.printType = exports.printIntrospectionSchema = exports.printSchema = void 0; -const graphql_1 = require("graphql"); -const types_1 = require("../types"); -const utils_1 = require("../composition/utils"); -const directives_1 = __importStar(require("../directives")); -function printSchema(schema, options) { - return printFilteredSchema(schema, (n) => !graphql_1.isSpecifiedDirective(n) && !utils_1.isFederationDirective(n), isDefinedType, options); -} -exports.printSchema = printSchema; -function printIntrospectionSchema(schema, options) { - return printFilteredSchema(schema, graphql_1.isSpecifiedDirective, graphql_1.isIntrospectionType, options); -} -exports.printIntrospectionSchema = printIntrospectionSchema; -function isDefinedType(type) { - return (!graphql_1.isSpecifiedScalarType(type) && - !graphql_1.isIntrospectionType(type) && - !types_1.isFederationType(type)); -} -function printFilteredSchema(schema, directiveFilter, typeFilter, options) { - const directives = schema.getDirectives().filter(directiveFilter); - const types = Object.values(schema.getTypeMap()) - .sort((type1, type2) => type1.name.localeCompare(type2.name)) - .filter(typeFilter); - return ([printSchemaDefinition(schema)] - .concat(directives.map(directive => printDirective(directive, options)), types.map(type => printType(type, options))) - .filter(Boolean) - .join('\n\n') + '\n'); -} -function printSchemaDefinition(schema) { - if (isSchemaOfCommonNames(schema)) { - return; - } - const operationTypes = []; - const queryType = schema.getQueryType(); - if (queryType) { - operationTypes.push(` query: ${queryType.name}`); - } - const mutationType = schema.getMutationType(); - if (mutationType) { - operationTypes.push(` mutation: ${mutationType.name}`); - } - const subscriptionType = schema.getSubscriptionType(); - if (subscriptionType) { - operationTypes.push(` subscription: ${subscriptionType.name}`); - } - return `schema {\n${operationTypes.join('\n')}\n}`; -} -function isSchemaOfCommonNames(schema) { - const queryType = schema.getQueryType(); - if (queryType && queryType.name !== 'Query') { - return false; - } - const mutationType = schema.getMutationType(); - if (mutationType && mutationType.name !== 'Mutation') { - return false; - } - const subscriptionType = schema.getSubscriptionType(); - if (subscriptionType && subscriptionType.name !== 'Subscription') { - return false; - } - return true; -} -function printType(type, options) { - if (graphql_1.isScalarType(type)) { - return printScalar(type, options); - } - else if (graphql_1.isObjectType(type)) { - return printObject(type, options); - } - else if (graphql_1.isInterfaceType(type)) { - return printInterface(type, options); - } - else if (graphql_1.isUnionType(type)) { - return printUnion(type, options); - } - else if (graphql_1.isEnumType(type)) { - return printEnum(type, options); - } - else if (graphql_1.isInputObjectType(type)) { - return printInputObject(type, options); - } - throw Error('Unexpected type: ' + type.toString()); -} -exports.printType = printType; -function printScalar(type, options) { - return printDescription(options, type) + `scalar ${type.name}`; -} -function printObject(type, options) { - const interfaces = type.getInterfaces(); - const implementedInterfaces = interfaces.length - ? ' implements ' + interfaces.map(i => i.name).join(' & ') - : ''; - const isExtension = type.extensionASTNodes && type.astNode && !type.astNode.fields; - return (printDescription(options, type) + - (isExtension ? 'extend ' : '') + - `type ${type.name}${implementedInterfaces}` + - printFederationDirectives(type) + - printFields(options, type)); -} -function printInterface(type, options) { - const isExtension = type.extensionASTNodes && type.astNode && !type.astNode.fields; - return (printDescription(options, type) + - (isExtension ? 'extend ' : '') + - `interface ${type.name}` + - printFederationDirectives(type) + - printFields(options, type)); -} -function printUnion(type, options) { - const types = type.getTypes(); - const possibleTypes = types.length ? ' = ' + types.join(' | ') : ''; - return printDescription(options, type) + 'union ' + type.name + possibleTypes; -} -function printEnum(type, options) { - const values = type - .getValues() - .map((value, i) => printDescription(options, value, ' ', !i) + - ' ' + - value.name + - printDeprecated(value)); - return (printDescription(options, type) + `enum ${type.name}` + printBlock(values)); -} -function printInputObject(type, options) { - const fields = Object.values(type.getFields()).map((f, i) => printDescription(options, f, ' ', !i) + ' ' + printInputValue(f)); - return (printDescription(options, type) + `input ${type.name}` + printBlock(fields)); -} -function printFields(options, type) { - const fields = Object.values(type.getFields()).map((f, i) => printDescription(options, f, ' ', !i) + - ' ' + - f.name + - printArgs(options, f.args, ' ') + - ': ' + - String(f.type) + - printDeprecated(f) + - printFederationDirectives(f)); - return printBlock(fields); -} -function printFederationDirectives(type) { - if (!type.astNode) - return ''; - if (graphql_1.isInputObjectType(type)) - return ''; - const allDirectives = directives_1.gatherDirectives(type) - .filter((n) => directives_1.default.some((fedDir) => fedDir.name === n.name.value)) - .map(graphql_1.print); - const dedupedDirectives = [...new Set(allDirectives)]; - return dedupedDirectives.length > 0 ? ' ' + dedupedDirectives.join(' ') : ''; -} -function printWithReducedWhitespace(ast) { - return graphql_1.print(ast) - .replace(/\s+/g, ' ') - .trim(); -} -exports.printWithReducedWhitespace = printWithReducedWhitespace; -function printBlock(items) { - return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : ''; -} -function printArgs(options, args, indentation = '') { - if (args.length === 0) { - return ''; - } - if (args.every(arg => !arg.description)) { - return '(' + args.map(printInputValue).join(', ') + ')'; - } - return ('(\n' + - args - .map((arg, i) => printDescription(options, arg, ' ' + indentation, !i) + - ' ' + - indentation + - printInputValue(arg)) - .join('\n') + - '\n' + - indentation + - ')'); -} -function printInputValue(arg) { - const defaultAST = graphql_1.astFromValue(arg.defaultValue, arg.type); - let argDecl = arg.name + ': ' + String(arg.type); - if (defaultAST) { - argDecl += ` = ${graphql_1.print(defaultAST)}`; - } - return argDecl; -} -function printDirective(directive, options) { - return (printDescription(options, directive) + - 'directive @' + - directive.name + - printArgs(options, directive.args) + - (directive.isRepeatable ? ' repeatable' : '') + - ' on ' + - directive.locations.join(' | ')); -} -function printDeprecated(fieldOrEnumVal) { - if (!fieldOrEnumVal.isDeprecated) { - return ''; - } - const reason = fieldOrEnumVal.deprecationReason; - const reasonAST = graphql_1.astFromValue(reason, graphql_1.GraphQLString); - if (reasonAST && reason !== '' && reason !== graphql_1.DEFAULT_DEPRECATION_REASON) { - return ' @deprecated(reason: ' + graphql_1.print(reasonAST) + ')'; - } - return ' @deprecated'; -} -function printDescription(options, def, indentation = '', firstInBlock = true) { - const { description } = def; - if (description == null) { - return ''; - } - if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) { - return printDescriptionWithComments(description, indentation, firstInBlock); - } - const preferMultipleLines = description.length > 70; - const blockString = printBlockString(description, '', preferMultipleLines); - const prefix = indentation && !firstInBlock ? '\n' + indentation : indentation; - return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n'; -} -function printDescriptionWithComments(description, indentation, firstInBlock) { - const prefix = indentation && !firstInBlock ? '\n' : ''; - const comment = description - .split('\n') - .map(line => indentation + (line !== '' ? '# ' + line : '#')) - .join('\n'); - return prefix + comment + '\n'; -} -function printBlockString(value, indentation = '', preferMultipleLines = false) { - const isSingleLine = value.indexOf('\n') === -1; - const hasLeadingSpace = value[0] === ' ' || value[0] === '\t'; - const hasTrailingQuote = value[value.length - 1] === '"'; - const hasTrailingSlash = value[value.length - 1] === '\\'; - const printAsMultipleLines = !isSingleLine || - hasTrailingQuote || - hasTrailingSlash || - preferMultipleLines; - let result = ''; - if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) { - result += '\n' + indentation; - } - result += indentation ? value.replace(/\n/g, '\n' + indentation) : value; - if (printAsMultipleLines) { - result += '\n'; - } - return '"""' + result.replace(/"""/g, '\\"""') + '"""'; -} -exports.printBlockString = printBlockString; -//# sourceMappingURL=printFederatedSchema.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.js.map b/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.js.map deleted file mode 100644 index 6dcd901..0000000 --- a/gateway/node_modules/@apollo/federation/dist/service/printFederatedSchema.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"printFederatedSchema.js","sourceRoot":"","sources":["../../src/service/printFederatedSchema.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.d.ts b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.d.ts deleted file mode 100644 index 7b0f424..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: import("pretty-format/build/types").Plugin; -export default _default; -//# sourceMappingURL=astSerializer.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.d.ts.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.d.ts.map deleted file mode 100644 index 5ad4940..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"astSerializer.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/astSerializer.ts"],"names":[],"mappings":";AAGA,wBAiBY"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.js b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.js deleted file mode 100644 index 4664185..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -exports.default = { - test(value) { - return value && typeof value.kind === 'string'; - }, - serialize(value, _config, indentation, _depth, _refs, _printer) { - return graphql_1.print(value) - .trim() - .replace(/\n/g, '\n' + indentation); - }, -}; -//# sourceMappingURL=astSerializer.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.js.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.js.map deleted file mode 100644 index ac4aca1..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/astSerializer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"astSerializer.js","sourceRoot":"","sources":["../../src/snapshotSerializers/astSerializer.ts"],"names":[],"mappings":";;AAAA,qCAAyC;AAGzC,kBAAe;IACb,IAAI,CAAC,KAAU;QACb,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;IACjD,CAAC;IAED,SAAS,CACP,KAAc,EACd,OAAe,EACf,WAAmB,EACnB,MAAc,EACd,KAAW,EACX,QAAa;QAEb,OAAO,eAAK,CAAC,KAAK,CAAC;aAChB,IAAI,EAAE;aACN,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;IACxC,CAAC;CACQ,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.d.ts b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.d.ts deleted file mode 100644 index a1900ec..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: import("pretty-format/build/types").Plugin; -export default _default; -//# sourceMappingURL=graphqlErrorSerializer.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.d.ts.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.d.ts.map deleted file mode 100644 index faa805c..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"graphqlErrorSerializer.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/graphqlErrorSerializer.ts"],"names":[],"mappings":";AAGA,wBAWY"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.js b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.js deleted file mode 100644 index 3a18bb5..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -exports.default = { - test(value) { - return value && value instanceof graphql_1.GraphQLError; - }, - print(value, print) { - return print({ - message: value.message, - code: value.extensions ? value.extensions.code : 'MISSING_ERROR', - }); - }, -}; -//# sourceMappingURL=graphqlErrorSerializer.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.js.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.js.map deleted file mode 100644 index f76d36f..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/graphqlErrorSerializer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"graphqlErrorSerializer.js","sourceRoot":"","sources":["../../src/snapshotSerializers/graphqlErrorSerializer.ts"],"names":[],"mappings":";;AAAA,qCAAuC;AAGvC,kBAAe;IACb,IAAI,CAAC,KAAU;QACb,OAAO,KAAK,IAAI,KAAK,YAAY,sBAAY,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAAmB,EAAE,KAAK;QAC9B,OAAO,KAAK,CAAC;YACX,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;SACjE,CAAC,CAAC;IACL,CAAC;CACQ,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.d.ts b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.d.ts deleted file mode 100644 index c7cb821..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export { default as astSerializer } from './astSerializer'; -export { default as selectionSetSerializer } from './selectionSetSerializer'; -export { default as typeSerializer } from './typeSerializer'; -export { default as graphqlErrorSerializer } from './graphqlErrorSerializer'; -declare global { - namespace jest { - interface Expect { - addSnapshotSerializer(serializer: import('pretty-format').Plugin): void; - } - } -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.d.ts.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.d.ts.map deleted file mode 100644 index 436b437..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,IAAI,CAAC;QACb,UAAU,MAAM;YAId,qBAAqB,CAAC,UAAU,EAAE,OAAO,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;SACzE;KACF;CACF"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.js b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.js deleted file mode 100644 index fbbea07..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var astSerializer_1 = require("./astSerializer"); -Object.defineProperty(exports, "astSerializer", { enumerable: true, get: function () { return astSerializer_1.default; } }); -var selectionSetSerializer_1 = require("./selectionSetSerializer"); -Object.defineProperty(exports, "selectionSetSerializer", { enumerable: true, get: function () { return selectionSetSerializer_1.default; } }); -var typeSerializer_1 = require("./typeSerializer"); -Object.defineProperty(exports, "typeSerializer", { enumerable: true, get: function () { return typeSerializer_1.default; } }); -var graphqlErrorSerializer_1 = require("./graphqlErrorSerializer"); -Object.defineProperty(exports, "graphqlErrorSerializer", { enumerable: true, get: function () { return graphqlErrorSerializer_1.default; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.js.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.js.map deleted file mode 100644 index 5c38f01..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/snapshotSerializers/index.ts"],"names":[],"mappings":";;AAAA,iDAA2D;AAAlD,8GAAA,OAAO,OAAiB;AACjC,mEAA6E;AAApE,gIAAA,OAAO,OAA0B;AAC1C,mDAA6D;AAApD,gHAAA,OAAO,OAAkB;AAClC,mEAA6E;AAApE,gIAAA,OAAO,OAA0B"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.d.ts b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.d.ts deleted file mode 100644 index 991c013..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: import("pretty-format/build/types").Plugin; -export default _default; -//# sourceMappingURL=selectionSetSerializer.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.d.ts.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.d.ts.map deleted file mode 100644 index d8f117e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"selectionSetSerializer.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/selectionSetSerializer.ts"],"names":[],"mappings":";AAGA,wBASY"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.js b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.js deleted file mode 100644 index 10c4d70..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -exports.default = { - test(value) { - return (Array.isArray(value) && value.length > 0 && value.every(graphql_1.isSelectionNode)); - }, - print(selectionNodes) { - return selectionNodes.map(node => graphql_1.print(node)).join('\n'); - }, -}; -//# sourceMappingURL=selectionSetSerializer.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.js.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.js.map deleted file mode 100644 index c96bfa9..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/selectionSetSerializer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"selectionSetSerializer.js","sourceRoot":"","sources":["../../src/snapshotSerializers/selectionSetSerializer.ts"],"names":[],"mappings":";;AAAA,qCAAgE;AAGhE,kBAAe;IACb,IAAI,CAAC,KAAU;QACb,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,yBAAe,CAAC,CACzE,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,cAA+B;QACnC,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;CACQ,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.d.ts b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.d.ts deleted file mode 100644 index 8d322c2..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: import("pretty-format/build/types").Plugin; -export default _default; -//# sourceMappingURL=typeSerializer.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.d.ts.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.d.ts.map deleted file mode 100644 index 7207e5b..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"typeSerializer.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/typeSerializer.ts"],"names":[],"mappings":";AAGA,wBAOY"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.js b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.js deleted file mode 100644 index 607079e..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -exports.default = { - test(value) { - return value && graphql_1.isNamedType(value); - }, - print(value) { - return graphql_1.printType(value); - }, -}; -//# sourceMappingURL=typeSerializer.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.js.map b/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.js.map deleted file mode 100644 index af32fc4..0000000 --- a/gateway/node_modules/@apollo/federation/dist/snapshotSerializers/typeSerializer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"typeSerializer.js","sourceRoot":"","sources":["../../src/snapshotSerializers/typeSerializer.ts"],"names":[],"mappings":";;AAAA,qCAAmE;AAGnE,kBAAe;IACb,IAAI,CAAC,KAAU;QACb,OAAO,KAAK,IAAI,qBAAW,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,KAAuB;QAC3B,OAAO,mBAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACQ,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/types.d.ts b/gateway/node_modules/@apollo/federation/dist/types.d.ts deleted file mode 100644 index e2d18a0..0000000 --- a/gateway/node_modules/@apollo/federation/dist/types.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { GraphQLFieldConfig, GraphQLUnionType, GraphQLObjectType, GraphQLScalarType, GraphQLType, GraphQLNamedType, GraphQLResolveInfo } from 'graphql'; -export declare const EntityType: GraphQLUnionType; -export declare const ServiceType: GraphQLObjectType; -export declare const AnyType: GraphQLScalarType; -export declare type GraphQLReferenceResolver = (reference: object, context: TContext, info: GraphQLResolveInfo) => any; -declare module 'graphql/type/definition' { - interface GraphQLObjectType { - resolveReference?: GraphQLReferenceResolver; - } - interface GraphQLObjectTypeConfig { - resolveReference?: GraphQLReferenceResolver; - } -} -export declare const entitiesField: GraphQLFieldConfig; -export declare const serviceField: GraphQLFieldConfig; -export declare const federationTypes: GraphQLNamedType[]; -export declare function isFederationType(type: GraphQLType): boolean; -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/types.d.ts.map b/gateway/node_modules/@apollo/federation/dist/types.d.ts.map deleted file mode 100644 index ce32103..0000000 --- a/gateway/node_modules/@apollo/federation/dist/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EAGjB,WAAW,EACX,gBAAgB,EAEhB,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,UAAU,kBAGrB,CAAC;AAEH,eAAO,MAAM,WAAW;;EAStB,CAAC;AAEH,eAAO,MAAM,OAAO,mBAKlB,CAAC;AAkBH,oBAAY,wBAAwB,CAAC,QAAQ,IAAI,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,kBAAkB,KACrB,GAAG,CAAC;AAET,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,iBAAiB;QACzB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC;KAClD;IAED,UAAU,uBAAuB,CAAC,OAAO,EAAE,QAAQ;QACjD,gBAAgB,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;KACvD;CACF;AAED,eAAO,MAAM,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAoCtD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAErD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAI7C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAI3D"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/types.js b/gateway/node_modules/@apollo/federation/dist/types.js deleted file mode 100644 index 869abb1..0000000 --- a/gateway/node_modules/@apollo/federation/dist/types.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isFederationType = exports.federationTypes = exports.serviceField = exports.entitiesField = exports.AnyType = exports.ServiceType = exports.EntityType = void 0; -const graphql_1 = require("graphql"); -exports.EntityType = new graphql_1.GraphQLUnionType({ - name: '_Entity', - types: [], -}); -exports.ServiceType = new graphql_1.GraphQLObjectType({ - name: '_Service', - fields: { - sdl: { - type: graphql_1.GraphQLString, - description: 'The sdl representing the federated service capabilities. Includes federation directives, removes federation types, and includes rest of full schema after schema directives have been applied', - }, - }, -}); -exports.AnyType = new graphql_1.GraphQLScalarType({ - name: '_Any', - serialize(value) { - return value; - }, -}); -function isPromise(value) { - return Boolean(value && 'then' in value && typeof value.then === 'function'); -} -function addTypeNameToPossibleReturn(maybeObject, typename) { - if (maybeObject !== null && typeof maybeObject === 'object') { - Object.defineProperty(maybeObject, '__typename', { - value: typename, - }); - } - return maybeObject; -} -exports.entitiesField = { - type: new graphql_1.GraphQLNonNull(new graphql_1.GraphQLList(exports.EntityType)), - args: { - representations: { - type: new graphql_1.GraphQLNonNull(new graphql_1.GraphQLList(new graphql_1.GraphQLNonNull(exports.AnyType))), - }, - }, - resolve(_source, { representations }, context, info) { - return representations.map((reference) => { - const { __typename } = reference; - const type = info.schema.getType(__typename); - if (!type || !graphql_1.isObjectType(type)) { - throw new Error(`The _entities resolver tried to load an entity for type "${__typename}", but no object type of that name was found in the schema`); - } - const resolveReference = type.resolveReference - ? type.resolveReference - : function defaultResolveReference() { - return reference; - }; - const result = resolveReference(reference, context, info); - if (isPromise(result)) { - return result.then((x) => addTypeNameToPossibleReturn(x, __typename)); - } - return addTypeNameToPossibleReturn(result, __typename); - }); - }, -}; -exports.serviceField = { - type: new graphql_1.GraphQLNonNull(exports.ServiceType), -}; -exports.federationTypes = [ - exports.ServiceType, - exports.AnyType, - exports.EntityType, -]; -function isFederationType(type) { - return (graphql_1.isNamedType(type) && exports.federationTypes.some(({ name }) => name === type.name)); -} -exports.isFederationType = isFederationType; -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/dist/types.js.map b/gateway/node_modules/@apollo/federation/dist/types.js.map deleted file mode 100644 index 8106cb0..0000000 --- a/gateway/node_modules/@apollo/federation/dist/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/federation/package.json b/gateway/node_modules/@apollo/federation/package.json deleted file mode 100644 index fe3d716..0000000 --- a/gateway/node_modules/@apollo/federation/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "@apollo/federation", - "version": "0.20.4", - "description": "Apollo Federation Utilities", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/apollographql/federation.git", - "directory": "federation-js/" - }, - "keywords": [ - "graphql", - "federation", - "apollo" - ], - "author": "Apollo ", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "publishConfig": { - "access": "public" - }, - "dependencies": { - "apollo-graphql": "^0.6.0", - "apollo-server-env": "^2.4.5", - "core-js": "^3.4.0", - "lodash.xorby": "^4.7.0" - }, - "peerDependencies": { - "graphql": "^14.5.0 || ^15.0.0" - }, - "gitHead": "378eb6bc3a0a6400191fc133bc3b6db3cd6d2e0c" -} diff --git a/gateway/node_modules/@apollo/federation/src/__tests__/tsconfig.json b/gateway/node_modules/@apollo/federation/src/__tests__/tsconfig.json deleted file mode 100644 index fcb8707..0000000 --- a/gateway/node_modules/@apollo/federation/src/__tests__/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../../tsconfig.test.base", - "include": ["**/*"], - "references": [ - { "path": "../../" }, - ] -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/__tests__/compose.test.ts b/gateway/node_modules/@apollo/federation/src/composition/__tests__/compose.test.ts deleted file mode 100644 index d458929..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/__tests__/compose.test.ts +++ /dev/null @@ -1,1391 +0,0 @@ -import { - GraphQLObjectType, - isSpecifiedDirective, - GraphQLDirective, -} from 'graphql'; -import gql from 'graphql-tag'; -import { composeServices } from '../compose'; -import { - astSerializer, - typeSerializer, - selectionSetSerializer, -} from '../../snapshotSerializers'; -import { normalizeTypeDefs } from '../normalize'; -import { getFederationMetadata } from '../utils'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(typeSerializer); -expect.addSnapshotSerializer(selectionSetSerializer); - -describe('composeServices', () => { - it('should include types from different services', () => { - const serviceA = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type User { - name: String - email: String! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getType('User')).toMatchInlineSnapshot(` - type User { - name: String - email: String! - } - `); - - expect(schema.getType('Product')).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - } - `); - - const product = schema.getType('Product') as GraphQLObjectType; - const user = schema.getType('User') as GraphQLObjectType; - - expect(getFederationMetadata(product).serviceName).toEqual('serviceA'); - expect(getFederationMetadata(user).serviceName).toEqual('serviceB'); - }); - - it("doesn't leave federation directives in the final schema", () => { - const serviceA = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const { schema } = composeServices([serviceA]); - - const directives = schema.getDirectives(); - expect(directives.every(isSpecifiedDirective)); - }); - - describe('basic type extensions', () => { - it('works when extension service is second', () => { - const serviceA = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - price: Int! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getType('Product')).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - price: Int! - } - `); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(getFederationMetadata(product).serviceName).toEqual('serviceA'); - expect(getFederationMetadata(product.getFields()['price']).serviceName).toEqual( - 'serviceB', - ); - }); - - it('works when extension service is first', () => { - const serviceA = { - typeDefs: gql` - extend type Product { - price: Int! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceB', - }; - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getType('Product')).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - price: Int! - } - `); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(getFederationMetadata(product).serviceName).toEqual('serviceB'); - expect(getFederationMetadata(product.getFields()['price']).serviceName).toEqual( - 'serviceA', - ); - }); - - it('works with multiple extensions on the same type', () => { - const serviceA = { - typeDefs: gql` - extend type Product { - price: Int! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceB', - }; - - const serviceC = { - typeDefs: gql` - extend type Product { - color: String! - } - `, - name: 'serviceC', - }; - - const { schema, errors } = composeServices([ - serviceA, - serviceB, - serviceC, - ]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getType('Product')).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - price: Int! - color: String! - } - `); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(getFederationMetadata(product).serviceName).toEqual('serviceB'); - expect(getFederationMetadata(product.getFields()['price']).serviceName).toEqual( - 'serviceA', - ); - expect(getFederationMetadata(product.getFields()['color']).serviceName).toEqual( - 'serviceC', - ); - }); - - it('allows extensions to overwrite other extension fields', () => { - const serviceA = { - typeDefs: gql` - extend type Product { - price: Int! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceB', - }; - - const serviceC = { - typeDefs: gql` - extend type Product { - price: Float! - color: String! - } - `, - name: 'serviceC', - }; - - const { schema, errors } = composeServices([ - serviceA, - serviceB, - serviceC, - ]); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: Field "Product.price" can only be defined once.], - ] - `); - expect(schema).toBeDefined(); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(product).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - price: Float! - color: String! - } - `); - - expect(getFederationMetadata(product).serviceName).toEqual('serviceB'); - expect(getFederationMetadata(product.getFields()['price']).serviceName).toEqual( - 'serviceC', - ); - }); - - it('preserves arguments for fields', () => { - const serviceA = { - typeDefs: gql` - enum Curr { - USD - GBP - } - - extend type Product { - price(currency: Curr!): Int! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product { - sku: String! - name(type: String): String! - } - `, - name: 'serviceB', - }; - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getType('Product')).toMatchInlineSnapshot(` - type Product { - sku: String! - name(type: String): String! - price(currency: Curr!): Int! - } - `); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(product.getFields()['price'].args[0].name).toEqual('currency'); - }); - - // This is a limitation of extendSchema currently (this is currently a broken test to demonstrate) - it.skip('overwrites field on extension by base type when base type comes second', () => { - const serviceA = { - typeDefs: gql` - extend type Product { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - const serviceB = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(schema).toBeDefined(); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: Field "Product.sku" already exists in the schema. It cannot also be defined in this type extension.], - [GraphQLError: Field "Product.name" already exists in the schema. It cannot also be defined in this type extension.], - ] - `); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(product).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - } - `); - expect(getFederationMetadata(product.getFields()['sku']).serviceName).toEqual( - 'serviceB', - ); - expect(getFederationMetadata(product.getFields()['name']).serviceName).toEqual( - 'serviceB', - ); - }); - - describe('collisions & error handling', () => { - it('handles collisions on type extensions as expected', () => { - const serviceA = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - name: String! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(schema).toBeDefined(); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: [serviceA] Product.name -> Field "Product.name" already exists in the schema. It cannot also be defined in this type extension. If this is meant to be an external field, add the \`@external\` directive.], - ] - `); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(product).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - } - `); - expect(getFederationMetadata(product.getFields()['name']).serviceName).toEqual( - 'serviceB', - ); - }); - - it('reports multiple errors correctly', () => { - const serviceA = { - typeDefs: gql` - type Query { - product: Product - } - - type Product { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! - name: String! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(schema).toBeDefined(); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: [serviceA] Product.sku -> Field "Product.sku" already exists in the schema. It cannot also be defined in this type extension. If this is meant to be an external field, add the \`@external\` directive.], - [GraphQLError: [serviceA] Product.name -> Field "Product.name" already exists in the schema. It cannot also be defined in this type extension. If this is meant to be an external field, add the \`@external\` directive.], - ] - `); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(product).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - } - `); - expect(getFederationMetadata(product.getFields()['name']).serviceName).toEqual( - 'serviceB', - ); - }); - - it('handles collisions of base types as expected (newest takes precedence)', () => { - const serviceA = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product { - id: ID! - name: String! - price: Int! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(schema).toBeDefined(); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: Field "Product.name" can only be defined once.], - [GraphQLError: There can be only one type named "Product".], - ] - `); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(product).toMatchInlineSnapshot(` - type Product { - id: ID! - name: String! - price: Int! - } - `); - }); - }); - }); - - // Maybe just test conflicts in types - // it("interfaces, unions", () => {}); - - // TODO: _allow_ enum and input extensions, but don't add serviceName - describe('input and enum type extensions', () => { - it('extends input types', () => { - const serviceA = { - typeDefs: gql` - input ProductInput { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend input ProductInput { - color: String! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(schema).toBeDefined(); - expect(errors).toMatchInlineSnapshot(`Array []`); - }); - - it('extends enum types', () => { - const serviceA = { - typeDefs: gql` - enum ProductCategory { - BED - BATH - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend enum ProductCategory { - BEYOND - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(schema).toBeDefined(); - expect(errors).toMatchInlineSnapshot(`Array []`); - }); - }); - - describe('interfaces', () => { - // TODO: should there be a validation warning of some sort for this? - it('allows overwriting a type that implements an interface improperly', () => { - const serviceA = { - typeDefs: gql` - interface Item { - id: ID! - } - - type Product implements Item { - id: ID! - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - id: String! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: [serviceA] Product.id -> Field "Product.id" already exists in the schema. It cannot also be defined in this type extension. If this is meant to be an external field, add the \`@external\` directive.], - ] - `); - expect(schema).toBeDefined(); - - expect(schema.getType('Product')).toMatchInlineSnapshot(` - type Product implements Item { - id: String! - sku: String! - name: String! - } - `); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(getFederationMetadata(product).serviceName).toEqual('serviceA'); - expect(getFederationMetadata(product.getFields()['id']).serviceName).toEqual( - 'serviceB', - ); - }); - }); - - describe('root type extensions', () => { - it('allows extension of the Query type with no base type definition', () => { - const serviceA = { - typeDefs: gql` - extend type Query { - products: [ID!] - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Query { - people: [ID!] - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getQueryType()).toMatchInlineSnapshot(` - type Query { - products: [ID!] - people: [ID!] - } - `); - - const query = schema.getQueryType(); - - expect(getFederationMetadata(query).serviceName).toBeUndefined(); - }); - - it('treats root Query type definition as an extension, not base definitions', () => { - const serviceA = { - typeDefs: gql` - type Query { - products: [ID!] - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Query { - people: [ID!] - } - `, - name: 'serviceB', - }; - - const normalizedServices = [serviceA, serviceB].map( - ({ name, typeDefs }) => ({ - name, - typeDefs: normalizeTypeDefs(typeDefs), - }), - ); - const { schema, errors } = composeServices(normalizedServices); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getType('Query')).toMatchInlineSnapshot(` - type Query { - products: [ID!] - people: [ID!] - } - `); - - const query = schema.getType('Query') as GraphQLObjectType; - - expect(getFederationMetadata(query).serviceName).toBeUndefined(); - }); - - it('allows extension of the Mutation type with no base type definition', () => { - const serviceA = { - typeDefs: gql` - extend type Mutation { - login(credentials: Credentials!): String - } - - input Credentials { - username: String! - password: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Mutation { - logout(username: String!): Boolean - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getType('Mutation')).toMatchInlineSnapshot(` - type Mutation { - login(credentials: Credentials!): String - logout(username: String!): Boolean - } - `); - }); - - it('treats root Mutations type definition as an extension, not base definitions', () => { - const serviceA = { - typeDefs: gql` - type Mutation { - login(credentials: Credentials!): String - } - - input Credentials { - username: String! - password: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Mutation { - logout(username: String!): Boolean - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - - expect(schema.getType('Mutation')).toMatchInlineSnapshot(` - type Mutation { - login(credentials: Credentials!): String - logout(username: String!): Boolean - } - `); - }); - - // TODO: not sure what to do here. Haven't looked into it yet :) - it.skip('works with custom root types', () => {}); - }); - - describe('federation directives', () => { - // Directives - allow schema (federation) directives - describe('@external', () => { - it('adds externals map from service to externals for @external fields', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA--FOUND', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB--MISSING', - }; - - const serviceC = { - typeDefs: gql` - extend type Product { - sku: String! @external - upc: String! @external - weight: Int! @requires(fields: "sku upc") - } - `, - name: 'serviceC--found', - }; - - const { schema, errors } = composeServices([ - serviceA, - serviceC, - serviceB, - ]); - - expect(errors).toHaveLength(0); - - const product = schema.getType('Product'); - - expect(getFederationMetadata(product).externals).toMatchInlineSnapshot(` - Object { - "serviceB--MISSING": Array [ - Object { - "field": sku: String! @external, - "parentTypeName": "Product", - "serviceName": "serviceB--MISSING", - }, - ], - "serviceC--found": Array [ - Object { - "field": sku: String! @external, - "parentTypeName": "Product", - "serviceName": "serviceC--found", - }, - Object { - "field": upc: String! @external, - "parentTypeName": "Product", - "serviceName": "serviceC--found", - }, - ], - } - `); - }); - it('does not redefine fields with @external when composing', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(schema).toBeDefined(); - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - - expect(product).toMatchInlineSnapshot(` - type Product { - sku: String! - name: String! - price: Int! - } - `); - expect(getFederationMetadata(product.getFields()['price']).serviceName).toEqual( - 'serviceB', - ); - expect(getFederationMetadata(product).serviceName).toEqual('serviceA'); - }); - }); - - describe('@requires directive', () => { - it('adds @requires information to fields using a simple field set', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect( - getFederationMetadata(product.getFields()['price']).requires, - ).toMatchInlineSnapshot(`sku`); - }); - - it('adds @requires information to fields using a nested field set', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku { id }") { - sku: Sku! - } - - type Sku { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: Sku! @external - price: Float! @requires(fields: "sku { id }") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(getFederationMetadata(product.getFields()['price']).requires) - .toMatchInlineSnapshot(` - sku { - id - } - `); - }); - }); - - // TODO: provides can happen on an extended type as well, add a test case for this - describe('@provides directive', () => { - it('adds @provides information to fields using a simple field set', () => { - const serviceA = { - typeDefs: gql` - type Review { - product: Product @provides(fields: "sku") - } - - extend type Product { - sku: String @external - color: String - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const review = schema.getType('Review') as GraphQLObjectType; - expect(getFederationMetadata(review.getFields()['product'])).toMatchInlineSnapshot(` - Object { - "belongsToValueType": false, - "provides": sku, - "serviceName": "serviceA", - } - `); - }); - - it('adds @provides information to fields using a nested field set', () => { - const serviceA = { - typeDefs: gql` - type Review { - product: Product @provides(fields: "sku { id }") - } - - extend type Product { - sku: Sku @external - color: String - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product @key(fields: "sku { id }") { - sku: Sku! - price: Int! @requires(fields: "sku") - } - - type Sku { - id: ID! - value: String! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const review = schema.getType('Review') as GraphQLObjectType; - expect(getFederationMetadata(review.getFields()['product']).provides) - .toMatchInlineSnapshot(` - sku { - id - } - `); - }); - - it('adds @provides information for object types within list types', () => { - const serviceA = { - typeDefs: gql` - type Review { - products: [Product] @provides(fields: "sku") - } - - extend type Product { - sku: String @external - color: String - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const review = schema.getType('Review') as GraphQLObjectType; - expect(getFederationMetadata(review.getFields()['products'])) - .toMatchInlineSnapshot(` - Object { - "belongsToValueType": false, - "provides": sku, - "serviceName": "serviceA", - } - `); - }); - - it('adds correct @provides information to fields on value types', () => { - const serviceA = { - typeDefs: gql` - extend type Query { - valueType: ValueType - } - - type ValueType { - id: ID! - user: User! @provides(fields: "id name") - } - - type User @key(fields: "id") { - id: ID! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type ValueType { - id: ID! - user: User! @provides(fields: "id name") - } - - extend type User @key(fields: "id") { - id: ID! @external - name: String! @external - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const valueType = schema.getType('ValueType') as GraphQLObjectType; - const userFieldFederationMetadata = getFederationMetadata(valueType.getFields()['user']); - expect(userFieldFederationMetadata.belongsToValueType).toBe(true); - expect(userFieldFederationMetadata.serviceName).toBe(null); - }); - }); - - describe('@key directive', () => { - it('adds @key information to types using basic string notation', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") @key(fields: "upc") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(getFederationMetadata(product).keys).toMatchInlineSnapshot(` - Object { - "serviceA": Array [ - sku, - upc, - ], - } - `); - }); - - it('adds @key information to types using selection set notation', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(getFederationMetadata(product).keys).toMatchInlineSnapshot(` - Object { - "serviceA": Array [ - color { - id - value - }, - ], - } - `); - }); - - it('preserves @key information with respect to types across different services', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(getFederationMetadata(product).keys).toMatchInlineSnapshot(` - Object { - "serviceA": Array [ - color { - id - value - }, - ], - "serviceB": Array [ - sku, - ], - } - `); - }); - }); - - describe('@extends directive', () => { - it('treats types with @extends as type extensions', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product @extends @key(fields: "sku") { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const normalizedServices = [serviceA, serviceB].map( - ({ name, typeDefs }) => ({ - name, - typeDefs: normalizeTypeDefs(typeDefs), - }), - ); - const { schema, errors } = composeServices(normalizedServices); - - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(product).toMatchInlineSnapshot(` - type Product { - sku: String! - upc: String! - price: Int! - } - `); - }); - - it('treats interfaces with @extends as interface extensions', () => { - const serviceA = { - typeDefs: gql` - interface Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - interface Product @extends @key(fields: "sku") { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const normalizedServices = [serviceA, serviceB].map( - ({ name, typeDefs }) => ({ - name, - typeDefs: normalizeTypeDefs(typeDefs), - }), - ); - const { schema, errors } = composeServices(normalizedServices); - - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(product).toMatchInlineSnapshot(` - interface Product { - sku: String! - upc: String! - price: Int! - } - `); - }); - }); - }); - describe('executable directives', () => { - it('keeps executable directives in the schema', () => { - const serviceA = { - typeDefs: gql` - directive @defer on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - `, - name: 'serviceA', - }; - - const { schema, errors } = composeServices([serviceA]); - - expect(errors).toHaveLength(0); - - const defer = schema.getDirective('defer') as GraphQLDirective; - expect(defer).toMatchInlineSnapshot(`"@defer"`); - }); - it('keeps executable directives in the schema', () => { - const serviceA = { - typeDefs: gql` - directive @defer on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - `, - name: 'serviceA', - }; - const serviceB = { - typeDefs: gql` - directive @stream on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - - expect(errors).toHaveLength(0); - - const defer = schema.getDirective('defer') as GraphQLDirective; - expect(defer).toMatchInlineSnapshot(`"@defer"`); - - const stream = schema.getDirective('stream') as GraphQLDirective; - expect(stream).toMatchInlineSnapshot(`"@stream"`); - }); - }); - - it('extensions field on GraphQLSchema includes serviceList', () => { - const serviceA = { - typeDefs: gql` - type Product { - sku: String! - name: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type User { - name: String - email: String! - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeServices([serviceA, serviceB]); - expect(errors).toHaveLength(0); - expect(schema).toBeDefined(); - expect(schema.extensions.serviceList).toBeDefined(); - expect(schema.extensions.serviceList).toHaveLength(2); - }); -}); - -// XXX Ignored/unimplemented spec tests -// it("allows extension of custom scalars", () => {}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/__tests__/composeAndValidate.test.ts b/gateway/node_modules/@apollo/federation/src/composition/__tests__/composeAndValidate.test.ts deleted file mode 100644 index a585a56..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/__tests__/composeAndValidate.test.ts +++ /dev/null @@ -1,878 +0,0 @@ -import { composeAndValidate } from '../composeAndValidate'; -import gql from 'graphql-tag'; -import { - GraphQLObjectType, - DocumentNode, - GraphQLScalarType, - specifiedDirectives, - printSchema, -} from 'graphql'; -import { - astSerializer, - typeSerializer, - graphqlErrorSerializer, -} from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(typeSerializer); -expect.addSnapshotSerializer(graphqlErrorSerializer); - -const productsService = { - name: 'Products', - typeDefs: gql` - extend type Query { - topProducts(first: Int): [Product] - } - type Product @key(fields: "upc") { - upc: String! - sku: String! - name: String - price: String - } - `, -}; - -const reviewsService = { - name: 'Reviews', - typeDefs: gql` - type Review @key(fields: "id") { - id: ID! - body: String - author: User - product: Product - } - - extend type User @key(fields: "id") { - id: ID! @external - reviews: [Review] - } - extend type Product @key(fields: "upc") { - upc: String! @external - reviews: [Review] - } - `, -}; - -const accountsService = { - name: 'Accounts', - typeDefs: gql` - extend type Query { - me: User - } - type User @key(fields: "id") { - id: ID! - name: String - username: String - birthDate: String - } - `, -}; - -const inventoryService = { - name: 'Inventory', - typeDefs: gql` - extend type Product @key(fields: "upc") { - upc: String! @external - inStock: Boolean - # quantity: Int - } - `, -}; - -function permutateList(inputArr: T[]) { - let result: T[][] = []; - - function permute(arr: T[], m: T[] = []) { - if (arr.length === 0) { - result.push(m); - } else { - for (let i = 0; i < arr.length; i++) { - let curr = arr.slice(); - let next = curr.splice(i, 1); - permute(curr.slice(), m.concat(next)); - } - } - } - - permute(inputArr); - - return result; -} - -it('composes and validates all (24) permutations without error', () => { - permutateList([ - inventoryService, - reviewsService, - accountsService, - productsService, - ]).map((config) => { - const { errors } = composeAndValidate(config); - - if (errors.length) { - console.error( - `Errors found with composition [${config.map((item) => item.name)}]`, - ); - } - - expect(errors).toHaveLength(0); - }); -}); - -it('errors when a type extension has no base', () => { - const serviceA = { - typeDefs: gql` - schema { - query: MyRoot - } - - type MyRoot { - products: [Product]! - } - - type Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Location { - id: ID - } - `, - name: 'serviceB', - }; - - const { errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(1); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTENSION_WITH_NO_BASE", - "message": "[serviceB] Location -> \`Location\` is an extension type, but \`Location\` is not defined in any service", - }, - ] - `); -}); - -it('treats types with @extends as type extensions', () => { - const serviceA = { - typeDefs: gql` - type Query { - products: [Product]! - } - - type Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product @extends @key(fields: "sku") { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(product).toMatchInlineSnapshot(` - type Product { - sku: String! - upc: String! - price: Int! - } - `); -}); - -it('treats interfaces with @extends as interface extensions', () => { - const serviceA = { - typeDefs: gql` - type Query { - products: [Product]! - } - - interface Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - interface Product @extends @key(fields: "sku") { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const product = schema.getType('Product') as GraphQLObjectType; - expect(product).toMatchInlineSnapshot(` - interface Product { - sku: String! - upc: String! - price: Int! - } - `); -}); - -it('errors on invalid usages of default operation names', () => { - const serviceA = { - typeDefs: gql` - schema { - query: RootQuery - } - - type RootQuery { - product: Product - } - - type Product @key(fields: "id") { - id: ID! - query: Query - } - - type Query { - invalidUseOfQuery: Boolean - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Query { - validUseOfQuery: Boolean - } - - extend type Product @key(fields: "id") { - id: ID! @external - sku: String - } - `, - name: 'serviceB', - }; - - const { errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "ROOT_QUERY_USED", - "message": "[serviceA] Query -> Found invalid use of default root operation name \`Query\`. \`Query\` is disallowed when \`Schema.query\` is set to a type other than \`Query\`.", - }, - ] - `); -}); - -describe('composition of value types', () => { - function getSchemaWithValueType(valueType: DocumentNode) { - const serviceA = { - typeDefs: gql` - ${valueType} - - type Query { - filler: String - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: valueType, - name: 'serviceB', - }; - - return composeAndValidate([serviceA, serviceB]); - } - - describe('success', () => { - it('scalars', () => { - const { errors, schema } = getSchemaWithValueType( - gql` - scalar Date - `, - ); - expect(errors).toHaveLength(0); - expect(schema.getType('Date')).toMatchInlineSnapshot(`scalar Date`); - }); - - it('unions and object types', () => { - const { errors, schema } = getSchemaWithValueType( - gql` - union CatalogItem = Couch | Mattress - - type Couch { - sku: ID! - material: String! - } - - type Mattress { - sku: ID! - size: String! - } - `, - ); - expect(errors).toHaveLength(0); - expect(schema.getType('CatalogItem')).toMatchInlineSnapshot( - `union CatalogItem = Couch | Mattress`, - ); - expect(schema.getType('Couch')).toMatchInlineSnapshot(` - type Couch { - sku: ID! - material: String! - } - `); - }); - - it('input types', () => { - const { errors, schema } = getSchemaWithValueType(gql` - input NewProductInput { - sku: ID! - type: String - } - `); - expect(errors).toHaveLength(0); - expect(schema.getType('NewProductInput')).toMatchInlineSnapshot(` - input NewProductInput { - sku: ID! - type: String - } - `); - }); - - it('interfaces', () => { - const { errors, schema } = getSchemaWithValueType(gql` - interface Product { - sku: ID! - } - `); - expect(errors).toHaveLength(0); - expect(schema.getType('Product')).toMatchInlineSnapshot(` - interface Product { - sku: ID! - } - `); - }); - - it('enums', () => { - const { errors, schema } = getSchemaWithValueType(gql` - enum CatalogItemEnum { - COUCH - MATTRESS - } - `); - expect(errors).toHaveLength(0); - expect(schema.getType('CatalogItemEnum')).toMatchInlineSnapshot(` - enum CatalogItemEnum { - COUCH - MATTRESS - } - `); - }); - }); - - describe('errors', () => { - it('when used as an entity', () => { - const serviceA = { - typeDefs: gql` - type Query { - product: Product - } - - type Product { - sku: ID! - color: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Query { - topProducts: [Product] - } - - type Product @key(fields: "sku") { - sku: ID! - color: String! - } - `, - name: 'serviceB', - }; - - const { errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_NO_ENTITY", - "message": "[serviceB] Product -> Value types cannot be entities (using the \`@key\` directive). Please ensure that the \`Product\` type is extended properly or remove the \`@key\` directive if this is not an entity.", - } - `); - }); - - it('on field type mismatch', () => { - const serviceA = { - typeDefs: gql` - type Query { - product: Product - } - - type Product { - sku: ID! - color: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Query { - topProducts: [Product] - } - - type Product { - sku: ID! - color: String - } - `, - name: 'serviceB', - }; - - const { errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_FIELD_TYPE_MISMATCH", - "message": "[serviceA] Product.color -> A field was defined differently in different services. \`serviceA\` and \`serviceB\` define \`Product.color\` as a String! and String respectively. In order to define \`Product\` in multiple places, the fields and their types must be identical.", - } - `); - }); - - it('on kind mismatch', () => { - const serviceA = { - typeDefs: gql` - type Query { - product: Product - } - - interface Product { - sku: ID! - color: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Query { - topProducts: [Product] - } - - type Product { - sku: ID! - color: String! - } - `, - name: 'serviceB', - }; - - const { errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_KIND_MISMATCH", - "message": "[serviceA] Product -> Found kind mismatch on expected value type belonging to services \`serviceA\` and \`serviceB\`. \`Product\` is defined as both a \`ObjectTypeDefinition\` and a \`InterfaceTypeDefinition\`. In order to define \`Product\` in multiple places, the kinds must be identical.", - } - `); - }); - - it('on union types mismatch', () => { - const serviceA = { - typeDefs: gql` - type Query { - product: Product - } - - type Couch { - sku: ID! - } - - type Mattress { - sku: ID! - } - - union Product = Couch | Mattress - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Query { - topProducts: [Product] - } - - type Couch { - sku: ID! - } - - type Cabinet { - sku: ID! - } - - union Product = Couch | Cabinet - `, - name: 'serviceB', - }; - - const { errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_UNION_TYPES_MISMATCH", - "message": "[serviceA] Product -> The union \`Product\` is defined in services \`serviceA\` and \`serviceB\`, however their types do not match. Union types with the same name must also consist of identical types. The types Cabinet, Mattress are mismatched.", - } - `); - }); - }); - - it('composed type implements ALL interfaces that value types implement', () => { - const serviceA = { - typeDefs: gql` - interface Node { - id: ID! - } - - interface Named { - name: String - } - - type Product implements Named & Node { - id: ID! - name: String - } - - type Query { - node(id: ID!): Node - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - interface Node { - id: ID! - } - - type Product implements Node { - id: ID! - name: String - } - `, - name: 'serviceB', - }; - - const serviceC = { - typeDefs: gql` - interface Named { - name: String - } - - type Product implements Named { - id: ID! - name: String - } - `, - name: 'serviceC', - }; - - const serviceD = { - typeDefs: gql` - type Product { - id: ID! - name: String - } - `, - name: 'serviceD', - }; - - const { schema, errors, composedSdl } = composeAndValidate([ - serviceA, - serviceB, - serviceC, - serviceD, - ]); - - expect(errors).toHaveLength(0); - expect((schema.getType('Product') as GraphQLObjectType).getInterfaces()) - .toHaveLength(2); - - expect(printSchema(schema)).toContain('type Product implements Named & Node'); - expect(composedSdl).toContain('type Product implements Named & Node'); - - }); -}); - -describe('composition of schemas with directives', () => { - /** - * To see which usage sites indicate whether a directive is "executable" or - * merely for use by the type-system ("type-system"), see the GraphQL spec: - * https://graphql.github.io/graphql-spec/June2018/#sec-Type-System.Directives - */ - it('preserves executable and purges type-system directives', () => { - const serviceA = { - typeDefs: gql` - "directives at FIELDs are executable" - directive @audit(risk: Int!) on FIELD - - "directives at FIELD_DEFINITIONs are for the type-system" - directive @transparency(concealment: Int!) on FIELD_DEFINITION - - type EarthConcern { - environmental: String! @transparency(concealment: 5) - } - - extend type Query { - importantDirectives: [EarthConcern!]! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - "directives at FIELDs are executable" - directive @audit(risk: Int!) on FIELD - - "directives at FIELD_DEFINITIONs are for the type-system" - directive @transparency(concealment: Int!) on FIELD_DEFINITION - - "directives at OBJECTs are for the type-system" - directive @experimental on OBJECT - - extend type EarthConcern @experimental { - societal: String! @transparency(concealment: 6) - } - `, - name: 'serviceB', - }; - - const { schema, errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(0); - - const audit = schema.getDirective('audit'); - expect(audit).toMatchInlineSnapshot(`"@audit"`); - - const transparency = schema.getDirective('transparency'); - expect(transparency).toBeUndefined(); - - const type = schema.getType('EarthConcern') as GraphQLObjectType; - - expect(type.astNode).toMatchInlineSnapshot(` - type EarthConcern { - environmental: String! - } - `); - - const fields = type.getFields(); - - expect(fields['environmental'].astNode).toMatchInlineSnapshot( - `environmental: String!`, - ); - - expect(fields['societal'].astNode).toMatchInlineSnapshot( - `societal: String!`, - ); - }); - - it(`doesn't strip the special case @deprecated and @specifiedBy type-system directives`, () => { - const specUrl = 'http://my-spec-url.com'; - const deprecationReason = "Don't remove me please"; - - // Detecting >15.1.0 by the new addition of the `specifiedBy` directive - const isAtLeastGraphqlVersionFifteenPointOne = - specifiedDirectives.length >= 4; - - const serviceA = { - typeDefs: gql` - # This directive needs to be conditionally added depending on the testing - # environment's version of graphql (>= 15.1.0 includes this new directive) - ${ - isAtLeastGraphqlVersionFifteenPointOne - ? `scalar MyScalar @specifiedBy(url: "${specUrl}")` - : '' - } - - type EarthConcern { - environmental: String! - } - - extend type Query { - importantDirectives: [EarthConcern!]! - @deprecated(reason: "${deprecationReason}") - } - `, - name: 'serviceA', - }; - - const { schema, errors } = composeAndValidate([serviceA]); - expect(errors).toHaveLength(0); - - const deprecated = schema.getDirective('deprecated'); - expect(deprecated).toMatchInlineSnapshot(`"@deprecated"`); - - const queryType = schema.getType('Query') as GraphQLObjectType; - const field = queryType.getFields()['importantDirectives']; - - expect(field.isDeprecated).toBe(true); - expect(field.deprecationReason).toEqual(deprecationReason); - - if (isAtLeastGraphqlVersionFifteenPointOne) { - const specifiedBy = schema.getDirective('specifiedBy'); - expect(specifiedBy).toMatchInlineSnapshot(`"@specifiedBy"`); - const customScalar = schema.getType('MyScalar'); - expect((customScalar as GraphQLScalarType).specifiedByUrl).toEqual( - specUrl, - ); - } - }); -}); - -it('composition of full-SDL schemas without any errors', () => { - const serviceA = { - typeDefs: gql` - # Default directives - directive @deprecated( - reason: String = "No longer supported" - ) on FIELD_DEFINITION | ENUM_VALUE - directive @specifiedBy(url: String!) on SCALAR - directive @include( - if: String = "Included when true." - ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - directive @skip( - if: String = "Skipped when true." - ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - - # Federation directives - directive @key(fields: _FieldSet!) on OBJECT | INTERFACE - directive @external on FIELD_DEFINITION - directive @requires(fields: _FieldSet!) on FIELD_DEFINITION - directive @provides(fields: _FieldSet!) on FIELD_DEFINITION - directive @extends on OBJECT | INTERFACE - - # Custom type system directive (disregarded by gateway, unconcerned with serviceB's implementation) - directive @myTypeSystemDirective on FIELD_DEFINITION - # Custom executable directive (must be implemented in all services, definition must be identical) - directive @myExecutableDirective on FIELD - - scalar _Any - scalar _FieldSet - - union _Entity - - type _Service { - sdl: String - } - - schema { - query: RootQuery - mutation: RootMutation - } - - type RootQuery { - _service: _Service! - _entities(representations: [_Any!]!): [_Entity]! - product: Product - } - - type Product @key(fields: "sku") { - sku: String! - price: Float - } - - type RootMutation { - updateProduct: Product - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - # Default directives - directive @deprecated( - reason: String = "No longer supported" - ) on FIELD_DEFINITION | ENUM_VALUE - directive @specifiedBy(url: String!) on SCALAR - directive @include( - if: String = "Included when true." - ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - directive @skip( - if: String = "Skipped when true." - ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - - # Federation directives - directive @key(fields: _FieldSet!) on OBJECT | INTERFACE - directive @external on FIELD_DEFINITION - directive @requires(fields: _FieldSet!) on FIELD_DEFINITION - directive @provides(fields: _FieldSet!) on FIELD_DEFINITION - directive @extends on OBJECT | INTERFACE - - # Custom type system directive (disregarded by gateway, unconcerned with serviceA's implementation) - directive @myDirective on FIELD_DEFINITION - - # Custom executable directive (must be implemented in all services, definition must be identical) - directive @myExecutableDirective on FIELD - - scalar _Any - scalar _FieldSet - - union _Entity - - type _Service { - sdl: String - } - - type Query { - _service: _Service! - _entities(representations: [_Any!]!): [_Entity]! - review: Review - } - - type Review @key(fields: "id") { - id: String! - content: String - } - - type Mutation { - createReview: Review - } - `, - name: 'serviceB', - }; - - const { errors } = composeAndValidate([serviceA, serviceB]); - expect(errors).toHaveLength(0); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/__tests__/normalize.test.ts b/gateway/node_modules/@apollo/federation/src/composition/__tests__/normalize.test.ts deleted file mode 100644 index 6ce8b53..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/__tests__/normalize.test.ts +++ /dev/null @@ -1,410 +0,0 @@ -import gql from 'graphql-tag'; -import { - defaultRootOperationTypes, - replaceExtendedDefinitionsWithExtensions, - normalizeTypeDefs, - stripCommonPrimitives, -} from '../normalize'; -import { astSerializer } from '../../snapshotSerializers'; -import { specifiedDirectives } from 'graphql'; - -expect.addSnapshotSerializer(astSerializer); - -describe('SDL normalization and its respective parts', () => { - describe('defaultRootOperationTypes', () => { - it('transforms defined root operation types to respective extended default root operation types', () => { - const typeDefs = gql` - schema { - query: RootQuery - mutation: RootMutation - } - - type RootQuery { - product: Product - } - - type Product { - sku: String - } - - type RootMutation { - updateProduct: Product - } - `; - - const schemaWithDefaultedRootOperationTypes = defaultRootOperationTypes( - typeDefs, - ); - expect(schemaWithDefaultedRootOperationTypes).toMatchInlineSnapshot(` - extend type Query { - product: Product - } - - type Product { - sku: String - } - - extend type Mutation { - updateProduct: Product - } - `); - }); - - it('removes all types using a default root operation type name when a schema definition is provided (root types are defined by the user)', () => { - const typeDefs = gql` - schema { - query: RootQuery - } - - type RootQuery { - product: Product - } - - type Product { - sku: String - } - - type Query { - removeThisEntireType: String - } - - type Mutation { - removeThisEntireType: String - } - - type Subscription { - removeThisEntireType: String - } - `; - - const schemaWithDefaultedRootOperationTypes = defaultRootOperationTypes( - typeDefs, - ); - expect(schemaWithDefaultedRootOperationTypes).toMatchInlineSnapshot(` - extend type Query { - product: Product - } - - type Product { - sku: String - } - `); - }); - - it('drops fields that reference an invalid default root operation type name', () => { - const typeDefs = gql` - schema { - query: RootQuery - mutation: RootMutation - } - - type RootQuery { - product: Product - } - - type Query { - removeThisEntireType: String - } - - type RootMutation { - keepThisField: String - removeThisField: Query - } - `; - - const schemaWithDefaultedRootOperationTypes = defaultRootOperationTypes( - typeDefs, - ); - expect(schemaWithDefaultedRootOperationTypes).toMatchInlineSnapshot(` - extend type Query { - product: Product - } - - extend type Mutation { - keepThisField: String - } - `); - }); - }); - - describe('replaceExtendedDefinitionsWithExtensions', () => { - it('transforms the @extends directive into type extensions', () => { - const typeDefs = gql` - type Product @extends @key(fields: "sku") { - sku: String @external - } - `; - - expect(replaceExtendedDefinitionsWithExtensions(typeDefs)) - .toMatchInlineSnapshot(` - extend type Product @key(fields: "sku") { - sku: String @external - } - `); - }); - }); - - describe('stripCommonPrimitives', () => { - it(`removes all common directive definitions`, () => { - // Detecting >15.1.0 by the new addition of the `specifiedBy` directive - const isAtLeastGraphqlVersionFifteenPointOne = - specifiedDirectives.length >= 4; - - const typeDefs = gql` - # Default directives - - # This directive needs to be conditionally added depending on the testing - # environment's version of graphql (>= 15.1.0 includes this new directive) - ${isAtLeastGraphqlVersionFifteenPointOne - ? 'directive @specifiedBy(url: String!) on SCALAR' - : ''} - directive @deprecated( - reason: String = "No longer supported" - ) on FIELD_DEFINITION | ENUM_VALUE - directive @include( - if: String = "Included when true." - ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - directive @skip( - if: String = "Skipped when true." - ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - - # Federation directives - directive @key(fields: _FieldSet!) on OBJECT | INTERFACE - directive @external on FIELD_DEFINITION - directive @requires(fields: _FieldSet!) on FIELD_DEFINITION - directive @provides(fields: _FieldSet!) on FIELD_DEFINITION - directive @extends on OBJECT | INTERFACE - - type Query { - thing: String - } - `; - - expect(stripCommonPrimitives(typeDefs)).toMatchInlineSnapshot(` - type Query { - thing: String - } - `); - }); - - it(`doesn't remove custom directive definitions`, () => { - const typeDefs = gql` - directive @custom on OBJECT - - type Query { - thing: String - } - `; - - expect(stripCommonPrimitives(typeDefs)).toMatchInlineSnapshot(` - directive @custom on OBJECT - - type Query { - thing: String - } - `); - }); - - it(`removes all federation type definitions (scalars, unions, object types)`, () => { - const typeDefs = gql` - scalar _Any - scalar _FieldSet - - union _Entity - - type _Service { - sdl: String - } - - type Query { - thing: String - } - `; - - expect(stripCommonPrimitives(typeDefs)).toMatchInlineSnapshot(` - type Query { - thing: String - } - `); - }); - - it(`doesn't remove custom scalar, union, or object type definitions`, () => { - const typeDefs = gql` - scalar CustomScalar - - type CustomType { - field: String! - } - - union CustomUnion - - type Query { - thing: String - } - `; - - expect(stripCommonPrimitives(typeDefs)).toMatchInlineSnapshot(` - scalar CustomScalar - - type CustomType { - field: String! - } - - union CustomUnion - - type Query { - thing: String - } - `); - }); - - it(`removes all federation field definitions (_service, _entities)`, () => { - const typeDefs = gql` - type Query { - _service: _Service! - _entities(representations: [_Any!]!): [_Entity]! - thing: String - } - `; - - expect(stripCommonPrimitives(typeDefs)).toMatchInlineSnapshot(` - type Query { - thing: String - } - `); - }); - - it(`removes the Query type altogether if it has no fields left after normalization`, () => { - const typeDefs = gql` - type Query { - _service: _Service! - _entities(representations: [_Any!]!): [_Entity]! - } - - type Custom { - field: String - } - `; - - expect(stripCommonPrimitives(typeDefs)).toMatchInlineSnapshot(` - type Custom { - field: String - } - `); - }); - }); - - describe('normalizeTypeDefs', () => { - it('integration', () => { - // Detecting >15.1.0 by the new addition of the `specifiedBy` directive - const isAtLeastGraphqlVersionFifteenPointOne = - specifiedDirectives.length >= 4; - - const typeDefsToNormalize = gql` - # Default directives - - # This directive needs to be conditionally added depending on the testing - # environment's version of graphql (>= 15.1.0 includes this new directive) - ${isAtLeastGraphqlVersionFifteenPointOne - ? 'directive @specifiedBy(url: String!) on SCALAR' - : ''} - directive @deprecated( - reason: String = "No longer supported" - ) on FIELD_DEFINITION | ENUM_VALUE - directive @include( - if: String = "Included when true." - ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - directive @skip( - if: String = "Skipped when true." - ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT - - directive @key(fields: _FieldSet!) on OBJECT | INTERFACE - directive @external on FIELD_DEFINITION - directive @requires(fields: _FieldSet!) on FIELD_DEFINITION - directive @provides(fields: _FieldSet!) on FIELD_DEFINITION - directive @extends on OBJECT | INTERFACE - - scalar _Any - scalar _FieldSet - - union _Entity - - type _Service { - sdl: String - } - - schema { - query: RootQuery - mutation: RootMutation - } - - type RootQuery { - _service: _Service! - _entities(representations: [_Any!]!): [_Entity]! - product: Product - } - - type Product @extends @key(fields: "sku") { - sku: String @external - } - - type RootMutation { - updateProduct: Product - } - `; - - const normalized = normalizeTypeDefs(typeDefsToNormalize); - - expect(normalized).toMatchInlineSnapshot(` - extend type Query { - product: Product - } - - extend type Product @key(fields: "sku") { - sku: String @external - } - - extend type Mutation { - updateProduct: Product - } - `); - }); - - it('should allow schema describing default types', () => { - const typeDefsToNormalize = gql` - schema { - query: Query - mutation: Mutation - } - - type Query { - product: Product - } - - type Product @extends @key(fields: "sku") { - sku: String @external - } - - type Mutation { - updateProduct: Product - } - `; - - const normalized = normalizeTypeDefs(typeDefsToNormalize); - - expect(normalized).toMatchInlineSnapshot(` - extend type Query { - product: Product - } - - extend type Product @key(fields: "sku") { - sku: String @external - } - - extend type Mutation { - updateProduct: Product - } - `); - }); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/__tests__/tsconfig.json b/gateway/node_modules/@apollo/federation/src/composition/__tests__/tsconfig.json deleted file mode 100644 index 4a90c6e..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/__tests__/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../../../tsconfig.test.base", - "compilerOptions": { - "strictNullChecks": false - }, - "include": ["**/*"], - "references": [{ "path": "../../../../../" }] -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/__tests__/utils.test.ts b/gateway/node_modules/@apollo/federation/src/composition/__tests__/utils.test.ts deleted file mode 100644 index 90164b0..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/__tests__/utils.test.ts +++ /dev/null @@ -1,88 +0,0 @@ -import gql from 'graphql-tag'; -import deepFreeze from 'deep-freeze'; -import { stripExternalFieldsFromTypeDefs } from '../utils'; -import { astSerializer } from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(astSerializer); - -describe('Composition utility functions', () => { - describe('stripExternalFieldsFromTypeDefs', () => { - it('returns a new DocumentNode with @external fields removed as well as information about the removed fields', () => { - const typeDefs = gql` - type Query { - product: Product - } - - extend type Product @key(fields: "sku") { - sku: String @external - } - - type Mutation { - updateProduct: Product - } - - extend interface Account @key(fields: "id") { - id: ID! @external - } - `; - - const { - typeDefsWithoutExternalFields, - strippedFields, - } = stripExternalFieldsFromTypeDefs(typeDefs, 'serviceA'); - - expect(typeDefsWithoutExternalFields).toMatchInlineSnapshot(` - type Query { - product: Product - } - - extend type Product @key(fields: "sku") - - type Mutation { - updateProduct: Product - } - - extend interface Account @key(fields: "id") - `); - - expect(strippedFields).toMatchInlineSnapshot(` - Array [ - Object { - "field": sku: String @external, - "parentTypeName": "Product", - "serviceName": "serviceA", - }, - Object { - "field": id: ID! @external, - "parentTypeName": "Account", - "serviceName": "serviceA", - }, - ] - `); - }); - - it("doesn't mutate the input DocumentNode", () => { - const typeDefs = gql` - type Query { - product: Product - } - - extend type Product @key(fields: "sku") { - sku: String @external - } - - type Mutation { - updateProduct: Product - } - `; - - deepFreeze(typeDefs); - - // Assert that mutation does, in fact, throw - expect(() => (typeDefs.blah = [])).toThrow(); - expect(() => - stripExternalFieldsFromTypeDefs(typeDefs, 'serviceA'), - ).not.toThrow(); - }); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/compose.ts b/gateway/node_modules/@apollo/federation/src/composition/compose.ts deleted file mode 100644 index f5693e6..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/compose.ts +++ /dev/null @@ -1,659 +0,0 @@ -import 'apollo-server-env'; -import { - GraphQLSchema, - extendSchema, - Kind, - isTypeDefinitionNode, - isTypeExtensionNode, - GraphQLError, - GraphQLNamedType, - isObjectType, - FieldDefinitionNode, - InputValueDefinitionNode, - DocumentNode, - GraphQLObjectType, - specifiedDirectives, - TypeDefinitionNode, - DirectiveDefinitionNode, - TypeExtensionNode, - ObjectTypeDefinitionNode, - NamedTypeNode, -} from 'graphql'; -import { transformSchema } from 'apollo-graphql'; -import federationDirectives from '../directives'; -import { - findDirectivesOnTypeOrField, - isStringValueNode, - parseSelections, - mapFieldNamesToServiceName, - stripExternalFieldsFromTypeDefs, - typeNodesAreEquivalent, - mapValues, - isFederationDirective, - executableDirectiveLocations, - stripTypeSystemDirectivesFromTypeDefs, - defaultRootOperationNameLookup, - getFederationMetadata, -} from './utils'; -import { - ServiceDefinition, - ExternalFieldDefinition, - ServiceNameToKeyDirectivesMap, - FederationType, - FederationField, - FederationDirective, -} from './types'; -import { validateSDL } from 'graphql/validation/validate'; -import { compositionRules } from './rules'; - -const EmptyQueryDefinition = { - kind: Kind.OBJECT_TYPE_DEFINITION, - name: { kind: Kind.NAME, value: defaultRootOperationNameLookup.query }, - fields: [], - serviceName: null, -}; -const EmptyMutationDefinition = { - kind: Kind.OBJECT_TYPE_DEFINITION, - name: { kind: Kind.NAME, value: defaultRootOperationNameLookup.mutation }, - fields: [], - serviceName: null, -}; - -// Map of all type definitions to eventually be passed to extendSchema -interface TypeDefinitionsMap { - [name: string]: TypeDefinitionNode[]; -} -// Map of all type extensions to eventually be passed to extendSchema -interface TypeExtensionsMap { - [name: string]: TypeExtensionNode[]; -} - -// Map of all directive definitions to eventually be passed to extendSchema -interface DirectiveDefinitionsMap { - [name: string]: { [serviceName: string]: DirectiveDefinitionNode }; -} - -/** - * A map of base types to their owning service. Used by query planner to direct traffic. - * This contains the base type's "owner". Any fields that extend this type in another service - * are listed under "extensionFieldsToOwningServiceMap". extensionFieldsToOwningServiceMap are in the format { myField: my-service-name } - * - * Example resulting typeToServiceMap shape: - * - * const typeToServiceMap = { - * Product: { - * serviceName: "ProductService", - * extensionFieldsToOwningServiceMap: { - * reviews: "ReviewService", // Product.reviews comes from the ReviewService - * dimensions: "ShippingService", - * weight: "ShippingService" - * } - * } - * } - */ -interface TypeToServiceMap { - [typeName: string]: { - owningService?: string; - extensionFieldsToOwningServiceMap: { [fieldName: string]: string }; - }; -} - -/* - * Map of types to their key directives (maintains association to their services) - * - * Example resulting KeyDirectivesMap shape: - * - * const keyDirectives = { - * Product: { - * serviceA: ["sku", "upc"] - * serviceB: ["color {id value}"] // Selection node simplified for readability - * } - * } - */ -export interface KeyDirectivesMap { - [typeName: string]: ServiceNameToKeyDirectivesMap; -} - -/** - * A set of type names that have been determined to be a value type, a type - * shared across at least 2 services. - */ -type ValueTypes = Set; - -export type ComposedGraphQLSchema = GraphQLSchema & { - extensions: { serviceList: ServiceDefinition[] } -}; -/** - * Loop over each service and process its typeDefs (`definitions`) - * - build up typeToServiceMap - * - push individual definitions onto either typeDefinitionsMap or typeExtensionsMap - */ -export function buildMapsFromServiceList(serviceList: ServiceDefinition[]) { - const typeDefinitionsMap: TypeDefinitionsMap = Object.create(null); - const typeExtensionsMap: TypeExtensionsMap = Object.create(null); - const directiveDefinitionsMap: DirectiveDefinitionsMap = Object.create(null); - const typeToServiceMap: TypeToServiceMap = Object.create(null); - const externalFields: ExternalFieldDefinition[] = []; - const keyDirectivesMap: KeyDirectivesMap = Object.create(null); - const valueTypes: ValueTypes = new Set(); - - for (const { typeDefs, name: serviceName } of serviceList) { - // Build a new SDL with @external fields removed, as well as information about - // the fields that were removed. - const { - typeDefsWithoutExternalFields, - strippedFields, - } = stripExternalFieldsFromTypeDefs(typeDefs, serviceName); - - externalFields.push(...strippedFields); - - // Type system directives from downstream services are not a concern of the - // gateway, but rather the services on which the fields live which serve - // those types. In other words, its up to an implementing service to - // act on such directives, not the gateway. - const typeDefsWithoutTypeSystemDirectives = - stripTypeSystemDirectivesFromTypeDefs(typeDefsWithoutExternalFields); - - for (const definition of typeDefsWithoutTypeSystemDirectives.definitions) { - if ( - definition.kind === Kind.OBJECT_TYPE_DEFINITION || - definition.kind === Kind.OBJECT_TYPE_EXTENSION - ) { - const typeName = definition.name.value; - - for (const keyDirective of findDirectivesOnTypeOrField( - definition, - 'key', - )) { - if ( - keyDirective.arguments && - isStringValueNode(keyDirective.arguments[0].value) - ) { - // Initialize the entry for this type if necessary - keyDirectivesMap[typeName] = keyDirectivesMap[typeName] || {}; - // Initialize the entry for this service if necessary - keyDirectivesMap[typeName][serviceName] = - keyDirectivesMap[typeName][serviceName] || []; - // Add @key metadata to the array - keyDirectivesMap[typeName][serviceName].push( - parseSelections(keyDirective.arguments[0].value.value), - ); - } - } - } - - if (isTypeDefinitionNode(definition)) { - const typeName = definition.name.value; - /** - * This type is a base definition (not an extension). If this type is already in the typeToServiceMap, then - * 1. It was declared by a previous service, but this newer one takes precedence, or... - * 2. It was extended by a service before declared - */ - if (!typeToServiceMap[typeName]) { - typeToServiceMap[typeName] = { - extensionFieldsToOwningServiceMap: Object.create(null), - }; - } - - typeToServiceMap[typeName].owningService = serviceName; - - /** - * If this type already exists in the definitions map, push this definition to the array (newer defs - * take precedence). If the types are determined to be identical, add the type name - * to the valueTypes Set. - * - * If not, create the definitions array and add it to the typeDefinitionsMap. - */ - if (typeDefinitionsMap[typeName]) { - const isValueType = typeNodesAreEquivalent( - typeDefinitionsMap[typeName][ - typeDefinitionsMap[typeName].length - 1 - ], - definition, - ); - - if (isValueType) { - valueTypes.add(typeName); - } - - typeDefinitionsMap[typeName].push({ ...definition, serviceName }); - } else { - typeDefinitionsMap[typeName] = [{ ...definition, serviceName }]; - } - } else if (isTypeExtensionNode(definition)) { - const typeName = definition.name.value; - - /** - * This definition is an extension of an OBJECT type defined in another service. - * TODO: handle extensions of non-object types? - */ - if ( - definition.kind === Kind.OBJECT_TYPE_EXTENSION || - definition.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION - ) { - if (!definition.fields) break; - const fields = mapFieldNamesToServiceName< - FieldDefinitionNode | InputValueDefinitionNode - >(definition.fields, serviceName); - - /** - * If the type already exists in the typeToServiceMap, add the extended fields. If not, create the object - * and add the extensionFieldsToOwningServiceMap, but don't add a serviceName. That will be added once that service - * definition is processed. - */ - if (typeToServiceMap[typeName]) { - typeToServiceMap[typeName].extensionFieldsToOwningServiceMap = { - ...typeToServiceMap[typeName].extensionFieldsToOwningServiceMap, - ...fields, - }; - } else { - typeToServiceMap[typeName] = { - extensionFieldsToOwningServiceMap: fields, - }; - } - } - - if (definition.kind === Kind.ENUM_TYPE_EXTENSION) { - if (!definition.values) break; - - const values = mapFieldNamesToServiceName( - definition.values, - serviceName, - ); - - if (typeToServiceMap[typeName]) { - typeToServiceMap[typeName].extensionFieldsToOwningServiceMap = { - ...typeToServiceMap[typeName].extensionFieldsToOwningServiceMap, - ...values, - }; - } else { - typeToServiceMap[typeName] = { - extensionFieldsToOwningServiceMap: values, - }; - } - } - - /** - * If an extension for this type already exists in the extensions map, push this extension to the - * array (since a type can be extended by multiple services). If not, create the extensions array - * and add it to the typeExtensionsMap. - */ - if (typeExtensionsMap[typeName]) { - typeExtensionsMap[typeName].push({ ...definition, serviceName }); - } else { - typeExtensionsMap[typeName] = [{ ...definition, serviceName }]; - } - } else if (definition.kind === Kind.DIRECTIVE_DEFINITION) { - const directiveName = definition.name.value; - - // The composed schema should only contain directives and their - // ExecutableDirectiveLocations. This filters out any TypeSystemDirectiveLocations. - // A new DirectiveDefinitionNode with this filtered list will be what is - // added to the schema. - const executableLocations = definition.locations.filter(location => - executableDirectiveLocations.includes(location.value), - ); - - // If none of the directive's locations are executable, we don't need to - // include it in the composed schema at all. - if (executableLocations.length === 0) continue; - - const definitionWithExecutableLocations: DirectiveDefinitionNode = { - ...definition, - locations: executableLocations, - }; - - if (directiveDefinitionsMap[directiveName]) { - directiveDefinitionsMap[directiveName][ - serviceName - ] = definitionWithExecutableLocations; - } else { - directiveDefinitionsMap[directiveName] = { - [serviceName]: definitionWithExecutableLocations, - }; - } - } - } - } - - // Since all Query/Mutation definitions in service schemas are treated as - // extensions, we don't have a Query or Mutation DEFINITION in the definitions - // list. Without a Query/Mutation definition, we can't _extend_ the type. - // extendSchema will complain about this. We can't add an empty - // GraphQLObjectType to the schema constructor, so we add an empty definition - // here. We only add mutation if there is a mutation extension though. - if (!typeDefinitionsMap.Query) - typeDefinitionsMap.Query = [EmptyQueryDefinition]; - if (typeExtensionsMap.Mutation && !typeDefinitionsMap.Mutation) - typeDefinitionsMap.Mutation = [EmptyMutationDefinition]; - - return { - typeToServiceMap, - typeDefinitionsMap, - typeExtensionsMap, - directiveDefinitionsMap, - externalFields, - keyDirectivesMap, - valueTypes, - }; -} - -export function buildSchemaFromDefinitionsAndExtensions({ - typeDefinitionsMap, - typeExtensionsMap, - directiveDefinitionsMap, -}: { - typeDefinitionsMap: TypeDefinitionsMap; - typeExtensionsMap: TypeExtensionsMap; - directiveDefinitionsMap: DirectiveDefinitionsMap; -}) { - let errors: GraphQLError[] | undefined = undefined; - - let schema = new GraphQLSchema({ - query: undefined, - directives: [...specifiedDirectives, ...federationDirectives], - }); - - // This interface and predicate is a TS / graphql-js workaround for now while - // we're using a local graphql version < v15. This predicate _could_ be: - // `node is ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode` in the - // future to be more semantic. However this gives us type safety and flexibility - // for now. - interface HasInterfaces { - interfaces?: ObjectTypeDefinitionNode['interfaces']; - } - - function nodeHasInterfaces(node: any): node is HasInterfaces { - return 'interfaces' in node; - } - - // Extend the blank schema with the base type definitions (as an AST node) - const definitionsDocument: DocumentNode = { - kind: Kind.DOCUMENT, - definitions: [ - ...Object.values(typeDefinitionsMap).flatMap(typeDefinitions => { - // See if any of our Objects or Interfaces implement any interfaces at all. - // If not, we can return early. - if (!typeDefinitions.some(nodeHasInterfaces)) return typeDefinitions; - - const uniqueInterfaces: Map< - string, - NamedTypeNode - > = (typeDefinitions as HasInterfaces[]).reduce( - (map, objectTypeDef) => { - objectTypeDef.interfaces?.forEach((iface) => - map.set(iface.name.value, iface), - ); - return map; - }, - new Map(), - ); - - // No interfaces, no aggregation - just return what we got. - if (uniqueInterfaces.size === 0) return typeDefinitions; - - const [first, ...rest] = typeDefinitions; - - return [ - ...rest, - { - ...first, - interfaces: Array.from(uniqueInterfaces.values()), - }, - ]; - - }), - ...Object.values(directiveDefinitionsMap).map( - definitions => Object.values(definitions)[0], - ), - ], - }; - - errors = validateSDL(definitionsDocument, schema, compositionRules); - schema = extendSchema(schema, definitionsDocument, { assumeValidSDL: true }); - - // Extend the schema with the extension definitions (as an AST node) - const extensionsDocument: DocumentNode = { - kind: Kind.DOCUMENT, - definitions: Object.values(typeExtensionsMap).flat(), - }; - - errors.push(...validateSDL(extensionsDocument, schema, compositionRules)); - - schema = extendSchema(schema, extensionsDocument, { assumeValidSDL: true }); - - // Remove federation directives from the final schema - schema = new GraphQLSchema({ - ...schema.toConfig(), - directives: [ - ...schema.getDirectives().filter(x => !isFederationDirective(x)), - ], - }); - - return { schema, errors }; -} - -/** - * Using the various information we've collected about the schema, augment the - * `schema` itself with `federation` metadata to the types and fields - */ -export function addFederationMetadataToSchemaNodes({ - schema, - typeToServiceMap, - externalFields, - keyDirectivesMap, - valueTypes, - directiveDefinitionsMap, -}: { - schema: GraphQLSchema; - typeToServiceMap: TypeToServiceMap; - externalFields: ExternalFieldDefinition[]; - keyDirectivesMap: KeyDirectivesMap; - valueTypes: ValueTypes; - directiveDefinitionsMap: DirectiveDefinitionsMap; -}) { - for (const [ - typeName, - { owningService, extensionFieldsToOwningServiceMap }, - ] of Object.entries(typeToServiceMap)) { - const namedType = schema.getType(typeName) as GraphQLNamedType; - if (!namedType) continue; - - // Extend each type in the GraphQLSchema with the serviceName that owns it - // and the key directives that belong to it - const isValueType = valueTypes.has(typeName); - const serviceName = isValueType ? null : owningService; - - const federationMetadata: FederationType = { - ...getFederationMetadata(namedType), - serviceName, - isValueType, - ...(keyDirectivesMap[typeName] && { - keys: keyDirectivesMap[typeName], - }), - } - - namedType.extensions = { - ...namedType.extensions, - federation: federationMetadata, - }; - - // For object types, add metadata for all the @provides directives from its fields - if (isObjectType(namedType)) { - for (const field of Object.values(namedType.getFields())) { - const [providesDirective] = findDirectivesOnTypeOrField( - field.astNode, - 'provides', - ); - - if ( - providesDirective && - providesDirective.arguments && - isStringValueNode(providesDirective.arguments[0].value) - ) { - const fieldFederationMetadata: FederationField = { - ...getFederationMetadata(field), - serviceName, - provides: parseSelections( - providesDirective.arguments[0].value.value, - ), - belongsToValueType: isValueType, - } - - field.extensions = { - ...field.extensions, - federation: fieldFederationMetadata - }; - } - } - } - - /** - * For extension fields, do 2 things: - * 1. Add serviceName metadata to all fields that belong to a type extension - * 2. add metadata from the @requires directive for each field extension - */ - for (const [fieldName, extendingServiceName] of Object.entries( - extensionFieldsToOwningServiceMap, - )) { - // TODO: Why don't we need to check for non-object types here - if (isObjectType(namedType)) { - const field = namedType.getFields()[fieldName]; - - const fieldFederationMetadata: FederationField = { - ...getFederationMetadata(field), - serviceName: extendingServiceName, - } - - field.extensions = { - ...field.extensions, - federation: fieldFederationMetadata, - }; - - const [requiresDirective] = findDirectivesOnTypeOrField( - field.astNode, - 'requires', - ); - - if ( - requiresDirective && - requiresDirective.arguments && - isStringValueNode(requiresDirective.arguments[0].value) - ) { - const fieldFederationMetadata: FederationField = { - ...getFederationMetadata(field), - requires: parseSelections( - requiresDirective.arguments[0].value.value, - ), - } - - field.extensions = { - ...field.extensions, - federation: fieldFederationMetadata, - }; - } - } - } - } - // add externals metadata - for (const field of externalFields) { - const namedType = schema.getType(field.parentTypeName); - if (!namedType) continue; - - const existingMetadata = getFederationMetadata(namedType); - const typeFederationMetadata: FederationType = { - ...existingMetadata, - externals: { - ...existingMetadata?.externals, - [field.serviceName]: [ - ...(existingMetadata?.externals?.[field.serviceName] || []), - field, - ], - }, - }; - - namedType.extensions = { - ...namedType.extensions, - federation: typeFederationMetadata, - }; - } - - // add all definitions of a specific directive for validation later - for (const directiveName of Object.keys(directiveDefinitionsMap)) { - const directive = schema.getDirective(directiveName); - if (!directive) continue; - - const directiveFederationMetadata: FederationDirective = { - ...getFederationMetadata(directive), - directiveDefinitions: directiveDefinitionsMap[directiveName], - } - - directive.extensions = { - ...directive.extensions, - federation: directiveFederationMetadata, - } - } -} - -export function composeServices(services: ServiceDefinition[]) { - const { - typeToServiceMap, - typeDefinitionsMap, - typeExtensionsMap, - directiveDefinitionsMap, - externalFields, - keyDirectivesMap, - valueTypes, - } = buildMapsFromServiceList(services); - - let { schema, errors } = buildSchemaFromDefinitionsAndExtensions({ - typeDefinitionsMap, - typeExtensionsMap, - directiveDefinitionsMap, - }); - - // TODO: We should fix this to take non-default operation root types in - // implementing services into account. - schema = new GraphQLSchema({ - ...schema.toConfig(), - ...mapValues(defaultRootOperationNameLookup, typeName => - typeName - ? (schema.getType(typeName) as GraphQLObjectType) - : undefined, - ), - extensions: { - serviceList: services - } - }); - - // If multiple type definitions and extensions for the same type implement the - // same interface, it will get added to the constructed object multiple times, - // resulting in a schema validation error. We therefore need to remove - // duplicate interfaces from object types manually. - schema = transformSchema(schema, type => { - if (isObjectType(type)) { - const config = type.toConfig(); - return new GraphQLObjectType({ - ...config, - interfaces: Array.from(new Set(config.interfaces)), - }); - } - return undefined; - }); - - addFederationMetadataToSchemaNodes({ - schema, - typeToServiceMap, - externalFields, - keyDirectivesMap, - valueTypes, - directiveDefinitionsMap, - }); - - /** - * At the end, we're left with a full GraphQLSchema that _also_ has `serviceName` fields for every type, - * and every field that was extended. Fields that were _not_ extended (added on the base type by the owner), - * there is no `serviceName`, and we should refer to the type's `serviceName` - */ - return { schema: schema as ComposedGraphQLSchema, errors }; -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/composeAndValidate.ts b/gateway/node_modules/@apollo/federation/src/composition/composeAndValidate.ts deleted file mode 100644 index d53229b..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/composeAndValidate.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { composeServices } from './compose'; -import { - validateComposedSchema, - validateServicesBeforeComposition, - validateServicesBeforeNormalization, -} from './validate'; -import { ServiceDefinition } from './types'; -import { normalizeTypeDefs } from './normalize'; -import { printComposedSdl } from '../service/printComposedSdl'; - -export function composeAndValidate(serviceList: ServiceDefinition[]) { - const errors = validateServicesBeforeNormalization(serviceList); - - const normalizedServiceList = serviceList.map(({ name, typeDefs }) => ({ - name, - typeDefs: normalizeTypeDefs(typeDefs), - })); - - // generate errors or warnings of the individual services - errors.push(...validateServicesBeforeComposition(normalizedServiceList)); - - // generate a schema and any errors or warnings - const compositionResult = composeServices(normalizedServiceList); - errors.push(...compositionResult.errors); - - // validate the composed schema based on service information - errors.push( - ...validateComposedSchema({ - schema: compositionResult.schema, - serviceList, - }), - ); - - // We shouldn't try to print the SDL if there were errors during composition - const composedSdl = - errors.length === 0 - ? printComposedSdl(compositionResult.schema, serviceList) - : undefined; - - // TODO remove the warnings array once no longer used by clients - return { - schema: compositionResult.schema, - warnings: [], - errors, - composedSdl, - }; -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/index.ts b/gateway/node_modules/@apollo/federation/src/composition/index.ts deleted file mode 100644 index 58c910b..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './compose'; -export * from './composeAndValidate'; -export * from './types'; -export { compositionRules } from './rules'; -export { normalizeTypeDefs } from './normalize'; -export { defaultRootOperationNameLookup } from './utils'; diff --git a/gateway/node_modules/@apollo/federation/src/composition/normalize.ts b/gateway/node_modules/@apollo/federation/src/composition/normalize.ts deleted file mode 100644 index 9f8fcac..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/normalize.ts +++ /dev/null @@ -1,321 +0,0 @@ -import { DefaultRootOperationTypeName } from './types'; -import { - DocumentNode, - visit, - ObjectTypeDefinitionNode, - ObjectTypeExtensionNode, - Kind, - InterfaceTypeDefinitionNode, - VisitFn, - specifiedDirectives, -} from 'graphql'; -import { - findDirectivesOnTypeOrField, - defKindToExtKind, - reservedRootFields, - defaultRootOperationNameLookup -} from './utils'; -import federationDirectives from '../directives'; - -export function normalizeTypeDefs(typeDefs: DocumentNode) { - // The order of this is important - `stripCommonPrimitives` must come after - // `defaultRootOperationTypes` because it depends on the `Query` type being named - // its default: `Query`. - return stripCommonPrimitives( - defaultRootOperationTypes( - replaceExtendedDefinitionsWithExtensions(typeDefs), - ), - ); -} - -export function defaultRootOperationTypes( - typeDefs: DocumentNode, -): DocumentNode { - // Array of default root operation names - const defaultRootOperationNames = Object.values( - defaultRootOperationNameLookup, - ); - - // Map of the given root operation type names to their respective default operation - // type names, i.e. {RootQuery: 'Query'} - let rootOperationTypeMap: { - [key: string]: DefaultRootOperationTypeName; - } = Object.create(null); - - let hasSchemaDefinitionOrExtension = false; - visit(typeDefs, { - OperationTypeDefinition(node) { - // If we find at least one root operation type definition, we know the user has - // specified either a schema definition or extension. - hasSchemaDefinitionOrExtension = true; - // Build the map of root operation type name to its respective default - rootOperationTypeMap[node.type.name.value] = - defaultRootOperationNameLookup[node.operation]; - }, - }); - - // In this case, there's no defined schema or schema extension, so we use defaults - if (!hasSchemaDefinitionOrExtension) { - rootOperationTypeMap = { - Query: 'Query', - Mutation: 'Mutation', - Subscription: 'Subscription', - }; - } - - // A conflicting default definition exists when the user provides a schema - // definition, but also defines types that use the default root operation - // names (Query, Mutation, Subscription). Those types need to be removed. - let schemaWithoutConflictingDefaultDefinitions; - if (!hasSchemaDefinitionOrExtension) { - // If no schema definition or extension exists, then there aren't any - // conflicting defaults to worry about. - schemaWithoutConflictingDefaultDefinitions = typeDefs; - } else { - // If the user provides a schema definition or extension, then using default - // root operation names is considered an error for composition. This visit - // drops the invalid type definitions/extensions altogether, as well as - // fields that reference them. - // - // Example: - // - // schema { - // query: RootQuery - // } - // - // type Query { <--- this type definition is invalid (as well as Mutation or Subscription) - // ... - // } - schemaWithoutConflictingDefaultDefinitions = visit(typeDefs, { - ObjectTypeDefinition(node) { - if ( - (defaultRootOperationNames as string[]).includes(node.name.value) && - !rootOperationTypeMap[node.name.value] - ) { - return null; - } - return; - }, - ObjectTypeExtension(node) { - if ( - (defaultRootOperationNames as string[]).includes(node.name.value) && - !rootOperationTypeMap[node.name.value] - ) { - return null; - } - return; - }, - // This visitor handles the case where: - // 1) A schema definition or extension is provided by the user - // 2) A field exists that is of a _default_ root operation type. (Query, Mutation, Subscription) - // - // Example: - // - // schema { - // mutation: RootMutation - // } - // - // type RootMutation { - // updateProduct: Query <--- remove this field altogether - // } - FieldDefinition(node) { - if ( - node.type.kind === Kind.NAMED_TYPE && - (defaultRootOperationNames as string[]).includes(node.type.name.value) - ) { - return null; - } - - if ( - node.type.kind === Kind.NON_NULL_TYPE && - node.type.type.kind === Kind.NAMED_TYPE && - (defaultRootOperationNames as string[]).includes( - node.type.type.name.value, - ) - ) { - return null; - } - return; - }, - }); - } - - const schemaWithDefaultRootTypes = visit( - schemaWithoutConflictingDefaultDefinitions, - { - // Schema definitions and extensions are extraneous since we're transforming - // the root operation types to their defaults. - SchemaDefinition() { - return null; - }, - SchemaExtension() { - return null; - }, - ObjectTypeDefinition(node) { - if ( - node.name.value in rootOperationTypeMap || - (defaultRootOperationNames as string[]).includes(node.name.value) - ) { - return { - ...node, - name: { - ...node.name, - value: rootOperationTypeMap[node.name.value] || node.name.value, - }, - kind: Kind.OBJECT_TYPE_EXTENSION, - }; - } - return; - }, - // schema { - // query: RootQuery - // } - // - // extend type RootQuery { <--- update this to `extend type Query` - // ... - // } - ObjectTypeExtension(node) { - if ( - node.name.value in rootOperationTypeMap || - (defaultRootOperationNames as string[]).includes(node.name.value) - ) { - return { - ...node, - name: { - ...node.name, - value: rootOperationTypeMap[node.name.value] || node.name.value, - }, - }; - } - return; - }, - // Corresponding NamedTypes must also make the name switch, in the case that - // they reference a root operation type that we've transformed - // - // schema { - // query: RootQuery - // mutation: RootMutation - // } - // - // type RootQuery { - // ... - // } - // - // type RootMutation { - // updateProduct: RootQuery <--- rename `RootQuery` to `Query` - // } - NamedType(node) { - if (node.name.value in rootOperationTypeMap) { - return { - ...node, - name: { - ...node.name, - value: rootOperationTypeMap[node.name.value], - }, - }; - } - return; - }, - }, - ); - - return schemaWithDefaultRootTypes; -} - -// type definitions with the @extends directive should be treated -// as type extensions. -export function replaceExtendedDefinitionsWithExtensions( - typeDefs: DocumentNode, -) { - const typeDefsWithExtendedTypesReplaced = visit(typeDefs, { - ObjectTypeDefinition: visitor, - InterfaceTypeDefinition: visitor, - }); - - function visitor( - node: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, - ) { - const isExtensionDefinition = - findDirectivesOnTypeOrField(node, 'extends').length > 0; - - if (!isExtensionDefinition) { - return node; - } - - const filteredDirectives = - node.directives && - node.directives.filter(directive => directive.name.value !== 'extends'); - - return { - ...node, - ...(filteredDirectives && { directives: filteredDirectives }), - kind: defKindToExtKind[node.kind], - }; - } - - return typeDefsWithExtendedTypesReplaced; -} - -// For non-ApolloServer libraries that support federation, this allows a -// library to report the entire schema's SDL rather than an awkward, stripped out -// subset of the schema. Generally there's no need to include the federation -// primitives, but in many cases it's more difficult to exclude them. -// -// This removes the following from a GraphQL Document: -// directives: @external, @key, @requires, @provides, @extends, @skip, @include, @deprecated, @specifiedBy -// scalars: _Any, _FieldSet -// union: _Entity -// object type: _Service -// Query fields: _service, _entities -export function stripCommonPrimitives(document: DocumentNode) { - const typeDefinitionVisitor: VisitFn< - any, - ObjectTypeDefinitionNode | ObjectTypeExtensionNode - > = (node) => { - // Remove the `_entities` and `_service` fields from the `Query` type - if (node.name.value === defaultRootOperationNameLookup.query) { - const filteredFieldDefinitions = node.fields?.filter( - (fieldDefinition) => - !reservedRootFields.includes(fieldDefinition.name.value), - ); - - // If the 'Query' type is now empty just remove it - if (!filteredFieldDefinitions || filteredFieldDefinitions.length === 0) { - return null; - } - - return { - ...node, - fields: filteredFieldDefinitions, - }; - } - - // Remove the _Service type from the document - const isFederationType = node.name.value === '_Service'; - return isFederationType ? null : node; - }; - - return visit(document, { - // Remove all common directive definitions from the document - DirectiveDefinition(node) { - const isCommonDirective = [...federationDirectives, ...specifiedDirectives].some( - (directive) => directive.name === node.name.value, - ); - return isCommonDirective ? null : node; - }, - // Remove all federation scalar definitions from the document - ScalarTypeDefinition(node) { - const isFederationScalar = ['_Any', '_FieldSet'].includes( - node.name.value, - ); - return isFederationScalar ? null : node; - }, - // Remove all federation union definitions from the document - UnionTypeDefinition(node) { - const isFederationUnion = node.name.value === "_Entity"; - return isFederationUnion ? null : node; - }, - ObjectTypeDefinition: typeDefinitionVisitor, - ObjectTypeExtension: typeDefinitionVisitor, - }); -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/rules.ts b/gateway/node_modules/@apollo/federation/src/composition/rules.ts deleted file mode 100644 index f4ed37e..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/rules.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { specifiedSDLRules } from 'graphql/validation/specifiedRules'; - -/** - * Since this module has overlapping names in the two modules (graphql-js and - * our own, local validation rules) which we are importing from, we - * intentionally are very explicit about the suffixes of imported members here, - * so that the intention is clear. - * - * First, we'll import validation rules from graphql-js which we'll omit and - * replace with our own validation rules. As noted above, we'll use aliases - * with 'FromGraphqlJs' suffixes for clarity. - */ - -import { - UniqueDirectivesPerLocationRule as UniqueDirectivesPerLocationRuleFromGraphqlJs, -} from 'graphql'; -import { - UniqueTypeNames as UniqueTypeNamesFromGraphqlJs, -} from 'graphql/validation/rules/UniqueTypeNames'; -import { - UniqueEnumValueNames as UniqueEnumValueNamesFromGraphqlJs, -} from 'graphql/validation/rules/UniqueEnumValueNames'; -import { - PossibleTypeExtensions as PossibleTypeExtensionsFromGraphqlJs, -} from 'graphql/validation/rules/PossibleTypeExtensions'; -import { - UniqueFieldDefinitionNames as UniqueFieldDefinitionNamesFromGraphqlJs, -} from 'graphql/validation/rules/UniqueFieldDefinitionNames'; - -/** - * Then, we'll import our own validation rules to take the place of those that - * we'll be customizing, taking care to alias them all to the same name with - * "FromComposition" suffixes. - */ -import { - UniqueTypeNamesWithFields as UniqueTypeNamesWithFieldsFromComposition, - MatchingEnums as MatchingEnumsFromComposition, - PossibleTypeExtensions as PossibleTypeExtensionsFromComposition, - UniqueFieldDefinitionNames as UniqueFieldDefinitionsNamesFromComposition, - UniqueUnionTypes as UniqueUnionTypesFromComposition, - } from './validate/sdl'; - -const omit = [ - UniqueDirectivesPerLocationRuleFromGraphqlJs, - UniqueTypeNamesFromGraphqlJs, - UniqueEnumValueNamesFromGraphqlJs, - PossibleTypeExtensionsFromGraphqlJs, - UniqueFieldDefinitionNamesFromGraphqlJs, -]; - -export const compositionRules = specifiedSDLRules - .filter(rule => !omit.includes(rule)) - .concat([ - UniqueFieldDefinitionsNamesFromComposition, - UniqueTypeNamesWithFieldsFromComposition, - MatchingEnumsFromComposition, - UniqueUnionTypesFromComposition, - PossibleTypeExtensionsFromComposition, - ]); diff --git a/gateway/node_modules/@apollo/federation/src/composition/types.ts b/gateway/node_modules/@apollo/federation/src/composition/types.ts deleted file mode 100644 index 182ed0d..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/types.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { - SelectionNode, - DocumentNode, - FieldDefinitionNode, - DirectiveDefinitionNode, -} from 'graphql'; - -export type Maybe = null | undefined | T; - -export type ServiceName = string | null; - -export type DefaultRootOperationTypeName = - | 'Query' - | 'Mutation' - | 'Subscription'; - -export interface ExternalFieldDefinition { - field: FieldDefinitionNode; - parentTypeName: string; - serviceName: string; -} - -export interface ServiceNameToKeyDirectivesMap { - [serviceName: string]: ReadonlyArray[]; -} - -export interface FederationType { - serviceName?: ServiceName; - keys?: ServiceNameToKeyDirectivesMap; - externals?: { - [serviceName: string]: ExternalFieldDefinition[]; - }; - isValueType?: boolean; -} - -export interface FederationField { - serviceName?: ServiceName; - requires?: ReadonlyArray; - provides?: ReadonlyArray; - belongsToValueType?: boolean; -} - -export interface FederationDirective { - directiveDefinitions: { - [serviceName: string]: DirectiveDefinitionNode; - } -} - -export interface ServiceDefinition { - typeDefs: DocumentNode; - name: string; - url?: string; -} - -declare module 'graphql/language/ast' { - interface UnionTypeDefinitionNode { - serviceName?: string | null; - } - interface UnionTypeExtensionNode { - serviceName?: string | null; - } - - interface EnumTypeDefinitionNode { - serviceName?: string | null; - } - - interface EnumTypeExtensionNode { - serviceName?: string | null; - } - - interface ScalarTypeDefinitionNode { - serviceName?: string | null; - } - - interface ScalarTypeExtensionNode { - serviceName?: string | null; - } - - interface ObjectTypeDefinitionNode { - serviceName?: string | null; - } - - interface ObjectTypeExtensionNode { - serviceName?: string | null; - } - - interface InterfaceTypeDefinitionNode { - serviceName?: string | null; - } - - interface InterfaceTypeExtensionNode { - serviceName?: string | null; - } - - interface InputObjectTypeDefinitionNode { - serviceName?: string | null; - } - - interface InputObjectTypeExtensionNode { - serviceName?: string | null; - } -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/utils.ts b/gateway/node_modules/@apollo/federation/src/composition/utils.ts deleted file mode 100644 index 2c0a0ea..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/utils.ts +++ /dev/null @@ -1,583 +0,0 @@ -import 'apollo-server-env'; -import { - InterfaceTypeExtensionNode, - FieldDefinitionNode, - Kind, - StringValueNode, - parse, - OperationDefinitionNode, - NameNode, - DocumentNode, - visit, - ObjectTypeExtensionNode, - DirectiveNode, - GraphQLNamedType, - GraphQLError, - GraphQLSchema, - isObjectType, - GraphQLObjectType, - getNamedType, - GraphQLField, - SelectionNode, - isEqualType, - FieldNode, - TypeDefinitionNode, - InputValueDefinitionNode, - TypeExtensionNode, - BREAK, - print, - ASTNode, - DirectiveDefinitionNode, - GraphQLDirective, - OperationTypeNode, - isDirective, - isNamedType, -} from 'graphql'; -import { - ExternalFieldDefinition, - DefaultRootOperationTypeName, - Maybe, - FederationType, - FederationDirective, - FederationField, -} from './types'; -import federationDirectives from '../directives'; - -export function isStringValueNode(node: any): node is StringValueNode { - return node.kind === Kind.STRING; -} - -// Create a map of { fieldName: serviceName } for each field. -export function mapFieldNamesToServiceName( - fields: ReadonlyArray, - serviceName: string, -) { - return fields.reduce((prev, next) => { - prev[next.name.value] = serviceName; - return prev; - }, Object.create(null)); -} - -export function findDirectivesOnTypeOrField( - node: Maybe, - directiveName: string, -) { - return node && node.directives - ? node.directives.filter( - directive => directive.name.value === directiveName, - ) - : []; -} - -export function stripExternalFieldsFromTypeDefs( - typeDefs: DocumentNode, - serviceName: string, -): { - typeDefsWithoutExternalFields: DocumentNode; - strippedFields: ExternalFieldDefinition[]; -} { - const strippedFields: ExternalFieldDefinition[] = []; - - const typeDefsWithoutExternalFields = visit(typeDefs, { - ObjectTypeExtension: removeExternalFieldsFromExtensionVisitor( - strippedFields, - serviceName, - ), - InterfaceTypeExtension: removeExternalFieldsFromExtensionVisitor( - strippedFields, - serviceName, - ), - }) as DocumentNode; - - return { typeDefsWithoutExternalFields, strippedFields }; -} - -export function stripTypeSystemDirectivesFromTypeDefs(typeDefs: DocumentNode) { - const typeDefsWithoutTypeSystemDirectives = visit(typeDefs, { - Directive(node) { - // The `deprecated` directive is an exceptional case that we want to leave in - if (node.name.value === 'deprecated' || node.name.value === 'specifiedBy') return; - - const isFederationDirective = federationDirectives.some( - ({ name }) => name === node.name.value, - ); - // Returning `null` to a visit will cause it to be removed from the tree. - return isFederationDirective ? undefined : null; - }, - }) as DocumentNode; - - return typeDefsWithoutTypeSystemDirectives; -} - -/** - * Returns a closure that strips fields marked with `@external` and adds them - * to an array. - * @param collector - * @param serviceName - */ -function removeExternalFieldsFromExtensionVisitor< - T extends InterfaceTypeExtensionNode | ObjectTypeExtensionNode ->(collector: ExternalFieldDefinition[], serviceName: string) { - return (node: T) => { - let fields = node.fields; - if (fields) { - fields = fields.filter(field => { - const externalDirectives = findDirectivesOnTypeOrField( - field, - 'external', - ); - - if (externalDirectives.length > 0) { - collector.push({ - field, - parentTypeName: node.name.value, - serviceName, - }); - return false; - } - return true; - }); - } - return { - ...node, - fields, - }; - }; -} - -export function parseSelections(source: string) { - return (parse(`query { ${source} }`) - .definitions[0] as OperationDefinitionNode).selectionSet.selections; -} - -export function hasMatchingFieldInDirectives({ - directives, - fieldNameToMatch, - namedType, -}: { - directives: DirectiveNode[]; - fieldNameToMatch: String; - namedType: GraphQLNamedType; -}) { - return Boolean( - namedType.astNode && - directives - // for each key directive, get the fields arg - .map(keyDirective => - keyDirective.arguments && - isStringValueNode(keyDirective.arguments[0].value) - ? { - typeName: namedType.astNode!.name.value, - keyArgument: keyDirective.arguments[0].value.value, - } - : null, - ) - // filter out any null/undefined args - .filter(isNotNullOrUndefined) - // flatten all selections of the "fields" arg to a list of fields - .flatMap(selection => parseSelections(selection.keyArgument)) - // find a field that matches the @external field - .some( - field => - field.kind === Kind.FIELD && field.name.value === fieldNameToMatch, - ), - ); -} - -export const logServiceAndType = ( - serviceName: string, - typeName: string, - fieldName?: string, -) => `[${serviceName}] ${typeName}${fieldName ? `.${fieldName} -> ` : ' -> '}`; - -export function logDirective(directiveName: string) { - return `[@${directiveName}] -> `; -} - -// TODO: allow passing of the other args here, rather than just message and code -export function errorWithCode( - code: string, - message: string, - nodes?: ReadonlyArray | ASTNode | undefined, -) { - return new GraphQLError( - message, - nodes, - undefined, - undefined, - undefined, - undefined, - { - code, - }, - ); -} - -export function findTypesContainingFieldWithReturnType( - schema: GraphQLSchema, - node: GraphQLField, -): GraphQLObjectType[] { - const returnType = getNamedType(node.type); - if (!isObjectType(returnType)) return []; - - const containingTypes: GraphQLObjectType[] = []; - const types = schema.getTypeMap(); - for (const selectionSetType of Object.values(types)) { - // Only object types have fields - if (!isObjectType(selectionSetType)) continue; - const allFields = selectionSetType.getFields(); - - // only push types that have a field which returns the returnType - Object.values(allFields).forEach(field => { - const fieldReturnType = getNamedType(field.type); - if (fieldReturnType === returnType) { - containingTypes.push(fieldReturnType); - } - }); - } - return containingTypes; -} - -/** - * Used for finding a field on the `schema` that returns `typeToFind` - * - * Used in validation of external directives to find uses of a field in a - * `@provides` on another type. - */ -export function findFieldsThatReturnType({ - schema, - typeToFind, -}: { - schema: GraphQLSchema; - typeToFind: GraphQLNamedType; -}): GraphQLField[] { - if (!isObjectType(typeToFind)) return []; - - const fieldsThatReturnType: GraphQLField[] = []; - const types = schema.getTypeMap(); - - for (const selectionSetType of Object.values(types)) { - // for our purposes, only object types have fields that we care about. - if (!isObjectType(selectionSetType)) continue; - - const fieldsOnNamedType = selectionSetType.getFields(); - - // push fields that have return `typeToFind` - Object.values(fieldsOnNamedType).forEach(field => { - const fieldReturnType = getNamedType(field.type); - if (fieldReturnType === typeToFind) { - fieldsThatReturnType.push(field); - } - }); - } - return fieldsThatReturnType; -} - -/** - * Searches recursively to see if a selection set includes references to - * `typeToFind.fieldToFind`. - * - * Used in validation of external fields to find where/if a field is referenced - * in a nested selection set for `@requires` - * - * For every selection, look at the root of the selection's type. - * 1. If it's the type we're looking for, check its fields. - * Return true if field matches. Skip to step 3 if not - * 2. If it's not the type we're looking for, skip to step 3 - * 3. Get the return type for each subselection and run this function on the subselection. - */ -export function selectionIncludesField({ - selections, - selectionSetType, - typeToFind, - fieldToFind, -}: { - selections: readonly SelectionNode[]; - selectionSetType: GraphQLObjectType; // type which applies to `selections` - typeToFind: GraphQLObjectType; // type where the `@external` lives - fieldToFind: string; -}): boolean { - for (const selection of selections as FieldNode[]) { - const selectionName: string = selection.name.value; - - // if the selected field matches the fieldname we're looking for, - // and its type is correct, we're done. Return true; - if ( - selectionName === fieldToFind && - isEqualType(selectionSetType, typeToFind) - ) - return true; - - // if the field selection has a subselection, check each field recursively - - // check to make sure the parent type contains the field - const typeIncludesField = - selectionName && - Object.keys(selectionSetType.getFields()).includes(selectionName); - if (!selectionName || !typeIncludesField) continue; - - // get the return type of the selection - const returnType = getNamedType( - selectionSetType.getFields()[selectionName].type, - ); - if (!returnType || !isObjectType(returnType)) continue; - const subselections = - selection.selectionSet && selection.selectionSet.selections; - - // using the return type of a given selection and all the subselections, - // recursively search for matching selections. typeToFind and fieldToFind - // stay the same - if (subselections) { - const selectionDoesIncludeField = selectionIncludesField({ - selectionSetType: returnType, - selections: subselections, - typeToFind, - fieldToFind, - }); - if (selectionDoesIncludeField) return true; - } - } - return false; -} - -/** - * Returns true if a @key directive is found on the type node - * - * @param node TypeDefinitionNode | TypeExtensionNode - * @returns boolean - */ -export function isTypeNodeAnEntity( - node: TypeDefinitionNode | TypeExtensionNode, -) { - let isEntity = false; - - visit(node, { - Directive(directive) { - if (directive.name.value === 'key') { - isEntity = true; - return BREAK; - } - }, - }); - - return isEntity; -} - -/** - * Diff two type nodes. This returns an object consisting of useful properties and their differences - * - name: An array of length 0 or 2. If their type names are different, they will be added to the array. - * (['Product', 'Product']) - * - fields: An entry in the fields object can mean two things: - * 1) a field was found on one type, but not the other (fieldName: ['String!']) - * 2) a common field was found, but their types differ (fieldName: ['String!', 'Int!']) - * - kind: An array of length 0 or 2. If their kinds are different, they will be added to the array. - * (['InputObjectTypeDefinition', 'InterfaceTypeDefinition']) - * - * @param firstNode TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode - * @param secondNode TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode - */ -export function diffTypeNodes( - firstNode: TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode, - secondNode: TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode, -) { - const fieldsDiff: { - [fieldName: string]: string[]; - } = Object.create(null); - - const unionTypesDiff: { - [typeName: string]: boolean; - } = Object.create(null); - - const locationsDiff: Set = new Set(); - - const argumentsDiff: { - [argumentName: string]: string[]; - } = Object.create(null); - - const document: DocumentNode = { - kind: Kind.DOCUMENT, - definitions: [firstNode, secondNode], - }; - - function fieldVisitor(node: FieldDefinitionNode | InputValueDefinitionNode) { - const fieldName = node.name.value; - - const type = print(node.type); - - if (!fieldsDiff[fieldName]) { - fieldsDiff[fieldName] = [type]; - return; - } - - // If we've seen this field twice and the types are the same, remove this - // field from the diff result - const fieldTypes = fieldsDiff[fieldName]; - if (fieldTypes[0] === type) { - delete fieldsDiff[fieldName]; - } else { - fieldTypes.push(type); - } - } - - visit(document, { - FieldDefinition: fieldVisitor, - InputValueDefinition: fieldVisitor, - UnionTypeDefinition(node) { - if (!node.types) return BREAK; - for (const namedTypeNode of node.types) { - const name = namedTypeNode.name.value; - if (unionTypesDiff[name]) { - delete unionTypesDiff[name]; - } else { - unionTypesDiff[name] = true; - } - } - }, - DirectiveDefinition(node) { - node.locations.forEach(location => { - const locationName = location.value; - // If a location already exists in the Set, then we've seen it once. - // This means we can remove it from the final diff, since both directives - // have this location in common. - if (locationsDiff.has(locationName)) { - locationsDiff.delete(locationName); - } else { - locationsDiff.add(locationName); - } - }); - - if (!node.arguments) return; - - // Arguments must have the same name and type. As matches are found, they - // are deleted from the diff. Anything left in the diff after looping - // represents a discrepancy between the two sets of arguments. - node.arguments.forEach(argument => { - const argumentName = argument.name.value; - const printedType = print(argument.type); - if (argumentsDiff[argumentName]) { - if (printedType === argumentsDiff[argumentName][0]) { - // If the existing entry is equal to printedType, it means there's no - // diff, so we can remove the entry from the diff object - delete argumentsDiff[argumentName]; - } else { - argumentsDiff[argumentName].push(printedType); - } - } else { - argumentsDiff[argumentName] = [printedType]; - } - }); - }, - }); - - const typeNameDiff = - firstNode.name.value === secondNode.name.value - ? [] - : [firstNode.name.value, secondNode.name.value]; - - const kindDiff = - firstNode.kind === secondNode.kind ? [] : [firstNode.kind, secondNode.kind]; - - return { - name: typeNameDiff, - kind: kindDiff, - fields: fieldsDiff, - unionTypes: unionTypesDiff, - locations: Array.from(locationsDiff), - args: argumentsDiff, - }; -} - -/** - * A common implementation of diffTypeNodes to ensure two type nodes are equivalent - * - * @param firstNode TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode - * @param secondNode TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode - */ -export function typeNodesAreEquivalent( - firstNode: TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode, - secondNode: TypeDefinitionNode | TypeExtensionNode | DirectiveDefinitionNode, -) { - const { name, kind, fields, unionTypes, locations, args } = diffTypeNodes( - firstNode, - secondNode, - ); - - return ( - name.length === 0 && - kind.length === 0 && - Object.keys(fields).length === 0 && - Object.keys(unionTypes).length === 0 && - locations.length === 0 && - Object.keys(args).length === 0 - ); -} - -/** - * A map of `Kind`s from their definition to their respective extensions - */ -export const defKindToExtKind: { [kind: string]: string } = { - [Kind.SCALAR_TYPE_DEFINITION]: Kind.SCALAR_TYPE_EXTENSION, - [Kind.OBJECT_TYPE_DEFINITION]: Kind.OBJECT_TYPE_EXTENSION, - [Kind.INTERFACE_TYPE_DEFINITION]: Kind.INTERFACE_TYPE_EXTENSION, - [Kind.UNION_TYPE_DEFINITION]: Kind.UNION_TYPE_EXTENSION, - [Kind.ENUM_TYPE_DEFINITION]: Kind.ENUM_TYPE_EXTENSION, - [Kind.INPUT_OBJECT_TYPE_DEFINITION]: Kind.INPUT_OBJECT_TYPE_EXTENSION, -}; - -// Transform an object's values via a callback function -export function mapValues( - object: Record, - callback: (value: T) => U, -): Record { - const result: Record = Object.create(null); - - for (const [key, value] of Object.entries(object)) { - result[key] = callback(value); - } - - return result; -} - -export function isNotNullOrUndefined( - value: T | null | undefined, -): value is T { - return value !== null && typeof value !== 'undefined'; -} - -export const executableDirectiveLocations = [ - 'QUERY', - 'MUTATION', - 'SUBSCRIPTION', - 'FIELD', - 'FRAGMENT_DEFINITION', - 'FRAGMENT_SPREAD', - 'INLINE_FRAGMENT', - 'VARIABLE_DEFINITION', -]; - -export function isFederationDirective(directive: GraphQLDirective): boolean { - return federationDirectives.some(({ name }) => name === directive.name); -} - -export const reservedRootFields = ['_service', '_entities']; - -// Map of OperationTypeNode to its respective default root operation type name -export const defaultRootOperationNameLookup: { - [node in OperationTypeNode]: DefaultRootOperationTypeName; -} = { - query: 'Query', - mutation: 'Mutation', - subscription: 'Subscription', -}; - -// This function is overloaded for 3 different input types. Each input type -// maps to a particular return type, hence the overload. -export function getFederationMetadata(obj: GraphQLNamedType): FederationType | undefined; -export function getFederationMetadata(obj: GraphQLField): FederationField | undefined; -export function getFederationMetadata(obj: GraphQLDirective): FederationDirective | undefined; -export function getFederationMetadata(obj: any) { - if (typeof obj === "undefined") return undefined; - else if (isNamedType(obj)) return obj.extensions?.federation as FederationType | undefined; - else if (isDirective(obj)) return obj.extensions?.federation as FederationDirective | undefined; - else return obj.extensions?.federation as FederationField | undefined; -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/__tests__/tsconfig.json b/gateway/node_modules/@apollo/federation/src/composition/validate/__tests__/tsconfig.json deleted file mode 100644 index 7d619d5..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/__tests__/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../../../tsconfig.test.base", - "include": ["**/*"], - "references": [{ "path": "../../../../" }] -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/index.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/index.ts deleted file mode 100644 index fc9385c..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { GraphQLSchema, GraphQLError, validateSchema } from 'graphql'; -import { ServiceDefinition } from '../types'; - -// import validators -import * as preNormalizationRules from './preNormalization'; -import * as preCompositionRules from './preComposition'; -import * as postCompositionRules from './postComposition'; - -const preNormalizationValidators = Object.values(preNormalizationRules); - -export function validateServicesBeforeNormalization( - services: ServiceDefinition[], -) { - const errors: GraphQLError[] = []; - - for (const serviceDefinition of services) { - for (const validator of preNormalizationValidators) { - errors.push(...validator(serviceDefinition)); - } - } - - return errors; -} - -const preCompositionValidators = Object.values(preCompositionRules); - -export const validateServicesBeforeComposition = ( - services: ServiceDefinition[], -) => { - const warningsOrErrors: GraphQLError[] = []; - - for (const serviceDefinition of services) { - for (const validator of preCompositionValidators) { - warningsOrErrors.push(...validator(serviceDefinition)); - } - } - - return warningsOrErrors; -}; - -const postCompositionValidators = Object.values(postCompositionRules); - -export const validateComposedSchema = ({ - schema, - serviceList, -}: { - schema: GraphQLSchema; - serviceList: ServiceDefinition[]; -}): GraphQLError[] => { - const warningsOrErrors: GraphQLError[] = []; - - // https://github.com/graphql/graphql-js/blob/4b55f10f16cc77302613e8ad67440259c68633df/src/type/validate.js#L56 - warningsOrErrors.push(...validateSchema(schema)); - for (const validator of postCompositionValidators) { - warningsOrErrors.push(...validator({ schema, serviceList })); - } - - return warningsOrErrors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/executableDirectivesIdentical.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/executableDirectivesIdentical.test.ts deleted file mode 100644 index 695e24e..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/executableDirectivesIdentical.test.ts +++ /dev/null @@ -1,122 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { executableDirectivesIdentical } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('executableDirectivesIdentical', () => { - it('throws no errors when custom, executable directives are defined identically every service', () => { - const serviceA = { - typeDefs: gql` - directive @stream on FIELD - directive @instrument(tag: String!) on FIELD - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - directive @stream on FIELD - directive @instrument(tag: String!) on FIELD - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const errors = executableDirectivesIdentical({ schema, serviceList }); - expect(errors).toHaveLength(0); - }); - - it('throws no errors when directives (excluding their TypeSystemDirectiveLocations) are identical for every service', () => { - const serviceA = { - typeDefs: gql` - directive @stream on FIELD - directive @instrument(tag: String!) on FIELD | FIELD_DEFINITION - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - directive @stream on FIELD - directive @instrument(tag: String!) on FIELD - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const errors = executableDirectivesIdentical({ schema, serviceList }); - expect(errors).toHaveLength(0); - }); - - it("throws errors when custom, executable directives aren't defined with the same locations in every service", () => { - const serviceA = { - typeDefs: gql` - directive @stream on FIELD - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - directive @stream on FIELD | QUERY - `, - name: 'serviceB', - }; - - const serviceC = { - typeDefs: gql` - directive @stream on INLINE_FRAGMENT - `, - name: 'serviceC', - }; - - const serviceList = [serviceA, serviceB, serviceC]; - const { schema } = composeServices(serviceList); - const errors = executableDirectivesIdentical({ schema, serviceList }); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXECUTABLE_DIRECTIVES_IDENTICAL", - "message": "[@stream] -> custom directives must be defined identically across all services. See below for a list of current implementations: - serviceA: directive @stream on FIELD - serviceB: directive @stream on FIELD | QUERY - serviceC: directive @stream on INLINE_FRAGMENT", - }, - ] - `); - }); - - it("throws errors when custom, executable directives aren't defined with the same arguments in every service", () => { - const serviceA = { - typeDefs: gql` - directive @instrument(tag: String!) on FIELD - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - directive @instrument(tag: Boolean) on FIELD - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const errors = executableDirectivesIdentical({ schema, serviceList }); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXECUTABLE_DIRECTIVES_IDENTICAL", - "message": "[@instrument] -> custom directives must be defined identically across all services. See below for a list of current implementations: - serviceA: directive @instrument(tag: String!) on FIELD - serviceB: directive @instrument(tag: Boolean) on FIELD", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/executableDirectivesInAllServices.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/executableDirectivesInAllServices.test.ts deleted file mode 100644 index 3e090dc..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/executableDirectivesInAllServices.test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { executableDirectivesInAllServices } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('executableDirectivesInAllServices', () => { - it('throws no errors when custom, executable directives are defined in every service', () => { - const serviceA = { - typeDefs: gql` - directive @stream on FIELD - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - directive @stream on FIELD - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const errors = executableDirectivesInAllServices({ schema, serviceList }); - expect(errors).toHaveLength(0); - }); - - it("throws no errors when type system directives aren't defined in every service", () => { - const serviceA = { - typeDefs: gql` - directive @stream on FIELD - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - directive @stream on FIELD - # This directive is ignored by composition and therefore post-composition validators - directive @ignored on FIELD_DEFINITION - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const errors = executableDirectivesInAllServices({ schema, serviceList }); - expect(errors).toHaveLength(0); - }); - - it("throws errors when custom, executable directives aren't defined in every service", () => { - const serviceA = { - typeDefs: gql` - directive @stream on FIELD - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Query { - thing: String - } - `, - name: 'serviceB', - }; - - const serviceC = { - typeDefs: gql` - extend type Query { - otherThing: String - } - `, - name: 'serviceC', - }; - - const serviceList = [serviceA, serviceB, serviceC]; - const { schema } = composeServices(serviceList); - const errors = executableDirectivesInAllServices({ schema, serviceList }); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXECUTABLE_DIRECTIVES_IN_ALL_SERVICES", - "message": "[@stream] -> Custom directives must be implemented in every service. The following services do not implement the @stream directive: serviceB, serviceC.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalMissingOnBase.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalMissingOnBase.test.ts deleted file mode 100644 index 5f9f086..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalMissingOnBase.test.ts +++ /dev/null @@ -1,92 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { externalMissingOnBase as validateExternalMissingOnBase } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('externalMissingOnBase', () => { - it('warns when an @external field does not have a matching field on the base type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - id: String! @external - price: Int! @requires(fields: "sku id") - } - `, - name: 'serviceB', - }; - - const serviceC = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - id: String! - test: Int @external - } - `, - name: 'serviceC', - }; - - const serviceList = [serviceA, serviceB, serviceC]; - const { schema } = composeServices([serviceA, serviceB, serviceC]); - const warnings = validateExternalMissingOnBase({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTERNAL_MISSING_ON_BASE", - "message": "[serviceB] Product.id -> marked @external but id was defined in serviceC, not in the service that owns Product (serviceA)", - }, - Object { - "code": "EXTERNAL_MISSING_ON_BASE", - "message": "[serviceC] Product.test -> marked @external but test is not defined on the base service of Product (serviceA)", - }, - ] - `); - }); - - it("warns when an @external field isn't defined anywhere else", () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - specialId: String! @external - id: String! @requires(fields: "specialId") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalMissingOnBase({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTERNAL_MISSING_ON_BASE", - "message": "[serviceB] Product.specialId -> marked @external but specialId is not defined on the base service of Product (serviceA)", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalTypeMismatch.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalTypeMismatch.test.ts deleted file mode 100644 index 4669beb..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalTypeMismatch.test.ts +++ /dev/null @@ -1,82 +0,0 @@ -import gql from 'graphql-tag'; -import { externalTypeMismatch as validateExternalTypeMismatch } from '../'; -import { composeServices } from '../../../compose'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('validateExternalDirectivesOnSchema', () => { - it('warns when the type of an @external field doesnt match the base', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku skew") { - sku: String! - skew: String - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String @external - skew: String! @external - price: Int! @requires(fields: "sku skew") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalTypeMismatch({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTERNAL_TYPE_MISMATCH", - "message": "[serviceB] Product.sku -> Type \`String\` does not match the type of the original field in serviceA (\`String!\`)", - }, - Object { - "code": "EXTERNAL_TYPE_MISMATCH", - "message": "[serviceB] Product.skew -> Type \`String!\` does not match the type of the original field in serviceA (\`String\`)", - }, - ] - `); - }); - - it("warns when an @external field's type does not exist in the composed schema", () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: NonExistentType! @external - id: String! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalTypeMismatch({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTERNAL_TYPE_MISMATCH", - "message": "[serviceB] Product.sku -> the type of the @external field does not exist in the resulting composed schema", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalUnused.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalUnused.test.ts deleted file mode 100644 index e3156c0..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/externalUnused.test.ts +++ /dev/null @@ -1,380 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { externalUnused as validateExternalUnused } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('externalUnused', () => { - it('warns when there is an unused @external field', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "id") { - sku: String! - upc: String! - id: ID! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - id: ID! @external - price: Int! @requires(fields: "id") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalUnused({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTERNAL_UNUSED", - "message": "[serviceB] Product.sku -> is marked as @external but is not used by a @requires, @key, or @provides directive.", - }, - ] - `); - }); - - it('does not warn when @external is selected by a @key', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - price: Float! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalUnused({ schema, serviceList }); - expect(warnings).toEqual([]); - }); - - it('does not warn when @external is selected by a @requires', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalUnused({ schema, serviceList }); - expect(warnings).toEqual([]); - }); - - it('does not warn when @external is selected by a @provides', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - id: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - price: Int! @provides(fields: "id") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalUnused({ schema, serviceList }); - expect(warnings).toEqual([]); - }); - - it('does not warn when @external is selected by a @provides used from another type', () => { - const serviceA = { - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - username: String - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Review { - author: User @provides(fields: "username") - } - - extend type User @key(fields: "id") { - username: String @external - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalUnused({ schema, serviceList }); - expect(warnings).toEqual([]); - }); - - it.todo( - 'does not error when @provides selects an external field in a subselection', - ); - - it.todo('errors when there is an invalid selection in @requires'); - - it('does not warn when @external is selected by a @requires used from another type', () => { - const serviceA = { - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - username: String - } - - type AccountRoles { - canRead: Boolean - canWrite: Boolean - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Review { - author: User - } - - extend type User @key(fields: "id") { - roles: AccountRoles! - isAdmin: Boolean! @requires(fields: "roles { canWrite }") - } - - # Externals -- only referenced by the @requires on User.isAdmin - extend type AccountRoles { - canWrite: Boolean @external - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalUnused({ schema, serviceList }); - expect(warnings).toEqual([]); - }); - - it('does not warn when @external is selected by a @requires in a deep subselection', () => { - const serviceA = { - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - username: String - } - - type AccountRoles { - canRead: Group - canWrite: Group - } - - type Group { - id: ID! - name: String - members: [User] - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Review { - author: User - } - - extend type User @key(fields: "id") { - id: ID! @external - roles: AccountRoles! - username: String @external - isAdmin: Boolean! - @requires( - fields: """ - roles { - canWrite { - members { - username - } - } - canRead { - members { - username - } - } - } - """ - ) - } - - # Externals -- only referenced by the @requires on User.isAdmin - extend type AccountRoles { - canWrite: Group @external - canRead: Group @external - } - - extend type Group { - members: [User] @external - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalUnused({ schema, serviceList }); - expect(warnings).toEqual([]); - }); - - it('does not warn when @external is used on type with multiple @key directives', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "upc") @key(fields: "sku") { - upc: String - sku: String - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "upc") { - upc: String @external - } - `, - name: 'serviceB', - }; - - const serviceC = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String @external - } - `, - name: 'serviceC', - }; - - const serviceList = [serviceA, serviceB, serviceC]; - const { schema } = composeServices(serviceList); - const warnings = validateExternalUnused({ schema, serviceList }); - expect(warnings).toEqual([]); - }); - - it('does not error when @external is used on a field of a concrete type that implements a shared field of an implemented interface', () => { - const serviceA = { - typeDefs: gql` - type Car implements Vehicle @key(fields: "id") { - id: ID! - speed: Int - } - interface Vehicle { - id: ID! - speed: Int - } - `, - name: 'serviceA', - }; - const serviceB = { - typeDefs: gql` - extend type Car implements Vehicle @key(fields: "id") { - id: ID! @external - speed: Int @external - } - interface Vehicle { - id: ID! - speed: Int - } - `, - name: 'serviceB', - }; - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const errors = validateExternalUnused({ schema, serviceList }); - expect(errors).toHaveLength(0); - }); - - it('does error when @external is used on a field of a concrete type is not shared by its implemented interface', () => { - const serviceA = { - typeDefs: gql` - type Car implements Vehicle @key(fields: "id") { - id: ID! - speed: Int - wheelSize: Int - } - interface Vehicle { - id: ID! - speed: Int - } - `, - name: 'serviceA', - }; - const serviceB = { - typeDefs: gql` - extend type Car implements Vehicle @key(fields: "id") { - id: ID! @external - speed: Int @external - wheelSize: Int @external - } - interface Vehicle { - id: ID! - speed: Int - } - `, - name: 'serviceB', - }; - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const errors = validateExternalUnused({ schema, serviceList }); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTERNAL_UNUSED", - "message": "[serviceB] Car.wheelSize -> is marked as @external but is not used by a @requires, @key, or @provides directive.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keyFieldsMissingOnBase.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keyFieldsMissingOnBase.test.ts deleted file mode 100644 index 5b32294..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keyFieldsMissingOnBase.test.ts +++ /dev/null @@ -1,113 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { keyFieldsMissingOnBase as validateKeyFieldsMissingOnBase } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('keyFieldsMissingOnBase', () => { - it('returns no warnings with proper @key usage', () => { - const serviceA = { - // FIXME: add second key "upc" when duplicate directives are supported - // i.e. @key(fields: "sku") @key(fields: "upc") - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateKeyFieldsMissingOnBase({ schema, serviceList }); - expect(warnings).toHaveLength(0); - }); - - it('warns if @key references a field added by another service', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku uid") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - uid: String! - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateKeyFieldsMissingOnBase({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "KEY_FIELDS_MISSING_ON_BASE", - "message": "[serviceA] Product -> A @key selects uid, but Product.uid was either created or overwritten by serviceB, not serviceA", - }, - ] - `); - }); - - // FIXME: shouldn't composition _allow_ this with a warning? - // right now, it errors during composition - xit('warns if @key references a field that was overwritten', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: ID! # overwritten from base service - weight: Float! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateKeyFieldsMissingOnBase({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keyFieldsSelectInvalidType.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keyFieldsSelectInvalidType.test.ts deleted file mode 100644 index 2d77ff8..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keyFieldsSelectInvalidType.test.ts +++ /dev/null @@ -1,132 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { keyFieldsSelectInvalidType as validateKeyFieldsSelectInvalidType } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('keyFieldsSelectInvalidType', () => { - it('returns no warnings with proper @key usage', () => { - const serviceA = { - // FIXME: add second key "upc" when duplicate directives are supported - // i.e. @key(fields: "sku") @key(fields: "upc") - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateKeyFieldsSelectInvalidType({ - schema, - serviceList, - }); - expect(warnings).toHaveLength(0); - }); - - it('warns if @key references fields of an interface type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "featuredItem") { - featuredItem: Node! - sku: String! - } - - interface Node { - id: ID! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - price: Int! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateKeyFieldsSelectInvalidType({ - schema, - serviceList, - }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "KEY_FIELDS_SELECT_INVALID_TYPE", - "message": "[serviceA] Product -> A @key selects Product.featuredItem, which is an interface type. Keys cannot select interfaces.", - }, - ] - `); - }); - - it('warns if @key references fields of a union type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "price") { - sku: String! - price: Numeric! - } - - union Numeric = Float | Int - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - sku: String! @external - name: String! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateKeyFieldsSelectInvalidType({ - schema, - serviceList, - }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "KEY_FIELDS_SELECT_INVALID_TYPE", - "message": "[serviceA] Product -> A @key selects Product.price, which is a union type. Keys cannot select union types.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keysMatchBaseService.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keysMatchBaseService.test.ts deleted file mode 100644 index 5c2854f..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/keysMatchBaseService.test.ts +++ /dev/null @@ -1,117 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { keysMatchBaseService as validateKeysMatchBaseService } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('keysMatchBaseService', () => { - it('returns no errors with proper @key usage', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - price: Int! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const validationErrors = validateKeysMatchBaseService({ - schema, - serviceList, - }); - expect(validationErrors).toHaveLength(0); - }); - - it('requires a @key to be specified on the originating type', () => { - const serviceA = { - typeDefs: gql` - type Product { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - price: Int! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const validationErrors = validateKeysMatchBaseService({ - schema, - serviceList, - }); - expect(validationErrors).toHaveLength(1); - expect(validationErrors[0]).toMatchInlineSnapshot(` - Object { - "code": "KEY_MISSING_ON_BASE", - "message": "[serviceA] Product -> appears to be an entity but no @key directives are specified on the originating type.", - } - `); - }); - - it('requires extending services to use a @key specified by the originating type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku upc") { - sku: String! - upc: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - price: Int! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const validationErrors = validateKeysMatchBaseService({ - schema, - serviceList, - }); - expect(validationErrors).toHaveLength(1); - expect(validationErrors[0]).toMatchInlineSnapshot(` - Object { - "code": "KEY_NOT_SPECIFIED", - "message": "[serviceB] Product -> extends from serviceA but specifies an invalid @key directive. Valid @key directives are specified by the originating type. Available @key directives for this type are: - @key(fields: \\"sku upc\\")", - } - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesFieldsMissingExternals.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesFieldsMissingExternals.test.ts deleted file mode 100644 index 0eed1d2..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesFieldsMissingExternals.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { providesFieldsMissingExternal as validateProdivesFieldsMissingExternal } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('providesFieldsMissingExternal', () => { - it('does not warn with proper @provides usage', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - id: ID! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - username: String - } - `, - name: 'serviceB', - }; - - const serviceC = { - typeDefs: gql` - type Review @key(fields: "id") { - id: ID! - product: Product @provides(fields: "id") - author: User @provides(fields: "username") - } - - extend type Product @key(fields: "sku") { - sku: String! @external - id: ID! @external - price: Int! - } - - extend type User @key(fields: "id") { - id: ID! @external - username: String @external - } - `, - name: 'serviceC', - }; - - const serviceList = [serviceA, serviceB, serviceC]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toEqual([]); - const warnings = validateProdivesFieldsMissingExternal({ - schema, - serviceList, - }); - expect(warnings).toEqual([]); - }); - - it('warns when there is a @provides with no matching @external field', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - id: ID! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Review @key(fields: "id") { - id: ID! - product: Product @provides(fields: "id") - } - - extend type Product @key(fields: "sku") { - sku: String! @external - price: Int! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toEqual([]); - const warnings = validateProdivesFieldsMissingExternal({ - schema, - serviceList, - }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "PROVIDES_FIELDS_MISSING_EXTERNAL", - "message": "[serviceB] Review.product -> provides the field \`id\` and requires Product.id to be marked as @external.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesFieldsSelectInvalidType.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesFieldsSelectInvalidType.test.ts deleted file mode 100644 index 364b491..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesFieldsSelectInvalidType.test.ts +++ /dev/null @@ -1,214 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { providesFieldsSelectInvalidType as validateprovidesFieldsSelectInvalidType } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('providesFieldsSelectInvalidType', () => { - it('returns no warnings with proper @provides usage', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - upc: String! @external - price: Int! @provides(fields: "upc") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateprovidesFieldsSelectInvalidType({ - schema, - serviceList, - }); - expect(warnings).toHaveLength(0); - }); - - it('warns if @provides references fields of a list type', () => { - const serviceA = { - typeDefs: gql` - type Review @key(fields: "id") { - id: ID! - author: User @provides(fields: "wishLists") - } - - extend type User @key(fields: "id") { - id: ID! @external - wishLists: [WishList] @external - } - - extend type WishList @key(fields: "id") { - id: ID! @external - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - wishLists: [WishList] - } - - type WishList @key(fields: "id") { - id: ID! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateprovidesFieldsSelectInvalidType({ - schema, - serviceList, - }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "PROVIDES_FIELDS_SELECT_INVALID_TYPE", - "message": "[serviceA] Review.author -> A @provides selects User.wishLists, which is a list type. A field cannot @provide lists.", - }, - ] - `); - }); - - it('warns if @provides references fields of an interface type', () => { - const serviceA = { - typeDefs: gql` - type Review @key(fields: "id") { - id: ID! - author: User @provides(fields: "account") - } - - extend type User @key(fields: "id") { - id: ID! @external - account: Account @external - } - - extend interface Account { - username: String @external - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - account: Account - } - - interface Account { - username: String - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateprovidesFieldsSelectInvalidType({ - schema, - serviceList, - }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "PROVIDES_FIELDS_SELECT_INVALID_TYPE", - "message": "[serviceA] Review.author -> A @provides selects User.account, which is an interface type. A field cannot @provide interfaces.", - }, - ] - `); - }); - - it('warns if @provides references fields of a union type', () => { - const serviceA = { - typeDefs: gql` - type Review @key(fields: "id") { - id: ID! - author: User @provides(fields: "account") - } - - extend type User @key(fields: "id") { - id: ID! @external - account: Account @external - } - - extend union Account = PasswordAccount | SMSAccount - - extend type PasswordAccount @key(fields: "email") { - email: String! @external - } - - extend type SMSAccount @key(fields: "phone") { - phone: String! @external - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - account: Account - } - - union Account = PasswordAccount | SMSAccount - - type PasswordAccount @key(fields: "email") { - email: String! - } - - type SMSAccount @key(fields: "phone") { - phone: String! - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema, errors } = composeServices(serviceList); - expect(errors).toHaveLength(0); - - const warnings = validateprovidesFieldsSelectInvalidType({ - schema, - serviceList, - }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "PROVIDES_FIELDS_SELECT_INVALID_TYPE", - "message": "[serviceA] Review.author -> A @provides selects User.account, which is a union type. A field cannot @provide union types.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesNotOnEntity.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesNotOnEntity.test.ts deleted file mode 100644 index 1a87fc9..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/providesNotOnEntity.test.ts +++ /dev/null @@ -1,259 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { providesNotOnEntity as validateProvidesNotOnEntity } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('providesNotOnEntity', () => { - it('does not warn when @provides used on an entity', () => { - const serviceA = { - typeDefs: gql` - type LineItem @key(fields: "sku") { - sku: String! - quantity: Int! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product { - lineItem: LineItem @provides(fields: "quantity") - lineItemNonNull: LineItem! @provides(fields: "quantity") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateProvidesNotOnEntity({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(`Array []`); - }); - - it('does not warn when @provides used on a list of entity', () => { - const serviceA = { - typeDefs: gql` - type LineItem @key(fields: "sku") { - sku: String! - quantity: Int! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Product { - lineItems: [LineItem] @provides(fields: "quantity") - lineItemsNonNull: [LineItem]! @provides(fields: "quantity") - nonNullLineItems: [LineItem!] @provides(fields: "quantity") - nonNullLineItemsNonNull: [LineItem!]! @provides(fields: "quantity") - deep: [[LineItem!]!]! @provides(fields: "quantity") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateProvidesNotOnEntity({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(`Array []`); - }); - - it('does not warn when @provides used on an entity of a child type', () => { - const serviceA = { - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - username: String - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - type Review { - author: User @provides(fields: "username") - } - - type User { - username: String @external - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateProvidesNotOnEntity({ schema, serviceList }); - expect(warnings).toEqual([]); - }); - - it('warns when there is a @provides on a type that is not an entity', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - id: ID! - } - - type LineItem { - sku: String! - quantity: Int! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - lineItem: LineItem @provides(fields: "quantity") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateProvidesNotOnEntity({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "PROVIDES_NOT_ON_ENTITY", - "message": "[serviceB] Product.lineItem -> uses the @provides directive but \`Product.lineItem\` does not return a type that has a @key. Try adding a @key to the \`LineItem\` type.", - }, - ] - `); - }); - - it('warns when there is a @provides on a type that is not a list of entity', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - id: ID! - } - - type LineItem { - sku: String! - quantity: Int! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - lineItems: [LineItem] @provides(fields: "quantity") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateProvidesNotOnEntity({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "PROVIDES_NOT_ON_ENTITY", - "message": "[serviceB] Product.lineItems -> uses the @provides directive but \`Product.lineItems\` does not return a type that has a @key. Try adding a @key to the \`LineItem\` type.", - }, - ] - `); - }); - - it('warns when there is a @provides on a non-object type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - id: ID! - } - - enum Category { - BOOK - MOVIE - SONG - ALBUM - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - category: Category @provides(fields: "id") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateProvidesNotOnEntity({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "PROVIDES_NOT_ON_ENTITY", - "message": "[serviceB] Product.category -> uses the @provides directive but \`Product.category\` returns \`Category\`, which is not an Object or List type. @provides can only be used on Object types with at least one @key, or Lists of such Objects.", - }, - ] - `); - }); - - it('warns when there is a @provides on a list of non-object type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - id: ID! - } - - enum Category { - BOOK - MOVIE - SONG - ALBUM - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - categories: [Category] @provides(fields: "id") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateProvidesNotOnEntity({ schema, serviceList }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "PROVIDES_NOT_ON_ENTITY", - "message": "[serviceB] Product.categories -> uses the @provides directive but \`Product.categories\` returns \`[Category]\`, which is not an Object or List type. @provides can only be used on Object types with at least one @key, or Lists of such Objects.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/requiresFieldsMissingExternals.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/requiresFieldsMissingExternals.test.ts deleted file mode 100644 index c1e824f..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/requiresFieldsMissingExternals.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { requiresFieldsMissingExternal as validateRequiresFieldsMissingExternal } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('requiresFieldsMissingExternal', () => { - it('does not warn with proper @requires usage', () => { - const serviceA = { - typeDefs: gql` - type Product { - sku: String! - upc: String! - id: ID! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - id: ID! @external - price: Int! @requires(fields: "id") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateRequiresFieldsMissingExternal({ - schema, - serviceList, - }); - expect(warnings).toEqual([]); - }); - - it('warns when there is a @requires with no matching @external field', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! - id: ID! - } - `, - name: 'serviceA', - }; - - const serviceB = { - typeDefs: gql` - extend type Product { - price: Int! @requires(fields: "id") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateRequiresFieldsMissingExternal({ - schema, - serviceList, - }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "REQUIRES_FIELDS_MISSING_EXTERNAL", - "message": "[serviceB] Product.price -> requires the field \`id\` to be marked as @external.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/requiresFieldsMissingOnBase.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/requiresFieldsMissingOnBase.test.ts deleted file mode 100644 index 945a505..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/requiresFieldsMissingOnBase.test.ts +++ /dev/null @@ -1,79 +0,0 @@ -import gql from 'graphql-tag'; -import { composeServices } from '../../../compose'; -import { requiresFieldsMissingOnBase as validateRequiresFieldsMissingOnBase } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('requiresFieldsMissingOnBase', () => { - it('does not warn with proper @requires usage', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - } - `, - name: 'serviceA', - }; - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - id: ID! - weight: Float! @requires(fields: "sku") - } - `, - name: 'serviceB', - }; - - const serviceList = [serviceA, serviceB]; - const { schema } = composeServices(serviceList); - const warnings = validateRequiresFieldsMissingOnBase({ - schema, - serviceList, - }); - expect(warnings).toEqual([]); - }); - - it('warns when requires selects a field not found on the base type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - } - `, - name: 'serviceA', - }; - const serviceB = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - id: ID! - } - `, - name: 'serviceB', - }; - const serviceC = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - id: ID! @external - weight: Float! @requires(fields: "id") - } - `, - name: 'serviceC', - }; - const serviceList = [serviceA, serviceB, serviceC]; - const { schema } = composeServices(serviceList); - const warnings = validateRequiresFieldsMissingOnBase({ - schema, - serviceList, - }); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "REQUIRES_FIELDS_MISSING_ON_BASE", - "message": "[serviceC] Product.weight -> requires the field \`id\` to be @external. @external fields must exist on the base type, not an extension.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/tsconfig.json b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/tsconfig.json deleted file mode 100644 index 9bcedd5..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/__tests__/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../../../../tsconfig.test.base", - "include": ["**/*"], - "references": [{ "path": "../../../../../" }] -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/executableDirectivesIdentical.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/executableDirectivesIdentical.ts deleted file mode 100644 index a0fa2cb..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/executableDirectivesIdentical.ts +++ /dev/null @@ -1,60 +0,0 @@ -import 'apollo-server-env'; -import { GraphQLError, isSpecifiedDirective, print } from 'graphql'; -import { - errorWithCode, - isFederationDirective, - logDirective, - typeNodesAreEquivalent, - getFederationMetadata, -} from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * A custom directive must be defined identically across all services. This means - * they must have the same name and same locations. Locations are the "on" part of - * a directive, for example: - * directive @stream on FIELD | QUERY - */ -export const executableDirectivesIdentical: PostCompositionValidator = ({ - schema, -}) => { - const errors: GraphQLError[] = []; - - const customDirectives = schema - .getDirectives() - .filter(x => !isFederationDirective(x) && !isSpecifiedDirective(x)); - - customDirectives.forEach(directive => { - const directiveFederationMetadata = getFederationMetadata(directive); - - if (!directiveFederationMetadata) return; - - const definitions = Object.entries( - directiveFederationMetadata.directiveDefinitions, - ); - - // Side-by-side compare all definitions of a single directive, if there's a - // discrepancy in any of those diffs, we should provide an error. - const shouldError = definitions.some(([, definition], index) => { - // Skip the non-comparison step - if (index === 0) return; - const [, previousDefinition] = definitions[index - 1]; - return !typeNodesAreEquivalent(definition, previousDefinition); - }); - - if (shouldError) { - errors.push( - errorWithCode( - 'EXECUTABLE_DIRECTIVES_IDENTICAL', - logDirective(directive.name) + - `custom directives must be defined identically across all services. See below for a list of current implementations:\n${definitions - .map(([serviceName, definition]) => { - return `\t${serviceName}: ${print(definition)}`; - }) - .join('\n')}`, - ), - ); - } - }); - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/executableDirectivesInAllServices.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/executableDirectivesInAllServices.ts deleted file mode 100644 index 131d0bd..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/executableDirectivesInAllServices.ts +++ /dev/null @@ -1,60 +0,0 @@ -import 'apollo-server-env'; -import { GraphQLError, isSpecifiedDirective } from 'graphql'; -import { - errorWithCode, - isFederationDirective, - logDirective, - getFederationMetadata, -} from '../../utils'; -import { PostCompositionValidator } from '.'; -/** - * All custom directives with executable locations must be implemented in every - * service. This validator is not responsible for ensuring the directives are an - * ExecutableDirective, however composition ensures this by filtering out all - * TypeSystemDirectiveLocations. - */ -export const executableDirectivesInAllServices: PostCompositionValidator = ({ - schema, - serviceList, -}) => { - const errors: GraphQLError[] = []; - - const customExecutableDirectives = schema - .getDirectives() - .filter(x => !isFederationDirective(x) && !isSpecifiedDirective(x)); - - customExecutableDirectives.forEach(directive => { - const directiveFederationMetadata = getFederationMetadata(directive); - - if (!directiveFederationMetadata) return; - - const allServiceNames = serviceList.map(({ name }) => name); - const serviceNamesWithDirective = Object.keys( - directiveFederationMetadata.directiveDefinitions, - ); - - const serviceNamesWithoutDirective = allServiceNames.reduce( - (without, serviceName) => { - if (!serviceNamesWithDirective.includes(serviceName)) { - without.push(serviceName); - } - return without; - }, - [] as string[], - ); - - if (serviceNamesWithoutDirective.length > 0) { - errors.push( - errorWithCode( - 'EXECUTABLE_DIRECTIVES_IN_ALL_SERVICES', - logDirective(directive.name) + - `Custom directives must be implemented in every service. The following services do not implement the @${ - directive.name - } directive: ${serviceNamesWithoutDirective.join(', ')}.`, - ), - ); - } - }); - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalMissingOnBase.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalMissingOnBase.ts deleted file mode 100644 index 1dcaa7b..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalMissingOnBase.ts +++ /dev/null @@ -1,62 +0,0 @@ -import 'apollo-server-env'; -import { isObjectType, GraphQLError } from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * All fields marked with @external must exist on the base type - */ -export const externalMissingOnBase: PostCompositionValidator = ({ schema }) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - // Only object types have fields - if (!isObjectType(namedType)) continue; - - const typeFederationMetadata = getFederationMetadata(namedType); - - // If externals is populated, we need to look at each one and confirm - // that field exists on base service - if (typeFederationMetadata?.externals) { - // loop over every service that has extensions with @external - for (const [serviceName, externalFieldsForService] of Object.entries( - typeFederationMetadata.externals, - )) { - // for a single service, loop over the external fields. - for (const { field: externalField } of externalFieldsForService) { - const externalFieldName = externalField.name.value; - const allFields = namedType.getFields(); - const matchingBaseField = allFields[externalFieldName]; - - // @external field referenced a field that isn't defined anywhere - if (!matchingBaseField) { - errors.push( - errorWithCode( - 'EXTERNAL_MISSING_ON_BASE', - logServiceAndType(serviceName, typeName, externalFieldName) + - `marked @external but ${externalFieldName} is not defined on the base service of ${typeName} (${typeFederationMetadata.serviceName})`, - ), - ); - continue; - } - - // if the field has a serviceName, then it wasn't defined by the - // service that owns the type - const fieldFederationMetadata = getFederationMetadata(matchingBaseField); - - if (fieldFederationMetadata?.serviceName) { - errors.push( - errorWithCode( - 'EXTERNAL_MISSING_ON_BASE', - logServiceAndType(serviceName, typeName, externalFieldName) + - `marked @external but ${externalFieldName} was defined in ${fieldFederationMetadata.serviceName}, not in the service that owns ${typeName} (${typeFederationMetadata.serviceName})`, - ), - ); - } - } - } - } - } - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalTypeMismatch.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalTypeMismatch.ts deleted file mode 100644 index 2347607..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalTypeMismatch.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { isObjectType, typeFromAST, isEqualType, GraphQLError, GraphQLType } from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * All fields marked with @external must match the type definition of the base service. - * Additional warning if the type of the @external field doesn't exist at all on the schema - */ -export const externalTypeMismatch: PostCompositionValidator = ({ schema }) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - // Only object types have fields - if (!isObjectType(namedType)) continue; - - // If externals is populated, we need to look at each one and confirm - // there is a matching @requires - const typeFederationMetadata = getFederationMetadata(namedType); - if (typeFederationMetadata?.externals) { - // loop over every service that has extensions with @external - for (const [serviceName, externalFieldsForService] of Object.entries( - typeFederationMetadata.externals, - )) { - // for a single service, loop over the external fields. - for (const { field: externalField } of externalFieldsForService) { - const externalFieldName = externalField.name.value; - const allFields = namedType.getFields(); - const matchingBaseField = allFields[externalFieldName]; - - // FIXME: TypeScript doesn’t currently support passing in a type union - // to an overloaded function like `typeFromAST` - // See https://github.com/Microsoft/TypeScript/issues/14107 - const externalFieldType = typeFromAST( - schema, - externalField.type as any, - ) as GraphQLType; - - if (!externalFieldType) { - errors.push( - errorWithCode( - 'EXTERNAL_TYPE_MISMATCH', - logServiceAndType(serviceName, typeName, externalFieldName) + - `the type of the @external field does not exist in the resulting composed schema`, - ), - ); - } else if ( - matchingBaseField && - !isEqualType(matchingBaseField.type, externalFieldType) - ) { - errors.push( - errorWithCode( - 'EXTERNAL_TYPE_MISMATCH', - logServiceAndType(serviceName, typeName, externalFieldName) + - `Type \`${externalFieldType}\` does not match the type of the original field in ${typeFederationMetadata.serviceName} (\`${matchingBaseField.type}\`)`, - ), - ); - } - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalUnused.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalUnused.ts deleted file mode 100644 index 2c671ef..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/externalUnused.ts +++ /dev/null @@ -1,237 +0,0 @@ -import { isObjectType, GraphQLError, Kind } from 'graphql'; -import { - findDirectivesOnTypeOrField, - logServiceAndType, - hasMatchingFieldInDirectives, - errorWithCode, - findFieldsThatReturnType, - parseSelections, - isStringValueNode, - selectionIncludesField, - getFederationMetadata, -} from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * for every @external field, there should be a @requires, @key, or @provides - * directive that uses it - */ -export const externalUnused: PostCompositionValidator = ({ schema }) => { - const errors: GraphQLError[] = []; - const types = schema.getTypeMap(); - for (const [parentTypeName, parentType] of Object.entries(types)) { - // Only object types have fields - if (!isObjectType(parentType)) continue; - // If externals is populated, we need to look at each one and confirm - // it is used - const typeFederationMetadata = getFederationMetadata(parentType); - - // Escape a validation case that's falling through incorrectly. This case - // is handled by `keysMatchBaseService`. - if (typeFederationMetadata) { - const {serviceName, keys} = typeFederationMetadata; - if (serviceName && keys && !keys[serviceName]) continue; - } - - if (typeFederationMetadata?.externals) { - // loop over every service that has extensions with @external - for (const [serviceName, externalFieldsForService] of Object.entries( - typeFederationMetadata.externals, - )) { - // for a single service, loop over the external fields. - for (const { field: externalField } of externalFieldsForService) { - const externalFieldName = externalField.name.value; - - // check the selected fields of every @key provided by `serviceName` - const hasMatchingKeyOnType = Boolean( - hasMatchingFieldInDirectives({ - directives: findDirectivesOnTypeOrField( - parentType.astNode, - 'key', - ), - fieldNameToMatch: externalFieldName, - namedType: parentType, - }), - ); - if (hasMatchingKeyOnType) continue; - - /* - @provides is most commonly used from another type than where - the @external directive is applied. We need to find all - fields on any type in the schema that return this type - and see if they have a provides directive that uses this - external field - - extend type Review { - author: User @provides(fields: "username") - } - - extend type User @key(fields: "id") { - id: ID! @external - username: String @external - reviews: [Review] - } - */ - const hasMatchingProvidesOnAnotherType = findFieldsThatReturnType({ - schema, - typeToFind: parentType, - }).some(field => - findDirectivesOnTypeOrField(field.astNode, 'provides').some( - directive => { - if (!directive.arguments) return false; - const selections = - isStringValueNode(directive.arguments[0].value) && - parseSelections(directive.arguments[0].value.value); - // find the selections which are fields with names matching - // our external field name - return ( - selections && - selections.some( - selection => - selection.kind === Kind.FIELD && - selection.name.value === externalFieldName, - ) - ); - }, - ), - ); - - if (hasMatchingProvidesOnAnotherType) continue; - - /** - * @external fields can be selected by subfields of a selection on another type - * - * For example, with these defs, `canWrite` is marked as external and is - * referenced by a selection set inside the @requires of User.isAdmin - * - * extend type User @key(fields: "id") { - * roles: AccountRoles! - * isAdmin: Boolean! @requires(fields: "roles { canWrite permission { status } }") - * } - * extend type AccountRoles { - * canWrite: Boolean @external - * permission: Permission @external - * } - * - * extend type Permission { - * status: String @external - * } - * - * So, we need to search for fields with requires, then parse the selection sets, - * and try to recursively find the external field's PARENT type, then the external field's name - */ - const hasMatchingRequiresOnAnotherType = Object.values( - schema.getTypeMap(), - ).some(namedType => { - if (!isObjectType(namedType)) return false; - // for every object type, loop over its fields and find fields - // with requires directives - return Object.values(namedType.getFields()).some(field => - findDirectivesOnTypeOrField(field.astNode, 'requires').some( - directive => { - if (!directive.arguments) return false; - const selections = - isStringValueNode(directive.arguments[0].value) && - parseSelections(directive.arguments[0].value.value); - - if (!selections) return false; - return selectionIncludesField({ - selections, - selectionSetType: namedType, - typeToFind: parentType, - fieldToFind: externalFieldName, - }); - }, - ), - ); - }); - - if (hasMatchingRequiresOnAnotherType) continue; - - const hasMatchingRequiresOnType = Object.values( - parentType.getFields(), - ).some(maybeRequiresField => { - const fieldOwner = getFederationMetadata(maybeRequiresField)?.serviceName; - if (fieldOwner !== serviceName) return false; - - const requiresDirectives = findDirectivesOnTypeOrField( - maybeRequiresField.astNode, - 'requires', - ); - - return hasMatchingFieldInDirectives({ - directives: requiresDirectives, - fieldNameToMatch: externalFieldName, - namedType: parentType, - }); - }); - - if (hasMatchingRequiresOnType) continue; - - /** - * @external fields can be required when an interface is returned by - * a field and its concrete implementations need to be defined in a - * service which use non-key fields from other services. Take for example: - * - * // Service A - * type Car implements Vehicle @key(fields: "id") { - * id: ID! - * speed: Int - * } - * - * interface Vehicle { - * id: ID! - * speed: Int - * } - * - * // Service B - * type Query { - * vehicles: [Vehicle] - * } - * - * extend type Car implements Vehicle @key(fields: "id") { - * id: ID! @external - * speed: Int @external - * } - * - * interface Vehicle { - * id: ID! - * speed: Int - * } - * - * Service B defines Car.speed as an external field which is okay - * because it is required for Query.vehicles to exist in the schema - */ - const fieldsOnInterfacesImplementedByParentType: Set = new Set(); - - // Loop over the parent's interfaces - for (const _interface of parentType.getInterfaces()) { - // Collect the field names from each interface in a set - for (const fieldName in _interface.getFields()) { - fieldsOnInterfacesImplementedByParentType.add(fieldName); - } - } - - // If the set contains our field's name, no error is generated - if (fieldsOnInterfacesImplementedByParentType.has(externalFieldName)) { - continue; - } - - errors.push( - errorWithCode( - 'EXTERNAL_UNUSED', - logServiceAndType( - serviceName, - parentTypeName, - externalFieldName, - ) + - `is marked as @external but is not used by a @requires, @key, or @provides directive.`, - ), - ); - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/index.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/index.ts deleted file mode 100644 index 6e7a351..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/index.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { GraphQLSchema, GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; - -export { externalUnused } from './externalUnused'; -export { externalMissingOnBase } from './externalMissingOnBase'; -export { externalTypeMismatch } from './externalTypeMismatch'; -export { requiresFieldsMissingExternal } from './requiresFieldsMissingExternal'; -export { requiresFieldsMissingOnBase } from './requiresFieldsMissingOnBase'; -export { keyFieldsMissingOnBase } from './keyFieldsMissingOnBase'; -export { keyFieldsSelectInvalidType } from './keyFieldsSelectInvalidType'; -export { providesFieldsMissingExternal } from './providesFieldsMissingExternal'; -export { - providesFieldsSelectInvalidType, -} from './providesFieldsSelectInvalidType'; -export { providesNotOnEntity } from './providesNotOnEntity'; -export { - executableDirectivesInAllServices, -} from './executableDirectivesInAllServices'; -export { executableDirectivesIdentical } from './executableDirectivesIdentical'; -export { keysMatchBaseService } from './keysMatchBaseService'; - -export type PostCompositionValidator = ({ - schema, - serviceList, -}: { - schema: GraphQLSchema; - serviceList: ServiceDefinition[]; -}) => GraphQLError[]; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keyFieldsMissingOnBase.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keyFieldsMissingOnBase.ts deleted file mode 100644 index a2d7384..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keyFieldsMissingOnBase.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { isObjectType, FieldNode, GraphQLError } from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * - The fields argument can not select fields that were overwritten by another service - */ -export const keyFieldsMissingOnBase: PostCompositionValidator = ({ - schema, -}) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!isObjectType(namedType)) continue; - - const typeFederationMetadata = getFederationMetadata(namedType); - if (typeFederationMetadata?.keys) { - const allFieldsInType = namedType.getFields(); - for (const [serviceName, selectionSets] of Object.entries( - typeFederationMetadata.keys, - )) { - for (const selectionSet of selectionSets) { - for (const field of selectionSet as FieldNode[]) { - const name = field.name.value; - - // find corresponding field for each selected field - const matchingField = allFieldsInType[name]; - - // NOTE: We don't need to warn if there is no matching field. - // keyFieldsSelectInvalidType already does that :) - if (matchingField) { - const fieldFederationMetadata = getFederationMetadata(matchingField); - // warn if not from base type OR IF IT WAS OVERWITTEN - if (fieldFederationMetadata?.serviceName) { - errors.push( - errorWithCode( - 'KEY_FIELDS_MISSING_ON_BASE', - logServiceAndType(serviceName, typeName) + - `A @key selects ${name}, but ${typeName}.${name} was either created or overwritten by ${fieldFederationMetadata.serviceName}, not ${serviceName}`, - ), - ); - } - } - } - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keyFieldsSelectInvalidType.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keyFieldsSelectInvalidType.ts deleted file mode 100644 index 63d089c..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keyFieldsSelectInvalidType.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { - isObjectType, - FieldNode, - isInterfaceType, - isNonNullType, - getNullableType, - isUnionType, - GraphQLError, -} from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * - The fields argument can not have root fields that result in a list - * - The fields argument can not have root fields that result in an interface - * - The fields argument can not have root fields that result in a union type - */ -export const keyFieldsSelectInvalidType: PostCompositionValidator = ({ - schema, -}) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!isObjectType(namedType)) continue; - - const typeFederationMetadata = getFederationMetadata(namedType); - if (typeFederationMetadata?.keys) { - const allFieldsInType = namedType.getFields(); - for (const [serviceName, selectionSets] of Object.entries( - typeFederationMetadata.keys, - )) { - for (const selectionSet of selectionSets) { - for (const field of selectionSet as FieldNode[]) { - const name = field.name.value; - - // find corresponding field for each selected field - const matchingField = allFieldsInType[name]; - if (!matchingField) { - errors.push( - errorWithCode( - 'KEY_FIELDS_SELECT_INVALID_TYPE', - logServiceAndType(serviceName, typeName) + - `A @key selects ${name}, but ${typeName}.${name} could not be found`, - ), - ); - } - - if (matchingField) { - if ( - isInterfaceType(matchingField.type) || - (isNonNullType(matchingField.type) && - isInterfaceType(getNullableType(matchingField.type))) - ) { - errors.push( - errorWithCode( - 'KEY_FIELDS_SELECT_INVALID_TYPE', - logServiceAndType(serviceName, typeName) + - `A @key selects ${typeName}.${name}, which is an interface type. Keys cannot select interfaces.`, - ), - ); - } - - if ( - isUnionType(matchingField.type) || - (isNonNullType(matchingField.type) && - isUnionType(getNullableType(matchingField.type))) - ) { - errors.push( - errorWithCode( - 'KEY_FIELDS_SELECT_INVALID_TYPE', - logServiceAndType(serviceName, typeName) + - `A @key selects ${typeName}.${name}, which is a union type. Keys cannot select union types.`, - ), - ); - } - } - } - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keysMatchBaseService.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keysMatchBaseService.ts deleted file mode 100644 index 62e4cc5..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/keysMatchBaseService.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { isObjectType, GraphQLError, SelectionNode } from 'graphql'; -import { - logServiceAndType, - errorWithCode, - getFederationMetadata, -} from '../../utils'; -import { PostCompositionValidator } from '.'; -import { printWithReducedWhitespace } from '../../../service'; - -/** - * 1. KEY_MISSING_ON_BASE - Originating types must specify at least 1 @key directive - * 2. MULTIPLE_KEYS_ON_EXTENSION - Extending services may not use more than 1 @key directive - * 3. KEY_NOT_SPECIFIED - Extending services must use a valid @key specified by the originating type - */ -export const keysMatchBaseService: PostCompositionValidator = function ({ - schema, -}) { - const errors: GraphQLError[] = []; - const types = schema.getTypeMap(); - for (const [parentTypeName, parentType] of Object.entries(types)) { - // Only object types have fields - if (!isObjectType(parentType)) continue; - - const typeFederationMetadata = getFederationMetadata(parentType); - - if (typeFederationMetadata) { - const { serviceName, keys } = typeFederationMetadata; - - if (serviceName && keys) { - if (!keys[serviceName]) { - errors.push( - errorWithCode( - 'KEY_MISSING_ON_BASE', - logServiceAndType(serviceName, parentTypeName) + - `appears to be an entity but no @key directives are specified on the originating type.`, - ), - ); - continue; - } - - const availableKeys = keys[serviceName].map(printFieldSet); - Object.entries(keys) - // No need to validate that the owning service matches its specified keys - .filter(([service]) => service !== serviceName) - .forEach(([extendingService, keyFields]) => { - // Extensions can't specify more than one key - if (keyFields.length > 1) { - errors.push( - errorWithCode( - 'MULTIPLE_KEYS_ON_EXTENSION', - logServiceAndType(extendingService, parentTypeName) + - `is extended from service ${serviceName} but specifies multiple @key directives. Extensions may only specify one @key.`, - ), - ); - return; - } - - // This isn't representative of an invalid graph, but it is an existing - // limitation of the query planner that we want to validate against for now. - // In the future, `@key`s just need to be "reachable" through a number of - // services which can link one key to another via "joins". - const extensionKey = printFieldSet(keyFields[0]); - if (!availableKeys.includes(extensionKey)) { - errors.push( - errorWithCode( - 'KEY_NOT_SPECIFIED', - logServiceAndType(extendingService, parentTypeName) + - `extends from ${serviceName} but specifies an invalid @key directive. Valid @key directives are specified by the originating type. Available @key directives for this type are:\n` + - `\t${availableKeys - .map((fieldSet) => `@key(fields: "${fieldSet}")`) - .join('\n\t')}`, - ), - ); - return; - } - }); - } - } - } - - return errors; -}; - -function printFieldSet(selections: readonly SelectionNode[]): string { - return selections.map(printWithReducedWhitespace).join(' '); -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesFieldsMissingExternal.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesFieldsMissingExternal.ts deleted file mode 100644 index 6a4cb2e..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesFieldsMissingExternal.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { isObjectType, FieldNode, GraphQLError } from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * for every field in a @provides, there should be a matching @external - */ -export const providesFieldsMissingExternal: PostCompositionValidator = ({ - schema, -}) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - // Only object types have fields - if (!isObjectType(namedType)) continue; - - // for each field, if there's a requires on it, check that there's a matching - // @external field, and that the types referenced are from the base type - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = getFederationMetadata(field); - const serviceName = fieldFederationMetadata?.serviceName; - - // serviceName should always exist on fields that have @provides federation data, since - // the only case where serviceName wouldn't exist is on a base type, and in that case, - // the `provides` metadata should never get added to begin with. This should be caught in - // composition work. This kind of error should be validated _before_ composition. - if (!serviceName) continue; - - const fieldType = field.type; - if (!isObjectType(fieldType)) continue; - - const fieldTypeFederationMetadata = getFederationMetadata(fieldType); - - const externalFieldsOnTypeForService = fieldTypeFederationMetadata?.externals?.[serviceName]; - - if (fieldFederationMetadata?.provides) { - const selections = fieldFederationMetadata.provides as FieldNode[]; - for (const selection of selections) { - const foundMatchingExternal = externalFieldsOnTypeForService - ? externalFieldsOnTypeForService.some( - ext => ext.field.name.value === selection.name.value, - ) - : undefined; - if (!foundMatchingExternal) { - errors.push( - errorWithCode( - 'PROVIDES_FIELDS_MISSING_EXTERNAL', - logServiceAndType(serviceName, typeName, fieldName) + - `provides the field \`${selection.name.value}\` and requires ${fieldType}.${selection.name.value} to be marked as @external.`, - ), - ); - } - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesFieldsSelectInvalidType.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesFieldsSelectInvalidType.ts deleted file mode 100644 index 8b30847..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesFieldsSelectInvalidType.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { - GraphQLError, - isObjectType, - FieldNode, - isListType, - isInterfaceType, - isNonNullType, - getNullableType, - isUnionType, -} from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * - The fields argument can not have root fields that result in a list - * - The fields argument can not have root fields that result in an interface - * - The fields argument can not have root fields that result in a union type - */ -export const providesFieldsSelectInvalidType: PostCompositionValidator = ({ - schema, -}) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - if (!isObjectType(namedType)) continue; - - // for each field, if there's a provides on it, check the type of the field - // it references - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = getFederationMetadata(field); - const serviceName = fieldFederationMetadata?.serviceName; - - // serviceName should always exist on fields that have @provides federation data, since - // the only case where serviceName wouldn't exist is on a base type, and in that case, - // the `provides` metadata should never get added to begin with. This should be caught in - // composition work. This kind of error should be validated _before_ composition. - if (!serviceName) continue; - - const fieldType = field.type; - if (!isObjectType(fieldType)) continue; - const allFields = fieldType.getFields(); - - if (fieldFederationMetadata?.provides) { - const selections = fieldFederationMetadata.provides as FieldNode[]; - for (const selection of selections) { - const name = selection.name.value; - const matchingField = allFields[name]; - if (!matchingField) { - errors.push( - errorWithCode( - 'PROVIDES_FIELDS_SELECT_INVALID_TYPE', - logServiceAndType(serviceName, typeName, fieldName) + - `A @provides selects ${name}, but ${fieldType.name}.${name} could not be found`, - ), - ); - continue; - } - - if ( - isListType(matchingField.type) || - (isNonNullType(matchingField.type) && - isListType(getNullableType(matchingField.type))) - ) { - errors.push( - errorWithCode( - 'PROVIDES_FIELDS_SELECT_INVALID_TYPE', - logServiceAndType(serviceName, typeName, fieldName) + - `A @provides selects ${fieldType.name}.${name}, which is a list type. A field cannot @provide lists.`, - ), - ); - } - if ( - isInterfaceType(matchingField.type) || - (isNonNullType(matchingField.type) && - isInterfaceType(getNullableType(matchingField.type))) - ) { - errors.push( - errorWithCode( - 'PROVIDES_FIELDS_SELECT_INVALID_TYPE', - logServiceAndType(serviceName, typeName, fieldName) + - `A @provides selects ${fieldType.name}.${name}, which is an interface type. A field cannot @provide interfaces.`, - ), - ); - } - - if ( - isUnionType(matchingField.type) || - (isNonNullType(matchingField.type) && - isUnionType(getNullableType(matchingField.type))) - ) { - errors.push( - errorWithCode( - 'PROVIDES_FIELDS_SELECT_INVALID_TYPE', - logServiceAndType(serviceName, typeName, fieldName) + - `A @provides selects ${fieldType.name}.${name}, which is a union type. A field cannot @provide union types.`, - ), - ); - } - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesNotOnEntity.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesNotOnEntity.ts deleted file mode 100644 index 6fd8f36..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/providesNotOnEntity.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { - isObjectType, - GraphQLError, - isListType, - isNonNullType, -} from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * Provides directive can only be added to return types that are entities - */ -export const providesNotOnEntity: PostCompositionValidator = ({ schema }) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - // Only object types have fields - if (!isObjectType(namedType)) continue; - - // for each field, if there's a provides on it, check that the containing - // type has a `key` field under the federation metadata. - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = getFederationMetadata(field) - const serviceName = fieldFederationMetadata?.serviceName; - - // serviceName should always exist on fields that have @provides federation data, since - // the only case where serviceName wouldn't exist is on a base type, and in that case, - // the `provides` metadata should never get added to begin with. This should be caught in - // composition work. This kind of error should be validated _before_ composition. - if ( - !serviceName && - fieldFederationMetadata?.provides && - !fieldFederationMetadata?.belongsToValueType - ) - throw Error( - 'Internal Consistency Error: field with provides information does not have service name.', - ); - if (!serviceName) continue; - - const getBaseType = (type: any): any => - isListType(type) || isNonNullType(type) - ? getBaseType(type.ofType) - : type; - const baseType = getBaseType(field.type); - - // field has a @provides directive on it - if (fieldFederationMetadata?.provides) { - if (!isObjectType(baseType)) { - errors.push( - errorWithCode( - 'PROVIDES_NOT_ON_ENTITY', - logServiceAndType(serviceName, typeName, fieldName) + - `uses the @provides directive but \`${typeName}.${fieldName}\` returns \`${field.type}\`, which is not an Object or List type. @provides can only be used on Object types with at least one @key, or Lists of such Objects.`, - ), - ); - continue; - } - - const fieldType = types[baseType.name]; - const selectedFieldIsEntity = getFederationMetadata(fieldType)?.keys; - - if (!selectedFieldIsEntity) { - errors.push( - errorWithCode( - 'PROVIDES_NOT_ON_ENTITY', - logServiceAndType(serviceName, typeName, fieldName) + - `uses the @provides directive but \`${typeName}.${fieldName}\` does not return a type that has a @key. Try adding a @key to the \`${baseType}\` type.`, - ), - ); - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/requiresFieldsMissingExternal.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/requiresFieldsMissingExternal.ts deleted file mode 100644 index 02c049f..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/requiresFieldsMissingExternal.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { isObjectType, FieldNode, GraphQLError } from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * for every @requires, there should be a matching @external - */ -export const requiresFieldsMissingExternal: PostCompositionValidator = ({ - schema, -}) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - // Only object types have fields - if (!isObjectType(namedType)) continue; - - // for each field, if there's a requires on it, check that there's a matching - // @external field, and that the types referenced are from the base type - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = getFederationMetadata(field); - const serviceName = fieldFederationMetadata?.serviceName; - - // serviceName should always exist on fields that have @requires federation data, since - // the only case where serviceName wouldn't exist is on a base type, and in that case, - // the `requires` metadata should never get added to begin with. This should be caught in - // composition work. This kind of error should be validated _before_ composition. - if (!serviceName) continue; - - if (fieldFederationMetadata?.requires) { - const typeFederationMetadata = getFederationMetadata(namedType); - const externalFieldsOnTypeForService = - typeFederationMetadata?.externals?.[serviceName]; - - const selections = fieldFederationMetadata?.requires as FieldNode[]; - for (const selection of selections) { - const foundMatchingExternal = externalFieldsOnTypeForService - ? externalFieldsOnTypeForService.some( - ext => ext.field.name.value === selection.name.value, - ) - : undefined; - if (!foundMatchingExternal) { - errors.push( - errorWithCode( - 'REQUIRES_FIELDS_MISSING_EXTERNAL', - logServiceAndType(serviceName, typeName, fieldName) + - `requires the field \`${selection.name.value}\` to be marked as @external.`, - ), - ); - } - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/requiresFieldsMissingOnBase.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/requiresFieldsMissingOnBase.ts deleted file mode 100644 index 401dcd6..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/postComposition/requiresFieldsMissingOnBase.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { isObjectType, FieldNode, GraphQLError } from 'graphql'; -import { logServiceAndType, errorWithCode, getFederationMetadata } from '../../utils'; -import { PostCompositionValidator } from '.'; - -/** - * The fields arg in @requires can only reference fields on the base type - */ -export const requiresFieldsMissingOnBase: PostCompositionValidator = ({ - schema, -}) => { - const errors: GraphQLError[] = []; - - const types = schema.getTypeMap(); - for (const [typeName, namedType] of Object.entries(types)) { - // Only object types have fields - if (!isObjectType(namedType)) continue; - - // for each field, if there's a requires on it, check that there's a matching - // @external field, and that the types referenced are from the base type - for (const [fieldName, field] of Object.entries(namedType.getFields())) { - const fieldFederationMetadata = getFederationMetadata(field); - const serviceName = fieldFederationMetadata?.serviceName; - - // serviceName should always exist on fields that have @requires federation data, since - // the only case where serviceName wouldn't exist is on a base type, and in that case, - // the `requires` metadata should never get added to begin with. This should be caught in - // composition work. This kind of error should be validated _before_ composition. - if (!serviceName) continue; - - if (fieldFederationMetadata?.requires) { - const selections = fieldFederationMetadata.requires as FieldNode[]; - for (const selection of selections) { - // check the selections are from the _base_ type (no serviceName) - const matchingFieldOnType = namedType.getFields()[ - selection.name.value - ]; - const typeFederationMetadata = getFederationMetadata(matchingFieldOnType); - - if (typeFederationMetadata?.serviceName) { - errors.push( - errorWithCode( - 'REQUIRES_FIELDS_MISSING_ON_BASE', - logServiceAndType(serviceName, typeName, fieldName) + - `requires the field \`${selection.name.value}\` to be @external. @external fields must exist on the base type, not an extension.`, - ), - ); - } - } - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/duplicateEnumOrScalar.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/duplicateEnumOrScalar.test.ts deleted file mode 100644 index cde9552..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/duplicateEnumOrScalar.test.ts +++ /dev/null @@ -1,97 +0,0 @@ -import gql from 'graphql-tag'; -import { duplicateEnumOrScalar as validateDuplicateEnumOrScalar } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('duplicateEnumOrScalar', () => { - it('does not error with proper enum and scalar usage', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - shippingDate: Date - type: ProductType - } - - enum ProductType { - BOOK - FURNITURE - } - - extend enum ProductType { - DIGITAL - } - - scalar Date - `, - name: 'serviceA', - }; - - const warnings = validateDuplicateEnumOrScalar(serviceA); - expect(warnings).toEqual([]); - }); - it('errors when there are multiple definitions of the same enum', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - - enum ProductType { - BOOK - FURNITURE - } - - enum ProductType { - DIGITAL - } - `, - name: 'serviceA', - }; - - const warnings = validateDuplicateEnumOrScalar(serviceA); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "DUPLICATE_ENUM_DEFINITION", - "message": "[serviceA] ProductType -> The enum, \`ProductType\` was defined multiple times in this service. Remove one of the definitions for \`ProductType\`", - }, - ] - `); - }); - - it('errors when there are multiple definitions of the same scalar', () => { - const serviceA = { - typeDefs: gql` - scalar Date - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - deliveryDate: Date - } - - scalar Date - `, - name: 'serviceA', - }; - - const warnings = validateDuplicateEnumOrScalar(serviceA); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "DUPLICATE_SCALAR_DEFINITION", - "message": "[serviceA] Date -> The scalar, \`Date\` was defined multiple times in this service. Remove one of the definitions for \`Date\`", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/duplicateEnumValue.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/duplicateEnumValue.test.ts deleted file mode 100644 index 6bc91a5..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/duplicateEnumValue.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -import gql from 'graphql-tag'; -import { duplicateEnumValue as validateDuplicateEnumValue } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('duplicateEnumValue', () => { - it('does not error with proper enum usage', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - - enum ProductType { - BOOK - FURNITURE - } - - extend enum ProductType { - DIGITAL - } - `, - name: 'serviceA', - }; - - const warnings = validateDuplicateEnumValue(serviceA); - expect(warnings).toEqual([]); - }); - it('errors when there are duplicate enum values in a single service', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - - enum ProductType { - BOOK - FURNITURE - } - - extend enum ProductType { - DIGITAL - BOOK - } - `, - name: 'serviceA', - }; - - const warnings = validateDuplicateEnumValue(serviceA); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "DUPLICATE_ENUM_VALUE", - "message": "[serviceA] ProductType.BOOK -> The enum, \`ProductType\` has multiple definitions of the \`BOOK\` value.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/externalUsedOnBase.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/externalUsedOnBase.test.ts deleted file mode 100644 index 2b1cad0..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/externalUsedOnBase.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -import gql from 'graphql-tag'; -import { externalUsedOnBase as validateExternalUsedOnBase } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('externalUsedOnBase', () => { - it('does not warn when no externals directives are defined', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const warnings = validateExternalUsedOnBase(serviceA); - expect(warnings).toEqual([]); - }); - - it('warns when there is a @external field on a base type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! @external - id: ID! - } - `, - name: 'serviceA', - }; - - const warnings = validateExternalUsedOnBase(serviceA); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTERNAL_USED_ON_BASE", - "message": "[serviceA] Product.upc -> Found extraneous @external directive. @external cannot be used on base types.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/keyFieldsMissingExternal.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/keyFieldsMissingExternal.test.ts deleted file mode 100644 index 3811694..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/keyFieldsMissingExternal.test.ts +++ /dev/null @@ -1,181 +0,0 @@ -import gql from 'graphql-tag'; -import { keyFieldsMissingExternal as validateKeyFieldsMissingExternal } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('keyFieldsMissingExternal', () => { - it('has no warnings when @key fields reference an @external field', () => { - const serviceA = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! @external - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const warnings = validateKeyFieldsMissingExternal(serviceA); - expect(warnings).toHaveLength(0); - }); - - it('has no warnings with correct selection set / nested @external usage', () => { - const serviceA = { - typeDefs: gql` - extend type Car @key(fields: "model { name kit { upc } } year") { - model: Model! @external - year: String! @external - color: String! - } - - extend type Model { - name: String! @external - kit: Kit @external - } - - extend type Kit { - upc: String! @external - } - `, - name: 'serviceA', - }; - - const warnings = validateKeyFieldsMissingExternal(serviceA); - expect(warnings).toHaveLength(0); - }); - - it('has no warnings with @deprecated directive usage', () => { - const serviceA = { - typeDefs: gql` - extend type Car @key(fields: "model { name kit { upc } } year") { - model: Model! @external - year: String! @external - color: String! @deprecated(reason: "Use colors instead") - colors: Color! - } - - extend type Model { - name: String! @external - kit: Kit @external - } - - extend type Kit { - upc: String! @external - } - - enum Color { - Red - Blue - } - `, - name: 'serviceA', - }; - - const warnings = validateKeyFieldsMissingExternal(serviceA); - expect(warnings).toHaveLength(0); - }); - - it("warns when a @key argument doesn't reference an @external field", () => { - const serviceA = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const warnings = validateKeyFieldsMissingExternal(serviceA); - expect(warnings).toHaveLength(1); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "KEY_FIELDS_MISSING_EXTERNAL", - "message": "[serviceA] Product -> A @key directive specifies the \`sku\` field which has no matching @external field.", - }, - ] - `); - }); - - it("warns when a @key argument references a field that isn't known", () => { - const serviceA = { - typeDefs: gql` - extend type Product @key(fields: "sku") { - upc: String! @external - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const warnings = validateKeyFieldsMissingExternal(serviceA); - expect(warnings).toHaveLength(1); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "KEY_FIELDS_MISSING_EXTERNAL", - "message": "[serviceA] Product -> A @key directive specifies a field which is not found in this service. Add a field to this type with @external.", - }, - ] - `); - }); - - it("warns when a @key argument doesn't reference an @external field", () => { - const serviceA = { - typeDefs: gql` - extend type Car @key(fields: "model { name kit { upc } } year") { - model: Model! @external - year: String! @external - } - - extend type Model { - name: String! - kit: Kit - } - - type Kit { - upc: String! - } - `, - name: 'serviceA', - }; - - const warnings = validateKeyFieldsMissingExternal(serviceA); - expect(warnings).toHaveLength(3); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "KEY_FIELDS_MISSING_EXTERNAL", - "message": "[serviceA] Model -> A @key directive specifies the \`name\` field which has no matching @external field.", - }, - Object { - "code": "KEY_FIELDS_MISSING_EXTERNAL", - "message": "[serviceA] Model -> A @key directive specifies the \`kit\` field which has no matching @external field.", - }, - Object { - "code": "KEY_FIELDS_MISSING_EXTERNAL", - "message": "[serviceA] Kit -> A @key directive specifies the \`upc\` field which has no matching @external field.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/requiresUsedOnBase.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/requiresUsedOnBase.test.ts deleted file mode 100644 index fc5d42c..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/requiresUsedOnBase.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -import gql from 'graphql-tag'; -import { requiresUsedOnBase as validateRequiresUsedOnBase } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('requiresUsedOnBase', () => { - it('does not warn when no requires directives are defined', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "color { id value }") { - sku: String! - upc: String! - color: Color! - } - - type Color { - id: ID! - value: String! - } - `, - name: 'serviceA', - }; - - const warnings = validateRequiresUsedOnBase(serviceA); - expect(warnings).toEqual([]); - }); - - it('warns when there is a @requires field on a base type', () => { - const serviceA = { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: String! - upc: String! @requires(fields: "sku") - id: ID! - } - `, - name: 'serviceA', - }; - - const warnings = validateRequiresUsedOnBase(serviceA); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "REQUIRES_USED_ON_BASE", - "message": "[serviceA] Product.upc -> Found extraneous @requires directive. @requires cannot be used on base types.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/reservedFieldUsed.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/reservedFieldUsed.test.ts deleted file mode 100644 index 8d03a00..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/reservedFieldUsed.test.ts +++ /dev/null @@ -1,153 +0,0 @@ -import gql from 'graphql-tag'; -import { reservedFieldUsed as validateReservedFieldUsed } from '..'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('reservedFieldUsed', () => { - it('has no warnings when _service and _entities arent used', () => { - const serviceA = { - typeDefs: gql` - type Query { - product: Product - } - - type Product { - sku: String - } - `, - name: 'serviceA', - }; - - const warnings = validateReservedFieldUsed(serviceA); - expect(warnings).toEqual([]); - }); - - it('warns when _service or _entities is used at the query root', () => { - const serviceA = { - typeDefs: gql` - type Query { - product: Product - _service: String! - _entities: String! - } - - type Product { - sku: String - } - `, - name: 'serviceA', - }; - - const warnings = validateReservedFieldUsed(serviceA); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "RESERVED_FIELD_USED", - "message": "[serviceA] Query._service -> _service is a field reserved for federation and can't be used at the Query root.", - }, - Object { - "code": "RESERVED_FIELD_USED", - "message": "[serviceA] Query._entities -> _entities is a field reserved for federation and can't be used at the Query root.", - }, - ] - `); - }); - - it('warns when _service or _entities is used in a schema extension', () => { - const schemaDefinition = { - typeDefs: gql` - schema { - query: RootQuery - } - - type RootQuery { - product: Product - _entities: String! - } - - type Product { - sku: String - } - `, - name: 'schemaDefinition', - }; - - const schemaExtension = { - typeDefs: gql` - extend schema { - query: RootQuery - } - - type RootQuery { - _service: String - product: Product - } - - type Product { - sku: String - } - `, - name: 'schemaExtension', - }; - - const schemaDefinitionWarnings = validateReservedFieldUsed( - schemaDefinition, - ); - const schemaExtensionWarnings = validateReservedFieldUsed(schemaExtension); - - expect(schemaDefinitionWarnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "RESERVED_FIELD_USED", - "message": "[schemaDefinition] RootQuery._entities -> _entities is a field reserved for federation and can't be used at the Query root.", - }, - ] - `); - expect(schemaExtensionWarnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "RESERVED_FIELD_USED", - "message": "[schemaExtension] RootQuery._service -> _service is a field reserved for federation and can't be used at the Query root.", - }, - ] - `); - }); - - it('warns when reserved fields are used on custom Query types', () => { - const serviceA = { - typeDefs: gql` - schema { - query: RootQuery - } - - type RootQuery { - product: Product - _service: String - _entities: String - } - - type Product { - sku: String - } - `, - name: 'serviceA', - }; - - const warnings = validateReservedFieldUsed(serviceA); - - expect(warnings).toHaveLength(2); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "RESERVED_FIELD_USED", - "message": "[serviceA] RootQuery._service -> _service is a field reserved for federation and can't be used at the Query root.", - }, - Object { - "code": "RESERVED_FIELD_USED", - "message": "[serviceA] RootQuery._entities -> _entities is a field reserved for federation and can't be used at the Query root.", - }, - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/tsconfig.json b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/tsconfig.json deleted file mode 100644 index 9bcedd5..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/__tests__/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../../../../tsconfig.test.base", - "include": ["**/*"], - "references": [{ "path": "../../../../../" }] -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/duplicateEnumOrScalar.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/duplicateEnumOrScalar.ts deleted file mode 100644 index b375205..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/duplicateEnumOrScalar.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { visit, GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; - -import { logServiceAndType, errorWithCode } from '../../utils'; - -export const duplicateEnumOrScalar = ({ - name: serviceName, - typeDefs, -}: ServiceDefinition) => { - const errors: GraphQLError[] = []; - - // keep track of every enum and scalar and error if there are ever duplicates - const enums: string[] = []; - const scalars: string[] = []; - - visit(typeDefs, { - EnumTypeDefinition(definition) { - const name = definition.name.value; - if (enums.includes(name)) { - errors.push( - errorWithCode( - 'DUPLICATE_ENUM_DEFINITION', - logServiceAndType(serviceName, name) + - `The enum, \`${name}\` was defined multiple times in this service. Remove one of the definitions for \`${name}\``, - ), - ); - return definition; - } - enums.push(name); - return definition; - }, - ScalarTypeDefinition(definition) { - const name = definition.name.value; - if (scalars.includes(name)) { - errors.push( - errorWithCode( - 'DUPLICATE_SCALAR_DEFINITION', - logServiceAndType(serviceName, name) + - `The scalar, \`${name}\` was defined multiple times in this service. Remove one of the definitions for \`${name}\``, - ), - ); - return definition; - } - scalars.push(name); - return definition; - }, - }); - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/duplicateEnumValue.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/duplicateEnumValue.ts deleted file mode 100644 index 5e83eb4..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/duplicateEnumValue.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { visit, GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; - -import { logServiceAndType, errorWithCode } from '../../utils'; - -export const duplicateEnumValue = ({ - name: serviceName, - typeDefs, -}: ServiceDefinition) => { - const errors: GraphQLError[] = []; - - const enums: { [name: string]: string[] } = {}; - - visit(typeDefs, { - EnumTypeDefinition(definition) { - const name = definition.name.value; - const enumValues = - definition.values && definition.values.map(value => value.name.value); - - if (!enumValues) return definition; - - if (enums[name] && enums[name].length) { - enumValues.map(valueName => { - if (enums[name].includes(valueName)) { - errors.push( - errorWithCode( - 'DUPLICATE_ENUM_VALUE', - logServiceAndType(serviceName, name, valueName) + - `The enum, \`${name}\` has multiple definitions of the \`${valueName}\` value.`, - ), - ); - return; - } - enums[name].push(valueName); - }); - } else { - enums[name] = enumValues; - } - - return definition; - }, - EnumTypeExtension(definition) { - const name = definition.name.value; - const enumValues = - definition.values && definition.values.map(value => value.name.value); - - if (!enumValues) return definition; - - if (enums[name] && enums[name].length) { - enumValues.map(valueName => { - if (enums[name].includes(valueName)) { - errors.push( - errorWithCode( - 'DUPLICATE_ENUM_VALUE', - logServiceAndType(serviceName, name, valueName) + - `The enum, \`${name}\` has multiple definitions of the \`${valueName}\` value.`, - ), - ); - return; - } - enums[name].push(valueName); - }); - } else { - enums[name] = enumValues; - } - - return definition; - }, - }); - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/externalUsedOnBase.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/externalUsedOnBase.ts deleted file mode 100644 index ddb2b2b..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/externalUsedOnBase.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { visit, GraphQLError } from 'graphql'; -import { ServiceDefinition } from '../../types'; - -import { logServiceAndType, errorWithCode } from '../../utils'; - -/** - * - There are no fields with @external on base type definitions - */ -export const externalUsedOnBase = ({ - name: serviceName, - typeDefs, -}: ServiceDefinition) => { - const errors: GraphQLError[] = []; - - visit(typeDefs, { - ObjectTypeDefinition(typeDefinition) { - if (typeDefinition.fields) { - for (const field of typeDefinition.fields) { - if (field.directives) { - for (const directive of field.directives) { - const name = directive.name.value; - if (name === 'external') { - errors.push( - errorWithCode( - 'EXTERNAL_USED_ON_BASE', - logServiceAndType( - serviceName, - typeDefinition.name.value, - field.name.value, - ) + - `Found extraneous @external directive. @external cannot be used on base types.`, - ), - ); - } - } - } - } - } - }, - }); - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/index.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/index.ts deleted file mode 100644 index c2d78e4..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { externalUsedOnBase } from './externalUsedOnBase'; -export { requiresUsedOnBase } from './requiresUsedOnBase'; -export { keyFieldsMissingExternal } from './keyFieldsMissingExternal'; -export { reservedFieldUsed } from './reservedFieldUsed'; -export { duplicateEnumOrScalar } from './duplicateEnumOrScalar'; -export { duplicateEnumValue } from './duplicateEnumValue'; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/keyFieldsMissingExternal.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/keyFieldsMissingExternal.ts deleted file mode 100644 index eb8fc64..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/keyFieldsMissingExternal.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { - visit, - visitWithTypeInfo, - TypeInfo, - parse, - GraphQLSchema, - GraphQLError, - specifiedDirectives, -} from 'graphql'; -import { buildSchemaFromSDL } from 'apollo-graphql'; -import { federationDirectives } from '../../../directives'; -import { ServiceDefinition } from '../../types'; -import { - findDirectivesOnTypeOrField, - isStringValueNode, - logServiceAndType, - errorWithCode, - isNotNullOrUndefined -} from '../../utils'; - -/** - * For every @key directive, it must reference a field marked as @external - */ -export const keyFieldsMissingExternal = ({ - name: serviceName, - typeDefs, -}: ServiceDefinition) => { - const errors: GraphQLError[] = []; - - // Build an array that accounts for all key directives on type extensions. - let keyDirectiveInfoOnTypeExtensions: { - typeName: string; - keyArgument: string; - }[] = []; - visit(typeDefs, { - ObjectTypeExtension(node) { - const keyDirectivesOnTypeExtension = findDirectivesOnTypeOrField( - node, - 'key', - ); - - const keyDirectivesInfo = keyDirectivesOnTypeExtension - .map(keyDirective => - keyDirective.arguments && - isStringValueNode(keyDirective.arguments[0].value) - ? { - typeName: node.name.value, - keyArgument: keyDirective.arguments[0].value.value, - } - : null, - ) - .filter(isNotNullOrUndefined); - - keyDirectiveInfoOnTypeExtensions.push(...keyDirectivesInfo); - }, - }); - - // this allows us to build a partial schema - let schema = new GraphQLSchema({ - query: undefined, - directives: [...specifiedDirectives, ...federationDirectives], - }); - try { - schema = buildSchemaFromSDL(typeDefs, schema); - } catch (e) { - errors.push(e); - return errors; - } - - const typeInfo = new TypeInfo(schema); - - for (const { typeName, keyArgument } of keyDirectiveInfoOnTypeExtensions) { - const keyDirectiveSelectionSet = parse( - `fragment __generated on ${typeName} { ${keyArgument} }`, - ); - visit( - keyDirectiveSelectionSet, - visitWithTypeInfo(typeInfo, { - Field() { - const fieldDef = typeInfo.getFieldDef(); - const parentType = typeInfo.getParentType(); - if (parentType) { - if (!fieldDef) { - // TODO: find all fields that have @external and suggest them / heursitic match - errors.push( - errorWithCode( - 'KEY_FIELDS_MISSING_EXTERNAL', - logServiceAndType(serviceName, parentType.name) + - `A @key directive specifies a field which is not found in this service. Add a field to this type with @external.`, - ), - ); - return; - } - const externalDirectivesOnField = findDirectivesOnTypeOrField( - fieldDef.astNode, - 'external', - ); - - if (externalDirectivesOnField.length === 0) { - errors.push( - errorWithCode( - 'KEY_FIELDS_MISSING_EXTERNAL', - logServiceAndType(serviceName, parentType.name) + - `A @key directive specifies the \`${fieldDef.name}\` field which has no matching @external field.`, - ), - ); - } - } - }, - }), - ); - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/requiresUsedOnBase.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/requiresUsedOnBase.ts deleted file mode 100644 index a70a32b..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/requiresUsedOnBase.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { GraphQLError, visit } from 'graphql'; -import { ServiceDefinition } from '../../types'; - -import { logServiceAndType, errorWithCode } from '../../utils'; - -/** - * - There are no fields with @requires on base type definitions - */ -export const requiresUsedOnBase = ({ - name: serviceName, - typeDefs, -}: ServiceDefinition) => { - const errors: GraphQLError[] = []; - - visit(typeDefs, { - ObjectTypeDefinition(typeDefinition) { - if (typeDefinition.fields) { - for (const field of typeDefinition.fields) { - if (field.directives) { - for (const directive of field.directives) { - const name = directive.name.value; - if (name === 'requires') { - errors.push( - errorWithCode( - 'REQUIRES_USED_ON_BASE', - logServiceAndType( - serviceName, - typeDefinition.name.value, - field.name.value, - ) + - `Found extraneous @requires directive. @requires cannot be used on base types.`, - ), - ); - } - } - } - } - } - }, - }); - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/reservedFieldUsed.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/reservedFieldUsed.ts deleted file mode 100644 index 0434f7b..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preComposition/reservedFieldUsed.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { GraphQLError, visit } from 'graphql'; -import { ServiceDefinition } from '../../types'; -import { - logServiceAndType, - errorWithCode, - reservedRootFields -} from '../../utils'; - -/** - * - Schemas should not define the _service or _entitites fields on the query root - */ -export const reservedFieldUsed = ({ - name: serviceName, - typeDefs, -}: ServiceDefinition) => { - const errors: GraphQLError[] = []; - - let rootQueryName = 'Query'; - visit(typeDefs, { - // find the Query type if redefined - OperationTypeDefinition(node) { - if (node.operation === 'query') { - rootQueryName = node.type.name.value; - } - }, - }); - - visit(typeDefs, { - ObjectTypeDefinition(node) { - if (node.name.value === rootQueryName && node.fields) { - for (const field of node.fields) { - const { value: fieldName } = field.name; - if (reservedRootFields.includes(fieldName)) { - errors.push( - errorWithCode( - 'RESERVED_FIELD_USED', - logServiceAndType(serviceName, rootQueryName, fieldName) + - `${fieldName} is a field reserved for federation and can\'t be used at the Query root.`, - ), - ); - } - } - } - }, - }); - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/__tests__/rootFieldUsed.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/__tests__/rootFieldUsed.test.ts deleted file mode 100644 index 69f4673..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/__tests__/rootFieldUsed.test.ts +++ /dev/null @@ -1,170 +0,0 @@ -import gql from 'graphql-tag'; -import { rootFieldUsed as validateRootFieldUsed } from '../'; -import { graphqlErrorSerializer } from '../../../../snapshotSerializers'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); - -describe('rootFieldUsed', () => { - it('has no warnings when no schema definition or extension is provided', () => { - const serviceA = { - typeDefs: gql` - type Query { - product: Product - } - - type Product { - sku: String - } - `, - name: 'serviceA', - }; - - const warnings = validateRootFieldUsed(serviceA); - expect(warnings).toHaveLength(0); - }); - - it('has no warnings when a schema definition / extension is provided, when no default root operation type names are used', () => { - const schemaDefinition = { - typeDefs: gql` - schema { - query: RootQuery - } - - type RootQuery { - product: Product - } - - type Product { - sku: String - } - `, - name: 'schemaDefinition', - }; - - const schemaExtension = { - typeDefs: gql` - extend schema { - query: RootQuery - } - - type RootQuery { - product: Product - } - - type Product { - sku: String - } - `, - name: 'schemaExtension', - }; - - const schemaDefinitionWarnings = validateRootFieldUsed(schemaDefinition); - const schemaExtensionWarnings = validateRootFieldUsed(schemaExtension); - - expect(schemaDefinitionWarnings).toEqual([]); - expect(schemaExtensionWarnings).toEqual([]); - }); - - it('warns when a schema definition / extension is provided, as well as a default root type or extension', () => { - const serviceA = { - typeDefs: gql` - schema { - query: RootQuery - } - - type RootQuery { - product: Product - } - - type Product { - sku: String - } - - type Query { - invalidUseOfQuery: Boolean - } - `, - name: 'serviceA', - }; - - const warnings = validateRootFieldUsed(serviceA); - - expect(warnings).toHaveLength(1); - expect(warnings[0].extensions.code).toEqual('ROOT_QUERY_USED'); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "ROOT_QUERY_USED", - "message": "[serviceA] Query -> Found invalid use of default root operation name \`Query\`. \`Query\` is disallowed when \`Schema.query\` is set to a type other than \`Query\`.", - }, - ] - `); - }); - - it('warns against using default operation type names (Query, Mutation, Subscription) when a non-default operation type name is provided in the schema definition', () => { - const serviceA = { - typeDefs: gql` - schema { - mutation: RootMutation - } - - type RootMutation { - updateProduct(sku: ID!): Product - } - - type Mutation { - invalidUseOfMutation: Boolean - } - `, - name: 'serviceA', - }; - - const warnings = validateRootFieldUsed(serviceA); - - expect(warnings).toHaveLength(1); - expect(warnings).toMatchInlineSnapshot(` - Array [ - Object { - "code": "ROOT_MUTATION_USED", - "message": "[serviceA] Mutation -> Found invalid use of default root operation name \`Mutation\`. \`Mutation\` is disallowed when \`Schema.mutation\` is set to a type other than \`Mutation\`.", - }, - ] - `); - }); - - it("doesn't warn against using default operation type names when no schema definition is provided", () => { - const serviceA = { - typeDefs: gql` - type Query { - validUseOfQuery: Boolean - } - `, - name: 'serviceA', - }; - - const warnings = validateRootFieldUsed(serviceA); - expect(warnings).toHaveLength(0); - }); - - it("doesn't warn against using default operation type names when a schema is defined", () => { - const serviceA = { - typeDefs: gql` - schema { - mutation: Mutation - } - - type Query { - validUseOfQuery: Boolean - } - - type Mutation { - validUseOfMutation: Product - } - `, - name: 'serviceA', - }; - - const warnings = validateRootFieldUsed(serviceA); - expect(warnings).toHaveLength(0); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/index.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/index.ts deleted file mode 100644 index 7ff7179..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { rootFieldUsed } from './rootFieldUsed'; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/rootFieldUsed.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/rootFieldUsed.ts deleted file mode 100644 index 1e6bdc1..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/preNormalization/rootFieldUsed.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { - GraphQLError, - visit, - ObjectTypeDefinitionNode, - ObjectTypeExtensionNode, -} from 'graphql'; -import { ServiceDefinition, DefaultRootOperationTypeName } from '../../types'; -import { - logServiceAndType, - errorWithCode, - defaultRootOperationNameLookup -} from '../../utils'; - -/** - * - When a schema definition or extension is provided, warn user against using - * default root operation type names for types or extensions - * (Query, Mutation, Subscription) - */ -export const rootFieldUsed = ({ - name: serviceName, - typeDefs, -}: ServiceDefinition) => { - const errors: GraphQLError[] = []; - - // Array of default root operation names - const defaultRootOperationNames = Object.values( - defaultRootOperationNameLookup, - ); - - const disallowedTypeNames: { - [key in DefaultRootOperationTypeName]?: boolean; - } = {}; - - let hasSchemaDefinitionOrExtension = false; - visit(typeDefs, { - OperationTypeDefinition(node) { - // If we find at least one root operation type definition, we know the user has - // specified either a schema definition or extension. - hasSchemaDefinitionOrExtension = true; - - if ( - !defaultRootOperationNames.includes(node.type.name - .value as DefaultRootOperationTypeName) - ) { - disallowedTypeNames[ - defaultRootOperationNameLookup[node.operation] - ] = true; - } - }, - }); - - // If a schema or schema extension is defined, we need to warn for each improper - // usage of default root operation names. The conditions for an improper usage are: - // 1. root operation type is defined as a non-default name (i.e. query: RootQuery) - // 2. the respective default operation type name is used as a regular type - if (hasSchemaDefinitionOrExtension) { - visit(typeDefs, { - ObjectTypeDefinition: visitType, - ObjectTypeExtension: visitType, - }); - - function visitType( - node: ObjectTypeDefinitionNode | ObjectTypeExtensionNode, - ) { - if ( - disallowedTypeNames[node.name.value as DefaultRootOperationTypeName] - ) { - const rootOperationName = node.name.value; - errors.push( - errorWithCode( - `ROOT_${rootOperationName.toUpperCase()}_USED`, - logServiceAndType(serviceName, rootOperationName) + - `Found invalid use of default root operation name \`${rootOperationName}\`. \`${rootOperationName}\` is disallowed when \`Schema.${rootOperationName.toLowerCase()}\` is set to a type other than \`${rootOperationName}\`.`, - ), - ); - } - } - } - - return errors; -}; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/matchingEnums.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/matchingEnums.test.ts deleted file mode 100644 index 77b8645..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/matchingEnums.test.ts +++ /dev/null @@ -1,205 +0,0 @@ -import { - GraphQLEnumType, - Kind, - DocumentNode, - validate, - GraphQLSchema, - specifiedDirectives, -} from 'graphql'; -import { validateSDL } from 'graphql/validation/validate'; -import gql from 'graphql-tag'; -import { composeServices, buildMapsFromServiceList } from '../../../compose'; -import { - astSerializer, - typeSerializer, - selectionSetSerializer, -} from '../../../../snapshotSerializers'; -import { normalizeTypeDefs } from '../../../normalize'; -import federationDirectives from '../../../../directives'; -import { ServiceDefinition } from '../../../types'; -import { MatchingEnums } from '../matchingEnums'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(typeSerializer); -expect.addSnapshotSerializer(selectionSetSerializer); - -// simulate the first half of the composition process -const createDefinitionsDocumentForServices = ( - serviceList: ServiceDefinition[], -): DocumentNode => { - const { typeDefinitionsMap } = buildMapsFromServiceList(serviceList); - return { - kind: Kind.DOCUMENT, - definitions: Object.values(typeDefinitionsMap).flat(), - }; -}; - -describe('matchingEnums', () => { - let schema: GraphQLSchema; - - // create a blank schema for each test - beforeEach(() => { - schema = new GraphQLSchema({ - query: undefined, - directives: [...specifiedDirectives, ...federationDirectives], - }); - }); - - it('does not error with matching enums across services', () => { - const serviceList = [ - { - typeDefs: gql` - enum ProductCategory { - BED - BATH - } - `, - name: 'serviceA', - }, - - { - typeDefs: gql` - enum ProductCategory { - BED - BATH - } - `, - name: 'serviceB', - }, - ]; - - const definitionsDocument = createDefinitionsDocumentForServices( - serviceList, - ); - const errors = validateSDL(definitionsDocument, schema, [MatchingEnums]); - expect(errors).toHaveLength(0); - }); - - it('errors when enums in separate services dont match', () => { - const serviceList = [ - { - typeDefs: gql` - enum ProductCategory { - BED - BATH - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - enum ProductCategory { - BEYOND - } - `, - name: 'serviceB', - }, - ]; - - const definitionsDocument = createDefinitionsDocumentForServices( - serviceList, - ); - const errors = validateSDL(definitionsDocument, schema, [MatchingEnums]); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: The \`ProductCategory\` enum does not have identical values in all services. Groups of services with identical values are: [serviceA], [serviceB]], - ] - `); - }); - - it('errors when enums in separate services dont match', () => { - const serviceList = [ - { - typeDefs: gql` - type Query { - products: [Product]! - } - - type Product @key(fields: "sku") { - sku: String! - upc: String! - type: ProductType - } - - enum ProductType { - BOOK - FURNITURE - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - enum ProductType { - FURNITURE - BOOK - DIGITAL - } - `, - name: 'serviceB', - }, - { - typeDefs: gql` - enum ProductType { - FURNITURE - BOOK - DIGITAL - } - `, - name: 'serviceC', - }, - ]; - - const definitionsDocument = createDefinitionsDocumentForServices( - serviceList, - ); - const errors = validateSDL(definitionsDocument, schema, [MatchingEnums]); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: The \`ProductType\` enum does not have identical values in all services. Groups of services with identical values are: [serviceA], [serviceB, serviceC]], - ] - `); - }); - - it('errors when an enum name is defined as another type in a service', () => { - const serviceList = [ - { - typeDefs: gql` - enum ProductType { - BOOK - FURNITURE - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type ProductType { - id: String - } - `, - name: 'serviceB', - }, - { - typeDefs: gql` - enum ProductType { - FURNITURE - BOOK - DIGITAL - } - `, - name: 'serviceC', - }, - ]; - - const definitionsDocument = createDefinitionsDocumentForServices( - serviceList, - ); - const errors = validateSDL(definitionsDocument, schema, [MatchingEnums]); - expect(errors).toMatchInlineSnapshot(` - Array [ - [GraphQLError: [serviceA] ProductType -> ProductType is an enum in [serviceA, serviceC], but not in [serviceB]], - ] - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/matchingUnions.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/matchingUnions.test.ts deleted file mode 100644 index 7a3ec2b..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/matchingUnions.test.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { - GraphQLSchema, - specifiedDirectives, - Kind, - DocumentNode, -} from 'graphql'; -import { validateSDL } from 'graphql/validation/validate'; -import gql from 'graphql-tag'; -import { - typeSerializer, - graphqlErrorSerializer, -} from '../../../../snapshotSerializers'; -import { UniqueUnionTypes } from '..'; -import { ServiceDefinition } from '../../../types'; -import { buildMapsFromServiceList } from '../../../compose'; -import federationDirectives from '../../../../directives'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); -expect.addSnapshotSerializer(typeSerializer); - -function createDocumentsForServices( - serviceList: ServiceDefinition[], -): DocumentNode[] { - const { typeDefinitionsMap, typeExtensionsMap } = buildMapsFromServiceList( - serviceList, - ); - return [ - { - kind: Kind.DOCUMENT, - definitions: Object.values(typeDefinitionsMap).flat(), - }, - { - kind: Kind.DOCUMENT, - definitions: Object.values(typeExtensionsMap).flat(), - }, - ]; -} - -describe('MatchingUnions', () => { - let schema: GraphQLSchema; - - // create a blank schema for each test - beforeEach(() => { - schema = new GraphQLSchema({ - query: undefined, - directives: [...specifiedDirectives, ...federationDirectives], - }); - }); - - it('enforces unique union names on non-identical union types', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - union ProductOrError = Product | Error - - type Error { - code: Int! - message: String! - } - - type Product @key(fields: "sku") { - sku: ID! - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - union ProductOrError = Product - - type Error { - code: Int! - message: String! - } - - extend type Product @key(fields: "sku") { - sku: ID! @external - colors: [String] - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [UniqueUnionTypes]); - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_UNION_TYPES_MISMATCH", - "message": "[serviceA] ProductOrError -> The union \`ProductOrError\` is defined in services \`serviceA\` and \`serviceB\`, however their types do not match. Union types with the same name must also consist of identical types. The type Error is mismatched.", - } - `); - }); - - it('permits duplicate union names for identical union types', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - union ProductOrError = Product | Error - - type Error { - code: Int! - message: String! - } - - type Product @key(fields: "sku") { - sku: ID! - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - union ProductOrError = Product | Error - - type Error { - code: Int! - message: String! - } - - type Product @key(fields: "sku") { - sku: ID! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [UniqueUnionTypes]); - expect(errors).toHaveLength(0); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/possibleTypeExtensions.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/possibleTypeExtensions.test.ts deleted file mode 100644 index 7be0198..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/possibleTypeExtensions.test.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { - Kind, - DocumentNode, - GraphQLSchema, - specifiedDirectives, - extendSchema, -} from 'graphql'; -import { validateSDL } from 'graphql/validation/validate'; -import gql from 'graphql-tag'; -import { buildMapsFromServiceList } from '../../../compose'; -import { - typeSerializer, - graphqlErrorSerializer, -} from '../../../../snapshotSerializers'; -import federationDirectives from '../../../../directives'; -import { ServiceDefinition } from '../../../types'; -import { PossibleTypeExtensions } from '../possibleTypeExtensions'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); -expect.addSnapshotSerializer(typeSerializer); - -// simulate the first half of the composition process -const createDefinitionsDocumentForServices = ( - serviceList: ServiceDefinition[], -): { - definitions: DocumentNode; - extensions: DocumentNode; -} => { - const { typeDefinitionsMap, typeExtensionsMap } = buildMapsFromServiceList( - serviceList, - ); - return { - definitions: { - kind: Kind.DOCUMENT, - definitions: Object.values(typeDefinitionsMap).flat(), - }, - extensions: { - kind: Kind.DOCUMENT, - definitions: Object.values(typeExtensionsMap).flat(), - }, - }; -}; - -describe('PossibleTypeExtensionsType', () => { - let schema: GraphQLSchema; - - // create a blank schema for each test - beforeEach(() => { - schema = new GraphQLSchema({ - query: undefined, - directives: [...specifiedDirectives, ...federationDirectives], - }); - }); - - it('does not error with matching enums across services', () => { - const serviceList = [ - { - typeDefs: gql` - extend type Product { - sku: ID - } - `, - name: 'serviceA', - }, - - { - typeDefs: gql` - type Product { - id: ID! - } - `, - name: 'serviceB', - }, - ]; - - const { definitions, extensions } = createDefinitionsDocumentForServices( - serviceList, - ); - const errors = validateSDL(definitions, schema, [PossibleTypeExtensions]); - schema = extendSchema(schema, definitions, { assumeValidSDL: true }); - errors.push(...validateSDL(extensions, schema, [PossibleTypeExtensions])); - expect(errors).toHaveLength(0); - }); - - it('errors when there is an extension with no base', () => { - const serviceList = [ - { - typeDefs: gql` - extend type Product { - id: ID! - } - `, - name: 'serviceA', - }, - ]; - - const { definitions, extensions } = createDefinitionsDocumentForServices( - serviceList, - ); - const errors = validateSDL(definitions, schema, [PossibleTypeExtensions]); - schema = extendSchema(schema, definitions, { assumeValidSDL: true }); - errors.push(...validateSDL(extensions, schema, [PossibleTypeExtensions])); - - expect(errors).toHaveLength(1); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTENSION_WITH_NO_BASE", - "message": "[serviceA] Product -> \`Product\` is an extension type, but \`Product\` is not defined in any service", - }, - ] - `); - }); - - it('errors when trying to extend a type with a different `Kind`', () => { - const serviceList = [ - { - typeDefs: gql` - extend type Product { - sku: ID - } - `, - name: 'serviceA', - }, - - { - typeDefs: gql` - input Product { - id: ID! - } - `, - name: 'serviceB', - }, - ]; - - const { definitions, extensions } = createDefinitionsDocumentForServices( - serviceList, - ); - const errors = validateSDL(definitions, schema, [PossibleTypeExtensions]); - schema = extendSchema(schema, definitions, { assumeValidSDL: true }); - errors.push(...validateSDL(extensions, schema, [PossibleTypeExtensions])); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "EXTENSION_OF_WRONG_KIND", - "message": "[serviceA] Product -> \`Product\` was originally defined as a InputObjectTypeDefinition and can only be extended by a InputObjectTypeExtension. serviceA defines Product as a ObjectTypeExtension", - }, - ] - `); - }); - - it('does not error', () => { - const serviceList = [ - { - typeDefs: gql` - extend interface Product { - name: String - } - extend type Book implements Product { - sku: ID! - name: String - } - `, - name: 'serviceA', - }, - - { - typeDefs: gql` - type Book { - id: ID! - } - - interface Product { - sku: ID! - } - `, - name: 'serviceB', - }, - ]; - - const { definitions, extensions } = createDefinitionsDocumentForServices( - serviceList, - ); - const errors = validateSDL(definitions, schema, [PossibleTypeExtensions]); - schema = extendSchema(schema, definitions, { assumeValidSDL: true }); - errors.push(...validateSDL(extensions, schema, [PossibleTypeExtensions])); - schema = extendSchema(schema, extensions, { assumeValidSDL: true }); - - expect(schema.getType('Book')).toMatchInlineSnapshot(` - type Book implements Product { - id: ID! - sku: ID! - name: String - } - `); - expect(errors).toHaveLength(0); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/tsconfig.json b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/tsconfig.json deleted file mode 100644 index 9bcedd5..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../../../../tsconfig.test.base", - "include": ["**/*"], - "references": [{ "path": "../../../../../" }] -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/uniqueFieldDefinitionNames.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/uniqueFieldDefinitionNames.test.ts deleted file mode 100644 index cf56c59..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/uniqueFieldDefinitionNames.test.ts +++ /dev/null @@ -1,268 +0,0 @@ -import { - GraphQLSchema, - specifiedDirectives, - DocumentNode, - Kind, - extendSchema, -} from 'graphql'; -import { validateSDL } from 'graphql/validation/validate'; -import gql from 'graphql-tag'; -import { typeSerializer } from '../../../../snapshotSerializers'; -import { buildMapsFromServiceList } from '../../../compose'; -import federationDirectives from '../../../../directives'; -import { UniqueFieldDefinitionNames } from '..'; -import { ServiceDefinition } from '../../../types'; - -expect.addSnapshotSerializer(typeSerializer); - -// simulate the first half of the composition process -function createDocumentsForServices( - serviceList: ServiceDefinition[], -): DocumentNode[] { - const { typeDefinitionsMap, typeExtensionsMap } = buildMapsFromServiceList( - serviceList, - ); - return [ - { - kind: Kind.DOCUMENT, - definitions: Object.values(typeDefinitionsMap).flat(), - }, - { - kind: Kind.DOCUMENT, - definitions: Object.values(typeExtensionsMap).flat(), - }, - ]; -} - -describe('UniqueFieldDefinitionNames', () => { - let schema: GraphQLSchema; - - // create a blank schema for each test - beforeEach(() => { - schema = new GraphQLSchema({ - query: undefined, - directives: [...specifiedDirectives, ...federationDirectives], - }); - }); - - describe('enforces unique field names for', () => { - it('object type definitions', () => { - const [definitions, extensions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product { - sku: ID! - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - extend type Product { - sku: Int! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueFieldDefinitionNames, - ]); - schema = extendSchema(schema, definitions, { - assumeValidSDL: true, - }); - - errors.push( - ...validateSDL(extensions, schema, [UniqueFieldDefinitionNames]), - ); - - expect(errors).toHaveLength(1); - expect(errors[0].message).toMatch( - 'Field "Product.sku" already exists in the schema.', - ); - }); - - it('interface definitions', () => { - const [definitions, extensions] = createDocumentsForServices([ - { - typeDefs: gql` - interface Product { - sku: ID! - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - extend interface Product { - sku: String! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueFieldDefinitionNames, - ]); - schema = extendSchema(schema, definitions, { assumeValidSDL: true }); - errors.push( - ...validateSDL(extensions, schema, [UniqueFieldDefinitionNames]), - ); - expect(errors).toHaveLength(1); - expect(errors[0].message).toMatch( - 'Field "Product.sku" already exists in the schema.', - ); - }); - - it('input object definitions', () => { - const [definitions, extensions] = createDocumentsForServices([ - { - typeDefs: gql` - input Product { - sku: ID - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - extend input Product { - sku: String! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueFieldDefinitionNames, - ]); - schema = extendSchema(schema, definitions, { assumeValidSDL: true }); - errors.push( - ...validateSDL(extensions, schema, [UniqueFieldDefinitionNames]), - ); - expect(errors).toHaveLength(1); - expect(errors[0].message).toMatch( - 'Field "Product.sku" already exists in the schema.', - ); - }); - }); - - describe('permits duplicate field names for', () => { - it('value types (identical object types)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product { - sku: ID! - color: String - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product { - sku: ID! - color: String - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueFieldDefinitionNames, - ]); - expect(errors).toHaveLength(0); - }); - - it('value types (identical interface types)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - interface Product { - sku: ID! - color: String - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - interface Product { - sku: ID! - color: String - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueFieldDefinitionNames, - ]); - expect(errors).toHaveLength(0); - }); - - it('value types (identical input types)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - input Product { - sku: ID! - color: String - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - input Product { - sku: ID! - color: String - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueFieldDefinitionNames, - ]); - expect(errors).toHaveLength(0); - }); - - it('object type definitions (non-identical, value types with type mismatch)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product { - sku: ID! - color: String - quantity: Int - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product { - sku: String! - color: String - quantity: Int! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueFieldDefinitionNames, - ]); - expect(errors).toHaveLength(0); - }); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/uniqueTypeNamesWithFields.test.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/uniqueTypeNamesWithFields.test.ts deleted file mode 100644 index a56c6c6..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/__tests__/uniqueTypeNamesWithFields.test.ts +++ /dev/null @@ -1,541 +0,0 @@ -import { - GraphQLSchema, - specifiedDirectives, - Kind, - DocumentNode, -} from 'graphql'; -import { validateSDL } from 'graphql/validation/validate'; -import gql from 'graphql-tag'; -import { - typeSerializer, - graphqlErrorSerializer, -} from '../../../../snapshotSerializers'; -import federationDirectives from '../../../../directives'; -import { UniqueTypeNamesWithFields } from '..'; -import { ServiceDefinition } from '../../../types'; -import { buildMapsFromServiceList } from '../../../compose'; - -expect.addSnapshotSerializer(graphqlErrorSerializer); -expect.addSnapshotSerializer(typeSerializer); - -function createDocumentsForServices( - serviceList: ServiceDefinition[], -): DocumentNode[] { - const { typeDefinitionsMap, typeExtensionsMap } = buildMapsFromServiceList( - serviceList, - ); - return [ - { - kind: Kind.DOCUMENT, - definitions: Object.values(typeDefinitionsMap).flat(), - }, - { - kind: Kind.DOCUMENT, - definitions: Object.values(typeExtensionsMap).flat(), - }, - ]; -} - -describe('UniqueTypeNamesWithFields', () => { - let schema: GraphQLSchema; - - // create a blank schema for each test - beforeEach(() => { - schema = new GraphQLSchema({ - query: undefined, - directives: [...specifiedDirectives, ...federationDirectives], - }); - }); - - describe('enforces unique type names for', () => { - it('object type definitions (non-identical, non-value types)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product { - sku: ID! - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product { - color: String! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(1); - expect(errors[0].message).toMatch( - 'There can be only one type named "Product".', - ); - }); - - it('object type definitions (non-identical, value types with type mismatch)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product { - sku: ID! - color: String - quantity: Int - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product { - sku: String! - color: String - quantity: Int! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(2); - expect(errors).toMatchInlineSnapshot(` - Array [ - Object { - "code": "VALUE_TYPE_FIELD_TYPE_MISMATCH", - "message": "[serviceA] Product.sku -> A field was defined differently in different services. \`serviceA\` and \`serviceB\` define \`Product.sku\` as a ID! and String! respectively. In order to define \`Product\` in multiple places, the fields and their types must be identical.", - }, - Object { - "code": "VALUE_TYPE_FIELD_TYPE_MISMATCH", - "message": "[serviceA] Product.quantity -> A field was defined differently in different services. \`serviceA\` and \`serviceB\` define \`Product.quantity\` as a Int and Int! respectively. In order to define \`Product\` in multiple places, the fields and their types must be identical.", - }, - ] - `); - }); - - it('object type definitions (overlapping fields, but non-value types)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product { - sku: ID! - color: String - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product { - sku: ID! - blah: Int! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(1); - expect(errors[0].message).toMatch( - 'There can be only one type named "Product".', - ); - }); - - it('interface definitions', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - interface Product { - sku: ID! - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - interface Product { - color: String! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(1); - expect(errors[0].message).toMatch( - 'There can be only one type named "Product".', - ); - }); - - it('input definitions', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - input Product { - sku: ID - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - input Product { - color: String! - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(1); - expect(errors[0].message).toMatch( - 'There can be only one type named "Product".', - ); - }); - }); - - describe('permits duplicate type names for', () => { - it('scalar types', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - scalar JSON - `, - name: 'serviceA', - }, - { - typeDefs: gql` - scalar JSON - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(0); - }); - - it('enum types (congruency enforced in other validations)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - enum Category { - Furniture - Supplies - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - enum Category { - Things - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(0); - }); - - it('input types', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - input Product { - sku: ID - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - input Product { - sku: ID - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(0); - }); - - it('value types (non-entity type definitions that are identical)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product { - sku: ID - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product { - sku: ID - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(0); - }); - }); - - describe('edge cases', () => { - it('value types must be of the same kind', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - input Product { - sku: ID - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product { - sku: ID - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_KIND_MISMATCH", - "message": "[serviceA] Product -> Found kind mismatch on expected value type belonging to services \`serviceA\` and \`serviceB\`. \`Product\` is defined as both a \`ObjectTypeDefinition\` and a \`InputObjectTypeDefinition\`. In order to define \`Product\` in multiple places, the kinds must be identical.", - } - `); - }); - - it('value types must be of the same kind (scalar)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - scalar DateTime - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type DateTime { - day: Int - formatted: String - # ... - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_KIND_MISMATCH", - "message": "[serviceA] DateTime -> Found kind mismatch on expected value type belonging to services \`serviceA\` and \`serviceB\`. \`DateTime\` is defined as both a \`ObjectTypeDefinition\` and a \`ScalarTypeDefinition\`. In order to define \`DateTime\` in multiple places, the kinds must be identical.", - } - `); - }); - - it('value types must be of the same kind (union)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - union DateTime = Date | Time - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type DateTime { - day: Int - formatted: String - # ... - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_KIND_MISMATCH", - "message": "[serviceA] DateTime -> Found kind mismatch on expected value type belonging to services \`serviceA\` and \`serviceB\`. \`DateTime\` is defined as both a \`ObjectTypeDefinition\` and a \`UnionTypeDefinition\`. In order to define \`DateTime\` in multiple places, the kinds must be identical.", - } - `); - }); - - it('value types must be of the same kind (enum)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - enum DateTime { - DATE - TIME - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type DateTime { - day: Int - formatted: String - # ... - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_KIND_MISMATCH", - "message": "[serviceA] DateTime -> Found kind mismatch on expected value type belonging to services \`serviceA\` and \`serviceB\`. \`DateTime\` is defined as both a \`ObjectTypeDefinition\` and a \`EnumTypeDefinition\`. In order to define \`DateTime\` in multiple places, the kinds must be identical.", - } - `); - }); - - it('value types cannot be entities (part 1)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: ID - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product { - sku: ID - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_NO_ENTITY", - "message": "[serviceA] Product -> Value types cannot be entities (using the \`@key\` directive). Please ensure that the \`Product\` type is extended properly or remove the \`@key\` directive if this is not an entity.", - } - `); - }); - - it('value types cannot be entities (part 2)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product { - sku: ID - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: ID - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(1); - expect(errors[0]).toMatchInlineSnapshot(` - Object { - "code": "VALUE_TYPE_NO_ENTITY", - "message": "[serviceB] Product -> Value types cannot be entities (using the \`@key\` directive). Please ensure that the \`Product\` type is extended properly or remove the \`@key\` directive if this is not an entity.", - } - `); - }); - - it('no false positives for properly formed entities (that look like value types)', () => { - const [definitions] = createDocumentsForServices([ - { - typeDefs: gql` - type Product @key(fields: "sku") { - sku: ID - } - `, - name: 'serviceA', - }, - { - typeDefs: gql` - extend type Product @key(fields: "sku") { - sku: ID @external - } - `, - name: 'serviceB', - }, - ]); - - const errors = validateSDL(definitions, schema, [ - UniqueTypeNamesWithFields, - ]); - expect(errors).toHaveLength(0); - }); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/index.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/index.ts deleted file mode 100644 index 5a3ed57..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { UniqueTypeNamesWithFields } from './uniqueTypeNamesWithFields'; -export { MatchingEnums } from './matchingEnums'; -export { PossibleTypeExtensions } from './possibleTypeExtensions'; -export { UniqueFieldDefinitionNames } from './uniqueFieldDefinitionNames'; -export { UniqueUnionTypes } from './matchingUnions'; diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/matchingEnums.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/matchingEnums.ts deleted file mode 100644 index bb16296..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/matchingEnums.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -import { - ASTVisitor, - Kind, - EnumTypeDefinitionNode, - EnumValueDefinitionNode, - TypeDefinitionNode, -} from 'graphql'; -import { errorWithCode, logServiceAndType } from '../../utils'; -import { isString } from 'util'; - -function isEnumDefinition(node: TypeDefinitionNode) { - return node.kind === Kind.ENUM_TYPE_DEFINITION; -} - -type TypeToDefinitionsMap = { - [typeNems: string]: TypeDefinitionNode[]; -}; - -export function MatchingEnums(context: SDLValidationContext): ASTVisitor { - const { definitions } = context.getDocument(); - - // group all definitions by name - // { MyTypeName: [{ serviceName: "A", name: {...}}]} - let definitionsByName: { - [typeName: string]: TypeDefinitionNode[]; - } = (definitions as TypeDefinitionNode[]).reduce( - (typeToDefinitionsMap: TypeToDefinitionsMap, node) => { - const name = node.name.value; - if (typeToDefinitionsMap[name]) { - typeToDefinitionsMap[name].push(node); - } else { - typeToDefinitionsMap[name] = [node]; - } - return typeToDefinitionsMap; - }, - {}, - ); - - // map over each group of definitions. - for (const [name, definitions] of Object.entries(definitionsByName)) { - // if every definition in the list is an enum, we don't need to error about type, - // but we do need to check to make sure every service has the same enum values - if (definitions.every(isEnumDefinition)) { - // a simple list of services to enum values for a given enum - // [{ serviceName: "serviceA", values: ["FURNITURE", "BOOK"] }] - let simpleEnumDefs: Array<{ serviceName: string; values: string[] }> = []; - - // build the simpleEnumDefs list - for (const { - values, - serviceName, - } of definitions as EnumTypeDefinitionNode[]) { - if (serviceName && values) - simpleEnumDefs.push({ - serviceName, - values: values.map( - (enumValue: EnumValueDefinitionNode) => enumValue.name.value, - ), - }); - } - - // values need to be in order to build the matchingEnumGroups - for (const definition of simpleEnumDefs) { - definition.values = definition.values.sort(); - } - - // groups of services with matching values, keyed by enum values - // like {"FURNITURE,BOOK": ["ServiceA", "ServiceB"], "FURNITURE,DIGITAL": ["serviceC"]} - let matchingEnumGroups: { [values: string]: string[] } = {}; - - // build matchingEnumDefs - for (const definition of simpleEnumDefs) { - const key = definition.values.join(); - if (matchingEnumGroups[key]) { - matchingEnumGroups[key].push(definition.serviceName); - } else { - matchingEnumGroups[key] = [definition.serviceName]; - } - } - - if (Object.keys(matchingEnumGroups).length > 1) { - context.reportError( - errorWithCode( - 'ENUM_MISMATCH', - `The \`${name}\` enum does not have identical values in all services. Groups of services with identical values are: ${Object.values( - matchingEnumGroups, - ) - .map(serviceNames => `[${serviceNames.join(', ')}]`) - .join(', ')}`, - ), - ); - } - } else if (definitions.some(isEnumDefinition)) { - // if only SOME definitions in the list are enums, we need to error - - // first, find the services, where the defs ARE enums - const servicesWithEnum = definitions - .filter(isEnumDefinition) - .map(definition => definition.serviceName) - .filter(isString); - - // find the services where the def isn't an enum - const servicesWithoutEnum = definitions - .filter(d => !isEnumDefinition(d)) - .map(d => d.serviceName) - .filter(isString); - - context.reportError( - errorWithCode( - 'ENUM_MISMATCH_TYPE', - logServiceAndType(servicesWithEnum[0], name) + - `${name} is an enum in [${servicesWithEnum.join( - ', ', - )}], but not in [${servicesWithoutEnum.join(', ')}]`, - ), - ); - } - } - - // we don't need any visitors for this validation rule - return {}; -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/matchingUnions.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/matchingUnions.ts deleted file mode 100644 index 7a74fb8..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/matchingUnions.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { GraphQLError, ASTVisitor, UnionTypeDefinitionNode } from 'graphql'; -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -import xorBy from 'lodash.xorby'; -import { Maybe } from '../../types'; -import { errorWithCode, logServiceAndType } from '../../utils'; -import { - existedTypeNameMessage, - duplicateTypeNameMessage, -} from './uniqueTypeNamesWithFields'; - -/** - * Unique type names - * A GraphQL document is only valid if all defined types have unique names. - * Modified to allow duplicate enum and scalar names - */ -export function UniqueUnionTypes(context: SDLValidationContext): ASTVisitor { - const knownTypes: { - [typeName: string]: UnionTypeDefinitionNode; - } = Object.create(null); - const schema = context.getSchema(); - - return { - UnionTypeDefinition: validateUnionTypes, - }; - - function validateUnionTypes(node: UnionTypeDefinitionNode) { - const typeName = node.name.value; - const typeFromSchema = schema && schema.getType(typeName); - const typeNodeFromSchema = - typeFromSchema && - (typeFromSchema.astNode as Maybe); - - const typeNodeFromDefs = knownTypes[typeName]; - const duplicateTypeNode = typeNodeFromSchema || typeNodeFromDefs; - - // Exception for identical union types - if (duplicateTypeNode) { - const unionDiff = xorBy( - node.types, - duplicateTypeNode.types, - 'name.value', - ); - - const diffLength = unionDiff.length; - if (diffLength > 0) { - context.reportError( - errorWithCode( - 'VALUE_TYPE_UNION_TYPES_MISMATCH', - `${logServiceAndType( - duplicateTypeNode.serviceName!, - typeName, - )}The union \`${typeName}\` is defined in services \`${ - duplicateTypeNode.serviceName - }\` and \`${ - node.serviceName - }\`, however their types do not match. Union types with the same name must also consist of identical types. The type${ - diffLength > 1 ? 's' : '' - } ${unionDiff.map(diffEntry => diffEntry.name.value).join(', ')} ${ - diffLength > 1 ? 'are' : 'is' - } mismatched.`, - [node, duplicateTypeNode], - ), - ); - } - - return false; - } - - if (typeFromSchema) { - context.reportError( - new GraphQLError(existedTypeNameMessage(typeName), node.name), - ); - return; - } - - if (knownTypes[typeName]) { - context.reportError( - new GraphQLError(duplicateTypeNameMessage(typeName), [ - knownTypes[typeName], - node.name, - ]), - ); - } else { - knownTypes[typeName] = node; - } - - return false; - } -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/possibleTypeExtensions.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/possibleTypeExtensions.ts deleted file mode 100644 index f7e3785..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/possibleTypeExtensions.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -import { - ASTVisitor, - isObjectType, - isScalarType, - isInterfaceType, - isUnionType, - isEnumType, - isInputObjectType, - Kind, - isTypeDefinitionNode, - ObjectTypeExtensionNode, - InterfaceTypeExtensionNode, - GraphQLNamedType, -} from 'graphql'; -import { - errorWithCode, - logServiceAndType, - defKindToExtKind, -} from '../../utils'; - -type FederatedExtensionNode = ( - | ObjectTypeExtensionNode - | InterfaceTypeExtensionNode) & { - serviceName?: string | null; -}; - -// This is a variant of the PossibleTypeExtensions validator in graphql-js. -// it was modified to only check object/interface extensions. A custom error -// message was also added. -// original here: https://github.com/graphql/graphql-js/blob/master/src/validation/rules/PossibleTypeExtensions.js -export function PossibleTypeExtensions( - context: SDLValidationContext, -): ASTVisitor { - const schema = context.getSchema(); - const definedTypes = Object.create(null); - - for (const def of context.getDocument().definitions) { - if (isTypeDefinitionNode(def)) { - definedTypes[def.name.value] = def; - } - } - - const checkExtension = (node: FederatedExtensionNode) => { - const typeName = node.name.value; - const defNode = definedTypes[typeName]; - const existingType = schema && schema.getType(typeName); - - const serviceName = node.serviceName; - if (!serviceName) return; - - if (defNode) { - const expectedKind = defKindToExtKind[defNode.kind]; - const baseKind = defNode.kind; - if (expectedKind !== node.kind) { - context.reportError( - errorWithCode( - 'EXTENSION_OF_WRONG_KIND', - logServiceAndType(serviceName, typeName) + - `\`${typeName}\` was originally defined as a ${baseKind} and can only be extended by a ${expectedKind}. ${serviceName} defines ${typeName} as a ${node.kind}`, - ), - ); - } - } else if (existingType) { - const expectedKind = typeToExtKind(existingType); - const baseKind = typeToKind(existingType); - if (expectedKind !== node.kind) { - context.reportError( - errorWithCode( - 'EXTENSION_OF_WRONG_KIND', - logServiceAndType(serviceName, typeName) + - `\`${typeName}\` was originally defined as a ${baseKind} and can only be extended by a ${expectedKind}. ${serviceName} defines ${typeName} as a ${node.kind}`, - ), - ); - } - } else { - context.reportError( - errorWithCode( - 'EXTENSION_WITH_NO_BASE', - logServiceAndType(serviceName, typeName) + - `\`${typeName}\` is an extension type, but \`${typeName}\` is not defined in any service`, - ), - ); - } - }; - - return { - ObjectTypeExtension: checkExtension, - InterfaceTypeExtension: checkExtension, - }; -} - -// These following utility functions/objects are part of the -// PossibleTypeExtensions validations in graphql-js, but not exported. -// https://github.com/graphql/graphql-js/blob/d8c1dfdc9dbbdef2400363cb0748d50cbeef39a8/src/validation/rules/PossibleTypeExtensions.js#L110 -function typeToExtKind(type: GraphQLNamedType) { - if (isScalarType(type)) { - return Kind.SCALAR_TYPE_EXTENSION; - } else if (isObjectType(type)) { - return Kind.OBJECT_TYPE_EXTENSION; - } else if (isInterfaceType(type)) { - return Kind.INTERFACE_TYPE_EXTENSION; - } else if (isUnionType(type)) { - return Kind.UNION_TYPE_EXTENSION; - } else if (isEnumType(type)) { - return Kind.ENUM_TYPE_EXTENSION; - } else if (isInputObjectType(type)) { - return Kind.INPUT_OBJECT_TYPE_EXTENSION; - } - return null; -} - -// this function is purely for printing out the `Kind` of the base type def. -function typeToKind(type: GraphQLNamedType) { - if (isScalarType(type)) { - return Kind.SCALAR_TYPE_DEFINITION; - } else if (isObjectType(type)) { - return Kind.OBJECT_TYPE_DEFINITION; - } else if (isInterfaceType(type)) { - return Kind.INTERFACE_TYPE_DEFINITION; - } else if (isUnionType(type)) { - return Kind.UNION_TYPE_DEFINITION; - } else if (isEnumType(type)) { - return Kind.ENUM_TYPE_DEFINITION; - } else if (isInputObjectType(type)) { - return Kind.INPUT_OBJECT_TYPE_DEFINITION; - } - return null; -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/uniqueFieldDefinitionNames.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/uniqueFieldDefinitionNames.ts deleted file mode 100644 index 4491741..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/uniqueFieldDefinitionNames.ts +++ /dev/null @@ -1,208 +0,0 @@ -import { - ASTVisitor, - NameNode, - GraphQLError, - InputObjectTypeDefinitionNode, - InterfaceTypeDefinitionNode, - ObjectTypeDefinitionNode, - InputObjectTypeExtensionNode, - InterfaceTypeExtensionNode, - ObjectTypeExtensionNode, - GraphQLNamedType, - isObjectType, - isInterfaceType, - isInputObjectType, -} from 'graphql'; -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -import { TypeMap } from 'graphql/type/schema'; -import { Maybe } from '../../types'; -import { diffTypeNodes, logServiceAndType } from '../../utils'; - -type TypeNodeWithFields = TypeDefinitionWithFields | TypeExtensionWithFields; - -type TypeDefinitionWithFields = - | InputObjectTypeDefinitionNode - | InterfaceTypeDefinitionNode - | ObjectTypeDefinitionNode; - -type TypeExtensionWithFields = - | InputObjectTypeExtensionNode - | InterfaceTypeExtensionNode - | ObjectTypeExtensionNode; - -export function duplicateFieldDefinitionNameMessage( - typeName: string, - fieldName: string, -): string { - return `Field "${typeName}.${fieldName}" can only be defined once.`; -} - -export function existedFieldDefinitionNameMessage( - typeName: string, - fieldName: string, - serviceName: string, -): string { - return `${logServiceAndType( - serviceName, - typeName, - fieldName, - )}Field "${typeName}.${fieldName}" already exists in the schema. It cannot also be defined in this type extension. If this is meant to be an external field, add the \`@external\` directive.`; -} - -/** - * Unique field definition names - * - * A GraphQL complex type is only valid if all its fields are uniquely named. - * Modified to permit duplicate field names on value types. - */ -export function UniqueFieldDefinitionNames( - context: SDLValidationContext, -): ASTVisitor { - const schema = context.getSchema(); - const existingTypeMap: TypeMap = schema - ? schema.getTypeMap() - : Object.create(null); - interface FieldToNameNodeMap { - [fieldName: string]: NameNode; - } - const knownFieldNames: { - [typeName: string]: FieldToNameNodeMap; - } = Object.create(null); - - const possibleValueTypes: { - [key: string]: TypeNodeWithFields | undefined; - } = Object.create(null); - - // Maintain original functionality for type extensions, but substitute our - // more permissive validator for base types to allow value types - return { - InputObjectTypeExtension: checkFieldUniqueness, - InterfaceTypeExtension: checkFieldUniqueness, - ObjectTypeExtension: checkFieldUniqueness, - InputObjectTypeDefinition: checkFieldUniquenessExcludingValueTypes, - InterfaceTypeDefinition: checkFieldUniquenessExcludingValueTypes, - ObjectTypeDefinition: checkFieldUniquenessExcludingValueTypes, - }; - - function checkFieldUniqueness(node: TypeExtensionWithFields) { - const typeName = node.name.value; - - if (!knownFieldNames[typeName]) { - knownFieldNames[typeName] = Object.create(null); - } - - if (!node.fields) { - return false; - } - - const fieldNames = knownFieldNames[typeName]; - - for (const fieldDef of node.fields) { - const fieldName = fieldDef.name.value; - - if (hasField(existingTypeMap[typeName], fieldName)) { - context.reportError( - new GraphQLError( - existedFieldDefinitionNameMessage( - typeName, - fieldName, - existingTypeMap[typeName].astNode!.serviceName!, - ), - fieldDef.name, - ), - ); - } else if (fieldNames[fieldName]) { - context.reportError( - new GraphQLError( - duplicateFieldDefinitionNameMessage(typeName, fieldName), - [fieldNames[fieldName], fieldDef.name], - ), - ); - } else { - fieldNames[fieldName] = fieldDef.name; - } - } - - return false; - } - - /** - * Similar to checkFieldUniqueness above, with some extra permissions: - * - * 1) Non-uniqueness *on value types* (same field names, same field types) should be permitted - * 2) *Near* value types are also permitted here (with relevant errors in uniqueTypeNamesWithFields) - * - Near value types share only the same type name and field names. Permitting these cases allows - * us to catch and warn on likely user errors. - * - * @param node TypeDefinitionWithFields - */ - function checkFieldUniquenessExcludingValueTypes( - node: TypeDefinitionWithFields, - ) { - const typeName = node.name.value; - - const valueTypeFromSchema = - existingTypeMap[typeName] && - (existingTypeMap[typeName].astNode as Maybe); - const duplicateTypeNode = - valueTypeFromSchema || possibleValueTypes[node.name.value]; - - if (duplicateTypeNode) { - const { fields } = diffTypeNodes(node, duplicateTypeNode); - - // This is the condition required for a *near* value type. At this point, we know the - // parent type names are the same. We know the field names are the same if either: - // 1) the field has no entry in the fields diff (they're identical), or - // 2) the field's diff entry is an array of length 2 (both nodes have the field, but the field types are different) - if (Object.values(fields).every(diffEntry => diffEntry.length === 2)) { - return false; - } - } else { - possibleValueTypes[node.name.value] = node; - } - - if (!knownFieldNames[typeName]) { - knownFieldNames[typeName] = Object.create(null); - } - - if (!node.fields) { - return false; - } - - const fieldNames = knownFieldNames[typeName]; - - for (const fieldDef of node.fields) { - const fieldName = fieldDef.name.value; - if (hasField(existingTypeMap[typeName], fieldName)) { - context.reportError( - new GraphQLError( - existedFieldDefinitionNameMessage( - typeName, - fieldName, - existingTypeMap[typeName].astNode!.serviceName!, - ), - fieldDef.name, - ), - ); - } else if (fieldNames[fieldName]) { - context.reportError( - new GraphQLError( - duplicateFieldDefinitionNameMessage(typeName, fieldName), - [fieldNames[fieldName], fieldDef.name], - ), - ); - } else { - fieldNames[fieldName] = fieldDef.name; - } - } - - return false; - } -} - -function hasField(type: GraphQLNamedType, fieldName: string) { - if (isObjectType(type) || isInterfaceType(type) || isInputObjectType(type)) { - return Boolean(type.getFields()[fieldName]); - } - return false; -} diff --git a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/uniqueTypeNamesWithFields.ts b/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/uniqueTypeNamesWithFields.ts deleted file mode 100644 index 5615c6e..0000000 --- a/gateway/node_modules/@apollo/federation/src/composition/validate/sdl/uniqueTypeNamesWithFields.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { - GraphQLError, - ASTVisitor, - TypeDefinitionNode, -} from 'graphql'; - -import { SDLValidationContext } from 'graphql/validation/ValidationContext'; -import { Maybe } from '../../types'; -import { - isTypeNodeAnEntity, - diffTypeNodes, - errorWithCode, - logServiceAndType, -} from '../../utils'; - -export function duplicateTypeNameMessage(typeName: string): string { - return `There can be only one type named "${typeName}".`; -} - -export function existedTypeNameMessage(typeName: string): string { - return `Type "${typeName}" already exists in the schema. It cannot also be defined in this type definition.`; -} - -/** - * Unique type names - * A GraphQL document is only valid if all defined types have unique names. - * Modified to allow duplicate enum and scalar names - */ -export function UniqueTypeNamesWithFields( - context: SDLValidationContext, -): ASTVisitor { - const knownTypes: { - [typeName: string]: TypeDefinitionNode; - } = Object.create(null); - const schema = context.getSchema(); - - return { - ScalarTypeDefinition: checkTypeName, - ObjectTypeDefinition: checkTypeName, - InterfaceTypeDefinition: checkTypeName, - UnionTypeDefinition: checkTypeName, - EnumTypeDefinition: checkTypeName, - InputObjectTypeDefinition: checkTypeName, - }; - - function checkTypeName(node: TypeDefinitionNode) { - const typeName = node.name.value; - const typeFromSchema = schema && schema.getType(typeName); - const typeNodeFromSchema = - typeFromSchema && - (typeFromSchema.astNode as Maybe); - - const typeNodeFromDefs = knownTypes[typeName]; - const duplicateTypeNode = typeNodeFromSchema || typeNodeFromDefs; - - /* - * Return early for value types - * Value types: - * 1) have the same kind (type, interface, input), extensions are excluded - * 2) are not entities - * 3) have the same set of fields - */ - if (duplicateTypeNode) { - const possibleErrors: GraphQLError[] = []; - // By inspecting the diff, we can warn when field types mismatch. - // A diff entry will exist when a field exists on one type and not the other, or if there is a type mismatch on the field - // i.e. { sku: [Int, String!], color: [String] } - const { kind, fields } = diffTypeNodes(node, duplicateTypeNode); - - const fieldsDiff = Object.entries(fields); - - // Error if the kinds don't match - if (kind.length > 0) { - context.reportError( - errorWithCode( - 'VALUE_TYPE_KIND_MISMATCH', - `${logServiceAndType( - duplicateTypeNode.serviceName!, - typeName, - )}Found kind mismatch on expected value type belonging to services \`${ - duplicateTypeNode.serviceName - }\` and \`${ - node.serviceName - }\`. \`${typeName}\` is defined as both a \`${ - kind[0] - }\` and a \`${ - kind[1] - }\`. In order to define \`${typeName}\` in multiple places, the kinds must be identical.`, - [node, duplicateTypeNode], - ), - ); - return; - } - - const typesHaveSameShape = - fieldsDiff.length === 0 || - fieldsDiff.every(([fieldName, types]) => { - // If a diff entry has two types, then the field name matches but the types do not. - // In this case, we can push a useful error to hint to the user that we - // think they tried to define a value type, but one of the fields has a type mismatch. - if (types.length === 2) { - possibleErrors.push( - errorWithCode( - 'VALUE_TYPE_FIELD_TYPE_MISMATCH', - `${logServiceAndType( - duplicateTypeNode.serviceName!, - typeName, - fieldName, - )}A field was defined differently in different services. \`${ - duplicateTypeNode.serviceName - }\` and \`${ - node.serviceName - }\` define \`${typeName}.${fieldName}\` as a ${types[1]} and ${ - types[0] - } respectively. In order to define \`${typeName}\` in multiple places, the fields and their types must be identical.`, - [node, duplicateTypeNode], - ), - ); - return true; - } - return false; - }); - - // Once we determined that types have the same shape (name, kind, and field - // names), we can provide useful errors - if (typesHaveSameShape) { - // Report errors that were collected while determining the matching shape of the types - possibleErrors.forEach(error => context.reportError(error)); - - // Error if either is an entity - if (isTypeNodeAnEntity(node) || isTypeNodeAnEntity(duplicateTypeNode)) { - const entityNode = isTypeNodeAnEntity(duplicateTypeNode) - ? duplicateTypeNode - : node; - - context.reportError( - errorWithCode( - 'VALUE_TYPE_NO_ENTITY', - `${logServiceAndType( - entityNode.serviceName!, - typeName, - )}Value types cannot be entities (using the \`@key\` directive). Please ensure that the \`${typeName}\` type is extended properly or remove the \`@key\` directive if this is not an entity.`, - [node, duplicateTypeNode], - ), - ); - } - - return false; - } - } - - if (typeFromSchema) { - context.reportError( - new GraphQLError(existedTypeNameMessage(typeName), node.name), - ); - return; - } - - if (knownTypes[typeName]) { - context.reportError( - new GraphQLError(duplicateTypeNameMessage(typeName), [ - knownTypes[typeName], - node.name, - ]), - ); - } else { - knownTypes[typeName] = node; - } - - return false; - } -} diff --git a/gateway/node_modules/@apollo/federation/src/csdlDirectives.ts b/gateway/node_modules/@apollo/federation/src/csdlDirectives.ts deleted file mode 100644 index 4a3fd10..0000000 --- a/gateway/node_modules/@apollo/federation/src/csdlDirectives.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { - GraphQLDirective, - DirectiveLocation, - GraphQLNonNull, - GraphQLString, - GraphQLInt, -} from 'graphql'; - -export const ComposedGraphDirective = new GraphQLDirective({ - name: 'composedGraph', - locations: [DirectiveLocation.SCHEMA], - args: { - version: { - type: GraphQLNonNull(GraphQLInt), - }, - }, -}); - -export const GraphDirective = new GraphQLDirective({ - name: 'graph', - locations: [DirectiveLocation.SCHEMA], - args: { - name: { - type: GraphQLNonNull(GraphQLString), - }, - url: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const OwnerDirective = new GraphQLDirective({ - name: 'owner', - locations: [DirectiveLocation.OBJECT], - args: { - graph: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const KeyDirective = new GraphQLDirective({ - name: 'key', - locations: [DirectiveLocation.OBJECT], - args: { - fields: { - type: GraphQLNonNull(GraphQLString), - }, - graph: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const ResolveDirective = new GraphQLDirective({ - name: 'resolve', - locations: [DirectiveLocation.FIELD_DEFINITION], - args: { - graph: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const ProvidesDirective = new GraphQLDirective({ - name: 'provides', - locations: [DirectiveLocation.FIELD_DEFINITION], - args: { - fields: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const RequiresDirective = new GraphQLDirective({ - name: 'requires', - locations: [DirectiveLocation.FIELD_DEFINITION], - args: { - fields: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const csdlDirectives = [ - ComposedGraphDirective, - GraphDirective, - OwnerDirective, - KeyDirective, - ResolveDirective, - ProvidesDirective, - RequiresDirective, -]; - -export default csdlDirectives; diff --git a/gateway/node_modules/@apollo/federation/src/directives.ts b/gateway/node_modules/@apollo/federation/src/directives.ts deleted file mode 100644 index dfd723c..0000000 --- a/gateway/node_modules/@apollo/federation/src/directives.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { - GraphQLDirective, - DirectiveLocation, - GraphQLNonNull, - GraphQLString, - GraphQLNamedType, - isInputObjectType, - GraphQLInputObjectType, - DirectiveNode, - ScalarTypeDefinitionNode, - ObjectTypeDefinitionNode, - InterfaceTypeDefinitionNode, - UnionTypeDefinitionNode, - EnumTypeDefinitionNode, - ScalarTypeExtensionNode, - ObjectTypeExtensionNode, - InterfaceTypeExtensionNode, - UnionTypeExtensionNode, - EnumTypeExtensionNode, - GraphQLField, - FieldDefinitionNode, -} from 'graphql'; - -export const KeyDirective = new GraphQLDirective({ - name: 'key', - locations: [DirectiveLocation.OBJECT, DirectiveLocation.INTERFACE], - args: { - fields: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const ExtendsDirective = new GraphQLDirective({ - name: 'extends', - locations: [DirectiveLocation.OBJECT, DirectiveLocation.INTERFACE], -}); - -export const ExternalDirective = new GraphQLDirective({ - name: 'external', - locations: [DirectiveLocation.OBJECT, DirectiveLocation.FIELD_DEFINITION], -}); - -export const RequiresDirective = new GraphQLDirective({ - name: 'requires', - locations: [DirectiveLocation.FIELD_DEFINITION], - args: { - fields: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const ProvidesDirective = new GraphQLDirective({ - name: 'provides', - locations: [DirectiveLocation.FIELD_DEFINITION], - args: { - fields: { - type: GraphQLNonNull(GraphQLString), - }, - }, -}); - -export const federationDirectives = [ - KeyDirective, - ExtendsDirective, - ExternalDirective, - RequiresDirective, - ProvidesDirective, -]; - -export default federationDirectives; - -export type ASTNodeWithDirectives = - | ScalarTypeDefinitionNode - | ObjectTypeDefinitionNode - | InterfaceTypeDefinitionNode - | UnionTypeDefinitionNode - | EnumTypeDefinitionNode - | ScalarTypeExtensionNode - | ObjectTypeExtensionNode - | InterfaceTypeExtensionNode - | UnionTypeExtensionNode - | EnumTypeExtensionNode - | FieldDefinitionNode; - -// | GraphQLField -export type GraphQLNamedTypeWithDirectives = Exclude< - GraphQLNamedType, - GraphQLInputObjectType ->; - -function hasDirectives( - node: ASTNodeWithDirectives, -): node is ASTNodeWithDirectives & { - directives: ReadonlyArray; -} { - return Boolean('directives' in node && node.directives); -} - -export function gatherDirectives( - type: GraphQLNamedTypeWithDirectives | GraphQLField, -): DirectiveNode[] { - let directives: DirectiveNode[] = []; - if ('extensionASTNodes' in type && type.extensionASTNodes) { - for (const node of type.extensionASTNodes) { - if (hasDirectives(node)) { - directives = directives.concat(node.directives); - } - } - } - - if (type.astNode && hasDirectives(type.astNode)) - directives = directives.concat(type.astNode.directives); - - return directives; -} - -export function typeIncludesDirective( - type: GraphQLNamedType, - directiveName: string, -): boolean { - if (isInputObjectType(type)) return false; - const directives = gatherDirectives(type as GraphQLNamedTypeWithDirectives); - return directives.some(directive => directive.name.value === directiveName); -} diff --git a/gateway/node_modules/@apollo/federation/src/index.ts b/gateway/node_modules/@apollo/federation/src/index.ts deleted file mode 100644 index 036f8a0..0000000 --- a/gateway/node_modules/@apollo/federation/src/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import "core-js/features/array/flat"; -import "core-js/features/array/flat-map"; - -export * from './composition'; -export * from './service'; diff --git a/gateway/node_modules/@apollo/federation/src/service/__tests__/buildFederatedSchema.test.ts b/gateway/node_modules/@apollo/federation/src/service/__tests__/buildFederatedSchema.test.ts deleted file mode 100644 index 3693b1b..0000000 --- a/gateway/node_modules/@apollo/federation/src/service/__tests__/buildFederatedSchema.test.ts +++ /dev/null @@ -1,627 +0,0 @@ -import gql from 'graphql-tag'; -import { Kind, graphql, DocumentNode, execute } from 'graphql'; -import { buildFederatedSchema } from '../buildFederatedSchema'; -import { typeSerializer } from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(typeSerializer); - -const EMPTY_DOCUMENT = { - kind: Kind.DOCUMENT, - definitions: [], -}; - -describe('buildFederatedSchema', () => { - it(`should mark a type with a key field as an entity`, () => { - const schema = buildFederatedSchema(gql` - type Product @key(fields: "upc") { - upc: String! - name: String - price: Int - } - `); - - expect(schema.getType('Product')).toMatchInlineSnapshot(` -type Product { - upc: String! - name: String - price: Int -} -`); - - expect(schema.getType('_Entity')).toMatchInlineSnapshot( - `union _Entity = Product`, - ); - }); - - it(`should mark a type with multiple key fields as an entity`, () => { - const schema = buildFederatedSchema(gql` - type Product @key(fields: "upc") @key(fields: "sku") { - upc: String! - sku: String! - name: String - price: Int - } - `); - - expect(schema.getType('Product')).toMatchInlineSnapshot(` -type Product { - upc: String! - sku: String! - name: String - price: Int -} -`); - - expect(schema.getType('_Entity')).toMatchInlineSnapshot( - `union _Entity = Product`, - ); - }); - - it(`should not mark a type without a key field as an entity`, () => { - const schema = buildFederatedSchema(gql` - type Money { - amount: Int! - currencyCode: String! - } - `); - - expect(schema.getType('Money')).toMatchInlineSnapshot(` -type Money { - amount: Int! - currencyCode: String! -} -`); - }); - - it('should preserve description text in generated SDL', async () => { - const query = `query GetServiceDetails { - _service { - sdl - } - }`; - const schema = buildFederatedSchema(gql` - "A user. This user is very complicated and requires so so so so so so so so so so so so so so so so so so so so so so so so so so so so so so so so much description text" - type User @key(fields: "id") { - """ - The unique ID of the user. - """ - id: ID! - "The user's name." - name: String - username: String - foo( - "Description 1" - arg1: String - "Description 2" - arg2: String - "Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3" - arg3: String - ): String - } - `); - - const { data, errors } = await graphql(schema, query); - expect(errors).toBeUndefined(); - expect(data?._service.sdl).toEqual(`""" -A user. This user is very complicated and requires so so so so so so so so so so so so so so so so so so so so so so so so so so so so so so so so much description text -""" -type User @key(fields: "id") { - """The unique ID of the user.""" - id: ID! - - """The user's name.""" - name: String - username: String - foo( - """Description 1""" - arg1: String - - """Description 2""" - arg2: String - - """ - Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 Description 3 - """ - arg3: String - ): String -} -`); - }); - - describe(`should add an _entities query root field to the schema`, () => { - it(`when a query root type with the default name has been defined`, () => { - const schema = buildFederatedSchema(gql` - type Query { - rootField: String - } - type Product @key(fields: "upc") { - upc: ID! - } - `); - - expect(schema.getQueryType()).toMatchInlineSnapshot(` -type Query { - _entities(representations: [_Any!]!): [_Entity]! - _service: _Service! - rootField: String -} -`); - }); - - it(`when a query root type with a non-default name has been defined`, () => { - const schema = buildFederatedSchema(gql` - schema { - query: QueryRoot - } - - type QueryRoot { - rootField: String - } - type Product @key(fields: "upc") { - upc: ID! - } - `); - - expect(schema.getQueryType()).toMatchInlineSnapshot(` -type QueryRoot { - _entities(representations: [_Any!]!): [_Entity]! - _service: _Service! - rootField: String -} -`); - }); - }); - describe(`should not add an _entities query root field to the schema`, () => { - it(`when no query root type has been defined`, () => { - const schema = buildFederatedSchema(EMPTY_DOCUMENT); - - expect(schema.getQueryType()).toMatchInlineSnapshot(` -type Query { - _service: _Service! -} -`); - }); - it(`when no types with keys are found`, () => { - const schema = buildFederatedSchema(gql` - type Query { - rootField: String - } - `); - - expect(schema.getQueryType()).toMatchInlineSnapshot(` -type Query { - _service: _Service! - rootField: String -} -`); - }); - it(`when only an interface with keys are found`, () => { - const schema = buildFederatedSchema(gql` - type Query { - rootField: String - } - interface Product @key(fields: "upc") { - upc: ID! - } - `); - - expect(schema.getQueryType()).toMatchInlineSnapshot(` -type Query { - _service: _Service! - rootField: String -} -`); - }); - }); - describe('_entities root field', () => { - it('executes resolveReference for a type if found', async () => { - const query = `query GetEntities($representations: [_Any!]!) { - _entities(representations: $representations) { - ... on Product { - name - } - ... on User { - firstName - } - } - }`; - - const variables = { - representations: [ - { __typename: 'Product', upc: 1 }, - { __typename: 'User', id: 1 }, - ], - }; - - const schema = buildFederatedSchema([ - { - typeDefs: gql` - type Product @key(fields: "upc") { - upc: Int - name: String - } - type User @key(fields: "id") { - firstName: String - } - `, - resolvers: { - Product: { - __resolveReference(object) { - expect(object.upc).toEqual(1); - return { name: 'Apollo Gateway' }; - }, - }, - User: { - __resolveReference(object) { - expect(object.id).toEqual(1); - return Promise.resolve({ firstName: 'James' }); - }, - }, - }, - }, - ]); - const { data, errors } = await graphql( - schema, - query, - null, - null, - variables, - ); - expect(errors).toBeUndefined(); - expect(data._entities[0].name).toEqual('Apollo Gateway'); - expect(data._entities[1].firstName).toEqual('James'); - }); - it('executes resolveReference with default representation values', async () => { - const query = `query GetEntities($representations: [_Any!]!) { - _entities(representations: $representations) { - ... on Product { - upc - name - } - } - }`; - - const variables = { - representations: [ - { __typename: 'Product', upc: 1, name: 'Apollo Gateway' }, - ], - }; - - const schema = buildFederatedSchema(gql` - type Product @key(fields: "upc") { - upc: Int - name: String - } - `); - const { data, errors } = await graphql( - schema, - query, - null, - null, - variables, - ); - expect(errors).toBeUndefined(); - expect(data._entities[0].name).toEqual('Apollo Gateway'); - }); - }); - describe('_service root field', () => { - it('keeps extension types when owner type is not present', async () => { - const query = `query GetServiceDetails { - _service { - sdl - } - }`; - const schema = buildFederatedSchema(gql` - type Review { - id: ID - } - - extend type Review { - title: String - } - - extend type Product @key(fields: "upc") { - upc: String @external - reviews: [Review] - } - `); - - const { data, errors } = await graphql(schema, query); - expect(errors).toBeUndefined(); - expect(data._service.sdl) - .toEqual(`extend type Product @key(fields: "upc") { - upc: String @external - reviews: [Review] -} - -type Review { - id: ID - title: String -} -`); - }); - it('keeps extension interface when owner interface is not present', async () => { - const query = `query GetServiceDetails { - _service { - sdl - } - }`; - const schema = buildFederatedSchema(gql` - type Review { - id: ID - } - - extend type Review { - title: String - } - - interface Node @key(fields: "id") { - id: ID! - } - - extend interface Product @key(fields: "upc") { - upc: String @external - reviews: [Review] - } - `); - - const { data, errors } = await graphql(schema, query); - expect(errors).toBeUndefined(); - expect(data._service.sdl).toEqual(`interface Node @key(fields: "id") { - id: ID! -} - -extend interface Product @key(fields: "upc") { - upc: String @external - reviews: [Review] -} - -type Review { - id: ID - title: String -} -`); - }); - it('returns valid sdl for @key directives', async () => { - const query = `query GetServiceDetails { - _service { - sdl - } - }`; - const schema = buildFederatedSchema(gql` - type Product @key(fields: "upc") { - upc: String! - name: String - price: Int - } - `); - - const { data, errors } = await graphql(schema, query); - expect(errors).toBeUndefined(); - expect(data._service.sdl).toEqual(`type Product @key(fields: "upc") { - upc: String! - name: String - price: Int -} -`); - }); - it('returns valid sdl for multiple @key directives', async () => { - const query = `query GetServiceDetails { - _service { - sdl - } - }`; - const schema = buildFederatedSchema(gql` - type Product @key(fields: "upc") @key(fields: "name") { - upc: String! - name: String - price: Int - } - `); - - const { data, errors } = await graphql(schema, query); - expect(errors).toBeUndefined(); - expect(data._service.sdl) - .toEqual(`type Product @key(fields: "upc") @key(fields: "name") { - upc: String! - name: String - price: Int -} -`); - }); - it('supports all federation directives', async () => { - const query = `query GetServiceDetails { - _service { - sdl - } - }`; - - const schema = buildFederatedSchema(gql` - type Review @key(fields: "id") { - id: ID! - body: String - author: User @provides(fields: "email") - product: Product @provides(fields: "upc") - } - - extend type User @key(fields: "email") { - email: String @external - reviews: [Review] - } - - extend type Product @key(fields: "upc") { - upc: String @external - reviews: [Review] - } - `); - - const { data, errors } = await graphql(schema, query); - expect(errors).toBeUndefined(); - expect(data._service.sdl) - .toEqual(`extend type Product @key(fields: "upc") { - upc: String @external - reviews: [Review] -} - -type Review @key(fields: "id") { - id: ID! - body: String - author: User @provides(fields: "email") - product: Product @provides(fields: "upc") -} - -extend type User @key(fields: "email") { - email: String @external - reviews: [Review] -} -`); - }); - it('keeps custom directives', async () => { - const query = `query GetServiceDetails { - _service { - sdl - } - }`; - - const schema = buildFederatedSchema(gql` - directive @custom on FIELD - - extend type User @key(fields: "email") { - email: String @external - } - `); - - const { data, errors } = await graphql(schema, query); - expect(errors).toBeUndefined(); - expect(data._service.sdl).toEqual(`directive @custom on FIELD - -extend type User @key(fields: "email") { - email: String @external -} -`); - }); - }); -}); - -describe('legacy interface', () => { - const resolvers = { - Query: { - product: () => ({}), - }, - Product: { - upc: () => '1234', - price: () => 10, - }, - }; - const typeDefs: DocumentNode[] = [ - gql` - type Query { - product: Product - } - type Product @key(fields: "upc") { - upc: String! - name: String - } - `, - gql` - extend type Product { - price: Int - } - `, - ]; - it('allows legacy schema module interface as an input with an array of typeDefs and resolvers', async () => { - const schema = buildFederatedSchema({ typeDefs, resolvers }); - expect(schema.getType('_Entity')).toMatchInlineSnapshot( - `union _Entity = Product`, - ); - expect( - await execute( - schema, - gql` - { - product { - price - upc - } - } - `, - ), - ).toEqual({ - data: { - product: { upc: '1234', price: 10 }, - }, - }); - }); - it('allows legacy schema module interface as a single module', async () => { - const schema = buildFederatedSchema({ - typeDefs: gql` - type Query { - product: Product - } - type Product @key(fields: "upc") { - upc: String! - name: String - price: Int - } - `, - resolvers, - }); - expect(schema.getType('_Entity')).toMatchInlineSnapshot( - `union _Entity = Product`, - ); - expect( - await execute( - schema, - gql` - { - product { - price - upc - } - } - `, - ), - ).toEqual({ - data: { - product: { upc: '1234', price: 10 }, - }, - }); - }); - it('allows legacy schema module interface as a single module without resolvers', async () => { - const schema = buildFederatedSchema({ - typeDefs: gql` - type Query { - product: Product - } - type Product @key(fields: "upc") { - upc: String! - name: String - price: Int - } - `, - }); - expect(schema.getType('Product')).toMatchInlineSnapshot(` -type Product { - upc: String! - name: String - price: Int -} -`); - expect(schema.getType('_Entity')).toMatchInlineSnapshot( - `union _Entity = Product`, - ); - }); - it('allows legacy schema module interface as a simple array of documents', async () => { - const schema = buildFederatedSchema({ typeDefs }); - expect(schema.getType('Product')).toMatchInlineSnapshot(` -type Product { - upc: String! - name: String - price: Int -} -`); - expect(schema.getType('_Entity')).toMatchInlineSnapshot( - `union _Entity = Product`, - ); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/service/__tests__/printComposedSdl.test.ts b/gateway/node_modules/@apollo/federation/src/service/__tests__/printComposedSdl.test.ts deleted file mode 100644 index 2d45b62..0000000 --- a/gateway/node_modules/@apollo/federation/src/service/__tests__/printComposedSdl.test.ts +++ /dev/null @@ -1,311 +0,0 @@ -import { fixtures } from 'apollo-federation-integration-testsuite'; -import { composeAndValidate } from '../../composition'; -import { parse, GraphQLError, visit, StringValueNode } from 'graphql'; - -describe('printComposedSdl', () => { - let composedSdl: string | undefined, errors: GraphQLError[]; - - beforeAll(() => { - // composeAndValidate calls `printComposedSdl` to return `composedSdl` - ({ composedSdl, errors } = composeAndValidate(fixtures)); - }); - - it('composes without errors', () => { - expect(errors).toHaveLength(0); - }); - - it('produces a parseable output', () => { - expect(() => parse(composedSdl!)).not.toThrow(); - }) - - it('prints a fully composed schema correctly', () => { - expect(composedSdl).toMatchInlineSnapshot(` - "schema - @graph(name: \\"accounts\\", url: \\"https://accounts.api.com\\") - @graph(name: \\"books\\", url: \\"https://books.api.com\\") - @graph(name: \\"documents\\", url: \\"https://documents.api.com\\") - @graph(name: \\"inventory\\", url: \\"https://inventory.api.com\\") - @graph(name: \\"product\\", url: \\"https://product.api.com\\") - @graph(name: \\"reviews\\", url: \\"https://reviews.api.com\\") - @composedGraph(version: 1) - { - query: Query - mutation: Mutation - } - - directive @composedGraph(version: Int!) on SCHEMA - - directive @graph(name: String!, url: String!) on SCHEMA - - directive @owner(graph: String!) on OBJECT - - directive @key(fields: String!, graph: String!) on OBJECT - - directive @resolve(graph: String!) on FIELD_DEFINITION - - directive @provides(fields: String!) on FIELD_DEFINITION - - directive @requires(fields: String!) on FIELD_DEFINITION - - directive @stream on FIELD - - directive @transform(from: String!) on FIELD - - union AccountType = PasswordAccount | SMSAccount - - type Amazon { - referrer: String - } - - union Body = Image | Text - - type Book implements Product - @owner(graph: \\"books\\") - @key(fields: \\"{ isbn }\\", graph: \\"books\\") - @key(fields: \\"{ isbn }\\", graph: \\"inventory\\") - @key(fields: \\"{ isbn }\\", graph: \\"product\\") - @key(fields: \\"{ isbn }\\", graph: \\"reviews\\") - { - isbn: String! - title: String - year: Int - similarBooks: [Book]! - metadata: [MetadataOrError] - inStock: Boolean @resolve(graph: \\"inventory\\") - isCheckedOut: Boolean @resolve(graph: \\"inventory\\") - upc: String! @resolve(graph: \\"product\\") - sku: String! @resolve(graph: \\"product\\") - name(delimeter: String = \\" \\"): String @resolve(graph: \\"product\\") @requires(fields: \\"{ title year }\\") - price: String @resolve(graph: \\"product\\") - details: ProductDetailsBook @resolve(graph: \\"product\\") - reviews: [Review] @resolve(graph: \\"reviews\\") - relatedReviews: [Review!]! @resolve(graph: \\"reviews\\") @requires(fields: \\"{ similarBooks { isbn } }\\") - } - - union Brand = Ikea | Amazon - - type Car implements Vehicle - @owner(graph: \\"product\\") - @key(fields: \\"{ id }\\", graph: \\"product\\") - @key(fields: \\"{ id }\\", graph: \\"reviews\\") - { - id: String! - description: String - price: String - retailPrice: String @resolve(graph: \\"reviews\\") @requires(fields: \\"{ price }\\") - } - - type Error { - code: Int - message: String - } - - type Furniture implements Product - @owner(graph: \\"product\\") - @key(fields: \\"{ upc }\\", graph: \\"product\\") - @key(fields: \\"{ sku }\\", graph: \\"product\\") - @key(fields: \\"{ sku }\\", graph: \\"inventory\\") - @key(fields: \\"{ upc }\\", graph: \\"reviews\\") - { - upc: String! - sku: String! - name: String - price: String - brand: Brand - metadata: [MetadataOrError] - details: ProductDetailsFurniture - inStock: Boolean @resolve(graph: \\"inventory\\") - isHeavy: Boolean @resolve(graph: \\"inventory\\") - reviews: [Review] @resolve(graph: \\"reviews\\") - } - - type Ikea { - asile: Int - } - - type Image { - name: String! - attributes: ImageAttributes! - } - - type ImageAttributes { - url: String! - } - - type KeyValue { - key: String! - value: String! - } - - type Library - @owner(graph: \\"books\\") - @key(fields: \\"{ id }\\", graph: \\"books\\") - @key(fields: \\"{ id }\\", graph: \\"accounts\\") - { - id: ID! - name: String - userAccount(id: ID! = 1): User @resolve(graph: \\"accounts\\") @requires(fields: \\"{ name }\\") - } - - union MetadataOrError = KeyValue | Error - - type Mutation { - login(username: String!, password: String!): User @resolve(graph: \\"accounts\\") - reviewProduct(upc: String!, body: String!): Product @resolve(graph: \\"reviews\\") - updateReview(review: UpdateReviewInput!): Review @resolve(graph: \\"reviews\\") - deleteReview(id: ID!): Boolean @resolve(graph: \\"reviews\\") - } - - type Name { - first: String - last: String - } - - type PasswordAccount - @owner(graph: \\"accounts\\") - @key(fields: \\"{ email }\\", graph: \\"accounts\\") - { - email: String! - } - - interface Product { - upc: String! - sku: String! - name: String - price: String - details: ProductDetails - inStock: Boolean - reviews: [Review] - } - - interface ProductDetails { - country: String - } - - type ProductDetailsBook implements ProductDetails { - country: String - pages: Int - } - - type ProductDetailsFurniture implements ProductDetails { - country: String - color: String - } - - type Query { - user(id: ID!): User @resolve(graph: \\"accounts\\") - me: User @resolve(graph: \\"accounts\\") - book(isbn: String!): Book @resolve(graph: \\"books\\") - books: [Book] @resolve(graph: \\"books\\") - library(id: ID!): Library @resolve(graph: \\"books\\") - body: Body! @resolve(graph: \\"documents\\") - product(upc: String!): Product @resolve(graph: \\"product\\") - vehicle(id: String!): Vehicle @resolve(graph: \\"product\\") - topProducts(first: Int = 5): [Product] @resolve(graph: \\"product\\") - topCars(first: Int = 5): [Car] @resolve(graph: \\"product\\") - topReviews(first: Int = 5): [Review] @resolve(graph: \\"reviews\\") - } - - type Review - @owner(graph: \\"reviews\\") - @key(fields: \\"{ id }\\", graph: \\"reviews\\") - { - id: ID! - body(format: Boolean = false): String - author: User @provides(fields: \\"{ username }\\") - product: Product - metadata: [MetadataOrError] - } - - type SMSAccount - @owner(graph: \\"accounts\\") - @key(fields: \\"{ number }\\", graph: \\"accounts\\") - { - number: String - } - - type Text { - name: String! - attributes: TextAttributes! - } - - type TextAttributes { - bold: Boolean - text: String - } - - union Thing = Car | Ikea - - input UpdateReviewInput { - id: ID! - body: String - } - - type User - @owner(graph: \\"accounts\\") - @key(fields: \\"{ id }\\", graph: \\"accounts\\") - @key(fields: \\"{ username name { first last } }\\", graph: \\"accounts\\") - @key(fields: \\"{ id }\\", graph: \\"inventory\\") - @key(fields: \\"{ id }\\", graph: \\"product\\") - @key(fields: \\"{ id }\\", graph: \\"reviews\\") - { - id: ID! - name: Name - username: String - birthDate(locale: String): String - account: AccountType - metadata: [UserMetadata] - goodDescription: Boolean @resolve(graph: \\"inventory\\") @requires(fields: \\"{ metadata { description } }\\") - vehicle: Vehicle @resolve(graph: \\"product\\") - thing: Thing @resolve(graph: \\"product\\") - reviews: [Review] @resolve(graph: \\"reviews\\") - numberOfReviews: Int! @resolve(graph: \\"reviews\\") - goodAddress: Boolean @resolve(graph: \\"reviews\\") @requires(fields: \\"{ metadata { address } }\\") - } - - type UserMetadata { - name: String - address: String - description: String - } - - type Van implements Vehicle - @owner(graph: \\"product\\") - @key(fields: \\"{ id }\\", graph: \\"product\\") - @key(fields: \\"{ id }\\", graph: \\"reviews\\") - { - id: String! - description: String - price: String - retailPrice: String @resolve(graph: \\"reviews\\") @requires(fields: \\"{ price }\\") - } - - interface Vehicle { - id: String! - description: String - price: String - retailPrice: String - } - " - `); - }); - - it('fieldsets are parseable', () => { - const parsedCsdl = parse(composedSdl!); - const fieldSets: string[] = []; - - // Collect all args with the 'fields' name (from @key, @provides, @requires directives) - visit(parsedCsdl, { - Argument(node) { - if (node.name.value === 'fields') { - fieldSets.push((node.value as StringValueNode).value); - } - }, - }); - - // Ensure each found 'fields' arg is graphql parseable - fieldSets.forEach((unparsed) => { - expect(() => parse(unparsed)).not.toThrow(); - }); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/service/__tests__/printFederatedSchema.test.ts b/gateway/node_modules/@apollo/federation/src/service/__tests__/printFederatedSchema.test.ts deleted file mode 100644 index b0eddad..0000000 --- a/gateway/node_modules/@apollo/federation/src/service/__tests__/printFederatedSchema.test.ts +++ /dev/null @@ -1,216 +0,0 @@ -import { fixtures } from 'apollo-federation-integration-testsuite'; -import { composeAndValidate } from '../../composition'; -import { printSchema } from '../printFederatedSchema'; - -describe('printFederatedSchema', () => { - const { schema, errors } = composeAndValidate(fixtures); - - it('composes without errors', () => { - expect(errors).toHaveLength(0); - }); - - it('prints a fully composed schema correctly', () => { - expect(printSchema(schema)).toMatchInlineSnapshot(` - "directive @stream on FIELD - - directive @transform(from: String!) on FIELD - - union AccountType = PasswordAccount | SMSAccount - - type Amazon { - referrer: String - } - - union Body = Image | Text - - type Book implements Product @key(fields: \\"isbn\\") { - isbn: String! - title: String - year: Int - similarBooks: [Book]! - metadata: [MetadataOrError] - inStock: Boolean - isCheckedOut: Boolean - upc: String! - sku: String! - name(delimeter: String = \\" \\"): String @requires(fields: \\"title year\\") - price: String - details: ProductDetailsBook - reviews: [Review] - relatedReviews: [Review!]! @requires(fields: \\"similarBooks { isbn }\\") - } - - union Brand = Ikea | Amazon - - type Car implements Vehicle @key(fields: \\"id\\") { - id: String! - description: String - price: String - retailPrice: String @requires(fields: \\"price\\") - } - - type Error { - code: Int - message: String - } - - type Furniture implements Product @key(fields: \\"sku\\") @key(fields: \\"upc\\") { - upc: String! - sku: String! - name: String - price: String - brand: Brand - metadata: [MetadataOrError] - details: ProductDetailsFurniture - inStock: Boolean - isHeavy: Boolean - reviews: [Review] - } - - type Ikea { - asile: Int - } - - type Image { - name: String! - attributes: ImageAttributes! - } - - type ImageAttributes { - url: String! - } - - type KeyValue { - key: String! - value: String! - } - - type Library @key(fields: \\"id\\") { - id: ID! - name: String - userAccount(id: ID! = 1): User @requires(fields: \\"name\\") - } - - union MetadataOrError = KeyValue | Error - - type Mutation { - login(username: String!, password: String!): User - reviewProduct(upc: String!, body: String!): Product - updateReview(review: UpdateReviewInput!): Review - deleteReview(id: ID!): Boolean - } - - type Name { - first: String - last: String - } - - type PasswordAccount @key(fields: \\"email\\") { - email: String! - } - - interface Product { - upc: String! - sku: String! - name: String - price: String - details: ProductDetails - inStock: Boolean - reviews: [Review] - } - - interface ProductDetails { - country: String - } - - type ProductDetailsBook implements ProductDetails { - country: String - pages: Int - } - - type ProductDetailsFurniture implements ProductDetails { - country: String - color: String - } - - type Query { - user(id: ID!): User - me: User - book(isbn: String!): Book - books: [Book] - library(id: ID!): Library - body: Body! - product(upc: String!): Product - vehicle(id: String!): Vehicle - topProducts(first: Int = 5): [Product] - topCars(first: Int = 5): [Car] - topReviews(first: Int = 5): [Review] - } - - type Review @key(fields: \\"id\\") { - id: ID! - body(format: Boolean = false): String - author: User @provides(fields: \\"username\\") - product: Product - metadata: [MetadataOrError] - } - - type SMSAccount @key(fields: \\"number\\") { - number: String - } - - type Text { - name: String! - attributes: TextAttributes! - } - - type TextAttributes { - bold: Boolean - text: String - } - - union Thing = Car | Ikea - - input UpdateReviewInput { - id: ID! - body: String - } - - type User @key(fields: \\"id\\") @key(fields: \\"username name { first last }\\") { - id: ID! - name: Name - username: String - birthDate(locale: String): String - account: AccountType - metadata: [UserMetadata] - goodDescription: Boolean @requires(fields: \\"metadata { description }\\") - vehicle: Vehicle - thing: Thing - reviews: [Review] - numberOfReviews: Int! - goodAddress: Boolean @requires(fields: \\"metadata { address }\\") - } - - type UserMetadata { - name: String - address: String - description: String - } - - type Van implements Vehicle @key(fields: \\"id\\") { - id: String! - description: String - price: String - retailPrice: String @requires(fields: \\"price\\") - } - - interface Vehicle { - id: String! - description: String - price: String - retailPrice: String - } - " - `); - }); -}); diff --git a/gateway/node_modules/@apollo/federation/src/service/__tests__/tsconfig.json b/gateway/node_modules/@apollo/federation/src/service/__tests__/tsconfig.json deleted file mode 100644 index 4a7651f..0000000 --- a/gateway/node_modules/@apollo/federation/src/service/__tests__/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../../tsconfig.test.base", - "include": ["**/*"], - "references": [{ "path": "../../../" }] -} diff --git a/gateway/node_modules/@apollo/federation/src/service/buildFederatedSchema.ts b/gateway/node_modules/@apollo/federation/src/service/buildFederatedSchema.ts deleted file mode 100644 index 16481e0..0000000 --- a/gateway/node_modules/@apollo/federation/src/service/buildFederatedSchema.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { - DocumentNode, - GraphQLSchema, - isObjectType, - isUnionType, - GraphQLUnionType, - GraphQLObjectType, - specifiedDirectives, -} from 'graphql'; -import { - buildSchemaFromSDL, - transformSchema, - GraphQLSchemaModule, - modulesFromSDL, - addResolversToSchema, - GraphQLResolverMap, -} from 'apollo-graphql'; -import federationDirectives, { typeIncludesDirective } from '../directives'; - -import { serviceField, entitiesField, EntityType } from '../types'; - -import { printSchema } from './printFederatedSchema'; - -import 'apollo-server-env'; - -type LegacySchemaModule = { - typeDefs: DocumentNode | DocumentNode[]; - resolvers?: GraphQLResolverMap; -}; - -export function buildFederatedSchema( - modulesOrSDL: - | (GraphQLSchemaModule | DocumentNode)[] - | DocumentNode - | LegacySchemaModule, -): GraphQLSchema { - // ApolloServer supports passing an array of DocumentNode along with a single - // map of resolvers to build a schema. Long term we don't want to support this - // style anymore as we move towards a more structured approach to modules, - // however, it has tripped several teams up to not support this signature - // in buildFederatedSchema. Especially as teams migrate from - // `new ApolloServer({ typeDefs: DocumentNode[], resolvers })` to - // `new ApolloServer({ schema: buildFederatedSchema({ typeDefs: DocumentNode[], resolvers }) })` - // - // The last type in the union for `modulesOrSDL` supports this "legacy" input - // style in a simple manner (by just adding the resolvers to the first typeDefs entry) - // - let shapedModulesOrSDL: (GraphQLSchemaModule | DocumentNode)[] | DocumentNode; - if ('typeDefs' in modulesOrSDL) { - const { typeDefs, resolvers } = modulesOrSDL; - const augmentedTypeDefs = Array.isArray(typeDefs) ? typeDefs : [typeDefs]; - shapedModulesOrSDL = augmentedTypeDefs.map((typeDefs, i) => { - const module: GraphQLSchemaModule = { typeDefs }; - // add the resolvers to the first "module" in the array - if (i === 0 && resolvers) module.resolvers = resolvers; - return module; - }); - } else { - shapedModulesOrSDL = modulesOrSDL; - } - - const modules = modulesFromSDL(shapedModulesOrSDL); - - let schema = buildSchemaFromSDL( - modules, - new GraphQLSchema({ - query: undefined, - directives: [...specifiedDirectives, ...federationDirectives], - }), - ); - - // At this point in time, we have a schema to be printed into SDL which is - // representative of what the user defined for their schema. This is before - // we process any of the federation directives and add custom federation types - // so its the right place to create our service definition sdl. - // - // We have to use a modified printSchema from graphql-js which includes - // support for preserving the *uses* of federation directives while removing - // their *definitions* from the sdl. - const sdl = printSchema(schema); - - // Add an empty query root type if none has been defined - if (!schema.getQueryType()) { - schema = new GraphQLSchema({ - ...schema.toConfig(), - query: new GraphQLObjectType({ - name: 'Query', - fields: {}, - }), - }); - } - - const entityTypes = Object.values(schema.getTypeMap()).filter( - type => isObjectType(type) && typeIncludesDirective(type, 'key'), - ); - const hasEntities = entityTypes.length > 0; - - schema = transformSchema(schema, type => { - // Add `_entities` and `_service` fields to query root type - if (isObjectType(type) && type === schema.getQueryType()) { - const config = type.toConfig(); - return new GraphQLObjectType({ - ...config, - fields: { - ...(hasEntities && { _entities: entitiesField }), - _service: { - ...serviceField, - resolve: () => ({ sdl }), - }, - ...config.fields, - }, - }); - } - - return undefined; - }); - - schema = transformSchema(schema, type => { - if (hasEntities && isUnionType(type) && type.name === EntityType.name) { - return new GraphQLUnionType({ - ...EntityType.toConfig(), - types: entityTypes.filter(isObjectType), - }); - } - return undefined; - }); - - for (const module of modules) { - if (!module.resolvers) continue; - addResolversToSchema(schema, module.resolvers); - } - - return schema; -} diff --git a/gateway/node_modules/@apollo/federation/src/service/index.ts b/gateway/node_modules/@apollo/federation/src/service/index.ts deleted file mode 100644 index c8cfc97..0000000 --- a/gateway/node_modules/@apollo/federation/src/service/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './buildFederatedSchema'; -export * from './printFederatedSchema'; diff --git a/gateway/node_modules/@apollo/federation/src/service/printComposedSdl.ts b/gateway/node_modules/@apollo/federation/src/service/printComposedSdl.ts deleted file mode 100644 index 3ed6f94..0000000 --- a/gateway/node_modules/@apollo/federation/src/service/printComposedSdl.ts +++ /dev/null @@ -1,514 +0,0 @@ -import { - GraphQLSchema, - isSpecifiedDirective, - isIntrospectionType, - isSpecifiedScalarType, - GraphQLNamedType, - GraphQLDirective, - isScalarType, - isObjectType, - isInterfaceType, - isUnionType, - isEnumType, - isInputObjectType, - GraphQLScalarType, - GraphQLObjectType, - GraphQLInterfaceType, - GraphQLUnionType, - GraphQLEnumType, - GraphQLInputObjectType, - GraphQLArgument, - GraphQLInputField, - astFromValue, - print, - GraphQLField, - GraphQLEnumValue, - GraphQLString, - DEFAULT_DEPRECATION_REASON, - ASTNode, - SelectionNode, -} from 'graphql'; -import { Maybe, ServiceDefinition, FederationType, FederationField } from '../composition'; -import { isFederationType } from '../types'; -import { isFederationDirective } from '../composition/utils'; -import csdlDirectives from '../csdlDirectives'; - -type Options = { - /** - * Descriptions are defined as preceding string literals, however an older - * experimental version of the SDL supported preceding comments as - * descriptions. Set to true to enable this deprecated behavior. - * This option is provided to ease adoption and will be removed in v16. - * - * Default: false - */ - commentDescriptions?: boolean; -}; - -/** - * Accepts options as a second argument: - * - * - commentDescriptions: - * Provide true to use preceding comments as the description. - * - */ -export function printComposedSdl( - schema: GraphQLSchema, - serviceList: ServiceDefinition[], - options?: Options, -): string { - return printFilteredSchema( - schema, - // Federation change: we need service and url information for the @graph directives - serviceList, - // Federation change: treat the directives defined by the federation spec - // similarly to the directives defined by the GraphQL spec (ie, don't print - // their definitions). - (n) => !isSpecifiedDirective(n) && !isFederationDirective(n), - isDefinedType, - options, - ); -} - -export function printIntrospectionSchema( - schema: GraphQLSchema, - options?: Options, -): string { - return printFilteredSchema( - schema, - [], - isSpecifiedDirective, - isIntrospectionType, - options, - ); -} - -// Federation change: treat the types defined by the federation spec -// similarly to the directives defined by the GraphQL spec (ie, don't print -// their definitions). -function isDefinedType(type: GraphQLNamedType): boolean { - return ( - !isSpecifiedScalarType(type) && - !isIntrospectionType(type) && - !isFederationType(type) - ); -} - -function printFilteredSchema( - schema: GraphQLSchema, - // Federation change: we need service and url information for the @graph directives - serviceList: ServiceDefinition[], - directiveFilter: (type: GraphQLDirective) => boolean, - typeFilter: (type: GraphQLNamedType) => boolean, - options?: Options, -): string { - // Federation change: include directive definitions for CSDL - const directives = [ - ...csdlDirectives, - ...schema.getDirectives().filter(directiveFilter), - ]; - const types = Object.values(schema.getTypeMap()) - .sort((type1, type2) => type1.name.localeCompare(type2.name)) - .filter(typeFilter); - - return ( - [printSchemaDefinition(schema, serviceList)] - .concat( - directives.map(directive => printDirective(directive, options)), - types.map(type => printType(type, options)), - ) - .filter(Boolean) - .join('\n\n') + '\n' - ); -} - -function printSchemaDefinition( - schema: GraphQLSchema, - serviceList: ServiceDefinition[], -): string | undefined { - const operationTypes = []; - - const queryType = schema.getQueryType(); - if (queryType) { - operationTypes.push(` query: ${queryType.name}`); - } - - const mutationType = schema.getMutationType(); - if (mutationType) { - operationTypes.push(` mutation: ${mutationType.name}`); - } - - const subscriptionType = schema.getSubscriptionType(); - if (subscriptionType) { - operationTypes.push(` subscription: ${subscriptionType.name}`); - } - - return ( - 'schema' + - // Federation change: print @graph and @composedGraph schema directives - printFederationSchemaDirectives(serviceList) + - `\n{\n${operationTypes.join('\n')}\n}` - ); -} - -function printFederationSchemaDirectives(serviceList: ServiceDefinition[]) { - return ( - serviceList.map(service => `\n @graph(name: "${service.name}", url: "${service.url}")`).join('') + - `\n @composedGraph(version: 1)` - ); -} - -export function printType(type: GraphQLNamedType, options?: Options): string { - if (isScalarType(type)) { - return printScalar(type, options); - } else if (isObjectType(type)) { - return printObject(type, options); - } else if (isInterfaceType(type)) { - return printInterface(type, options); - } else if (isUnionType(type)) { - return printUnion(type, options); - } else if (isEnumType(type)) { - return printEnum(type, options); - } else if (isInputObjectType(type)) { - return printInputObject(type, options); - } - - throw Error('Unexpected type: ' + (type as GraphQLNamedType).toString()); -} - -function printScalar(type: GraphQLScalarType, options?: Options): string { - return printDescription(options, type) + `scalar ${type.name}`; -} - -function printObject(type: GraphQLObjectType, options?: Options): string { - const interfaces = type.getInterfaces(); - const implementedInterfaces = interfaces.length - ? ' implements ' + interfaces.map(i => i.name).join(' & ') - : ''; - - // Federation change: print `extend` keyword on type extensions. - // - // The implementation assumes that an owned type will have fields defined - // since that is required for a valid schema. Types that are *only* - // extensions will not have fields on the astNode since that ast doesn't - // exist. - // - // XXX revist extension checking - const isExtension = - type.extensionASTNodes && type.astNode && !type.astNode.fields; - - return ( - printDescription(options, type) + - (isExtension ? 'extend ' : '') + - `type ${type.name}` + - implementedInterfaces + - // Federation addition for printing @owner and @key usages - printFederationTypeDirectives(type) + - printFields(options, type) - ); -} - -// Federation change: print usages of the @owner and @key directives. -function printFederationTypeDirectives(type: GraphQLObjectType): string { - const metadata: FederationType = type.extensions?.federation; - if (!metadata) return ''; - - const { serviceName: ownerService, keys } = metadata; - if (!ownerService || !keys) return ''; - - // Separate owner @keys from the rest of the @keys so we can print them - // adjacent to the @owner directive. - const { [ownerService]: ownerKeys, ...restKeys } = keys - const ownerEntry: [string, (readonly SelectionNode[])[]] = [ownerService, ownerKeys]; - const restEntries = Object.entries(restKeys); - - return ( - `\n @owner(graph: "${ownerService}")` + - [ownerEntry, ...restEntries].map(([service, keys]) => - keys - .map( - (selections) => - `\n @key(fields: "${printFieldSet(selections)}", graph: "${service}")`, - ) - .join(''), - ) - .join('') - ); -} - -function printInterface(type: GraphQLInterfaceType, options?: Options): string { - // Federation change: print `extend` keyword on type extensions. - // See printObject for assumptions made. - // - // XXX revist extension checking - const isExtension = - type.extensionASTNodes && type.astNode && !type.astNode.fields; - - return ( - printDescription(options, type) + - (isExtension ? 'extend ' : '') + - `interface ${type.name}` + - printFields(options, type) - ); -} - -function printUnion(type: GraphQLUnionType, options?: Options): string { - const types = type.getTypes(); - const possibleTypes = types.length ? ' = ' + types.join(' | ') : ''; - return printDescription(options, type) + 'union ' + type.name + possibleTypes; -} - -function printEnum(type: GraphQLEnumType, options?: Options): string { - const values = type - .getValues() - .map( - (value, i) => - printDescription(options, value, ' ', !i) + - ' ' + - value.name + - printDeprecated(value), - ); - - return ( - printDescription(options, type) + `enum ${type.name}` + printBlock(values) - ); -} - -function printInputObject( - type: GraphQLInputObjectType, - options?: Options, -): string { - const fields = Object.values(type.getFields()).map( - (f, i) => - printDescription(options, f, ' ', !i) + ' ' + printInputValue(f), - ); - return ( - printDescription(options, type) + `input ${type.name}` + printBlock(fields) - ); -} - -function printFields( - options: Options | undefined, - type: GraphQLObjectType | GraphQLInterfaceType, -) { - - const fields = Object.values(type.getFields()).map( - (f, i) => - printDescription(options, f, ' ', !i) + - ' ' + - f.name + - printArgs(options, f.args, ' ') + - ': ' + - String(f.type) + - printDeprecated(f) + - printFederationFieldDirectives(f, type), - ); - - // Federation change: for entities, we want to print the block on a new line. - // This is just a formatting nice-to-have. - const isEntity = Boolean(type.extensions?.federation?.keys); - - return printBlock(fields, isEntity); -} - -export function printWithReducedWhitespace(ast: ASTNode): string { - return print(ast) - .replace(/\s+/g, ' ') - .trim(); -} - -/** - * Federation change: print fieldsets for @key, @requires, and @provides directives - * - * @param selections - */ -function printFieldSet(selections: readonly SelectionNode[]): string { - return `{ ${selections.map(printWithReducedWhitespace).join(' ')} }`; -} - -/** - * Federation change: print @resolve, @requires, and @provides directives - * - * @param field - * @param parentType - */ -function printFederationFieldDirectives( - field: GraphQLField, - parentType: GraphQLObjectType | GraphQLInterfaceType, -): string { - if (!field.extensions?.federation) return ''; - - const { - serviceName, - requires = [], - provides = [], - }: FederationField = field.extensions.federation; - - let printed = ''; - // If a `serviceName` exists, we only want to print a `@resolve` directive - // if the `serviceName` differs from the `parentType`'s `serviceName` - if ( - serviceName && - serviceName !== parentType.extensions?.federation?.serviceName - ) { - printed += ` @resolve(graph: "${serviceName}")`; - } - - if (requires.length > 0) { - printed += ` @requires(fields: "${printFieldSet(requires)}")`; - } - - if (provides.length > 0) { - printed += ` @provides(fields: "${printFieldSet(provides)}")`; - } - - return printed; -} - -// Federation change: `onNewLine` is a formatting nice-to-have for printing -// types that have a list of directives attached, i.e. an entity. -function printBlock(items: string[], onNewLine?: boolean) { - return items.length !== 0 - ? onNewLine - ? '\n{\n' + items.join('\n') + '\n}' - : ' {\n' + items.join('\n') + '\n}' - : ''; -} - -function printArgs( - options: Options | undefined, - args: GraphQLArgument[], - indentation = '', -) { - if (args.length === 0) { - return ''; - } - - // If every arg does not have a description, print them on one line. - if (args.every((arg) => !arg.description)) { - return '(' + args.map(printInputValue).join(', ') + ')'; - } - - return ( - '(\n' + - args - .map( - (arg, i) => - printDescription(options, arg, ' ' + indentation, !i) + - ' ' + - indentation + - printInputValue(arg), - ) - .join('\n') + - '\n' + - indentation + - ')' - ); -} - -function printInputValue(arg: GraphQLInputField) { - const defaultAST = astFromValue(arg.defaultValue, arg.type); - let argDecl = arg.name + ': ' + String(arg.type); - if (defaultAST) { - argDecl += ` = ${print(defaultAST)}`; - } - return argDecl; -} - -function printDirective(directive: GraphQLDirective, options?: Options) { - return ( - printDescription(options, directive) + - 'directive @' + - directive.name + - printArgs(options, directive.args) + - (directive.isRepeatable ? ' repeatable' : '') + - ' on ' + - directive.locations.join(' | ') - ); -} - -function printDeprecated( - fieldOrEnumVal: GraphQLField | GraphQLEnumValue, -) { - if (!fieldOrEnumVal.isDeprecated) { - return ''; - } - const reason = fieldOrEnumVal.deprecationReason; - const reasonAST = astFromValue(reason, GraphQLString); - if (reasonAST && reason !== DEFAULT_DEPRECATION_REASON) { - return ' @deprecated(reason: ' + print(reasonAST) + ')'; - } - return ' @deprecated'; -} - -function printDescription }>( - options: Options | undefined, - def: T, - indentation = '', - firstInBlock = true, -): string { - const { description } = def; - if (description == null) { - return ''; - } - - if (options?.commentDescriptions === true) { - return printDescriptionWithComments(description, indentation, firstInBlock); - } - - const preferMultipleLines = description.length > 70; - const blockString = printBlockString(description, '', preferMultipleLines); - const prefix = - indentation && !firstInBlock ? '\n' + indentation : indentation; - - return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n'; -} - -function printDescriptionWithComments( - description: string, - indentation: string, - firstInBlock: boolean, -) { - const prefix = indentation && !firstInBlock ? '\n' : ''; - const comment = description - .split('\n') - .map((line) => indentation + (line !== '' ? '# ' + line : '#')) - .join('\n'); - - return prefix + comment + '\n'; -} - -/** - * Print a block string in the indented block form by adding a leading and - * trailing blank line. However, if a block string starts with whitespace and is - * a single-line, adding a leading blank line would strip that whitespace. - * - * @internal - */ -export function printBlockString( - value: string, - indentation: string = '', - preferMultipleLines: boolean = false, -): string { - const isSingleLine = value.indexOf('\n') === -1; - const hasLeadingSpace = value[0] === ' ' || value[0] === '\t'; - const hasTrailingQuote = value[value.length - 1] === '"'; - const hasTrailingSlash = value[value.length - 1] === '\\'; - const printAsMultipleLines = - !isSingleLine || - hasTrailingQuote || - hasTrailingSlash || - preferMultipleLines; - - let result = ''; - // Format a multi-line block quote to account for leading space. - if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) { - result += '\n' + indentation; - } - result += indentation ? value.replace(/\n/g, '\n' + indentation) : value; - if (printAsMultipleLines) { - result += '\n'; - } - - return '"""' + result.replace(/"""/g, '\\"""') + '"""'; -} diff --git a/gateway/node_modules/@apollo/federation/src/service/printFederatedSchema.ts b/gateway/node_modules/@apollo/federation/src/service/printFederatedSchema.ts deleted file mode 100644 index 0d963d6..0000000 --- a/gateway/node_modules/@apollo/federation/src/service/printFederatedSchema.ts +++ /dev/null @@ -1,454 +0,0 @@ -/** - * Forked from graphql-js schemaPrinter.js file @ v14.7.0 - * This file has been modified to support printing federated - * schema, including associated federation directives. - */ - -import { - GraphQLSchema, - isSpecifiedDirective, - isIntrospectionType, - isSpecifiedScalarType, - GraphQLNamedType, - GraphQLDirective, - isScalarType, - isObjectType, - isInterfaceType, - isUnionType, - isEnumType, - isInputObjectType, - GraphQLScalarType, - GraphQLObjectType, - GraphQLInterfaceType, - GraphQLUnionType, - GraphQLEnumType, - GraphQLInputObjectType, - GraphQLArgument, - GraphQLInputField, - astFromValue, - print, - GraphQLField, - GraphQLEnumValue, - GraphQLString, - DEFAULT_DEPRECATION_REASON, - ASTNode, -} from 'graphql'; -import { Maybe } from '../composition'; -import { isFederationType } from '../types'; -import { isFederationDirective } from '../composition/utils'; -import federationDirectives, { gatherDirectives } from '../directives'; - -type Options = { - /** - * Descriptions are defined as preceding string literals, however an older - * experimental version of the SDL supported preceding comments as - * descriptions. Set to true to enable this deprecated behavior. - * This option is provided to ease adoption and will be removed in v16. - * - * Default: false - */ - commentDescriptions?: boolean; -}; - -/** - * Accepts options as a second argument: - * - * - commentDescriptions: - * Provide true to use preceding comments as the description. - * - */ -export function printSchema(schema: GraphQLSchema, options?: Options): string { - return printFilteredSchema( - schema, - // Federation change: treat the directives defined by the federation spec - // similarly to the directives defined by the GraphQL spec (ie, don't print - // their definitions). - (n) => !isSpecifiedDirective(n) && !isFederationDirective(n), - isDefinedType, - options, - ); -} - -export function printIntrospectionSchema( - schema: GraphQLSchema, - options?: Options, -): string { - return printFilteredSchema( - schema, - isSpecifiedDirective, - isIntrospectionType, - options, - ); -} - -// Federation change: treat the types defined by the federation spec -// similarly to the directives defined by the GraphQL spec (ie, don't print -// their definitions). -function isDefinedType(type: GraphQLNamedType): boolean { - return ( - !isSpecifiedScalarType(type) && - !isIntrospectionType(type) && - !isFederationType(type) - ); -} - -function printFilteredSchema( - schema: GraphQLSchema, - directiveFilter: (type: GraphQLDirective) => boolean, - typeFilter: (type: GraphQLNamedType) => boolean, - options?: Options, -): string { - const directives = schema.getDirectives().filter(directiveFilter); - const types = Object.values(schema.getTypeMap()) - .sort((type1, type2) => type1.name.localeCompare(type2.name)) - .filter(typeFilter); - - return ( - [printSchemaDefinition(schema)] - .concat( - directives.map(directive => printDirective(directive, options)), - types.map(type => printType(type, options)), - ) - .filter(Boolean) - .join('\n\n') + '\n' - ); -} - -function printSchemaDefinition(schema: GraphQLSchema): string | undefined { - if (isSchemaOfCommonNames(schema)) { - return; - } - - const operationTypes = []; - - const queryType = schema.getQueryType(); - if (queryType) { - operationTypes.push(` query: ${queryType.name}`); - } - - const mutationType = schema.getMutationType(); - if (mutationType) { - operationTypes.push(` mutation: ${mutationType.name}`); - } - - const subscriptionType = schema.getSubscriptionType(); - if (subscriptionType) { - operationTypes.push(` subscription: ${subscriptionType.name}`); - } - - return `schema {\n${operationTypes.join('\n')}\n}`; -} - -/** - * GraphQL schema define root types for each type of operation. These types are - * the same as any other type and can be named in any manner, however there is - * a common naming convention: - * - * schema { - * query: Query - * mutation: Mutation - * } - * - * When using this naming convention, the schema description can be omitted. - */ -function isSchemaOfCommonNames(schema: GraphQLSchema): boolean { - const queryType = schema.getQueryType(); - if (queryType && queryType.name !== 'Query') { - return false; - } - - const mutationType = schema.getMutationType(); - if (mutationType && mutationType.name !== 'Mutation') { - return false; - } - - const subscriptionType = schema.getSubscriptionType(); - if (subscriptionType && subscriptionType.name !== 'Subscription') { - return false; - } - - return true; -} - -export function printType(type: GraphQLNamedType, options?: Options): string { - if (isScalarType(type)) { - return printScalar(type, options); - } else if (isObjectType(type)) { - return printObject(type, options); - } else if (isInterfaceType(type)) { - return printInterface(type, options); - } else if (isUnionType(type)) { - return printUnion(type, options); - } else if (isEnumType(type)) { - return printEnum(type, options); - } else if (isInputObjectType(type)) { - return printInputObject(type, options); - } - - throw Error('Unexpected type: ' + (type as GraphQLNamedType).toString()); -} - -function printScalar(type: GraphQLScalarType, options?: Options): string { - return printDescription(options, type) + `scalar ${type.name}`; -} - -function printObject(type: GraphQLObjectType, options?: Options): string { - const interfaces = type.getInterfaces(); - const implementedInterfaces = interfaces.length - ? ' implements ' + interfaces.map(i => i.name).join(' & ') - : ''; - - // Federation change: print `extend` keyword on type extensions. - // - // The implementation assumes that an owned type will have fields defined - // since that is required for a valid schema. Types that are *only* - // extensions will not have fields on the astNode since that ast doesn't - // exist. - // - // XXX revist extension checking - const isExtension = - type.extensionASTNodes && type.astNode && !type.astNode.fields; - - return ( - printDescription(options, type) + - (isExtension ? 'extend ' : '') + - `type ${type.name}${implementedInterfaces}` + - // Federation addition for printing @key usages - printFederationDirectives(type) + - printFields(options, type) - ); -} - -function printInterface(type: GraphQLInterfaceType, options?: Options): string { - // Federation change: print `extend` keyword on type extensions. - // See printObject for assumptions made. - // - // XXX revist extension checking - const isExtension = - type.extensionASTNodes && type.astNode && !type.astNode.fields; - - return ( - printDescription(options, type) + - (isExtension ? 'extend ' : '') + - `interface ${type.name}` + - // Federation change: graphql@14 doesn't support interfaces implementing interfaces - // printImplementedInterfaces(type) + - printFederationDirectives(type) + - printFields(options, type) - ); -} - -function printUnion(type: GraphQLUnionType, options?: Options): string { - const types = type.getTypes(); - const possibleTypes = types.length ? ' = ' + types.join(' | ') : ''; - return printDescription(options, type) + 'union ' + type.name + possibleTypes; -} - -function printEnum(type: GraphQLEnumType, options?: Options): string { - const values = type - .getValues() - .map( - (value, i) => - printDescription(options, value, ' ', !i) + - ' ' + - value.name + - printDeprecated(value), - ); - - return ( - printDescription(options, type) + `enum ${type.name}` + printBlock(values) - ); -} - -function printInputObject(type: GraphQLInputObjectType, options?: Options): string { - const fields = Object.values(type.getFields()).map( - (f, i) => - printDescription(options, f, ' ', !i) + ' ' + printInputValue(f), - ); - return ( - printDescription(options, type) + `input ${type.name}` + printBlock(fields) - ); -} - -function printFields( - options: Options | undefined, - type: GraphQLObjectType | GraphQLInterfaceType, -) { - const fields = Object.values(type.getFields()).map( - (f, i) => - printDescription(options, f, ' ', !i) + - ' ' + - f.name + - printArgs(options, f.args, ' ') + - ': ' + - String(f.type) + - printDeprecated(f) + - printFederationDirectives(f), - ); - return printBlock(fields); -} - -// Federation change: *do* print the usages of federation directives. -function printFederationDirectives( - type: GraphQLNamedType | GraphQLField, -): string { - if (!type.astNode) return ''; - if (isInputObjectType(type)) return ''; - - const allDirectives = gatherDirectives(type) - .filter((n) => - federationDirectives.some((fedDir) => fedDir.name === n.name.value), - ) - .map(print); - const dedupedDirectives = [...new Set(allDirectives)]; - - return dedupedDirectives.length > 0 ? ' ' + dedupedDirectives.join(' ') : ''; -} - -export function printWithReducedWhitespace(ast: ASTNode): string { - return print(ast) - .replace(/\s+/g, ' ') - .trim(); -} - -function printBlock(items: string[]) { - return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : ''; -} - -function printArgs( - options: Options | undefined, - args: GraphQLArgument[], - indentation = '', -) { - if (args.length === 0) { - return ''; - } - - // If every arg does not have a description, print them on one line. - if (args.every(arg => !arg.description)) { - return '(' + args.map(printInputValue).join(', ') + ')'; - } - - return ( - '(\n' + - args - .map( - (arg, i) => - printDescription(options, arg, ' ' + indentation, !i) + - ' ' + - indentation + - printInputValue(arg), - ) - .join('\n') + - '\n' + - indentation + - ')' - ); -} - -function printInputValue(arg: GraphQLInputField) { - const defaultAST = astFromValue(arg.defaultValue, arg.type); - let argDecl = arg.name + ': ' + String(arg.type); - if (defaultAST) { - argDecl += ` = ${print(defaultAST)}`; - } - return argDecl; -} - -function printDirective(directive: GraphQLDirective, options?: Options) { - return ( - printDescription(options, directive) + - 'directive @' + - directive.name + - printArgs(options, directive.args) + - (directive.isRepeatable ? ' repeatable' : '') + - ' on ' + - directive.locations.join(' | ') - ); -} - -function printDeprecated( - fieldOrEnumVal: GraphQLField | GraphQLEnumValue, -) { - if (!fieldOrEnumVal.isDeprecated) { - return ''; - } - const reason = fieldOrEnumVal.deprecationReason; - const reasonAST = astFromValue(reason, GraphQLString); - if (reasonAST && reason !== '' && reason !== DEFAULT_DEPRECATION_REASON) { - return ' @deprecated(reason: ' + print(reasonAST) + ')'; - } - return ' @deprecated'; -} - -function printDescription }>( - options: Options | undefined, - def: T, - indentation = '', - firstInBlock = true, -): string { - const { description } = def; - if (description == null) { - return ''; - } - - if (options?.commentDescriptions === true) { - return printDescriptionWithComments(description, indentation, firstInBlock); - } - - const preferMultipleLines = description.length > 70; - const blockString = printBlockString(description, '', preferMultipleLines); - const prefix = - indentation && !firstInBlock ? '\n' + indentation : indentation; - - return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n'; -} - -function printDescriptionWithComments( - description: string, - indentation: string, - firstInBlock: boolean, -) { - const prefix = indentation && !firstInBlock ? '\n' : ''; - const comment = description - .split('\n') - .map(line => indentation + (line !== '' ? '# ' + line : '#')) - .join('\n'); - - return prefix + comment + '\n'; -} - -/** - * Print a block string in the indented block form by adding a leading and - * trailing blank line. However, if a block string starts with whitespace and is - * a single-line, adding a leading blank line would strip that whitespace. - * - * @internal - */ -export function printBlockString( - value: string, - indentation: string = '', - preferMultipleLines: boolean = false, -): string { - const isSingleLine = value.indexOf('\n') === -1; - const hasLeadingSpace = value[0] === ' ' || value[0] === '\t'; - const hasTrailingQuote = value[value.length - 1] === '"'; - const hasTrailingSlash = value[value.length - 1] === '\\'; - const printAsMultipleLines = - !isSingleLine || - hasTrailingQuote || - hasTrailingSlash || - preferMultipleLines; - - let result = ''; - // Format a multi-line block quote to account for leading space. - if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) { - result += '\n' + indentation; - } - result += indentation ? value.replace(/\n/g, '\n' + indentation) : value; - if (printAsMultipleLines) { - result += '\n'; - } - - return '"""' + result.replace(/"""/g, '\\"""') + '"""'; -} diff --git a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/astSerializer.ts b/gateway/node_modules/@apollo/federation/src/snapshotSerializers/astSerializer.ts deleted file mode 100644 index b3dc7eb..0000000 --- a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/astSerializer.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ASTNode, print } from 'graphql'; -import { Plugin, Config, Refs } from 'pretty-format'; - -export default { - test(value: any) { - return value && typeof value.kind === 'string'; - }, - - serialize( - value: ASTNode, - _config: Config, - indentation: string, - _depth: number, - _refs: Refs, - _printer: any, - ): string { - return print(value) - .trim() - .replace(/\n/g, '\n' + indentation); - }, -} as Plugin; diff --git a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/graphqlErrorSerializer.ts b/gateway/node_modules/@apollo/federation/src/snapshotSerializers/graphqlErrorSerializer.ts deleted file mode 100644 index 3363d74..0000000 --- a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/graphqlErrorSerializer.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { GraphQLError } from 'graphql'; -import { Plugin } from 'pretty-format'; - -export default { - test(value: any) { - return value && value instanceof GraphQLError; - }, - - print(value: GraphQLError, print) { - return print({ - message: value.message, - code: value.extensions ? value.extensions.code : 'MISSING_ERROR', - }); - }, -} as Plugin; diff --git a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/index.ts b/gateway/node_modules/@apollo/federation/src/snapshotSerializers/index.ts deleted file mode 100644 index df46968..0000000 --- a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -export { default as astSerializer } from './astSerializer'; -export { default as selectionSetSerializer } from './selectionSetSerializer'; -export { default as typeSerializer } from './typeSerializer'; -export { default as graphqlErrorSerializer } from './graphqlErrorSerializer'; - -declare global { - namespace jest { - interface Expect { - /** - * Adds a module to format application-specific data structures for serialization. - */ - addSnapshotSerializer(serializer: import('pretty-format').Plugin): void; - } - } -} diff --git a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/selectionSetSerializer.ts b/gateway/node_modules/@apollo/federation/src/snapshotSerializers/selectionSetSerializer.ts deleted file mode 100644 index 33dfba4..0000000 --- a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/selectionSetSerializer.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { print, SelectionNode, isSelectionNode } from 'graphql'; -import { Plugin } from 'pretty-format'; - -export default { - test(value: any) { - return ( - Array.isArray(value) && value.length > 0 && value.every(isSelectionNode) - ); - }, - print(selectionNodes: SelectionNode[]): string { - return selectionNodes.map(node => print(node)).join('\n'); - }, -} as Plugin; diff --git a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/typeSerializer.ts b/gateway/node_modules/@apollo/federation/src/snapshotSerializers/typeSerializer.ts deleted file mode 100644 index 7b78e18..0000000 --- a/gateway/node_modules/@apollo/federation/src/snapshotSerializers/typeSerializer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { isNamedType, GraphQLNamedType, printType } from 'graphql'; -import { Plugin } from 'pretty-format'; - -export default { - test(value: any) { - return value && isNamedType(value); - }, - print(value: GraphQLNamedType) { - return printType(value); - }, -} as Plugin; diff --git a/gateway/node_modules/@apollo/federation/src/types.ts b/gateway/node_modules/@apollo/federation/src/types.ts deleted file mode 100644 index 4198f7d..0000000 --- a/gateway/node_modules/@apollo/federation/src/types.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { - GraphQLFieldConfig, - GraphQLString, - GraphQLUnionType, - GraphQLObjectType, - GraphQLScalarType, - GraphQLNonNull, - GraphQLList, - GraphQLType, - GraphQLNamedType, - isNamedType, - GraphQLResolveInfo, - isObjectType, -} from 'graphql'; -import { PromiseOrValue } from 'graphql/jsutils/PromiseOrValue'; - -export const EntityType = new GraphQLUnionType({ - name: '_Entity', - types: [], -}); - -export const ServiceType = new GraphQLObjectType({ - name: '_Service', - fields: { - sdl: { - type: GraphQLString, - description: - 'The sdl representing the federated service capabilities. Includes federation directives, removes federation types, and includes rest of full schema after schema directives have been applied', - }, - }, -}); - -export const AnyType = new GraphQLScalarType({ - name: '_Any', - serialize(value) { - return value; - }, -}); - -function isPromise(value: PromiseOrValue): value is Promise { - return Boolean(value && 'then' in value && typeof value.then === 'function'); -} - -function addTypeNameToPossibleReturn( - maybeObject: null | T, - typename: string, -): null | T & { __typename: string } { - if (maybeObject !== null && typeof maybeObject === 'object') { - Object.defineProperty(maybeObject, '__typename', { - value: typename, - }); - } - return maybeObject as null | T & { __typename: string }; -} - -export type GraphQLReferenceResolver = ( - reference: object, - context: TContext, - info: GraphQLResolveInfo, -) => any; - -declare module 'graphql/type/definition' { - interface GraphQLObjectType { - resolveReference?: GraphQLReferenceResolver; - } - - interface GraphQLObjectTypeConfig { - resolveReference?: GraphQLReferenceResolver; - } -} - -export const entitiesField: GraphQLFieldConfig = { - type: new GraphQLNonNull(new GraphQLList(EntityType)), - args: { - representations: { - type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(AnyType))), - }, - }, - resolve(_source, { representations }, context, info) { - return representations.map((reference: { __typename: string } & object) => { - const { __typename } = reference; - - const type = info.schema.getType(__typename); - if (!type || !isObjectType(type)) { - throw new Error( - `The _entities resolver tried to load an entity for type "${__typename}", but no object type of that name was found in the schema`, - ); - } - - const resolveReference = type.resolveReference - ? type.resolveReference - : function defaultResolveReference() { - return reference; - }; - - // FIXME somehow get this to show up special in Studio traces? - const result = resolveReference(reference, context, info); - - if (isPromise(result)) { - return result.then((x: any) => - addTypeNameToPossibleReturn(x, __typename), - ); - } - - return addTypeNameToPossibleReturn(result, __typename); - }); - }, -}; - -export const serviceField: GraphQLFieldConfig = { - type: new GraphQLNonNull(ServiceType), -}; - -export const federationTypes: GraphQLNamedType[] = [ - ServiceType, - AnyType, - EntityType, -]; - -export function isFederationType(type: GraphQLType): boolean { - return ( - isNamedType(type) && federationTypes.some(({ name }) => name === type.name) - ); -} diff --git a/gateway/node_modules/@apollo/gateway/CHANGELOG.md b/gateway/node_modules/@apollo/gateway/CHANGELOG.md deleted file mode 100644 index 46d835d..0000000 --- a/gateway/node_modules/@apollo/gateway/CHANGELOG.md +++ /dev/null @@ -1,257 +0,0 @@ -# CHANGELOG for `@apollo/gateway` - -## vNEXT - -> The changes noted within this `vNEXT` section have not been released yet. New PRs and commits which introduce changes should include an entry in this `vNEXT` section as part of their development. When a release is being prepared, a new header will be (manually) created below and the appropriate changes within that release will be moved into the new section. - -- Whenever "AccessDenied" 403 error comes from Apollo, provide a useful error message indicating how to resolve the problem. [PR #245](https://github.com/apollographql/federation/pull/245) - -## v0.21.0 - -- Fix `Cannot convert undefined or null to object` error which occurred when nullable variables were declared/used within an operation (i.e. `query`) document but `variables` was undefined on the request. [PR #167](https://github.com/apollographql/federation/pull/167) [Issue #196](https://github.com/apollographql/federation/issues/196) -- When using a custom `fetcher` on a `RemoteGraphQLDataSource`, use that fetcher's `Request` initialization in order to satisfy and of its own implementation details. This is necessary, for example, when using `make-fetch-happen`. [PR #188](https://github.com/apollographql/federation/pull/188) [Issue #191](https://github.com/apollographql/federation/issues/191) - -## v0.20.4 - -- Adjust a `preinstall` script which was only intended to be executed by the monorepo tool-chain, not merely by installing the `@apollo/gateway` package as a dependency in another project. [PR #185](https://github.com/apollographql/federation/pull/185) [Issue #184](https://github.com/apollographql/federation/issues/184) - -## v0.20.3 - -- Read managed federation configuration from the `apollo` option to `ApolloGateway.load` rather than the deprecated `engine` option, when available (ie, when running Apollo Server v2.18+), and update error messages referring to the old Engine and Graph Manager product names. [PR #148](https://github.com/apollographql/federation/pull/148) -- __FIX__: Directives which are located on inline fragments should not be skipped and should be sent to the service [PR #178](https://github.com/apollographql/federation/pull/178) - -## v0.20.2 - -- __FIX__: Minifying a String argument should escape quotes and slashes [PR #174](https://github.com/apollographql/federation/pull/174) - -## v0.20.1 - -- Replace the query planner implementation with a new implementation written in rust and integrated into the gateway - via wasm. [PR #4534](https://github.com/apollographql/apollo-server/pull/4534) - -## v0.20.0 - -- Only changes in the similarly versioned `@apollo/federation` package. - -## v0.19.1 - -- Only changes in the similarly versioned `@apollo/federation` package. - -## v0.19.0 - -- Only changes in the similarly versioned `@apollo/federation` package. - -## v0.18.1 - -- __FIX__: Pass null required fields correctly within the parent object to resolvers. When a composite field was null, it would sometimes be expanded into an object with all null subfields and passed to the resolver. This fix prevents this expansion and sets the field to null, as originally intended. [PR #4157](https://github.com/apollographql/apollo-server/pull/4157) -- __FIX__: Prevent gateway from entering an inoperable state after an initial configuration load failure. [PR #4277](https://github.com/apollographql/apollo-server/pull/4277) - -## v0.18.0 - -- The `RemoteGraphQLDataSource`'s `didEncounterError` method will now receive [`Response`](https://github.com/apollographql/apollo-server/blob/43470d6561bee31101f3afc56bdd154db3f92b30/packages/apollo-server-env/src/fetch.d.ts#L98-L111) as the third argument when it is available, making its signature `(error: Error, fetchRequest: Request, fetchResponse?: Response)`. This compliments the existing [`Request`](https://github.com/apollographql/apollo-server/blob/43470d6561bee31101f3afc56bdd154db3f92b30/packages/apollo-server-env/src/fetch.d.ts#L37-L45) type it was already receiving. Both of these types are [HTTP WHATWG Fetch API](https://fetch.spec.whatwg.org/) types, not `GraphQLRequest`, `GraphQLResponse` types. - -## v0.17.0 - -- __BREAKING__: Move federation metadata from custom objects on schema nodes over to the `extensions` field on schema nodes which are intended for metadata. This is a breaking change because it narrows the `graphql` peer dependency from `^14.0.2` to `^14.5.0` which is when [`extensions` were introduced](https://github.com/graphql/graphql-js/pull/2097) for all Type System objects. [PR #4313](https://github.com/apollographql/apollo-server/pull/4313) - -## v0.16.11 - -- Only changes in the similarly versioned `@apollo/federation` package. - -## v0.16.10 - -- The default branch of the repository has been changed to `main`. As this changed a number of references in the repository's `package.json` and `README.md` files (e.g., for badges, links, etc.), this necessitates a release to publish those changes to npm. [PR #4302](https://github.com/apollographql/apollo-server/pull/4302) -- __FIX__: The cache implementation for the HTTP-fetcher which is used when communicating with the Apollo Registry when the gateway is configured to use [managed federation](https://www.apollographql.com/docs/graph-manager/managed-federation/overview/) will no longer write to its cache when it receives a 304 response. This is necessary since such a response indicates that the cache used to conditionally make the request must already be present. This does not affect GraphQL requests at runtime, only the polling and fetching mechanism for retrieving composed schemas under manged federation. [PR #4325](https://github.com/apollographql/apollo-server/pull/4325) -- __FIX__: The `mergeFieldNodeSelectionSets` method no longer mutates original FieldNode objects. Before, it was updating the selection set of the original object, corrupting the data accross requests. - -## v0.16.9 - -- Only changes in the similarly versioned `@apollo/federation` package. - -## v0.16.7 - -- Bumped the version of `apollo-server-core`, but no other changes! - -## v0.16.6 - -- Only changes in the similarly versioned `@apollo/federation` package. - -## v0.16.5 - -- Only changes in the similarly versioned `@apollo/federation` package. - -## v0.16.4 - -- __NEW__: Provide the `requestContext` as an argument to the experimental callback function `experimental_didResolveQueryPlan`. [#4173](https://github.com/apollographql/apollo-server/pull/4173) - -## v0.16.3 - -- This updates a dependency of `apollo-server-core` that is only used for its TypeScript typings, not for any runtime dependencies. The reason for the upgrade is that the `apollo-server-core` package (again, used only for types!) was affected by a GitHub Security Advisory. [See the related `CHANGELOG.md` for Apollo Server for more details, including a link to the advisory](https://github.com/apollographql/apollo-server/blob/354d9910e1c87af93c7d50263a28554b449e48db/CHANGELOG.md#v2142). - -## v0.16.2 - -- __FIX__: Collapse nested required fields into a single body in the query plan. Before, some nested fields' selection sets were getting split, causing some of their subfields to be dropped when executing the query. This fix collapses the split selection sets into one. [#4064](https://github.com/apollographql/apollo-server/pull/4064) - -## v0.16.1 - -- __NEW__: Provide the ability to pass a custom `fetcher` during `RemoteGraphQLDataSource` construction to be used when executing operations against downstream services. Providing a custom `fetcher` may be necessary to accommodate more advanced needs, e.g., configuring custom TLS certificates for internal services. [PR #4149](https://github.com/apollographql/apollo-server/pull/4149) - - The `fetcher` specified should be a compliant implementor of the [Fetch API standard](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). This addition compliments, though is still orthognonal to, similar behavior originally introduced in [#3783](https://github.com/apollographql/apollo-server/pull/3783), which allowed customization of the implementation used to fetch _gateway configuration and federated SDL from services_ in managed and unmanaged modes, but didn't affect the communication that takes place during _operation execution_. - - For now, the default `fetcher` will remain the same ([`node-fetch`](https://npm.im/node-fetch)) implementation. A future major-version bump will update it to be consistent with other feature-rich implementations of the Fetch API which are used elsewhere in the Apollo Server stack where we use [`make-fetch-happen`](https://npm.im/make-fetch-happen). In all likelihood, `ApolloGateway` will pass its own `fetcher` to the `RemoteGraphQLDataSource` during service initialization. - -## v0.16.0 - -- __BREAKING__: Use a content delivery network for managed configuration, fetch storage secrets and composition configuration from different domains: https://storage-secrets.api.apollographql.com and https://federation.api.apollographql.com. Please mind any firewall for outgoing traffic. [#4080](https://github.com/apollographql/apollo-server/pull/4080) - -## v0.15.1 - -- __FIX__: Correctly handle unions with nested conditions that have no `possibleTypes` [#4071](https://github.com/apollographql/apollo-server/pull/4071) -- __FIX__: Normalize root operation types when reporting to Apollo Graph Manager. Federation always uses the default names `Query`, `Mutation`, and `Subscription` for root operation types even if downstream services choose different names; now we properly normalize traces received from downstream services in the same way. [#4100](https://github.com/apollographql/apollo-server/pull/4100) - -## v0.15.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/e37384a49b2bf474eed0de3e9f4a1bebaeee64c7) - -- __BREAKING__: Drop support for Node.js 8 and Node.js 10. This is being done primarily for performance gains which stand to be seen by transpiling to a newer ECMAScript target. For more details, see the related PR. [#4031](https://github.com/apollographql/apollo-server/pull/4031) -- __Performance:__ Cache stringified representations of downstream query bodies within the query plan to address performance cost incurred by repeatedly `print`ing the same`DocumentNode`s with the `graphql` printer. This improvement is more pronounced on larger documents. [PR #4018](https://github.com/apollographql/apollo-server/pull/4018) -- __Deprecation:__ Deprecated the `ENGINE_API_KEY` environment variable in favor of its new name, `APOLLO_KEY`. The new name mirrors the name used within Apollo Graph Manager. Aside from the rename, the functionality remains otherwise identical. Continued use of `ENGINE_API_KEY` will result in deprecation warnings being printed to the server console. Support for `ENGINE_API_KEY` will be removed in a future, major update. [#3923](https://github.com/apollographql/apollo-server/pull/3923) -- __Deprecation:__ Deprecated the `APOLLO_SCHEMA_TAG` environment variable in favor of its new name, `APOLLO_GRAPH_VARIANT`. The new name mirrors the name used within Apollo Graph Manager. Aside from the rename, the functionality remains otherwise identical. Use of the now-deprecated name will result in a deprecation warning being printed to the server console. Support will be removed entirely in a future, major update. To avoid misconfiguration, runtime errors will be thrown if the new and deprecated versions are _both_ set. [#3855](https://github.com/apollographql/apollo-server/pull/3855) -- Add inadvertently excluded `apollo-server-errors` runtime dependency. [#3927](https://github.com/apollographql/apollo-server/pull/3927) - -## v0.14.1 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/b898396e9fcd3b9092b168f9aac8466ca186fa6b) - -- __FIX__: Resolve condition which surfaced in `0.14.0` which prevented loading the configuration using managed federation. [PR #3979](https://github.com/apollographql/apollo-server/pull/3979) - -## v0.14.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/71a3863f59f4ab2c9052c316479d94c6708c4309) - -- Several previously unhandled Promise rejection errors stemming from, e.g. connectivity, failures when communicating with Apollo Graph Manager within asynchronous code are now handled. [PR #3811](https://github.com/apollographql/apollo-server/pull/3811) -- Provide a more helpful error message when encountering expected errors. [PR #3811](https://github.com/apollographql/apollo-server/pull/3811) -- General improvements and clarity to error messages and logging. [PR #3811](https://github.com/apollographql/apollo-server/pull/3811) -- Warn of a possible misconfiguration when local service configuration is provided (via `serviceList` or `localServiceList`) and a remote Apollo Graph Manager configuration is subsequently found as well. [PR #3868](https://github.com/apollographql/apollo-server/pull/3868) -- During composition, the unavailability of a downstream service in unmanaged federation mode will no longer result in a partially composed schema which merely lacks the types provided by the downed service. This prevents unexpected validation errors for clients querying a graph which lacks types which were merely unavailable during the initial composition but were intended to be part of the graph. [PR #3867](https://github.com/apollographql/apollo-server/pull/3867) -- Support providing a custom logger implementation (e.g. [`winston`](https://npm.im/winston), [`bunyan`](https://npm.im/bunyan), etc.) to capture gateway-sourced console output. This allows the use of existing, production logging facilities or the possibiltiy to use advanced structure in logging, such as console output which is encapsulated in JSON. The same PR that introduces this support also introduces a `logger` property to the `GraphQLRequestContext` that is exposed to `GraphQLDataSource`s and Apollo Server plugins, making it possible to attach additional properties (as supported by the logger implementation) to specific requests, if desired, by leveraging custom implementations in those components respectively. When not provided, these will still output to `console`. [PR #3894](https://github.com/apollographql/apollo-server/pull/3894) -- Drop use of `loglevel-debug`. This removes the very long date and time prefix in front of each log line and also the support for the `DEBUG=apollo-gateway:` environment variable. Both of these were uncommonly necessary or seldom used (with the environment variable also being undocumented). The existing behavior can be preserved by providing a `logger` that uses `loglevel-debug`, if desired, and more details can be found in the PR. [PR #3896](https://github.com/apollographql/apollo-server/pull/3896) -- Fix Typescript generic typing for datasource contexts [#3865](https://github.com/apollographql/apollo-server/pull/3865) This is a fix for the `TContext` typings of the gateway's exposed `GraphQLDataSource` implementations. In their current form, they don't work as intended, or in any manner that's useful for typing the `context` property throughout the class methods. This introduces a type argument `TContext` to the class itself (which defaults to `Record` for existing implementations) and removes the non-operational type arguments on the class methods themselves. -- Implement retry logic for requests to GCS [PR #3836](https://github.com/apollographql/apollo-server/pull/3836) Note: coupled with this change is a small alteration in how the gateway polls GCS for updates in managed mode. Previously, the tick was on a specific interval. Now, every tick starts after the round of fetches to GCS completes. For more details, see the linked PR. -- Gateway issues health checks to downstream services via `serviceHealthCheck` configuration option. Note: expected behavior differs between managed and unmanaged federation. See PR for new test cases and documentation. [#3930](https://github.com/apollographql/apollo-server/pull/3930) - - -## v0.13.2 - -- __BREAKING__: The behavior and signature of `RemoteGraphQLDataSource`'s `didReceiveResponse` method has been changed. No changes are necessary _unless_ your implementation has overridden the default behavior of this method by either extending the class and overriding the method or by providing `didReceiveResponse` as a parameter to the `RemoteGraphQLDataSource`'s constructor options. Implementations which have provided their own `didReceiveResponse` using either of these methods should view the PR linked here for details on what has changed. [PR #3743](https://github.com/apollographql/apollo-server/pull/3743) -- __NEW__: Setting the `apq` option to `true` on the `RemoteGraphQLDataSource` will enable the use of [automated persisted queries (APQ)](https://www.apollographql.com/docs/apollo-server/performance/apq/) when sending queries to downstream services. Depending on the complexity of queries sent to downstream services, this technique can greatly reduce the size of the payloads being transmitted over the network. Downstream implementing services must also support APQ functionality to participate in this feature (Apollo Server does by default unless it has been explicitly disabled). As with normal APQ behavior, a downstream server must have received and registered a query once before it will be able to serve an APQ request. [#3744](https://github.com/apollographql/apollo-server/pull/3744) -- __NEW__: Experimental feature: compress downstream requests via generated fragments [#3791](https://github.com/apollographql/apollo-server/pull/3791) This feature enables the gateway to generate fragments for queries to downstream services in order to minimize bytes over the wire and parse time. This can be enabled via the gateway config by setting `experimental_autoFragmentization: true`. It is currently disabled by default. -- Introduce `make-fetch-happen` package. Remove `cachedFetcher` in favor of the caching implementation provided by this package. [#3783](https://github.com/apollographql/apollo-server/pull/3783/files) - -## v0.12.1 - -- Update to include [fixes from `@apollo/federation`](https://github.com/apollographql/apollo-server/blob/main/packages/apollo-federation/CHANGELOG.md). - -## v0.12.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/9c0aa1e661ccc2c5a1471b781102637dd47e21b1) - -- Reduce interface expansion for types contained to a single service [#3582](https://github.com/apollographql/apollo-server/pull/3582) -- Instantiate one `CachedFetcher` per gateway instance. This resolves a condition where multiple federated gateways would utilize the same cache store could result in an `Expected undefined to be a GraphQLSchema` error. [#3704](https://github.com/apollographql/apollo-server/pull/3704) -- Gateway: minimize downstream request size [#3737](https://github.com/apollographql/apollo-server/pull/3737) -- experimental: Allow configuration of the query plan store by introducing an `experimental_approximateQueryPlanStoreMiB` property to the `ApolloGateway` constructor options which overrides the default cache size of 30MiB. [#3755](https://github.com/apollographql/apollo-server/pull/3755) - -## v0.11.6 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/0743d6b2f1737758cf09e80d2086917772bc00c9) - -- Fix onSchemaChange callbacks for unmanaged configs [#3605](https://github.com/apollographql/apollo-server/pull/3605) - -## v0.11.4 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/a0a60e73e04e913d388de8324f7d17e4406deea2) - - * Gateway over-merging fields of unioned types [#3581](https://github.com/apollographql/apollo-server/pull/3581) - -## v0.11.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/93002737d53dd9a50b473ab9cef14849b3e539aa) - -- Begin supporting executable directives in federation [#3464](https://github.com/apollographql/apollo-server/pull/3464) - -## v0.10.8 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/5d94e986f04457ec17114791ee6db3ece4213dd8) - -- Fix Gateway / Playground Query Plan view [#3418](https://github.com/apollographql/apollo-server/pull/3418) -- Gateway schema change listener bug + refactor [#3411](https://github.com/apollographql/apollo-server/pull/3411) introduces a change to the `experimental_didUpdateComposition` hook and `experimental_pollInterval` configuration behavior. - 1. Previously, the `experimental_didUpdateComposition` hook wouldn't be reliably called unless the `experimental_pollInterval` was set. If it _was_ called, it was sporadic and didn't necessarily mark the timing of an actual composition update. After this change, the hook is called on a successful composition update. - 2. The `experimental_pollInterval` configuration option now affects both the GCS polling interval when gateway is configured for managed federation, as well as the polling interval of services. The former being newly introduced behavior. -- Gateway cached DataSource bug [#3412](https://github.com/apollographql/apollo-server/pull/3412) introduces a fix for managed federation users where `DataSource`s wouldn't update correctly if a service's url changed. This bug was introduced with heavier DataSource caching in [#3388](https://github.com/apollographql/apollo-server/pull/3388). By inspecting the `url` as well, `DataSource`s will now update correctly when a composition update occurs. -- Gateway - don't log updates on startup [#3421](https://github.com/apollographql/apollo-server/pull/3421) Fine tune gateway startup logging - on load, instead of logging an "update", log the service id, variant, and mode in which gateway is running. - -## v0.10.7 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/fc7462ec5f8604bd6cba99aa9a377a9b8e045566) - -- Add export for experimental observability functions types. [#3371](https://github.com/apollographql/apollo-server/pull/3371) -- Fix double instantiation of DataSources [#3388](https://github.com/apollographql/apollo-server/pull/3388) - -## v0.10.6 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/aa200ce24b834320fc79d2605dac340b37d3e434) - -- Fix debug query plan logging [#3376](https://github.com/apollographql/apollo-server/pull/3376) -- Add `context` object to `GraphQLDataSource.didReceiveResponse` arguments [#3360](https://github.com/apollographql/apollo-server/pull/3360) - -## v0.10.1 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/029c8dca3af812ee70589cdb6de749df3d2843d8) - -- Make service definition cache local to ApolloGateway object [#3191](https://github.com/apollographql/apollo-server/pull/3191) -- Fix value type behavior within composition and execution [#3182](https://github.com/apollographql/apollo-server/pull/3182) -- Validate variables at the gateway level [#3213](https://github.com/apollographql/apollo-server/pull/3213) - -## v0.9.1 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/a1c41152a35c837af27d1dee081fc273de07a28e) - -- Optimize buildQueryPlan when two FetchGroups are on the same service [#3135](https://github.com/apollographql/apollo-server/pull/3135) -- Construct and use RemoteGraphQLDataSource to issue introspection query to Federated Services [#3120](https://github.com/apollographql/apollo-server/pull/3120) - -## v0.9.0 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/99f78c6782bce170186ba6ef311182a8c9f281b7) - -- Add experimental observability functions [#3110](https://github.com/apollographql/apollo-server/pull/3110) - -## v0.8.2 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/b0a9ce0615d19b7241e64883b5d5d7730cc13fcb) - -- Handle `null` @requires selections correctly during execution [#3138](https://github.com/apollographql/apollo-server/pull/3138) - -## v0.6.13 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/a06594117dbbf1e8abdb7b366b69a94ab808b065) - -- Proxy errors from downstream services [#3019](https://github.com/apollographql/apollo-server/pull/3019) -- Handle schema defaultVariables correctly within downstream fetches [#2963](https://github.com/apollographql/apollo-server/pull/2963) - -## v0.6.12 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/5974b2ce405a06bc331230400b9073f6381738d3) - -- Fix `@requires` bug preventing array and null values. [PR #2928](https://github.com/apollographql/apollo-server/pull/2928) - -## v0.6.5 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/9dcfe6f91fa7b4187a644efe1522cf444ffc1251) - -- Relax constraints of root operation type names in validation [#2783](ttps://github.com/apollographql/apollo-server/pull/2783) - -## v0.6.2 - -> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/e113127b1ff9802de3bc5574bcae55256f0ef656) - -- Resolve an issue with \__proto__ pollution in deepMerge() [#2779](https://github.com/apollographql/apollo-server/pull/2779) diff --git a/gateway/node_modules/@apollo/gateway/LICENSE.md b/gateway/node_modules/@apollo/gateway/LICENSE.md deleted file mode 100644 index c177b43..0000000 --- a/gateway/node_modules/@apollo/gateway/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2020- Apollo Graph, Inc. -Copyright (c) 2019-2020 Meteor Development Group, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/@apollo/gateway/README.md b/gateway/node_modules/@apollo/gateway/README.md deleted file mode 100644 index e0bb61f..0000000 --- a/gateway/node_modules/@apollo/gateway/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Apollo Gateway - -This package provides utilities for combining multiple GraphQL microservices into a single GraphQL endpoint. - -Each microservice should implement the [federation schema specification](https://www.apollographql.com/docs/apollo-server/federation/federation-spec/). This can be done either through [Apollo Federation](https://github.com/apollographql/federation/tree/HEAD/federation-js) or a variety of other open source products. - -For complete documentation, see the [Apollo Gateway API reference](https://www.apollographql.com/docs/apollo-server/api/apollo-gateway/). - -## Usage - -```js -const { ApolloServer } = require("apollo-server"); -const { ApolloGateway } = require("@apollo/gateway"); - -const gateway = new ApolloGateway({ - serviceList: [ - { name: "accounts", url: "http://localhost:4001/graphql" }, - // List of federation-capable GraphQL endpoints... - ] -}); - -const server = new ApolloServer({ gateway }); - -server.listen().then(({ url }) => { - console.log(`🚀 Server ready at ${url}`); -}); -``` diff --git a/gateway/node_modules/@apollo/gateway/dist/QueryPlan.d.ts b/gateway/node_modules/@apollo/gateway/dist/QueryPlan.d.ts deleted file mode 100644 index 2e738c9..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/QueryPlan.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { FragmentDefinitionNode, OperationDefinitionNode, SelectionNode as GraphQLJSSelectionNode } from 'graphql'; -import { ComposedGraphQLSchema } from '@apollo/federation'; -export declare type ResponsePath = (string | number)[]; -export declare type WasmPointer = number; -declare type FragmentMap = { - [fragmentName: string]: FragmentDefinitionNode; -}; -export declare type OperationContext = { - schema: ComposedGraphQLSchema; - operation: OperationDefinitionNode; - fragments: FragmentMap; - queryPlannerPointer: WasmPointer; - operationString: string; -}; -export interface QueryPlan { - kind: 'QueryPlan'; - node?: PlanNode; -} -export declare type PlanNode = SequenceNode | ParallelNode | FetchNode | FlattenNode; -export interface SequenceNode { - kind: 'Sequence'; - nodes: PlanNode[]; -} -export interface ParallelNode { - kind: 'Parallel'; - nodes: PlanNode[]; -} -export interface FetchNode { - kind: 'Fetch'; - serviceName: string; - variableUsages?: string[]; - requires?: QueryPlanSelectionNode[]; - operation: string; -} -export interface FlattenNode { - kind: 'Flatten'; - path: ResponsePath; - node: PlanNode; -} -export declare type QueryPlanSelectionNode = QueryPlanFieldNode | QueryPlanInlineFragmentNode; -export interface QueryPlanFieldNode { - readonly kind: 'Field'; - readonly alias?: string; - readonly name: string; - readonly selections?: QueryPlanSelectionNode[]; -} -export interface QueryPlanInlineFragmentNode { - readonly kind: 'InlineFragment'; - readonly typeCondition?: string; - readonly selections: QueryPlanSelectionNode[]; -} -export declare function serializeQueryPlan(queryPlan: QueryPlan): string; -export declare function getResponseName(node: QueryPlanFieldNode): string; -export declare const trimSelectionNodes: (selections: readonly GraphQLJSSelectionNode[]) => QueryPlanSelectionNode[]; -export {}; -//# sourceMappingURL=QueryPlan.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/QueryPlan.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/QueryPlan.d.ts.map deleted file mode 100644 index 9c78a36..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/QueryPlan.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"QueryPlan.d.ts","sourceRoot":"","sources":["../src/QueryPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAEvB,aAAa,IAAI,sBAAsB,EACxC,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,oBAAY,YAAY,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAE/C,oBAAY,WAAW,GAAG,MAAM,CAAC;AAEjC,aAAK,WAAW,GAAG;IAAE,CAAC,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAAA;CAAE,CAAC;AAEtE,oBAAY,gBAAgB,GAAG;IAC7B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,uBAAuB,CAAC;IACnC,SAAS,EAAE,WAAW,CAAC;IACvB,mBAAmB,EAAE,WAAW,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,oBAAY,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAQD,oBAAY,sBAAsB,GAAG,kBAAkB,GAAG,2BAA2B,CAAC;AAEtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,EAAE,CAAC;CAC/C;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,UAItD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAEhE;AAUD,eAAO,MAAM,kBAAkB,eACjB,SAAS,sBAAsB,EAAE,KAC5C,sBAAsB,EA8BxB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/QueryPlan.js b/gateway/node_modules/@apollo/gateway/dist/QueryPlan.js deleted file mode 100644 index 577c95b..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/QueryPlan.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.trimSelectionNodes = exports.getResponseName = exports.serializeQueryPlan = void 0; -const graphql_1 = require("graphql"); -const pretty_format_1 = __importDefault(require("pretty-format")); -const snapshotSerializers_1 = require("./snapshotSerializers"); -function serializeQueryPlan(queryPlan) { - return pretty_format_1.default(queryPlan, { - plugins: [snapshotSerializers_1.queryPlanSerializer, snapshotSerializers_1.astSerializer], - }); -} -exports.serializeQueryPlan = serializeQueryPlan; -function getResponseName(node) { - return node.alias ? node.alias : node.name; -} -exports.getResponseName = getResponseName; -exports.trimSelectionNodes = (selections) => { - const remapped = []; - selections.forEach((selection) => { - var _a; - if (selection.kind === graphql_1.Kind.FIELD) { - remapped.push({ - kind: graphql_1.Kind.FIELD, - name: selection.name.value, - selections: selection.selectionSet && - exports.trimSelectionNodes(selection.selectionSet.selections), - }); - } - if (selection.kind === graphql_1.Kind.INLINE_FRAGMENT) { - remapped.push({ - kind: graphql_1.Kind.INLINE_FRAGMENT, - typeCondition: (_a = selection.typeCondition) === null || _a === void 0 ? void 0 : _a.name.value, - selections: exports.trimSelectionNodes(selection.selectionSet.selections), - }); - } - }); - return remapped; -}; -//# sourceMappingURL=QueryPlan.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/QueryPlan.js.map b/gateway/node_modules/@apollo/gateway/dist/QueryPlan.js.map deleted file mode 100644 index ce4aad8..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/QueryPlan.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"QueryPlan.js","sourceRoot":"","sources":["../src/QueryPlan.ts"],"names":[],"mappings":";;;;;;AAAA,qCAKiB;AACjB,kEAAyC;AACzC,+DAA2E;AAqE3E,SAAgB,kBAAkB,CAAC,SAAoB;IACrD,OAAO,uBAAY,CAAC,SAAS,EAAE;QAC7B,OAAO,EAAE,CAAC,yCAAmB,EAAE,mCAAa,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AAJD,gDAIC;AAED,SAAgB,eAAe,CAAC,IAAwB;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,CAAC;AAFD,0CAEC;AAUY,QAAA,kBAAkB,GAAG,CAChC,UAA6C,EACnB,EAAE;IAQ5B,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;;QAC/B,IAAI,SAAS,CAAC,IAAI,KAAK,cAAI,CAAC,KAAK,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,cAAI,CAAC,KAAK;gBAChB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;gBAC1B,UAAU,EACR,SAAS,CAAC,YAAY;oBACtB,0BAAkB,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC;aACxD,CAAC,CAAC;SACJ;QACD,IAAI,SAAS,CAAC,IAAI,KAAK,cAAI,CAAC,eAAe,EAAE;YAC3C,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,cAAI,CAAC,eAAe;gBAC1B,aAAa,QAAE,SAAS,CAAC,aAAa,0CAAE,IAAI,CAAC,KAAK;gBAClD,UAAU,EAAE,0BAAkB,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC;aAClE,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.d.ts b/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.d.ts deleted file mode 100644 index 960da12..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { DocumentNode } from 'graphql'; -import { QueryPlan, OperationContext, WasmPointer } from './QueryPlan'; -import { ComposedGraphQLSchema } from '@apollo/federation'; -export interface BuildQueryPlanOptions { - autoFragmentization: boolean; -} -export declare function buildQueryPlan(operationContext: OperationContext, options?: BuildQueryPlanOptions): QueryPlan; -interface BuildOperationContextOptions { - schema: ComposedGraphQLSchema; - operationDocument: DocumentNode; - operationString: string; - queryPlannerPointer: WasmPointer; - operationName?: string; -} -export declare function buildOperationContext({ schema, operationDocument, operationString, queryPlannerPointer, operationName, }: BuildOperationContextOptions): OperationContext; -export {}; -//# sourceMappingURL=buildQueryPlan.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.d.ts.map deleted file mode 100644 index 4085f98..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"buildQueryPlan.d.ts","sourceRoot":"","sources":["../src/buildQueryPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAMb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,GAAE,qBAAsD,GAC9D,SAAS,CAOX;AAGD,UAAU,4BAA4B;IACpC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,iBAAiB,EAAE,YAAY,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,WAAW,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,EAAE,4BAA4B,GAAG,gBAAgB,CAuDjD"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.js b/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.js deleted file mode 100644 index 0d4dfce..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.buildOperationContext = exports.buildQueryPlan = void 0; -const graphql_1 = require("graphql"); -const query_planner_wasm_1 = require("@apollo/query-planner-wasm"); -function buildQueryPlan(operationContext, options = { autoFragmentization: false }) { - return query_planner_wasm_1.getQueryPlan(operationContext.queryPlannerPointer, operationContext.operationString, options); -} -exports.buildQueryPlan = buildQueryPlan; -; -function buildOperationContext({ schema, operationDocument, operationString, queryPlannerPointer, operationName, }) { - let operation; - let operationCount = 0; - const fragments = Object.create(null); - operationDocument.definitions.forEach(definition => { - switch (definition.kind) { - case graphql_1.Kind.OPERATION_DEFINITION: - operationCount++; - if (!operationName && operationCount > 1) { - throw new graphql_1.GraphQLError('Must provide operation name if query contains ' + - 'multiple operations.'); - } - if (!operationName || - (definition.name && definition.name.value === operationName)) { - operation = definition; - } - break; - case graphql_1.Kind.FRAGMENT_DEFINITION: - fragments[definition.name.value] = definition; - break; - } - }); - if (!operation) { - if (operationName) { - throw new graphql_1.GraphQLError(`Unknown operation named "${operationName}".`); - } - else { - throw new graphql_1.GraphQLError('Must provide an operation.'); - } - } - const trimmedOperationString = operationCount > 1 - ? graphql_1.print({ - kind: graphql_1.Kind.DOCUMENT, - definitions: [ - operation, - ...Object.values(fragments), - ], - }) - : operationString; - return { - schema, - operation, - fragments, - queryPlannerPointer, - operationString: trimmedOperationString - }; -} -exports.buildOperationContext = buildOperationContext; -//# sourceMappingURL=buildQueryPlan.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.js.map b/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.js.map deleted file mode 100644 index 1274381..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/buildQueryPlan.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"buildQueryPlan.js","sourceRoot":"","sources":["../src/buildQueryPlan.ts"],"names":[],"mappings":";;;AAAA,qCAOiB;AAOjB,mEAA0D;AAM1D,SAAgB,cAAc,CAC5B,gBAAkC,EAClC,UAAiC,EAAE,mBAAmB,EAAE,KAAK,EAAE;IAG/D,OAAO,iCAAY,CACjB,gBAAgB,CAAC,mBAAmB,EACpC,gBAAgB,CAAC,eAAe,EAChC,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,wCAUC;AASA,CAAC;AAEF,SAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,GACgB;IAC7B,IAAI,SAA8C,CAAC;IACnD,IAAI,cAAc,GAAW,CAAC,CAAC;IAC/B,MAAM,SAAS,GAEX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACjD,QAAQ,UAAU,CAAC,IAAI,EAAE;YACvB,KAAK,cAAI,CAAC,oBAAoB;gBAC5B,cAAc,EAAE,CAAC;gBACjB,IAAI,CAAC,aAAa,IAAI,cAAc,GAAG,CAAC,EAAE;oBACxC,MAAM,IAAI,sBAAY,CACpB,gDAAgD;wBAC9C,sBAAsB,CACzB,CAAC;iBACH;gBACD,IACE,CAAC,aAAa;oBACd,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,EAC5D;oBACA,SAAS,GAAG,UAAU,CAAC;iBACxB;gBACD,MAAM;YACR,KAAK,cAAI,CAAC,mBAAmB;gBAC3B,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;gBAC9C,MAAM;SACT;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,aAAa,EAAE;YACjB,MAAM,IAAI,sBAAY,CAAC,4BAA4B,aAAa,IAAI,CAAC,CAAC;SACvE;aAAM;YACL,MAAM,IAAI,sBAAY,CAAC,4BAA4B,CAAC,CAAC;SACtD;KACF;IAID,MAAM,sBAAsB,GAAG,cAAc,GAAG,CAAC;QAC/C,CAAC,CAAC,eAAK,CAAC;YACN,IAAI,EAAE,cAAI,CAAC,QAAQ;YACnB,WAAW,EAAE;gBACX,SAAS;gBACT,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aAC5B;SACF,CAAC;QACF,CAAC,CAAC,eAAe,CAAC;IAEpB,OAAO;QACL,MAAM;QACN,SAAS;QACT,SAAS;QACT,mBAAmB;QACnB,eAAe,EAAE,sBAAsB;KACxC,CAAC;AACJ,CAAC;AA7DD,sDA6DC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/cache.d.ts b/gateway/node_modules/@apollo/gateway/dist/cache.d.ts deleted file mode 100644 index b88c891..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/cache.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { CacheManager } from 'make-fetch-happen'; -import { Request, Response, Headers } from 'apollo-server-env'; -import { InMemoryLRUCache } from 'apollo-server-caching'; -interface CachedRequest { - body: string; - status: number; - statusText: string; - headers: Headers; -} -export declare class HttpRequestCache implements CacheManager { - cache: InMemoryLRUCache; - constructor(cache?: InMemoryLRUCache); - delete(request: Request): Promise; - put(request: Request, response: Response): Promise; - match(request: Request): Promise; -} -export {}; -//# sourceMappingURL=cache.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/cache.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/cache.d.ts.map deleted file mode 100644 index e95f0ed..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/cache.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQzD,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,YAAY;IAE1C,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC;gBAAtC,KAAK,GAAE,gBAAgB,CAAC,aAAa,CAE1C;IAIE,MAAM,CAAC,OAAO,EAAE,OAAO;IAOvB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAwBxC,KAAK,CAAC,OAAO,EAAE,OAAO;CAS7B"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/cache.js b/gateway/node_modules/@apollo/gateway/dist/cache.js deleted file mode 100644 index 1a24bf9..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/cache.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HttpRequestCache = void 0; -const apollo_server_env_1 = require("apollo-server-env"); -const apollo_server_caching_1 = require("apollo-server-caching"); -const MAX_SIZE = 5 * 1024 * 1024; -function cacheKey(request) { - return `gateway:request-cache:${request.method}:${request.url}`; -} -class HttpRequestCache { - constructor(cache = new apollo_server_caching_1.InMemoryLRUCache({ - maxSize: MAX_SIZE, - })) { - this.cache = cache; - } - async delete(request) { - const key = cacheKey(request); - const entry = await this.cache.get(key); - await this.cache.delete(key); - return Boolean(entry); - } - async put(request, response) { - if (request.method === "HEAD" || response.status === 304) { - return response; - } - const body = await response.text(); - this.cache.set(cacheKey(request), { - body, - status: response.status, - statusText: response.statusText, - headers: response.headers, - }); - return new apollo_server_env_1.Response(body, response); - } - async match(request) { - return this.cache.get(cacheKey(request)).then(response => { - if (response) { - const { body, ...requestInit } = response; - return new apollo_server_env_1.Response(body, requestInit); - } - return; - }); - } -} -exports.HttpRequestCache = HttpRequestCache; -//# sourceMappingURL=cache.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/cache.js.map b/gateway/node_modules/@apollo/gateway/dist/cache.js.map deleted file mode 100644 index a6ad409..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/cache.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":";;;AACA,yDAA+D;AAC/D,iEAAyD;AAEzD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,SAAS,QAAQ,CAAC,OAAgB;IAChC,OAAO,yBAAyB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAClE,CAAC;AASD,MAAa,gBAAgB;IAC3B,YACS,QAAyC,IAAI,wCAAgB,CAAC;QACnE,OAAO,EAAE,QAAQ;KAClB,CAAC;QAFK,UAAK,GAAL,KAAK,CAEV;IACD,CAAC;IAGJ,KAAK,CAAC,MAAM,CAAC,OAAgB;QAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAgB,EAAE,QAAkB;QAQ5C,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YACxD,OAAO,QAAQ,CAAC;SACjB;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAChC,IAAI;YACJ,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,CAAC;QAEH,OAAO,IAAI,4BAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvD,IAAI,QAAQ,EAAE;gBACZ,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,QAAQ,CAAC;gBAC1C,OAAO,IAAI,4BAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;aACxC;YACD,OAAO;QACT,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhDD,4CAgDC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.d.ts b/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.d.ts deleted file mode 100644 index 5572375..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GraphQLRequestContext, GraphQLResponse } from 'apollo-server-types'; -import { GraphQLSchema, DocumentNode } from 'graphql'; -import { GraphQLDataSource } from './types'; -export declare class LocalGraphQLDataSource = Record> implements GraphQLDataSource { - readonly schema: GraphQLSchema; - constructor(schema: GraphQLSchema); - process({ request, context, }: Pick, 'request' | 'context'>): Promise; - sdl(): DocumentNode; -} -//# sourceMappingURL=LocalGraphQLDataSource.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.d.ts.map deleted file mode 100644 index 98b685b..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"LocalGraphQLDataSource.d.ts","sourceRoot":"","sources":["../../src/datasources/LocalGraphQLDataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,aAAa,EAGb,YAAY,EAEb,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,sBAAsB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,YAAW,iBAAiB,CAAC,QAAQ,CAAC;aACxG,MAAM,EAAE,aAAa;gBAArB,MAAM,EAAE,aAAa;IAI3C,OAAO,CAAC,EACZ,OAAO,EACP,OAAO,GACR,EAAE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CACvE,eAAe,CAChB;IAUM,GAAG,IAAI,YAAY;CAY3B"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.js b/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.js deleted file mode 100644 index 1c134b1..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LocalGraphQLDataSource = void 0; -const graphql_1 = require("graphql"); -const schemaInstrumentation_1 = require("apollo-server-core/dist/utils/schemaInstrumentation"); -class LocalGraphQLDataSource { - constructor(schema) { - this.schema = schema; - schemaInstrumentation_1.enablePluginsForSchemaResolvers(schema); - } - async process({ request, context, }) { - return graphql_1.graphql({ - schema: this.schema, - source: request.query, - variableValues: request.variables, - operationName: request.operationName, - contextValue: context, - }); - } - sdl() { - const result = graphql_1.graphqlSync({ - schema: this.schema, - source: `{ _service { sdl }}`, - }); - if (result.errors) { - throw new Error(result.errors.map(error => error.message).join('\n\n')); - } - const sdl = result.data && result.data._service && result.data._service.sdl; - return graphql_1.parse(sdl); - } -} -exports.LocalGraphQLDataSource = LocalGraphQLDataSource; -//# sourceMappingURL=LocalGraphQLDataSource.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.js.map b/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.js.map deleted file mode 100644 index c2053ad..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/LocalGraphQLDataSource.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"LocalGraphQLDataSource.js","sourceRoot":"","sources":["../../src/datasources/LocalGraphQLDataSource.ts"],"names":[],"mappings":";;;AACA,qCAMiB;AACjB,+FAE6D;AAG7D,MAAa,sBAAsB;IACjC,YAA4B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAC/C,uDAA+B,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EACZ,OAAO,EACP,OAAO,GACsD;QAG7D,OAAO,iBAAO,CAAC;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,OAAO,CAAC,KAAM;YACtB,cAAc,EAAE,OAAO,CAAC,SAAS;YACjC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAEM,GAAG;QACR,MAAM,MAAM,GAAG,qBAAW,CAAC;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACzE;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC5E,OAAO,eAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;CACF;AAhCD,wDAgCC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.d.ts b/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.d.ts deleted file mode 100644 index 632f4cd..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { GraphQLRequestContext, GraphQLResponse, ValueOrPromise } from 'apollo-server-types'; -import { ApolloError } from 'apollo-server-errors'; -import { fetch, Request, Response } from 'apollo-server-env'; -import { GraphQLDataSource } from './types'; -export declare class RemoteGraphQLDataSource = Record> implements GraphQLDataSource { - fetcher: typeof fetch; - constructor(config?: Partial> & object & ThisType>); - url: string; - apq: boolean; - process({ request, context, }: Pick, 'request' | 'context'>): Promise; - private sendRequest; - willSendRequest?(requestContext: Pick, 'request' | 'context'>): ValueOrPromise; - didReceiveResponse?(requestContext: Required, 'request' | 'response' | 'context'>>): ValueOrPromise; - didEncounterError(error: Error, _fetchRequest: Request, _fetchResponse?: Response): void; - parseBody(fetchResponse: Response, _fetchRequest?: Request, _context?: TContext): Promise; - errorFromResponse(response: Response): Promise; -} -//# sourceMappingURL=RemoteGraphQLDataSource.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.d.ts.map deleted file mode 100644 index 26215b0..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"RemoteGraphQLDataSource.d.ts","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,EACL,OAAO,EAEP,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,qBAAa,uBAAuB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,YAAW,iBAAiB,CAAC,QAAQ,CAAC;IACrI,OAAO,EAAE,OAAO,KAAK,CAAS;gBAG5B,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,GACjD,MAAM,GACN,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAO/C,GAAG,EAAG,MAAM,CAAC;IAoBb,GAAG,EAAE,OAAO,CAAS;IAEf,OAAO,CAAC,EACZ,OAAO,EACP,OAAO,GACR,EAAE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CACvE,eAAe,CAChB;YAkEa,WAAW;IAkDlB,eAAe,CAAC,CACrB,cAAc,EAAE,IAAI,CAClB,qBAAqB,CAAC,QAAQ,CAAC,EAC/B,SAAS,GAAG,SAAS,CACtB,GACA,cAAc,CAAC,IAAI,CAAC;IAEhB,kBAAkB,CAAC,CACxB,cAAc,EAAE,QAAQ,CAAC,IAAI,CAC3B,qBAAqB,CAAC,QAAQ,CAAC,EAC/B,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CACpC,GACA,cAAc,CAAC,eAAe,CAAC;IAE3B,iBAAiB,CACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,OAAO,EACtB,cAAc,CAAC,EAAE,QAAQ;IAKpB,SAAS,CACd,aAAa,EAAE,QAAQ,EACvB,aAAa,CAAC,EAAE,OAAO,EACvB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IASd,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;CAyBlD"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.js b/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.js deleted file mode 100644 index 217bc6c..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.js +++ /dev/null @@ -1,130 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.RemoteGraphQLDataSource = void 0; -const apollo_server_errors_1 = require("apollo-server-errors"); -const apollo_server_env_1 = require("apollo-server-env"); -const predicates_1 = require("../utilities/predicates"); -const createSHA_1 = __importDefault(require("apollo-server-core/dist/utils/createSHA")); -class RemoteGraphQLDataSource { - constructor(config) { - this.fetcher = apollo_server_env_1.fetch; - this.apq = false; - if (config) { - return Object.assign(this, config); - } - } - async process({ request, context, }) { - const headers = (request.http && request.http.headers) || new apollo_server_env_1.Headers(); - headers.set('Content-Type', 'application/json'); - request.http = { - method: 'POST', - url: this.url, - headers, - }; - if (this.willSendRequest) { - await this.willSendRequest({ request, context }); - } - if (!request.query) { - throw new Error("Missing query"); - } - const apqHash = createSHA_1.default('sha256') - .update(request.query) - .digest('hex'); - const { query, ...requestWithoutQuery } = request; - const respond = (response, request) => typeof this.didReceiveResponse === "function" - ? this.didReceiveResponse({ response, request, context }) - : response; - if (this.apq) { - requestWithoutQuery.extensions = { - ...request.extensions, - persistedQuery: { - version: 1, - sha256Hash: apqHash, - }, - }; - const apqOptimisticResponse = await this.sendRequest(requestWithoutQuery, context); - if (!apqOptimisticResponse.errors || - !apqOptimisticResponse.errors.find(error => error.message === 'PersistedQueryNotFound')) { - return respond(apqOptimisticResponse, requestWithoutQuery); - } - } - const requestWithQuery = { - query, - ...requestWithoutQuery, - }; - const response = await this.sendRequest(requestWithQuery, context); - return respond(response, requestWithQuery); - } - async sendRequest(request, context) { - if (!request.http) { - throw new Error("Internal error: Only 'http' requests are supported."); - } - const { http, ...requestWithoutHttp } = request; - const fetchRequest = new apollo_server_env_1.Request(http.url, { - ...http, - body: JSON.stringify(requestWithoutHttp), - }); - let fetchResponse; - try { - fetchResponse = await this.fetcher(http.url, { - ...http, - body: JSON.stringify(requestWithoutHttp) - }); - if (!fetchResponse.ok) { - throw await this.errorFromResponse(fetchResponse); - } - const body = await this.parseBody(fetchResponse, fetchRequest, context); - if (!predicates_1.isObject(body)) { - throw new Error(`Expected JSON response body, but received: ${body}`); - } - return { - ...body, - http: fetchResponse, - }; - } - catch (error) { - this.didEncounterError(error, fetchRequest, fetchResponse); - throw error; - } - } - didEncounterError(error, _fetchRequest, _fetchResponse) { - throw error; - } - parseBody(fetchResponse, _fetchRequest, _context) { - const contentType = fetchResponse.headers.get('Content-Type'); - if (contentType && contentType.startsWith('application/json')) { - return fetchResponse.json(); - } - else { - return fetchResponse.text(); - } - } - async errorFromResponse(response) { - const message = `${response.status}: ${response.statusText}`; - let error; - if (response.status === 401) { - error = new apollo_server_errors_1.AuthenticationError(message); - } - else if (response.status === 403) { - error = new apollo_server_errors_1.ForbiddenError(message); - } - else { - error = new apollo_server_errors_1.ApolloError(message); - } - const body = await this.parseBody(response); - Object.assign(error.extensions, { - response: { - url: response.url, - status: response.status, - statusText: response.statusText, - body, - }, - }); - return error; - } -} -exports.RemoteGraphQLDataSource = RemoteGraphQLDataSource; -//# sourceMappingURL=RemoteGraphQLDataSource.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.js.map b/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.js.map deleted file mode 100644 index 7169a0c..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/RemoteGraphQLDataSource.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"RemoteGraphQLDataSource.js","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/index.d.ts b/gateway/node_modules/@apollo/gateway/dist/datasources/index.d.ts deleted file mode 100644 index 93f5db0..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { LocalGraphQLDataSource } from './LocalGraphQLDataSource'; -export { RemoteGraphQLDataSource } from './RemoteGraphQLDataSource'; -export { GraphQLDataSource } from './types'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/index.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/datasources/index.d.ts.map deleted file mode 100644 index 7292cf8..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datasources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/index.js b/gateway/node_modules/@apollo/gateway/dist/datasources/index.js deleted file mode 100644 index 0a23da3..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/index.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var LocalGraphQLDataSource_1 = require("./LocalGraphQLDataSource"); -Object.defineProperty(exports, "LocalGraphQLDataSource", { enumerable: true, get: function () { return LocalGraphQLDataSource_1.LocalGraphQLDataSource; } }); -var RemoteGraphQLDataSource_1 = require("./RemoteGraphQLDataSource"); -Object.defineProperty(exports, "RemoteGraphQLDataSource", { enumerable: true, get: function () { return RemoteGraphQLDataSource_1.RemoteGraphQLDataSource; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/index.js.map b/gateway/node_modules/@apollo/gateway/dist/datasources/index.js.map deleted file mode 100644 index ee1d2d0..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datasources/index.ts"],"names":[],"mappings":";;AAAA,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/types.d.ts b/gateway/node_modules/@apollo/gateway/dist/datasources/types.d.ts deleted file mode 100644 index 50e98b9..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/types.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { GraphQLResponse, GraphQLRequestContext } from 'apollo-server-types'; -export interface GraphQLDataSource = Record> { - process(request: Pick, 'request' | 'context'>): Promise; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/types.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/datasources/types.d.ts.map deleted file mode 100644 index 3440671..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/datasources/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3F,OAAO,CACL,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/types.js b/gateway/node_modules/@apollo/gateway/dist/datasources/types.js deleted file mode 100644 index 11e638d..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/types.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/datasources/types.js.map b/gateway/node_modules/@apollo/gateway/dist/datasources/types.js.map deleted file mode 100644 index 39ea33f..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/datasources/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/datasources/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.d.ts b/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.d.ts deleted file mode 100644 index a7f25c1..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GraphQLExecutionResult, GraphQLRequestContext } from 'apollo-server-types'; -import { GraphQLFieldResolver } from 'graphql'; -import { GraphQLDataSource } from './datasources/types'; -import { QueryPlan, OperationContext } from './QueryPlan'; -export declare type ServiceMap = { - [serviceName: string]: GraphQLDataSource; -}; -export declare function executeQueryPlan(queryPlan: QueryPlan, serviceMap: ServiceMap, requestContext: GraphQLRequestContext, operationContext: OperationContext): Promise; -export declare const defaultFieldResolverWithAliasSupport: GraphQLFieldResolver; -//# sourceMappingURL=executeQueryPlan.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.d.ts.map deleted file mode 100644 index 4c774f9..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"executeQueryPlan.d.ts","sourceRoot":"","sources":["../src/executeQueryPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAKL,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,SAAS,EAET,gBAAgB,EAIjB,MAAM,aAAa,CAAC;AAGrB,oBAAY,UAAU,GAAG;IACvB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAAC;CAC1C,CAAC;AAYF,wBAAsB,gBAAgB,CAAC,QAAQ,EAC7C,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,qBAAqB,CAAC,QAAQ,CAAC,EAC/C,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAsDjC;AAgYD,eAAO,MAAM,oCAAoC,EAAE,oBAAoB,CACrE,GAAG,EACH,GAAG,CAYJ,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.js b/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.js deleted file mode 100644 index 7b2a3e1..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.js +++ /dev/null @@ -1,289 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultFieldResolverWithAliasSupport = exports.executeQueryPlan = void 0; -const apollo_server_env_1 = require("apollo-server-env"); -const graphql_1 = require("graphql"); -const apollo_reporting_protobuf_1 = require("apollo-reporting-protobuf"); -const federation_1 = require("@apollo/federation"); -const QueryPlan_1 = require("./QueryPlan"); -const deepMerge_1 = require("./utilities/deepMerge"); -async function executeQueryPlan(queryPlan, serviceMap, requestContext, operationContext) { - const errors = []; - const context = { - queryPlan, - operationContext, - serviceMap, - requestContext, - errors, - }; - let data = Object.create(null); - const captureTraces = !!(requestContext.metrics && requestContext.metrics.captureTraces); - if (queryPlan.node) { - const traceNode = await executeNode(context, queryPlan.node, data, [], captureTraces); - if (captureTraces) { - requestContext.metrics.queryPlanTrace = traceNode; - } - } - try { - ({ data } = await graphql_1.execute({ - schema: operationContext.schema, - document: { - kind: graphql_1.Kind.DOCUMENT, - definitions: [ - operationContext.operation, - ...Object.values(operationContext.fragments), - ], - }, - rootValue: data, - variableValues: requestContext.request.variables, - fieldResolver: exports.defaultFieldResolverWithAliasSupport, - })); - } - catch (error) { - return { errors: [error] }; - } - return errors.length === 0 ? { data } : { errors, data }; -} -exports.executeQueryPlan = executeQueryPlan; -async function executeNode(context, node, results, path, captureTraces) { - if (!results) { - return new apollo_reporting_protobuf_1.Trace.QueryPlanNode(); - } - switch (node.kind) { - case 'Sequence': { - const traceNode = new apollo_reporting_protobuf_1.Trace.QueryPlanNode.SequenceNode(); - for (const childNode of node.nodes) { - const childTraceNode = await executeNode(context, childNode, results, path, captureTraces); - traceNode.nodes.push(childTraceNode); - } - return new apollo_reporting_protobuf_1.Trace.QueryPlanNode({ sequence: traceNode }); - } - case 'Parallel': { - const childTraceNodes = await Promise.all(node.nodes.map(async (childNode) => executeNode(context, childNode, results, path, captureTraces))); - return new apollo_reporting_protobuf_1.Trace.QueryPlanNode({ - parallel: new apollo_reporting_protobuf_1.Trace.QueryPlanNode.ParallelNode({ - nodes: childTraceNodes, - }), - }); - } - case 'Flatten': { - return new apollo_reporting_protobuf_1.Trace.QueryPlanNode({ - flatten: new apollo_reporting_protobuf_1.Trace.QueryPlanNode.FlattenNode({ - responsePath: node.path.map(id => new apollo_reporting_protobuf_1.Trace.QueryPlanNode.ResponsePathElement(typeof id === 'string' ? { fieldName: id } : { index: id })), - node: await executeNode(context, node.node, flattenResultsAtPath(results, node.path), [...path, ...node.path], captureTraces), - }), - }); - } - case 'Fetch': { - const traceNode = new apollo_reporting_protobuf_1.Trace.QueryPlanNode.FetchNode({ - serviceName: node.serviceName, - }); - try { - await executeFetch(context, node, results, path, captureTraces ? traceNode : null); - } - catch (error) { - context.errors.push(error); - } - return new apollo_reporting_protobuf_1.Trace.QueryPlanNode({ fetch: traceNode }); - } - } -} -async function executeFetch(context, fetch, results, _path, traceNode) { - const logger = context.requestContext.logger || console; - const service = context.serviceMap[fetch.serviceName]; - if (!service) { - throw new Error(`Couldn't find service with name "${fetch.serviceName}"`); - } - const entities = Array.isArray(results) ? results : [results]; - if (entities.length < 1) - return; - let variables = Object.create(null); - if (fetch.variableUsages) { - for (const variableName of fetch.variableUsages) { - const providedVariables = context.requestContext.request.variables; - if (providedVariables && - typeof providedVariables[variableName] !== 'undefined') { - variables[variableName] = providedVariables[variableName]; - } - } - } - if (!fetch.requires) { - const dataReceivedFromService = await sendOperation(context, fetch.operation, variables); - for (const entity of entities) { - deepMerge_1.deepMerge(entity, dataReceivedFromService); - } - } - else { - const requires = fetch.requires; - const representations = []; - const representationToEntity = []; - entities.forEach((entity, index) => { - const representation = executeSelectionSet(entity, requires); - if (representation && representation[graphql_1.TypeNameMetaFieldDef.name]) { - representations.push(representation); - representationToEntity.push(index); - } - }); - if ('representations' in variables) { - throw new Error(`Variables cannot contain key "representations"`); - } - const dataReceivedFromService = await sendOperation(context, fetch.operation, { ...variables, representations }); - if (!dataReceivedFromService) { - return; - } - if (!(dataReceivedFromService._entities && - Array.isArray(dataReceivedFromService._entities))) { - throw new Error(`Expected "data._entities" in response to be an array`); - } - const receivedEntities = dataReceivedFromService._entities; - if (receivedEntities.length !== representations.length) { - throw new Error(`Expected "data._entities" to contain ${representations.length} elements`); - } - for (let i = 0; i < entities.length; i++) { - deepMerge_1.deepMerge(entities[representationToEntity[i]], receivedEntities[i]); - } - } - async function sendOperation(context, source, variables) { - var _a, _b; - let http; - if (traceNode) { - http = { - headers: new apollo_server_env_1.Headers({ 'apollo-federation-include-trace': 'ftv1' }), - }; - if (context.requestContext.metrics && - context.requestContext.metrics.startHrTime) { - traceNode.sentTimeOffset = durationHrTimeToNanos(process.hrtime(context.requestContext.metrics.startHrTime)); - } - traceNode.sentTime = dateToProtoTimestamp(new Date()); - } - const response = await service.process({ - request: { - query: source, - variables, - http, - }, - context: context.requestContext.context, - }); - if (response.errors) { - const errors = response.errors.map(error => downstreamServiceError(error.message, fetch.serviceName, source, variables, error.extensions, error.path)); - context.errors.push(...errors); - } - if (traceNode) { - traceNode.receivedTime = dateToProtoTimestamp(new Date()); - if (response.extensions && response.extensions.ftv1) { - const traceBase64 = response.extensions.ftv1; - let traceBuffer; - let traceParsingFailed = false; - try { - traceBuffer = Buffer.from(traceBase64, 'base64'); - } - catch (err) { - logger.error(`error decoding base64 for federated trace from ${fetch.serviceName}: ${err}`); - traceParsingFailed = true; - } - if (traceBuffer) { - try { - const trace = apollo_reporting_protobuf_1.Trace.decode(traceBuffer); - traceNode.trace = trace; - } - catch (err) { - logger.error(`error decoding protobuf for federated trace from ${fetch.serviceName}: ${err}`); - traceParsingFailed = true; - } - } - if (traceNode.trace) { - const rootTypeName = federation_1.defaultRootOperationNameLookup[context.operationContext.operation.operation]; - (_b = (_a = traceNode.trace.root) === null || _a === void 0 ? void 0 : _a.child) === null || _b === void 0 ? void 0 : _b.forEach((child) => { - child.parentType = rootTypeName; - }); - } - traceNode.traceParsingFailed = traceParsingFailed; - } - } - return response.data; - } -} -function executeSelectionSet(source, selections) { - if (source === null) { - return null; - } - const result = Object.create(null); - for (const selection of selections) { - switch (selection.kind) { - case graphql_1.Kind.FIELD: - const responseName = QueryPlan_1.getResponseName(selection); - const selections = selection.selections; - if (typeof source[responseName] === 'undefined') { - throw new Error(`Field "${responseName}" was not found in response.`); - } - if (Array.isArray(source[responseName])) { - result[responseName] = source[responseName].map((value) => selections ? executeSelectionSet(value, selections) : value); - } - else if (selections) { - result[responseName] = executeSelectionSet(source[responseName], selections); - } - else { - result[responseName] = source[responseName]; - } - break; - case graphql_1.Kind.INLINE_FRAGMENT: - if (!selection.typeCondition) - continue; - const typename = source && source['__typename']; - if (!typename) - continue; - if (typename === selection.typeCondition) { - deepMerge_1.deepMerge(result, executeSelectionSet(source, selection.selections)); - } - break; - } - } - return result; -} -function flattenResultsAtPath(value, path) { - if (path.length === 0) - return value; - if (value === undefined || value === null) - return value; - const [current, ...rest] = path; - if (current === '@') { - return value.flatMap((element) => flattenResultsAtPath(element, rest)); - } - else { - return flattenResultsAtPath(value[current], rest); - } -} -function downstreamServiceError(message, serviceName, query, variables, extensions, path) { - if (!message) { - message = `Error while fetching subquery from service "${serviceName}"`; - } - extensions = { - code: 'DOWNSTREAM_SERVICE_ERROR', - serviceName, - query, - variables, - ...extensions, - }; - return new graphql_1.GraphQLError(message, undefined, undefined, undefined, path, undefined, extensions); -} -exports.defaultFieldResolverWithAliasSupport = function (source, args, contextValue, info) { - if (typeof source === 'object' || typeof source === 'function') { - const property = source[info.path.key]; - if (typeof property === 'function') { - return source[info.fieldName](args, contextValue, info); - } - return property; - } -}; -function durationHrTimeToNanos(hrtime) { - return hrtime[0] * 1e9 + hrtime[1]; -} -function dateToProtoTimestamp(date) { - const totalMillis = +date; - const millis = totalMillis % 1000; - return new apollo_reporting_protobuf_1.google.protobuf.Timestamp({ - seconds: (totalMillis - millis) / 1000, - nanos: millis * 1e6, - }); -} -//# sourceMappingURL=executeQueryPlan.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.js.map b/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.js.map deleted file mode 100644 index a2fcfcb..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/executeQueryPlan.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"executeQueryPlan.js","sourceRoot":"","sources":["../src/executeQueryPlan.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/index.d.ts b/gateway/node_modules/@apollo/gateway/dist/index.d.ts deleted file mode 100644 index c3c1657..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/index.d.ts +++ /dev/null @@ -1,124 +0,0 @@ -/// -import { GraphQLService, SchemaChangeCallback, Unsubscriber, GraphQLServiceEngineConfig } from 'apollo-server-core'; -import { GraphQLExecutionResult, Logger, GraphQLRequestContextExecutionDidStart, ApolloConfig } from 'apollo-server-types'; -import { InMemoryLRUCache } from 'apollo-server-caching'; -import { GraphQLSchema, GraphQLError } from 'graphql'; -import { ServiceDefinition, ComposedGraphQLSchema } from '@apollo/federation'; -import { buildQueryPlan, buildOperationContext } from './buildQueryPlan'; -import { executeQueryPlan, ServiceMap } from './executeQueryPlan'; -import { CompositionMetadata } from './loadServicesFromStorage'; -import { serializeQueryPlan, QueryPlan, OperationContext } from './QueryPlan'; -import { GraphQLDataSource } from './datasources/types'; -import { HeadersInit } from 'node-fetch'; -import { fetch } from 'apollo-server-env'; -export declare type ServiceEndpointDefinition = Pick; -interface GatewayConfigBase { - debug?: boolean; - logger?: Logger; - __exposeQueryPlanExperimental?: boolean; - buildService?: (definition: ServiceEndpointDefinition) => GraphQLDataSource; - experimental_didResolveQueryPlan?: Experimental_DidResolveQueryPlanCallback; - experimental_didFailComposition?: Experimental_DidFailCompositionCallback; - experimental_updateServiceDefinitions?: Experimental_UpdateServiceDefinitions; - experimental_didUpdateComposition?: Experimental_DidUpdateCompositionCallback; - experimental_pollInterval?: number; - experimental_approximateQueryPlanStoreMiB?: number; - experimental_autoFragmentization?: boolean; - fetcher?: typeof fetch; - serviceHealthCheck?: boolean; -} -interface RemoteGatewayConfig extends GatewayConfigBase { - serviceList: ServiceEndpointDefinition[]; - introspectionHeaders?: HeadersInit; -} -interface ManagedGatewayConfig extends GatewayConfigBase { - federationVersion?: number; -} -interface LocalGatewayConfig extends GatewayConfigBase { - localServiceList: ServiceDefinition[]; -} -export declare type GatewayConfig = RemoteGatewayConfig | LocalGatewayConfig | ManagedGatewayConfig; -declare type DataSourceMap = { - [serviceName: string]: { - url?: string; - dataSource: GraphQLDataSource; - }; -}; -export declare type Experimental_DidResolveQueryPlanCallback = ({ queryPlan, serviceMap, operationContext, requestContext, }: { - readonly queryPlan: QueryPlan; - readonly serviceMap: ServiceMap; - readonly operationContext: OperationContext; - readonly requestContext: GraphQLRequestContextExecutionDidStart>; -}) => void; -export declare type Experimental_DidFailCompositionCallback = ({ errors, serviceList, compositionMetadata, }: { - readonly errors: GraphQLError[]; - readonly serviceList: ServiceDefinition[]; - readonly compositionMetadata?: CompositionMetadata; -}) => void; -export interface Experimental_CompositionInfo { - serviceDefinitions: ServiceDefinition[]; - schema: GraphQLSchema; - compositionMetadata?: CompositionMetadata; -} -export declare type Experimental_DidUpdateCompositionCallback = (currentConfig: Experimental_CompositionInfo, previousConfig?: Experimental_CompositionInfo) => void; -export declare type Experimental_UpdateServiceDefinitions = (config: GatewayConfig) => Promise<{ - serviceDefinitions?: ServiceDefinition[]; - compositionMetadata?: CompositionMetadata; - isNewSchema: boolean; -}>; -export declare const GCS_RETRY_COUNT = 5; -export declare function getDefaultGcsFetcher(): import("make-fetch-happen").Fetcher; -export declare const HEALTH_CHECK_QUERY = "query __ApolloServiceHealthCheck__ { __typename }"; -export declare const SERVICE_DEFINITION_QUERY = "query __ApolloGetServiceDefinition__ { _service { sdl } }"; -export declare class ApolloGateway implements GraphQLService { - schema?: ComposedGraphQLSchema; - protected serviceMap: DataSourceMap; - protected config: GatewayConfig; - private logger; - protected queryPlanStore?: InMemoryLRUCache; - private apolloConfig?; - private pollingTimer?; - private onSchemaChangeListeners; - private serviceDefinitions; - private compositionMetadata?; - private serviceSdlCache; - private warnedStates; - private queryPlannerPointer?; - private fetcher; - protected experimental_didResolveQueryPlan?: Experimental_DidResolveQueryPlanCallback; - protected experimental_didFailComposition?: Experimental_DidFailCompositionCallback; - protected experimental_didUpdateComposition?: Experimental_DidUpdateCompositionCallback; - protected updateServiceDefinitions: Experimental_UpdateServiceDefinitions; - protected experimental_pollInterval?: number; - private experimental_approximateQueryPlanStoreMiB?; - constructor(config?: GatewayConfig); - load(options?: { - apollo?: ApolloConfig; - engine?: GraphQLServiceEngineConfig; - }): Promise<{ - schema: ComposedGraphQLSchema; - executor: (requestContext: GraphQLRequestContextExecutionDidStart) => Promise; - }>; - protected updateComposition(): Promise; - serviceHealthCheck(serviceMap?: DataSourceMap): Promise<{ - name: string; - response: import("apollo-server-types").GraphQLResponse; - }[]>; - protected createSchema(serviceList: ServiceDefinition[]): { - schema: ComposedGraphQLSchema; - composedSdl: string | undefined; - }; - onSchemaChange(callback: SchemaChangeCallback): Unsubscriber; - private pollServices; - private createAndCacheDataSource; - private createDataSource; - protected createServices(services: ServiceEndpointDefinition[]): void; - protected loadServiceDefinitions(config: GatewayConfig): ReturnType; - executor: (requestContext: GraphQLRequestContextExecutionDidStart) => Promise; - protected validateIncomingRequest(requestContext: GraphQLRequestContextExecutionDidStart, operationContext: OperationContext): readonly GraphQLError[]; - private initializeQueryPlanStore; - stop(): Promise; -} -export { buildQueryPlan, executeQueryPlan, serializeQueryPlan, buildOperationContext, QueryPlan, ServiceMap, }; -export * from './datasources'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/index.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/index.d.ts.map deleted file mode 100644 index aa8f400..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,MAAM,EACN,sCAAsC,EACtC,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAGL,aAAa,EACb,YAAY,EAEb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAsB,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGlG,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,oBAAY,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;AAEhF,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,yBAAyB,KAAK,iBAAiB,CAAC;IAG5E,gCAAgC,CAAC,EAAE,wCAAwC,CAAC;IAC5E,+BAA+B,CAAC,EAAE,uCAAuC,CAAC;IAC1E,qCAAqC,CAAC,EAAE,qCAAqC,CAAC;IAC9E,iCAAiC,CAAC,EAAE,yCAAyC,CAAC;IAC9E,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,yCAAyC,CAAC,EAAE,MAAM,CAAC;IACnD,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACzC,oBAAoB,CAAC,EAAE,WAAW,CAAC;CACpC;AAED,UAAU,oBAAqB,SAAQ,iBAAiB;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD,UAAU,kBAAmB,SAAQ,iBAAiB;IACpD,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;CACvC;AAED,oBAAY,aAAa,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,aAAK,aAAa,GAAG;IACnB,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,iBAAiB,CAAA;KAAE,CAAC;CACxE,CAAC;AAgBF,oBAAY,wCAAwC,GAAG,CAAC,EACtD,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,cAAc,GACf,EAAE;IACD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,sCAAsC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CACtF,KAAK,IAAI,CAAC;AAEX,oBAAY,uCAAuC,GAAG,CAAC,EACrD,MAAM,EACN,WAAW,EACX,mBAAmB,GACpB,EAAE;IACD,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CACpD,KAAK,IAAI,CAAC;AAEX,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,oBAAY,yCAAyC,GAAG,CACtD,aAAa,EAAE,4BAA4B,EAC3C,cAAc,CAAC,EAAE,4BAA4B,KAC1C,IAAI,CAAC;AAQV,oBAAY,qCAAqC,GAAG,CAClD,MAAM,EAAE,aAAa,KAClB,OAAO,CAAC;IACX,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CAAC;AAaH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,wBAAgB,oBAAoB,wCAkBnC;AAED,eAAO,MAAM,kBAAkB,sDACsB,CAAC;AACtD,eAAO,MAAM,wBAAwB,8DACwB,CAAC;AAE9D,qBAAa,aAAc,YAAW,cAAc;IAC3C,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACtC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAuB;IAC1D,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,SAAS,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvD,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,uBAAuB,CAAmC;IAClE,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,mBAAmB,CAAC,CAAc;IAE1C,OAAO,CAAC,OAAO,CAAwC;IAKvD,SAAS,CAAC,gCAAgC,CAAC,EAAE,wCAAwC,CAAC;IAItF,SAAS,CAAC,+BAA+B,CAAC,EAAE,uCAAuC,CAAC;IAGpF,SAAS,CAAC,iCAAiC,CAAC,EAAE,yCAAyC,CAAC;IAGxF,SAAS,CAAC,wBAAwB,EAAE,qCAAqC,CAAC;IAE1E,SAAS,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAE7C,OAAO,CAAC,yCAAyC,CAAC,CAAS;gBAE/C,MAAM,CAAC,EAAE,aAAa;IAqFrB,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,MAAM,CAAC,EAAE,0BAA0B,CAAA;KAAE;;;;cAsC1E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsH3C,kBAAkB,CAAC,UAAU,GAAE,aAA+B;;;;IAUrE,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,iBAAiB,EAAE;;;;IAmChD,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,YAAY;YAQrD,YAAY;IAwB1B,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,gBAAgB;IAgBxB,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,yBAAyB,EAAE;cAM9C,sBAAsB,CACpC,MAAM,EAAE,aAAa,GACpB,UAAU,CAAC,qCAAqC,CAAC;IAmE7C,QAAQ,kFAEZ,OAAO,CAAC,sBAAsB,CAAC,CAgHhC;IAEF,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EACxC,cAAc,EAAE,sCAAsC,CAAC,QAAQ,CAAC,EAChE,gBAAgB,EAAE,gBAAgB;IAiBpC,OAAO,CAAC,wBAAwB;IAcnB,IAAI;CAMlB;AA4BD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,UAAU,GACX,CAAC;AACF,cAAc,eAAe,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/index.js b/gateway/node_modules/@apollo/gateway/dist/index.js deleted file mode 100644 index 5e92647..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/index.js +++ /dev/null @@ -1,443 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.buildOperationContext = exports.serializeQueryPlan = exports.executeQueryPlan = exports.buildQueryPlan = exports.ApolloGateway = exports.SERVICE_DEFINITION_QUERY = exports.HEALTH_CHECK_QUERY = exports.getDefaultGcsFetcher = exports.GCS_RETRY_COUNT = void 0; -const apollo_server_caching_1 = require("apollo-server-caching"); -const graphql_1 = require("graphql"); -const apollo_graphql_1 = require("apollo-graphql"); -const federation_1 = require("@apollo/federation"); -const loglevel_1 = __importDefault(require("loglevel")); -const buildQueryPlan_1 = require("./buildQueryPlan"); -Object.defineProperty(exports, "buildQueryPlan", { enumerable: true, get: function () { return buildQueryPlan_1.buildQueryPlan; } }); -Object.defineProperty(exports, "buildOperationContext", { enumerable: true, get: function () { return buildQueryPlan_1.buildOperationContext; } }); -const executeQueryPlan_1 = require("./executeQueryPlan"); -Object.defineProperty(exports, "executeQueryPlan", { enumerable: true, get: function () { return executeQueryPlan_1.executeQueryPlan; } }); -const loadServicesFromRemoteEndpoint_1 = require("./loadServicesFromRemoteEndpoint"); -const loadServicesFromStorage_1 = require("./loadServicesFromStorage"); -const QueryPlan_1 = require("./QueryPlan"); -Object.defineProperty(exports, "serializeQueryPlan", { enumerable: true, get: function () { return QueryPlan_1.serializeQueryPlan; } }); -const RemoteGraphQLDataSource_1 = require("./datasources/RemoteGraphQLDataSource"); -const values_1 = require("graphql/execution/values"); -const make_fetch_happen_1 = __importDefault(require("make-fetch-happen")); -const cache_1 = require("./cache"); -const query_planner_wasm_1 = require("@apollo/query-planner-wasm"); -function isLocalConfig(config) { - return 'localServiceList' in config; -} -function isRemoteConfig(config) { - return 'serviceList' in config; -} -function isManagedConfig(config) { - return !isRemoteConfig(config) && !isLocalConfig(config); -} -exports.GCS_RETRY_COUNT = 5; -function getDefaultGcsFetcher() { - return make_fetch_happen_1.default.defaults({ - cacheManager: new cache_1.HttpRequestCache(), - headers: { - 'user-agent': `apollo-gateway/${require('../package.json').version}`, - }, - retry: { - retries: exports.GCS_RETRY_COUNT, - factor: 2, - minTimeout: 1000, - randomize: true, - }, - }); -} -exports.getDefaultGcsFetcher = getDefaultGcsFetcher; -exports.HEALTH_CHECK_QUERY = 'query __ApolloServiceHealthCheck__ { __typename }'; -exports.SERVICE_DEFINITION_QUERY = 'query __ApolloGetServiceDefinition__ { _service { sdl } }'; -class ApolloGateway { - constructor(config) { - this.serviceMap = Object.create(null); - this.onSchemaChangeListeners = new Set(); - this.serviceDefinitions = []; - this.serviceSdlCache = new Map(); - this.warnedStates = Object.create(null); - this.fetcher = getDefaultGcsFetcher(); - this.executor = async (requestContext) => { - const { request, document, queryHash, source } = requestContext; - const queryPlanStoreKey = queryHash + (request.operationName || ''); - const operationContext = buildQueryPlan_1.buildOperationContext({ - schema: this.schema, - operationDocument: document, - operationString: source, - queryPlannerPointer: this.queryPlannerPointer, - operationName: request.operationName, - }); - const validationErrors = this.validateIncomingRequest(requestContext, operationContext); - if (validationErrors.length > 0) { - return { errors: validationErrors }; - } - let queryPlan; - if (this.queryPlanStore) { - queryPlan = await this.queryPlanStore.get(queryPlanStoreKey); - } - if (!queryPlan) { - queryPlan = buildQueryPlan_1.buildQueryPlan(operationContext, { - autoFragmentization: Boolean(this.config.experimental_autoFragmentization), - }); - if (this.queryPlanStore) { - Promise.resolve(this.queryPlanStore.set(queryPlanStoreKey, queryPlan)).catch(err => this.logger.warn('Could not store queryPlan' + ((err && err.message) || err))); - } - } - const serviceMap = Object.entries(this.serviceMap).reduce((serviceDataSources, [serviceName, { dataSource }]) => { - serviceDataSources[serviceName] = dataSource; - return serviceDataSources; - }, Object.create(null)); - if (this.experimental_didResolveQueryPlan) { - this.experimental_didResolveQueryPlan({ - queryPlan, - serviceMap, - requestContext, - operationContext, - }); - } - const response = await executeQueryPlan_1.executeQueryPlan(queryPlan, serviceMap, requestContext, operationContext); - const shouldShowQueryPlan = this.config.__exposeQueryPlanExperimental && - request.http && - request.http.headers && - request.http.headers.get('Apollo-Query-Plan-Experimental'); - const serializedQueryPlan = queryPlan.node && (this.config.debug || shouldShowQueryPlan) - ? QueryPlan_1.serializeQueryPlan(queryPlan) - : null; - if (this.config.debug && serializedQueryPlan) { - this.logger.debug(serializedQueryPlan); - } - if (shouldShowQueryPlan) { - response.extensions = { - __queryPlanExperimental: serializedQueryPlan || true, - }; - } - return response; - }; - this.config = { - __exposeQueryPlanExperimental: process.env.NODE_ENV !== 'production', - ...config, - }; - if (this.config.logger) { - this.logger = this.config.logger; - } - else { - const loglevelLogger = loglevel_1.default.getLogger(`apollo-gateway`); - if (this.config.debug === true) { - loglevelLogger.setLevel(loglevelLogger.levels.DEBUG); - } - else { - loglevelLogger.setLevel(loglevelLogger.levels.WARN); - } - this.logger = loglevelLogger; - } - if (isLocalConfig(this.config)) { - const { schema, composedSdl } = this.createSchema(this.config.localServiceList); - this.schema = schema; - if (!composedSdl) { - this.logger.error("A valid schema couldn't be composed."); - } - else { - this.queryPlannerPointer = query_planner_wasm_1.getQueryPlanner(composedSdl); - } - } - this.initializeQueryPlanStore(); - this.updateServiceDefinitions = this.loadServiceDefinitions; - if (config) { - this.updateServiceDefinitions = - config.experimental_updateServiceDefinitions || - this.updateServiceDefinitions; - this.experimental_didResolveQueryPlan = - config.experimental_didResolveQueryPlan; - this.experimental_didFailComposition = - config.experimental_didFailComposition; - this.experimental_didUpdateComposition = - config.experimental_didUpdateComposition; - this.experimental_approximateQueryPlanStoreMiB = - config.experimental_approximateQueryPlanStoreMiB; - if (isManagedConfig(config) && - config.experimental_pollInterval && - config.experimental_pollInterval < 10000) { - this.experimental_pollInterval = 10000; - this.logger.warn('Polling Apollo services at a frequency of less than once per 10 seconds (10000) is disallowed. Instead, the minimum allowed pollInterval of 10000 will be used. Please reconfigure your experimental_pollInterval accordingly. If this is problematic for your team, please contact support.'); - } - else { - this.experimental_pollInterval = config.experimental_pollInterval; - } - if (config.experimental_pollInterval && isRemoteConfig(config)) { - this.logger.warn('Polling running services is dangerous and not recommended in production. ' + - 'Polling should only be used against a registry. ' + - 'If you are polling running services, use with caution.'); - } - if (config.fetcher) { - this.fetcher = config.fetcher; - } - } - } - async load(options) { - if (options === null || options === void 0 ? void 0 : options.apollo) { - this.apolloConfig = options.apollo; - } - else if (options === null || options === void 0 ? void 0 : options.engine) { - this.apolloConfig = { - keyHash: options.engine.apiKeyHash, - graphId: options.engine.graphId, - graphVariant: options.engine.graphVariant || 'current', - }; - } - await this.updateComposition(); - if ((isManagedConfig(this.config) || this.experimental_pollInterval) && - !this.pollingTimer) { - this.pollServices(); - } - const mode = isManagedConfig(this.config) ? 'managed' : 'unmanaged'; - this.logger.info(`Gateway successfully loaded schema.\n\t* Mode: ${mode}${(this.apolloConfig && this.apolloConfig.graphId) - ? `\n\t* Service: ${this.apolloConfig.graphId}@${this.apolloConfig.graphVariant}` - : ''}`); - return { - schema: this.schema, - executor: this.executor, - }; - } - async updateComposition() { - let result; - this.logger.debug('Checking service definitions...'); - try { - result = await this.updateServiceDefinitions(this.config); - } - catch (e) { - this.logger.error("Error checking for changes to service definitions: " + - (e && e.message || e)); - throw e; - } - if (!result.serviceDefinitions || - JSON.stringify(this.serviceDefinitions) === - JSON.stringify(result.serviceDefinitions)) { - this.logger.debug('No change in service definitions since last check.'); - return; - } - const previousSchema = this.schema; - const previousServiceDefinitions = this.serviceDefinitions; - const previousCompositionMetadata = this.compositionMetadata; - if (previousSchema) { - this.logger.info("New service definitions were found."); - } - if (this.config.serviceHealthCheck) { - const serviceMap = result.serviceDefinitions.reduce((serviceMap, serviceDef) => { - serviceMap[serviceDef.name] = { - url: serviceDef.url, - dataSource: this.createDataSource(serviceDef), - }; - return serviceMap; - }, Object.create(null)); - try { - await this.serviceHealthCheck(serviceMap); - } - catch (e) { - this.logger.error('The gateway did not update its schema due to failed service health checks. ' + - 'The gateway will continue to operate with the previous schema and reattempt updates.' + e); - throw e; - } - } - this.compositionMetadata = result.compositionMetadata; - this.serviceDefinitions = result.serviceDefinitions; - if (this.queryPlanStore) - this.queryPlanStore.flush(); - const { schema, composedSdl } = this.createSchema(result.serviceDefinitions); - if (!composedSdl) { - this.logger.error("A valid schema couldn't be composed. Falling back to previous schema."); - } - else { - this.schema = schema; - this.queryPlannerPointer = query_planner_wasm_1.getQueryPlanner(composedSdl); - try { - this.onSchemaChangeListeners.forEach(listener => listener(this.schema)); - } - catch (e) { - this.logger.error("An error was thrown from an 'onSchemaChange' listener. " + - "The schema will still update: " + (e && e.message || e)); - } - if (this.experimental_didUpdateComposition) { - this.experimental_didUpdateComposition({ - serviceDefinitions: result.serviceDefinitions, - schema: this.schema, - ...(this.compositionMetadata && { - compositionMetadata: this.compositionMetadata, - }), - }, previousServiceDefinitions && - previousSchema && { - serviceDefinitions: previousServiceDefinitions, - schema: previousSchema, - ...(previousCompositionMetadata && { - compositionMetadata: previousCompositionMetadata, - }), - }); - } - } - } - serviceHealthCheck(serviceMap = this.serviceMap) { - return Promise.all(Object.entries(serviceMap).map(([name, { dataSource }]) => dataSource - .process({ request: { query: exports.HEALTH_CHECK_QUERY }, context: {} }) - .then(response => ({ name, response })))); - } - createSchema(serviceList) { - this.logger.debug(`Composing schema from service list: \n${serviceList - .map(({ name, url }) => ` ${url || 'local'}: ${name}`) - .join('\n')}`); - const { schema, errors, composedSdl } = federation_1.composeAndValidate(serviceList); - if (errors && errors.length > 0) { - if (this.experimental_didFailComposition) { - this.experimental_didFailComposition({ - errors, - serviceList, - ...(this.compositionMetadata && { - compositionMetadata: this.compositionMetadata, - }), - }); - } - throw new apollo_graphql_1.GraphQLSchemaValidationError(errors); - } - this.createServices(serviceList); - this.logger.debug('Schema loaded and ready for execution'); - return { schema: wrapSchemaWithAliasResolver(schema), composedSdl }; - } - onSchemaChange(callback) { - this.onSchemaChangeListeners.add(callback); - return () => { - this.onSchemaChangeListeners.delete(callback); - }; - } - async pollServices() { - if (this.pollingTimer) - clearTimeout(this.pollingTimer); - await new Promise(res => { - var _a; - this.pollingTimer = setTimeout(() => res(), this.experimental_pollInterval || 10000); - (_a = this.pollingTimer) === null || _a === void 0 ? void 0 : _a.unref(); - }); - try { - await this.updateComposition(); - } - catch (err) { - this.logger.error(err && err.message || err); - } - this.pollServices(); - } - createAndCacheDataSource(serviceDef) { - if (this.serviceMap[serviceDef.name] && - serviceDef.url === this.serviceMap[serviceDef.name].url) - return this.serviceMap[serviceDef.name].dataSource; - const dataSource = this.createDataSource(serviceDef); - this.serviceMap[serviceDef.name] = { url: serviceDef.url, dataSource }; - return dataSource; - } - createDataSource(serviceDef) { - if (!serviceDef.url && !isLocalConfig(this.config)) { - this.logger.error(`Service definition for service ${serviceDef.name} is missing a url`); - } - return this.config.buildService - ? this.config.buildService(serviceDef) - : new RemoteGraphQLDataSource_1.RemoteGraphQLDataSource({ - url: serviceDef.url, - }); - } - createServices(services) { - for (const serviceDef of services) { - this.createAndCacheDataSource(serviceDef); - } - } - async loadServiceDefinitions(config) { - var _a, _b; - const canUseManagedConfig = ((_a = this.apolloConfig) === null || _a === void 0 ? void 0 : _a.graphId) && ((_b = this.apolloConfig) === null || _b === void 0 ? void 0 : _b.keyHash); - const getManagedConfig = () => { - return loadServicesFromStorage_1.getServiceDefinitionsFromStorage({ - graphId: this.apolloConfig.graphId, - apiKeyHash: this.apolloConfig.keyHash, - graphVariant: this.apolloConfig.graphVariant, - federationVersion: config.federationVersion || 1, - fetcher: this.fetcher, - }); - }; - if (isLocalConfig(config) || isRemoteConfig(config)) { - if (canUseManagedConfig && !this.warnedStates.remoteWithLocalConfig) { - this.warnedStates.remoteWithLocalConfig = true; - getManagedConfig().then(() => { - this.logger.warn("A local gateway service list is overriding a managed federation " + - "configuration. To use the managed " + - "configuration, do not specify a service list locally."); - }).catch(() => { }); - } - } - if (isLocalConfig(config)) { - return { isNewSchema: false }; - } - if (isRemoteConfig(config)) { - const serviceList = config.serviceList.map(serviceDefinition => ({ - ...serviceDefinition, - dataSource: this.createAndCacheDataSource(serviceDefinition), - })); - return loadServicesFromRemoteEndpoint_1.getServiceDefinitionsFromRemoteEndpoint({ - serviceList, - ...(config.introspectionHeaders - ? { headers: config.introspectionHeaders } - : {}), - serviceSdlCache: this.serviceSdlCache, - }); - } - if (!canUseManagedConfig) { - throw new Error('When `serviceList` is not set, an Apollo configuration must be provided. See https://www.apollographql.com/docs/apollo-server/federation/managed-federation/ for more information.'); - } - return getManagedConfig(); - } - validateIncomingRequest(requestContext, operationContext) { - const variableDefinitions = operationContext.operation - .variableDefinitions; - if (!variableDefinitions) - return []; - const { errors } = values_1.getVariableValues(operationContext.schema, variableDefinitions, requestContext.request.variables || {}); - return errors || []; - } - initializeQueryPlanStore() { - this.queryPlanStore = new apollo_server_caching_1.InMemoryLRUCache({ - maxSize: Math.pow(2, 20) * - (this.experimental_approximateQueryPlanStoreMiB || 30), - sizeCalculator: approximateObjectSize, - }); - } - async stop() { - if (this.pollingTimer) { - clearTimeout(this.pollingTimer); - this.pollingTimer = undefined; - } - } -} -exports.ApolloGateway = ApolloGateway; -function approximateObjectSize(obj) { - return Buffer.byteLength(JSON.stringify(obj), 'utf8'); -} -function wrapSchemaWithAliasResolver(schema) { - const typeMap = schema.getTypeMap(); - Object.keys(typeMap).forEach(typeName => { - const type = typeMap[typeName]; - if (graphql_1.isObjectType(type) && !graphql_1.isIntrospectionType(type)) { - const fields = type.getFields(); - Object.keys(fields).forEach(fieldName => { - const field = fields[fieldName]; - field.resolve = executeQueryPlan_1.defaultFieldResolverWithAliasSupport; - }); - } - }); - return schema; -} -__exportStar(require("./datasources"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/index.js.map b/gateway/node_modules/@apollo/gateway/dist/index.js.map deleted file mode 100644 index 02dff34..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.d.ts b/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.d.ts deleted file mode 100644 index c900572..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { HeadersInit } from 'node-fetch'; -import { GraphQLDataSource } from './datasources/types'; -import { Experimental_UpdateServiceDefinitions } from './'; -export declare function getServiceDefinitionsFromRemoteEndpoint({ serviceList, headers, serviceSdlCache, }: { - serviceList: { - name: string; - url?: string; - dataSource: GraphQLDataSource; - }[]; - headers?: HeadersInit; - serviceSdlCache: Map; -}): ReturnType; -//# sourceMappingURL=loadServicesFromRemoteEndpoint.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.d.ts.map deleted file mode 100644 index b898230..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"loadServicesFromRemoteEndpoint.d.ts","sourceRoot":"","sources":["../src/loadServicesFromRemoteEndpoint.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qCAAqC,EAA4B,MAAM,IAAI,CAAC;AAGrF,wBAAsB,uCAAuC,CAAC,EAC5D,WAAW,EACX,OAAY,EACZ,eAAe,GAChB,EAAE;IACD,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,iBAAiB,CAAC;KAC/B,EAAE,CAAC;IACJ,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,GAAG,UAAU,CAAC,qCAAqC,CAAC,CAwDpD"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.js b/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.js deleted file mode 100644 index 5533278..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getServiceDefinitionsFromRemoteEndpoint = void 0; -const graphql_1 = require("graphql"); -const node_fetch_1 = require("node-fetch"); -const _1 = require("./"); -async function getServiceDefinitionsFromRemoteEndpoint({ serviceList, headers = {}, serviceSdlCache, }) { - if (!serviceList || !serviceList.length) { - throw new Error('Tried to load services from remote endpoints but none provided'); - } - let isNewSchema = false; - const promiseOfServiceList = serviceList.map(({ name, url, dataSource }) => { - if (!url) { - throw new Error(`Tried to load schema for '${name}' but no 'url' was specified.`); - } - const request = { - query: _1.SERVICE_DEFINITION_QUERY, - http: { - url, - method: 'POST', - headers: new node_fetch_1.Headers(headers), - }, - }; - return dataSource - .process({ request, context: {} }) - .then(({ data, errors }) => { - if (data && !errors) { - const typeDefs = data._service.sdl; - const previousDefinition = serviceSdlCache.get(name); - if (previousDefinition !== typeDefs) { - isNewSchema = true; - } - serviceSdlCache.set(name, typeDefs); - return { - name, - url, - typeDefs: graphql_1.parse(typeDefs), - }; - } - throw new Error(errors === null || errors === void 0 ? void 0 : errors.map(e => e.message).join("\n")); - }) - .catch(err => { - const errorMessage = `Couldn't load service definitions for "${name}" at ${url}` + - (err && err.message ? ": " + err.message || err : ""); - throw new Error(errorMessage); - }); - }); - const serviceDefinitions = await Promise.all(promiseOfServiceList); - return { serviceDefinitions, isNewSchema }; -} -exports.getServiceDefinitionsFromRemoteEndpoint = getServiceDefinitionsFromRemoteEndpoint; -//# sourceMappingURL=loadServicesFromRemoteEndpoint.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.js.map b/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.js.map deleted file mode 100644 index d53f9f4..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromRemoteEndpoint.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"loadServicesFromRemoteEndpoint.js","sourceRoot":"","sources":["../src/loadServicesFromRemoteEndpoint.ts"],"names":[],"mappings":";;;AACA,qCAAgC;AAChC,2CAAkD;AAElD,yBAAqF;AAG9E,KAAK,UAAU,uCAAuC,CAAC,EAC5D,WAAW,EACX,OAAO,GAAG,EAAE,EACZ,eAAe,GAShB;IACC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;QACvC,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;KACH;IAED,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE;QACzE,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,+BAA+B,CAAC,CAAC;SACrE;QAED,MAAM,OAAO,GAAmB;YAC9B,KAAK,EAAE,2BAAwB;YAC/B,IAAI,EAAE;gBACJ,GAAG;gBACH,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,oBAAO,CAAC,OAAO,CAAC;aAC9B;SACF,CAAC;QAEF,OAAO,UAAU;aACd,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;aACjC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAqB,EAAE;YAC5C,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;gBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAa,CAAC;gBAC7C,MAAM,kBAAkB,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAGrD,IAAI,kBAAkB,KAAK,QAAQ,EAAE;oBACnC,WAAW,GAAG,IAAI,CAAC;iBACpB;gBACD,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO;oBACL,IAAI;oBACJ,GAAG;oBACH,QAAQ,EAAE,eAAK,CAAC,QAAQ,CAAC;iBAC1B,CAAC;aACH;YAED,MAAM,IAAI,KAAK,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1D,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,MAAM,YAAY,GAChB,0CAA0C,IAAI,QAAQ,GAAG,EAAE;gBAC3D,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAExD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA;AAC5C,CAAC;AApED,0FAoEC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.d.ts b/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.d.ts deleted file mode 100644 index 199ff6a..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { fetch } from 'apollo-server-env'; -import { Experimental_UpdateServiceDefinitions } from '.'; -interface ImplementingServiceLocation { - name: string; - path: string; -} -export interface CompositionMetadata { - formatVersion: number; - id: string; - implementingServiceLocations: ImplementingServiceLocation[]; - schemaHash: string; -} -export declare function getServiceDefinitionsFromStorage({ graphId, apiKeyHash, graphVariant, federationVersion, fetcher, }: { - graphId: string; - apiKeyHash: string; - graphVariant: string; - federationVersion: number; - fetcher: typeof fetch; -}): ReturnType; -export {}; -//# sourceMappingURL=loadServicesFromStorage.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.d.ts.map deleted file mode 100644 index 24117cf..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"loadServicesFromStorage.d.ts","sourceRoot":"","sources":["../src/loadServicesFromStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,qCAAqC,EAAE,MAAM,GAAG,CAAC;AAiB1D,UAAU,2BAA2B;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B,EAAE,2BAA2B,EAAE,CAAC;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAuED,wBAAsB,gCAAgC,CAAC,EACrD,OAAO,EACP,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,KAAK,CAAC;CACvB,GAAG,UAAU,CAAC,qCAAqC,CAAC,CAkDpD"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.js b/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.js deleted file mode 100644 index dcbdb1d..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.js +++ /dev/null @@ -1,58 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getServiceDefinitionsFromStorage = void 0; -const graphql_1 = require("graphql"); -const envOverridePartialSchemaBaseUrl = 'APOLLO_PARTIAL_SCHEMA_BASE_URL'; -const envOverrideStorageSecretBaseUrl = 'APOLLO_STORAGE_SECRET_BASE_URL'; -const urlFromEnvOrDefault = (envKey, fallback) => (process.env[envKey] || fallback).replace(/\/$/, ''); -const urlPartialSchemaBase = urlFromEnvOrDefault(envOverridePartialSchemaBaseUrl, 'https://federation.api.apollographql.com/'); -const urlStorageSecretBase = urlFromEnvOrDefault(envOverrideStorageSecretBaseUrl, 'https://storage-secrets.api.apollographql.com/'); -function getStorageSecretUrl(graphId, apiKeyHash) { - return `${urlStorageSecretBase}/${graphId}/storage-secret/${apiKeyHash}.json`; -} -function fetchApolloGcs(fetcher, ...args) { - const [input, init] = args; - const url = typeof input === 'object' && input.url || input; - return fetcher(input, init) - .catch(fetchError => { - throw new Error("Cannot access Apollo storage: " + fetchError); - }) - .then(async (response) => { - if (response.ok || response.status === 304) { - return response; - } - const body = await response.text(); - if (response.status === 403 && body.includes("AccessDenied")) { - throw new Error("Unable to authenticate with Apollo storage " + - "while fetching " + url + ". Ensure that the API key is " + - "configured properly and that a federated service has been " + - "pushed. For details, see " + - "https://go.apollo.dev/g/resolve-access-denied."); - } - throw new Error("Could not communicate with Apollo storage: " + body); - }); -} -; -async function getServiceDefinitionsFromStorage({ graphId, apiKeyHash, graphVariant, federationVersion, fetcher, }) { - const storageSecretUrl = getStorageSecretUrl(graphId, apiKeyHash); - const secret = await fetchApolloGcs(fetcher, storageSecretUrl).then(res => res.json()); - const baseUrl = `${urlPartialSchemaBase}/${secret}/${graphVariant}/v${federationVersion}`; - const compositionConfigResponse = await fetchApolloGcs(fetcher, `${baseUrl}/composition-config-link`); - if (compositionConfigResponse.status === 304) { - return { isNewSchema: false }; - } - const linkFileResult = await compositionConfigResponse.json(); - const compositionMetadata = await fetchApolloGcs(fetcher, `${urlPartialSchemaBase}/${linkFileResult.configPath}`).then(res => res.json()); - const serviceDefinitions = await Promise.all(compositionMetadata.implementingServiceLocations.map(async ({ name, path }) => { - const { url, partialSchemaPath } = await fetcher(`${urlPartialSchemaBase}/${path}`).then(response => response.json()); - const sdl = await fetcher(`${urlPartialSchemaBase}/${partialSchemaPath}`).then(response => response.text()); - return { name, url, typeDefs: graphql_1.parse(sdl) }; - })); - return { - serviceDefinitions, - compositionMetadata, - isNewSchema: true, - }; -} -exports.getServiceDefinitionsFromStorage = getServiceDefinitionsFromStorage; -//# sourceMappingURL=loadServicesFromStorage.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.js.map b/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.js.map deleted file mode 100644 index 50832e4..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/loadServicesFromStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"loadServicesFromStorage.js","sourceRoot":"","sources":["../src/loadServicesFromStorage.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.d.ts b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.d.ts deleted file mode 100644 index fa8d728..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ASTNode } from 'graphql'; -declare const _default: import("pretty-format/build/types").Plugin; -export default _default; -export declare function remapInlineFragmentNodes(node: ASTNode): ASTNode; -//# sourceMappingURL=astSerializer.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.d.ts.map deleted file mode 100644 index ac89db6..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"astSerializer.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/astSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,SAAS,CAAC;;AAKtD,wBAkBY;AAmBZ,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAmC/D"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.js b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.js deleted file mode 100644 index 091dc0b..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.js +++ /dev/null @@ -1,76 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.remapInlineFragmentNodes = void 0; -const graphql_1 = require("graphql"); -exports.default = { - test(value) { - return value && typeof value.kind === 'string'; - }, - serialize(value, _config, indentation, _depth, _refs, _printer) { - return graphql_1.print(remapInlineFragmentNodes(value)) - .trim() - .replace(/\n\n/g, '\n') - .replace(/\n/g, '\n' + indentation); - }, -}; -function remapInlineFragmentNodes(node) { - return graphql_1.visit(node, { - InlineFragment: (fragmentNode) => { - if (fragmentNode.selectionSet) - return fragmentNode; - return { - kind: graphql_1.Kind.INLINE_FRAGMENT, - typeCondition: fragmentNode.typeCondition - ? { - kind: graphql_1.Kind.NAMED_TYPE, - name: { - kind: graphql_1.Kind.NAME, - value: fragmentNode.typeCondition, - }, - } - : undefined, - selectionSet: { - kind: graphql_1.Kind.SELECTION_SET, - selections: remapSelections(fragmentNode.selections), - }, - }; - }, - }); -} -exports.remapInlineFragmentNodes = remapInlineFragmentNodes; -function remapSelections(selections) { - return selections.map((selection) => { - switch (selection.kind) { - case graphql_1.Kind.FIELD: - return { - kind: graphql_1.Kind.FIELD, - name: { - kind: graphql_1.Kind.NAME, - value: selection.name, - }, - selectionSet: { - kind: graphql_1.Kind.SELECTION_SET, - selections: remapSelections(selection.selections || []), - }, - }; - case graphql_1.Kind.INLINE_FRAGMENT: - return { - kind: graphql_1.Kind.INLINE_FRAGMENT, - selectionSet: { - kind: graphql_1.Kind.SELECTION_SET, - selections: remapSelections(selection.selections || []), - }, - typeCondition: selection.typeCondition - ? { - kind: graphql_1.Kind.NAMED_TYPE, - name: { - kind: graphql_1.Kind.NAME, - value: selection.typeCondition, - }, - } - : undefined, - }; - } - }); -} -//# sourceMappingURL=astSerializer.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.js.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.js.map deleted file mode 100644 index a53d89e..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/astSerializer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"astSerializer.js","sourceRoot":"","sources":["../../src/snapshotSerializers/astSerializer.ts"],"names":[],"mappings":";;;AAAA,qCAAsD;AAKtD,kBAAe;IACb,IAAI,CAAC,KAAU;QACb,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;IACjD,CAAC;IAED,SAAS,CACP,KAAc,EACd,OAAe,EACf,WAAmB,EACnB,MAAc,EACd,KAAW,EACX,QAAa;QAEb,OAAO,eAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;aAC1C,IAAI,EAAE;aACN,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;aACtB,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;IACxC,CAAC;CACQ,CAAC;AAmBZ,SAAgB,wBAAwB,CAAC,IAAa;IACpD,OAAO,eAAK,CAAC,IAAI,EAAE;QACjB,cAAc,EAAE,CAAC,YAAY,EAAE,EAAE;YAE/B,IAAI,YAAY,CAAC,YAAY;gBAAE,OAAO,YAAY,CAAC;YAUnD,OAAO;gBACL,IAAI,EAAE,cAAI,CAAC,eAAe;gBAC1B,aAAa,EAAE,YAAY,CAAC,aAAa;oBACvC,CAAC,CAAC;wBACE,IAAI,EAAE,cAAI,CAAC,UAAU;wBACrB,IAAI,EAAE;4BACJ,IAAI,EAAE,cAAI,CAAC,IAAI;4BACf,KAAK,EAAE,YAAY,CAAC,aAAa;yBAClC;qBACF;oBACH,CAAC,CAAC,SAAS;gBACb,YAAY,EAAE;oBACZ,IAAI,EAAE,cAAI,CAAC,aAAa;oBAExB,UAAU,EAAE,eAAe,CACvB,YAAwD,CAAC,UAAU,CACtE;iBACF;aACF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAnCD,4DAmCC;AAED,SAAS,eAAe,CACtB,UAAoC;IAEpC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAClC,QAAQ,SAAS,CAAC,IAAI,EAAE;YACtB,KAAK,cAAI,CAAC,KAAK;gBACb,OAAO;oBACL,IAAI,EAAE,cAAI,CAAC,KAAK;oBAChB,IAAI,EAAE;wBACJ,IAAI,EAAE,cAAI,CAAC,IAAI;wBACf,KAAK,EAAE,SAAS,CAAC,IAAI;qBACtB;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,cAAI,CAAC,aAAa;wBACxB,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC;qBACxD;iBACF,CAAC;YACJ,KAAK,cAAI,CAAC,eAAe;gBACvB,OAAO;oBACL,IAAI,EAAE,cAAI,CAAC,eAAe;oBAC1B,YAAY,EAAE;wBACZ,IAAI,EAAE,cAAI,CAAC,aAAa;wBACxB,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC;qBACxD;oBACD,aAAa,EAAE,SAAS,CAAC,aAAa;wBACpC,CAAC,CAAC;4BACE,IAAI,EAAE,cAAI,CAAC,UAAU;4BACrB,IAAI,EAAE;gCACJ,IAAI,EAAE,cAAI,CAAC,IAAI;gCACf,KAAK,EAAE,SAAS,CAAC,aAAa;6BAC/B;yBACF;wBACH,CAAC,CAAC,SAAS;iBACd,CAAC;SACL;IACH,CAAC,CAAC,CAAC;AACL,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.d.ts b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.d.ts deleted file mode 100644 index 60aaaac..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import astSerializer from './astSerializer'; -import selectionSetSerializer from './selectionSetSerializer'; -import typeSerializer from './typeSerializer'; -import queryPlanSerializer from './queryPlanSerializer'; -export { astSerializer, selectionSetSerializer, typeSerializer, queryPlanSerializer, }; -declare global { - namespace jest { - interface Expect { - addSnapshotSerializer(serializer: import('pretty-format').Plugin): void; - } - } -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.d.ts.map deleted file mode 100644 index 32dc966..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,IAAI,CAAC;QACb,UAAU,MAAM;YAId,qBAAqB,CAAC,UAAU,EAAE,OAAO,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;SACzE;KACF;CACF"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.js b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.js deleted file mode 100644 index ad79b5a..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.queryPlanSerializer = exports.typeSerializer = exports.selectionSetSerializer = exports.astSerializer = void 0; -const astSerializer_1 = __importDefault(require("./astSerializer")); -exports.astSerializer = astSerializer_1.default; -const selectionSetSerializer_1 = __importDefault(require("./selectionSetSerializer")); -exports.selectionSetSerializer = selectionSetSerializer_1.default; -const typeSerializer_1 = __importDefault(require("./typeSerializer")); -exports.typeSerializer = typeSerializer_1.default; -const queryPlanSerializer_1 = __importDefault(require("./queryPlanSerializer")); -exports.queryPlanSerializer = queryPlanSerializer_1.default; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.js.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.js.map deleted file mode 100644 index 2ea3eed..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/snapshotSerializers/index.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAK1C,wBALK,uBAAa,CAKL;AAJf,sFAA8D;AAK5D,iCALK,gCAAsB,CAKL;AAJxB,sEAA8C;AAK5C,yBALK,wBAAc,CAKL;AAJhB,gFAAwD;AAKtD,8BALK,6BAAmB,CAKL"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.d.ts b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.d.ts deleted file mode 100644 index a69bae4..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: import("pretty-format/build/types").Plugin; -export default _default; -//# sourceMappingURL=queryPlanSerializer.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.d.ts.map deleted file mode 100644 index e4c434b..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"queryPlanSerializer.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/queryPlanSerializer.ts"],"names":[],"mappings":";AAIA,wBA0BY"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.js b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.js deleted file mode 100644 index d4f1e70..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.js +++ /dev/null @@ -1,84 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -exports.default = { - test(value) { - return value && value.kind === 'QueryPlan'; - }, - serialize(queryPlan, config, indentation, depth, refs, printer) { - return ('QueryPlan {' + - printNodes(queryPlan.node ? [queryPlan.node] : undefined, config, indentation, depth, refs, printer) + - '}'); - }, -}; -function printNode(node, config, indentation, depth, refs, printer) { - let result = ''; - const indentationNext = indentation + config.indent; - switch (node.kind) { - case 'Fetch': - result += - `Fetch(service: "${node.serviceName}")` + - ' {' + - config.spacingOuter + - indentationNext + - (node.requires - ? printer({ kind: graphql_1.Kind.SELECTION_SET, selections: node.requires }, config, indentationNext, depth, refs, printer) + - ' =>' + - config.spacingOuter + - indentationNext - : '') + - printer(flattenEntitiesField(graphql_1.parse(node.operation)), config, indentationNext, depth, refs, printer) + - config.spacingOuter + - indentation + - '}'; - break; - case 'Flatten': - result += `Flatten(path: "${node.path.join('.')}")`; - break; - default: - result += node.kind; - } - const nodes = 'nodes' in node ? node.nodes : 'node' in node ? [node.node] : []; - if (nodes.length > 0) { - result += - ' {' + printNodes(nodes, config, indentation, depth, refs, printer) + '}'; - } - return result; -} -function printNodes(nodes, config, indentation, depth, refs, printer) { - let result = ''; - if (nodes && nodes.length > 0) { - result += config.spacingOuter; - const indentationNext = indentation + config.indent; - for (let i = 0; i < nodes.length; i++) { - const node = nodes[i]; - if (!node) - continue; - result += - indentationNext + - printNode(node, config, indentationNext, depth, refs, printer); - if (i < nodes.length - 1) { - result += ',' + config.spacingInner; - } - else if (!config.min) { - result += ','; - } - } - result += config.spacingOuter + indentation; - } - return result; -} -function flattenEntitiesField(node) { - return graphql_1.visit(node, { - OperationDefinition: ({ operation, selectionSet }) => { - const firstSelection = selectionSet.selections[0]; - if (operation === 'query' && - firstSelection.kind === graphql_1.Kind.FIELD && - firstSelection.name.value === '_entities') { - return firstSelection.selectionSet; - } - return selectionSet; - }, - }); -} -//# sourceMappingURL=queryPlanSerializer.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.js.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.js.map deleted file mode 100644 index 0194a0c..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/queryPlanSerializer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"queryPlanSerializer.js","sourceRoot":"","sources":["../../src/snapshotSerializers/queryPlanSerializer.ts"],"names":[],"mappings":";;AAEA,qCAA2D;AAE3D,kBAAe;IACb,IAAI,CAAC,KAAU;QACb,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;IAC7C,CAAC;IAED,SAAS,CACP,SAAoB,EACpB,MAAc,EACd,WAAmB,EACnB,KAAa,EACb,IAAU,EACV,OAAY;QAEZ,OAAO,CACL,aAAa;YACb,UAAU,CACR,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7C,MAAM,EACN,WAAW,EACX,KAAK,EACL,IAAI,EACJ,OAAO,CACR;YACD,GAAG,CACJ,CAAC;IACJ,CAAC;CACQ,CAAC;AAEZ,SAAS,SAAS,CAChB,IAAc,EACd,MAAc,EACd,WAAmB,EACnB,KAAa,EACb,IAAU,EACV,OAAY;IAEZ,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,eAAe,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAEpD,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,OAAO;YACV,MAAM;gBACJ,mBAAmB,IAAI,CAAC,WAAW,IAAI;oBACvC,IAAI;oBACJ,MAAM,CAAC,YAAY;oBACnB,eAAe;oBACf,CAAC,IAAI,CAAC,QAAQ;wBACZ,CAAC,CAAC,OAAO,CAGL,EAAE,IAAI,EAAE,cAAI,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,EACvD,MAAM,EACN,eAAe,EACf,KAAK,EACL,IAAI,EACJ,OAAO,CACR;4BACD,KAAK;4BACL,MAAM,CAAC,YAAY;4BACnB,eAAe;wBACjB,CAAC,CAAC,EAAE,CAAC;oBACP,OAAO,CACL,oBAAoB,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAC3C,MAAM,EACN,eAAe,EACf,KAAK,EACL,IAAI,EACJ,OAAO,CACR;oBACD,MAAM,CAAC,YAAY;oBACnB,WAAW;oBACX,GAAG,CAAC;YACN,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,IAAI,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACpD,MAAM;QACR;YACE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC;KACvB;IAED,MAAM,KAAK,GACT,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM;YACJ,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;KAC7E;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CACjB,KAA6B,EAC7B,MAAc,EACd,WAAmB,EACnB,KAAa,EACb,IAAU,EACV,OAAY;IAEZ,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC;QAE9B,MAAM,eAAe,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM;gBACJ,eAAe;oBACf,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAEjE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;aACrC;iBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBACtB,MAAM,IAAI,GAAG,CAAC;aACf;SACF;QAED,MAAM,IAAI,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC;KAC7C;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,SAAS,oBAAoB,CAAC,IAAkB;IAC9C,OAAO,eAAK,CAAC,IAAI,EAAE;QACjB,mBAAmB,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE;YACnD,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAClD,IACE,SAAS,KAAK,OAAO;gBACrB,cAAc,CAAC,IAAI,KAAK,cAAI,CAAC,KAAK;gBAClC,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,EACzC;gBACA,OAAO,cAAc,CAAC,YAAY,CAAC;aACpC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.d.ts b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.d.ts deleted file mode 100644 index 991c013..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: import("pretty-format/build/types").Plugin; -export default _default; -//# sourceMappingURL=selectionSetSerializer.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.d.ts.map deleted file mode 100644 index d8f117e..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"selectionSetSerializer.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/selectionSetSerializer.ts"],"names":[],"mappings":";AAGA,wBASY"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.js b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.js deleted file mode 100644 index 10c4d70..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -exports.default = { - test(value) { - return (Array.isArray(value) && value.length > 0 && value.every(graphql_1.isSelectionNode)); - }, - print(selectionNodes) { - return selectionNodes.map(node => graphql_1.print(node)).join('\n'); - }, -}; -//# sourceMappingURL=selectionSetSerializer.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.js.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.js.map deleted file mode 100644 index c96bfa9..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/selectionSetSerializer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"selectionSetSerializer.js","sourceRoot":"","sources":["../../src/snapshotSerializers/selectionSetSerializer.ts"],"names":[],"mappings":";;AAAA,qCAAgE;AAGhE,kBAAe;IACb,IAAI,CAAC,KAAU;QACb,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,yBAAe,CAAC,CACzE,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,cAA+B;QACnC,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;CACQ,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.d.ts b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.d.ts deleted file mode 100644 index 8d322c2..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: import("pretty-format/build/types").Plugin; -export default _default; -//# sourceMappingURL=typeSerializer.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.d.ts.map deleted file mode 100644 index 7207e5b..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"typeSerializer.d.ts","sourceRoot":"","sources":["../../src/snapshotSerializers/typeSerializer.ts"],"names":[],"mappings":";AAGA,wBAOY"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.js b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.js deleted file mode 100644 index 607079e..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -exports.default = { - test(value) { - return value && graphql_1.isNamedType(value); - }, - print(value) { - return graphql_1.printType(value); - }, -}; -//# sourceMappingURL=typeSerializer.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.js.map b/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.js.map deleted file mode 100644 index af32fc4..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/snapshotSerializers/typeSerializer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"typeSerializer.js","sourceRoot":"","sources":["../../src/snapshotSerializers/typeSerializer.ts"],"names":[],"mappings":";;AAAA,qCAAmE;AAGnE,kBAAe;IACb,IAAI,CAAC,KAAU;QACb,OAAO,KAAK,IAAI,qBAAW,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,KAAuB;QAC3B,OAAO,mBAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACQ,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/array.d.ts b/gateway/node_modules/@apollo/gateway/dist/utilities/array.d.ts deleted file mode 100644 index a3206cd..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/array.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare function compactMap(array: T[], callbackfn: (value: T, index: number, array: T[]) => U | null | undefined): U[]; -export declare function findAndExtract(array: T[], predicate: (element: T, index: number, array: T[]) => boolean): [T | undefined, T[]]; -export declare function groupBy(keyFunction: (element: T) => U): (iterable: Iterable) => Map; -//# sourceMappingURL=array.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/array.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/utilities/array.d.ts.map deleted file mode 100644 index 6f3e52f..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/array.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/utilities/array.ts"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAC7B,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,GACxE,CAAC,EAAE,CAWL;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,OAAO,GAC5D,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,CAUtB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,cACxC,QAAQ,CAAC,CAAC,CAAC,iBAgB9B"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/array.js b/gateway/node_modules/@apollo/gateway/dist/utilities/array.js deleted file mode 100644 index 0efb3f8..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/array.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.groupBy = exports.findAndExtract = exports.compactMap = void 0; -function isNotNullOrUndefined(value) { - return value !== null && typeof value !== 'undefined'; -} -function compactMap(array, callbackfn) { - return array.reduce((accumulator, element, index, array) => { - const result = callbackfn(element, index, array); - if (isNotNullOrUndefined(result)) { - accumulator.push(result); - } - return accumulator; - }, []); -} -exports.compactMap = compactMap; -function findAndExtract(array, predicate) { - const index = array.findIndex(predicate); - if (index === -1) - return [undefined, array]; - let remaining = array.slice(0, index); - if (index < array.length - 1) { - remaining.push(...array.slice(index + 1)); - } - return [array[index], remaining]; -} -exports.findAndExtract = findAndExtract; -function groupBy(keyFunction) { - return (iterable) => { - const result = new Map(); - for (const element of iterable) { - const key = keyFunction(element); - const group = result.get(key); - if (group) { - group.push(element); - } - else { - result.set(key, [element]); - } - } - return result; - }; -} -exports.groupBy = groupBy; -//# sourceMappingURL=array.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/array.js.map b/gateway/node_modules/@apollo/gateway/dist/utilities/array.js.map deleted file mode 100644 index ca62b68..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/array.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utilities/array.ts"],"names":[],"mappings":";;;AAAA,SAAS,oBAAoB,CAC3B,KAA2B;IAE3B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AACxD,CAAC;AAED,SAAgB,UAAU,CACxB,KAAU,EACV,UAAyE;IAEzE,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;YAChC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1B;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,EACD,EAAS,CACV,CAAC;AACJ,CAAC;AAdD,gCAcC;AAED,SAAgB,cAAc,CAC5B,KAAU,EACV,SAA6D;IAE7D,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE5C,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KAC3C;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAbD,wCAaC;AAED,SAAgB,OAAO,CAAO,WAA8B;IAC1D,OAAO,CAAC,QAAqB,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACrB;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;aAC5B;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAjBD,0BAiBC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.d.ts b/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.d.ts deleted file mode 100644 index 5caaa3c..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare function deepMerge(target: any, source: any): any; -//# sourceMappingURL=deepMerge.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.d.ts.map deleted file mode 100644 index 5287f09..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deepMerge.d.ts","sourceRoot":"","sources":["../../src/utilities/deepMerge.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CA2BvD"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.js b/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.js deleted file mode 100644 index 0f5ffaa..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.deepMerge = void 0; -const predicates_1 = require("./predicates"); -function deepMerge(target, source) { - if (source === undefined || source === null) - return target; - for (const key of Object.keys(source)) { - if (source[key] === undefined || key === '__proto__') - continue; - if (target[key] && predicates_1.isObject(source[key])) { - deepMerge(target[key], source[key]); - } - else if (Array.isArray(source[key]) && - Array.isArray(target[key]) && - source[key].length === target[key].length) { - let i = 0; - for (; i < source[key].length; i++) { - if (predicates_1.isObject(target[key][i]) && predicates_1.isObject(source[key][i])) { - deepMerge(target[key][i], source[key][i]); - } - else { - target[key][i] = source[key][i]; - } - } - } - else { - target[key] = source[key]; - } - } - return target; -} -exports.deepMerge = deepMerge; -//# sourceMappingURL=deepMerge.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.js.map b/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.js.map deleted file mode 100644 index 043514f..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/deepMerge.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../src/utilities/deepMerge.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,SAAgB,SAAS,CAAC,MAAW,EAAE,MAAW;IAChD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAE3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW;YAAE,SAAS;QAE/D,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,qBAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACxC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACrC;aAAM,IACL,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EACzC;YACA,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,IAAI,qBAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBACxD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3C;qBAAM;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjC;aACF;SACF;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3B;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA3BD,8BA2BC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.d.ts b/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.d.ts deleted file mode 100644 index 52b1c98..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ASTNode, FieldNode, GraphQLNullableType, ListTypeNode, NamedTypeNode, SelectionNode } from 'graphql'; -export declare function getResponseName(node: FieldNode): string; -export declare function allNodesAreOfSameKind(firstNode: T, remainingNodes: ASTNode[]): remainingNodes is T[]; -export declare function astFromType(type: GraphQLNullableType): NamedTypeNode | ListTypeNode; -export declare function printWithReducedWhitespace(ast: ASTNode): string; -export declare function parseSelections(source: string): ReadonlyArray; -//# sourceMappingURL=graphql.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.d.ts.map deleted file mode 100644 index a7fc462..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/utilities/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,SAAS,EACT,mBAAmB,EAKnB,YAAY,EACZ,aAAa,EAIb,aAAa,EAEd,MAAM,SAAS,CAAC;AAEjB,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EACrD,SAAS,EAAE,CAAC,EACZ,cAAc,EAAE,OAAO,EAAE,GACxB,cAAc,IAAI,CAAC,EAAE,CAEvB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,mBAAmB,GACxB,aAAa,GAAG,YAAY,CAAC;AAchC,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAI/D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,CAG5E"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.js b/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.js deleted file mode 100644 index eaa1e73..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.parseSelections = exports.printWithReducedWhitespace = exports.astFromType = exports.allNodesAreOfSameKind = exports.getResponseName = void 0; -const graphql_1 = require("graphql"); -function getResponseName(node) { - return node.alias ? node.alias.value : node.name.value; -} -exports.getResponseName = getResponseName; -function allNodesAreOfSameKind(firstNode, remainingNodes) { - return !remainingNodes.some(node => node.kind !== firstNode.kind); -} -exports.allNodesAreOfSameKind = allNodesAreOfSameKind; -function astFromType(type) { - if (graphql_1.isListType(type)) { - return { kind: graphql_1.Kind.LIST_TYPE, type: astFromType(type.ofType) }; - } - else if (graphql_1.isNonNullType(type)) { - return { kind: graphql_1.Kind.NON_NULL_TYPE, type: astFromType(type.ofType) }; - } - else { - return { - kind: graphql_1.Kind.NAMED_TYPE, - name: { kind: graphql_1.Kind.NAME, value: type.name }, - }; - } -} -exports.astFromType = astFromType; -function printWithReducedWhitespace(ast) { - return graphql_1.print(ast) - .replace(/\s+/g, ' ') - .trim(); -} -exports.printWithReducedWhitespace = printWithReducedWhitespace; -function parseSelections(source) { - return graphql_1.parse(`query { ${source} }`) - .definitions[0].selectionSet.selections; -} -exports.parseSelections = parseSelections; -//# sourceMappingURL=graphql.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.js.map b/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.js.map deleted file mode 100644 index 1a62f27..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/graphql.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/utilities/graphql.ts"],"names":[],"mappings":";;;AAAA,qCAeiB;AAEjB,SAAgB,eAAe,CAAC,IAAe;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACzD,CAAC;AAFD,0CAEC;AAED,SAAgB,qBAAqB,CACnC,SAAY,EACZ,cAAyB;IAEzB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AALD,sDAKC;AAKD,SAAgB,WAAW,CAAC,IAAiB;IAC3C,IAAI,oBAAU,CAAC,IAAI,CAAC,EAAE;QACpB,OAAO,EAAE,IAAI,EAAE,cAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;KACjE;SAAM,IAAI,uBAAa,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,EAAE,IAAI,EAAE,cAAI,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;KACrE;SAAM;QACL,OAAO;YACL,IAAI,EAAE,cAAI,CAAC,UAAU;YACrB,IAAI,EAAE,EAAE,IAAI,EAAE,cAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;SAC5C,CAAC;KACH;AACH,CAAC;AAXD,kCAWC;AAED,SAAgB,0BAA0B,CAAC,GAAY;IACrD,OAAO,eAAK,CAAC,GAAG,CAAC;SACd,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAJD,gEAIC;AAED,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAQ,eAAK,CAAC,WAAW,MAAM,IAAI,CAAC;SACjC,WAAW,CAAC,CAAC,CAA6B,CAAC,YAAY,CAAC,UAAU,CAAC;AACxE,CAAC;AAHD,0CAGC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.d.ts b/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.d.ts deleted file mode 100644 index 99cce8a..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare function isObject(value: any): value is object; -//# sourceMappingURL=predicates.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.d.ts.map b/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.d.ts.map deleted file mode 100644 index f6c46ae..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../src/utilities/predicates.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAOpD"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.js b/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.js deleted file mode 100644 index ba0debf..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isObject = void 0; -function isObject(value) { - return (value !== undefined && - value !== null && - typeof value === 'object' && - !Array.isArray(value)); -} -exports.isObject = isObject; -//# sourceMappingURL=predicates.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.js.map b/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.js.map deleted file mode 100644 index 33689d7..0000000 --- a/gateway/node_modules/@apollo/gateway/dist/utilities/predicates.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../src/utilities/predicates.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,KAAU;IACjC,OAAO,CACL,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CACtB,CAAC;AACJ,CAAC;AAPD,4BAOC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/gateway/package.json b/gateway/node_modules/@apollo/gateway/package.json deleted file mode 100644 index f137347..0000000 --- a/gateway/node_modules/@apollo/gateway/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "@apollo/gateway", - "version": "0.21.1", - "description": "Apollo Gateway", - "author": "Apollo ", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/apollographql/federation.git", - "directory": "gateway-js/" - }, - "keywords": [ - "graphql", - "federation", - "gateway", - "server", - "apollo" - ], - "engines": { - "node": ">=12.13.0 <15.0" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "dependencies": { - "@apollo/federation": "^0.20.4", - "@apollo/query-planner-wasm": "^0.0.7", - "@types/node-fetch": "2.5.4", - "apollo-graphql": "^0.6.0", - "apollo-reporting-protobuf": "^0.6.0", - "apollo-server-caching": "^0.5.2", - "apollo-server-core": "^2.19.0", - "apollo-server-env": "^2.4.5", - "apollo-server-errors": "^2.4.2", - "apollo-server-types": "^0.6.1", - "loglevel": "^1.6.1", - "make-fetch-happen": "^8.0.0", - "pretty-format": "^26.0.0" - }, - "peerDependencies": { - "graphql": "^14.5.0 || ^15.0.0" - }, - "gitHead": "43d3f404e2a30d248f242496b8f6bc38a12c2f87" -} diff --git a/gateway/node_modules/@apollo/gateway/src/QueryPlan.ts b/gateway/node_modules/@apollo/gateway/src/QueryPlan.ts deleted file mode 100644 index 28b37fa..0000000 --- a/gateway/node_modules/@apollo/gateway/src/QueryPlan.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { - FragmentDefinitionNode, - OperationDefinitionNode, - Kind, - SelectionNode as GraphQLJSSelectionNode, -} from 'graphql'; -import prettyFormat from 'pretty-format'; -import { queryPlanSerializer, astSerializer } from './snapshotSerializers'; -import { ComposedGraphQLSchema } from '@apollo/federation'; - -export type ResponsePath = (string | number)[]; - -export type WasmPointer = number; - -type FragmentMap = { [fragmentName: string]: FragmentDefinitionNode }; - -export type OperationContext = { - schema: ComposedGraphQLSchema; - operation: OperationDefinitionNode; - fragments: FragmentMap; - queryPlannerPointer: WasmPointer; - operationString: string; -}; - -export interface QueryPlan { - kind: 'QueryPlan'; - node?: PlanNode; -} - -export type PlanNode = SequenceNode | ParallelNode | FetchNode | FlattenNode; - -export interface SequenceNode { - kind: 'Sequence'; - nodes: PlanNode[]; -} - -export interface ParallelNode { - kind: 'Parallel'; - nodes: PlanNode[]; -} - -export interface FetchNode { - kind: 'Fetch'; - serviceName: string; - variableUsages?: string[]; - requires?: QueryPlanSelectionNode[]; - operation: string; -} - -export interface FlattenNode { - kind: 'Flatten'; - path: ResponsePath; - node: PlanNode; -} - -/** - * SelectionNodes from GraphQL-js _can_ have a FragmentSpreadNode - * but this SelectionNode is specifically typing the `requires` key - * in a built query plan, where there can't be FragmentSpreadNodes - * since that info is contained in the `FetchNode.operation` - */ -export type QueryPlanSelectionNode = QueryPlanFieldNode | QueryPlanInlineFragmentNode; - -export interface QueryPlanFieldNode { - readonly kind: 'Field'; - readonly alias?: string; - readonly name: string; - readonly selections?: QueryPlanSelectionNode[]; -} - -export interface QueryPlanInlineFragmentNode { - readonly kind: 'InlineFragment'; - readonly typeCondition?: string; - readonly selections: QueryPlanSelectionNode[]; -} - -export function serializeQueryPlan(queryPlan: QueryPlan) { - return prettyFormat(queryPlan, { - plugins: [queryPlanSerializer, astSerializer], - }); -} - -export function getResponseName(node: QueryPlanFieldNode): string { - return node.alias ? node.alias : node.name; -} - -/** - * Converts a GraphQL-js SelectionNode to our newly defined SelectionNode - * - * This function is used to remove the unneeded pieces of a SelectionSet's - * `.selections`. It is only ever called on a query plan's `requires` field, - * so we can guarantee there won't be any FragmentSpreads passed in. That's why - * we can ignore the case where `selection.kind === Kind.FRAGMENT_SPREAD` - */ -export const trimSelectionNodes = ( - selections: readonly GraphQLJSSelectionNode[], -): QueryPlanSelectionNode[] => { - /** - * Using an array to push to instead of returning value from `selections.map` - * because TypeScript thinks we can encounter a `Kind.FRAGMENT_SPREAD` here, - * so if we mapped the array directly to the return, we'd have to `return undefined` - * from one branch of the map and then `.filter(Boolean)` on that returned - * array - */ - const remapped: QueryPlanSelectionNode[] = []; - - selections.forEach((selection) => { - if (selection.kind === Kind.FIELD) { - remapped.push({ - kind: Kind.FIELD, - name: selection.name.value, - selections: - selection.selectionSet && - trimSelectionNodes(selection.selectionSet.selections), - }); - } - if (selection.kind === Kind.INLINE_FRAGMENT) { - remapped.push({ - kind: Kind.INLINE_FRAGMENT, - typeCondition: selection.typeCondition?.name.value, - selections: trimSelectionNodes(selection.selectionSet.selections), - }); - } - }); - - return remapped; -}; diff --git a/gateway/node_modules/@apollo/gateway/src/__mocks__/apollo-server-env.ts b/gateway/node_modules/@apollo/gateway/src/__mocks__/apollo-server-env.ts deleted file mode 100644 index 0de1e05..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__mocks__/apollo-server-env.ts +++ /dev/null @@ -1,61 +0,0 @@ -/// - -import { - fetch, - Request, - RequestInit, - Response, - Body, - BodyInit, - Headers, - HeadersInit, - URL, - URLSearchParams, - URLSearchParamsInit, -} from 'apollo-server-env'; - -interface FetchMock extends jest.Mock { - mockResponseOnce(data?: any, headers?: HeadersInit, status?: number): this; - mockJSONResponseOnce(data?: object, headers?: HeadersInit): this; -} - -const mockFetch = jest.fn(fetch) as FetchMock; - -mockFetch.mockResponseOnce = ( - data?: BodyInit, - headers?: Headers, - status: number = 200, -) => { - return mockFetch.mockImplementationOnce(async () => { - return new Response(data, { - status, - headers, - }); - }); -}; - -mockFetch.mockJSONResponseOnce = ( - data = {}, - headers?: Headers, - status?: number, -) => { - return mockFetch.mockResponseOnce( - JSON.stringify(data), - Object.assign({ 'Content-Type': 'application/json' }, headers), - status, - ); -}; - -const env = { - fetch: mockFetch, - Request, - Response, - Body, - Headers, - URL, - URLSearchParams, -}; - -jest.doMock('apollo-server-env', () => env); - -export = env; diff --git a/gateway/node_modules/@apollo/gateway/src/__mocks__/make-fetch-happen-fetcher.ts b/gateway/node_modules/@apollo/gateway/src/__mocks__/make-fetch-happen-fetcher.ts deleted file mode 100644 index 9288e2e..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__mocks__/make-fetch-happen-fetcher.ts +++ /dev/null @@ -1,51 +0,0 @@ -/// - -import { - fetch, - Response, - BodyInit, - Headers, - HeadersInit -} from 'apollo-server-env'; - -import fetcher from 'make-fetch-happen'; - -interface MakeFetchHappenMock extends jest.Mock { - mockResponseOnce(data?: any, headers?: HeadersInit, status?: number): this; - mockJSONResponseOnce(data?: object, headers?: HeadersInit): this; -} - -const mockMakeFetchHappen = jest.fn(fetcher) as MakeFetchHappenMock; - -mockMakeFetchHappen.mockResponseOnce = ( - data?: BodyInit, - headers?: Headers, - status: number = 200, -) => { - return mockMakeFetchHappen.mockImplementationOnce(async () => { - return new Response(data, { - status, - headers, - }); - }); -}; - -mockMakeFetchHappen.mockJSONResponseOnce = ( - data = {}, - headers?: Headers, - status?: number, -) => { - return mockMakeFetchHappen.mockResponseOnce( - JSON.stringify(data), - Object.assign({ 'Content-Type': 'application/json' }, headers), - status, - ); -}; - -const makeFetchMock = { - makeFetchHappenFetcher: mockMakeFetchHappen, -}; - -jest.doMock('make-fetch-happen', () => makeFetchMock); - -export = makeFetchMock; diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/.gitkeep b/gateway/node_modules/@apollo/gateway/src/__tests__/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/CucumberREADME.md b/gateway/node_modules/@apollo/gateway/src/__tests__/CucumberREADME.md deleted file mode 100644 index 25d4dc9..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/CucumberREADME.md +++ /dev/null @@ -1,96 +0,0 @@ -# Query Plan Tests - -## Introduction - -There are two files used to test the query plan builder: - -1. [build-query-plan.feature](./build-query-plan.feature): Programming-language agnostic files written in a format called [Gherkin](https://cucumber.io/docs/gherkin/reference/) for [Cucumber](https://cucumber.io/). -2. [queryPlanCucumber.test.ts](./queryPlanCucumber.test.ts): The implementation which provides coverage for the Gherkin-specified behavior. - -> If you're not familiar with Cucumber or BDD, check out [this video](https://youtu.be/lC0jzd8sGIA) for a great introduction to the concepts involved. Cucumber has test runners in multiple languages, allowing a test spec to be written in plain English and then individual implementations of the test suite can describe how they would like tests to be run for their specific implementation. For Java, Kotlin, Ruby, and JavaScript, Cucumber even has a [10-minute tutorial](https://cucumber.io/docs/guides/10-minute-tutorial/) to help get started. - - -## Scenarios - -_Scenarios_ are Cucumber's test cases. Each scenario should contain the instructions for a single kind of test. - -## Steps - -Cucumber tests (scenarios) are made up of `steps`. Each step can be prefixed with a "`Given`", "`When`", or "`Then`" step, which when all provided, must occur in precisely that order. These stages represent test _preconditions_, test _execution_, and test _expectations_, respectively. However, tests don't _need_ all 3 of steps! Scenarios can leave off the `When` step when it's not needed. For example, query plan builder tests only have the "Given" and "Then" steps, like so: - -```gherkin -Scenario: should not confuse union types with overlapping field names - Given query - """ - query { - body { - ...on Image { - attributes { - url - } - } - ...on Text { - attributes { - bold - text - } - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "documents", - "variableUsages": [], - "operation": "{body{__typename ...on Image{attributes{url}}...on Text{attributes{bold text}}}}" - } - } - """ -``` - -There can be multiple of any kind of step using the `And` keyword. In the following example, there are 2 `Given` steps. One represented by the `Given` keyword itself, and another represented with the `And` keyword. - -``` -Given schema A -And schema extension B -Then composed schema should be ... -``` - -Using `And` is especially useful in `Then` steps for testing multiple kinds of expectations. For example, to create a test that looked at a query plan and expected that it called service A and _didn't_ call service B, the test spec would look like this: - -``` -Given service A, B -When querying - """ - query { a } - """ -Then calls service A -And doesn't call service B -``` - -## Writing test integrations - -Cucumber has a test runner for [many different languages](https://cucumber.io/docs/tools/related-tools/) and test frameworks including Java, Ruby, Rust, and many more. Usually, writing an integration for Cucumber looks similar though. You typically need to write instructions for what to with each kind of step. For example, in the example above where querying a service and expecting things of the query plan, we'd need to define 4 different kind of steps, typically with regex matchers (which are simplified here a bit): - -1. `^service *` -2. `^querying` -3. `^calls *` -4. `^doesn't call *` - -Using regex groups, we can extract whatever data we need from the test instructions. For the first pattern, we can use regex to get the service names we want to compose from the given list, and compose them based off a predetermined set of fixtures. - -Gherkin (the language Cucumber tests are written in) has the idea of [arguments](https://cucumber.io/docs/gherkin/reference/#step-arguments) as well, which is what is used in the second step (the `querying...`) step. The query `query { a }` is referred to as an argument to that step, and each cucumber runner has a way of handling arguments, usually as an argument to the handling function. - -In JavaScript, writing a function to handle the `querying` step would look something like this: - -```JavaScript -when(/^querying$/im, (operation) => { - result = execute(services, { query: gql(operation) }); -}); -``` - -It's common in Cucumber execution to keep arguments, variables, and other data globally available to each step. This is either done by a variable scoped above the execution of the steps like in the JavaScript example above or as a mutable "context" passed to each step executor function. This just depends on the language you're working with. The reason this pattern is used is that all steps often need similar data. For example, the `querying` step we defined above needs to know what services are being composed from the `Given` step above to actually execute the operation, and the `Then` steps to follow need to access the execution's result data. diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/build-query-plan-fragmentization.feature b/gateway/node_modules/@apollo/gateway/src/__tests__/build-query-plan-fragmentization.feature deleted file mode 100644 index 5cd58be..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/build-query-plan-fragmentization.feature +++ /dev/null @@ -1,282 +0,0 @@ -Feature: Build Query Plan > Auto-fragmentization - -Scenario: experimental compression to downstream services should generate fragments internally to downstream requests - Given query - """ - query { - topReviews { - body - author - product { - name - price - details { - country - } - } - } - } - """ - When using autofragmentization - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{topReviews{...__QueryPlanFragment_1__}}fragment __QueryPlanFragment_1__ on Review{body author product{...__QueryPlanFragment_0__}}fragment __QueryPlanFragment_0__ on Product{__typename ...on Book{__typename isbn}...on Furniture{__typename upc}}" - }, - { - "kind": "Parallel", - "nodes": [ - { - "kind": "Sequence", - "nodes": [ - { - "kind": "Flatten", - "path": ["topReviews", "@", "product"], - "node": { - "kind": "Fetch", - "serviceName": "books", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{__typename isbn title year}}}" - } - }, - { - "kind": "Flatten", - "path": ["topReviews", "@", "product"], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" }, - { "kind": "Field", "name": "title" }, - { "kind": "Field", "name": "year" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{name}}}" - } - } - ] - }, - { - "kind": "Flatten", - "path": ["topReviews", "@", "product"], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Furniture", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "upc" } - ] - }, - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Furniture{name price details{country}}...on Book{price details{country}}}}" - } - } - ] - } - ] - } - } - """ - -Scenario: experimental compression to downstream services shouldn't generate fragments for selection sets of length 2 or less - Given query - """ - query { - topReviews { - body - author - } - } - """ - When using autofragmentization - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{topReviews{body author}}" - } - } - """ - -Scenario: experimental compression to downstream services should generate fragments for selection sets of length 3 or greater - Given query - """ - query { - topReviews { - id - body - author - } - } - """ - When using autofragmentization - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{topReviews{...__QueryPlanFragment_0__}}fragment __QueryPlanFragment_0__ on Review{id body author}" - } - } - """ - -Scenario: experimental compression to downstream services should generate fragments correctly when aliases are used - Given query - """ - query { - reviews: topReviews { - content: body - author - product { - name - cost: price - details { - origin: country - } - } - } - } - """ - When using autofragmentization - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{reviews:topReviews{...__QueryPlanFragment_1__}}fragment __QueryPlanFragment_1__ on Review{content:body author product{...__QueryPlanFragment_0__}}fragment __QueryPlanFragment_0__ on Product{__typename ...on Book{__typename isbn}...on Furniture{__typename upc}}" - }, - { - "kind": "Parallel", - "nodes": [ - { - "kind": "Sequence", - "nodes": [ - { - "kind": "Flatten", - "path": ["reviews", "@", "product"], - "node": { - "kind": "Fetch", - "serviceName": "books", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{__typename isbn title year}}}" - } - }, - { - "kind": "Flatten", - "path": ["reviews", "@", "product"], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" }, - { "kind": "Field", "name": "title" }, - { "kind": "Field", "name": "year" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{name}}}" - } - } - ] - }, - { - "kind": "Flatten", - "path": ["reviews", "@", "product"], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Furniture", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "upc" } - ] - }, - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Furniture{name cost:price details{origin:country}}...on Book{cost:price details{origin:country}}}}" - } - } - ] - } - ] - } - } - """ diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/build-query-plan.feature b/gateway/node_modules/@apollo/gateway/src/__tests__/build-query-plan.feature deleted file mode 100644 index 41e2aa8..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/build-query-plan.feature +++ /dev/null @@ -1,1393 +0,0 @@ -Feature: Build Query Plan - -Scenario: should not confuse union types with overlapping field names - Given query - """ - query { - body { - ...on Image { - attributes { - url - } - } - ...on Text { - attributes { - bold - text - } - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "documents", - "variableUsages": [], - "operation": "{body{__typename ...on Image{attributes{url}}...on Text{attributes{bold text}}}}" - } - } - """ - -Scenario: should use a single fetch when requesting a root field from one service - Given query - """ - query { - me { - name - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [], - "operation": "{me{name}}" - } - } - """ - -Scenario: should use two independent fetches when requesting root fields from two services - Given query - """ - query { - me { - name - } - topProducts { - name - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Parallel", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [], - "operation": "{me{name}}" - }, - { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "product", - "variableUsages": [], - "operation": "{topProducts{__typename ...on Book{__typename isbn}...on Furniture{name}}}" - }, - { - "kind": "Flatten", - "path": ["topProducts", "@"], - "node": { - "kind": "Fetch", - "serviceName": "books", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{__typename isbn title year}}}" - } - }, - { - "kind": "Flatten", - "path": ["topProducts", "@"], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" }, - { "kind": "Field", "name": "title" }, - { "kind": "Field", "name": "year" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{name}}}" - } - } - ] - } - ] - } - } - """ - -Scenario: should use a single fetch when requesting multiple root fields from the same service - Given query - """ - query { - topProducts { - name - } - product(upc: "1") { - name - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "product", - "variableUsages": [], - "operation": "{topProducts{__typename ...on Book{__typename isbn}...on Furniture{name}}product(upc:\"1\"){__typename ...on Book{__typename isbn}...on Furniture{name}}}" - }, - { - "kind": "Parallel", - "nodes": [ - { - "kind": "Sequence", - "nodes": [ - { - "kind": "Flatten", - "path": ["topProducts", "@"], - "node": { - "kind": "Fetch", - "serviceName": "books", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{__typename isbn title year}}}" - } - }, - { - "kind": "Flatten", - "path": ["topProducts", "@"], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" }, - { "kind": "Field", "name": "title" }, - { "kind": "Field", "name": "year" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{name}}}" - } - } - ] - }, - { - "kind": "Sequence", - "nodes": [ - { - "kind": "Flatten", - "path": ["product"], - "node": { - "kind": "Fetch", - "serviceName": "books", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{__typename isbn title year}}}" - } - }, - { - "kind": "Flatten", - "path": ["product"], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" }, - { "kind": "Field", "name": "title" }, - { "kind": "Field", "name": "year" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{name}}}" - } - } - ] - } - ] - } - ] - } - } - """ - -Scenario: should use a single fetch when requesting relationship subfields from the same service - Given query - """ - query { - topReviews { - body - author { - reviews { - body - } - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{topReviews{body author{reviews{body}}}}" - } - } - """ - -Scenario: should use a single fetch when requesting relationship subfields and provided keys from the same service - Given query - """ - query { - topReviews { - body - author { - id - reviews { - body - } - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{topReviews{body author{id reviews{body}}}}" - } - } - """ - -Scenario: when requesting an extension field from another service, it should add the field's representation requirements to the parent selection set and use a dependent fetch - Given query - """ - query { - me { - name - reviews { - body - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [], - "operation": "{me{name __typename id}}" - }, - { - "kind": "Flatten", - "path": ["me"], - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "id" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{reviews{body}}}}" - } - } - ] - } - } - """ - -Scenario: when requesting an extension field from another service, when the parent selection set is empty, should add the field's requirements to the parent selection set and use a dependent fetch - Given query - """ - query { - me { - reviews { - body - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [], - "operation": "{me{__typename id}}" - }, - { - "kind": "Flatten", - "path": ["me"], - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "id" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{reviews{body}}}}" - } - } - ] - } - } - """ - -Scenario: when requesting an extension field from another service, should only add requirements once - Given query - """ - query { - me { - reviews { - body - } - numberOfReviews - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [], - "operation": "{me{__typename id}}" - }, - { - "kind": "Flatten", - "path": ["me"], - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "id" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{reviews{body}numberOfReviews}}}" - } - } - ] - } - } - """ - -Scenario: when requesting a composite field with subfields from another service, it should add key fields to the parent selection set and use a dependent fetch - Given query - """ - query { - topReviews { - body - author { - name - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{topReviews{body author{__typename id}}}" - }, - { - "kind": "Flatten", - "path": ["topReviews", "@", "author"], - "node": { - "kind": "Fetch", - "serviceName": "accounts", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "id" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{name}}}" - } - } - ] - } - } - """ - -Scenario: when requesting a composite field with subfields from another service, when requesting a field defined in another service which requires a field in the base service, it should add the field provided by base service in first Fetch - Given query - """ - query { - topCars { - retailPrice - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "product", - "variableUsages": [], - "operation": "{topCars{__typename id price}}" - }, - { - "kind": "Flatten", - "path": ["topCars", "@"], - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Car", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "id" }, - { "kind": "Field", "name": "price" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Car{retailPrice}}}" - } - } - ] - } - } - """ - -Scenario: when requesting a composite field with subfields from another service, when the parent selection set is empty, it should add key fields to the parent selection set and use a dependent fetch - Given query - """ - query { - topReviews { - author { - name - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{topReviews{author{__typename id}}}" - }, - { - "kind": "Flatten", - "path": ["topReviews", "@", "author"], - "node": { - "kind": "Fetch", - "serviceName": "accounts", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "id" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{name}}}" - } - } - ] - } - } - """ - -Scenario: when requesting a relationship field with extension subfields from a different service, it should first fetch the object using a key from the base service and then pass through the requirements - Given query - """ - query { - topReviews { - author { - birthDate - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [], - "operation": "{topReviews{author{__typename id}}}" - }, - { - "kind": "Flatten", - "path": ["topReviews", "@", "author"], - "node": { - "kind": "Fetch", - "serviceName": "accounts", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "id" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{birthDate}}}" - } - } - ] - } - } - """ - -Scenario: for abstract types, it should add __typename when fetching objects of an interface type from a service - Given query - """ - query { - topProducts { - price - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "product", - "variableUsages": [], - "operation": "{topProducts{__typename ...on Book{price}...on Furniture{price}}}" - } - } - """ - -Scenario: should break up when traversing an extension field on an interface type from a service - Given query - """ - query { - topProducts { - price - reviews { - body - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "product", - "variableUsages": [], - "operation": "{topProducts{__typename ...on Book{price __typename isbn}...on Furniture{price __typename upc}}}" - }, - { - "kind": "Flatten", - "path": ["topProducts", "@"], - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" } - ] - }, - { - "kind": "InlineFragment", - "typeCondition": "Furniture", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "upc" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{reviews{body}}...on Furniture{reviews{body}}}}" - } - } - ] - } - } - """ - -Scenario: interface fragments should expand into possible types only - Given query - """ - query { - books { - ... on Product { - name - ... on Furniture { - upc - } - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "books", - "variableUsages": [], - "operation": "{books{__typename isbn title year}}" - }, - { - "kind": "Flatten", - "path": ["books", "@"], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { "kind": "Field", "name": "__typename" }, - { "kind": "Field", "name": "isbn" }, - { "kind": "Field", "name": "title" }, - { "kind": "Field", "name": "year" } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{name}}}" - } - } - ] - } - } - """ - -Scenario: interface inside interface should expand into possible types only - Given query - """ - query { - product(upc: "") { - details { - country - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "product", - "variableUsages": [], - "operation": "{product(upc:\"\"){__typename ...on Book{details{country}}...on Furniture{details{country}}}}" - } - } - """ - -Scenario: should properly expand nested unions with inline fragments - Given query - """ - query { - body { - ... on Image { - ... on Body { - ... on Image { - attributes { - url - } - } - ... on Text { - attributes { - bold - text - } - } - } - } - ... on Text { - attributes { - bold - } - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "documents", - "variableUsages": [], - "operation": "{body{__typename ...on Image{attributes{url}}...on Text{attributes{bold}}}}" - } - } - """ - -Scenario: deduplicates fields / selections regardless of adjacency and type condition nesting for inline fragments - Given query - """ - query { - body { - ... on Image { - ... on Text { - attributes { - bold - } - } - } - ... on Body { - ... on Text { - attributes { - bold - text - } - } - } - ... on Text { - attributes { - bold - text - } - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "documents", - "variableUsages": [], - "operation": "{body{__typename ...on Text{attributes{bold text}}}}" - } - } - """ - -Scenario: deduplicates fields / selections regardless of adjacency and type condition nesting for named fragment spreads - Given query - """ - fragment TextFragment on Text { - attributes { - bold - text - } - } - - query { - body { - ... on Image { - ...TextFragment - } - ... on Body { - ...TextFragment - } - ...TextFragment - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "documents", - "variableUsages": [], - "operation": "{body{__typename ...on Text{attributes{bold text}}}}" - } - } - """ - -Scenario: supports basic, single-service mutation - Given query - """ - mutation Login($username: String!, $password: String!) { - login(username: $username, password: $password) { - id - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [ - "username", - "password" - ], - "operation": "mutation($username:String!$password:String!){login(username:$username password:$password){id}}" - } - } - """ - -# ported from: https://github.com/apollographql/apollo-server/blob/main/packages/apollo-gateway/src/__tests__/integration/mutations.test.ts#L13 -Scenario: supports mutations with a cross-service request - Given query - """ - mutation Login($username: String!, $password: String!) { - login(username: $username, password: $password) { - reviews { - product { - upc - } - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [ - "username", - "password" - ], - "operation": "mutation($username:String!$password:String!){login(username:$username password:$password){__typename id}}" - }, - { - "kind": "Flatten", - "path": [ - "login" - ], - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { - "kind": "Field", - "name": "__typename" - }, - { - "kind": "Field", - "name": "id" - } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{reviews{product{__typename ...on Book{__typename isbn}...on Furniture{upc}}}}}}" - } - }, - { - "kind": "Flatten", - "path": [ - "login", - "reviews", - "@", - "product" - ], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { - "kind": "Field", - "name": "__typename" - }, - { - "kind": "Field", - "name": "isbn" - } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{upc}}}" - } - } - ] - } - } - """ - -# ported from: https://github.com/apollographql/apollo-server/blob/main/packages/apollo-gateway/src/__tests__/integration/mutations.test.ts#L48 -Scenario: returning across service boundaries - Given query - """ - mutation Review($upc: String!, $body: String!) { - reviewProduct(upc: $upc, body: $body) { - ... on Furniture { - name - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [ - "upc", - "body" - ], - "operation": "mutation($upc:String!$body:String!){reviewProduct(upc:$upc body:$body){__typename ...on Furniture{__typename upc}}}" - }, - { - "kind": "Flatten", - "path": [ - "reviewProduct" - ], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Furniture", - "selections": [ - { - "kind": "Field", - "name": "__typename" - }, - { - "kind": "Field", - "name": "upc" - } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Furniture{name}}}" - } - } - ] - } - } - """ - -# ported from: https://github.com/apollographql/apollo-server/blob/main/packages/apollo-gateway/src/__tests__/integration/mutations.test.ts#L75 -Scenario: supports multiple root mutations - Given query - """ - mutation LoginAndReview( - $username: String! - $password: String! - $upc: String! - $body: String! - ) { - login(username: $username, password: $password) { - reviews { - product { - upc - } - } - } - reviewProduct(upc: $upc, body: $body) { - ... on Furniture { - name - } - } - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [ - "username", - "password" - ], - "operation": "mutation($username:String!$password:String!){login(username:$username password:$password){__typename id}}" - }, - { - "kind": "Flatten", - "path": [ - "login" - ], - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { - "kind": "Field", - "name": "__typename" - }, - { - "kind": "Field", - "name": "id" - } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{reviews{product{__typename ...on Book{__typename isbn}...on Furniture{upc}}}}}}" - } - }, - { - "kind": "Flatten", - "path": [ - "login", - "reviews", - "@", - "product" - ], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { - "kind": "Field", - "name": "__typename" - }, - { - "kind": "Field", - "name": "isbn" - } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{upc}}}" - } - }, - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [ - "upc", - "body" - ], - "operation": "mutation($upc:String!$body:String!){reviewProduct(upc:$upc body:$body){__typename ...on Furniture{__typename upc}}}" - }, - { - "kind": "Flatten", - "path": [ - "reviewProduct" - ], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Furniture", - "selections": [ - { - "kind": "Field", - "name": "__typename" - }, - { - "kind": "Field", - "name": "upc" - } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Furniture{name}}}" - } - } - ] - } - } - """ - -# ported from: https://github.com/apollographql/apollo-server/blob/main/packages/apollo-gateway/src/__tests__/integration/mutations.test.ts#L136 -Scenario: multiple root mutations with correct service order - Given query - """ - mutation LoginAndReview( - $upc: String! - $body: String! - $updatedReview: UpdateReviewInput! - $username: String! - $password: String! - $reviewId: ID! - ) { - reviewProduct(upc: $upc, body: $body) { - ... on Furniture { - upc - } - } - updateReview(review: $updatedReview) { - id - body - } - login(username: $username, password: $password) { - reviews { - product { - upc - } - } - } - deleteReview(id: $reviewId) - } - """ - Then query plan - """ - { - "kind": "QueryPlan", - "node": { - "kind": "Sequence", - "nodes": [ - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [ - "upc", - "body", - "updatedReview" - ], - "operation": "mutation($upc:String!$body:String!$updatedReview:UpdateReviewInput!){reviewProduct(upc:$upc body:$body){__typename ...on Furniture{upc}}updateReview(review:$updatedReview){id body}}" - }, - { - "kind": "Fetch", - "serviceName": "accounts", - "variableUsages": [ - "username", - "password" - ], - "operation": "mutation($username:String!$password:String!){login(username:$username password:$password){__typename id}}" - }, - { - "kind": "Flatten", - "path": [ - "login" - ], - "node": { - "kind": "Fetch", - "serviceName": "reviews", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "User", - "selections": [ - { - "kind": "Field", - "name": "__typename" - }, - { - "kind": "Field", - "name": "id" - } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on User{reviews{product{__typename ...on Book{__typename isbn}...on Furniture{upc}}}}}}" - } - }, - { - "kind": "Flatten", - "path": [ - "login", - "reviews", - "@", - "product" - ], - "node": { - "kind": "Fetch", - "serviceName": "product", - "requires": [ - { - "kind": "InlineFragment", - "typeCondition": "Book", - "selections": [ - { - "kind": "Field", - "name": "__typename" - }, - { - "kind": "Field", - "name": "isbn" - } - ] - } - ], - "variableUsages": [], - "operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{upc}}}" - } - }, - { - "kind": "Fetch", - "serviceName": "reviews", - "variableUsages": [ - "reviewId" - ], - "operation": "mutation($reviewId:ID!){deleteReview(id:$reviewId)}" - } - ] - } - } - """ diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/buildQueryPlan.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/buildQueryPlan.test.ts deleted file mode 100644 index 7e52e6f..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/buildQueryPlan.test.ts +++ /dev/null @@ -1,1557 +0,0 @@ -import { GraphQLError } from 'graphql'; -import gql from 'graphql-tag'; -import { buildQueryPlan, buildOperationContext } from '../buildQueryPlan'; -import { astSerializer, queryPlanSerializer } from '../snapshotSerializers'; -import { getFederatedTestingSchema } from './execution-utils'; -import { ComposedGraphQLSchema } from '@apollo/federation'; -import { WasmPointer } from '../QueryPlan'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -describe('buildQueryPlan', () => { - let schema: ComposedGraphQLSchema; - let errors: GraphQLError[]; - let queryPlannerPointer: WasmPointer; - - beforeEach(() => { - ({ schema, errors, queryPlannerPointer } = getFederatedTestingSchema()); - expect(errors).toHaveLength(0); - }); - - it(`should not confuse union types with overlapping field names`, () => { - const operationString = `#graphql - query { - body { - ... on Image { - attributes { - url - } - } - ... on Text { - attributes { - bold - text - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }), - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "documents") { - { - body { - __typename - ... on Image { - attributes { - url - } - } - ... on Text { - attributes { - bold - text - } - } - } - } - }, - } - `); - }); - - it(`should use a single fetch when requesting a root field from one service`, () => { - const operationString = `#graphql - query { - me { - name - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "accounts") { - { - me { - name - } - } - }, - } - `); - }); - - it(`should use two independent fetches when requesting root fields from two services`, () => { - const operationString = `#graphql - query { - me { - name - } - topProducts { - name - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Parallel { - Fetch(service: "accounts") { - { - me { - name - } - } - }, - Sequence { - Fetch(service: "product") { - { - topProducts { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - name - } - } - } - }, - Flatten(path: "topProducts.@") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - __typename - isbn - title - year - } - } - }, - }, - Flatten(path: "topProducts.@") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - title - year - } - } => - { - ... on Book { - name - } - } - }, - }, - }, - }, - } - `); - }); - - it(`should use a single fetch when requesting multiple root fields from the same service`, () => { - const operationString = `#graphql - query { - topProducts { - name - } - product(upc: "1") { - name - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - topProducts { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - name - } - } - product(upc: "1") { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - name - } - } - } - }, - Parallel { - Sequence { - Flatten(path: "topProducts.@") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - __typename - isbn - title - year - } - } - }, - }, - Flatten(path: "topProducts.@") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - title - year - } - } => - { - ... on Book { - name - } - } - }, - }, - }, - Sequence { - Flatten(path: "product") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - __typename - isbn - title - year - } - } - }, - }, - Flatten(path: "product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - title - year - } - } => - { - ... on Book { - name - } - } - }, - }, - }, - }, - }, - } - `); - }); - - it(`should use a single fetch when requesting relationship subfields from the same service`, () => { - const operationString = `#graphql - query { - topReviews { - body - author { - reviews { - body - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "reviews") { - { - topReviews { - body - author { - reviews { - body - } - } - } - } - }, - } - `); - }); - - it(`should use a single fetch when requesting relationship subfields and provided keys from the same service`, () => { - const operationString = `#graphql - query { - topReviews { - body - author { - id - reviews { - body - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "reviews") { - { - topReviews { - body - author { - id - reviews { - body - } - } - } - } - }, - } - `); - }); - - describe(`when requesting an extension field from another service`, () => { - it(`should add the field's representation requirements to the parent selection set and use a dependent fetch`, () => { - const operationString = `#graphql - query { - me { - name - reviews { - body - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "accounts") { - { - me { - name - __typename - id - } - } - }, - Flatten(path: "me") { - Fetch(service: "reviews") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - reviews { - body - } - } - } - }, - }, - }, - } - `); - }); - - describe(`when the parent selection set is empty`, () => { - it(`should add the field's requirements to the parent selection set and use a dependent fetch`, () => { - const operationString = `#graphql - query { - me { - reviews { - body - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "accounts") { - { - me { - __typename - id - } - } - }, - Flatten(path: "me") { - Fetch(service: "reviews") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - reviews { - body - } - } - } - }, - }, - }, - } - `); - }); - }); - - // TODO: Ask martijn about the meaning of this test - it(`should only add requirements once`, () => { - const operationString = `#graphql - query { - me { - reviews { - body - } - numberOfReviews - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "accounts") { - { - me { - __typename - id - } - } - }, - Flatten(path: "me") { - Fetch(service: "reviews") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - reviews { - body - } - numberOfReviews - } - } - }, - }, - }, - } - `); - }); - }); - - describe(`when requesting a composite field with subfields from another service`, () => { - it(`should add key fields to the parent selection set and use a dependent fetch`, () => { - const operationString = `#graphql - query { - topReviews { - body - author { - name - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "reviews") { - { - topReviews { - body - author { - __typename - id - } - } - } - }, - Flatten(path: "topReviews.@.author") { - Fetch(service: "accounts") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - name - } - } - }, - }, - }, - } - `); - }); - - describe(`when requesting a field defined in another service which requires a field in the base service`, () => { - it(`should add the field provided by base service in first Fetch`, () => { - const operationString = `#graphql - query { - topCars { - retailPrice - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - topCars { - __typename - id - price - } - } - }, - Flatten(path: "topCars.@") { - Fetch(service: "reviews") { - { - ... on Car { - __typename - id - price - } - } => - { - ... on Car { - retailPrice - } - } - }, - }, - }, - } - `); - }); - }); - - describe(`when the parent selection set is empty`, () => { - it(`should add key fields to the parent selection set and use a dependent fetch`, () => { - const operationString = `#graphql - query { - topReviews { - author { - name - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "reviews") { - { - topReviews { - author { - __typename - id - } - } - } - }, - Flatten(path: "topReviews.@.author") { - Fetch(service: "accounts") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - name - } - } - }, - }, - }, - } - `); - }); - }); - }); - describe(`when requesting a relationship field with extension subfields from a different service`, () => { - it(`should first fetch the object using a key from the base service and then pass through the requirements`, () => { - const operationString = `#graphql - query { - topReviews { - author { - birthDate - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "reviews") { - { - topReviews { - author { - __typename - id - } - } - } - }, - Flatten(path: "topReviews.@.author") { - Fetch(service: "accounts") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - birthDate - } - } - }, - }, - }, - } - `); - }); - }); - - describe(`for abstract types`, () => { - // GraphQLError: Cannot query field "isbn" on type "Book" - // Probably an issue with extending / interfaces in composition. None of the fields from the base Book type - // are showing up in the resulting schema. - it(`should add __typename when fetching objects of an interface type from a service`, () => { - const operationString = `#graphql - query { - topProducts { - price - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "product") { - { - topProducts { - __typename - ... on Book { - price - } - ... on Furniture { - price - } - } - } - }, - } - `); - }); - }); - - // GraphQLError: Cannot query field "isbn" on type "Book" - // Probably an issue with extending / interfaces in composition. None of the fields from the base Book type - // are showing up in the resulting schema. - it(`should break up when traversing an extension field on an interface type from a service`, () => { - const operationString = `#graphql - query { - topProducts { - price - reviews { - body - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - topProducts { - __typename - ... on Book { - price - __typename - isbn - } - ... on Furniture { - price - __typename - upc - } - } - } - }, - Flatten(path: "topProducts.@") { - Fetch(service: "reviews") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } => - { - ... on Book { - reviews { - body - } - } - ... on Furniture { - reviews { - body - } - } - } - }, - }, - }, - } - `); - }); - - it(`interface fragments should expand into possible types only`, () => { - const operationString = `#graphql - query { - books { - ... on Product { - name - ... on Furniture { - upc - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "books") { - { - books { - __typename - isbn - title - year - } - } - }, - Flatten(path: "books.@") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - title - year - } - } => - { - ... on Book { - name - } - } - }, - }, - }, - } - `); - }); - - it(`interface inside interface should expand into possible types only`, () => { - const operationString = `#graphql - query { - product(upc: "") { - details { - country - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "product") { - { - product(upc: "") { - __typename - ... on Book { - details { - country - } - } - ... on Furniture { - details { - country - } - } - } - } - }, - } - `); - }); - - describe(`experimental compression to downstream services`, () => { - it(`should generate fragments internally to downstream requests`, () => { - const operationString = `#graphql - query { - topReviews { - body - author - product { - name - price - details { - country - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }), - { autoFragmentization: true }, - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "reviews") { - { - topReviews { - ...__QueryPlanFragment_1__ - } - } - fragment __QueryPlanFragment_0__ on Product { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } - fragment __QueryPlanFragment_1__ on Review { - body - author - product { - ...__QueryPlanFragment_0__ - } - } - }, - Parallel { - Sequence { - Flatten(path: "topReviews.@.product") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - __typename - isbn - title - year - } - } - }, - }, - Flatten(path: "topReviews.@.product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - title - year - } - } => - { - ... on Book { - name - } - } - }, - }, - }, - Flatten(path: "topReviews.@.product") { - Fetch(service: "product") { - { - ... on Furniture { - __typename - upc - } - ... on Book { - __typename - isbn - } - } => - { - ... on Furniture { - name - price - details { - country - } - } - ... on Book { - price - details { - country - } - } - } - }, - }, - }, - }, - } - `); - }); - - it(`shouldn't generate fragments for selection sets of length 2 or less`, () => { - const operationString = `#graphql - query { - topReviews { - body - author - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }), - { autoFragmentization: true }, - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "reviews") { - { - topReviews { - body - author - } - } - }, - } - `); - }); - - it(`should generate fragments for selection sets of length 3 or greater`, () => { - const operationString = `#graphql - query { - topReviews { - id - body - author - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }), - { autoFragmentization: true }, - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "reviews") { - { - topReviews { - ...__QueryPlanFragment_0__ - } - } - fragment __QueryPlanFragment_0__ on Review { - id - body - author - } - }, - } - `); - }); - - it(`should generate fragments correctly when aliases are used`, () => { - const operationString = `#graphql - query { - reviews: topReviews { - content: body - author - product { - name - cost: price - details { - origin: country - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }), - { autoFragmentization: true }, - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "reviews") { - { - reviews: topReviews { - ...__QueryPlanFragment_1__ - } - } - fragment __QueryPlanFragment_0__ on Product { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } - fragment __QueryPlanFragment_1__ on Review { - content: body - author - product { - ...__QueryPlanFragment_0__ - } - } - }, - Parallel { - Sequence { - Flatten(path: "reviews.@.product") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - __typename - isbn - title - year - } - } - }, - }, - Flatten(path: "reviews.@.product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - title - year - } - } => - { - ... on Book { - name - } - } - }, - }, - }, - Flatten(path: "reviews.@.product") { - Fetch(service: "product") { - { - ... on Furniture { - __typename - upc - } - ... on Book { - __typename - isbn - } - } => - { - ... on Furniture { - name - cost: price - details { - origin: country - } - } - ... on Book { - cost: price - details { - origin: country - } - } - } - }, - }, - }, - }, - } - `); - }); - }); - - it(`should properly expand nested unions with inline fragments`, () => { - const operationString = `#graphql - query { - body { - ... on Image { - ... on Body { - ... on Image { - attributes { - url - } - } - ... on Text { - attributes { - bold - text - } - } - } - } - ... on Text { - attributes { - bold - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "documents") { - { - body { - __typename - ... on Image { - attributes { - url - } - } - ... on Text { - attributes { - bold - } - } - } - } - }, - } - `); - }); - - describe('deduplicates fields / selections regardless of adjacency and type condition nesting', () => { - it('for inline fragments', () => { - const operationString = `#graphql - query { - body { - ... on Image { - ... on Text { - attributes { - bold - } - } - } - ... on Body { - ... on Text { - attributes { - bold - text - } - } - } - ... on Text { - attributes { - bold - text - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "documents") { - { - body { - __typename - ... on Text { - attributes { - bold - text - } - } - } - } - }, - } - `); - }); - - it('for named fragment spreads', () => { - const operationString = `#graphql - fragment TextFragment on Text { - attributes { - bold - text - } - } - - query { - body { - ... on Image { - ...TextFragment - } - ... on Body { - ...TextFragment - } - ...TextFragment - } - } - `; - - const operationDocument = gql(operationString); - - const queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }) - ); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "documents") { - { - body { - __typename - ... on Text { - attributes { - bold - text - } - } - } - } - }, - } - `); - }); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/executeQueryPlan.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/executeQueryPlan.test.ts deleted file mode 100644 index 600b635..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/executeQueryPlan.test.ts +++ /dev/null @@ -1,831 +0,0 @@ -import { GraphQLError, getIntrospectionQuery } from 'graphql'; -import { addResolversToSchema, GraphQLResolverMap } from 'apollo-graphql'; -import gql from 'graphql-tag'; -import { GraphQLRequestContext } from 'apollo-server-types'; -import { AuthenticationError } from 'apollo-server-core'; -import { ComposedGraphQLSchema } from '@apollo/federation'; -import { buildQueryPlan, buildOperationContext } from '../buildQueryPlan'; -import { executeQueryPlan } from '../executeQueryPlan'; -import { LocalGraphQLDataSource } from '../datasources/LocalGraphQLDataSource'; -import { astSerializer, queryPlanSerializer } from '../snapshotSerializers'; -import { getFederatedTestingSchema } from './execution-utils'; -import { WasmPointer } from '../QueryPlan'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -describe('executeQueryPlan', () => { - let serviceMap: { - [serviceName: string]: LocalGraphQLDataSource; - }; - - function overrideResolversInService( - serviceName: string, - resolvers: GraphQLResolverMap, - ) { - addResolversToSchema(serviceMap[serviceName].schema, resolvers); - } - - let schema: ComposedGraphQLSchema; - let errors: GraphQLError[]; - let queryPlannerPointer: WasmPointer; - - beforeEach(() => { - ({ serviceMap, schema, errors, queryPlannerPointer } = getFederatedTestingSchema()); - expect(errors).toHaveLength(0); - }); - - function buildRequestContext(): GraphQLRequestContext { - return { - cache: undefined as any, - context: {}, - request: { - variables: {}, - }, - } as GraphQLRequestContext; - } - - describe(`errors`, () => { - it(`should not include an empty "errors" array when no errors were encountered`, async () => { - const operationString = `#graphql - query { - me { - name { - first - last - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response).not.toHaveProperty('errors'); - }); - - it(`should include an error when a root-level field errors out`, async () => { - overrideResolversInService('accounts', { - RootQuery: { - me() { - throw new AuthenticationError('Something went wrong'); - }, - }, - }); - - const operationString = `#graphql - query { - me { - name { - first - last - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response).toHaveProperty('data.me', null); - expect(response).toHaveProperty( - 'errors.0.message', - 'Something went wrong', - ); - expect(response).toHaveProperty( - 'errors.0.extensions.code', - 'UNAUTHENTICATED', - ); - expect(response).toHaveProperty( - 'errors.0.extensions.serviceName', - 'accounts', - ); - expect(response).toHaveProperty( - 'errors.0.extensions.query', - '{me{name{first last}}}', - ); - expect(response).toHaveProperty('errors.0.extensions.variables', {}); - }); - - it(`should still include other root-level results if one root-level field errors out`, async () => { - overrideResolversInService('accounts', { - RootQuery: { - me() { - throw new Error('Something went wrong'); - }, - }, - }); - - const operationString = `#graphql - query { - me { - name { - first - last - } - } - topReviews { - body - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response).toHaveProperty('data.me', null); - expect(response).toHaveProperty('data.topReviews', expect.any(Array)); - }); - - it(`should still include data from other services if one services is unavailable`, async () => { - delete serviceMap.accounts; - - const operationString = `#graphql - query { - me { - name { - first - last - } - } - topReviews { - body - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response).toHaveProperty('data.me', null); - expect(response).toHaveProperty('data.topReviews', expect.any(Array)); - }); - }); - - it(`should only return fields that have been requested directly`, async () => { - const operationString = `#graphql - query { - topReviews { - body - author { - name { - first - last - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "topReviews": Array [ - Object { - "author": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "body": "Love it!", - }, - Object { - "author": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "body": "Too expensive.", - }, - Object { - "author": Object { - "name": Object { - "first": "Alan", - "last": "Turing", - }, - }, - "body": "Could be better.", - }, - Object { - "author": Object { - "name": Object { - "first": "Alan", - "last": "Turing", - }, - }, - "body": "Prefer something else.", - }, - Object { - "author": Object { - "name": Object { - "first": "Alan", - "last": "Turing", - }, - }, - "body": "Wish I had read this before.", - }, - ], - } - `); - }); - - it('should not duplicate variable definitions', async () => { - const operationString = `#graphql - query Test($first: Int!) { - first: topReviews(first: $first) { - body - author { - name { - first - last - } - } - } - second: topReviews(first: $first) { - body - author { - name { - first - last - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const requestContext = buildRequestContext(); - requestContext.request.variables = { first: 3 }; - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - requestContext, - operationContext, - ); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "first": Array [ - Object { - "author": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "body": "Love it!", - }, - Object { - "author": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "body": "Too expensive.", - }, - Object { - "author": Object { - "name": Object { - "first": "Alan", - "last": "Turing", - }, - }, - "body": "Could be better.", - }, - ], - "second": Array [ - Object { - "author": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "body": "Love it!", - }, - Object { - "author": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "body": "Too expensive.", - }, - Object { - "author": Object { - "name": Object { - "first": "Alan", - "last": "Turing", - }, - }, - "body": "Could be better.", - }, - ], - } - `); - }); - - it('should include variables in non-root requests', async () => { - const operationString = `#graphql - query Test($locale: String) { - topReviews { - body - author { - name { - first - last - } - birthDate(locale: $locale) - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const requestContext = buildRequestContext(); - requestContext.request.variables = { locale: 'en-US' }; - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - requestContext, - operationContext, - ); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "topReviews": Array [ - Object { - "author": Object { - "birthDate": "12/10/1815", - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "body": "Love it!", - }, - Object { - "author": Object { - "birthDate": "12/10/1815", - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "body": "Too expensive.", - }, - Object { - "author": Object { - "birthDate": "6/23/1912", - "name": Object { - "first": "Alan", - "last": "Turing", - }, - }, - "body": "Could be better.", - }, - Object { - "author": Object { - "birthDate": "6/23/1912", - "name": Object { - "first": "Alan", - "last": "Turing", - }, - }, - "body": "Prefer something else.", - }, - Object { - "author": Object { - "birthDate": "6/23/1912", - "name": Object { - "first": "Alan", - "last": "Turing", - }, - }, - "body": "Wish I had read this before.", - }, - ], - } - `); - }); - - it('can execute an introspection query', async () => { - const operationContext = buildOperationContext({ - schema, - operationDocument: gql` - ${getIntrospectionQuery()} - `, - operationString: getIntrospectionQuery(), - queryPlannerPointer, - }); - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response.data).toHaveProperty('__schema'); - expect(response.errors).toBeUndefined(); - }); - - it(`can execute queries on interface types`, async () => { - const operationString = `#graphql - query { - vehicle(id: "1") { - description - price - retailPrice - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "vehicle": Object { - "description": "Humble Toyota", - "price": "9990", - "retailPrice": "9990", - }, - } - `); - }); - - it(`can execute queries whose fields are interface types`, async () => { - const operationString = `#graphql - query { - user(id: "1") { - name { - first - last - } - vehicle { - description - price - retailPrice - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "user": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - "vehicle": Object { - "description": "Humble Toyota", - "price": "9990", - "retailPrice": "9990", - }, - }, - } - `); - }); - - it(`can execute queries whose fields are union types`, async () => { - const operationString = `#graphql - query { - user(id: "1") { - name { - first - last - } - thing { - ... on Vehicle { - description - price - retailPrice - } - ... on Ikea { - asile - } - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "user": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - "thing": Object { - "description": "Humble Toyota", - "price": "9990", - "retailPrice": "9990", - }, - }, - } - `); - }); - - it('can execute queries with falsey @requires (except undefined)', async () => { - const operationString = `#graphql - query { - books { - name # Requires title, year (on Book type) - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "books": Array [ - Object { - "name": "Structure and Interpretation of Computer Programs (1996)", - }, - Object { - "name": "Object Oriented Software Construction (1997)", - }, - Object { - "name": "Design Patterns (1995)", - }, - Object { - "name": "The Year Was Null (null)", - }, - Object { - "name": " (404)", - }, - Object { - "name": "No Books Like This Book! (2019)", - }, - ], - } - `); - }); - - it('can execute queries with list @requires', async () => { - const operationString = `#graphql - query { - book(isbn: "0201633612") { - # Requires similarBooks { isbn } - relatedReviews { - id - body - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response.errors).toMatchInlineSnapshot(`undefined`); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "book": Object { - "relatedReviews": Array [ - Object { - "body": "A classic.", - "id": "6", - }, - Object { - "body": "A bit outdated.", - "id": "5", - }, - ], - }, - } - `); - }); - - it('can execute queries with selections on null @requires fields', async () => { - const operationString = `#graphql - query { - book(isbn: "0987654321") { - # Requires similarBooks { isbn } - relatedReviews { - id - body - } - } - } - `; - - const operationDocument = gql(operationString); - - const operationContext = buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - buildRequestContext(), - operationContext, - ); - - expect(response.errors).toBeUndefined(); - - expect(response.data).toMatchInlineSnapshot(` - Object { - "book": Object { - "relatedReviews": Array [], - }, - } - `); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/execution-utils.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/execution-utils.ts deleted file mode 100644 index f59efd5..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/execution-utils.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { - GraphQLSchemaValidationError, - GraphQLSchemaModule, - GraphQLResolverMap, -} from 'apollo-graphql'; -import { GraphQLRequest, GraphQLExecutionResult, Logger } from 'apollo-server-types'; -import { - composeAndValidate, - buildFederatedSchema, - ServiceDefinition, -} from '@apollo/federation'; - -import { - buildQueryPlan, - executeQueryPlan, - QueryPlan, - buildOperationContext, -} from '@apollo/gateway'; -import { LocalGraphQLDataSource } from '../datasources/LocalGraphQLDataSource'; -import { mergeDeep } from 'apollo-utilities'; - -import queryPlanSerializer from '../snapshotSerializers/queryPlanSerializer'; -import astSerializer from '../snapshotSerializers/astSerializer'; -import gql from 'graphql-tag'; -import { fixtures } from 'apollo-federation-integration-testsuite'; -import { getQueryPlanner } from '@apollo/query-planner-wasm'; - -const prettyFormat = require('pretty-format'); - -export type ServiceDefinitionModule = ServiceDefinition & GraphQLSchemaModule; - -export function overrideResolversInService( - module: ServiceDefinitionModule, - resolvers: GraphQLResolverMap, -): ServiceDefinitionModule { - return { - name: module.name, - typeDefs: module.typeDefs, - resolvers: mergeDeep(module.resolvers, resolvers), - }; -} - -export async function execute( - request: GraphQLRequest, - services: ServiceDefinitionModule[] = fixtures, - logger: Logger = console, -): Promise { - const serviceMap = Object.fromEntries( - services.map(({ name, typeDefs, resolvers }) => { - return [ - name, - new LocalGraphQLDataSource( - buildFederatedSchema([{ typeDefs, resolvers }]), - ), - ] as [string, LocalGraphQLDataSource]; - }), - ); - - const { schema, queryPlannerPointer } = getFederatedTestingSchema(services); - - const operationContext = buildOperationContext({ - schema, - operationDocument: gql`${request.query}`, - operationString: request.query!, - queryPlannerPointer, - }); - - const queryPlan = buildQueryPlan(operationContext); - - const result = await executeQueryPlan( - queryPlan, - serviceMap, - { - cache: undefined as any, - context: {}, - request, - logger - }, - operationContext, - ); - - return { ...result, queryPlan }; -} - -export function buildLocalService(modules: GraphQLSchemaModule[]) { - const schema = buildFederatedSchema(modules); - return new LocalGraphQLDataSource(schema); -} - -export function getFederatedTestingSchema(services: ServiceDefinitionModule[] = fixtures) { - const serviceMap = Object.fromEntries( - services.map((service) => [ - service.name, - buildLocalService([service]), - ]), - ); - - const { schema, errors, composedSdl } = composeAndValidate( - Object.entries(serviceMap).map(([serviceName, dataSource]) => ({ - name: serviceName, - typeDefs: dataSource.sdl(), - })), - ); - - if (errors && errors.length > 0) { - throw new GraphQLSchemaValidationError(errors); - } - - const queryPlannerPointer = getQueryPlanner(composedSdl!); - - return { serviceMap, schema, errors, queryPlannerPointer }; -} - -export function wait(ms: number) { - return new Promise(r => setTimeout(r, ms)); -} - -export function printPlan(queryPlan: QueryPlan): string { - return prettyFormat(queryPlan, { - plugins: [queryPlanSerializer, astSerializer], - }); -} diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/buildService.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/buildService.test.ts deleted file mode 100644 index d3f006a..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/buildService.test.ts +++ /dev/null @@ -1,245 +0,0 @@ -import gql from 'graphql-tag'; -import { fetch } from '__mocks__/apollo-server-env'; -import { createTestClient } from 'apollo-server-testing'; -import { ApolloServerBase as ApolloServer } from 'apollo-server-core'; - -import { RemoteGraphQLDataSource } from '../../datasources/RemoteGraphQLDataSource'; -import { ApolloGateway, SERVICE_DEFINITION_QUERY } from '../../'; -import { fixtures } from 'apollo-federation-integration-testsuite'; - -beforeEach(() => { - fetch.mockReset(); -}); - -it('calls buildService only once per service', async () => { - fetch.mockJSONResponseOnce({ - data: { _service: { sdl: `extend type Query { thing: String }` } }, - }); - - const buildServiceSpy = jest.fn(() => { - return new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - }); - }); - - const gateway = new ApolloGateway({ - serviceList: [{ name: 'foo', url: 'https://api.example.com/foo' }], - buildService: buildServiceSpy - }); - - await gateway.load(); - - expect(buildServiceSpy).toHaveBeenCalledTimes(1); -}); - -it('correctly passes the context from ApolloServer to datasources', async () => { - const gateway = new ApolloGateway({ - localServiceList: fixtures, - buildService: _service => { - return new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - willSendRequest: ({ request, context }) => { - request.http?.headers.set('x-user-id', context.userId); - }, - }); - }, - }); - - const { schema, executor } = await gateway.load(); - - const server = new ApolloServer({ - schema, - executor, - context: () => ({ - userId: '1234', - }), - }); - - const call = createTestClient(server); - - const query = gql` - { - me { - username - } - } - `; - - fetch.mockJSONResponseOnce({ data: { me: { username: '@jbaxleyiii' } } }); - - const result = await call.query({ - query, - }); - - expect(result.errors).toBeUndefined(); - expect(result.data).toEqual({ - me: { username: '@jbaxleyiii' }, - }); - - expect(fetch).toBeCalledTimes(1); - expect(fetch).toHaveFetched('https://api.example.com/foo', { - body: { - query: `{me{username}}`, - variables: {}, - }, - headers: { - 'x-user-id': '1234', - }, - }); -}); - -function createSdlData(sdl: string): object { - return { - data: { - _service: { - sdl: sdl, - }, - }, - }; -} - -it('makes enhanced introspection request using datasource', async () => { - fetch.mockJSONResponseOnce( - createSdlData('extend type Query { one: String }'), - ); - - const gateway = new ApolloGateway({ - serviceList: [ - { - name: 'one', - url: 'https://api.example.com/one', - }, - ], - buildService: _service => { - return new RemoteGraphQLDataSource({ - url: 'https://api.example.com/override', - willSendRequest: ({ request }) => { - request.http?.headers.set('custom-header', 'some-custom-value'); - }, - }); - }, - }); - - await gateway.load(); - - expect(fetch).toBeCalledTimes(1); - - expect(fetch).toHaveFetched('https://api.example.com/override', { - body: { - query: SERVICE_DEFINITION_QUERY, - }, - headers: { - 'custom-header': 'some-custom-value', - }, - }); -}); - -it('customizes request on a per-service basis', async () => { - fetch - .mockJSONResponseOnce(createSdlData('extend type Query { one: String }')) - .mockJSONResponseOnce(createSdlData('extend type Query { two: String }')) - .mockJSONResponseOnce(createSdlData('extend type Query { three: String }')); - - const gateway = new ApolloGateway({ - serviceList: [ - { - name: 'one', - url: 'https://api.example.com/one', - }, - { - name: 'two', - url: 'https://api.example.com/two', - }, - { - name: 'three', - url: 'https://api.example.com/three', - }, - ], - buildService: service => { - return new RemoteGraphQLDataSource({ - url: service.url, - willSendRequest: ({ request }) => { - request.http?.headers.set('service-name', service.name); - }, - }); - }, - }); - - await gateway.load(); - - expect(fetch).toBeCalledTimes(3); - - expect(fetch).toHaveFetched('https://api.example.com/one', { - body: { - query: `query __ApolloGetServiceDefinition__ { _service { sdl } }`, - }, - headers: { - 'service-name': 'one', - }, - }); - - expect(fetch).toHaveFetched('https://api.example.com/two', { - body: { - query: `query __ApolloGetServiceDefinition__ { _service { sdl } }`, - }, - headers: { - 'service-name': 'two', - }, - }); - - expect(fetch).toHaveFetched('https://api.example.com/three', { - body: { - query: `query __ApolloGetServiceDefinition__ { _service { sdl } }`, - }, - headers: { - 'service-name': 'three', - }, - }); -}); - -it('does not share service definition cache between gateways', async () => { - let updates = 0; - const updateObserver: any = (..._args: any[]) => { - updates += 1; - }; - - // Initialize first gateway - { - fetch.mockJSONResponseOnce( - createSdlData('extend type Query { repeat: String }'), - ); - - const gateway = new ApolloGateway({ - serviceList: [ - { - name: 'repeat', - url: 'https://api.example.com/repeat', - }, - ], - experimental_didUpdateComposition: updateObserver, - }); - - await gateway.load(); - } - - // Initialize second gateway - { - fetch.mockJSONResponseOnce( - createSdlData('extend type Query { repeat: String }'), - ); - - const gateway = new ApolloGateway({ - serviceList: [ - { - name: 'repeat', - url: 'https://api.example.com/repeat', - }, - ], - experimental_didUpdateComposition: updateObserver, - }); - - await gateway.load(); - } - - expect(updates).toEqual(2); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/executor.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/executor.test.ts deleted file mode 100644 index a39b8a6..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/executor.test.ts +++ /dev/null @@ -1,125 +0,0 @@ -import gql from 'graphql-tag'; -import { ApolloGateway } from '../../'; -import { ApolloServer } from "apollo-server"; -import { fixtures } from 'apollo-federation-integration-testsuite'; -import { Logger } from 'apollo-server-types'; -import { fetch } from '__mocks__/apollo-server-env'; - -let logger: Logger; - -beforeEach(() => { - fetch.mockReset(); - const warn = jest.fn(); - const debug = jest.fn(); - const error = jest.fn(); - const info = jest.fn(); - - logger = { - warn, - debug, - error, - info, - }; -}); - -describe('ApolloGateway executor', () => { - it('validates requests prior to execution', async () => { - const gateway = new ApolloGateway({ - localServiceList: fixtures, - }); - - const { executor } = await gateway.load(); - - const source = `#graphql - query InvalidVariables($first: Int!) { - topReviews(first: $first) { - body - } - } - `; - - const { errors } = await executor({ - source, - document: gql(source), - request: { - variables: { first: '3' }, - }, - queryHash: 'hashed', - context: null, - cache: {} as any, - logger, - }); - - expect(errors![0].message).toMatch( - 'Variable "$first" got invalid value "3";', - ); - }); - - it('should not crash if no variables are not provided', async () => { - const me = { id: '1', birthDate: '1988-10-21'}; - fetch.mockJSONResponseOnce({ data: { me } }); - const gateway = new ApolloGateway({ - localServiceList: fixtures, - }); - - const { executor } = await gateway.load(); - - const source = `#graphql - query Me($locale: String) { - me { - id - birthDate(locale: $locale) - } - } - `; - - const { errors, data } = await executor({ - source, - document: gql(source), - request: { - }, - queryHash: 'hashed', - context: null, - cache: {} as any, - logger, - }); - - expect(errors).toBeFalsy(); - expect(data).toEqual({ me }); - }); - - it('still sets the ApolloServer executor on load rejection', async () => { - const gateway = new ApolloGateway({ - // Empty service list will trigger the gateway to crash on load, which is what we want. - serviceList: [], - logger, - }); - - // Mock implementation of process.exit with another () => never function. - // This is because the gateway doesn't just throw in this scenario, it crashes. - const mockExit = jest - .spyOn(process, 'exit') - .mockImplementation((code) => { - throw new Error(code?.toString()); - }); - - const server = new ApolloServer({ - gateway, - subscriptions: false, - logger, - }); - - // Ensure the throw happens to maintain the correctness of this test. - await expect( - server.executeOperation({ query: '{ __typename }' })).rejects.toThrow(); - - expect(server.requestOptions.executor).toBe(gateway.executor); - - expect(logger.error.mock.calls).toEqual([ - ["Error checking for changes to service definitions: Tried to load services from remote endpoints but none provided"], - ["This data graph is missing a valid configuration. Tried to load services from remote endpoints but none provided"] - ]); - - mockExit.mockRestore(); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/lifecycle-hooks.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/lifecycle-hooks.test.ts deleted file mode 100644 index 0daba3a..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/lifecycle-hooks.test.ts +++ /dev/null @@ -1,268 +0,0 @@ -import gql from 'graphql-tag'; -import { - ApolloGateway, - GatewayConfig, - Experimental_DidResolveQueryPlanCallback, - Experimental_UpdateServiceDefinitions, -} from '../../index'; -import { - product, - reviews, - inventory, - accounts, - books, - documents, -} from 'apollo-federation-integration-testsuite'; -import { Logger } from 'apollo-server-types'; - -// The order of this was specified to preserve existing test coverage. Typically -// we would just import and use the `fixtures` array. -const serviceDefinitions = [ - product, - reviews, - inventory, - accounts, - books, - documents, -].map((s, i) => ({ - name: s.name, - typeDefs: s.typeDefs, - url: `http://localhost:${i}`, -})); - -let logger: Logger; - -beforeEach(() => { - const warn = jest.fn(); - const debug = jest.fn(); - const error = jest.fn(); - const info = jest.fn(); - - logger = { - warn, - debug, - error, - info, - }; -}); - -describe('lifecycle hooks', () => { - it('uses updateServiceDefinitions override', async () => { - const experimental_updateServiceDefinitions: Experimental_UpdateServiceDefinitions = jest.fn( - async (_config: GatewayConfig) => { - return { serviceDefinitions, isNewSchema: true }; - }, - ); - - const gateway = new ApolloGateway({ - serviceList: serviceDefinitions, - experimental_updateServiceDefinitions, - experimental_didUpdateComposition: jest.fn(), - logger, - }); - - await gateway.load(); - - expect(experimental_updateServiceDefinitions).toBeCalled(); - expect(gateway.schema!.getType('Furniture')).toBeDefined(); - }); - - it('calls experimental_didFailComposition with a bad config', async () => { - const experimental_didFailComposition = jest.fn(); - - const gateway = new ApolloGateway({ - async experimental_updateServiceDefinitions(_config: GatewayConfig) { - return { - serviceDefinitions: [serviceDefinitions[0]], - compositionMetadata: { - formatVersion: 1, - id: 'abc', - implementingServiceLocations: [], - schemaHash: 'abc', - }, - isNewSchema: true, - }; - }, - serviceList: [], - experimental_didFailComposition, - logger, - }); - - await expect(gateway.load()).rejects.toThrowError(); - - const callbackArgs = experimental_didFailComposition.mock.calls[0][0]; - expect(callbackArgs.serviceList).toHaveLength(1); - expect(callbackArgs.errors[0]).toMatchInlineSnapshot( - `[GraphQLError: [product] Book -> \`Book\` is an extension type, but \`Book\` is not defined in any service]`, - ); - expect(callbackArgs.compositionMetadata.id).toEqual('abc'); - expect(experimental_didFailComposition).toBeCalled(); - }); - - it('calls experimental_didUpdateComposition on schema update', async () => { - const compositionMetadata = { - formatVersion: 1, - id: 'abc', - implementingServiceLocations: [], - schemaHash: 'hash1', - }; - - const update: Experimental_UpdateServiceDefinitions = async ( - _config: GatewayConfig, - ) => ({ - serviceDefinitions, - isNewSchema: true, - compositionMetadata: { - ...compositionMetadata, - id: '123', - schemaHash: 'hash2', - }, - }); - - // This is the simplest way I could find to achieve mocked functions that leverage our types - const mockUpdate = jest.fn(update); - - // We want to return a different composition across two ticks, so we mock it - // slightly differenty - mockUpdate.mockImplementationOnce(async (_config: GatewayConfig) => { - const services = serviceDefinitions.filter(s => s.name !== 'books'); - return { - serviceDefinitions: [ - ...services, - { - name: 'book', - typeDefs: books.typeDefs, - url: 'http://localhost:32542', - }, - ], - isNewSchema: true, - compositionMetadata, - }; - }); - - const mockDidUpdate = jest.fn(); - - const gateway = new ApolloGateway({ - experimental_updateServiceDefinitions: mockUpdate, - experimental_didUpdateComposition: mockDidUpdate, - logger, - }); - // @ts-ignore for testing purposes, a short pollInterval is ideal so we'll override here - gateway.experimental_pollInterval = 100; - - let resolve1: Function; - let resolve2: Function; - const schemaChangeBlocker1 = new Promise(res => (resolve1 = res)); - const schemaChangeBlocker2 = new Promise(res => (resolve2 = res)); - - gateway.onSchemaChange( - jest - .fn() - .mockImplementationOnce(() => resolve1()) - .mockImplementationOnce(() => resolve2()), - ); - - await gateway.load(); - - await schemaChangeBlocker1; - expect(mockUpdate).toBeCalledTimes(1); - expect(mockDidUpdate).toBeCalledTimes(1); - - await schemaChangeBlocker2; - expect(mockUpdate).toBeCalledTimes(2); - expect(mockDidUpdate).toBeCalledTimes(2); - - const [firstCall, secondCall] = mockDidUpdate.mock.calls; - - expect(firstCall[0]!.schema).toBeDefined(); - expect(firstCall[0].compositionMetadata!.schemaHash).toEqual('hash1'); - // first call should have no second "previous" argument - expect(firstCall[1]).toBeUndefined(); - - expect(secondCall[0].schema).toBeDefined(); - expect(secondCall[0].compositionMetadata!.schemaHash).toEqual('hash2'); - // second call should have previous info in the second arg - expect(secondCall[1]!.schema).toBeDefined(); - expect(secondCall[1]!.compositionMetadata!.schemaHash).toEqual('hash1'); - }); - - it('uses default service definition updater', async () => { - const gateway = new ApolloGateway({ - localServiceList: serviceDefinitions, - logger, - }); - - const { schema } = await gateway.load(); - - // spying on gateway.loadServiceDefinitions wasn't working, so this also - // should test functionality. If there's no overwriting service definition - // updater, it has to use the default. If there's a valid schema, then - // the loader had to have been called. - expect(schema.getType('User')).toBeDefined(); - }); - - it('warns when polling on the default fetcher', async () => { - new ApolloGateway({ - serviceList: serviceDefinitions, - experimental_pollInterval: 10, - logger, - }); - expect(logger.warn).toHaveBeenCalledTimes(1); - expect(logger.warn).toHaveBeenCalledWith( - 'Polling running services is dangerous and not recommended in production. Polling should only be used against a registry. If you are polling running services, use with caution.', - ); - }); - - it('registers schema change callbacks when experimental_pollInterval is set for unmanaged configs', async () => { - const experimental_updateServiceDefinitions: Experimental_UpdateServiceDefinitions = jest.fn( - async (_config: GatewayConfig) => { - return { serviceDefinitions, isNewSchema: true }; - }, - ); - - const gateway = new ApolloGateway({ - serviceList: [{ name: 'book', url: 'http://localhost:32542' }], - experimental_updateServiceDefinitions, - experimental_pollInterval: 100, - logger, - }); - - let resolve: Function; - const schemaChangeBlocker = new Promise(res => (resolve = res)); - const schemaChangeCallback = jest.fn(() => resolve()); - - gateway.onSchemaChange(schemaChangeCallback); - gateway.load(); - - await schemaChangeBlocker; - - expect(schemaChangeCallback).toBeCalledTimes(1); - }); - - it('calls experimental_didResolveQueryPlan when executor is called', async () => { - const experimental_didResolveQueryPlan: Experimental_DidResolveQueryPlanCallback = jest.fn() - - const gateway = new ApolloGateway({ - localServiceList: [ - books - ], - experimental_didResolveQueryPlan, - }); - - const { executor } = await gateway.load(); - - const source = `#graphql - { book(isbn: "0262510871") { year } } - `; - - await executor({ - source, - document: gql(source), - request: {}, - queryHash: 'hashed', - context: {}, - }); - - expect(experimental_didResolveQueryPlan).toBeCalled(); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/queryPlanCache.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/queryPlanCache.test.ts deleted file mode 100644 index f1deddf..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/queryPlanCache.test.ts +++ /dev/null @@ -1,220 +0,0 @@ -import gql from 'graphql-tag'; -import { createTestClient } from 'apollo-server-testing'; -import { ApolloServerBase as ApolloServer } from 'apollo-server-core'; -import { buildFederatedSchema } from '@apollo/federation'; - -import { LocalGraphQLDataSource } from '../../datasources/LocalGraphQLDataSource'; -import { ApolloGateway } from '../../'; -import { fixtures } from 'apollo-federation-integration-testsuite'; - -it('caches the query plan for a request', async () => { - const planner = require('../../buildQueryPlan'); - const originalPlanner = planner.buildQueryPlan; - - planner.buildQueryPlan = jest.fn(originalPlanner); - - const gateway = new ApolloGateway({ - localServiceList: fixtures, - buildService: service => { - return new LocalGraphQLDataSource(buildFederatedSchema([service])); - }, - }); - - const { schema, executor } = await gateway.load(); - - const server = new ApolloServer({ schema, executor }); - - const upc = '1'; - const call = createTestClient(server); - - const query = gql` - query GetProduct($upc: String!) { - product(upc: $upc) { - name - } - } - `; - - const result = await call.query({ - query, - variables: { upc }, - }); - - expect(result.data).toEqual({ - product: { - name: 'Table', - }, - }); - - const secondResult = await call.query({ - query, - variables: { upc }, - }); - - expect(result.data).toEqual(secondResult.data); - expect(planner.buildQueryPlan).toHaveBeenCalledTimes(1); -}); - -it('supports multiple operations and operationName', async () => { - const query = `#graphql - query GetUser { - me { - username - } - } - query GetReviews { - topReviews { - body - } - } - `; - - const gateway = new ApolloGateway({ - localServiceList: fixtures, - buildService: service => { - return new LocalGraphQLDataSource(buildFederatedSchema([service])); - }, - }); - - const { schema, executor } = await gateway.load(); - - const server = new ApolloServer({ schema, executor }); - - const { data: userData } = await server.executeOperation({ - query, - operationName: 'GetUser', - }); - - const { data: reviewsData } = await server.executeOperation({ - query, - operationName: 'GetReviews', - }); - - expect(userData).toEqual({ - me: { username: '@ada' }, - }); - expect(reviewsData).toEqual({ - topReviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { body: 'Could be better.' }, - { body: 'Prefer something else.' }, - { body: 'Wish I had read this before.' }, - ], - }); -}); - -it('does not corrupt cached queryplan data across requests', async () => { - const serviceA = { - name: 'a', - typeDefs: gql` - type Query { - user: User - } - - type User @key(fields: "id") { - id: ID! - preferences: Preferences - } - - type Preferences { - favorites: Things - } - - type Things { - color: String - animal: String - } - `, - resolvers: { - Query: { - user() { - return { - id: '1', - preferences: { - favorites: { color: 'limegreen', animal: 'platypus' }, - }, - }; - }, - }, - }, - }; - - const serviceB = { - name: 'b', - typeDefs: gql` - extend type User @key(fields: "id") { - id: ID! @external - preferences: Preferences @external - favoriteColor: String - @requires(fields: "preferences { favorites { color } }") - favoriteAnimal: String - @requires(fields: "preferences { favorites { animal } }") - } - - extend type Preferences { - favorites: Things @external - } - - extend type Things { - color: String @external - animal: String @external - } - `, - resolvers: { - User: { - favoriteColor(user: any) { - return user.preferences.favorites.color; - }, - favoriteAnimal(user: any) { - return user.preferences.favorites.animal; - }, - }, - }, - }; - - const gateway = new ApolloGateway({ - localServiceList: [serviceA, serviceB], - buildService: service => { - return new LocalGraphQLDataSource(buildFederatedSchema([service])); - }, - }); - - const { schema, executor } = await gateway.load(); - - const server = new ApolloServer({ schema, executor }); - - const call = createTestClient(server); - - const query1 = `#graphql - query UserFavoriteColor { - user { - favoriteColor - } - } - `; - - const query2 = `#graphql - query UserFavorites { - user { - favoriteColor - favoriteAnimal - } - } - `; - - const result1 = await call.query({ - query: query1, - }); - const result2 = await call.query({ - query: query2, - }); - const result3 = await call.query({ - query: query1, - }); - - expect(result1.errors).toEqual(undefined); - expect(result2.errors).toEqual(undefined); - expect(result3.errors).toEqual(undefined); - expect(result1).toEqual(result3); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/reporting.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/reporting.test.ts deleted file mode 100644 index 795cad7..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/gateway/reporting.test.ts +++ /dev/null @@ -1,609 +0,0 @@ -import { gunzipSync } from 'zlib'; -import nock from 'nock'; -import { GraphQLSchemaModule } from 'apollo-graphql'; -import gql from 'graphql-tag'; -import { buildFederatedSchema } from '@apollo/federation'; -import { ApolloServer } from 'apollo-server'; -import { ApolloServerPluginUsageReporting } from 'apollo-server-core'; -import { execute, toPromise } from 'apollo-link'; -import { createHttpLink } from 'apollo-link-http'; -import fetch from 'node-fetch'; -import { ApolloGateway } from '../..'; -import { Plugin, Config, Refs } from 'pretty-format'; -import { Report } from 'apollo-reporting-protobuf'; -import { fixtures } from 'apollo-federation-integration-testsuite'; - -// Normalize specific fields that change often (eg timestamps) to static values, -// to make snapshot testing viable. (If these helpers are more generally -// useful, they could be moved to a different file.) - -const alreadyProcessed = '__already_processed__'; - -function replaceFieldValuesSerializer( - replacements: Record, -): Plugin { - const fieldNames = Object.keys(replacements); - return { - test(value: any) { - return ( - value && - typeof value === 'object' && - !value[alreadyProcessed] && - fieldNames.some((n) => n in value) - ); - }, - - serialize( - value: Record, - config: Config, - indentation: string, - depth: number, - refs: Refs, - printer: any, - ): string { - // Clone object so pretty-format doesn't consider it as a circular - // reference. Put a special (non-enumerable) property on it so that *we* - // don't reprocess it ourselves. - const newValue = { ...value }; - Object.defineProperty(newValue, alreadyProcessed, { value: true }); - fieldNames.forEach((fn) => { - if (fn in value) { - const replacement = replacements[fn]; - if (typeof replacement === 'function') { - newValue[fn] = replacement(value[fn]); - } else { - newValue[fn] = replacement; - } - } - }); - return printer(newValue, config, indentation, depth, refs, printer); - }, - }; -} - -expect.addSnapshotSerializer( - replaceFieldValuesSerializer({ - header: '
', - // We do want to differentiate between zero and non-zero in these numbers. - durationNs: (v: number) => (v ? 12345 : 0), - sentTimeOffset: (v: number) => (v ? 23456 : 0), - // endTime and startTime are annoyingly used both for top-level Timestamps - // and for node-level nanosecond offsets. The Timestamps will get normalized - // by the nanos/seconds below. - startTime: (v: any) => (typeof v === 'string' ? '34567' : v), - endTime: (v: any) => (typeof v === 'string' ? '45678' : v), - nanos: 123000000, - seconds: '1562203363', - }), -); - -async function startFederatedServer(modules: GraphQLSchemaModule[]) { - const schema = buildFederatedSchema(modules); - const server = new ApolloServer({ schema }); - const { url } = await server.listen({ port: 0 }); - return { url, server }; -} - -describe('reporting', () => { - let backendServers: ApolloServer[]; - let gatewayServer: ApolloServer; - let gatewayUrl: string; - let reportPromise: Promise; - let nockScope: nock.Scope; - - beforeEach(async () => { - let reportResolver: (report: any) => void; - reportPromise = new Promise((resolve) => { - reportResolver = resolve; - }); - - nockScope = nock('https://usage-reporting.api.apollographql.com') - .post('/api/ingress/traces') - .reply(200, (_: any, requestBody: string) => { - reportResolver(requestBody); - return 'ok'; - }); - - backendServers = []; - const serviceList = []; - for (const fixture of fixtures) { - const { server, url } = await startFederatedServer([fixture]); - backendServers.push(server); - serviceList.push({ name: fixture.name, url }); - } - - const gateway = new ApolloGateway({ serviceList }); - const { schema, executor } = await gateway.load(); - gatewayServer = new ApolloServer({ - schema, - executor, - apollo: { - key: 'service:foo:bar', - graphVariant: 'current', - }, - plugins: [ApolloServerPluginUsageReporting({ - sendReportsImmediately: true, - })], - }); - ({ url: gatewayUrl } = await gatewayServer.listen({ port: 0 })); - }); - - afterEach(async () => { - for (const server of backendServers) { - await server.stop(); - } - if (gatewayServer) { - await gatewayServer.stop(); - } - nockScope.done(); - }); - - it(`queries three services`, async () => { - const query = gql` - query { - me { - name { - first - last - } - } - topProducts { - name - } - } - `; - - const result = await toPromise( - execute(createHttpLink({ uri: gatewayUrl, fetch: fetch as any }), { - query, - }), - ); - expect(result).toMatchInlineSnapshot(` - Object { - "data": Object { - "me": Object { - "name": Object { - "first": "Ada", - "last": "Lovelace", - }, - }, - "topProducts": Array [ - Object { - "name": "Table", - }, - Object { - "name": "Couch", - }, - Object { - "name": "Chair", - }, - Object { - "name": "Structure and Interpretation of Computer Programs (1996)", - }, - Object { - "name": "Object Oriented Software Construction (1997)", - }, - ], - }, - } - `); - const reportBody = await reportPromise; - // nock returns binary bodies as hex strings - const gzipReportBuffer = Buffer.from(reportBody, 'hex'); - const reportBuffer = gunzipSync(gzipReportBuffer); - const report = Report.decode(reportBuffer); - - // Some handwritten tests to capture salient properties. - const statsReportKey = '# -\n{me{name{first last}}topProducts{name}}'; - expect(Object.keys(report.tracesPerQuery)).toStrictEqual([statsReportKey]); - expect(report.tracesPerQuery[statsReportKey]!.trace!.length).toBe(1); - const trace = report.tracesPerQuery[statsReportKey]!.trace![0]!; - // In the gateway, the root trace is just an empty node (unless there are errors). - expect(trace.root!.child).toStrictEqual([]); - // The query plan has (among other things) a fetch against 'accounts' and a - // fetch against 'product'. - expect(trace.queryPlan).toBeTruthy(); - const queryPlan = trace.queryPlan!; - expect(queryPlan.parallel).toBeTruthy(); - expect(queryPlan.parallel!.nodes![0]!.fetch!.serviceName).toBe('accounts'); - expect( - queryPlan.parallel!.nodes![0]!.fetch!.trace!.root!.child![0]! - .responseName, - ).toBe('me'); - expect(queryPlan.parallel!.nodes![1]!.sequence).toBeTruthy(); - expect( - queryPlan.parallel!.nodes![1]!.sequence!.nodes![0]!.fetch!.serviceName, - ).toBe('product'); - expect( - queryPlan.parallel!.nodes![1]!.sequence!.nodes![0]!.fetch!.trace!.root! - .child![0].responseName, - ).toBe('topProducts'); - - expect(report).toMatchInlineSnapshot(` - Object { - "endTime": null, - "header": "
", - "tracesPerQuery": Object { - "# - - {me{name{first last}}topProducts{name}}": Object { - "trace": Array [ - Object { - "clientName": "", - "clientReferenceId": "", - "clientVersion": "", - "details": Object {}, - "durationNs": 12345, - "endTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "forbiddenOperation": false, - "fullQueryCacheHit": false, - "http": Object { - "method": "POST", - }, - "queryPlan": Object { - "parallel": Object { - "nodes": Array [ - Object { - "fetch": Object { - "receivedTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "sentTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "sentTimeOffset": 23456, - "serviceName": "accounts", - "trace": Object { - "durationNs": 12345, - "endTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "root": Object { - "child": Array [ - Object { - "child": Array [ - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Name", - "responseName": "first", - "startTime": "34567", - "type": "String", - }, - Object { - "endTime": "45678", - "parentType": "Name", - "responseName": "last", - "startTime": "34567", - "type": "String", - }, - ], - "endTime": "45678", - "parentType": "User", - "responseName": "name", - "startTime": "34567", - "type": "Name", - }, - ], - "endTime": "45678", - "parentType": "Query", - "responseName": "me", - "startTime": "34567", - "type": "User", - }, - ], - }, - "startTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - }, - "traceParsingFailed": false, - }, - }, - Object { - "sequence": Object { - "nodes": Array [ - Object { - "fetch": Object { - "receivedTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "sentTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "sentTimeOffset": 23456, - "serviceName": "product", - "trace": Object { - "durationNs": 12345, - "endTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "root": Object { - "child": Array [ - Object { - "child": Array [ - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Furniture", - "responseName": "name", - "startTime": "34567", - "type": "String", - }, - ], - "index": 0, - }, - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Furniture", - "responseName": "name", - "startTime": "34567", - "type": "String", - }, - ], - "index": 1, - }, - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Furniture", - "responseName": "name", - "startTime": "34567", - "type": "String", - }, - ], - "index": 2, - }, - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "isbn", - "startTime": "34567", - "type": "String!", - }, - ], - "index": 3, - }, - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "isbn", - "startTime": "34567", - "type": "String!", - }, - ], - "index": 4, - }, - ], - "endTime": "45678", - "parentType": "Query", - "responseName": "topProducts", - "startTime": "34567", - "type": "[Product]", - }, - ], - }, - "startTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - }, - "traceParsingFailed": false, - }, - }, - Object { - "flatten": Object { - "node": Object { - "fetch": Object { - "receivedTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "sentTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "sentTimeOffset": 23456, - "serviceName": "books", - "trace": Object { - "durationNs": 12345, - "endTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "root": Object { - "child": Array [ - Object { - "child": Array [ - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "isbn", - "startTime": "34567", - "type": "String!", - }, - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "title", - "startTime": "34567", - "type": "String", - }, - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "year", - "startTime": "34567", - "type": "Int", - }, - ], - "index": 0, - }, - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "isbn", - "startTime": "34567", - "type": "String!", - }, - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "title", - "startTime": "34567", - "type": "String", - }, - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "year", - "startTime": "34567", - "type": "Int", - }, - ], - "index": 1, - }, - ], - "endTime": "45678", - "parentType": "Query", - "responseName": "_entities", - "startTime": "34567", - "type": "[_Entity]!", - }, - ], - }, - "startTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - }, - "traceParsingFailed": false, - }, - }, - "responsePath": Array [ - Object { - "fieldName": "topProducts", - }, - Object { - "fieldName": "@", - }, - ], - }, - }, - Object { - "flatten": Object { - "node": Object { - "fetch": Object { - "receivedTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "sentTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "sentTimeOffset": 23456, - "serviceName": "product", - "trace": Object { - "durationNs": 12345, - "endTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - "root": Object { - "child": Array [ - Object { - "child": Array [ - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "name", - "startTime": "34567", - "type": "String", - }, - ], - "index": 0, - }, - Object { - "child": Array [ - Object { - "endTime": "45678", - "parentType": "Book", - "responseName": "name", - "startTime": "34567", - "type": "String", - }, - ], - "index": 1, - }, - ], - "endTime": "45678", - "parentType": "Query", - "responseName": "_entities", - "startTime": "34567", - "type": "[_Entity]!", - }, - ], - }, - "startTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - }, - "traceParsingFailed": false, - }, - }, - "responsePath": Array [ - Object { - "fieldName": "topProducts", - }, - Object { - "fieldName": "@", - }, - ], - }, - }, - ], - }, - }, - ], - }, - }, - "registeredOperation": false, - "root": Object {}, - "startTime": Object { - "nanos": 123000000, - "seconds": "1562203363", - }, - }, - ], - }, - }, - } - `); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/abstract-types.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/abstract-types.test.ts deleted file mode 100644 index 2bad0c2..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/abstract-types.test.ts +++ /dev/null @@ -1,830 +0,0 @@ -import gql from 'graphql-tag'; -import { execute } from '../execution-utils'; - -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -it('handles an abstract type from the base service', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - upc - name - price - } - } - `; - - const upc = '1'; - const { data, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(data).toEqual({ - product: { - upc, - name: 'Table', - price: '899', - }, - }); - - expect(queryPlan).toCallService('product'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - product(upc: $upc) { - __typename - ... on Book { - upc - __typename - isbn - price - } - ... on Furniture { - upc - name - price - } - } - } - }, - Flatten(path: "product") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - __typename - isbn - title - year - } - } - }, - }, - Flatten(path: "product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - title - year - } - } => - { - ... on Book { - name - } - } - }, - }, - }, - } - `); -}); - -it('can request fields on extended interfaces', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - inStock - } - } - `; - - const upc = '1'; - - const { data, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(data).toEqual({ product: { inStock: true } }); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toCallService('inventory'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - product(upc: $upc) { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - sku - } - } - } - }, - Flatten(path: "product") { - Fetch(service: "inventory") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - sku - } - } => - { - ... on Book { - inStock - } - ... on Furniture { - inStock - } - } - }, - }, - }, - } - `); -}); - -it('can request fields on extended types that implement an interface', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - inStock - ... on Furniture { - isHeavy - } - } - } - `; - - const upc = '1'; - const { data, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(data).toEqual({ product: { inStock: true, isHeavy: false } }); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toCallService('inventory'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - product(upc: $upc) { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - sku - } - } - } - }, - Flatten(path: "product") { - Fetch(service: "inventory") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - sku - } - } => - { - ... on Book { - inStock - } - ... on Furniture { - inStock - isHeavy - } - } - }, - }, - }, - } - `); -}); - -it('prunes unfilled type conditions', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - inStock - ... on Furniture { - isHeavy - } - ... on Book { - isCheckedOut - } - } - } - `; - - const upc = '1'; - const { data, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(data).toEqual({ product: { inStock: true, isHeavy: false } }); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toCallService('inventory'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - product(upc: $upc) { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - sku - } - } - } - }, - Flatten(path: "product") { - Fetch(service: "inventory") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - sku - } - } => - { - ... on Book { - inStock - isCheckedOut - } - ... on Furniture { - inStock - isHeavy - } - } - }, - }, - }, - } - `); -}); - -it('fetches interfaces returned from other services', async () => { - const query = `#graphql - query GetUserAndProducts { - me { - reviews { - product { - price - ... on Book { - title - } - } - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - reviews: [ - { product: { price: '899' } }, - { product: { price: '1299' } }, - { product: { price: '49', title: 'Design Patterns' } }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "accounts") { - { - me { - __typename - id - } - } - }, - Flatten(path: "me") { - Fetch(service: "reviews") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - reviews { - product { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } - } - } - } - }, - }, - Parallel { - Flatten(path: "me.reviews.@.product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } => - { - ... on Book { - price - } - ... on Furniture { - price - } - } - }, - }, - Flatten(path: "me.reviews.@.product") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - title - } - } - }, - }, - }, - }, - } - `); -}); - -it('fetches composite fields from a foreign type casted to an interface [@provides field]', async () => { - const query = `#graphql - query GetUserAndProducts { - me { - reviews { - product { - price - ... on Book { - name - } - } - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - reviews: [ - { product: { price: '899' } }, - { product: { price: '1299' } }, - { product: { price: '49', name: 'Design Patterns (1995)' } }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "accounts") { - { - me { - __typename - id - } - } - }, - Flatten(path: "me") { - Fetch(service: "reviews") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - reviews { - product { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } - } - } - } - }, - }, - Parallel { - Flatten(path: "me.reviews.@.product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } => - { - ... on Book { - price - } - ... on Furniture { - price - } - } - }, - }, - Sequence { - Flatten(path: "me.reviews.@.product") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - __typename - isbn - title - year - } - } - }, - }, - Flatten(path: "me.reviews.@.product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - title - year - } - } => - { - ... on Book { - name - } - } - }, - }, - }, - }, - }, - } - `); -}); - -it('allows for extending an interface from another service with fields', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - reviews { - body - } - } - } - `; - - const upc = '1'; - const { data, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(data).toEqual({ - product: { - reviews: [{ body: 'Love it!' }, { body: 'Prefer something else.' }], - }, - }); - - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - product(upc: $upc) { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } - } - }, - Flatten(path: "product") { - Fetch(service: "reviews") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } => - { - ... on Book { - reviews { - body - } - } - ... on Furniture { - reviews { - body - } - } - } - }, - }, - }, - } - `); -}); - -describe('unions', () => { - it('handles unions from the same service', async () => { - const query = `#graphql - query GetUserAndProducts { - me { - reviews { - product { - price - ... on Furniture { - brand { - ... on Ikea { - asile - } - ... on Amazon { - referrer - } - } - } - } - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - reviews: [ - { product: { price: '899', brand: { asile: 10 } } }, - { - product: { - price: '1299', - brand: { referrer: 'https://canopy.co' }, - }, - }, - { product: { price: '49' } }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "accounts") { - { - me { - __typename - id - } - } - }, - Flatten(path: "me") { - Fetch(service: "reviews") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - reviews { - product { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } - } - } - } - }, - }, - Flatten(path: "me.reviews.@.product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } => - { - ... on Book { - price - } - ... on Furniture { - price - brand { - __typename - ... on Ikea { - asile - } - ... on Amazon { - referrer - } - } - } - } - }, - }, - }, - } - `); - }); - - it("doesn't expand interfaces with inline type conditions if all possibilities are fufilled by one service", async () => { - const query = `#graphql - query GetProducts { - topProducts { - name - } - } - `; - - const { queryPlan, errors } = await execute({ query }, [ - { - name: 'products', - typeDefs: gql` - extend type Query { - topProducts: [Product] - } - - interface Product { - name: String - } - - type Shoe implements Product { - name: String - } - - type Car implements Product { - name: String - } - `, - }, - ]); - - expect(errors).toBeUndefined(); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "products") { - { - topProducts { - __typename - name - } - } - }, - } - `); - }); - - // FIXME: turn back on when extending unions is supported in composition - it.todo('fetches unions across services'); - // async () => { - // const query = gql` - // query GetUserAndProducts { - // me { - // account { - // ... on LibraryAccount { - // library { - // name - // } - // } - // ... on SMSAccount { - // number - // } - // } - // } - // } - // `; - - // const { data, queryPlan } = await execute( - // { - // query, - // }, - // ); - - // expect(data).toEqual({ - // me: { - // account: { - // library: { - // name: 'NYC Public Library', - // }, - // }, - // }, - // }); - - // expect(queryPlan).toCallService('accounts'); - // expect(queryPlan).toCallService('books'); - // }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/aliases.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/aliases.test.ts deleted file mode 100644 index e86d7d2..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/aliases.test.ts +++ /dev/null @@ -1,176 +0,0 @@ -import { execute } from '../execution-utils'; -// FIXME: remove this when GraphQLExtensions is removed -import { createTestClient } from 'apollo-server-testing'; -import { ApolloServerBase as ApolloServer } from 'apollo-server-core'; -import { buildFederatedSchema } from '@apollo/federation'; -import { LocalGraphQLDataSource } from '../../datasources/LocalGraphQLDataSource'; -import { ApolloGateway } from '../../'; -import { fixtures } from 'apollo-federation-integration-testsuite'; - -it('supports simple aliases', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - name - title: name - } - } - `; - - const upc = '1'; - const { data, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(data).toEqual({ - product: { - name: 'Table', - title: 'Table', - }, - }); - - expect(queryPlan).toCallService('product'); -}); - -it('supports aliases of root fields on subservices', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - name - title: name - reviews { - body - } - productReviews: reviews { - body - } - } - } - `; - - const upc = '1'; - const { data, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(data).toEqual({ - product: { - name: 'Table', - title: 'Table', - reviews: [ - { - body: 'Love it!', - }, - { - body: 'Prefer something else.', - }, - ], - productReviews: [ - { - body: 'Love it!', - }, - { - body: 'Prefer something else.', - }, - ], - }, - }); - - expect(queryPlan).toCallService('product'); -}); - -it('supports aliases of nested fields on subservices', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - name - title: name - reviews { - content: body - body - } - productReviews: reviews { - body - reviewer: author { - name: username - } - } - } - } - `; - - const upc = '1'; - const { data, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(data).toEqual({ - product: { - name: 'Table', - title: 'Table', - reviews: [ - { - content: 'Love it!', - body: 'Love it!', - }, - { - content: 'Prefer something else.', - body: 'Prefer something else.', - }, - ], - productReviews: [ - { - body: 'Love it!', - reviewer: { - name: '@ada', - }, - }, - { - body: 'Prefer something else.', - reviewer: { - name: '@complete', - }, - }, - ], - }, - }); - - expect(queryPlan).toCallService('product'); -}); - -// TODO after we remove GraphQLExtensions from ApolloServer, this can go away -it('supports aliases when using ApolloServer', async () => { - const gateway = new ApolloGateway({ - localServiceList: fixtures, - buildService: service => { - return new LocalGraphQLDataSource(buildFederatedSchema([service])); - }, - }); - - const { schema, executor } = await gateway.load(); - - const server = new ApolloServer({ schema, executor }); - - const upc = '1'; - const { query } = createTestClient(server); - - const result = await query({ - query: `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - title: name - } - } - `, - variables: { upc }, - }); - - expect(result.data).toEqual({ - product: { - title: 'Table', - }, - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/boolean.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/boolean.test.ts deleted file mode 100644 index 2e50eb8..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/boolean.test.ts +++ /dev/null @@ -1,277 +0,0 @@ -import { execute } from '../execution-utils'; -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -// TODO: right now the query planner doesn't prune known skip and include points -// eventually we want to do this to prevent downstream fetches that aren't needed -describe('@skip', () => { - it('supports @skip when a boolean condition is met', async () => { - const query = `#graphql - query GetReviewers { - topReviews { - body - author @skip(if: true) { - name - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - topReviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { body: 'Could be better.' }, - { body: 'Prefer something else.' }, - { body: 'Wish I had read this before.' }, - ], - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - }); - - it('supports @skip when a boolean condition is met (variable driven)', async () => { - const query = `#graphql - query GetReviewers($skip: Boolean!) { - topReviews { - body - author @skip(if: $skip) { - username - } - } - } - `; - - const skip = true; - const { data, queryPlan } = await execute({ - query, - variables: { skip }, - }); - - expect(data).toEqual({ - topReviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { body: 'Could be better.' }, - { body: 'Prefer something else.' }, - { body: 'Wish I had read this before.' }, - ], - }); - - expect(queryPlan).not.toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - }); - - // Data looks good here, suspect the matcher is incorrect - it('supports @skip when a boolean condition is not met', async () => { - const query = `#graphql - query GetReviewers { - topReviews { - body - author @skip(if: false) { - name { - first - last - } - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - topReviews: [ - { body: 'Love it!', author: { name: { first: 'Ada', last: 'Lovelace' } } }, - { body: 'Too expensive.', author: { name: { first: 'Ada', last: 'Lovelace' } } }, - { body: 'Could be better.', author: { name: { first: 'Alan', last: 'Turing' } } }, - { body: 'Prefer something else.', author: { name: { first: 'Alan', last: 'Turing' } } }, - { body: 'Wish I had read this before.', author: { name: { first: 'Alan', last: 'Turing' } } }, - ], - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - }); - - // Data looks good here, suspect the matcher is incorrect - it('supports @skip when a boolean condition is not met (variable driven)', async () => { - const query = `#graphql - query GetReviewers($skip: Boolean!) { - topReviews { - body - author @skip(if: $skip) { - name { - first - last - } - } - } - } - `; - - const skip = false; - const { data, queryPlan } = await execute({ - query, - variables: { skip }, - }); - - expect(data).toEqual({ - topReviews: [ - { body: 'Love it!', author: { name: { first: 'Ada', last: 'Lovelace' } } }, - { body: 'Too expensive.', author: { name: { first: 'Ada', last: 'Lovelace' } } }, - { body: 'Could be better.', author: { name: { first: 'Alan', last: 'Turing' } } }, - { body: 'Prefer something else.', author: { name: { first: 'Alan', last: 'Turing' } } }, - { body: 'Wish I had read this before.', author: { name: { first: 'Alan', last: 'Turing' } } }, - ], - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - }); -}); - -describe('@include', () => { - it('supports @include when a boolean condition is not met', async () => { - const query = `#graphql - query GetReviewers { - topReviews { - body - author @include(if: false) { - username - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - topReviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { body: 'Could be better.' }, - { body: 'Prefer something else.' }, - { body: 'Wish I had read this before.' }, - ], - }); - - expect(queryPlan).not.toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - }); - - it('supports @include when a boolean condition is not met (variable driven)', async () => { - const query = `#graphql - query GetReviewers($include: Boolean!) { - topReviews { - body - author @include(if: $include) { - username - } - } - } - `; - - const include = false; - const { data, queryPlan } = await execute({ - query, - variables: { include }, - }); - - expect(data).toEqual({ - topReviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { body: 'Could be better.' }, - { body: 'Prefer something else.' }, - { body: 'Wish I had read this before.' }, - ], - }); - - expect(queryPlan).not.toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - }); - - // Data looks good here, suspect the matcher is incorrect - // Added the query plan snapshot for a view. - it('supports @include when a boolean condition is met', async () => { - const query = `#graphql - query GetReviewers { - topReviews { - body - author @include(if: true) { - name { - first - last - } - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - topReviews: [ - { body: 'Love it!', author: { name: { first: 'Ada', last: 'Lovelace' } } }, - { body: 'Too expensive.', author: { name: { first: 'Ada', last: 'Lovelace' } } }, - { body: 'Could be better.', author: { name: { first: 'Alan', last: 'Turing' } } }, - { body: 'Prefer something else.', author: { name: { first: 'Alan', last: 'Turing' } } }, - { body: 'Wish I had read this before.', author: { name: { first: 'Alan', last: 'Turing' } } }, - ], - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - }); - - // Data looks good here, suspect the matcher is incorrect - // Added the query plan snapshot for a view. - it('supports @include when a boolean condition is met (variable driven)', async () => { - const query = `#graphql - query GetReviewers($include: Boolean!) { - topReviews { - body - author @include(if: $include) { - name { - first - last - } - } - } - } - `; - - const include = true; - const { data, queryPlan } = await execute({ - query, - variables: { include }, - }); - - expect(data).toEqual({ - topReviews: [ - { body: 'Love it!', author: { name: { first: 'Ada', last: 'Lovelace' } } }, - { body: 'Too expensive.', author: { name: { first: 'Ada', last: 'Lovelace' } } }, - { body: 'Could be better.', author: { name: { first: 'Alan', last: 'Turing' } } }, - { body: 'Prefer something else.', author: { name: { first: 'Alan', last: 'Turing' } } }, - { body: 'Wish I had read this before.', author: { name: { first: 'Alan', last: 'Turing' } } }, - ], - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/complex-key.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/complex-key.test.ts deleted file mode 100644 index a413c3a..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/complex-key.test.ts +++ /dev/null @@ -1,217 +0,0 @@ -import gql from 'graphql-tag'; -import { execute, ServiceDefinitionModule } from '../execution-utils'; -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -const users = [ - { id: '1', name: 'Trevor Scheer', organizationId: '1', __typename: 'User' }, - { id: '1', name: 'Trevor Scheer', organizationId: '2', __typename: 'User' }, - { id: '2', name: 'James Baxley', organizationId: '1', __typename: 'User' }, - { id: '2', name: 'James Baxley', organizationId: '3', __typename: 'User' }, -]; - -const organizations = [ - { id: '1', name: 'Apollo', __typename: 'Organization' }, - { id: '2', name: 'Wayfair', __typename: 'Organization' }, - { id: '3', name: 'Major League Soccer', __typename: 'Organization' }, -]; - -const reviews = [ - { id: '1', authorId: '1', organizationId: '1', __typename: 'Review' }, - { id: '2', authorId: '1', organizationId: '2', __typename: 'Review' }, - { id: '3', authorId: '2', organizationId: '1', __typename: 'Review' }, - { id: '4', authorId: '2', organizationId: '3', __typename: 'Review' }, -]; - -const reviewService: ServiceDefinitionModule = { - name: 'review', - typeDefs: gql` - type Query { - reviews: [Review!]! - } - - type Review { - id: ID! - author: User! - body: String! - } - - # TODO: consider ergonomics of external types. - extend type User @key(fields: "id organization { id }") { - id: ID! @external - organization: Organization! @external - } - - extend type Organization { - id: ID! @external - } - `, - resolvers: { - Query: { - reviews() { - return reviews; - }, - }, - Review: { - author(review) { - return { - id: review.authorId, - organization: { - id: review.organizationId, - }, - }; - }, - }, - }, -}; - -const userService: ServiceDefinitionModule = { - name: 'user', - typeDefs: gql` - type User @key(fields: "id organization { id }") { - id: ID! - name: String! - organization: Organization! - } - - type Organization @key(fields: "id") { - id: ID! - name: String! - } - `, - resolvers: { - User: { - __resolveReference(reference) { - return users.find( - user => - user.id === reference.id && - user.organizationId === reference.organization.id, - ); - }, - organization(user) { - return { id: user.organizationId }; - }, - }, - Organization: { - __resolveObject(object) { - return organizations.find(org => org.id === object.id); - }, - }, - }, -}; - -it('works fetches data correctly with complex / nested @key fields', async () => { - const query = `#graphql - query Reviews { - reviews { - author { - name - organization { - name - } - } - } - } - `; - - const { data, queryPlan } = await execute( - { - query, - }, - [userService, reviewService], - ); - - expect(data).toEqual({ - reviews: [ - { - author: { - name: 'Trevor Scheer', - organization: { - name: 'Apollo', - }, - }, - }, - { - author: { - name: 'Trevor Scheer', - organization: { - name: 'Wayfair', - }, - }, - }, - { - author: { - name: 'James Baxley', - organization: { - name: 'Apollo', - }, - }, - }, - { - author: { - name: 'James Baxley', - organization: { - name: 'Major League Soccer', - }, - }, - }, - ], - }); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "review") { - { - reviews { - author { - __typename - id - organization { - id - __typename - } - } - } - } - }, - Parallel { - Flatten(path: "reviews.@.author") { - Fetch(service: "user") { - { - ... on User { - __typename - id - organization { - id - } - } - } => - { - ... on User { - name - } - } - }, - }, - Flatten(path: "reviews.@.author.organization") { - Fetch(service: "user") { - { - ... on Organization { - __typename - id - } - } => - { - ... on Organization { - name - } - } - }, - }, - }, - }, - } - `); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/custom-directives.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/custom-directives.test.ts deleted file mode 100644 index 5b490fb..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/custom-directives.test.ts +++ /dev/null @@ -1,165 +0,0 @@ -import gql from 'graphql-tag'; -import { execute } from '../execution-utils'; -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; -import { fixtures } from 'apollo-federation-integration-testsuite'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -describe('custom executable directives', () => { - it('successfully passes directives along in requests to an underlying service', async () => { - const query = `#graphql - query GetReviewers { - topReviews { - body @stream - } - } - `; - - const { errors, queryPlan } = await execute({ - query, - }); - - expect(errors).toBeUndefined(); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "reviews") { - { - topReviews { - body @stream - } - } - }, - } - `); - }); - - it('successfully passes directives and their variables along in requests to underlying services', async () => { - const query = `#graphql - query GetReviewers { - topReviews { - body @stream - author @transform(from: "JSON") { - name @stream { - first - last - } - } - } - } - `; - - const { errors, queryPlan } = await execute({ - query, - }); - - expect(errors).toBeUndefined(); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "reviews") { - { - topReviews { - body @stream - author @transform(from: "JSON") { - __typename - id - } - } - } - }, - Flatten(path: "topReviews.@.author") { - Fetch(service: "accounts") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - name @stream { - first - last - } - } - } - }, - }, - }, - } - `); - }); - - it("returns validation errors when directives aren't present across all services", async () => { - const invalidService = { - name: 'invalidService', - typeDefs: gql` - directive @invalid on QUERY - `, - }; - - const query = `#graphql - query GetReviewers { - topReviews { - body @stream - } - } - `; - - expect( - execute( - { - query, - }, - [...fixtures, invalidService], - ), - ).rejects.toThrowErrorMatchingInlineSnapshot(` -"[@stream] -> Custom directives must be implemented in every service. The following services do not implement the @stream directive: invalidService. - -[@transform] -> Custom directives must be implemented in every service. The following services do not implement the @transform directive: invalidService. - -[@invalid] -> Custom directives must be implemented in every service. The following services do not implement the @invalid directive: accounts, books, documents, inventory, product, reviews." -`); - }); - - it("returns validation errors when directives aren't identical across all services", async () => { - const invalidService = { - name: 'invalid', - typeDefs: gql` - directive @stream on QUERY - `, - }; - - const query = `#graphql - query GetReviewers { - topReviews { - body @stream - } - } - `; - - expect( - execute( - { - query, - }, - [...fixtures, invalidService], - ), - ).rejects.toThrowErrorMatchingInlineSnapshot(` -"[@transform] -> Custom directives must be implemented in every service. The following services do not implement the @transform directive: invalid. - -[@stream] -> custom directives must be defined identically across all services. See below for a list of current implementations: - accounts: directive @stream on FIELD - books: directive @stream on FIELD - documents: directive @stream on FIELD - inventory: directive @stream on FIELD - product: directive @stream on FIELD - reviews: directive @stream on FIELD - invalid: directive @stream on QUERY" -`); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/execution-style.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/execution-style.test.ts deleted file mode 100644 index 30a1088..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/execution-style.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { execute } from '../execution-utils'; - -describe('query', () => { - it('supports parallel root fields', async () => { - const query = `#graphql - query GetUserAndReviews { - me { - username - } - topReviews { - body - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { username: '@ada' }, - topReviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { body: 'Could be better.' }, - { body: 'Prefer something else.' }, - { body: 'Wish I had read this before.' }, - ], - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - // FIXME: determine matcher for execution order - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/fragments.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/fragments.test.ts deleted file mode 100644 index 939cac5..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/fragments.test.ts +++ /dev/null @@ -1,237 +0,0 @@ -import { disableFragmentWarnings } from 'graphql-tag'; -import { execute } from '../execution-utils'; - -beforeAll(() => { - disableFragmentWarnings(); -}); -it('supports inline fragments (one level)', async () => { - const query = `#graphql - query GetUser { - me { - ... on User { - username - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - username: '@ada', - }, - }); - - expect(queryPlan).toCallService('accounts'); -}); - -it('supports inline fragments (multi level)', async () => { - const query = `#graphql - query GetUser { - me { - ... on User { - username - reviews { - ... on Review { - body - product { - ... on Product { - ... on Book { - title - } - ... on Furniture { - name - } - } - } - } - } - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - username: '@ada', - reviews: [ - { body: 'Love it!', product: { name: 'Table' } }, - { body: 'Too expensive.', product: { name: 'Couch' } }, - { body: 'A classic.', product: { title: 'Design Patterns' } }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toCallService('books'); -}); - -it('supports named fragments (one level)', async () => { - const query = `#graphql - query GetUser { - me { - ...userDetails - } - } - - fragment userDetails on User { - username - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - username: '@ada', - }, - }); - - expect(queryPlan).toCallService('accounts'); -}); - -it('supports multiple named fragments (one level, mixed ordering)', async () => { - const query = `#graphql - fragment userInfo on User { - name { - first - last - } - } - query GetUser { - me { - ...userDetails - ...userInfo - } - } - - fragment userDetails on User { - username - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - username: '@ada', - name: { - first: 'Ada', - last: 'Lovelace', - } - }, - }); - - expect(queryPlan).toCallService('accounts'); -}); - -it('supports multiple named fragments (multi level, mixed ordering)', async () => { - const query = `#graphql - fragment reviewDetails on Review { - body - } - query GetUser { - me { - ...userDetails - } - } - - fragment userDetails on User { - username - reviews { - ...reviewDetails - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - reviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { body: 'A classic.' }, - ], - username: '@ada', - }, - }); - - expect(queryPlan).toCallService('accounts'); -}); - -it('supports variables within fragments', async () => { - const query = `#graphql - query GetUser($format: Boolean) { - me { - ...userDetails - } - } - - fragment userDetails on User { - username - reviews { - body(format: $format) - } - } - `; - - const format = true; - const { data, queryPlan } = await execute({ - query, - variables: { format }, - }); - - expect(data).toEqual({ - me: { - username: '@ada', - reviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { body: 'A classic.' }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); -}); - -it('supports root fragments', async () => { - const query = `#graphql - query GetUser { - ... on Query { - me { - username - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - username: '@ada', - }, - }); - - expect(queryPlan).toCallService('accounts'); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/list-key.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/list-key.test.ts deleted file mode 100644 index 1573ecd..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/list-key.test.ts +++ /dev/null @@ -1,128 +0,0 @@ -import gql from 'graphql-tag'; -import { execute, ServiceDefinitionModule } from '../execution-utils'; -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -const users = [ - { id: ['1', '1'], name: 'Trevor Scheer', __typename: 'User' }, - { id: ['2', '2'], name: 'James Baxley', __typename: 'User' }, -]; - -const reviews = [ - { id: '1', authorId: ['1', '1'], body: 'Good', __typename: 'Review' }, - { id: '2', authorId: ['2', '2'], body: 'Bad', __typename: 'Review' }, -]; - -const reviewService: ServiceDefinitionModule = { - name: 'review', - typeDefs: gql` - type Query { - reviews: [Review!]! - } - - type Review { - id: ID! - author: User! - body: String! - } - - extend type User @key(fields: "id") { - id: [ID!]! @external - } - `, - resolvers: { - Query: { - reviews() { - return reviews; - }, - }, - Review: { - author(review) { - return { - id: review.authorId, - }; - }, - }, - }, -}; - -const listsAreEqual = (as: T[], bs: T[]) => - as.length === bs.length && as.every((a, i) => bs[i] === as[i]); - -const userService: ServiceDefinitionModule = { - name: 'user', - typeDefs: gql` - type User @key(fields: "id") { - id: [ID!]! - name: String! - } - `, - resolvers: { - User: { - __resolveReference(reference) { - return users.find(user => listsAreEqual(user.id, reference.id)); - }, - }, - }, -}; - -it('fetches data correctly list type @key fields', async () => { - const query = `#graphql - query Reviews { - reviews { - body - author { - name - } - } - } - `; - - const { data, queryPlan } = await execute( - { - query, - }, - [userService, reviewService], - ); - - expect(data).toEqual({ - reviews: [ - { body: 'Good', author: { name: 'Trevor Scheer' } }, - { body: 'Bad', author: { name: 'James Baxley' } }, - ], - }); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "review") { - { - reviews { - body - author { - __typename - id - } - } - } - }, - Flatten(path: "reviews.@.author") { - Fetch(service: "user") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - name - } - } - }, - }, - }, - } - `); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/logger.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/logger.test.ts deleted file mode 100644 index 9efd876..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/logger.test.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { ApolloGateway } from '../..'; -import { Logger } from "apollo-server-types"; -import { PassThrough } from "stream"; - -import * as winston from "winston"; -import WinstonTransport from 'winston-transport'; -import * as bunyan from "bunyan"; -import * as loglevel from "loglevel"; -import * as log4js from "log4js"; - -const LOWEST_LOG_LEVEL = "debug"; - -const KNOWN_DEBUG_MESSAGE = "Checking service definitions..."; - -async function triggerKnownDebugMessage(logger: Logger) { - // Trigger a known error. - // This is a bit brittle since it merely leverages a known debug log - // message outside of the constructor, but it seemed worth testing - // the compatibility with `ApolloGateway` itself rather than generically. - // The error does not matter, so it is caught and ignored. - await new ApolloGateway({ logger }).load().catch(_e => {}); -} - -describe("logger", () => { - it("works with 'winston'", async () => { - const sink = jest.fn(); - const transport = new class extends WinstonTransport { - constructor() { - super({ - format: winston.format.json(), - }); - } - - log(info: any) { - sink(info); - } - }; - - const logger = winston.createLogger({ level: 'debug' }).add(transport); - - await triggerKnownDebugMessage(logger); - - expect(sink).toHaveBeenCalledWith(expect.objectContaining({ - level: LOWEST_LOG_LEVEL, - message: KNOWN_DEBUG_MESSAGE, - })); - }); - - it("works with 'bunyan'", async () => { - const sink = jest.fn(); - - // Bunyan uses streams for its logging implementations. - const writable = new PassThrough(); - writable.on("data", data => sink(JSON.parse(data.toString()))); - - const logger = bunyan.createLogger({ - name: "test-logger-bunyan", - streams: [{ - level: LOWEST_LOG_LEVEL, - stream: writable, - }] - }); - - await triggerKnownDebugMessage(logger); - - expect(sink).toHaveBeenCalledWith(expect.objectContaining({ - level: bunyan.DEBUG, - msg: KNOWN_DEBUG_MESSAGE, - })); - }); - - it("works with 'loglevel'", async () => { - const sink = jest.fn(); - - const logger = loglevel.getLogger("test-logger-loglevel") - logger.methodFactory = (_methodName, level): loglevel.LoggingMethod => - (message) => sink({ level, message }); - - // The `setLevel` method must be called after overwriting `methodFactory`. - // This is an intentional API design pattern of the loglevel package: - // https://www.npmjs.com/package/loglevel#writing-plugins - logger.setLevel(loglevel.levels.DEBUG); - - await triggerKnownDebugMessage(logger); - - expect(sink).toHaveBeenCalledWith({ - level: loglevel.levels.DEBUG, - message: KNOWN_DEBUG_MESSAGE, - }); - }); - - it("works with 'log4js'", async () => { - const sink = jest.fn(); - - log4js.configure({ - appenders: { - custom: { - type: { - configure: () => - (loggingEvent: log4js.LoggingEvent) => sink(loggingEvent) - } - } - }, - categories: { - default: { - appenders: ['custom'], - level: LOWEST_LOG_LEVEL, - } - } - }); - - const logger = log4js.getLogger(); - logger.level = LOWEST_LOG_LEVEL; - - await triggerKnownDebugMessage(logger); - - expect(sink).toHaveBeenCalledWith(expect.objectContaining({ - level: log4js.levels.DEBUG, - data: [KNOWN_DEBUG_MESSAGE], - })); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/merge-arrays.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/merge-arrays.test.ts deleted file mode 100644 index 2748b0d..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/merge-arrays.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { execute } from '../execution-utils'; - -describe('query', () => { - it('supports arrays', async () => { - const query = `#graphql - query MergeArrays { - me { - # goodAddress - goodDescription - metadata { - address - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - goodDescription: true, - metadata: [ - { - address: '1', - }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/multiple-key.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/multiple-key.test.ts deleted file mode 100644 index 6045025..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/multiple-key.test.ts +++ /dev/null @@ -1,328 +0,0 @@ -import gql from 'graphql-tag'; -import { execute, ServiceDefinitionModule } from '../execution-utils'; -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -const users = [ - { ssn: '111-11-1111', name: 'Trevor', id: '10', __typename: 'User' }, - { ssn: '222-22-2222', name: 'Scheer', id: '20', __typename: 'User' }, - { ssn: '333-33-3333', name: 'James', id: '30', __typename: 'User' }, - { ssn: '444-44-4444', name: 'Baxley', id: '40', __typename: 'User' }, -]; - -const reviews = [ - { id: '1', authorId: '10', body: 'A', __typename: 'Review' }, - { id: '2', authorId: '20', body: 'B', __typename: 'Review' }, - { id: '3', authorId: '30', body: 'C', __typename: 'Review' }, - { id: '4', authorId: '40', body: 'D', __typename: 'Review' }, -]; - -const reviewService: ServiceDefinitionModule = { - name: 'reviews', - typeDefs: gql` - extend type Query { - reviews: [Review!]! - } - - type Review { - id: ID! - author: User! - body: String! - } - - extend type User @key(fields: "id") { - id: ID! @external - reviews: [Review!]! - } - `, - resolvers: { - Query: { - reviews() { - return reviews; - }, - }, - User: { - reviews(user) { - return reviews.filter(review => review.authorId === user.id); - }, - }, - Review: { - author(review) { - return { - id: review.authorId, - }; - }, - }, - }, -}; - -const actuaryService: ServiceDefinitionModule = { - name: 'actuary', - typeDefs: gql` - extend type User @key(fields: "ssn") { - ssn: ID! @external - risk: Float - } - `, - resolvers: { - User: { - risk(user) { - return user.ssn[0] / 10; - }, - }, - }, -}; - -const userService: ServiceDefinitionModule = { - name: 'users', - typeDefs: gql` - extend type Query { - users: [User!]! - } - - type Group { - id: ID - name: String - } - - type User - @key(fields: "ssn") - @key(fields: "id") - @key(fields: "group { id }") { - id: ID! - ssn: ID! - name: String! - group: Group - } - `, - resolvers: { - Query: { - users() { - return users; - }, - }, - User: { - group: () => ({ id: 1, name: 'Apollo GraphQL' }), - __resolveReference(reference) { - if (reference.ssn) - return users.find(user => user.ssn === reference.ssn); - else return users.find(user => user.id === reference.id); - }, - }, - }, -}; - -it('fetches data correctly with multiple @key fields', async () => { - const query = `#graphql - query { - reviews { - body - author { - name - risk - } - } - } - `; - - const { data, queryPlan, errors } = await execute( - { - query, - }, - [userService, reviewService, actuaryService], - ); - - expect(errors).toBeFalsy(); - expect(data).toEqual({ - reviews: [ - { - body: 'A', - author: { - risk: 0.1, - name: 'Trevor', - }, - }, - { - body: 'B', - author: { - risk: 0.2, - name: 'Scheer', - }, - }, - { - body: 'C', - author: { - risk: 0.3, - name: 'James', - }, - }, - { - body: 'D', - author: { - risk: 0.4, - name: 'Baxley', - }, - }, - ], - }); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "reviews") { - { - reviews { - body - author { - __typename - id - } - } - } - }, - Flatten(path: "reviews.@.author") { - Fetch(service: "users") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - name - __typename - ssn - } - } - }, - }, - Flatten(path: "reviews.@.author") { - Fetch(service: "actuary") { - { - ... on User { - __typename - ssn - } - } => - { - ... on User { - risk - } - } - }, - }, - }, - } - `); -}); - -it('fetches keys as needed to reduce round trip queries', async () => { - const query = `#graphql - query { - users { - risk - reviews { - body - } - } - } - `; - - const { data, queryPlan, errors } = await execute( - { - query, - }, - [userService, reviewService, actuaryService] - ); - - expect(errors).toBeFalsy(); - expect(data).toEqual({ - users: [ - { - risk: 0.1, - reviews: [ - { - body: 'A', - }, - ], - }, - { - risk: 0.2, - reviews: [ - { - body: 'B', - }, - ], - }, - { - risk: 0.3, - reviews: [ - { - body: 'C', - }, - ], - }, - { - risk: 0.4, - reviews: [ - { - body: 'D', - }, - ], - }, - ], - }); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "users") { - { - users { - __typename - ssn - id - } - } - }, - Parallel { - Flatten(path: "users.@") { - Fetch(service: "actuary") { - { - ... on User { - __typename - ssn - } - } => - { - ... on User { - risk - } - } - }, - }, - Flatten(path: "users.@") { - Fetch(service: "reviews") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - reviews { - body - } - } - } - }, - }, - }, - }, - } - `); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/mutations.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/mutations.test.ts deleted file mode 100644 index fef0a50..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/mutations.test.ts +++ /dev/null @@ -1,284 +0,0 @@ -import { execute } from '../execution-utils'; -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; -import { accounts, reviews } from 'apollo-federation-integration-testsuite'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -function spyOnResolver(resolverMap: any, resolverName: T) { - return jest.spyOn(resolverMap, resolverName).mockName(resolverName); -} - -it('supports mutations', async () => { - const query = `#graphql - mutation Login($username: String!, $password: String!) { - login(username: $username, password: $password) { - reviews { - product { - upc - } - } - } - } - `; - - const variables = { username: '@complete', password: 'css_completes_me' }; - const { data, queryPlan } = await execute({ - query, - variables, - }); - - expect(data).toEqual({ - login: { - reviews: [ - { product: { upc: '3' } }, - { product: { upc: '1' } }, - { product: { upc: '0262510871' } }, - { product: { upc: '0136291554' } }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); -}); - -it('returning across service boundaries', async () => { - const query = `#graphql - mutation Review($upc: String!, $body: String!) { - reviewProduct(upc: $upc, body: $body) { - ... on Furniture { - name - } - } - } - `; - - const variables = { upc: '1', body: 'A great table' }; - const { data, queryPlan } = await execute({ - query, - variables, - }); - - expect(data).toEqual({ - reviewProduct: { - name: 'Table', - }, - }); - - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); -}); - -it('multiple root mutations', async () => { - const login = spyOnResolver(accounts.resolvers.Mutation, 'login'); - const reviewProduct = spyOnResolver( - reviews.resolvers.Mutation, - 'reviewProduct', - ); - - const query = `#graphql - mutation LoginAndReview( - $username: String! - $password: String! - $upc: String! - $body: String! - ) { - login(username: $username, password: $password) { - reviews { - product { - upc - } - } - } - reviewProduct(upc: $upc, body: $body) { - ... on Furniture { - name - } - } - } - `; - - const variables = { - username: '@complete', - password: 'css_completes_me', - upc: '1', - body: 'A great table.', - }; - const { data, queryPlan } = await execute({ - query, - variables, - }); - - expect(data).toEqual({ - login: { - reviews: [ - { product: { upc: '3' } }, - { product: { upc: '1' } }, - { product: { upc: '0262510871' } }, - { product: { upc: '0136291554' } }, - ], - }, - reviewProduct: { - name: 'Table', - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); - - expect(login).toHaveBeenCalledBefore(reviewProduct); -}); - -it('multiple root mutations with correct service order', async () => { - const reviewsMutations = reviews.resolvers.Mutation; - const reviewProduct = spyOnResolver(reviewsMutations, 'reviewProduct'); - const login = spyOnResolver(accounts.resolvers.Mutation, 'login'); - const updateReview = spyOnResolver(reviewsMutations, 'updateReview'); - const deleteReview = spyOnResolver(reviewsMutations, 'deleteReview'); - - const query = `#graphql - mutation LoginAndReview( - $upc: String! - $body: String! - $updatedReview: UpdateReviewInput! - $username: String! - $password: String! - $reviewId: ID! - ) { - reviewProduct(upc: $upc, body: $body) { - ... on Furniture { - upc - } - } - updateReview(review: $updatedReview) { - id - body - } - login(username: $username, password: $password) { - reviews { - product { - upc - } - } - } - deleteReview(id: $reviewId) - } - `; - - const variables = { - upc: '1', - body: 'A great table.', - updatedReview: { - id: '1', - body: 'An excellent table.', - }, - username: '@complete', - password: 'css_completes_me', - reviewId: '6', - }; - const { data, queryPlan } = await execute({ - query, - variables, - }); - - expect(data).toEqual({ - deleteReview: true, - login: { - reviews: [ - { product: { upc: '3' } }, - { product: { upc: '1' } }, - { product: { upc: '0262510871' } }, - { product: { upc: '0136291554' } }, - ], - }, - reviewProduct: { - upc: '1', - }, - updateReview: { - body: 'An excellent table.', - id: '1', - }, - }); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "reviews") { - { - reviewProduct(upc: $upc, body: $body) { - __typename - ... on Furniture { - upc - } - } - updateReview(review: $updatedReview) { - id - body - } - } - }, - Fetch(service: "accounts") { - { - login(username: $username, password: $password) { - __typename - id - } - } - }, - Flatten(path: "login") { - Fetch(service: "reviews") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - reviews { - product { - __typename - ... on Book { - __typename - isbn - } - ... on Furniture { - upc - } - } - } - } - } - }, - }, - Flatten(path: "login.reviews.@.product") { - Fetch(service: "product") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - upc - } - } - }, - }, - Fetch(service: "reviews") { - { - deleteReview(id: $reviewId) - } - }, - }, - } - `); - - expect(reviewProduct).toHaveBeenCalledBefore(updateReview); - expect(updateReview).toHaveBeenCalledBefore(login); - expect(login).toHaveBeenCalledBefore(deleteReview); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/networkRequests.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/networkRequests.test.ts deleted file mode 100644 index 38a6ddc..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/networkRequests.test.ts +++ /dev/null @@ -1,472 +0,0 @@ -import nock from 'nock'; -import { fetch } from 'apollo-server-env'; -import { Logger } from 'apollo-server-types'; -import { ApolloGateway, GCS_RETRY_COUNT, getDefaultGcsFetcher } from '../..'; -import { - mockSDLQuerySuccess, - mockServiceHealthCheckSuccess, - mockServiceHealthCheck, - mockStorageSecretSuccess, - mockStorageSecret, - mockCompositionConfigLinkSuccess, - mockCompositionConfigLink, - mockCompositionConfigsSuccess, - mockCompositionConfigs, - mockImplementingServicesSuccess, - mockImplementingServices, - mockRawPartialSchemaSuccess, - mockRawPartialSchema, - apiKeyHash, - graphId, -} from './nockMocks'; - -import loadServicesFromStorage = require("../../loadServicesFromStorage"); - -// This is a nice DX hack for GraphQL code highlighting and formatting within the file. -// Anything wrapped within the gql tag within this file is just a string, not an AST. -const gql = String.raw; - -export interface MockService { - gcsDefinitionPath: string; - partialSchemaPath: string; - url: string; - sdl: string; -} - -const service: MockService = { - gcsDefinitionPath: 'service-definition.json', - partialSchemaPath: 'accounts-partial-schema.json', - url: 'http://localhost:4001', - sdl: gql` - extend type Query { - me: User - everyone: [User] - } - - "This is my User" - type User @key(fields: "id") { - id: ID! - name: String - username: String - } - `, -}; - -const updatedService: MockService = { - gcsDefinitionPath: 'updated-service-definition.json', - partialSchemaPath: 'updated-accounts-partial-schema.json', - url: 'http://localhost:4002', - sdl: gql` - extend type Query { - me: User - everyone: [User] - } - - "This is my updated User" - type User @key(fields: "id") { - id: ID! - name: String - username: String - } - `, -}; - -let fetcher: typeof fetch; -let logger: Logger; - -beforeEach(() => { - if (!nock.isActive()) nock.activate(); - - fetcher = getDefaultGcsFetcher().defaults({ - retry: { - retries: GCS_RETRY_COUNT, - minTimeout: 0, - maxTimeout: 0, - }, - }); - - const warn = jest.fn(); - const debug = jest.fn(); - const error = jest.fn(); - const info = jest.fn(); - - logger = { - warn, - debug, - error, - info, - }; -}); - -afterEach(() => { - expect(nock.isDone()).toBeTruthy(); - nock.cleanAll(); - nock.restore(); -}); - -it('Queries remote endpoints for their SDLs', async () => { - mockSDLQuerySuccess(service); - - const gateway = new ApolloGateway({ - serviceList: [{ name: 'accounts', url: service.url }], - logger - }); - await gateway.load(); - expect(gateway.schema!.getType('User')!.description).toBe('This is my User'); -}); - -it('Extracts service definitions from remote storage', async () => { - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([service]); - mockImplementingServicesSuccess(service); - mockRawPartialSchemaSuccess(service); - - const gateway = new ApolloGateway({ logger }); - - await gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }); - expect(gateway.schema!.getType('User')!.description).toBe('This is my User'); -}); - -it.each([ - ['warned', 'present'], - ['not warned', 'absent'], -])('conflicting configurations are %s about when %s', async (_word, mode) => { - const isConflict = mode === 'present'; - let blockerResolve: () => void; - const blocker = new Promise(resolve => (blockerResolve = resolve)); - const original = loadServicesFromStorage.getServiceDefinitionsFromStorage; - const spyGetServiceDefinitionsFromStorage = jest - .spyOn(loadServicesFromStorage, 'getServiceDefinitionsFromStorage') - .mockImplementationOnce(async (...args) => { - try { - return await original(...args); - } catch (e) { - throw e; - } finally { - setImmediate(blockerResolve); - } - }); - - mockStorageSecretSuccess(); - if (isConflict) { - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([service]); - mockImplementingServicesSuccess(service); - mockRawPartialSchemaSuccess(service); - } else { - mockCompositionConfigLink().reply(403); - } - - mockSDLQuerySuccess(service); - - const gateway = new ApolloGateway({ - serviceList: [ - { name: 'accounts', url: service.url }, - ], - logger - }); - - await gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }); - await blocker; // Wait for the definitions to be "fetched". - - (isConflict - ? expect(logger.warn) - : expect(logger.warn).not - ).toHaveBeenCalledWith(expect.stringMatching( - /A local gateway service list is overriding a managed federation configuration/)); - spyGetServiceDefinitionsFromStorage.mockRestore(); -}); - -// This test has been flaky for a long time, and fails consistently after changes -// introduced by https://github.com/apollographql/apollo-server/pull/4277. -// I've decided to skip this test for now with hopes that we can one day -// determine the root cause and test this behavior in a reliable manner. -it.skip('Rollsback to a previous schema when triggered', async () => { - // Init - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([service]); - mockImplementingServicesSuccess(service); - mockRawPartialSchemaSuccess(service); - - // Update 1 - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([updatedService]); - mockImplementingServicesSuccess(updatedService); - mockRawPartialSchemaSuccess(updatedService); - - // Rollback - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([service]); - mockImplementingServices(service).reply(304); - mockRawPartialSchema(service).reply(304); - - let firstResolve: () => void; - let secondResolve: () => void; - let thirdResolve: () => void - const firstSchemaChangeBlocker = new Promise(res => (firstResolve = res)); - const secondSchemaChangeBlocker = new Promise(res => (secondResolve = res)); - const thirdSchemaChangeBlocker = new Promise(res => (thirdResolve = res)); - - const onChange = jest - .fn() - .mockImplementationOnce(() => firstResolve()) - .mockImplementationOnce(() => secondResolve()) - .mockImplementationOnce(() => thirdResolve()); - - const gateway = new ApolloGateway({ logger }); - // @ts-ignore for testing purposes, a short pollInterval is ideal so we'll override here - gateway.experimental_pollInterval = 100; - - gateway.onSchemaChange(onChange); - await gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }); - - await firstSchemaChangeBlocker; - expect(onChange).toHaveBeenCalledTimes(1); - - await secondSchemaChangeBlocker; - expect(onChange).toHaveBeenCalledTimes(2); - - await thirdSchemaChangeBlocker; - expect(onChange).toHaveBeenCalledTimes(3); -}); - -function failNTimes(n: number, fn: () => nock.Interceptor) { - for (let i = 0; i < n; i++) { - fn().reply(500); - } -} - -it(`Retries GCS (up to ${GCS_RETRY_COUNT} times) on failure for each request and succeeds`, async () => { - failNTimes(GCS_RETRY_COUNT, mockStorageSecret); - mockStorageSecretSuccess(); - - failNTimes(GCS_RETRY_COUNT, mockCompositionConfigLink); - mockCompositionConfigLinkSuccess(); - - failNTimes(GCS_RETRY_COUNT, mockCompositionConfigs); - mockCompositionConfigsSuccess([service]); - - failNTimes(GCS_RETRY_COUNT, () => mockImplementingServices(service)); - mockImplementingServicesSuccess(service); - - failNTimes(GCS_RETRY_COUNT, () => mockRawPartialSchema(service)); - mockRawPartialSchemaSuccess(service); - - const gateway = new ApolloGateway({ fetcher, logger }); - - await gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }); - expect(gateway.schema!.getType('User')!.description).toBe('This is my User'); -}); - -// This test is reliably failing in its current form. It's mostly testing that -// `make-fetch-happen` is doing its retries properly and we have proof that, -// generally speaking, retries are working, so we'll disable this until we can -// re-visit it. -it.skip(`Fails after the ${GCS_RETRY_COUNT + 1}th attempt to reach GCS`, async () => { - failNTimes(GCS_RETRY_COUNT + 1, mockStorageSecret); - - const gateway = new ApolloGateway({ fetcher, logger }); - await expect( - gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }), - ).rejects.toThrowErrorMatchingInlineSnapshot( - `"Could not communicate with Apollo storage: "`, - ); -}); - -it(`Errors when the secret isn't hosted on GCS`, async () => { - mockStorageSecret().reply( - 403, - `AccessDenied - Anonymous caller does not have storage.objects.get`, - { 'content-type': 'application/xml' }, - ); - - const gateway = new ApolloGateway({ fetcher, logger }); - await expect( - gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }), - ).rejects.toThrowErrorMatchingInlineSnapshot( - `"Unable to authenticate with Apollo storage while fetching https://storage-secrets.api.apollographql.com/federated-service/storage-secret/dd55a79d467976346d229a7b12b673ce.json. Ensure that the API key is configured properly and that a federated service has been pushed. For details, see https://go.apollo.dev/g/resolve-access-denied."`, - ); -}); - -describe('Downstream service health checks', () => { - describe('Unmanaged mode', () => { - it(`Performs health checks to downstream services on load`, async () => { - mockSDLQuerySuccess(service); - mockServiceHealthCheckSuccess(service); - - const gateway = new ApolloGateway({ - logger, - serviceList: [{ name: 'accounts', url: service.url }], - serviceHealthCheck: true, - }); - - await gateway.load(); - expect(gateway.schema!.getType('User')!.description).toBe('This is my User'); - }); - - it(`Rejects on initial load when health check fails`, async () => { - mockSDLQuerySuccess(service); - mockServiceHealthCheck(service).reply(500); - - const gateway = new ApolloGateway({ - serviceList: [{ name: 'accounts', url: service.url }], - serviceHealthCheck: true, - logger, - }); - - await expect(gateway.load()).rejects.toThrowErrorMatchingInlineSnapshot( - `"500: Internal Server Error"`, - ); - }); - }); - - describe('Managed mode', () => { - it('Performs health checks to downstream services on load', async () => { - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([service]); - mockImplementingServicesSuccess(service); - mockRawPartialSchemaSuccess(service); - - mockServiceHealthCheckSuccess(service); - - const gateway = new ApolloGateway({ serviceHealthCheck: true, logger }); - - await gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }); - expect(gateway.schema!.getType('User')!.description).toBe('This is my User'); - }); - - it('Rejects on initial load when health check fails', async () => { - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([service]); - mockImplementingServicesSuccess(service); - mockRawPartialSchemaSuccess(service); - - mockServiceHealthCheck(service).reply(500); - - const gateway = new ApolloGateway({ serviceHealthCheck: true, logger }); - - await expect( - gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }), - ).rejects.toThrowErrorMatchingInlineSnapshot(`"500: Internal Server Error"`); - }); - - // This test has been flaky for a long time, and fails consistently after changes - // introduced by https://github.com/apollographql/apollo-server/pull/4277. - // I've decided to skip this test for now with hopes that we can one day - // determine the root cause and test this behavior in a reliable manner. - it.skip('Rolls over to new schema when health check succeeds', async () => { - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([service]); - mockImplementingServicesSuccess(service); - mockRawPartialSchemaSuccess(service); - mockServiceHealthCheckSuccess(service); - - // Update - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([updatedService]); - mockImplementingServicesSuccess(updatedService); - mockRawPartialSchemaSuccess(updatedService); - mockServiceHealthCheckSuccess(updatedService); - - let resolve1: () => void; - let resolve2: () => void; - const schemaChangeBlocker1 = new Promise(res => (resolve1 = res)); - const schemaChangeBlocker2 = new Promise(res => (resolve2 = res)); - const onChange = jest - .fn() - .mockImplementationOnce(() => resolve1()) - .mockImplementationOnce(() => resolve2()); - - const gateway = new ApolloGateway({ - serviceHealthCheck: true, - logger, - }); - // @ts-ignore for testing purposes, a short pollInterval is ideal so we'll override here - gateway.experimental_pollInterval = 100; - - gateway.onSchemaChange(onChange); - await gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }); - - await schemaChangeBlocker1; - expect(gateway.schema!.getType('User')!.description).toBe('This is my User'); - expect(onChange).toHaveBeenCalledTimes(1); - - await schemaChangeBlocker2; - expect(gateway.schema!.getType('User')!.description).toBe('This is my updated User'); - expect(onChange).toHaveBeenCalledTimes(2); - }); - - it('Preserves original schema when health check fails', async () => { - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([service]); - mockImplementingServicesSuccess(service); - mockRawPartialSchemaSuccess(service); - mockServiceHealthCheckSuccess(service); - - // Update - mockStorageSecretSuccess(); - mockCompositionConfigLinkSuccess(); - mockCompositionConfigsSuccess([updatedService]); - mockImplementingServicesSuccess(updatedService); - mockRawPartialSchemaSuccess(updatedService); - mockServiceHealthCheck(updatedService).reply(500); - - let resolve: () => void; - const schemaChangeBlocker = new Promise(res => (resolve = res)); - - const gateway = new ApolloGateway({ serviceHealthCheck: true, logger }); - // @ts-ignore for testing purposes, a short pollInterval is ideal so we'll override here - gateway.experimental_pollInterval = 100; - - // @ts-ignore for testing purposes, we'll call the original `updateComposition` - // function from our mock. The first call should mimic original behavior, - // but the second call needs to handle the PromiseRejection. Typically for tests - // like these we would leverage the `gateway.onSchemaChange` callback to drive - // the test, but in this case, that callback isn't triggered when the update - // fails (as expected) so we get creative with the second mock as seen below. - const original = gateway.updateComposition; - const mockUpdateComposition = jest - .fn() - .mockImplementationOnce(async () => { - await original.apply(gateway); - }) - .mockImplementationOnce(async () => { - // mock the first poll and handle the error which would otherwise be caught - // and logged from within the `pollServices` class method - await expect(original.apply(gateway)) - .rejects - .toThrowErrorMatchingInlineSnapshot( - `"500: Internal Server Error"`, - ); - // finally resolve the promise which drives this test - resolve(); - }); - - // @ts-ignore for testing purposes, replace the `updateComposition` - // function on the gateway with our mock - gateway.updateComposition = mockUpdateComposition; - - // load the gateway as usual - await gateway.load({ apollo: { keyHash: apiKeyHash, graphId, graphVariant: 'current' } }); - - expect(gateway.schema!.getType('User')!.description).toBe('This is my User'); - - await schemaChangeBlocker; - - // At this point, the mock update should have been called but the schema - // should not have updated to the new one. - expect(mockUpdateComposition.mock.calls.length).toBe(2); - expect(gateway.schema!.getType('User')!.description).toBe('This is my User'); - }); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/nockMocks.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/nockMocks.ts deleted file mode 100644 index 3ad391b..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/nockMocks.ts +++ /dev/null @@ -1,113 +0,0 @@ -import nock from 'nock'; -import { HEALTH_CHECK_QUERY, SERVICE_DEFINITION_QUERY } from '../..'; -import { MockService } from './networkRequests.test'; - -export const graphId = 'federated-service'; -export const apiKeyHash = 'dd55a79d467976346d229a7b12b673ce'; -const storageSecret = 'my-storage-secret'; -const accountsService = 'accounts'; - -// Service mocks -function mockSDLQuery({ url }: MockService) { - return nock(url).post('/', { - query: SERVICE_DEFINITION_QUERY, - }); -} - -export function mockSDLQuerySuccess(service: MockService) { - mockSDLQuery(service).reply(200, { - data: { _service: { sdl: service.sdl } }, - }); -} - -export function mockServiceHealthCheck({ url }: MockService) { - return nock(url).post('/', { - query: HEALTH_CHECK_QUERY, - }); -} - -export function mockServiceHealthCheckSuccess(service: MockService) { - return mockServiceHealthCheck(service).reply(200, { - data: { __typename: 'Query' }, - }); -} - -// GCS mocks -function gcsNock(url: Parameters[0]): nock.Scope { - return nock(url, { - reqheaders: { - 'user-agent': `apollo-gateway/${ - require('../../../package.json').version - }`, - }, - }); -} - -export function mockStorageSecret() { - return gcsNock('https://storage-secrets.api.apollographql.com:443').get( - `/${graphId}/storage-secret/${apiKeyHash}.json`, - ); -} - -export function mockStorageSecretSuccess() { - return gcsNock('https://storage-secrets.api.apollographql.com:443') - .get( - `/${graphId}/storage-secret/${apiKeyHash}.json`, - ) - .reply(200, `"${storageSecret}"`); -} - -// get composition config link, using received storage secret -export function mockCompositionConfigLink() { - return gcsNock('https://federation.api.apollographql.com:443').get( - `/${storageSecret}/current/v1/composition-config-link`, - ); -} - -export function mockCompositionConfigLinkSuccess() { - return mockCompositionConfigLink().reply(200, { - configPath: `${storageSecret}/current/v1/composition-configs/composition-config-path.json`, - }); -} - -// get composition configs, using received composition config link -export function mockCompositionConfigs() { - return gcsNock('https://federation.api.apollographql.com:443').get( - `/${storageSecret}/current/v1/composition-configs/composition-config-path.json`, - ); -} - -export function mockCompositionConfigsSuccess(services: MockService[]) { - return mockCompositionConfigs().reply(200, { - implementingServiceLocations: services.map(service => ({ - name: accountsService, - path: `${storageSecret}/current/v1/implementing-services/${accountsService}/${service.gcsDefinitionPath}`, - })), - }); -} - -// get implementing service reference, using received composition-config -export function mockImplementingServices({ gcsDefinitionPath }: MockService) { - return gcsNock('https://federation.api.apollographql.com:443').get( - `/${storageSecret}/current/v1/implementing-services/${accountsService}/${gcsDefinitionPath}`, - ); -} - -export function mockImplementingServicesSuccess(service: MockService) { - return mockImplementingServices(service).reply(200, { - name: accountsService, - partialSchemaPath: `${storageSecret}/current/raw-partial-schemas/${service.partialSchemaPath}`, - url: service.url, - }); -} - -// get raw-partial-schema, using received composition-config -export function mockRawPartialSchema({ partialSchemaPath }: MockService) { - return gcsNock('https://federation.api.apollographql.com:443').get( - `/${storageSecret}/current/raw-partial-schemas/${partialSchemaPath}`, - ); -} - -export function mockRawPartialSchemaSuccess(service: MockService) { - return mockRawPartialSchema(service).reply(200, service.sdl); -} diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/provides.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/provides.test.ts deleted file mode 100644 index 14c9251..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/provides.test.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { execute, overrideResolversInService } from '../execution-utils'; -import { fixtures } from 'apollo-federation-integration-testsuite'; - -it('does not have to go to another service when field is given', async () => { - const query = `#graphql - query GetReviewers { - topReviews { - author { - username - } - } - } - `; - - const { data, queryPlan } = await execute( { - query, - }); - - expect(data).toEqual({ - topReviews: [ - { author: { username: '@ada' } }, - { author: { username: '@ada' } }, - { author: { username: '@complete' } }, - { author: { username: '@complete' } }, - { author: { username: '@complete' } }, - ], - }); - - expect(queryPlan).not.toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); -}); - -it('does not load fields provided even when going to other service', async () => { - const [accounts, ...restFixtures] = fixtures; - - const username = jest.fn(); - const localAccounts = overrideResolversInService(accounts, { - User: { - username, - }, - }); - - const query = `#graphql - query GetReviewers { - topReviews { - author { - username - name { - first - last - } - } - } - } - `; - - const { data, queryPlan } = await execute( - { - query, - }, - [localAccounts, ...restFixtures], - ); - - expect(data).toEqual({ - topReviews: [ - { author: { username: '@ada', name: { first: 'Ada', last: 'Lovelace' } } }, - { author: { username: '@ada', name: { first: 'Ada', last: 'Lovelace' } } }, - { author: { username: '@complete', name: { first: 'Alan', last: 'Turing' } } }, - { author: { username: '@complete', name: { first: 'Alan', last: 'Turing' } } }, - { author: { username: '@complete', name: { first: 'Alan', last: 'Turing' } } }, - ], - }); - - expect(username).not.toHaveBeenCalled(); - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/requires.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/requires.test.ts deleted file mode 100644 index 1ea07cc..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/requires.test.ts +++ /dev/null @@ -1,357 +0,0 @@ -import gql from 'graphql-tag'; -import { execute } from '../execution-utils'; -import { serializeQueryPlan } from '../..'; - -it('supports passing additional fields defined by a requires', async () => { - const query = `#graphql - query GetReviwedBookNames { - me { - reviews { - product { - ... on Book { - name - } - } - } - } - } - `; - - const { data, queryPlan } = await execute({ - query, - }); - - expect(data).toEqual({ - me: { - reviews: [ - { product: {} }, - { product: {} }, - { - product: { - name: 'Design Patterns (1995)', - }, - }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); - expect(queryPlan).toCallService('product'); - expect(queryPlan).toCallService('books'); -}); - -const serviceA = { - name: 'a', - typeDefs: gql` - type Query { - user: User - } - - type User @key(fields: "id") { - id: ID! - preferences: Preferences - } - - type Preferences { - favorites: Things - } - - type Things { - color: String - animal: String - } - `, - resolvers: { - Query: { - user() { - return { - id: '1', - preferences: { - favorites: { color: 'limegreen', animal: 'platypus' }, - }, - }; - }, - }, - }, -}; - -const serviceB = { - name: 'b', - typeDefs: gql` - extend type User @key(fields: "id") { - id: ID! @external - preferences: Preferences @external - favoriteColor: String - @requires(fields: "preferences { favorites { color } }") - favoriteAnimal: String - @requires(fields: "preferences { favorites { animal } }") - } - - extend type Preferences { - favorites: Things @external - } - - extend type Things { - color: String @external - animal: String @external - } - `, - resolvers: { - User: { - favoriteColor(user: any) { - return user.preferences.favorites.color; - }, - favoriteAnimal(user: any) { - return user.preferences.favorites.animal; - }, - }, - }, -}; - -it('collapses nested requires', async () => { - const query = `#graphql - query UserFavorites { - user { - favoriteColor - favoriteAnimal - } - } - `; - - const { data, errors, queryPlan } = await execute( - { - query, - }, - [serviceA, serviceB], - ); - - expect(errors).toEqual(undefined); - - expect(serializeQueryPlan(queryPlan)).toMatchInlineSnapshot(` - "QueryPlan { - Sequence { - Fetch(service: \\"a\\") { - { - user { - __typename - id - preferences { - favorites { - color - animal - } - } - } - } - }, - Flatten(path: \\"user\\") { - Fetch(service: \\"b\\") { - { - ... on User { - __typename - id - preferences { - favorites { - color - animal - } - } - } - } => - { - ... on User { - favoriteColor - favoriteAnimal - } - } - }, - }, - }, - }" - `); - - expect(data).toEqual({ - user: { - favoriteAnimal: 'platypus', - favoriteColor: 'limegreen', - }, - }); - - expect(queryPlan).toCallService('a'); - expect(queryPlan).toCallService('b'); -}); - -it('collapses nested requires with user-defined fragments', async () => { - const query = `#graphql - query UserFavorites { - user { - favoriteAnimal - ...favoriteColor - } - } - - fragment favoriteColor on User { - preferences { - favorites { - color - } - } - } - `; - - const { data, errors, queryPlan } = await execute( - { - query, - }, - [serviceA, serviceB], - ); - - expect(errors).toEqual(undefined); - - expect(serializeQueryPlan(queryPlan)).toMatchInlineSnapshot(` - "QueryPlan { - Sequence { - Fetch(service: \\"a\\") { - { - user { - __typename - id - preferences { - favorites { - animal - color - } - } - } - } - }, - Flatten(path: \\"user\\") { - Fetch(service: \\"b\\") { - { - ... on User { - __typename - id - preferences { - favorites { - animal - } - } - } - } => - { - ... on User { - favoriteAnimal - } - } - }, - }, - }, - }" - `); - - expect(data).toEqual({ - user: { - favoriteAnimal: 'platypus', - preferences: { - favorites: { - color: 'limegreen', - }, - }, - }, - }); - - expect(queryPlan).toCallService('a'); - expect(queryPlan).toCallService('b'); -}); - -it('passes null values correctly', async () => { - const serviceA = { - name: 'a', - typeDefs: gql` - type Query { - user: User - } - - type User @key(fields: "id") { - id: ID! - favorite: Color - dislikes: [Color] - } - - type Color { - name: String! - } - `, - resolvers: { - Query: { - user() { - return { - id: '1', - favorite: null, - dislikes: [null], - }; - }, - }, - }, - }; - - const serviceB = { - name: 'b', - typeDefs: gql` - extend type User @key(fields: "id") { - id: ID! @external - favorite: Color @external - dislikes: [Color] @external - favoriteColor: String @requires(fields: "favorite { name }") - dislikedColors: String @requires(fields: "dislikes { name }") - } - - extend type Color { - name: String! @external - } - `, - resolvers: { - User: { - favoriteColor(user: any) { - if (user.favorite !== null) { - throw Error( - 'Favorite color should be null. Instead, got: ' + - JSON.stringify(user.favorite), - ); - } - return 'unknown'; - }, - dislikedColors(user: any) { - const color = user.dislikes[0]; - if (color !== null) { - throw Error( - 'Disliked colors should be null. Instead, got: ' + - JSON.stringify(user.dislikes), - ); - } - return 'unknown'; - }, - }, - }, - }; - - const query = `#graphql - query UserFavorites { - user { - favoriteColor - dislikedColors - } - } - `; - - const { data, errors } = await execute({ query }, [serviceA, serviceB]); - - expect(errors).toEqual(undefined); - expect(data).toEqual({ - user: { - favoriteColor: 'unknown', - dislikedColors: 'unknown', - }, - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/single-service.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/single-service.test.ts deleted file mode 100644 index 53ab513..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/single-service.test.ts +++ /dev/null @@ -1,119 +0,0 @@ -import gql from 'graphql-tag'; -import { execute, overrideResolversInService } from '../execution-utils'; - -const accounts = { - name: 'accounts', - typeDefs: gql` - type User @key(fields: "id") { - id: Int! - name: String - account: Account - } - type Account { - type: String - } - extend type Query { - me: User - } - `, - resolvers: { - Query: { - me: () => ({ id: 1, name: 'Martijn' }), - }, - }, -}; - -it('executes a query plan over concrete types', async () => { - const me = jest.fn(() => ({ id: 1, name: 'James' })); - const localAccounts = overrideResolversInService(accounts, { - Query: { me }, - }); - - const query = `#graphql - query GetUser { - me { - id - name - } - } - `; - const { data, queryPlan } = await execute( - { - query, - }, - [localAccounts], - ); - - expect(data).toEqual({ me: { id: 1, name: 'James' } }); - expect(queryPlan).toCallService('accounts'); - expect(me).toBeCalled(); -}); - -it('does not remove __typename on root types', async () => { - const query = `#graphql - query GetUser { - __typename - } - `; - - const { data } = await execute( - { - query, - }, - [accounts], - ); - - expect(data).toEqual({ __typename: 'Query' }); -}); - -it('does not remove __typename if that is all that is requested on an entity', async () => { - const me = jest.fn(() => ({ id: 1, name: 'James' })); - const localAccounts = overrideResolversInService(accounts, { - Query: { me }, - }); - - const query = `#graphql - query GetUser { - me { - __typename - } - } - `; - const { data, queryPlan } = await execute( - { - query, - }, - [localAccounts], - ); - - expect(data).toEqual({ me: { __typename: 'User' } }); - expect(queryPlan).toCallService('accounts'); - expect(me).toBeCalled(); -}); - -it('does not remove __typename if that is all that is requested on a value type', async () => { - const me = jest.fn(() => ({ id: 1, name: 'James', account: {} })); - const localAccounts = overrideResolversInService(accounts, { - Query: { me }, - }); - - const query = `#graphql - query GetUser { - me { - account { - __typename - } - } - } - `; - const { data, queryPlan } = await execute( - { - query, - }, - [localAccounts], - ); - - expect(data).toEqual({ me: { account: { __typename: 'Account' } } }); - expect(queryPlan).toCallService('accounts'); - expect(me).toBeCalled(); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/unions.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/unions.test.ts deleted file mode 100644 index 42827bb..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/unions.test.ts +++ /dev/null @@ -1,79 +0,0 @@ -import gql from 'graphql-tag'; -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; -import { execute } from '../execution-utils'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -it('handles multiple union type conditions that share a response name (media)', async () => { - const query = `#graphql - query { - content { - ...Audio - ... on Video { - media { - aspectRatio - } - } - } - } - fragment Audio on Audio { - media { - url - } - } - `; - - const { queryPlan, errors } = await execute( - { query }, - [ - { - name: 'contentService', - typeDefs: gql` - extend type Query { - content: Content - } - union Content = Audio | Video - type Audio { - media: AudioURL - } - type AudioURL { - url: String - } - type Video { - media: VideoAspectRatio - } - type VideoAspectRatio { - aspectRatio: String - } - `, - resolvers: { - Query: {}, - }, - }, - ], - ); - - expect(errors).toBeUndefined(); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Fetch(service: "contentService") { - { - content { - __typename - ... on Audio { - media { - url - } - } - ... on Video { - media { - aspectRatio - } - } - } - } - }, - } - `); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/value-types.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/value-types.test.ts deleted file mode 100644 index 58064ce..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/value-types.test.ts +++ /dev/null @@ -1,382 +0,0 @@ -import gql from 'graphql-tag'; -import { execute } from '../execution-utils'; -import { astSerializer, queryPlanSerializer } from '../../snapshotSerializers'; - -expect.addSnapshotSerializer(astSerializer); -expect.addSnapshotSerializer(queryPlanSerializer); - -describe('value types', () => { - it('resolves value types within their respective services', async () => { - const query = `#graphql - fragment Metadata on MetadataOrError { - ... on KeyValue { - key - value - } - ... on Error { - code - message - } - } - - query ProducsWithMetadata { - topProducts(first: 10) { - upc - ... on Book { - metadata { - ...Metadata - } - } - ... on Furniture { - metadata { - ...Metadata - } - } - reviews { - metadata { - ...Metadata - } - } - } - } - `; - - const { data, errors, queryPlan } = await execute({ - query, - }); - - expect(errors).toBeUndefined(); - - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Sequence { - Fetch(service: "product") { - { - topProducts(first: 10) { - __typename - ... on Book { - upc - __typename - isbn - } - ... on Furniture { - upc - metadata { - __typename - ... on KeyValue { - key - value - } - ... on Error { - code - message - } - } - __typename - } - } - } - }, - Parallel { - Flatten(path: "topProducts.@") { - Fetch(service: "books") { - { - ... on Book { - __typename - isbn - } - } => - { - ... on Book { - metadata { - __typename - ... on KeyValue { - key - value - } - ... on Error { - code - message - } - } - } - } - }, - }, - Flatten(path: "topProducts.@") { - Fetch(service: "reviews") { - { - ... on Book { - __typename - isbn - } - ... on Furniture { - __typename - upc - } - } => - { - ... on Book { - reviews { - metadata { - __typename - ... on KeyValue { - key - value - } - ... on Error { - code - message - } - } - } - } - ... on Furniture { - reviews { - metadata { - __typename - ... on KeyValue { - key - value - } - ... on Error { - code - message - } - } - } - } - } - }, - }, - }, - }, - } - `); - - const [furniture, , , , book] = data!.topProducts; - - // Sanity check, referenceable ID - expect(furniture.upc).toEqual('1'); - // Value type resolves from the correct service - expect(furniture.metadata[0]).toEqual({ - key: 'Condition', - value: 'excellent', - }); - - // Value type from a different service (reviews) also resolves correctly - expect(furniture.reviews[0].metadata[0]).toEqual({ - code: 418, - message: "I'm a teapot", - }); - - // Sanity check, referenceable ID - expect(book.upc).toEqual('0136291554'); - // Value type as a union resolves correctly - expect(book.metadata).toEqual([ - { - key: 'Condition', - value: 'used', - }, - { - code: 401, - message: 'Unauthorized', - }, - ]); - - expect(queryPlan).toCallService('product'); - expect(queryPlan).toCallService('books'); - expect(queryPlan).toCallService('reviews'); - }); - - it('resolves @provides fields on value types correctly via contrived example', async () => { - const firstService = { - name: 'firstService', - typeDefs: gql` - extend type Query { - valueType: ValueType - } - - type ValueType { - id: ID! - user: User! @provides(fields: "id name") - } - - extend type User @key(fields: "id") { - id: ID! @external - name: String! @external - } - `, - resolvers: { - Query: { - valueType() { - return { id: '123', user: { id: '1', name: 'trevor' } }; - }, - }, - }, - }; - - const secondService = { - name: 'secondService', - typeDefs: gql` - extend type Query { - otherValueType: ValueType - } - - type ValueType { - id: ID! - user: User! @provides(fields: "id name") - } - - extend type User @key(fields: "id") { - id: ID! @external - name: String! @external - } - `, - resolvers: { - Query: { - otherValueType() { - return { id: '456', user: { id: '2', name: 'james' } }; - }, - }, - }, - }; - - const userService = { - name: 'userService', - typeDefs: gql` - type User @key(fields: "id") { - id: ID! - name: String! - address: String! - } - `, - resolvers: { - User: { - __resolveReference(user: any) { - return user.id === '1' - ? { id: '1', name: 'trevor', address: '123 Abc St' } - : { id: '2', name: 'james', address: '456 Hello St.' }; - }, - }, - }, - }; - - const query = `#graphql - query Hello { - valueType { - id - user { - id - name - address - } - } - otherValueType { - id - user { - id - name - address - } - } - } - `; - - const { data, errors, queryPlan } = await execute( - { - query, - }, - [firstService, secondService, userService], - ); - - expect(errors).toBeUndefined(); - expect(queryPlan).toCallService('firstService'); - expect(queryPlan).toCallService('secondService'); - expect(queryPlan).toCallService('userService'); - expect(data).toMatchInlineSnapshot(` - Object { - "otherValueType": Object { - "id": "456", - "user": Object { - "address": "456 Hello St.", - "id": "2", - "name": "james", - }, - }, - "valueType": Object { - "id": "123", - "user": Object { - "address": "123 Abc St", - "id": "1", - "name": "trevor", - }, - }, - } - `); - expect(queryPlan).toMatchInlineSnapshot(` - QueryPlan { - Parallel { - Sequence { - Fetch(service: "firstService") { - { - valueType { - id - user { - id - name - __typename - } - } - } - }, - Flatten(path: "valueType.user") { - Fetch(service: "userService") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - address - } - } - }, - }, - }, - Sequence { - Fetch(service: "secondService") { - { - otherValueType { - id - user { - id - name - __typename - } - } - } - }, - Flatten(path: "otherValueType.user") { - Fetch(service: "userService") { - { - ... on User { - __typename - id - } - } => - { - ... on User { - address - } - } - }, - }, - }, - }, - } - `); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/variables.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/integration/variables.test.ts deleted file mode 100644 index 15209f4..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/integration/variables.test.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { execute } from '../execution-utils'; - -it('passes variables to root fields', async () => { - const query = `#graphql - query GetProduct($upc: String!) { - product(upc: $upc) { - name - } - } - `; - - const upc = '1'; - const { data, errors, queryPlan } = await execute({ - query, - variables: { upc }, - }); - - expect(errors).toBeUndefined(); - expect(data).toEqual({ - product: { - name: 'Table', - }, - }); - - expect(queryPlan).toCallService('product'); -}); - -it('supports default variables in a variable definition', async () => { - const query = `#graphql - query GetProduct($upc: String = "1") { - product(upc: $upc) { - name - } - } - `; - - const { data, errors, queryPlan } = await execute({ - query, - }); - - expect(errors).toBeUndefined(); - expect(data).toEqual({ - product: { - name: 'Table', - }, - }); - - expect(queryPlan).toCallService('product'); -}); - -it('passes variables to nested services', async () => { - const query = `#graphql - query GetProductsForUser($format: Boolean) { - me { - reviews { - body(format: $format) - } - } - } - `; - - const format = true; - const { data, errors, queryPlan } = await execute({ - query, - variables: { format }, - }); - - expect(errors).toBeUndefined(); - expect(data).toEqual({ - me: { - reviews: [ - { body: 'Love it!' }, - { body: 'Too expensive.' }, - { - body: 'A classic.', - }, - ], - }, - }); - - expect(queryPlan).toCallService('accounts'); - expect(queryPlan).toCallService('reviews'); -}); - -it('works with default variables in the schema', async () => { - const query = `#graphql - query LibraryUser($libraryId: ID!, $userId: ID) { - library(id: $libraryId) { - userAccount(id: $userId) { - id - name { - first - last - } - } - } - } - `; - - const { data, queryPlan, errors } = await execute({ - query, - variables: { libraryId: '1' }, - }); - - expect(data).toEqual({ - library: { - userAccount: { - id: '1', - name: { - first: 'Ada', - last: 'Lovelace', - } - }, - }, - }); - - expect(errors).toBeUndefined(); - expect(queryPlan).toCallService('books'); - expect(queryPlan).toCallService('accounts'); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/loadServicesFromRemoteEndpoint.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/loadServicesFromRemoteEndpoint.test.ts deleted file mode 100644 index 85d89c1..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/loadServicesFromRemoteEndpoint.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { getServiceDefinitionsFromRemoteEndpoint } from '../loadServicesFromRemoteEndpoint'; -import { RemoteGraphQLDataSource } from '../datasources'; - -describe('getServiceDefinitionsFromRemoteEndpoint', () => { - it('errors when no URL was specified', async () => { - const serviceSdlCache = new Map(); - const dataSource = new RemoteGraphQLDataSource({ url: '' }); - const serviceList = [{ name: 'test', dataSource }]; - await expect( - getServiceDefinitionsFromRemoteEndpoint({ - serviceList, - serviceSdlCache, - }), - ).rejects.toThrowError( - "Tried to load schema for 'test' but no 'url' was specified.", - ); - }); - - it('throws when the downstream service returns errors', async () => { - const serviceSdlCache = new Map(); - const host = 'http://host-which-better-not-resolve'; - const url = host + '/graphql'; - - const dataSource = new RemoteGraphQLDataSource({ url }); - const serviceList = [{ name: 'test', url, dataSource }]; - // Depending on the OS's resolver, the error may result in an error - // of `EAI_AGAIN` or `ENOTFOUND`. This `toThrowError` uses a Regex - // to match either case. - await expect( - getServiceDefinitionsFromRemoteEndpoint({ - serviceList, - serviceSdlCache, - }), - ).rejects.toThrowError(/^Couldn't load service definitions for "test" at http:\/\/host-which-better-not-resolve\/graphql: request to http:\/\/host-which-better-not-resolve\/graphql failed, reason: getaddrinfo (ENOTFOUND|EAI_AGAIN)/); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toCallService.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toCallService.ts deleted file mode 100644 index 1640861..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toCallService.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { QueryPlan } from '@apollo/gateway'; -import { PlanNode } from '../../QueryPlan'; -import astSerializer from '../../snapshotSerializers/astSerializer'; -import queryPlanSerializer from '../../snapshotSerializers/queryPlanSerializer'; -const prettyFormat = require('pretty-format'); - -declare global { - namespace jest { - interface Matchers { - toCallService(service: string): R; - } - } -} - -// function printNode(node: ExecutionNode) { -// return prettyFormat( -// { nodes: [node], kind: 'QueryPlan' }, -// { -// plugins: [queryPlanSerializer, astSerializer], -// }, -// ); -// } - -const lineEndRegex = /^/gm; -function indentString(string: string, count = 2) { - if (!string) return string; - return string.replace(lineEndRegex, ' '.repeat(count)); -} - -function toCallService( - this: jest.MatcherUtils, - queryPlan: QueryPlan, - service: string, -): { message(): string; pass: boolean } { - // const receivedString = print(received); - // const expectedString = print(expected); - - const printReceived = (string: string) => - this.utils.RECEIVED_COLOR(indentString(string)); - const printExpected = (string: string) => - this.utils.EXPECTED_COLOR(indentString(string)); - - let pass = false; - // let initialServiceCall = null; - // recurse the node, find first match of service name, return - function walkExecutionNode(node?: PlanNode) { - if (!node) return; - if (node.kind === 'Fetch' && node.serviceName === service) { - pass = true; - // initialServiceCall = node; - return; - } - switch (node.kind) { - case 'Flatten': - walkExecutionNode(node.node); - break; - case 'Parallel': - case 'Sequence': - node.nodes.forEach(walkExecutionNode); - break; - default: - return; - } - } - - walkExecutionNode(queryPlan.node); - - const message = pass - ? () => - this.utils.matcherHint('.not.toCallService') + - '\n\n' + - `Expected query plan to not call service:\n` + - printExpected(service) + - '\n' + - `Received:\n` + - // FIXME print just the node - printReceived( - prettyFormat(queryPlan, { - plugins: [queryPlanSerializer, astSerializer], - }), - ) - : () => { - return ( - this.utils.matcherHint('.toCallService') + - '\n\n' + - `Expected query plan to call service:\n` + - printExpected(service) + - '\n' + - `Received query plan:\n` + - printReceived( - prettyFormat(queryPlan, { - plugins: [queryPlanSerializer, astSerializer], - }), - ) - ); - }; - return { - message, - pass, - }; -} - -expect.extend({ - toCallService, -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toHaveBeenCalledBefore.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toHaveBeenCalledBefore.ts deleted file mode 100644 index 1b5f86c..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toHaveBeenCalledBefore.ts +++ /dev/null @@ -1,40 +0,0 @@ -// Make this file a module -// See: https://github.com/microsoft/TypeScript/issues/17736 -export {}; -declare global { - namespace jest { - interface Matchers { - toHaveBeenCalledBefore(spy: SpyInstance): R; - } - } -} - -function toHaveBeenCalledBefore( - this: jest.MatcherUtils, - firstSpy: jest.SpyInstance, - secondSpy: jest.SpyInstance, -): { message(): string; pass: boolean } { - const firstSpyEarliestCall = Math.min(...firstSpy.mock.invocationCallOrder); - const secondSpyEarliestCall = Math.min(...secondSpy.mock.invocationCallOrder); - - const pass = firstSpyEarliestCall < secondSpyEarliestCall; - - const message = pass - ? () => - this.utils.matcherHint('.not.toHaveBeenCalledBefore') + - '\n\n' + - `Expected ${firstSpy.getMockName()} not to have been called before ${secondSpy.getMockName()}` - : () => - this.utils.matcherHint('.toHaveBeenCalledBefore') + - '\n\n' + - `Expected ${firstSpy.getMockName()} to have been called before ${secondSpy.getMockName()}`; - - return { - message, - pass, - }; -} - -expect.extend({ - toHaveBeenCalledBefore, -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toHaveFetched.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toHaveFetched.ts deleted file mode 100644 index 3bbed40..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toHaveFetched.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { RequestInit, Headers } from 'apollo-server-env'; - -// Make this file a module -// See: https://github.com/microsoft/TypeScript/issues/17736 -export {}; -declare global { - namespace jest { - interface Matchers { - toHaveFetched(spy: SpyInstance): R; - } - } -} - -function prepareHttpOptions(requestUrl: string, requestOpts: RequestInit): RequestInit { - const headers = new Headers(); - headers.set('Content-Type', 'application/json'); - if (requestOpts.headers) { - for (let name in requestOpts.headers) { - headers.set(name, requestOpts.headers[name]); - } - } - - const requestHttp = { - method: 'POST', - headers, - url: requestUrl - }; - - return { - ...requestHttp, - body: JSON.stringify(requestOpts.body) - }; - -} - -function toHaveFetched( - this: jest.MatcherUtils, - fetch: jest.SpyInstance, - requestUrl: string, - requestOpts: RequestInit -): { message(): string; pass: boolean } { - const httpOptions = prepareHttpOptions(requestUrl, requestOpts); - let pass = false; - let message = () => ''; - try { - expect(fetch).toBeCalledWith(requestUrl, httpOptions); - pass = true; - } catch (e) { - message = () => e.message; - } - - return { - message, - pass, - }; -} - -function toHaveFetchedNth( - this: jest.MatcherUtils, - fetch: jest.SpyInstance, - nthCall: number, - requestUrl: string, - requestOpts: RequestInit -): { message(): string; pass: boolean } { - const httpOptions = prepareHttpOptions(requestUrl, requestOpts); - let pass = false; - let message = () => ''; - try { - expect(fetch).toHaveBeenNthCalledWith(nthCall, requestUrl, httpOptions); - pass = true; - } catch (e) { - message = () => e.message; - } - - return { - message, - pass, - }; -} - - -expect.extend({ - toHaveFetched, - toHaveFetchedNth, -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toMatchAST.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toMatchAST.ts deleted file mode 100644 index 8df057e..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/matchers/toMatchAST.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { print, ASTNode } from 'graphql'; -const diff = require('jest-diff'); - -declare global { - namespace jest { - interface Matchers { - toMatchAST(expected: ASTNode): R; - } - } -} - -const lineEndRegex = /^/gm; -function indentString(string: string, count = 2) { - if (!string) return string; - return string.replace(lineEndRegex, ' '.repeat(count)); -} - -function toMatchAST( - this: jest.MatcherUtils, - received: ASTNode, - expected: ASTNode, -): { message(): string; pass: boolean } { - const receivedString = print(received); - const expectedString = print(expected); - - const printReceived = (string: string) => - this.utils.RECEIVED_COLOR(indentString(string)); - const printExpected = (string: string) => - this.utils.EXPECTED_COLOR(indentString(string)); - - const pass = this.equals(receivedString, expectedString); - const message = pass - ? () => - this.utils.matcherHint('.not.toMatchAST') + - '\n\n' + - `Expected AST to not equal:\n` + - printExpected(expectedString) + - '\n' + - `Received:\n` + - printReceived(receivedString) - : () => { - const diffString = diff(expectedString, receivedString, { - expand: this.expand, - }); - return ( - this.utils.matcherHint('.toMatchAST') + - '\n\n' + - `Expected AST to equal:\n` + - printExpected(expectedString) + - '\n' + - `Received:\n` + - printReceived(receivedString) + - (diffString ? `\n\nDifference:\n\n${diffString}` : '') - ); - }; - return { - message, - pass, - }; -} - -expect.extend({ - toMatchAST, -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/queryPlanCucumber.test.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/queryPlanCucumber.test.ts deleted file mode 100644 index ee27259..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/queryPlanCucumber.test.ts +++ /dev/null @@ -1,77 +0,0 @@ -import gql from 'graphql-tag'; -import { GraphQLSchemaValidationError } from 'apollo-graphql'; -import { defineFeature, loadFeature } from 'jest-cucumber'; -import { DocumentNode } from 'graphql'; - -import { QueryPlan } from '../..'; -import { buildQueryPlan, buildOperationContext, BuildQueryPlanOptions } from '../buildQueryPlan'; -import { getFederatedTestingSchema } from './execution-utils'; - -const buildQueryPlanFeature = loadFeature( - './gateway-js/src/__tests__/build-query-plan.feature' -); - - -const features = [ - buildQueryPlanFeature -]; - -features.forEach((feature) => { - defineFeature(feature, (test) => { - feature.scenarios.forEach((scenario) => { - test(scenario.title, async ({ given, when, then }) => { - let operationDocument: DocumentNode; - let operationString: string; - let queryPlan: QueryPlan; - let options: BuildQueryPlanOptions = { autoFragmentization: false }; - - const { schema, errors, queryPlannerPointer } = getFederatedTestingSchema(); - - if (errors && errors.length > 0) { - throw new GraphQLSchemaValidationError(errors); - } - - const givenQuery = () => { - given(/^query$/im, (operation: string) => { - operationDocument = gql(operation); - operationString = operation; - }) - } - - const whenUsingAutoFragmentization = () => { - when(/using autofragmentization/i, () => { - options = { autoFragmentization: true }; - }) - } - - const thenQueryPlanShouldBe = () => { - then(/^query plan$/i, (expectedQueryPlan: string) => { - queryPlan = buildQueryPlan( - buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - }), - options - ); - - const parsedExpectedPlan = JSON.parse(expectedQueryPlan); - - expect(queryPlan).toEqual(parsedExpectedPlan); - }) - } - - // step over each defined step in the .feature and execute the correct - // matching step fn defined above - scenario.steps.forEach(({ stepText }) => { - const title = stepText.toLocaleLowerCase(); - if (title === "query") givenQuery(); - else if (title === "using autofragmentization") whenUsingAutoFragmentization(); - else if (title === "query plan") thenQueryPlanShouldBe(); - else throw new Error(`Unrecognized steps used in "build-query-plan.feature"`); - }); - }); - }); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/testSetup.ts b/gateway/node_modules/@apollo/gateway/src/__tests__/testSetup.ts deleted file mode 100644 index eab3378..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/testSetup.ts +++ /dev/null @@ -1,4 +0,0 @@ -import './matchers/toMatchAST'; -import './matchers/toCallService'; -import './matchers/toHaveBeenCalledBefore'; -import './matchers/toHaveFetched'; diff --git a/gateway/node_modules/@apollo/gateway/src/__tests__/tsconfig.json b/gateway/node_modules/@apollo/gateway/src/__tests__/tsconfig.json deleted file mode 100644 index fcb8707..0000000 --- a/gateway/node_modules/@apollo/gateway/src/__tests__/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../../tsconfig.test.base", - "include": ["**/*"], - "references": [ - { "path": "../../" }, - ] -} diff --git a/gateway/node_modules/@apollo/gateway/src/buildQueryPlan.ts b/gateway/node_modules/@apollo/gateway/src/buildQueryPlan.ts deleted file mode 100644 index 483518f..0000000 --- a/gateway/node_modules/@apollo/gateway/src/buildQueryPlan.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { - DocumentNode, - FragmentDefinitionNode, - GraphQLError, - Kind, - OperationDefinitionNode, - print, -} from 'graphql'; -import { - QueryPlan, - OperationContext, - WasmPointer, -} from './QueryPlan'; -import { ComposedGraphQLSchema } from '@apollo/federation'; -import { getQueryPlan } from '@apollo/query-planner-wasm'; - -export interface BuildQueryPlanOptions { - autoFragmentization: boolean; -} - -export function buildQueryPlan( - operationContext: OperationContext, - options: BuildQueryPlanOptions = { autoFragmentization: false }, -): QueryPlan { - - return getQueryPlan( - operationContext.queryPlannerPointer, - operationContext.operationString, - options - ); -} - -// Adapted from buildExecutionContext in graphql-js -interface BuildOperationContextOptions { - schema: ComposedGraphQLSchema; - operationDocument: DocumentNode; - operationString: string; - queryPlannerPointer: WasmPointer; - operationName?: string; -}; - -export function buildOperationContext({ - schema, - operationDocument, - operationString, - queryPlannerPointer, - operationName, -}: BuildOperationContextOptions): OperationContext { - let operation: OperationDefinitionNode | undefined; - let operationCount: number = 0; - const fragments: { - [fragmentName: string]: FragmentDefinitionNode; - } = Object.create(null); - operationDocument.definitions.forEach(definition => { - switch (definition.kind) { - case Kind.OPERATION_DEFINITION: - operationCount++; - if (!operationName && operationCount > 1) { - throw new GraphQLError( - 'Must provide operation name if query contains ' + - 'multiple operations.', - ); - } - if ( - !operationName || - (definition.name && definition.name.value === operationName) - ) { - operation = definition; - } - break; - case Kind.FRAGMENT_DEFINITION: - fragments[definition.name.value] = definition; - break; - } - }); - if (!operation) { - if (operationName) { - throw new GraphQLError(`Unknown operation named "${operationName}".`); - } else { - throw new GraphQLError('Must provide an operation.'); - } - } - - // In the case of multiple operations specified (operationName presence validated above), - // `operation` === the operation specified by `operationName` - const trimmedOperationString = operationCount > 1 - ? print({ - kind: Kind.DOCUMENT, - definitions: [ - operation, - ...Object.values(fragments), - ], - }) - : operationString; - - return { - schema, - operation, - fragments, - queryPlannerPointer, - operationString: trimmedOperationString - }; -} diff --git a/gateway/node_modules/@apollo/gateway/src/cache.ts b/gateway/node_modules/@apollo/gateway/src/cache.ts deleted file mode 100644 index 5393d9e..0000000 --- a/gateway/node_modules/@apollo/gateway/src/cache.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { CacheManager } from 'make-fetch-happen'; -import { Request, Response, Headers } from 'apollo-server-env'; -import { InMemoryLRUCache } from 'apollo-server-caching'; - -const MAX_SIZE = 5 * 1024 * 1024; // 5MB - -function cacheKey(request: Request) { - return `gateway:request-cache:${request.method}:${request.url}`; -} - -interface CachedRequest { - body: string; - status: number; - statusText: string; - headers: Headers; -} - -export class HttpRequestCache implements CacheManager { - constructor( - public cache: InMemoryLRUCache = new InMemoryLRUCache({ - maxSize: MAX_SIZE, - }), - ) {} - - // Return true if entry exists, else false - async delete(request: Request) { - const key = cacheKey(request); - const entry = await this.cache.get(key); - await this.cache.delete(key); - return Boolean(entry); - } - - async put(request: Request, response: Response) { - // A `HEAD` request has no body to cache and a 304 response could have - // only been negotiated by using a cached body that was still valid. - // Therefore, we do NOT write to the cache in either of these cases. - // Without avoiding this, we will invalidate the cache, thus causing - // subsequent conditional requests (e.g., `If-None-Match: "MD%") to be - // lacking content to conditionally request against and necessitating - // a full request/response. - if (request.method === "HEAD" || response.status === 304) { - return response; - } - - const body = await response.text(); - - this.cache.set(cacheKey(request), { - body, - status: response.status, - statusText: response.statusText, - headers: response.headers, - }); - - return new Response(body, response); - } - - async match(request: Request) { - return this.cache.get(cacheKey(request)).then(response => { - if (response) { - const { body, ...requestInit } = response; - return new Response(body, requestInit); - } - return; - }); - } -} diff --git a/gateway/node_modules/@apollo/gateway/src/datasources/LocalGraphQLDataSource.ts b/gateway/node_modules/@apollo/gateway/src/datasources/LocalGraphQLDataSource.ts deleted file mode 100644 index 0a53296..0000000 --- a/gateway/node_modules/@apollo/gateway/src/datasources/LocalGraphQLDataSource.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { GraphQLRequestContext, GraphQLResponse } from 'apollo-server-types'; -import { - GraphQLSchema, - graphql, - graphqlSync, - DocumentNode, - parse, -} from 'graphql'; -import { - enablePluginsForSchemaResolvers, -} from 'apollo-server-core/dist/utils/schemaInstrumentation'; -import { GraphQLDataSource } from './types'; - -export class LocalGraphQLDataSource = Record> implements GraphQLDataSource { - constructor(public readonly schema: GraphQLSchema) { - enablePluginsForSchemaResolvers(schema); - } - - async process({ - request, - context, - }: Pick, 'request' | 'context'>): Promise< - GraphQLResponse - > { - return graphql({ - schema: this.schema, - source: request.query!, - variableValues: request.variables, - operationName: request.operationName, - contextValue: context, - }); - } - - public sdl(): DocumentNode { - const result = graphqlSync({ - schema: this.schema, - source: `{ _service { sdl }}`, - }); - if (result.errors) { - throw new Error(result.errors.map(error => error.message).join('\n\n')); - } - - const sdl = result.data && result.data._service && result.data._service.sdl; - return parse(sdl); - } -} diff --git a/gateway/node_modules/@apollo/gateway/src/datasources/RemoteGraphQLDataSource.ts b/gateway/node_modules/@apollo/gateway/src/datasources/RemoteGraphQLDataSource.ts deleted file mode 100644 index 3e0ae3f..0000000 --- a/gateway/node_modules/@apollo/gateway/src/datasources/RemoteGraphQLDataSource.ts +++ /dev/null @@ -1,238 +0,0 @@ -import { - GraphQLRequestContext, - GraphQLResponse, - ValueOrPromise, - GraphQLRequest, -} from 'apollo-server-types'; -import { - ApolloError, - AuthenticationError, - ForbiddenError, -} from 'apollo-server-errors'; -import { - fetch, - Request, - Headers, - Response, -} from 'apollo-server-env'; -import { isObject } from '../utilities/predicates'; -import { GraphQLDataSource } from './types'; -import createSHA from 'apollo-server-core/dist/utils/createSHA'; - -export class RemoteGraphQLDataSource = Record> implements GraphQLDataSource { - fetcher: typeof fetch = fetch; - - constructor( - config?: Partial> & - object & - ThisType>, - ) { - if (config) { - return Object.assign(this, config); - } - } - - url!: string; - - /** - * Whether the downstream request should be made with automated persisted - * query (APQ) behavior enabled. - * - * @remarks When enabled, the request to the downstream service will first be - * attempted using a SHA-256 hash of the operation rather than including the - * operation itself. If the downstream server supports APQ and has this - * operation registered in its APQ storage, it will be able to complete the - * request without the entirety of the operation document being transmitted. - * - * In the event that the downstream service is unaware of the operation, it - * will respond with an `PersistedQueryNotFound` error and it will be resent - * with the full operation body for fulfillment. - * - * Generally speaking, when the downstream server is processing similar - * operations repeatedly, APQ can offer substantial network savings in terms - * of bytes transmitted over the wire between gateways and downstream servers. - */ - apq: boolean = false; - - async process({ - request, - context, - }: Pick, 'request' | 'context'>): Promise< - GraphQLResponse - > { - // Respect incoming http headers (eg, apollo-federation-include-trace). - const headers = (request.http && request.http.headers) || new Headers(); - headers.set('Content-Type', 'application/json'); - - request.http = { - method: 'POST', - url: this.url, - headers, - }; - - if (this.willSendRequest) { - await this.willSendRequest({ request, context }); - } - - if (!request.query) { - throw new Error("Missing query"); - } - - const apqHash = createSHA('sha256') - .update(request.query) - .digest('hex'); - - const { query, ...requestWithoutQuery } = request; - - const respond = (response: GraphQLResponse, request: GraphQLRequest) => - typeof this.didReceiveResponse === "function" - ? this.didReceiveResponse({ response, request, context }) - : response; - - if (this.apq) { - // Take the original extensions and extend them with - // the necessary "extensions" for APQ handshaking. - requestWithoutQuery.extensions = { - ...request.extensions, - persistedQuery: { - version: 1, - sha256Hash: apqHash, - }, - }; - - const apqOptimisticResponse = - await this.sendRequest(requestWithoutQuery, context); - - // If we didn't receive notice to retry with APQ, then let's - // assume this is the best result we'll get and return it! - if ( - !apqOptimisticResponse.errors || - !apqOptimisticResponse.errors.find(error => - error.message === 'PersistedQueryNotFound') - ) { - return respond(apqOptimisticResponse, requestWithoutQuery); - } - } - - // If APQ was enabled, we'll run the same request again, but add in the - // previously omitted `query`. If APQ was NOT enabled, this is the first - // request (non-APQ, all the way). - const requestWithQuery: GraphQLRequest = { - query, - ...requestWithoutQuery, - }; - const response = await this.sendRequest(requestWithQuery, context); - return respond(response, requestWithQuery); - } - - private async sendRequest( - request: GraphQLRequest, - context: TContext, - ): Promise { - - // This would represent an internal programming error since this shouldn't - // be possible in the way that this method is invoked right now. - if (!request.http) { - throw new Error("Internal error: Only 'http' requests are supported.") - } - - // We don't want to serialize the `http` properties into the body that is - // being transmitted. Instead, we want those to be used to indicate what - // we're accessing (e.g. url) and what we access it with (e.g. headers). - const { http, ...requestWithoutHttp } = request; - const fetchRequest = new Request(http.url, { - ...http, - body: JSON.stringify(requestWithoutHttp), - }); - - let fetchResponse: Response | undefined; - - try { - // Use our local `fetcher` to allow for fetch injection - // Use the fetcher's `Request` implementation for compatibility - fetchResponse = await this.fetcher(http.url, { - ...http, - body: JSON.stringify(requestWithoutHttp) - }); - - if (!fetchResponse.ok) { - throw await this.errorFromResponse(fetchResponse); - } - - const body = await this.parseBody(fetchResponse, fetchRequest, context); - - if (!isObject(body)) { - throw new Error(`Expected JSON response body, but received: ${body}`); - } - - return { - ...body, - http: fetchResponse, - }; - } catch (error) { - this.didEncounterError(error, fetchRequest, fetchResponse); - throw error; - } - } - - public willSendRequest?( - requestContext: Pick< - GraphQLRequestContext, - 'request' | 'context' - >, - ): ValueOrPromise; - - public didReceiveResponse?( - requestContext: Required, - 'request' | 'response' | 'context'> - >, - ): ValueOrPromise; - - public didEncounterError( - error: Error, - _fetchRequest: Request, - _fetchResponse?: Response - ) { - throw error; - } - - public parseBody( - fetchResponse: Response, - _fetchRequest?: Request, - _context?: TContext, - ): Promise { - const contentType = fetchResponse.headers.get('Content-Type'); - if (contentType && contentType.startsWith('application/json')) { - return fetchResponse.json(); - } else { - return fetchResponse.text(); - } - } - - public async errorFromResponse(response: Response) { - const message = `${response.status}: ${response.statusText}`; - - let error: ApolloError; - if (response.status === 401) { - error = new AuthenticationError(message); - } else if (response.status === 403) { - error = new ForbiddenError(message); - } else { - error = new ApolloError(message); - } - - const body = await this.parseBody(response); - - Object.assign(error.extensions, { - response: { - url: response.url, - status: response.status, - statusText: response.statusText, - body, - }, - }); - - return error; - } -} diff --git a/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/LocalGraphQLDataSource.test.ts b/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/LocalGraphQLDataSource.test.ts deleted file mode 100644 index 9d71025..0000000 --- a/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/LocalGraphQLDataSource.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { LocalGraphQLDataSource } from '../LocalGraphQLDataSource'; -import { buildFederatedSchema } from '@apollo/federation'; -import gql from 'graphql-tag'; - -describe('constructing requests', () => { - it('accepts context', async () => { - const typeDefs = gql` - type Query { - me: User - } - type User { - id: ID - name: String! - } - `; - const resolvers = { - Query: { - me(_, __, { userId }) { - const users = [ - { id: 1, name: 'otherGuy' }, - { id: 2, name: 'james' }, - { - id: 3, - name: 'someoneElse', - }, - ]; - return users.find(user => user.id === userId); - }, - }, - }; - const schema = buildFederatedSchema([{ typeDefs, resolvers }]); - - const DataSource = new LocalGraphQLDataSource(schema); - - const { data } = await DataSource.process({ - request: { - query: '{ me { name } }', - }, - context: { userId: 2 }, - }); - - expect(data).toEqual({ me: { name: 'james' } }); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/RemoteGraphQLDataSource.test.ts b/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/RemoteGraphQLDataSource.test.ts deleted file mode 100644 index 40f5894..0000000 --- a/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/RemoteGraphQLDataSource.test.ts +++ /dev/null @@ -1,552 +0,0 @@ -import { fetch } from '__mocks__/apollo-server-env'; -import { makeFetchHappenFetcher} from '__mocks__/make-fetch-happen-fetcher'; - -import { - ApolloError, - AuthenticationError, - ForbiddenError, -} from 'apollo-server-errors'; - -import { RemoteGraphQLDataSource } from '../RemoteGraphQLDataSource'; -import { Headers } from 'apollo-server-env'; -import { GraphQLRequestContext } from 'apollo-server-types'; - -beforeEach(() => { - fetch.mockReset(); -}); - -describe('constructing requests', () => { - describe('without APQ', () => { - it('stringifies a request with a query', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - apq: false, - }); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const { data } = await DataSource.process({ - request: { query: '{ me { name } }' }, - context: {}, - }); - - expect(data).toEqual({ me: 'james' }); - expect(fetch).toBeCalledTimes(1); - expect(fetch).toHaveFetched('https://api.example.com/foo', { - body: { query: '{ me { name } }' } - }); - }); - - it('passes variables', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - apq: false, - }); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const { data } = await DataSource.process({ - request: { - query: '{ me { name } }', - variables: { id: '1' }, - }, - context: {}, - }); - - expect(data).toEqual({ me: 'james' }); - expect(fetch).toBeCalledTimes(1); - expect(fetch).toHaveFetched('https://api.example.com/foo', { - body: { query: '{ me { name } }', variables: { id: '1' } }, - }); - }); - }); - - describe('with APQ', () => { - // When changing this, adjust the SHA-256 hash below as well. - const query = '{ me { name } }'; - - // This is a SHA-256 hash of `query` above. - const sha256Hash = - "b8d9506e34c83b0e53c2aa463624fcea354713bc38f95276e6f0bd893ffb5b88"; - - describe('miss', () => { - const apqNotFoundResponse = { - "errors": [ - { - "message": "PersistedQueryNotFound", - "extensions": { - "code": "PERSISTED_QUERY_NOT_FOUND", - "exception": { - "stacktrace": ["PersistedQueryNotFoundError: PersistedQueryNotFound"] - } - } - } - ] - }; - - it('stringifies a request with a query', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - apq: true, - }); - - fetch.mockJSONResponseOnce(apqNotFoundResponse); - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const { data } = await DataSource.process({ - request: { query }, - context: {}, - }); - - expect(data).toEqual({ me: 'james' }); - expect(fetch).toBeCalledTimes(2); - expect(fetch).toHaveFetchedNth(1, 'https://api.example.com/foo', { - body: { - extensions: { - persistedQuery: { - version: 1, - sha256Hash, - } - } - }, - }); - expect(fetch).toHaveFetchedNth(2, 'https://api.example.com/foo', { - body: { - query, - extensions: { - persistedQuery: { - version: 1, - sha256Hash, - } - } - }, - }); - }); - - it('passes variables', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - apq: true, - }); - - fetch.mockJSONResponseOnce(apqNotFoundResponse); - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const { data } = await DataSource.process({ - request: { - query, - variables: { id: '1' }, - }, - context: {}, - }); - - expect(data).toEqual({ me: 'james' }); - expect(fetch).toBeCalledTimes(2); - expect(fetch).toHaveFetchedNth(1, 'https://api.example.com/foo', { - body: { - variables: { id: '1' }, - extensions: { - persistedQuery: { - version: 1, - sha256Hash, - } - } - }, - }); - expect(fetch).toHaveFetchedNth(2, 'https://api.example.com/foo', { - body: { - query, - variables: { id: '1' }, - extensions: { - persistedQuery: { - version: 1, - sha256Hash, - } - } - }, - }); - }); - }); - - describe('hit', () => { - it('stringifies a request with a query', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - apq: true, - }); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const { data } = await DataSource.process({ - request: { query }, - context: {}, - }); - - expect(data).toEqual({ me: 'james' }); - expect(fetch).toBeCalledTimes(1); - expect(fetch).toHaveFetched('https://api.example.com/foo', { - body: { - extensions: { - persistedQuery: { - version: 1, - sha256Hash, - } - } - }, - }); - }); - - it('passes variables', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - apq: true, - }); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const { data } = await DataSource.process({ - request: { - query, - variables: { id: '1' }, - }, - context: {}, - }); - - expect(data).toEqual({ me: 'james' }); - expect(fetch).toBeCalledTimes(1); - expect(fetch).toHaveFetched('https://api.example.com/foo', { - body: { - variables: { id: '1' }, - extensions: { - persistedQuery: { - version: 1, - sha256Hash, - } - } - }, - }); - }); - }); - }); -}); - -describe('fetcher', () => { - it('uses a custom provided `fetcher`', async () => { - const injectedFetch = fetch.mockJSONResponseOnce({ data: { injected: true } }); - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - fetcher: injectedFetch, - }); - - const { data } = await DataSource.process({ - request: { - query: '{ me { name } }', - variables: { id: '1' }, - }, - context: {}, - }); - - expect(injectedFetch).toHaveBeenCalled(); - expect(data).toEqual({injected: true}); - - }); - - it('supports a custom fetcher, like `make-fetch-happen`', async () => { - const injectedFetch = - makeFetchHappenFetcher.mockJSONResponseOnce({ data: { me: 'james' } }); - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - fetcher: injectedFetch, - }); - - const { data } = await DataSource.process({ - request: { - query: '{ me { name } }', - variables: { id: '1' }, - }, - context: {}, - }); - - expect(injectedFetch).toHaveBeenCalled(); - expect(data).toEqual({ me: 'james' }); - }) -}); - -describe('willSendRequest', () => { - it('allows for modifying variables', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - willSendRequest: ({ request }) => { - request.variables = JSON.stringify(request.variables); - }, - }); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const { data } = await DataSource.process({ - request: { - query: '{ me { name } }', - variables: { id: '1' }, - }, - context: {}, - }); - - expect(data).toEqual({ me: 'james' }); - expect(fetch).toHaveFetched('https://api.example.com/foo', { - body: { - query: '{ me { name } }', - variables: JSON.stringify({ id: '1' }), - }, - }); - }); - - it('accepts context', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - willSendRequest: ({ request, context }) => { - request.http.headers.set('x-user-id', context.userId); - }, - }); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const { data } = await DataSource.process({ - request: { - query: '{ me { name } }', - variables: { id: '1' }, - }, - context: { userId: '1234' }, - }); - - expect(data).toEqual({ me: 'james' }); - expect(fetch).toHaveFetched('https://api.example.com/foo', { - body: { - query: '{ me { name } }', - variables: { id: '1' }, - }, - headers: { - 'x-user-id': '1234', - }, - }); - }); -}); - -describe('didReceiveResponse', () => { - it('can accept and modify context', async () => { - interface MyContext { - surrogateKeys: string[]; - } - - class MyDataSource extends RemoteGraphQLDataSource { - url = 'https://api.example.com/foo'; - - didReceiveResponse({ - request, - response, - }: Required, - 'request' | 'response' | 'context' - >>) { - const surrogateKeys = - request.http && request.http.headers.get('surrogate-keys'); - if (surrogateKeys) { - context.surrogateKeys.push(...surrogateKeys.split(' ')); - } - return response; - } - } - - const DataSource = new MyDataSource(); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - const context: MyContext = { surrogateKeys: [] }; - await DataSource.process({ - request: { - query: '{ me { name } }', - variables: { id: '1' }, - http: { - method: 'GET', - url: 'https://api.example.com/foo', - headers: new Headers({ 'Surrogate-Keys': 'abc def' }), - }, - }, - context, - }); - - expect(context).toEqual({ surrogateKeys: ['abc', 'def'] }); - }); - - it('is only called once', async () => { - class MyDataSource extends RemoteGraphQLDataSource { - url = 'https://api.example.com/foo'; - - didReceiveResponse({ - response, - }: Required, - 'request' | 'response' | 'context' - >>) { - return response; - } - } - - const DataSource = new MyDataSource(); - const spyDidReceiveResponse = - jest.spyOn(DataSource, 'didReceiveResponse'); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - await DataSource.process({ - request: { - query: '{ me { name } }', - variables: { id: '1' }, - }, - context: {}, - }); - - expect(spyDidReceiveResponse).toHaveBeenCalledTimes(1); - - }); - - // APQ makes two requests, so make sure only one calls the response hook. - it('is only called once when apq is enabled', async () => { - class MyDataSource extends RemoteGraphQLDataSource { - url = 'https://api.example.com/foo'; - apq = true; - - didReceiveResponse({ - response, - }: Required, - 'request' | 'response' | 'context' - >>) { - return response; - } - } - - const DataSource = new MyDataSource(); - const spyDidReceiveResponse = jest.spyOn(DataSource, 'didReceiveResponse'); - - fetch.mockJSONResponseOnce({ data: { me: 'james' } }); - - await DataSource.process({ - request: { - query: '{ me { name } }', - variables: { id: '1' }, - }, - context: {}, - }); - - expect(spyDidReceiveResponse).toHaveBeenCalledTimes(1); - - }); -}); - -describe('error handling', () => { - it('throws an AuthenticationError when the response status is 401', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - }); - - fetch.mockResponseOnce('Invalid token', undefined, 401); - - const result = DataSource.process({ - request: { query: '{ me { name } }' }, - context: {}, - }); - await expect(result).rejects.toThrow(AuthenticationError); - await expect(result).rejects.toMatchObject({ - extensions: { - code: 'UNAUTHENTICATED', - response: { - status: 401, - body: 'Invalid token', - }, - }, - }); - }); - - it('throws a ForbiddenError when the response status is 403', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - }); - - fetch.mockResponseOnce('No access', undefined, 403); - - const result = DataSource.process({ - request: { query: '{ me { name } }' }, - context: {}, - }); - await expect(result).rejects.toThrow(ForbiddenError); - await expect(result).rejects.toMatchObject({ - extensions: { - code: 'FORBIDDEN', - response: { - status: 403, - body: 'No access', - }, - }, - }); - }); - - it('throws an ApolloError when the response status is 500', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - }); - - fetch.mockResponseOnce('Oops', undefined, 500); - - const result = DataSource.process({ - request: { query: '{ me { name } }' }, - context: {}, - }); - await expect(result).rejects.toThrow(ApolloError); - await expect(result).rejects.toMatchObject({ - extensions: { - response: { - status: 500, - body: 'Oops', - }, - }, - }); - }); - - it('puts JSON error responses on the error as an object', async () => { - const DataSource = new RemoteGraphQLDataSource({ - url: 'https://api.example.com/foo', - }); - - fetch.mockResponseOnce( - JSON.stringify({ - errors: [ - { - message: 'Houston, we have a problem.', - }, - ], - }), - { 'Content-Type': 'application/json' }, - 500, - ); - - const result = DataSource.process({ - request: { query: '{ me { name } }' }, - context: {}, - }); - await expect(result).rejects.toThrow(ApolloError); - await expect(result).rejects.toMatchObject({ - extensions: { - response: { - status: 500, - body: { - errors: [ - { - message: 'Houston, we have a problem.', - }, - ], - }, - }, - }, - }); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/tsconfig.json b/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/tsconfig.json deleted file mode 100644 index c1e0db2..0000000 --- a/gateway/node_modules/@apollo/gateway/src/datasources/__tests__/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../../../tsconfig.test.base", - "include": ["**/*"], - "references": [ - { "path": "../../../" }, - ] -} diff --git a/gateway/node_modules/@apollo/gateway/src/datasources/index.ts b/gateway/node_modules/@apollo/gateway/src/datasources/index.ts deleted file mode 100644 index 6ac3ac7..0000000 --- a/gateway/node_modules/@apollo/gateway/src/datasources/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { LocalGraphQLDataSource } from './LocalGraphQLDataSource'; -export { RemoteGraphQLDataSource } from './RemoteGraphQLDataSource'; -export { GraphQLDataSource } from './types'; diff --git a/gateway/node_modules/@apollo/gateway/src/datasources/types.ts b/gateway/node_modules/@apollo/gateway/src/datasources/types.ts deleted file mode 100644 index c112c30..0000000 --- a/gateway/node_modules/@apollo/gateway/src/datasources/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { GraphQLResponse, GraphQLRequestContext } from 'apollo-server-types'; - -export interface GraphQLDataSource = Record> { - process( - request: Pick, 'request' | 'context'>, - ): Promise; -} diff --git a/gateway/node_modules/@apollo/gateway/src/executeQueryPlan.ts b/gateway/node_modules/@apollo/gateway/src/executeQueryPlan.ts deleted file mode 100644 index 6844385..0000000 --- a/gateway/node_modules/@apollo/gateway/src/executeQueryPlan.ts +++ /dev/null @@ -1,527 +0,0 @@ -import { - GraphQLExecutionResult, - GraphQLRequestContext, -} from 'apollo-server-types'; -import { Headers } from 'apollo-server-env'; -import { - execute, - GraphQLError, - Kind, - TypeNameMetaFieldDef, - GraphQLFieldResolver, -} from 'graphql'; -import { Trace, google } from 'apollo-reporting-protobuf'; -import { defaultRootOperationNameLookup } from '@apollo/federation'; -import { GraphQLDataSource } from './datasources/types'; -import { - FetchNode, - PlanNode, - QueryPlan, - ResponsePath, - OperationContext, - QueryPlanSelectionNode, - QueryPlanFieldNode, - getResponseName -} from './QueryPlan'; -import { deepMerge } from './utilities/deepMerge'; - -export type ServiceMap = { - [serviceName: string]: GraphQLDataSource; -}; - -type ResultMap = Record; - -interface ExecutionContext { - queryPlan: QueryPlan; - operationContext: OperationContext; - serviceMap: ServiceMap; - requestContext: GraphQLRequestContext; - errors: GraphQLError[]; -} - -export async function executeQueryPlan( - queryPlan: QueryPlan, - serviceMap: ServiceMap, - requestContext: GraphQLRequestContext, - operationContext: OperationContext, -): Promise { - const errors: GraphQLError[] = []; - - const context: ExecutionContext = { - queryPlan, - operationContext, - serviceMap, - requestContext, - errors, - }; - - let data: ResultMap | undefined | null = Object.create(null); - - const captureTraces = !!( - requestContext.metrics && requestContext.metrics.captureTraces - ); - - if (queryPlan.node) { - const traceNode = await executeNode( - context, - queryPlan.node, - data!, - [], - captureTraces, - ); - if (captureTraces) { - requestContext.metrics!.queryPlanTrace = traceNode; - } - } - - // FIXME: Re-executing the query is a pretty heavy handed way of making sure - // only explicitly requested fields are included and field ordering follows - // the original query. - // It is also used to allow execution of introspection queries though. - try { - ({ data } = await execute({ - schema: operationContext.schema, - document: { - kind: Kind.DOCUMENT, - definitions: [ - operationContext.operation, - ...Object.values(operationContext.fragments), - ], - }, - rootValue: data, - variableValues: requestContext.request.variables, - // See also `wrapSchemaWithAliasResolver` in `gateway-js/src/index.ts`. - fieldResolver: defaultFieldResolverWithAliasSupport, - })); - } catch (error) { - return { errors: [error] }; - } - - return errors.length === 0 ? { data } : { errors, data }; -} - -// Note: this function always returns a protobuf QueryPlanNode tree, even if -// we're going to ignore it, because it makes the code much simpler and more -// typesafe. However, it doesn't actually ask for traces from the backend -// service unless we are capturing traces for Studio. -async function executeNode( - context: ExecutionContext, - node: PlanNode, - results: ResultMap | ResultMap[], - path: ResponsePath, - captureTraces: boolean, -): Promise { - if (!results) { - // XXX I don't understand `results` threading well enough to understand when this happens - // and if this corresponds to a real query plan node that should be reported or not. - // - // This may be if running something like `query { fooOrNullFromServiceA { - // somethingFromServiceB } }` and the first field is null, then we don't bother to run the - // inner field at all. - return new Trace.QueryPlanNode(); - } - - switch (node.kind) { - case 'Sequence': { - const traceNode = new Trace.QueryPlanNode.SequenceNode(); - for (const childNode of node.nodes) { - const childTraceNode = await executeNode( - context, - childNode, - results, - path, - captureTraces, - ); - traceNode.nodes.push(childTraceNode!); - } - return new Trace.QueryPlanNode({ sequence: traceNode }); - } - case 'Parallel': { - const childTraceNodes = await Promise.all( - node.nodes.map(async childNode => - executeNode(context, childNode, results, path, captureTraces), - ), - ); - return new Trace.QueryPlanNode({ - parallel: new Trace.QueryPlanNode.ParallelNode({ - nodes: childTraceNodes, - }), - }); - } - case 'Flatten': { - return new Trace.QueryPlanNode({ - flatten: new Trace.QueryPlanNode.FlattenNode({ - responsePath: node.path.map( - id => - new Trace.QueryPlanNode.ResponsePathElement( - typeof id === 'string' ? { fieldName: id } : { index: id }, - ), - ), - node: await executeNode( - context, - node.node, - flattenResultsAtPath(results, node.path), - [...path, ...node.path], - captureTraces, - ), - }), - }); - } - case 'Fetch': { - const traceNode = new Trace.QueryPlanNode.FetchNode({ - serviceName: node.serviceName, - // executeFetch will fill in the other fields if desired. - }); - try { - await executeFetch( - context, - node, - results, - path, - captureTraces ? traceNode : null, - ); - } catch (error) { - context.errors.push(error); - } - return new Trace.QueryPlanNode({ fetch: traceNode }); - } - } -} - -async function executeFetch( - context: ExecutionContext, - fetch: FetchNode, - results: ResultMap | ResultMap[], - _path: ResponsePath, - traceNode: Trace.QueryPlanNode.FetchNode | null, -): Promise { - const logger = context.requestContext.logger || console; - const service = context.serviceMap[fetch.serviceName]; - if (!service) { - throw new Error(`Couldn't find service with name "${fetch.serviceName}"`); - } - - const entities = Array.isArray(results) ? results : [results]; - if (entities.length < 1) return; - - let variables = Object.create(null); - if (fetch.variableUsages) { - for (const variableName of fetch.variableUsages) { - const providedVariables = context.requestContext.request.variables; - if ( - providedVariables && - typeof providedVariables[variableName] !== 'undefined' - ) { - variables[variableName] = providedVariables[variableName]; - } - } - } - - if (!fetch.requires) { - const dataReceivedFromService = await sendOperation( - context, - fetch.operation, - variables, - ); - - for (const entity of entities) { - deepMerge(entity, dataReceivedFromService); - } - } else { - const requires = fetch.requires; - - const representations: ResultMap[] = []; - const representationToEntity: number[] = []; - - entities.forEach((entity, index) => { - const representation = executeSelectionSet(entity, requires); - if (representation && representation[TypeNameMetaFieldDef.name]) { - representations.push(representation); - representationToEntity.push(index); - } - }); - - if ('representations' in variables) { - throw new Error(`Variables cannot contain key "representations"`); - } - - const dataReceivedFromService = await sendOperation( - context, - fetch.operation, - { ...variables, representations }, - ); - - if (!dataReceivedFromService) { - return; - } - - if ( - !( - dataReceivedFromService._entities && - Array.isArray(dataReceivedFromService._entities) - ) - ) { - throw new Error(`Expected "data._entities" in response to be an array`); - } - - const receivedEntities = dataReceivedFromService._entities; - - if (receivedEntities.length !== representations.length) { - throw new Error( - `Expected "data._entities" to contain ${representations.length} elements`, - ); - } - - for (let i = 0; i < entities.length; i++) { - deepMerge(entities[representationToEntity[i]], receivedEntities[i]); - } - } - - async function sendOperation( - context: ExecutionContext, - source: string, - variables: Record, - ): Promise { - // We declare this as 'any' because it is missing url and method, which - // GraphQLRequest.http is supposed to have if it exists. - let http: any; - - // If we're capturing a trace for Studio, then save the operation text to - // the node we're building and tell the federated service to include a trace - // in its response. - if (traceNode) { - http = { - headers: new Headers({ 'apollo-federation-include-trace': 'ftv1' }), - }; - if ( - context.requestContext.metrics && - context.requestContext.metrics.startHrTime - ) { - traceNode.sentTimeOffset = durationHrTimeToNanos( - process.hrtime(context.requestContext.metrics.startHrTime), - ); - } - traceNode.sentTime = dateToProtoTimestamp(new Date()); - } - - const response = await service.process({ - request: { - query: source, - variables, - http, - }, - context: context.requestContext.context, - }); - - if (response.errors) { - const errors = response.errors.map(error => - downstreamServiceError( - error.message, - fetch.serviceName, - source, - variables, - error.extensions, - error.path, - ), - ); - context.errors.push(...errors); - } - - // If we're capturing a trace for Studio, save the received trace into the - // query plan. - if (traceNode) { - traceNode.receivedTime = dateToProtoTimestamp(new Date()); - - if (response.extensions && response.extensions.ftv1) { - const traceBase64 = response.extensions.ftv1; - - let traceBuffer: Buffer | undefined; - let traceParsingFailed = false; - try { - // XXX support non-Node implementations by using Uint8Array? protobufjs - // supports that, but there's not a no-deps base64 implementation. - traceBuffer = Buffer.from(traceBase64, 'base64'); - } catch (err) { - logger.error( - `error decoding base64 for federated trace from ${fetch.serviceName}: ${err}`, - ); - traceParsingFailed = true; - } - - if (traceBuffer) { - try { - const trace = Trace.decode(traceBuffer); - traceNode.trace = trace; - } catch (err) { - logger.error( - `error decoding protobuf for federated trace from ${fetch.serviceName}: ${err}`, - ); - traceParsingFailed = true; - } - } - if (traceNode.trace) { - // Federation requires the root operations in the composed schema - // to have the default names (Query, Mutation, Subscription) even - // if the implementing services choose different names, so we override - // whatever the implementing service reported here. - const rootTypeName = - defaultRootOperationNameLookup[ - context.operationContext.operation.operation - ]; - traceNode.trace.root?.child?.forEach((child) => { - child.parentType = rootTypeName; - }); - } - traceNode.traceParsingFailed = traceParsingFailed; - } - } - - return response.data; - } -} - -/** - * - * @param source Result of GraphQL execution. - * @param selectionSet - */ -function executeSelectionSet( - source: Record | null, - selections: QueryPlanSelectionNode[], -): Record | null { - - // If the underlying service has returned null for the parent (source) - // then there is no need to iterate through the parent's selection set - if (source === null) { - return null; - } - - const result: Record = Object.create(null); - - for (const selection of selections) { - switch (selection.kind) { - case Kind.FIELD: - const responseName = getResponseName(selection as QueryPlanFieldNode); - const selections = (selection as QueryPlanFieldNode).selections; - - if (typeof source[responseName] === 'undefined') { - throw new Error(`Field "${responseName}" was not found in response.`); - } - if (Array.isArray(source[responseName])) { - result[responseName] = source[responseName].map((value: any) => - selections ? executeSelectionSet(value, selections) : value, - ); - } else if (selections) { - result[responseName] = executeSelectionSet( - source[responseName], - selections, - ); - } else { - result[responseName] = source[responseName]; - } - break; - case Kind.INLINE_FRAGMENT: - if (!selection.typeCondition) continue; - - const typename = source && source['__typename']; - if (!typename) continue; - - if (typename === selection.typeCondition) { - deepMerge( - result, - executeSelectionSet(source, selection.selections), - ); - } - break; - } - } - - return result; -} - -function flattenResultsAtPath(value: any, path: ResponsePath): any { - if (path.length === 0) return value; - if (value === undefined || value === null) return value; - - const [current, ...rest] = path; - if (current === '@') { - return value.flatMap((element: any) => flattenResultsAtPath(element, rest)); - } else { - return flattenResultsAtPath(value[current], rest); - } -} - -function downstreamServiceError( - message: string | undefined, - serviceName: string, - query: string, - variables?: Record, - extensions?: Record, - path?: ReadonlyArray | undefined, -) { - if (!message) { - message = `Error while fetching subquery from service "${serviceName}"`; - } - extensions = { - code: 'DOWNSTREAM_SERVICE_ERROR', - // XXX The presence of a serviceName in extensions is used to - // determine if this error should be captured for metrics reporting. - serviceName, - query, - variables, - ...extensions, - }; - return new GraphQLError( - message, - undefined, - undefined, - undefined, - path, - undefined, - extensions, - ); -} - -export const defaultFieldResolverWithAliasSupport: GraphQLFieldResolver< - any, - any -> = function(source, args, contextValue, info) { - // ensure source is a value for which property access is acceptable. - if (typeof source === 'object' || typeof source === 'function') { - // if this is an alias, check it first because a downstream service - // would have returned the data *already cast* to an alias responseName - const property = source[info.path.key]; - if (typeof property === 'function') { - return source[info.fieldName](args, contextValue, info); - } - return property; - } -}; - -// Converts an hrtime array (as returned from process.hrtime) to nanoseconds. -// -// ONLY CALL THIS ON VALUES REPRESENTING DELTAS, NOT ON THE RAW RETURN VALUE -// FROM process.hrtime() WITH NO ARGUMENTS. -// -// The entire point of the hrtime data structure is that the JavaScript Number -// type can't represent all int64 values without loss of precision: -// Number.MAX_SAFE_INTEGER nanoseconds is about 104 days. Calling this function -// on a duration that represents a value less than 104 days is fine. Calling -// this function on an absolute time (which is generally roughly time since -// system boot) is not a good idea. -// -// XXX We should probably use google.protobuf.Duration on the wire instead of -// ever trying to store durations in a single number. -function durationHrTimeToNanos(hrtime: [number, number]) { - return hrtime[0] * 1e9 + hrtime[1]; -} - -// Converts a JS Date into a Timestamp. -function dateToProtoTimestamp(date: Date): google.protobuf.Timestamp { - const totalMillis = +date; - const millis = totalMillis % 1000; - return new google.protobuf.Timestamp({ - seconds: (totalMillis - millis) / 1000, - nanos: millis * 1e6, - }); -} diff --git a/gateway/node_modules/@apollo/gateway/src/index.ts b/gateway/node_modules/@apollo/gateway/src/index.ts deleted file mode 100644 index 60c9954..0000000 --- a/gateway/node_modules/@apollo/gateway/src/index.ts +++ /dev/null @@ -1,845 +0,0 @@ -import { - GraphQLService, - SchemaChangeCallback, - Unsubscriber, - GraphQLServiceEngineConfig, -} from 'apollo-server-core'; -import { - GraphQLExecutionResult, - Logger, - GraphQLRequestContextExecutionDidStart, - ApolloConfig, -} from 'apollo-server-types'; -import { InMemoryLRUCache } from 'apollo-server-caching'; -import { - isObjectType, - isIntrospectionType, - GraphQLSchema, - GraphQLError, - VariableDefinitionNode, -} from 'graphql'; -import { GraphQLSchemaValidationError } from 'apollo-graphql'; -import { composeAndValidate, ServiceDefinition, ComposedGraphQLSchema } from '@apollo/federation'; -import loglevel from 'loglevel'; - -import { buildQueryPlan, buildOperationContext } from './buildQueryPlan'; -import { - executeQueryPlan, - ServiceMap, - defaultFieldResolverWithAliasSupport, -} from './executeQueryPlan'; - -import { getServiceDefinitionsFromRemoteEndpoint } from './loadServicesFromRemoteEndpoint'; -import { - getServiceDefinitionsFromStorage, - CompositionMetadata, -} from './loadServicesFromStorage'; - -import { serializeQueryPlan, QueryPlan, OperationContext, WasmPointer } from './QueryPlan'; -import { GraphQLDataSource } from './datasources/types'; -import { RemoteGraphQLDataSource } from './datasources/RemoteGraphQLDataSource'; -import { HeadersInit } from 'node-fetch'; -import { getVariableValues } from 'graphql/execution/values'; -import fetcher from 'make-fetch-happen'; -import { HttpRequestCache } from './cache'; -import { fetch } from 'apollo-server-env'; -import { getQueryPlanner } from '@apollo/query-planner-wasm'; - -export type ServiceEndpointDefinition = Pick; - -interface GatewayConfigBase { - debug?: boolean; - logger?: Logger; - // TODO: expose the query plan in a more flexible JSON format in the future - // and remove this config option in favor of `exposeQueryPlan`. Playground - // should cutover to use the new option when it's built. - __exposeQueryPlanExperimental?: boolean; - buildService?: (definition: ServiceEndpointDefinition) => GraphQLDataSource; - - // experimental observability callbacks - experimental_didResolveQueryPlan?: Experimental_DidResolveQueryPlanCallback; - experimental_didFailComposition?: Experimental_DidFailCompositionCallback; - experimental_updateServiceDefinitions?: Experimental_UpdateServiceDefinitions; - experimental_didUpdateComposition?: Experimental_DidUpdateCompositionCallback; - experimental_pollInterval?: number; - experimental_approximateQueryPlanStoreMiB?: number; - experimental_autoFragmentization?: boolean; - fetcher?: typeof fetch; - serviceHealthCheck?: boolean; -} - -interface RemoteGatewayConfig extends GatewayConfigBase { - serviceList: ServiceEndpointDefinition[]; - introspectionHeaders?: HeadersInit; -} - -interface ManagedGatewayConfig extends GatewayConfigBase { - federationVersion?: number; -} -interface LocalGatewayConfig extends GatewayConfigBase { - localServiceList: ServiceDefinition[]; -} - -export type GatewayConfig = - | RemoteGatewayConfig - | LocalGatewayConfig - | ManagedGatewayConfig; - -type DataSourceMap = { - [serviceName: string]: { url?: string; dataSource: GraphQLDataSource }; -}; - -function isLocalConfig(config: GatewayConfig): config is LocalGatewayConfig { - return 'localServiceList' in config; -} - -function isRemoteConfig(config: GatewayConfig): config is RemoteGatewayConfig { - return 'serviceList' in config; -} - -function isManagedConfig( - config: GatewayConfig, -): config is ManagedGatewayConfig { - return !isRemoteConfig(config) && !isLocalConfig(config); -} - -export type Experimental_DidResolveQueryPlanCallback = ({ - queryPlan, - serviceMap, - operationContext, - requestContext, -}: { - readonly queryPlan: QueryPlan; - readonly serviceMap: ServiceMap; - readonly operationContext: OperationContext; - readonly requestContext: GraphQLRequestContextExecutionDidStart>; -}) => void; - -export type Experimental_DidFailCompositionCallback = ({ - errors, - serviceList, - compositionMetadata, -}: { - readonly errors: GraphQLError[]; - readonly serviceList: ServiceDefinition[]; - readonly compositionMetadata?: CompositionMetadata; -}) => void; - -export interface Experimental_CompositionInfo { - serviceDefinitions: ServiceDefinition[]; - schema: GraphQLSchema; - compositionMetadata?: CompositionMetadata; -} - -export type Experimental_DidUpdateCompositionCallback = ( - currentConfig: Experimental_CompositionInfo, - previousConfig?: Experimental_CompositionInfo, -) => void; - -/** - * **Note:** It's possible for a schema to be the same (`isNewSchema: false`) when - * `serviceDefinitions` have changed. For example, during type migration, the - * composed schema may be identical but the `serviceDefinitions` would differ - * since a type has moved from one service to another. - */ -export type Experimental_UpdateServiceDefinitions = ( - config: GatewayConfig, -) => Promise<{ - serviceDefinitions?: ServiceDefinition[]; - compositionMetadata?: CompositionMetadata; - isNewSchema: boolean; -}>; - -type Await = T extends Promise ? U : T; - -// Local state to track whether particular UX-improving warning messages have -// already been emitted. This is particularly useful to prevent recurring -// warnings of the same type in, e.g. repeating timers, which don't provide -// additional value when they are repeated over and over during the life-time -// of a server. -type WarnedStates = { - remoteWithLocalConfig?: boolean; -}; - -export const GCS_RETRY_COUNT = 5; - -export function getDefaultGcsFetcher() { - return fetcher.defaults({ - cacheManager: new HttpRequestCache(), - // All headers should be lower-cased here, as `make-fetch-happen` - // treats differently cased headers as unique (unlike the `Headers` object). - // @see: https://git.io/JvRUa - headers: { - 'user-agent': `apollo-gateway/${require('../package.json').version}`, - }, - retry: { - retries: GCS_RETRY_COUNT, - // The default factor: expected attempts at 0, 1, 3, 7, 15, and 31 seconds elapsed - factor: 2, - // 1 second - minTimeout: 1000, - randomize: true, - }, - }); -} - -export const HEALTH_CHECK_QUERY = - 'query __ApolloServiceHealthCheck__ { __typename }'; -export const SERVICE_DEFINITION_QUERY = - 'query __ApolloGetServiceDefinition__ { _service { sdl } }'; - -export class ApolloGateway implements GraphQLService { - public schema?: ComposedGraphQLSchema; - protected serviceMap: DataSourceMap = Object.create(null); - protected config: GatewayConfig; - private logger: Logger; - protected queryPlanStore?: InMemoryLRUCache; - private apolloConfig?: ApolloConfig; - private pollingTimer?: NodeJS.Timer; - private onSchemaChangeListeners = new Set(); - private serviceDefinitions: ServiceDefinition[] = []; - private compositionMetadata?: CompositionMetadata; - private serviceSdlCache = new Map(); - private warnedStates: WarnedStates = Object.create(null); - private queryPlannerPointer?: WasmPointer; - - private fetcher: typeof fetch = getDefaultGcsFetcher(); - - // Observe query plan, service info, and operation info prior to execution. - // The information made available here will give insight into the resulting - // query plan and the inputs that generated it. - protected experimental_didResolveQueryPlan?: Experimental_DidResolveQueryPlanCallback; - // Observe composition failures and the ServiceList that caused them. This - // enables reporting any issues that occur during composition. Implementors - // will be interested in addressing these immediately. - protected experimental_didFailComposition?: Experimental_DidFailCompositionCallback; - // Used to communicated composition changes, and what definitions caused - // those updates - protected experimental_didUpdateComposition?: Experimental_DidUpdateCompositionCallback; - // Used for overriding the default service list fetcher. This should return - // an array of ServiceDefinition. *This function must be awaited.* - protected updateServiceDefinitions: Experimental_UpdateServiceDefinitions; - // how often service defs should be loaded/updated (in ms) - protected experimental_pollInterval?: number; - - private experimental_approximateQueryPlanStoreMiB?: number; - - constructor(config?: GatewayConfig) { - this.config = { - // TODO: expose the query plan in a more flexible JSON format in the future - // and remove this config option in favor of `exposeQueryPlan`. Playground - // should cutover to use the new option when it's built. - __exposeQueryPlanExperimental: process.env.NODE_ENV !== 'production', - ...config, - }; - - // Setup logging facilities - if (this.config.logger) { - this.logger = this.config.logger; - } else { - // If the user didn't provide their own logger, we'll initialize one. - const loglevelLogger = loglevel.getLogger(`apollo-gateway`); - - // And also support the `debug` option, if it's truthy. - if (this.config.debug === true) { - loglevelLogger.setLevel(loglevelLogger.levels.DEBUG); - } else { - loglevelLogger.setLevel(loglevelLogger.levels.WARN); - } - - this.logger = loglevelLogger; - } - - if (isLocalConfig(this.config)) { - const { schema, composedSdl } = this.createSchema(this.config.localServiceList); - this.schema = schema; - - if (!composedSdl) { - this.logger.error("A valid schema couldn't be composed.") - } else { - this.queryPlannerPointer = getQueryPlanner(composedSdl); - } - } - - this.initializeQueryPlanStore(); - - // this will be overwritten if the config provides experimental_updateServiceDefinitions - this.updateServiceDefinitions = this.loadServiceDefinitions; - - if (config) { - this.updateServiceDefinitions = - config.experimental_updateServiceDefinitions || - this.updateServiceDefinitions; - // set up experimental observability callbacks - this.experimental_didResolveQueryPlan = - config.experimental_didResolveQueryPlan; - this.experimental_didFailComposition = - config.experimental_didFailComposition; - this.experimental_didUpdateComposition = - config.experimental_didUpdateComposition; - - this.experimental_approximateQueryPlanStoreMiB = - config.experimental_approximateQueryPlanStoreMiB; - - if ( - isManagedConfig(config) && - config.experimental_pollInterval && - config.experimental_pollInterval < 10000 - ) { - this.experimental_pollInterval = 10000; - this.logger.warn( - 'Polling Apollo services at a frequency of less than once per 10 seconds (10000) is disallowed. Instead, the minimum allowed pollInterval of 10000 will be used. Please reconfigure your experimental_pollInterval accordingly. If this is problematic for your team, please contact support.', - ); - } else { - this.experimental_pollInterval = config.experimental_pollInterval; - } - - // Warn against using the pollInterval and a serviceList simultaneously - if (config.experimental_pollInterval && isRemoteConfig(config)) { - this.logger.warn( - 'Polling running services is dangerous and not recommended in production. ' + - 'Polling should only be used against a registry. ' + - 'If you are polling running services, use with caution.', - ); - } - - if (config.fetcher) { - this.fetcher = config.fetcher; - } - } - } - - public async load(options?: { apollo?: ApolloConfig; engine?: GraphQLServiceEngineConfig }) { - if (options?.apollo) { - this.apolloConfig = options.apollo; - } else if (options?.engine) { - // Older version of apollo-server-core that isn't passing 'apollo' yet. - this.apolloConfig = { - keyHash: options.engine.apiKeyHash, - graphId: options.engine.graphId, - graphVariant: options.engine.graphVariant || 'current', - } - } - - await this.updateComposition(); - if ( - (isManagedConfig(this.config) || this.experimental_pollInterval) && - !this.pollingTimer - ) { - this.pollServices(); - } - - const mode = isManagedConfig(this.config) ? 'managed' : 'unmanaged'; - - this.logger.info( - `Gateway successfully loaded schema.\n\t* Mode: ${mode}${ - (this.apolloConfig && this.apolloConfig.graphId) - ? `\n\t* Service: ${this.apolloConfig.graphId}@${this.apolloConfig.graphVariant}` - : '' - }`, - ); - - return { - // we know this will be here since we're awaiting this.updateComposition - // before here which sets this.schema - schema: this.schema!, - executor: this.executor, - }; - } - - protected async updateComposition(): Promise { - let result: Await>; - this.logger.debug('Checking service definitions...'); - try { - result = await this.updateServiceDefinitions(this.config); - } catch (e) { - this.logger.error( - "Error checking for changes to service definitions: " + - (e && e.message || e) - ); - throw e; - } - - if ( - !result.serviceDefinitions || - JSON.stringify(this.serviceDefinitions) === - JSON.stringify(result.serviceDefinitions) - ) { - this.logger.debug('No change in service definitions since last check.'); - return; - } - - const previousSchema = this.schema; - const previousServiceDefinitions = this.serviceDefinitions; - const previousCompositionMetadata = this.compositionMetadata; - - if (previousSchema) { - this.logger.info("New service definitions were found."); - } - - // Run service health checks before we commit and update the new schema. - // This is the last chance to bail out of a schema update. - if (this.config.serviceHealthCheck) { - // Here we need to construct new datasources based on the new schema info - // so we can check the health of the services we're _updating to_. - const serviceMap = result.serviceDefinitions.reduce( - (serviceMap, serviceDef) => { - serviceMap[serviceDef.name] = { - url: serviceDef.url, - dataSource: this.createDataSource(serviceDef), - }; - return serviceMap; - }, - Object.create(null) as DataSourceMap, - ); - - try { - await this.serviceHealthCheck(serviceMap); - } catch (e) { - this.logger.error( - 'The gateway did not update its schema due to failed service health checks. ' + - 'The gateway will continue to operate with the previous schema and reattempt updates.' + e - ); - throw e; - } - } - - this.compositionMetadata = result.compositionMetadata; - this.serviceDefinitions = result.serviceDefinitions; - - if (this.queryPlanStore) this.queryPlanStore.flush(); - - const { schema, composedSdl } = this.createSchema(result.serviceDefinitions); - - if (!composedSdl) { - this.logger.error( - "A valid schema couldn't be composed. Falling back to previous schema." - ) - } else { - this.schema = schema; - this.queryPlannerPointer = getQueryPlanner(composedSdl); - - // Notify the schema listeners of the updated schema - try { - this.onSchemaChangeListeners.forEach(listener => listener(this.schema!)); - } catch (e) { - this.logger.error( - "An error was thrown from an 'onSchemaChange' listener. " + - "The schema will still update: " + (e && e.message || e)); - } - - if (this.experimental_didUpdateComposition) { - this.experimental_didUpdateComposition( - { - serviceDefinitions: result.serviceDefinitions, - schema: this.schema, - ...(this.compositionMetadata && { - compositionMetadata: this.compositionMetadata, - }), - }, - previousServiceDefinitions && - previousSchema && { - serviceDefinitions: previousServiceDefinitions, - schema: previousSchema, - ...(previousCompositionMetadata && { - compositionMetadata: previousCompositionMetadata, - }), - }, - ); - } - } - } - - /** - * This can be used without an argument in order to perform an ad-hoc health check - * of the downstream services like so: - * - * @example - * ``` - * try { - * await gateway.serviceHealthCheck(); - * } catch(e) { - * /* your error handling here *\/ - * } - * ``` - * @throws - * @param serviceMap {DataSourceMap} - */ - public serviceHealthCheck(serviceMap: DataSourceMap = this.serviceMap) { - return Promise.all( - Object.entries(serviceMap).map(([name, { dataSource }]) => - dataSource - .process({ request: { query: HEALTH_CHECK_QUERY }, context: {} }) - .then(response => ({ name, response })), - ), - ); - } - - protected createSchema(serviceList: ServiceDefinition[]) { - this.logger.debug( - `Composing schema from service list: \n${serviceList - .map(({ name, url }) => ` ${url || 'local'}: ${name}`) - .join('\n')}`, - ); - - const { schema, errors, composedSdl } = composeAndValidate(serviceList); - - if (errors && errors.length > 0) { - if (this.experimental_didFailComposition) { - this.experimental_didFailComposition({ - errors, - serviceList, - ...(this.compositionMetadata && { - compositionMetadata: this.compositionMetadata, - }), - }); - } - throw new GraphQLSchemaValidationError(errors); - } - - this.createServices(serviceList); - - this.logger.debug('Schema loaded and ready for execution'); - - // This is a workaround for automatic wrapping of all fields, which Apollo - // Server does in the case of implementing resolver wrapping for plugins. - // Here we wrap all fields with support for resolving aliases as part of the - // root value which happens because aliases are resolved by sub services and - // the shape of the root value already contains the aliased fields as - // responseNames - return { schema: wrapSchemaWithAliasResolver(schema), composedSdl }; - } - - public onSchemaChange(callback: SchemaChangeCallback): Unsubscriber { - this.onSchemaChangeListeners.add(callback); - - return () => { - this.onSchemaChangeListeners.delete(callback); - }; - } - - private async pollServices() { - if (this.pollingTimer) clearTimeout(this.pollingTimer); - - // Sleep for the specified pollInterval before kicking off another round of polling - await new Promise(res => { - this.pollingTimer = setTimeout( - () => res(), - this.experimental_pollInterval || 10000, - ); - // Prevent the Node.js event loop from remaining active (and preventing, - // e.g. process shutdown) by calling `unref` on the `Timeout`. For more - // information, see https://nodejs.org/api/timers.html#timers_timeout_unref. - this.pollingTimer?.unref(); - }); - - try { - await this.updateComposition(); - } catch (err) { - this.logger.error(err && err.message || err); - } - - this.pollServices(); - } - - private createAndCacheDataSource( - serviceDef: ServiceEndpointDefinition, - ): GraphQLDataSource { - // If the DataSource has already been created, early return - if ( - this.serviceMap[serviceDef.name] && - serviceDef.url === this.serviceMap[serviceDef.name].url - ) - return this.serviceMap[serviceDef.name].dataSource; - - const dataSource = this.createDataSource(serviceDef); - - // Cache the created DataSource - this.serviceMap[serviceDef.name] = { url: serviceDef.url, dataSource }; - - return dataSource; - } - - private createDataSource( - serviceDef: ServiceEndpointDefinition, - ): GraphQLDataSource { - if (!serviceDef.url && !isLocalConfig(this.config)) { - this.logger.error( - `Service definition for service ${serviceDef.name} is missing a url`, - ); - } - - return this.config.buildService - ? this.config.buildService(serviceDef) - : new RemoteGraphQLDataSource({ - url: serviceDef.url, - }); - } - - protected createServices(services: ServiceEndpointDefinition[]) { - for (const serviceDef of services) { - this.createAndCacheDataSource(serviceDef); - } - } - - protected async loadServiceDefinitions( - config: GatewayConfig, - ): ReturnType { - const canUseManagedConfig = - this.apolloConfig?.graphId && this.apolloConfig?.keyHash; - // This helper avoids the repetition of options in the two cases this method - // is invoked below. Only call it if canUseManagedConfig is true - // (which makes its uses of ! safe) - const getManagedConfig = () => { - return getServiceDefinitionsFromStorage({ - graphId: this.apolloConfig!.graphId!, - apiKeyHash: this.apolloConfig!.keyHash!, - graphVariant: this.apolloConfig!.graphVariant, - federationVersion: - (config as ManagedGatewayConfig).federationVersion || 1, - fetcher: this.fetcher, - }); - }; - - if (isLocalConfig(config) || isRemoteConfig(config)) { - if (canUseManagedConfig && !this.warnedStates.remoteWithLocalConfig) { - // Only display this warning once per start-up. - this.warnedStates.remoteWithLocalConfig = true; - // This error helps avoid common misconfiguration. - // We don't await this because a local configuration should assume - // remote is unavailable for one reason or another. - getManagedConfig().then(() => { - this.logger.warn( - "A local gateway service list is overriding a managed federation " + - "configuration. To use the managed " + - "configuration, do not specify a service list locally.", - ); - }).catch(() => {}); // Don't mind errors if managed config is missing. - } - } - - if (isLocalConfig(config)) { - return { isNewSchema: false }; - } - - if (isRemoteConfig(config)) { - const serviceList = config.serviceList.map(serviceDefinition => ({ - ...serviceDefinition, - dataSource: this.createAndCacheDataSource(serviceDefinition), - })); - - return getServiceDefinitionsFromRemoteEndpoint({ - serviceList, - ...(config.introspectionHeaders - ? { headers: config.introspectionHeaders } - : {}), - serviceSdlCache: this.serviceSdlCache, - }); - } - - if (!canUseManagedConfig) { - throw new Error( - 'When `serviceList` is not set, an Apollo configuration must be provided. See https://www.apollographql.com/docs/apollo-server/federation/managed-federation/ for more information.', - ); - } - - return getManagedConfig(); - } - - // XXX Nothing guarantees that the only errors thrown or returned in - // result.errors are GraphQLErrors, even though other code (eg - // ApolloServerPluginUsageReporting) assumes that. In fact, errors talking to backends - // are unlikely to show up as GraphQLErrors. Do we need to use - // formatApolloErrors or something? - public executor = async ( - requestContext: GraphQLRequestContextExecutionDidStart, - ): Promise => { - const { request, document, queryHash, source } = requestContext; - const queryPlanStoreKey = queryHash + (request.operationName || ''); - const operationContext = buildOperationContext({ - schema: this.schema!, - operationDocument: document, - operationString: source, - queryPlannerPointer: this.queryPlannerPointer!, - operationName: request.operationName, - }); - - // No need to build a query plan if we know the request is invalid beforehand - // In the future, this should be controlled by the requestPipeline - const validationErrors = this.validateIncomingRequest( - requestContext, - operationContext, - ); - - if (validationErrors.length > 0) { - return { errors: validationErrors }; - } - - let queryPlan: QueryPlan | undefined; - if (this.queryPlanStore) { - queryPlan = await this.queryPlanStore.get(queryPlanStoreKey); - } - - if (!queryPlan) { - queryPlan = buildQueryPlan(operationContext, { - autoFragmentization: Boolean( - this.config.experimental_autoFragmentization, - ), - }); - if (this.queryPlanStore) { - // The underlying cache store behind the `documentStore` returns a - // `Promise` which is resolved (or rejected), eventually, based on the - // success or failure (respectively) of the cache save attempt. While - // it's certainly possible to `await` this `Promise`, we don't care about - // whether or not it's successful at this point. We'll instead proceed - // to serve the rest of the request and just hope that this works out. - // If it doesn't work, the next request will have another opportunity to - // try again. Errors will surface as warnings, as appropriate. - // - // While it shouldn't normally be necessary to wrap this `Promise` in a - // `Promise.resolve` invocation, it seems that the underlying cache store - // is returning a non-native `Promise` (e.g. Bluebird, etc.). - Promise.resolve( - this.queryPlanStore.set(queryPlanStoreKey, queryPlan), - ).catch(err => - this.logger.warn( - 'Could not store queryPlan' + ((err && err.message) || err), - ), - ); - } - } - - const serviceMap: ServiceMap = Object.entries(this.serviceMap).reduce( - (serviceDataSources, [serviceName, { dataSource }]) => { - serviceDataSources[serviceName] = dataSource; - return serviceDataSources; - }, - Object.create(null) as ServiceMap, - ); - - if (this.experimental_didResolveQueryPlan) { - this.experimental_didResolveQueryPlan({ - queryPlan, - serviceMap, - requestContext, - operationContext, - }); - } - - const response = await executeQueryPlan( - queryPlan, - serviceMap, - requestContext, - operationContext, - ); - - const shouldShowQueryPlan = - this.config.__exposeQueryPlanExperimental && - request.http && - request.http.headers && - request.http.headers.get('Apollo-Query-Plan-Experimental'); - - // We only want to serialize the query plan if we're going to use it, which is - // in two cases: - // 1) non-empty query plan and config.debug === true - // 2) non-empty query plan and shouldShowQueryPlan === true - const serializedQueryPlan = - queryPlan.node && (this.config.debug || shouldShowQueryPlan) - ? serializeQueryPlan(queryPlan) - : null; - - if (this.config.debug && serializedQueryPlan) { - this.logger.debug(serializedQueryPlan); - } - - if (shouldShowQueryPlan) { - // TODO: expose the query plan in a more flexible JSON format in the future - // and rename this to `queryPlan`. Playground should cutover to use the new - // option once we've built a way to print that representation. - - // In the case that `serializedQueryPlan` is null (on introspection), we - // still want to respond to Playground with something truthy since it depends - // on this to decide that query plans are supported by this gateway. - response.extensions = { - __queryPlanExperimental: serializedQueryPlan || true, - }; - } - return response; - }; - - protected validateIncomingRequest( - requestContext: GraphQLRequestContextExecutionDidStart, - operationContext: OperationContext, - ) { - // casting out of `readonly` - const variableDefinitions = operationContext.operation - .variableDefinitions as VariableDefinitionNode[] | undefined; - - if (!variableDefinitions) return []; - - const { errors } = getVariableValues( - operationContext.schema, - variableDefinitions, - requestContext.request.variables || {}, - ); - - return errors || []; - } - - private initializeQueryPlanStore(): void { - this.queryPlanStore = new InMemoryLRUCache({ - // Create ~about~ a 30MiB InMemoryLRUCache. This is less than precise - // since the technique to calculate the size of a DocumentNode is - // only using JSON.stringify on the DocumentNode (and thus doesn't account - // for unicode characters, etc.), but it should do a reasonable job at - // providing a caching document store for most operations. - maxSize: - Math.pow(2, 20) * - (this.experimental_approximateQueryPlanStoreMiB || 30), - sizeCalculator: approximateObjectSize, - }); - } - - public async stop() { - if (this.pollingTimer) { - clearTimeout(this.pollingTimer); - this.pollingTimer = undefined; - } - } -} - -function approximateObjectSize(obj: T): number { - return Buffer.byteLength(JSON.stringify(obj), 'utf8'); -} - -// We can't use transformSchema here because the extension data for query -// planning would be lost. Instead we set a resolver for each field -// in order to counteract GraphQLExtensions preventing a defaultFieldResolver -// from doing the same job -function wrapSchemaWithAliasResolver( - schema: ComposedGraphQLSchema, -): ComposedGraphQLSchema { - const typeMap = schema.getTypeMap(); - Object.keys(typeMap).forEach(typeName => { - const type = typeMap[typeName]; - - if (isObjectType(type) && !isIntrospectionType(type)) { - const fields = type.getFields(); - Object.keys(fields).forEach(fieldName => { - const field = fields[fieldName]; - field.resolve = defaultFieldResolverWithAliasSupport; - }); - } - }); - return schema; -} - -export { - buildQueryPlan, - executeQueryPlan, - serializeQueryPlan, - buildOperationContext, - QueryPlan, - ServiceMap, -}; -export * from './datasources'; diff --git a/gateway/node_modules/@apollo/gateway/src/loadServicesFromRemoteEndpoint.ts b/gateway/node_modules/@apollo/gateway/src/loadServicesFromRemoteEndpoint.ts deleted file mode 100644 index c4dd8b9..0000000 --- a/gateway/node_modules/@apollo/gateway/src/loadServicesFromRemoteEndpoint.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { GraphQLRequest } from 'apollo-server-types'; -import { parse } from 'graphql'; -import { Headers, HeadersInit } from 'node-fetch'; -import { GraphQLDataSource } from './datasources/types'; -import { Experimental_UpdateServiceDefinitions, SERVICE_DEFINITION_QUERY } from './'; -import { ServiceDefinition } from '@apollo/federation'; - -export async function getServiceDefinitionsFromRemoteEndpoint({ - serviceList, - headers = {}, - serviceSdlCache, -}: { - serviceList: { - name: string; - url?: string; - dataSource: GraphQLDataSource; - }[]; - headers?: HeadersInit; - serviceSdlCache: Map; -}): ReturnType { - if (!serviceList || !serviceList.length) { - throw new Error( - 'Tried to load services from remote endpoints but none provided', - ); - } - - let isNewSchema = false; - // for each service, fetch its introspection schema - const promiseOfServiceList = serviceList.map(({ name, url, dataSource }) => { - if (!url) { - throw new Error( - `Tried to load schema for '${name}' but no 'url' was specified.`); - } - - const request: GraphQLRequest = { - query: SERVICE_DEFINITION_QUERY, - http: { - url, - method: 'POST', - headers: new Headers(headers), - }, - }; - - return dataSource - .process({ request, context: {} }) - .then(({ data, errors }): ServiceDefinition => { - if (data && !errors) { - const typeDefs = data._service.sdl as string; - const previousDefinition = serviceSdlCache.get(name); - // this lets us know if any downstream service has changed - // and we need to recalculate the schema - if (previousDefinition !== typeDefs) { - isNewSchema = true; - } - serviceSdlCache.set(name, typeDefs); - return { - name, - url, - typeDefs: parse(typeDefs), - }; - } - - throw new Error(errors?.map(e => e.message).join("\n")); - }) - .catch(err => { - const errorMessage = - `Couldn't load service definitions for "${name}" at ${url}` + - (err && err.message ? ": " + err.message || err : ""); - - throw new Error(errorMessage); - }); - }); - - const serviceDefinitions = await Promise.all(promiseOfServiceList); - return { serviceDefinitions, isNewSchema } -} diff --git a/gateway/node_modules/@apollo/gateway/src/loadServicesFromStorage.ts b/gateway/node_modules/@apollo/gateway/src/loadServicesFromStorage.ts deleted file mode 100644 index 4bc01e6..0000000 --- a/gateway/node_modules/@apollo/gateway/src/loadServicesFromStorage.ts +++ /dev/null @@ -1,163 +0,0 @@ -import { fetch } from 'apollo-server-env'; -import { parse } from 'graphql'; -import { Experimental_UpdateServiceDefinitions } from '.'; - -interface LinkFileResult { - configPath: string; - formatVersion: number; -} - -interface ImplementingService { - formatVersion: number; - graphID: string; - graphVariant: string; - name: string; - revision: string; - url: string; - partialSchemaPath: string; -} - -interface ImplementingServiceLocation { - name: string; - path: string; -} - -export interface CompositionMetadata { - formatVersion: number; - id: string; - implementingServiceLocations: ImplementingServiceLocation[]; - schemaHash: string; -} - -const envOverridePartialSchemaBaseUrl = 'APOLLO_PARTIAL_SCHEMA_BASE_URL'; -const envOverrideStorageSecretBaseUrl = 'APOLLO_STORAGE_SECRET_BASE_URL'; - -const urlFromEnvOrDefault = (envKey: string, fallback: string) => - (process.env[envKey] || fallback).replace(/\/$/, ''); - -// Generate and cache our desired operation manifest URL. -const urlPartialSchemaBase = urlFromEnvOrDefault( - envOverridePartialSchemaBaseUrl, - 'https://federation.api.apollographql.com/', -); - -const urlStorageSecretBase: string = urlFromEnvOrDefault( - envOverrideStorageSecretBaseUrl, - 'https://storage-secrets.api.apollographql.com/', -); - -function getStorageSecretUrl(graphId: string, apiKeyHash: string): string { - return `${urlStorageSecretBase}/${graphId}/storage-secret/${apiKeyHash}.json`; -} - -function fetchApolloGcs( - fetcher: typeof fetch, - ...args: Parameters -): ReturnType { - const [input, init] = args; - - // Used in logging. - const url = typeof input === 'object' && input.url || input; - - return fetcher(input, init) - .catch(fetchError => { - throw new Error( - "Cannot access Apollo storage: " + fetchError) - }) - .then(async (response) => { - // If the fetcher has a cache and has implemented ETag validation, then - // a 304 response may be returned. Either way, we will return the - // non-JSON-parsed version and let the caller decide if that's important - // to their needs. - if (response.ok || response.status === 304) { - return response; - } - - // We won't make any assumptions that the body is anything but text, to - // avoid parsing errors in this unknown condition. - const body = await response.text(); - - // Google Cloud Storage returns an `application/xml` error under error - // conditions. We'll special-case our known errors, and resort to - // printing the body for others. - if ( - response.status === 403 && body.includes("AccessDenied") - ) { - throw new Error( - "Unable to authenticate with Apollo storage " + - "while fetching " + url + ". Ensure that the API key is " + - "configured properly and that a federated service has been " + - "pushed. For details, see " + - "https://go.apollo.dev/g/resolve-access-denied."); - } - - // Normally, we'll try to keep the logs clean with errors we expect. - // If it's not a known error, reveal the full body for debugging. - throw new Error( - "Could not communicate with Apollo storage: " + body); - }); -}; - -export async function getServiceDefinitionsFromStorage({ - graphId, - apiKeyHash, - graphVariant, - federationVersion, - fetcher, -}: { - graphId: string; - apiKeyHash: string; - graphVariant: string; - federationVersion: number; - fetcher: typeof fetch; -}): ReturnType { - // fetch the storage secret - const storageSecretUrl = getStorageSecretUrl(graphId, apiKeyHash); - - // The storage secret is a JSON string (e.g. `"secret"`). - const secret: string = - await fetchApolloGcs(fetcher, storageSecretUrl).then(res => res.json()); - - const baseUrl = `${urlPartialSchemaBase}/${secret}/${graphVariant}/v${federationVersion}`; - - const compositionConfigResponse = - await fetchApolloGcs(fetcher, `${baseUrl}/composition-config-link`); - - if (compositionConfigResponse.status === 304) { - return { isNewSchema: false }; - } - - const linkFileResult: LinkFileResult = await compositionConfigResponse.json(); - - const compositionMetadata: CompositionMetadata = await fetchApolloGcs( - fetcher, - `${urlPartialSchemaBase}/${linkFileResult.configPath}`, - ).then(res => res.json()); - - // It's important to maintain the original order here - const serviceDefinitions = await Promise.all( - compositionMetadata.implementingServiceLocations.map( - async ({ name, path }) => { - const { url, partialSchemaPath }: ImplementingService = await fetcher( - `${urlPartialSchemaBase}/${path}`, - ).then(response => response.json()); - - const sdl = await fetcher( - `${urlPartialSchemaBase}/${partialSchemaPath}`, - ).then(response => response.text()); - - return { name, url, typeDefs: parse(sdl) }; - }, - ), - ); - - // explicity return that this is a new schema, as the link file has changed. - // we can't use the hit property of the fetchPartialSchemaFiles, as the partial - // schema may all be cache hits with the final schema still being new - // (for instance if a partial schema is removed or a partial schema is rolled back to a prior version, which is still in cache) - return { - serviceDefinitions, - compositionMetadata, - isNewSchema: true, - }; -} diff --git a/gateway/node_modules/@apollo/gateway/src/make-fetch-happen.d.ts b/gateway/node_modules/@apollo/gateway/src/make-fetch-happen.d.ts deleted file mode 100644 index 6b7f173..0000000 --- a/gateway/node_modules/@apollo/gateway/src/make-fetch-happen.d.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** - * We are attempting to get types included natively in this package, but it - * has not happened, yet! - * - * See https://github.com/npm/make-fetch-happen/issues/20 - */ -declare module 'make-fetch-happen' { - import { - Response, - Request, - RequestInfo, - RequestInit, - } from 'apollo-server-env'; - - // If adding to these options, they should mirror those from `make-fetch-happen` - // @see: https://github.com/npm/make-fetch-happen/#extra-options - export interface FetcherOptions { - cacheManager?: string | CacheManager; - // @see: https://www.npmjs.com/package/retry#retrytimeoutsoptions - retry?: - | boolean - | number - | { - // The maximum amount of times to retry the operation. Default is 10. Seting this to 1 means do it once, then retry it once - retries?: number; - // The exponential factor to use. Default is 2. - factor?: number; - // The number of milliseconds before starting the first retry. Default is 1000. - minTimeout?: number; - // The maximum number of milliseconds between two retries. Default is Infinity. - maxTimeout?: number; - // Randomizes the timeouts by multiplying with a factor between 1 to 2. Default is false. - randomize?: boolean; - }; - onRetry?(): void; - } - - export interface CacheManager { - delete(req: Request): Promise; - put(req: Request, res: Response): Promise; - match(req: Request): Promise; - } - - /** - * This is an augmentation of the fetch function types provided by `apollo-server-env` - * @see: https://git.io/JvBwX - */ - export interface Fetcher { - (input?: RequestInfo, init?: RequestInit & FetcherOptions): Promise< - Response - >; - } - - let fetch: Fetcher & { - defaults(opts?: RequestInit & FetcherOptions): Fetcher; - }; - - export default fetch; -} diff --git a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/astSerializer.ts b/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/astSerializer.ts deleted file mode 100644 index f3cee95..0000000 --- a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/astSerializer.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { ASTNode, print, Kind, visit } from 'graphql'; -import { Plugin, Config, Refs } from 'pretty-format'; -import { QueryPlanSelectionNode, QueryPlanInlineFragmentNode } from '../QueryPlan'; -import { SelectionNode as GraphQLJSSelectionNode } from 'graphql'; - -export default { - test(value: any) { - return value && typeof value.kind === 'string'; - }, - - serialize( - value: ASTNode, - _config: Config, - indentation: string, - _depth: number, - _refs: Refs, - _printer: any, - ): string { - return print(remapInlineFragmentNodes(value)) - .trim() - .replace(/\n\n/g, '\n') - .replace(/\n/g, '\n' + indentation); - }, -} as Plugin; - -/** - * This function converts potential InlineFragmentNodes that WE created - * (defined in ../QueryPlan, not graphql-js) to GraphQL-js compliant AST nodes - * for the graphql-js printer to work with - * - * The arg type here SHOULD be (node: AstNode | SelectionNode (from ../QueryPlan)), - * but that breaks the graphql-js visitor, as it won't allow our redefined - * SelectionNode to be passed in. - * - * Since our SelectionNode still has a `kind`, this will still functionally work - * at runtime to call the InlineFragment visitor defined below - * - * We have to cast the `fragmentNode as unknown` and then to an InlineFragmentNode - * at the bottom though, since there's no way to cast it appropriately to an - * `InlineFragmentNode` as defined in ../QueryPlan.ts. TypeScript will complain - * about there not being overlapping fields - */ -export function remapInlineFragmentNodes(node: ASTNode): ASTNode { - return visit(node, { - InlineFragment: (fragmentNode) => { - // if the fragmentNode is already a proper graphql AST Node, return it - if (fragmentNode.selectionSet) return fragmentNode; - - /** - * Since the above check wasn't hit, we _know_ that fragmentNode is an - * InlineFragmentNode from ../QueryPlan, but we can't actually type that - * without causing ourselves a lot of headache, so we cast to unknown and - * then to InlineFragmentNode (from ../QueryPlan) below - */ - - // if the fragmentNode is a QueryPlan InlineFragmentNode, convert it to graphql-js node - return { - kind: Kind.INLINE_FRAGMENT, - typeCondition: fragmentNode.typeCondition - ? { - kind: Kind.NAMED_TYPE, - name: { - kind: Kind.NAME, - value: fragmentNode.typeCondition, - }, - } - : undefined, - selectionSet: { - kind: Kind.SELECTION_SET, - // we have to recursively rebuild the selectionSet using selections - selections: remapSelections( - ((fragmentNode as unknown) as QueryPlanInlineFragmentNode).selections, - ), - }, - }; - }, - }); -} - -function remapSelections( - selections: QueryPlanSelectionNode[], -): ReadonlyArray { - return selections.map((selection) => { - switch (selection.kind) { - case Kind.FIELD: - return { - kind: Kind.FIELD, - name: { - kind: Kind.NAME, - value: selection.name, - }, - selectionSet: { - kind: Kind.SELECTION_SET, - selections: remapSelections(selection.selections || []), - }, - }; - case Kind.INLINE_FRAGMENT: - return { - kind: Kind.INLINE_FRAGMENT, - selectionSet: { - kind: Kind.SELECTION_SET, - selections: remapSelections(selection.selections || []), - }, - typeCondition: selection.typeCondition - ? { - kind: Kind.NAMED_TYPE, - name: { - kind: Kind.NAME, - value: selection.typeCondition, - }, - } - : undefined, - }; - } - }); -} diff --git a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/index.ts b/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/index.ts deleted file mode 100644 index 3a768cf..0000000 --- a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import astSerializer from './astSerializer'; -import selectionSetSerializer from './selectionSetSerializer'; -import typeSerializer from './typeSerializer'; -import queryPlanSerializer from './queryPlanSerializer'; -export { - astSerializer, - selectionSetSerializer, - typeSerializer, - queryPlanSerializer, -}; - -declare global { - namespace jest { - interface Expect { - /** - * Adds a module to format application-specific data structures for serialization. - */ - addSnapshotSerializer(serializer: import('pretty-format').Plugin): void; - } - } -} diff --git a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/queryPlanSerializer.ts b/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/queryPlanSerializer.ts deleted file mode 100644 index 08023fe..0000000 --- a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/queryPlanSerializer.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { Config, Plugin, Refs } from 'pretty-format'; -import { PlanNode, QueryPlan } from '../QueryPlan'; -import { parse, Kind, visit, DocumentNode } from 'graphql'; - -export default { - test(value: any) { - return value && value.kind === 'QueryPlan'; - }, - - serialize( - queryPlan: QueryPlan, - config: Config, - indentation: string, - depth: number, - refs: Refs, - printer: any, - ): string { - return ( - 'QueryPlan {' + - printNodes( - queryPlan.node ? [queryPlan.node] : undefined, - config, - indentation, - depth, - refs, - printer, - ) + - '}' - ); - }, -} as Plugin; - -function printNode( - node: PlanNode, - config: Config, - indentation: string, - depth: number, - refs: Refs, - printer: any, -): string { - let result = ''; - - const indentationNext = indentation + config.indent; - - switch (node.kind) { - case 'Fetch': - result += - `Fetch(service: "${node.serviceName}")` + - ' {' + - config.spacingOuter + - indentationNext + - (node.requires - ? printer( - // this is an array of selections, so we need to make it a proper - // selectionSet so we can print it - { kind: Kind.SELECTION_SET, selections: node.requires }, - config, - indentationNext, - depth, - refs, - printer, - ) + - ' =>' + - config.spacingOuter + - indentationNext - : '') + - printer( - flattenEntitiesField(parse(node.operation)), - config, - indentationNext, - depth, - refs, - printer, - ) + - config.spacingOuter + - indentation + - '}'; - break; - case 'Flatten': - result += `Flatten(path: "${node.path.join('.')}")`; - break; - default: - result += node.kind; - } - - const nodes = - 'nodes' in node ? node.nodes : 'node' in node ? [node.node] : []; - - if (nodes.length > 0) { - result += - ' {' + printNodes(nodes, config, indentation, depth, refs, printer) + '}'; - } - - return result; -} - -function printNodes( - nodes: PlanNode[] | undefined, - config: Config, - indentation: string, - depth: number, - refs: Refs, - printer: any, -): string { - let result = ''; - - if (nodes && nodes.length > 0) { - result += config.spacingOuter; - - const indentationNext = indentation + config.indent; - for (let i = 0; i < nodes.length; i++) { - const node = nodes[i]; - if (!node) continue; - - result += - indentationNext + - printNode(node, config, indentationNext, depth, refs, printer); - - if (i < nodes.length - 1) { - result += ',' + config.spacingInner; - } else if (!config.min) { - result += ','; - } - } - - result += config.spacingOuter + indentation; - } - - return result; -} - -/** - * when we serialize a query plan, we want to serialize the operation, but not - * show the root level `query` definition or the `_entities` call. This function - * flattens those nodes to only show their selectionSets - */ -function flattenEntitiesField(node: DocumentNode) { - return visit(node, { - OperationDefinition: ({ operation, selectionSet }) => { - const firstSelection = selectionSet.selections[0]; - if ( - operation === 'query' && - firstSelection.kind === Kind.FIELD && - firstSelection.name.value === '_entities' - ) { - return firstSelection.selectionSet; - } - // we don't want to print the `query { }` definition either for query plan printing - return selectionSet; - }, - }); -} diff --git a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/selectionSetSerializer.ts b/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/selectionSetSerializer.ts deleted file mode 100644 index 33dfba4..0000000 --- a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/selectionSetSerializer.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { print, SelectionNode, isSelectionNode } from 'graphql'; -import { Plugin } from 'pretty-format'; - -export default { - test(value: any) { - return ( - Array.isArray(value) && value.length > 0 && value.every(isSelectionNode) - ); - }, - print(selectionNodes: SelectionNode[]): string { - return selectionNodes.map(node => print(node)).join('\n'); - }, -} as Plugin; diff --git a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/typeSerializer.ts b/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/typeSerializer.ts deleted file mode 100644 index 7b78e18..0000000 --- a/gateway/node_modules/@apollo/gateway/src/snapshotSerializers/typeSerializer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { isNamedType, GraphQLNamedType, printType } from 'graphql'; -import { Plugin } from 'pretty-format'; - -export default { - test(value: any) { - return value && isNamedType(value); - }, - print(value: GraphQLNamedType) { - return printType(value); - }, -} as Plugin; diff --git a/gateway/node_modules/@apollo/gateway/src/utilities/__tests__/deepMerge.test.ts b/gateway/node_modules/@apollo/gateway/src/utilities/__tests__/deepMerge.test.ts deleted file mode 100644 index 545968b..0000000 --- a/gateway/node_modules/@apollo/gateway/src/utilities/__tests__/deepMerge.test.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { deepMerge } from '../deepMerge'; - -describe('deepMerge', () => { - it('merges basic', () => { - const target = { - a: 1, - b: 2, - }; - - const source = { - b: 3, - c: 4, - }; - - expect(deepMerge(target, source)).toEqual({ - a: 1, - b: 3, - c: 4, - }); - }); - - it('merges nested objects', () => { - const target = { - a: 1, - b: { - someProperty: 1, - overwrittenProperty: 'clean', - }, - }; - - const source = { - b: { - overwrittenProperty: 'dirty', - newProperty: 'new', - }, - c: 4, - }; - - expect(deepMerge(target, source)).toEqual({ - a: 1, - b: { - newProperty: 'new', - overwrittenProperty: 'dirty', - someProperty: 1, - }, - c: 4, - }); - }); - - it('ignores merging __proto__ fields', () => { - const target = {}; - - // Bypass setters on __proto__ - const source = JSON.parse('{"__proto__": {"pollution": true}}'); - deepMerge(target, source); - - expect(Object.prototype.hasOwnProperty('pollution')).toBe(false); - }); - - it('merges arrays', () => { - const target = { - a: 1, - b: [{ c: 1, d: 2 }], - }; - - const source = { - e: 2, - b: [{ f: 3 }], - }; - - expect(deepMerge(target, source)).toEqual({ - a: 1, - e: 2, - b: [{ c: 1, d: 2, f: 3 }], - }); - }); -}); diff --git a/gateway/node_modules/@apollo/gateway/src/utilities/array.ts b/gateway/node_modules/@apollo/gateway/src/utilities/array.ts deleted file mode 100644 index 1141d42..0000000 --- a/gateway/node_modules/@apollo/gateway/src/utilities/array.ts +++ /dev/null @@ -1,55 +0,0 @@ -function isNotNullOrUndefined( - value: T | null | undefined, -): value is T { - return value !== null && typeof value !== 'undefined'; -} - -export function compactMap( - array: T[], - callbackfn: (value: T, index: number, array: T[]) => U | null | undefined, -): U[] { - return array.reduce( - (accumulator, element, index, array) => { - const result = callbackfn(element, index, array); - if (isNotNullOrUndefined(result)) { - accumulator.push(result); - } - return accumulator; - }, - [] as U[], - ); -} - -export function findAndExtract( - array: T[], - predicate: (element: T, index: number, array: T[]) => boolean, -): [T | undefined, T[]] { - const index = array.findIndex(predicate); - if (index === -1) return [undefined, array]; - - let remaining = array.slice(0, index); - if (index < array.length - 1) { - remaining.push(...array.slice(index + 1)); - } - - return [array[index], remaining]; -} - -export function groupBy(keyFunction: (element: T) => U) { - return (iterable: Iterable) => { - const result = new Map(); - - for (const element of iterable) { - const key = keyFunction(element); - const group = result.get(key); - - if (group) { - group.push(element); - } else { - result.set(key, [element]); - } - } - - return result; - }; -} diff --git a/gateway/node_modules/@apollo/gateway/src/utilities/deepMerge.ts b/gateway/node_modules/@apollo/gateway/src/utilities/deepMerge.ts deleted file mode 100644 index fb5504a..0000000 --- a/gateway/node_modules/@apollo/gateway/src/utilities/deepMerge.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { isObject } from './predicates'; - -export function deepMerge(target: any, source: any): any { - if (source === undefined || source === null) return target; - - for (const key of Object.keys(source)) { - if (source[key] === undefined || key === '__proto__') continue; - - if (target[key] && isObject(source[key])) { - deepMerge(target[key], source[key]); - } else if ( - Array.isArray(source[key]) && - Array.isArray(target[key]) && - source[key].length === target[key].length - ) { - let i = 0; - for (; i < source[key].length; i++) { - if (isObject(target[key][i]) && isObject(source[key][i])) { - deepMerge(target[key][i], source[key][i]); - } else { - target[key][i] = source[key][i]; - } - } - } else { - target[key] = source[key]; - } - } - - return target; -} diff --git a/gateway/node_modules/@apollo/gateway/src/utilities/graphql.ts b/gateway/node_modules/@apollo/gateway/src/utilities/graphql.ts deleted file mode 100644 index 44feedf..0000000 --- a/gateway/node_modules/@apollo/gateway/src/utilities/graphql.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { - ASTNode, - FieldNode, - GraphQLNullableType, - GraphQLType, - isListType, - isNonNullType, - Kind, - ListTypeNode, - NamedTypeNode, - OperationDefinitionNode, - parse, - print, - SelectionNode, - TypeNode, -} from 'graphql'; - -export function getResponseName(node: FieldNode): string { - return node.alias ? node.alias.value : node.name.value; -} - -export function allNodesAreOfSameKind( - firstNode: T, - remainingNodes: ASTNode[], -): remainingNodes is T[] { - return !remainingNodes.some(node => node.kind !== firstNode.kind); -} - -export function astFromType( - type: GraphQLNullableType, -): NamedTypeNode | ListTypeNode; -export function astFromType(type: GraphQLType): TypeNode { - if (isListType(type)) { - return { kind: Kind.LIST_TYPE, type: astFromType(type.ofType) }; - } else if (isNonNullType(type)) { - return { kind: Kind.NON_NULL_TYPE, type: astFromType(type.ofType) }; - } else { - return { - kind: Kind.NAMED_TYPE, - name: { kind: Kind.NAME, value: type.name }, - }; - } -} - -export function printWithReducedWhitespace(ast: ASTNode): string { - return print(ast) - .replace(/\s+/g, ' ') - .trim(); -} - -export function parseSelections(source: string): ReadonlyArray { - return (parse(`query { ${source} }`) - .definitions[0] as OperationDefinitionNode).selectionSet.selections; -} diff --git a/gateway/node_modules/@apollo/gateway/src/utilities/predicates.ts b/gateway/node_modules/@apollo/gateway/src/utilities/predicates.ts deleted file mode 100644 index d9a73b8..0000000 --- a/gateway/node_modules/@apollo/gateway/src/utilities/predicates.ts +++ /dev/null @@ -1,8 +0,0 @@ -export function isObject(value: any): value is object { - return ( - value !== undefined && - value !== null && - typeof value === 'object' && - !Array.isArray(value) - ); -} diff --git a/gateway/node_modules/@apollo/protobufjs/CHANGELOG.md b/gateway/node_modules/@apollo/protobufjs/CHANGELOG.md deleted file mode 100644 index e5f2cb5..0000000 --- a/gateway/node_modules/@apollo/protobufjs/CHANGELOG.md +++ /dev/null @@ -1,998 +0,0 @@ -# [1.0.5](https://github.com/apollographql/protobuf.js/releases/tag/1.0.5) - -## Other -[:hash:](https://github.com/apollographql/protobuf.js/commit/68a467e01363bd3d8140a495d4ed4edeaca4f180) Map field TypeScript types shouldn't imply all keys exist
- -# [1.0.4](https://github.com/apollographql/protobuf.js/releases/tag/1.0.4) - -## New -[:hash:](https://github.com/apollographql/protobuf.js/commit/f15bfa2c2ef8e91746821835904e88ffd199e97a) Allow plain JS object repeated fields to use toArray() method
(see https://github.com/protobufjs/protobuf.js/pull/1302) - -# [1.0.3](https://github.com/apollographql/protobuf.js/releases/tag/1.0.3) - -## Other -[:hash:](https://github.com/apollographql/protobuf.js/commit/d13506a71f0634ea7a89a57e0102460b9bb438fb) Remove duplicated Long types in index.d.ts
- -# [1.0.2](https://github.com/apollographql/protobuf.js/releases/tag/1.0.2) - -## Other -[:hash:](https://github.com/apollographql/protobuf.js/commit/ec3577b8cc18f5478ea0b5f5d20145039cd4f8e2) update version to 1.0.2 and npm install
-[:hash:](https://github.com/apollographql/protobuf.js/commit/6392ab621710868588f629f229d8d2743f4d8b03) commit changes after running npm install
-[:hash:](https://github.com/apollographql/protobuf.js/commit/e58bb28d6c8f80c96a48c1b7f27b0b0f9cede058) update peerDependencies in pacakge.standalone.json @apollo/protobufjs version to be the correct 1.0.1
- -# [1.0.1](https://github.com/apollographql/protobuf.js/releases/tag/1.0.1) - -## Fixed -[:hash:](https://github.com/apollographql/protobuf.js/commit/19bf8d5ae77c0f272a625a2d93140bb65d6e480b) Rename pbjs and pbts to include apollo- prefix and update version.
- -# [1.0.0](https://github.com/apollographql/protobuf.js/releases/tag/1.0.0) - -## Fixed -[:hash:](https://github.com/apollographql/protobuf.js/commit/fb5d62fdc9bba52036f8ea3a7ec17c3c1292c99f) Fix minify build error in root.js
-[:hash:](https://github.com/apollographql/protobuf.js/commit/7bacfc8f34a1e096bca38a0ea38ecee089e8cdb5) fix typo ([#1241](https://github.com/apollographql/protobuf.js/issues/1241))
-[:hash:](https://github.com/apollographql/protobuf.js/commit/41b91535ce2737649d6b500131abc895f9f99fe8) fix stale links to API documentation ([#1235](https://github.com/apollographql/protobuf.js/issues/1235))
-[:hash:](https://github.com/apollographql/protobuf.js/commit/314b2dbbbc5a98b59cd81191c635dadc2a5e0584) Fix spacing in root.js again
-[:hash:](https://github.com/apollographql/protobuf.js/commit/f01e1d2c118f7d82fcc990ac7efe3b58588fb9ec) Fix spacing of root.js
-[:hash:](https://github.com/apollographql/protobuf.js/commit/b7ce052ff9a6e32a1c1ed94e8bac6cac324ac73c) Properly iterate and return method descriptors
-[:hash:](https://github.com/apollographql/protobuf.js/commit/b5b66321762a24c5ac2753b68331cbe115969da7) run npm audit fix ([#1208](https://github.com/apollographql/protobuf.js/issues/1208))
-[:hash:](https://github.com/apollographql/protobuf.js/commit/0ffa2a3cf943daef946753277d95b43df853122f) Fix indentation to match existing styles.
-[:hash:](https://github.com/apollographql/protobuf.js/commit/4af852395e82ba061b4e81fd19b3b4cd48342488) Fixed descriptor README code problem
-[:hash:](https://github.com/apollographql/protobuf.js/commit/1f32910873dab94c0c475e22dbdfc2d70f640a01) npm audit fixes
-[:hash:](https://github.com/apollographql/protobuf.js/commit/8a858634f3add3a2d8567f72699b907e9f543eca) Import Long types
-[:hash:](https://github.com/apollographql/protobuf.js/commit/15ee83ffa6cfd755ea04208110ddb5003adf98b1) Bundled definitions were loaded correctly
-[:hash:](https://github.com/apollographql/protobuf.js/commit/6fa4c3487c50f9e2647a384bf64cfb009752b6a7) Second part of a reserved range is exclusive ([#1122](https://github.com/apollographql/protobuf.js/issues/1122))
- -## CLI -[:hash:](https://github.com/apollographql/protobuf.js/commit/7485d4b20b17adf8888ebf9cdc0e0b7a79f3b2f2) Add missing 'force-number' pbjs option
- -## Docs -[:hash:](https://github.com/apollographql/protobuf.js/commit/02482a69f0aaf32731b0155deec3a48cfa4c4151) Remove non-existent method from README ([#1119](https://github.com/apollographql/protobuf.js/issues/1119))
- -## Other -[:hash:](https://github.com/apollographql/protobuf.js/commit/d16084c520fe20c4f33fda209c57b29fb0569262) package-lock changes after running npm install
-[:hash:](https://github.com/apollographql/protobuf.js/commit/8f311df44bbad4e31b3f4f1f12d4da78eaa648ca) Change all appropriate references from protobufjs to @apollo/protobufjs
-[:hash:](https://github.com/apollographql/protobuf.js/commit/e91de84fe2dea787f168c5b513643d8f7c96c7ad) Update build artifacts after running `npm run make`
-[:hash:](https://github.com/apollographql/protobuf.js/commit/0e316cf2c875ee71e922d89640e90138e0d012cd) Update jsdoc version to 3.6.3 to make the project build with Node 12
-[:hash:](https://github.com/apollographql/protobuf.js/commit/4d490eb1bf71f5c5c4c9d253a2ffd36edea12386) Use Object.hasOwnProperty instead of prototype ([#1233](https://github.com/apollographql/protobuf.js/issues/1233))
-[:hash:](https://github.com/apollographql/protobuf.js/commit/2e1d1ace02322ac742edd5e0208fa1d512d4a817) Revert generated files, since other pull requests do not appear to
-[:hash:](https://github.com/apollographql/protobuf.js/commit/c72c752352347555406bafd7121acaed240fbf23) be more explicit about tested versions of nodejs ([#1213](https://github.com/apollographql/protobuf.js/issues/1213))
-[:hash:](https://github.com/apollographql/protobuf.js/commit/299f0ceed2087044bbc53dc20a274947a672c481) //github.com/protobufjs/protobuf.js/issues/1200
-[:hash:](https://github.com/apollographql/protobuf.js/commit/ea7b9c6fcfafab92d0b96fb372831afd14561943) Remove useless config import
-[:hash:](https://github.com/apollographql/protobuf.js/commit/9450f4d340519ad84a09e515a2795144d222e058) Add working rpcImpl with grpc node package
-[:hash:](https://github.com/apollographql/protobuf.js/commit/892db94d0036e0e89f0cf9b4af21f6c349aadd00) allow file-level options everywhere in the file
- -# [6.8.8](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.8) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3001425b0d896d14188307cd0cc84ce195ad9e04) Persist recent index.d.ts changes in JSDoc
- -# [6.8.7](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.7) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e8449c4bf1269a2cc423708db6f0b47a383d33f0) Fix package browser field descriptor ([#1046](https://github.com/dcodeIO/protobuf.js/issues/1046))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/996b3fa0c598ecc73302bfc39208c44830f07b1a) Fix static codegen issues with uglifyjs3
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a06317139b92fdd8c6b3b188fb7b9704dc8ccbf1) Fix lint issues / pbts on windows
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a927a6646e8fdddebcb3e13bc8b28b041b3ee40a) Fix empty 'bytes' field decoding, now using Buffer where applicable ([#1020](https://github.com/dcodeIO/protobuf.js/issues/1020))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f13a81fb41fbef2ce9dcee13f23b7276c83fbcfd) Fix circular dependency of Namespace and Enum ([#994](https://github.com/dcodeIO/protobuf.js/issues/994))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c05c58fad61c16e5ce20ca19758e4782cdd5d2e3) Ignore optional commas in aggregate options ([#999](https://github.com/dcodeIO/protobuf.js/issues/999))
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/36fc964b8db1e4372c76b1baf9f03857cd875b07) Make Message have a default type param ([#1086](https://github.com/dcodeIO/protobuf.js/issues/1086))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/996b3fa0c598ecc73302bfc39208c44830f07b1a) Explicitly define service method names when generating static code, see [#857](https://github.com/dcodeIO/protobuf.js/issues/857)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/07c5d59e1da8c5533a39007ba332928206281408) Also handle services in ext/descriptor ([#1001](https://github.com/dcodeIO/protobuf.js/issues/1001))
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2c5ef95818a310243f88ffba0331cd47ee603c0a) Extend list of ignored ESLint rules for pbjs, fixes [#1085](https://github.com/dcodeIO/protobuf.js/issues/1085)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8576b49ad3e55b8beae2a8f044c51040484eef12) Fix declared return type of pbjs/pbts callback ([#1025](https://github.com/dcodeIO/protobuf.js/issues/1025))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9fceaa69667895e609a3ed78eb2efa7a0ecfb890) Added an option to pbts to allow custom imports ([#1038](https://github.com/dcodeIO/protobuf.js/issues/1038))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/65d113b0079fa2570837f3cf95268ce24714a248) Get node executable path from process.execPath ([#1018](https://github.com/dcodeIO/protobuf.js/issues/1018))
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b611875cfbc1f98d8973a2e86f1506de84f00049) Slim down CI testing and remove some not ultimately necesssary dependencies with audit issues
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/812b38ddabb35e154f9ff94f32ad8ce2a70310f1) Move global handling to util, see [#995](https://github.com/dcodeIO/protobuf.js/issues/995)
- -# [6.8.6](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.6) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2ee1028d631a328e152d7e09f2a0e0c5c83dc2aa) Fix typeRefRe being vulnerable to ReDoS
- -# [6.8.5](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.6) - -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/462132f222d8febb8211d839635aad5b82dc6315) Preserve comments when serializing/deserializing with toJSON and fromJSON. ([#983](https://github.com/dcodeIO/protobuf.js/issues/983))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d29c0caa715a14214fc755b3cf10ac119cdaf199) Add more details to some frequent error messages ([#962](https://github.com/dcodeIO/protobuf.js/issues/962))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8400f87ad8ed2b47e659bc8bb6c3cf2467802425) Add IParseOptions#alternateCommentMode ([#968](https://github.com/dcodeIO/protobuf.js/issues/968))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d6e3b9e218896ec1910e02448b5ee87e4d96ede6) Added field_mask to built-in common wrappers ([#982](https://github.com/dcodeIO/protobuf.js/issues/982))
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/635fef013fbb3523536d92c690ffd7d84829db35) Remove code climate config in order to use 'in-app' config instead
- -# [6.8.4](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.4) - -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/69440c023e6962c644715a0c95363ddf19db648f) Update jsdoc dependency (pinned vulnerable marked)
- -# [6.8.3](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.3) - -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/cc991a058b0636f3454166c76de7b664cf23a8f4) Use correct safeProp in json-module target, see [#956](https://github.com/dcodeIO/protobuf.js/issues/956)
- -# [6.8.2](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.2) - -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6fc6481d790648e9e2169a961ad31a732398c911) Include dist files in npm package, see [#955](https://github.com/dcodeIO/protobuf.js/issues/955)
- -# [6.8.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.1) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/db2dd49f6aab6ecd606eee334b95cc0969e483c2) Prevent invalid JSDoc names when generating service methods, see [#870](https://github.com/dcodeIO/protobuf.js/issues/870)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/62297998d681357ada70fb370b99bac5573e5054) Prevent parse errors when generating service method names, see [#870](https://github.com/dcodeIO/protobuf.js/issues/870)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/478f332e0fc1d0c318a70b1514b1d59c8c200c37) Support parsing nested option-values with or without ':' ([#951](https://github.com/dcodeIO/protobuf.js/issues/951), fixes [#946](https://github.com/dcodeIO/protobuf.js/issues/946))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/83477ca8e0e1f814ac79a642ea656f047563613a) Add support for reserved keyword in enums ([#950](https://github.com/dcodeIO/protobuf.js/issues/950), fixes [#949](https://github.com/dcodeIO/protobuf.js/issues/949))
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c482a5b76fd57769eae4308793e3ff8725264664) Unified safe property escapes and added a test for [#834](https://github.com/dcodeIO/protobuf.js/issues/834)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1724581c36ecc4fc166ea14a9dd57af5e093a467) Fix codegen if type name starts with "Object"
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/adecd544c5fcbeba28d502645f895024e3552970) Fixed dependency for json-module to use "light".
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2a8dd74fca70d4e6fb41328a7cee81d1d50ad7ad) Basic support for URL prefixes in google.protobuf.Any types.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/be78a3d9bc8d9618950c77f9e261b422670042ce) fixed 'error is not defined linter warning when using static/static-module and es6
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c712447b309ae81134c7afd60f8dfa5ecd3be230) Fixed wrong type_url for any type (no leading '.' allowed).
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/145bda25ee1de2c0678ce7b8a093669ec2526b1d) Fixed fromObject() for google.protobuf.Any types.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7dec43d9d847481ad93fca498fd970b3a4a14b11) Handle case where 'extendee' is undefined in ext/descriptor
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/20a26271423319085d321878edc5166a5449e68a) Sanitize CR-only line endings (coming from jsdoc?)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/19d2af12b5db5a0f668f50b0cae3ee0f8a7affc2) Make sure enum typings become generated ([#884](https://github.com/dcodeIO/protobuf.js/issues/884) didn't solve this)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a2c72c08b0265b112d367fa3d33407ff0de955b9) Remove exclude and include patterns from jsdoc config
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9afb8a2ff27c1e0a999d7331f3f65f568f5cced5) Skip defaults when generating proto3
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/952c7d1b478cc7c6de82475a17a1387992e8651f) Wait for both the 'end' and 'close' event to happen before finishing in pbts, see [#863](https://github.com/dcodeIO/protobuf.js/issues/863)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ed7e2e71f5cde27c4128f4f2e3f4782cc51fbec7) Accept null for optional fields in generated static code
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/27cc66a539251216ef10aea04652d58113949df9) Annotate TS classes with @implements
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/05e7e0636727008c72549459b8594fa0442d346f) Annotate virtual oneofs as string literal unions
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/685adb0e7ef0f50e4b93a105013547884957cc98) Also check for reserved ids and names in enums
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/843d0d5b927968025ca11babff28495dd3bb2863) Also support 'reserved' in enum descriptors
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a8376b57fb0a858adff9dc8a1d1b5372eff9d85c) Include just relevant files in npm package, fixes [#781](https://github.com/dcodeIO/protobuf.js/issues/781)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/bda1bc6917c681516f6be8be8f0e84ba1262c4ce) Fix travis build
- -# [6.8.0](https://github.com/dcodeIO/protobuf.js/releases/tag/6.8.0) - -## Breaking -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ff858003f525db542cbb270777b6fab3a230c9bb) Replaced Buffer and Long types with interfaces and removed stubs
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/22f907c49adbbdf09b72bde5299271dbe0ee9cbe) Removed Message#toObject in favor of having just the static version (unnecessary static code otherwise)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c97b61811248df002f1fb93557b982bc0aa27309) Everything uses interfaces now instead of typedefs (SomethingProperties is now ISomething)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b9f179064f3ddf683f13e0d4e17840301be64010) ReflectionObject#toJSON properly omits explicit undefined values
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7a6f98b5e74f9e9142f9be3ba0683caeaff916c4) Initial implementation of TypeScript decorators
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7a6f98b5e74f9e9142f9be3ba0683caeaff916c4) Refactored protobuf.Class away
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7a6f98b5e74f9e9142f9be3ba0683caeaff916c4) TypeScript definitions now have (a lot of) generics
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7a6f98b5e74f9e9142f9be3ba0683caeaff916c4) Removed deprecated features
- -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c306d19d806eb697913ffa2b8613f650127a4c50) Added 'undefined' besides 'null' as a valid value of an optional field, fixes [#826](https://github.com/dcodeIO/protobuf.js/issues/826)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c5518c3bac0da9c2045e6f1baf0dee915afb4221) Fixed an issue with codegen typings, see [#819](https://github.com/dcodeIO/protobuf.js/issues/819)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/66d149e92ff1baddfdfd4b6a88ca9bcea6fc6195) Ported utf8 chunking mechanism to base64 as well, fixes [#800](https://github.com/dcodeIO/protobuf.js/issues/800)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e1f9d9856c98a0f0eb1aa8bdf4ac0df467bee8b9) Also be more verbose when defining properties for ES6, fixes [#820](https://github.com/dcodeIO/protobuf.js/issues/820)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/cf36097305ab02047be5014eabeccc3154e18bde) Generate more verbose JSDoc comments for ES6 support, fixes [#820](https://github.com/dcodeIO/protobuf.js/issues/820)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f2959795330966f13cb65bbb6034c88a01fc0bcc) Emit a maximum of one error var when generating verifiers, fixes [#786](https://github.com/dcodeIO/protobuf.js/issues/786)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3b848a10b39c1897ca1ea3b5149ef72ae43fcd11) Fixed missing semicolon after 'extensions' and 'reserved' when generating proto files, fixes [#810](https://github.com/dcodeIO/protobuf.js/issues/810)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/eb1b40497e14a09facbc370676f486bed1376f52) Call npm with '--no-bin-links' when installing CLI deps, fixes [#823](https://github.com/dcodeIO/protobuf.js/issues/823)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/429de19d851477f1df2804d5bc0be30228cd0924) Fix Reader argument conversion in static module
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/03194c203d6ff61ae825e66f8a29ca204fa503b9) Use JSDoc, they said, it documents code, they said. Fixes [#770](https://github.com/dcodeIO/protobuf.js/issues/770)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ec6a133ff541c638517e00f47b772990207c8640) parser should not confuse previous trailing line comments with comments for the next declaration, see [#762](https://github.com/dcodeIO/protobuf.js/issues/762)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0589ace4dc9e5c565ff996cf6e6bf94e63f43c4e) Types should not clear constructor with cache (fixes decorators)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/056ecc3834a3b323aaaa676957efcbe3f52365a0) Namespace#lookup should also check in nested namespaces (wtf)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ed34b093839652db2ff7b84db87857fc57d96038) Reader#bytes should also support plain arrays
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/514afcfa890aa598e93254576c4fd6062e0eff3b) Fix markdown for pipe in code in table
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/17c2797592bc4effd9aaae3ba9777c9550bb75ac) Upgrade to codegen 2
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/57d7d35ddbb9e3a28c396b4ef1ae3b150eeb8035) ext/descriptor enables interoperability between reflection and descriptor.proto (experimental), see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3939667ef1f37b025bd7f9476015890496d50e00) Added 'json' conversion option for proto3 JSON mapping compatibility of NaN and Infinity + additional documentation of util.toJSONOptions, see [#351](https://github.com/dcodeIO/protobuf.js/issues/351)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4eac28c7d3acefb0af7b82c62cf8d19bf3e7d37b) Use protobuf/minimal when pbjs target is static-module
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3a959453fe63706c38ebbacda208e1f25f27dc99) Added closure wrapper
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/13bf9c2635e6a1a2711670fc8e28ae9d7b8d1c8f) Various improvements to statically generated JSDoc, also fixes [#772](https://github.com/dcodeIO/protobuf.js/issues/772)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ffdc93c7cf7c8a716316b00864ea7c510e05b0c8) Check incompatible properties for namespaces only in tsd-jsdoc
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fb3f9c70436d4f81bcd0bf62b71af4d253390e4f) Additional tsd-jsdoc handling of properties inside of namespaces and TS specific API exposure
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2dcae25c99e2ed8afd01e27d21b106633b8c31b9) Several improvements to tsd-jsdoc emitted comments
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ff858003f525db542cbb270777b6fab3a230c9bb) Further TypeScript definition improvements
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/22f907c49adbbdf09b72bde5299271dbe0ee9cbe) Relieved tsd files from unnecessary comments
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/22f907c49adbbdf09b72bde5299271dbe0ee9cbe) Generate TS namespaces for vars and functions with properties
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b355115e619c6595ac9d91897cfe628ef0e46054) Prefer @tstype over @type when generating typedefs (tsd-jsdoc)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/23f4b990375efcac2c144592cf4ca558722dcf2d) Replaced nullable types with explicit type|null for better tooling compatibility, also fixes [#766](https://github.com/dcodeIO/protobuf.js/issues/766) and fixes 767
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6493f52013c92a34b8305a25068ec7b8c4c29d54) Added more info to ext/descriptor README, see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ef92da3768d8746dbfe72e77232f78b879fc811d) Additional notes on ext/descriptor
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b646cf7499791a41b75eef2de1a80fb558d4159e) Updated CHANGELOG so everyone knows what's going on (and soon, breaking)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/35a663757efe188bea552aef017837bc6c6a481a) Additional docs on TS/decorators usage
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9726be0888a9461721447677e9dece16a682b9f6) Updated dist files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9726be0888a9461721447677e9dece16a682b9f6) Added package-lock.json
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/114f7ea9fa3813003afc3ebb453b2dd2262808e1) Minor formatting
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8a6e464954b472fdbb4d46d9270fe3b4b3c7272d) Generate files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/42f8a97630bcb30d197b0f1d6cbdd96879d27f96) Remove the no-constructor arg
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6446247cd7edbb77f03dc42c557f568811286a39) Remove the ctor option.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2059ee0f6f951575d5c5d2dc5eb06b6fa34e27aa) Add support to generate types for JSON object.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7445da0f8cb2e450eff17723f25f366daaf3bbbb) aspromise performance pass
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3f8b74ba6726567eaf68c4d447c120f75eac042f) codegen 2 performance pass, [#653](https://github.com/dcodeIO/protobuf.js/issues/653) might benefit
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d44a7eec2fd393e5cb24196fb5818c8c278a0f34) Fixed minimal library including reflection functionality
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a18e6db9f02696c66032bce7ef4c0eb0568a8048) Minor compression ratio tuning
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b49a4edd38395e209bedac2e0bfb7b9d5c4e980b) Fixed failing test case + coverage
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8f7111cacd236501b7e26791b9747b1974a2d9eb) Improved fromObject wrapper for google.protobuf.Any.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0e471a2516bde3cd3c27b2691afa0dcfbb01f042) Fixed failing tokenize test case
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5867f076d8510fa97e3bd6642bbe61960f7fd196) Removed debug build, made it an extension
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/22f907c49adbbdf09b72bde5299271dbe0ee9cbe) Regenerated dist files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5bc3541d2da19e2857dc884f743d37c27e8e21f2) Even more documentation and typings for ext/descriptor
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/773e6347b57e4a5236b1ef0bb8d361e4b233caf7) ext/descriptor docs
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/773e6347b57e4a5236b1ef0bb8d361e4b233caf7) Decorators coverage
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9a23ded94729ceeea2f87cb7e8460eaaaf1c8269) ext/descriptor support for various standard options, see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2d8ce6ec0abd261f9b261a44a0a258fdf57ecec3) ext/descriptor passes descriptor.proto test with no differences, see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3a20968c6d676312e4f2a510f7e079e0e0819daf) Properly remove unnecessary (packed) options from JSON descriptors
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2a30df8bd5f20d91143a38c2232dafc3a6f3a7bd) Use typedefs in ext/descriptor (like everywhere else), see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1fc911cef01e081c04fb82ead685f49dde1403bb) Fixed obvious issues with ext/descriptor, does not throw anymore when throwing descriptor.proto itself at it, see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6c37dbd14f39dad687f2f89f1558a875f7dcc882) Added still missing root traversal to ext/descriptor, see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7ab136daa5eb2769b616b6b7522e45a4e33a59f6) Initial map fields support for ext/descriptor, see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/708552bb84508364b6e6fdf73906aa69e83854e1) Added infrastructure for TypeScript support of extensions
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/23f26defa793b371c16b5f920fbacb3fb66bdf22) TypeScript generics improvements
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e49bef863c0fb10257ec1001a3c5561755f2ec6b) More ext/descriptor progress, see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6b94336c1e6eec0f2eb1bd5dca73a7a8e71a2153) Just export the relevant namespace in ext/descriptor
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fbb99489ed0c095174feff8f53431d30fb6c34a0) Initial descriptor.proto extension for reflection interoperability, see [#757](https://github.com/dcodeIO/protobuf.js/issues/757)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/48e66d975bf7b4e6bdbb68ec24386c98b16c54c5) Moved custom wrappers to its own module instead, also makes the API easier to use manually, see [#677](https://github.com/dcodeIO/protobuf.js/issues/677)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0c6e639d08fdf9be12677bf678563ea631bafb2c) Added infrastructure for custom wrapping/unwrapping of special types, see [#677](https://github.com/dcodeIO/protobuf.js/issues/677)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0425b584f49841d87a8249fef30c78cc31c1c742) More decorator progress (MapField.d, optional Type.d)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7a6f98b5e74f9e9142f9be3ba0683caeaff916c4) tsd-jsdoc now has limited generics support
- -# [6.7.3](https://github.com/dcodeIO/protobuf.js/releases/tag/6.7.3) - -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/57f1da64945f2dc5537c6eaa53e08e8fdd477b67) long, @types/long and @types/node are just dependencies, see [#753](https://github.com/dcodeIO/protobuf.js/issues/753)
- -# [6.7.2](https://github.com/dcodeIO/protobuf.js/releases/tag/6.7.2) - -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a7621be0a56585defc72d863f4e891e476905692) Split up NamespaceDescriptor to make nested plain namespaces a thing, see [#749](https://github.com/dcodeIO/protobuf.js/issues/749)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e980e72ae3d4697ef0426c8a51608d31f516a2c4) More README
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1f76749d0b9a780c7b6cb56be304f7327d74ebdb) Replaced 'runtime message' with 'message instance' for clarity
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e6b6dedb550edbd0e54e212799e42aae2f1a87f1) Rephrased the Usage section around the concept of valid messages
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0d8100ba87be768ebdec834ca2759693e0bf4325) Added toolset diagram to README
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3405ae8d1ea775c96c30d1ef5cde666c9c7341b3) Touched benchmark output metrics once more
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e36b228f4bb8b1cd835bf31f8605b759a7f1f501) Fixed failing browser test
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7b3bdb562ee7d30c1a557d7b7851d55de3091da4) Output more human friendly metrics from benchmark
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/59e447889057c4575f383630942fd308a35c12e6) Stripped down static bench code to what's necessary
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f88dad098282ece65f5d6e224ca38305a8431829) Revamped benchmark, now also covers Google's JS implementation
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/45356be81ba7796faee0d4d8ad324abdd9f301fb) Updated dependencies and dist files
- -# [6.7.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.7.1) - -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3d23eed6f7c79007969672f06c1a9ccd691e2411) Made .verify behave more like .encode, see [#710](https://github.com/dcodeIO/protobuf.js/issues/710)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/bed514290c105c3b606f760f2abba80510721c77) With null/undefined eliminated by constructors and .create, document message fields as non-optional where applicable (ideally used with TS & strictNullChecks), see [#743](https://github.com/dcodeIO/protobuf.js/issues/743)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/007b2329842679ddf994df7ec0f9c70e73ee3caf) Renamed --strict-long/message to --force-long/message with backward compatible aliases, see [#741](https://github.com/dcodeIO/protobuf.js/issues/741)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6aae71f75e82ffd899869b0c952daf98991421b8) Keep $Properties with --strict-message but require actual instances within, see [#741](https://github.com/dcodeIO/protobuf.js/issues/741)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c812cef0eff26998f14c9d58d4486464ad7b2bbc) Added --strict-message option to pbjs to strictly reference message instances instead of $Properties, see [#741](https://github.com/dcodeIO/protobuf.js/issues/741)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/412407de9afb7ec3a999c4c9a3a1f388f971fce7) Restructured README
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1c4d9d7f024bfa096ddc24aabbdf39211ed8637a) Added more information on typings usage, see [#744](https://github.com/dcodeIO/protobuf.js/issues/744)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/602065e16862751c515c2f3391ee8b880e8140b1) Clarified typescript example in README, see [#744](https://github.com/dcodeIO/protobuf.js/issues/744)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/79d0ba2cc71a156910a9d937683af164df694f08) Clarified that the service API targets clients consuming a service, see [#742](https://github.com/dcodeIO/protobuf.js/issues/742)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a66f76452ba050088efd1aaebf3c503a55e6287c) Omit copying of undefined or null in constructors and .create, see [#743](https://github.com/dcodeIO/protobuf.js/issues/743)
- -# [6.7.0](https://github.com/dcodeIO/protobuf.js/releases/tag/6.7.0) - -## Breaking -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9c1bbf10e445c3495b23a354f9cbee951b4b20f0) Namespace#lookupEnum should actually look up the reflected enum and not just its values
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/44a8d3af5da578c2e6bbe0a1b948d469bbe27ca1) Decoder now throws if required fields are missing, see [#695](https://github.com/dcodeIO/protobuf.js/issues/695) / [#696](https://github.com/dcodeIO/protobuf.js/issues/696)
- -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d1e3122e326480fdd44e96afd76ee72e9744b246) Added functionality to filter for multiple types at once in lookup(), used by lookupTypeOrEnum(), fixes [#740](https://github.com/dcodeIO/protobuf.js/issues/740)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8aa21268aa5e0f568cb39e99a83b99ccb4084381) Ensure that fields have been resolved when looking up js types in static target, see [#731](https://github.com/dcodeIO/protobuf.js/issues/731)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f755d36829b9f1effd7960fab3a86a141aeb9fea) Properly copy fields array before sorting in toObject, fixes [#729](https://github.com/dcodeIO/protobuf.js/issues/729)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a06691f5b87f7e90fed0115b78ce6febc4479206) Actually emit TS compatible enums in static target if not aliases, see [#720](https://github.com/dcodeIO/protobuf.js/issues/720)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b01bb58dec92ebf6950846d9b8d8e3df5442b15d) Hardened tokenize/parse, esp. comment parsing, see [#713](https://github.com/dcodeIO/protobuf.js/issues/713)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/bc76ad732fc0689cb0a2aeeb91b06ec5331d7972) Exclude any fields part of some oneof when populating defaults in toObject, see [#710](https://github.com/dcodeIO/protobuf.js/issues/710)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/68cdb5f11fdbb950623be089f98e1356cb7b1ea3) Most of the parser is not case insensitive, see [#705](https://github.com/dcodeIO/protobuf.js/issues/705)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3e930b907a834a7da759478b8d3f52fef1da22d8) Retain options argument in Root#load when used with promises, see [#684](https://github.com/dcodeIO/protobuf.js/issues/684)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3c14ef42b3c8f2fef2d96d65d6e288211f86c9ef) Created a micromodule from (currently still bundled) float support
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7ecae9e9f2e1324ef72bf5073463e01deff50cd6) util.isset(obj, prop) can be used to test if a message property is considered to be set, see [#728](https://github.com/dcodeIO/protobuf.js/issues/728)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c04d4a5ab8f91899bd3e1b17fe4407370ef8abb7) Implemented stubs for long.js / node buffers to be used where either one isn't wanted, see [#718](https://github.com/dcodeIO/protobuf.js/issues/718)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b9574ad02521a31ebd509cdaa269e7807da78d7c) Simplified reusing / replacing internal constructors
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1f97b7af05b49ef69bd6e9d54906d1b7583f42c4) Constructors/.create always initialize proper mutable objects/arrays, see [#700](https://github.com/dcodeIO/protobuf.js/issues/700)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/adb4bb001a894dd8d00bcfe03457497eb994f6ba) Verifiers return an error if multiple fields part of the same oneof are set, see [#710](https://github.com/dcodeIO/protobuf.js/issues/710)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fe93d436b430d01b563318bff591e0dd408c06a4) Added `oneofs: true` to ConversionOptions, see [#710](https://github.com/dcodeIO/protobuf.js/issues/710)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/228c882410d47a26576f839b15f1601e8aa7914d) Optional fields handle null just like undefined regardless of type see [#709](https://github.com/dcodeIO/protobuf.js/issues/709)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/da6af8138afa5343a47c12a8beedb99889c0dd51) Encoders no longer examine virtual oneof properties but encode whatever is present, see [#710](https://github.com/dcodeIO/protobuf.js/issues/710)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ac26a7aa60359a37dbddaad139c0134b592b3325) pbjs now generates multiple exports when using ES6 syntax, see [#686](https://github.com/dcodeIO/protobuf.js/issues/686)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c1ca65dc6987384af6f9fac2fbd7700fcf5765b2) Sequentially serialize fields ordered by id, as of the spec.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/26d9fadb21a85ca0b5609156c26453ae875e4933) decode throws specific ProtocolError with a reference to the so far decoded message if required fields are missing + example
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2b5577b238a452ae86aa395fb2ad3a3f45d755dc) Reader.create asserts that `buffer` is a valid buffer, see [#695](https://github.com/dcodeIO/protobuf.js/issues/695)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6f74d30f059e33a4678f28e7a50dc4878c54bed2) Exclude JSDoc on typedefs from generated d.ts files because typescript@next, see [#737](https://github.com/dcodeIO/protobuf.js/issues/737)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2ebb1b781812e77de914cd260e7ab69612ffd99e) Prepare static code with estraverse instead of regular expressions, see [#732](https://github.com/dcodeIO/protobuf.js/issues/732)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/29ce6cae0cacc0f1d87ca47e64be6a81325aaa55) Moved tsd-jsdoc to future cli package, see [#716](https://github.com/dcodeIO/protobuf.js/issues/716)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8de21e1a947ddb50a167147dd63ad29d37b6a891) $Properties are just a type that's satisfied, not implemented, by classes, see [#723](https://github.com/dcodeIO/protobuf.js/issues/723)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4bfe0c239b9c337f8fa64ea64f6a71baf5639b84) More progress on decoupling the CLI
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8a60174932d15198883ac3f07000ab4e7179a695) Fixed computed array indexes not being renamed in static code, see [#726](https://github.com/dcodeIO/protobuf.js/issues/726)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8d9981588d17709791846de63f1f3bfd09433b03) Check upfront if key-var is required in static decoders with maps, see [#726](https://github.com/dcodeIO/protobuf.js/issues/726)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/16adff0c7b67c69a2133b6aac375365c5f2bdbf7) Fixed handling of stdout if callback is specified, see [#724](https://github.com/dcodeIO/protobuf.js/issues/724)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6423a419fe45e648593833bf535ba1736b31ef63) Preparations for moving the CLI to its own package, see [#716](https://github.com/dcodeIO/protobuf.js/issues/716)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/afefa3de09620f50346bdcfa04d52952824c3c8d) Properly implement $Properties interface in JSDoc, see [#723](https://github.com/dcodeIO/protobuf.js/issues/723)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a1f23e09fb5635275bb7646dfafc70caef74c6b8) Recursively use $Properties inside of $Properties in static code, see [#717](https://github.com/dcodeIO/protobuf.js/issues/717)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c3f0a2124c661bb9ba35f92c21a98a4405d30b47) Added --strict-long option to pbjs to always emit 'Long' instead of 'number|Long' (only relevant with long.js), see [#718](https://github.com/dcodeIO/protobuf.js/issues/718)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0bc4a14501f84f93afd6ce2933ad00749c82f4df) Statically emitted long type is 'Long' now instead of '$protobuf.Long', see [#718](https://github.com/dcodeIO/protobuf.js/issues/718)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a75625d176b7478e0e506f05e2cee5e3d7a0d89a) Decoupled message properties as an interface in static code for TS intellisense support, see [#717](https://github.com/dcodeIO/protobuf.js/issues/717)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/23f14a61e8c2f68b06d1bb4ed20b938764c78860) Static code statically resolves types[..], see [#715](https://github.com/dcodeIO/protobuf.js/issues/715)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ef71e77726b6bf5978b948d598c18bf8b237ade4) Added type definitions for all possible JSON descriptors
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4bfe0c239b9c337f8fa64ea64f6a71baf5639b84) Explained the JSON structure in README and moved CLI specific information to the CLI package
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3ba3ad762f7486b4806ad1c45764e92a81ca24dd) Added information on how to use the stubs to README, see [#718](https://github.com/dcodeIO/protobuf.js/issues/718)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a5dbba41341bf44876cd4226f08044f88148f37d) Added 'What is a valid message' section to README
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6f8f2c1fdf92e6f81363d77bc059820b2376fe32) Added a hint on using .create to initial example
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3ad28ec920e0fe8d0223db28804a7b3f8a6880c2) Even more usage for README
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5a1f861a0f6b582faae7a4cc5c6ca7e4418086da) Additional information on general usage (README)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/320dea5a1d1387c72759e10a17afd77dc48c3de0) Restructured README to Installation, Usage and Examples sections
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1c9055dd69f7696d2582942b307a1ac8ac0f5533) Added a longish section on the correct use of the toolset to README
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/99667c8e1ff0fd3dac83ce8c0cff5d0b1e347310) Added a few additional notes on core methods to README, see [#710](https://github.com/dcodeIO/protobuf.js/issues/710)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2130bc97e44567e766ea8efacb365383c909dbd4) Extended traverse-types example, see [#693](https://github.com/dcodeIO/protobuf.js/issues/693)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/13e4aa3ff274ab42f1302e16fd59d074c5587b5b) Better explain how .verify, .encode and .decode are connected
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7502dd2dfdaea111e5c1a902c524ad0a51ff9bd4) Documented that Type#encode respectively Message.encode do not implicitly .verify, see [#696](https://github.com/dcodeIO/protobuf.js/issues/696) [ci-skip]
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e7e123aa0b6c05eb4156a761739e37c008a3cbc1) Documented throwing behavior of Reader.create and Message.decode
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0fcde32306da77f02cb1ea81ed18a32cee01f17b) Added error handling notes to README, see [#696](https://github.com/dcodeIO/protobuf.js/issues/696)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fef924e5f708f14dac5713aedc484535d36bfb47) Use @protobufjs/float
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fef924e5f708f14dac5713aedc484535d36bfb47) Rebuilt dist files for 6.7.0
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ca0dce2d7f34cd45e4c1cc753a97c58e05b3b9d2) Updated deps, ts fixes and regenerated dist files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2c2d4002d6776f3edde608bd813c37d798d87e6b) Manually merged gentests improvements, fixes [#733](https://github.com/dcodeIO/protobuf.js/issues/733)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e4a6b6f81fa492a63b12f0da0c381612deff1973) Make sure that util.Long is overridden by AMD loaders only if present, see [#730](https://github.com/dcodeIO/protobuf.js/issues/730)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fff1eb297a728ed6d334c591e7d796636859aa9a) Coverage for util.isset and service as a namespace
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8401a47d030214a54b5ee30426ebc7a9d9c3773d) Shortened !== undefined && !== null to equivalent != null in static code
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e1dd1bc2667de73bb65d876162131be2a4d9fef4) With stubs in place, 'number|Long' return values can be just 'Long' instead, see [#718](https://github.com/dcodeIO/protobuf.js/issues/718)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/404ba8e03a63f708a70a72f0208e0ca9826fe20b) Just alias as the actual ideal type when using stubs, see [#718](https://github.com/dcodeIO/protobuf.js/issues/718)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/270cc94c7c4b8ad84d19498672bfc854b55130c9) General cleanup + regenerated dist/test files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/017161ce97ceef3b2d0ce648651a4636f187d78b) Simplified camel case regex, see [#714](https://github.com/dcodeIO/protobuf.js/issues/714)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d410fd20f35d2a35eb314783b17b6570a40a99e8) Regenerated dist files and changelog for 6.7.0
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/88ca8f0d1eb334646ca2625c78e63fdd57221408) Retain alias order in static code for what it's worth, see [#712](https://github.com/dcodeIO/protobuf.js/issues/712)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2a74fbf551e934b3212273e6a28ad65ac4436faf) Everything can be block- or line-style when parsing, see [#713](https://github.com/dcodeIO/protobuf.js/issues/713)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/47bb95a31784b935b9ced52aa773b9d66236105e) Determine necessary aliases depending on config, see [#712](https://github.com/dcodeIO/protobuf.js/issues/712)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/588ffd9b129869de0abcef1d69bfa18f2f25d8e1) Use more precise types for message-like plain objects
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/37b39c8d1a5307eea09aa24d7fd9233a8df5b7b6) Regenerated dist files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9c94813f9a5f1eb114d7c6112f7e87cb116fe9da) Regenerated relevant files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d7493efe1a86a60f6cdcf7976523e69523d3f7a3) Moved field comparer to util
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fe917652f88df17d4dbaae1cd74f470385342be2) Updated tests to use new simplified encoder logic
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b69173b4e7b514c40bb4a85b54ca5465492a235b) Updated path to tsd-jsdoc template used by pbts, see [#707](https://github.com/dcodeIO/protobuf.js/issues/707)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5041fad9defdb0bc8131560e92f3b454d8e45273) Additional restructuring for moving configuration files out of the root folder
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c0b7c9fa6309d345c4ce8e06fd86f27528f4ea66) Added codegen support for constructor functions, see [#700](https://github.com/dcodeIO/protobuf.js/issues/700)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4573f9aabd7e8f883e530f4d0b055e5ec9b75219) Attempted to fix broken custom error test
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4b49f500fce156b164c757d8f17be2338f767c82) Trying out a more aggressive aproach for custom error subclasses
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/95cd64ee514dc60d10daac5180726ff39594e8e8) Moved a few things out of the root folder
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/db1030ed257f9699a0bcf3bad0bbe8acccf5d766) Coverage for encoder compat. / protocolerror
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/948a4caf5092453fa091ac7a594ccd1cc5b503d2) Updated dist and generated test files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3ead13e83ecdc8715fbab916f7ccaf3fbfdf59ed) Added tslint
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/364e7d457ed4c11328e609f600a57b7bc4888554) Exclude dist/ from codeclimate checks
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6e81fcb05f25386e3997399e6596e9d9414f0286) Also lint cli utilities
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e7e123aa0b6c05eb4156a761739e37c008a3cbc1) Cache any regexp instance (perf)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d89c45f8af0293fb34e6f12b37ceca49083e1faa) Use code climate badges
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e70fbe3492c37f009dbaccf910c1e0f81e8f0f44) Updated travis to pipe to codeclimate, coverage
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a7ab1036906bb7638193a9e991cb62c86108880a) More precise linter configuration
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/58688c178257051ceb2dfea8a63eb6be7dcf1cf1) Added codeclimate
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4b21e00adc6fae42e6a88deaeb0b7c077c6ca50e) Moved cli deps placeholder creation to post install script
- -# [6.6.5](https://github.com/dcodeIO/protobuf.js/releases/tag/6.6.5) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/478ee51194878f24be8607e42e5259952607bd44) sfixed64 is not zig-zag encoded, see [#692](https://github.com/dcodeIO/protobuf.js/issues/692)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7a944538c89492abbed147915acea611f11c03a2) Added a placeholder to cli deps node_modules folder to make sure node can load from it
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/83142e420eb1167b2162063a092ae8d89c9dd4b2) Restructured a few failing tests
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/367d55523a3ae88f21d47aa96447ec3e943d4620) Traversal example + minimalistic documentation
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8eeffcbcd027c929e2a76accad588c61dfa2e37c) Added a custom getters/setters example for gRPC
- -# [6.6.4](https://github.com/dcodeIO/protobuf.js/releases/tag/6.6.4) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/88eb7a603a21643d5012a374c7d246f4c27620f3) Made sure that LongBits ctor is always called with unsigned 32 bits + static codegen compat., fixes [#690](https://github.com/dcodeIO/protobuf.js/issues/690)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/50e82fa7759be035a67c7818a1e3ebe0d6f453b6) Properly handle multiple ../.. in path.normalize, see [#688](https://github.com/dcodeIO/protobuf.js/issues/688)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7c3506b3f0c5a08a887e97313828af0c21effc61) Post-merge, also tackles [#683](https://github.com/dcodeIO/protobuf.js/issues/683) (packed option for repeated enum values)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7f3f4600bcae6f2e4dadd5cdb055886193a539b7) Verify accepts non-null objects only, see [#685](https://github.com/dcodeIO/protobuf.js/issues/685)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d65c22936183d04014d6a8eb880ae0ec33aeba6d) allow_alias enum option was not being honored. This case is now handled and a test case was added
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2ddb76b6e93174787a68f68fb28d26b8ece7cc56) Added an experimental --sparse option to limit pbjs output to actually referenced types within main files
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/33d14c97600ed954193301aecbf8492076dd0179) Added explicit hint on Uint8Array to initial example, see [#670](https://github.com/dcodeIO/protobuf.js/issues/670)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/cbd4c622912688b47658fea00fd53603049b5104) Ranges and names support for reserved fields, see [#676](https://github.com/dcodeIO/protobuf.js/issues/676)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/487f8922d879955ba22f89b036f897b9753b0355) Updated depdendencies / rebuilt dist files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/37536e5fa7a15fbc851040e09beb465bc22d9cf3) Use ?: instead of |undefined in .d.ts files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f8b415a2fc2d1b1eff19333600a010bcaaebf890) Mark optional fields as possibly being undefined
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2ddb76b6e93174787a68f68fb28d26b8ece7cc56) Added a few more common google types from google/api, see [#433](https://github.com/dcodeIO/protobuf.js/issues/433)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d246024f4c7d13ca970c91a757e2f47432a619df) Minor optimizations to dependencies, build process and tsd
- -# [6.6.3](https://github.com/dcodeIO/protobuf.js/releases/tag/6.6.3) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0be01a14915e3e510038808fedbc67192a182d9b) Support node 4.2.0 to 4.4.7 buffers + travis case, see [#665](https://github.com/dcodeIO/protobuf.js/issues/665)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6a0920b2c32e7963741693f5a773b89f4b262688) Added ES6 syntax flag to pbjs, see [#667](https://github.com/dcodeIO/protobuf.js/issues/667)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c365242bdc28a47f5c6ab91bae34c277d1044eb3) Reference Buffer for BufferReader/Writer, see [#668](https://github.com/dcodeIO/protobuf.js/issues/668)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/43976072d13bb760a0689b54cc35bdea6817ca0d) Slightly shortened README
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e64cf65b09047755899ec2330ca0fc2f4d7932c2) Additional notes on the distinction of different use cases / distributions, see [#666](https://github.com/dcodeIO/protobuf.js/issues/666)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/83758c99275c2bbd30f63ea1661284578f5c9d91) Extended README with additional information on JSON format
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fdc3102689e8a3e8345eee5ead07ba3c9c3fe80c) Added extended usage instructions for TypeScript and custom classes to README, see [#666](https://github.com/dcodeIO/protobuf.js/issues/666)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3701488cca6bc56ce6b7ad93c7b80e16de2571a7) Updated dist files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/579068a45e285c7d2c69b359716dd6870352f46f) Updated test cases to use new buffer util
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0be01a14915e3e510038808fedbc67192a182d9b) Added fetch test cases + some test cleanup
- -# [6.6.2](https://github.com/dcodeIO/protobuf.js/releases/tag/6.6.2) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3aea1bf3d4920dc01603fda25b86e6436ae45ec2) Properly replace short vars when beautifying static code, see [#663](https://github.com/dcodeIO/protobuf.js/issues/663)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b6cf228a82152f72f21b1b307983126395313470) Use custom prelude in order to exclude any module loader code from source (for webpack), see [#658](https://github.com/dcodeIO/protobuf.js/issues/658)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2b12fb7db9d4eaa3b76b7198539946e97db684c4) Make sure to check optional inner messages for null when encoding, see [#658](https://github.com/dcodeIO/protobuf.js/issues/658)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/276a594771329da8334984771cb536de7322d5b4) Initial attempt on a backwards compatible fetch implementation with binary support, see [#661](https://github.com/dcodeIO/protobuf.js/issues/661)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2d81864fa5c4dac75913456d582e0bea9cf0dd80) Root#resolvePath skips files when returning null, see [#368](https://github.com/dcodeIO/protobuf.js/issues/368)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/aab3ec1a757aff0f11402c3fb943c003f092c1af) Changes callback on failed response decode in rpc service to pass actual error instead of 'error' string
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9044178c052299670108f10621d6e9b3d56e8a40) Travis should exit with the respective error when running sauce tests
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/73721f12072d77263e72a3b27cd5cf9409db9f8b) Moved checks whether a test case is applicable to parent case
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3fcd88c3f9b1a084b06cab2d5881cb5bb895869d) Added eventemitter tests and updated micromodule dependencies (so far)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2db4305ca67d003d57aa14eb23f25eb6c3672034) Added lib/path tests and updated a few dependencies
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2b12fb7db9d4eaa3b76b7198539946e97db684c4) Moved micro modules to lib so they can have their own tests etc.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b6dfa9f0a4c899b5c217d60d1c2bb835e06b2122) Updated travis
- -# [6.6.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.6.1) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/039ac77b062ee6ebf4ec84a5e6c6ece221e63401) Properly set up reflection when using light build
- -# [6.6.0](https://github.com/dcodeIO/protobuf.js/releases/tag/6.6.0) ([release](https://github.com/dcodeIO/protobuf.js/releases/tag/6.6.0)) - -## Breaking -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/cdfe6bfba27fa1a1d0e61887597ad4bb16d7e5ed) Inlined / refactored away .testJSON, see [#653](https://github.com/dcodeIO/protobuf.js/issues/653)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6a483a529ef9345ed217a23394a136db0d9f7771) Refactored util.extend away
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/27b16351f3286468e539c2ab382de4b52667cf5e) Reflected and statically generated services use common utility, now work exactly the same
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/dca26badfb843a597f81e98738e2fda3f66c7341) fromObject now throws for entirely bogus values (repeated, map and inner message fields), fixes [#601](https://github.com/dcodeIO/protobuf.js/issues/601)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4bff9c356ef5c10b4aa34d1921a3b513e03dbb3d) Cleaned up library distributions, now is full / light / minimal with proper browserify support for each
- -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/301f7762ef724229cd1df51e496eed8cfd2f10eb) Do not randomly remove slashes from comments, fixes [#656](https://github.com/dcodeIO/protobuf.js/issues/656)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ef7be352baaec26bdcdce01a71fbee47bbdeec15) Properly parse nested textformat options, also tackles [#655](https://github.com/dcodeIO/protobuf.js/issues/655)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b4f4f48f1949876ae92808b0a5ca5f2b29cc011c) Relieved the requirement to call .resolveAll() on roots in order to populate static code-compatible properties, see [#653](https://github.com/dcodeIO/protobuf.js/issues/653)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/56c8ec4196d461383c3e1f271da02553d877ae81) Added a (highly experimental) debug build as a starting point for [#653](https://github.com/dcodeIO/protobuf.js/issues/653)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c5d291f9bab045385c5938ba0f6cdf50a315461f) Full build depends on light build depends on minimal build, shares all relevant code
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/735da4315a98a6960f3b5089115e308548b91c07) Also reuse specified root in pbjs for JSON modules, see [#653](https://github.com/dcodeIO/protobuf.js/issues/653)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3a056244d3acf339722d56549469a8df018e682e) Reuse specified root name in pbjs to be able to split definitions over multiple files more easily, see [#653](https://github.com/dcodeIO/protobuf.js/issues/653)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/28ddf756ab83cc890761ef2bd84a0788d2ad040d) Improved pbjs/pbts examples, better covers reflection with definitions for static modules
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6f0b44aea6cf72d23042810f05a7cede85239eb3) Fixed centered formatting on npm
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/dd96dcdacb8eae94942f7016b8dc37a2569fe420) Various other minor improvements / assertions refactored away, see [#653](https://github.com/dcodeIO/protobuf.js/issues/653)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3317a76fb56b9b31bb07ad672d6bdda94b79b6c3) Fixed some common reflection deopt sites, see [#653](https://github.com/dcodeIO/protobuf.js/issues/653)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6a483a529ef9345ed217a23394a136db0d9f7771) Reflection performance pass, see [#653](https://github.com/dcodeIO/protobuf.js/issues/653)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6a483a529ef9345ed217a23394a136db0d9f7771) Added TS definitions to alternative builds' index files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6a483a529ef9345ed217a23394a136db0d9f7771) Removed unnecessary prototype aliases, improves gzip ratio
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/641625fd64aca55b1163845e6787b58054ac36ec) Unified behaviour of and docs on Class constructor / Class.create
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7299929b37267af2100237d4f8b4ed8610b9f7e1) Statically generated services actually inherit from rpc.Service
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f4cf75e4e4192910b52dd5864a32ee138bd4e508) Do not try to run sauce tests for PRs
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/33da148e2b750ce06591c1c66ce4c46ccecc3c8f) Added utility to enable/disable debugging extensions to experimental debug build
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fdb1a729ae5f8ab762c51699bc4bb721102ef0c8) Fixed node 0.12 tests
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6bc5bb4a7649d6b91a5944a9ae20178d004c8856) Fixed coverage
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6f0b44aea6cf72d23042810f05a7cede85239eb3) Added a test case for [#652](https://github.com/dcodeIO/protobuf.js/issues/652)
- -# [6.5.3](https://github.com/dcodeIO/protobuf.js/releases/tag/6.5.3) - -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/799d0303bf289bb720f2b27af59e44c3197f3fb7) In fromObject, check if object is already a runtime message, see [#652](https://github.com/dcodeIO/protobuf.js/issues/652)
- -# [6.5.2](https://github.com/dcodeIO/protobuf.js/releases/tag/6.5.2) - -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8cff92fe3b7ddb1930371edb4937cd0db9216e52) Added coverage reporting
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/cbaaae99b4e39a859664df0e6d20f0491169f489) Added version scheme warning to everything CLI so that we don't need this overly explicit in README
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6877b3399f1a4c33568221bffb4e298b01b14439) Coverage progress, 100%
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/711a9eb55cb796ec1e51af7d56ef2ebbd5903063) Coverage progress
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e7526283ee4dd82231235afefbfad6af54ba8970) Attempted to fix badges once and for all
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5aa296c901c2b460ee3be4530ede394e2a45e0ea) Coverage progress
- -# [6.5.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.5.1) - -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9719fd2fa8fd97899c54712a238091e8fd1c57b2) Reuse module paths when looking up cli dependencies, see [#648](https://github.com/dcodeIO/protobuf.js/issues/648)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6302655d1304cf662f556be5d9fe7a016fcedc3c) Check actual module directories to determine if cli dependencies are present and bootstrap semver, see [#648](https://github.com/dcodeIO/protobuf.js/issues/648)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/dfc7c4323bf98fb26ddcfcfbb6896a6d6e8450a4) Added a note on semver-incompatibility, see [#649](https://github.com/dcodeIO/protobuf.js/issues/649)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/49053ffa0ea8a4ba5ae048706dba1ab6f3bc803b) Coverage progress
- -# [6.5.0](https://github.com/dcodeIO/protobuf.js/releases/tag/6.5.0) ([release](https://github.com/dcodeIO/protobuf.js/releases/tag/6.5.0)) - -## Breaking -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3946e0fefea415f52a16ea7a74109ff40eee9643) Initial upgrade of converters to real generated functions, see [#620](https://github.com/dcodeIO/protobuf.js/issues/620)
- -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/08cda241a3e095f3123f8a991bfd80aa3eae9400) An enum's default value present as a string looks up using typeDefault, not defaultValue which is an array if repeated
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c7e14b1d684aaba2080195cc83900288c5019bbc) Use common utility for virtual oneof getters and setters in both reflection and static code, see [#644](https://github.com/dcodeIO/protobuf.js/issues/644)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/508984b7ff9529906be282375d36fdbada66b8e6) Properly use Type.toObject/Message.toObject within converters, see [#641](https://github.com/dcodeIO/protobuf.js/issues/641)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5bca18f2d32e8687986e23edade7c2aeb6b6bac1) Generate null/undefined assertion in fromObject if actually NOT an enum, see [#620](https://github.com/dcodeIO/protobuf.js/issues/620)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/508984b7ff9529906be282375d36fdbada66b8e6) Replace ALL occurencies of types[%d].values in static code, see [#641](https://github.com/dcodeIO/protobuf.js/issues/641)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9b090bb1673aeb9b8f1d7162316fce4d7a3348f0) Switched to own property-aware encoders for compatibility, see [#639](https://github.com/dcodeIO/protobuf.js/issues/639)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/340d6aa82ac17c4a761c681fa71d5a0955032c8b) Now also parses comments, sets them on reflected objects and re-uses them when generating static code, see [#640](https://github.com/dcodeIO/protobuf.js/issues/640)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3cb82628159db4d2aa721b63619b16aadc5f1981) Further improved generated static code style
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/cda5c5452fa0797f1e4c375471aef96f844711f1) Removed scoping iifes from generated static code
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/def7b45fb9b5e01028cfa3bf2ecd8272575feb4d) Removed even more clutter from generated static code
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/dbd19fd9d3a57d033aad1d7173f7f66db8f8db3e) Removed various clutter from generated static code
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1cc8a2460c7e161c9bc58fa441ec88e752df409c) Made sure that static target's replacement regexes don't match fields
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d4272dbf5d0b2577af8efb74a94d246e2e0d728e) Also accept (trailing) triple-slash comments for compatibility with protoc-gen-doc, see [#640](https://github.com/dcodeIO/protobuf.js/issues/640)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0a3862b75fa60ef732e0cd36d623f025acc2fb45) Use semver to validate that CLI dependencies actually satisfy the required version, see [#637](https://github.com/dcodeIO/protobuf.js/issues/637)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9e360ea6a74d41307483e51f18769df7f5b047b9) Added a hint on documenting .proto files for static code
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d2a97bb818474645cf7ce1832952b2c3c739b234) Documented internally used codegen partials for what it's worth
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/079388ca65dfd581d74188a6ae49cfa01b103809) Updated converter documentation
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/168e448dba723d98be05c55dd24769dfe3f43d35) Bundler provides useful stuff to uglify and a global var without extra bloat
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/32e0529387ef97182ad0b9ae135fd8b883ed66b4) Cleaned and categorized tests, coverage progress
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3325e86930a3cb70358c689cb3016c1be991628f) Properly removed builtins from bundle
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2c94b641fc5700c8781ac0b9fe796debac8d6893) Call hasOwnProperty builtin as late as possible decreasing the probability of having to call it at all (perf)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/818bcacde267be70a75e689f480a3caad6f80cf7) Slightly hardened codegen sprintf
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/818bcacde267be70a75e689f480a3caad6f80cf7) Significantly improved uint32 write performance
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b5daa272407cb31945fd38c34bbef7c9edd1db1c) Cleaned up test case data and removed unused files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c280a4a18c6d81c3468177b2ea58ae3bc4f25e73) Removed now useless trailing comment checks, see [#640](https://github.com/dcodeIO/protobuf.js/issues/640)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/44167db494c49d9e4b561a66ad9ce2d8ed865a21) Ensured that pbjs' beautify does not break regular expressions in generated verify functions
- -# [6.4.6](https://github.com/dcodeIO/protobuf.js/releases/tag/6.4.6) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e11012ce047e8b231ba7d8cc896b8e3a88bcb902) Case-sensitively test for legacy group definitions, fixes [#638](https://github.com/dcodeIO/protobuf.js/issues/638)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7e57f4cdd284f886b936511b213a6468e4ddcdce) Properly parse text format options + simple test case, fixes [#636](https://github.com/dcodeIO/protobuf.js/issues/636)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fe4d97bbc4d33ce94352dde62ddcd44ead02d7ad) Added SVG logo, see [#629](https://github.com/dcodeIO/protobuf.js/issues/629)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/57990f7ed8ad5c512c28ad040908cee23bbf2aa8) Also refactored Service and Type to inherit from NamespaceBase, see [#635](https://github.com/dcodeIO/protobuf.js/issues/635)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fe4d97bbc4d33ce94352dde62ddcd44ead02d7ad) Moved TS-compatible Namespace features to a virtual NamespaceBase class, compiles with strictNullChecks by default now, see [#635](https://github.com/dcodeIO/protobuf.js/issues/635)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fe4d97bbc4d33ce94352dde62ddcd44ead02d7ad) Minor codegen enhancements
- -# [6.4.5](https://github.com/dcodeIO/protobuf.js/releases/tag/6.4.5) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1154ce0867306e810cf62a5b41bdb0b765aa8ff3) Properly handle empty/noop Writer#ldelim, fixes [#625](https://github.com/dcodeIO/protobuf.js/issues/625)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f303049f92c53970619375653be46fbb4e3b7d78) Properly annotate map fields in pbjs, fixes [#624](https://github.com/dcodeIO/protobuf.js/issues/624)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4b786282a906387e071a5a28e4842a46df588c7d) Made sure that Writer#bytes is always able to handle plain arrays
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1e6a8d10f291a16631376dd85d5dd385937e6a55) Slightly restructured utility to better support static code default values
- -# [6.4.4](https://github.com/dcodeIO/protobuf.js/releases/tag/6.4.4) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/26d68e36e438b590589e5beaec418c63b8f939cf) Dynamically resolve jsdoc when running pbts, fixes [#622](https://github.com/dcodeIO/protobuf.js/issues/622)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/69c04d7d374e70337352cec9b445301cd7fe60d6) Explain 6.4.2 vs 6.4.3 in changelog
- -# [6.4.3](https://github.com/dcodeIO/protobuf.js/releases/tag/6.4.4) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c2c39fc7cec5634ecd1fbaebbe199bf097269097) Fixed invalid definition of Field#packed property, also introduced decoder.compat mode (packed fields, on by default)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/11fb1a66ae31af675d0d9ce0240cd8e920ae75e7) Always decode packed/non-packed based on wire format only, see [#602](https://github.com/dcodeIO/protobuf.js/issues/602)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c9a61e574f5a2b06f6b15b14c0c0ff56f8381d1f) Use full library for JSON modules and runtime dependency for static modules, fixes [#621](https://github.com/dcodeIO/protobuf.js/issues/621)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e88d13ca7ee971451b57d056f747215f37dfd3d7) Additional workarounds for on demand CLI dependencies, see [#618](https://github.com/dcodeIO/protobuf.js/issues/618)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/44f6357557ab3d881310024342bcc1e0d336a20c) Revised automatic setup of cli dependencies, see [#618](https://github.com/dcodeIO/protobuf.js/issues/618)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e027a3c7855368837e477ce074ac65f191bf774a) Removed Android 4.0 test (no longer supported by sauce)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8ba3c5efd182bc80fc36f9d5fe5e2b615b358236) Removed some unused utility, slightly more efficient codegen, additional comments
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f22a34a071753bca416732ec4d01892263f543fb) Updated tests for new package.json layout
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f22a34a071753bca416732ec4d01892263f543fb) Added break/continue label support to codegen
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f2ffa0731aea7c431c59e452e0f74247d815a352) Updated dependencies, rebuilt dist files and changed logo to use an absolute url
- -6.4.2 had been accidentally published as 6.4.3. - -# [6.4.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.4.1) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9035d4872e32d6402c8e4d8c915d4f24d5192ea9) Added more default value checks to converter, fixes [#616](https://github.com/dcodeIO/protobuf.js/issues/616)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/62eef58aa3b002115ebded0fa58acc770cd4e4f4) Respect long defaults in converters
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e3170a160079a3a7a99997a2661cdf654cb69e24) Convert inner messages and undefined/null values more thoroughly, fixes [#615](https://github.com/dcodeIO/protobuf.js/issues/615)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b52089efcb9827537012bebe83d1a15738e214f4) Always use first defined enum value as field default, fixes [#613](https://github.com/dcodeIO/protobuf.js/issues/613)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/64f95f9fa1bbe42717d261aeec5c16d1a7aedcfb) Install correct 'tmp' dependency when running pbts without dev dependencies installed, fixes [#612](https://github.com/dcodeIO/protobuf.js/issues/612)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/cba46c389ed56737184e5bc2bcce07243d52e5ce) Generate named constructors for runtime messages, see [#588](https://github.com/dcodeIO/protobuf.js/issues/588)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ee20b81f9451c56dc106177bbf9758840b99d0f8) pbjs/pbts no longer generate any volatile headers, see [#614](https://github.com/dcodeIO/protobuf.js/issues/614)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ec9d517d0b87ebe489f02097c2fc8005fae38904) Attempted to make broken shields less annoying
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5cd4c2f2a94bc3c0f2c580040bce28dd42eaccec) Updated README
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0643f93f5c0d96ed0ece5b47f54993ac3a827f1b) Some cleanup and added a logo
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/169638382de9efe35a1079c5f2045c33b858059a) use $protobuf.Long
- -# [6.4.0](https://github.com/dcodeIO/protobuf.js/releases/tag/6.4.0) ([release](https://github.com/dcodeIO/protobuf.js/releases/tag/6.4.0)) - -## Breaking -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a017bf8a2dbdb7f9e7ce4c026bb6845174feb3b1) Dropped IE8 support
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/39bc1031bb502f8b677b3736dd283736ea4d92c1) Removed now unused util.longNeq which was used by early static code
- -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5915ff972482e7db2a73629244ab8a93685b2e55) Do not swallow errors in loadSync, also accept negative enum values in Enum#add, fixes [#609](https://github.com/dcodeIO/protobuf.js/issues/609)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fde56c0de69b480343931264a01a1ead1e3156ec) Improved bytes field support, also fixes [#606](https://github.com/dcodeIO/protobuf.js/issues/606)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0c03f327115d57c4cd5eea3a9a1fad672ed6bd44) Fall back to browser Reader when passing an Uint8Array under node, fixes [#605](https://github.com/dcodeIO/protobuf.js/issues/605)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7eb3d456370d7d66b0856e32b2d2602abf598516) Respect optional properties when writing interfaces in tsd-jsdoc, fixes [#598](https://github.com/dcodeIO/protobuf.js/issues/598)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/bcadffecb3a8b98fbbd34b45bae0e6af58f9c810) Instead of protobuf.parse.keepCase, fall back to protobuf.parse.defaults holding all possible defaults, see [#608](https://github.com/dcodeIO/protobuf.js/issues/608)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a4d6a2af0d57a2e0cccf31e3462c8b2465239f8b) Added global ParseOptions#keepCase fallback as protobuf.parse.keepCase, see [#608](https://github.com/dcodeIO/protobuf.js/issues/608)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a017bf8a2dbdb7f9e7ce4c026bb6845174feb3b1) Converters use code generation and support custom implementations
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/28ce07d9812f5e1743afef95a94532d2c9488a84) Be more verbose when throwing invalid wire type errors, see [#602](https://github.com/dcodeIO/protobuf.js/issues/602)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/40074bb69c3ca4fcefe09d4cfe01f3a86844a7e8) Added an asJSON-option to always populate array fields, even if defaults=false, see [#597](https://github.com/dcodeIO/protobuf.js/issues/597)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a7d23240a278aac0bf01767b6096d692c09ae1ce) Attempt to improve TypeScript support by using explicit exports
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/cec253fb9a177ac810ec96f4f87186506091fa37) Copy-pasted typescript definitions to micro modules, see [#599](https://github.com/dcodeIO/protobuf.js/issues/599)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1f18453c7bfcce65c258fa98a3e3d4577d2e550f) Emit an error on resolveAll() if any extension fields cannot be resolved, see [#595](https://github.com/dcodeIO/protobuf.js/issues/595) + test case
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/804739dbb75359b0034db0097fe82081e3870a53) Removed 'not recommend' label for --keep-case, see [#608](https://github.com/dcodeIO/protobuf.js/issues/608)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9681854526f1813a6ef08becf130ef2fbc28b638) Added customizable linter configuration to pbjs
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9681854526f1813a6ef08becf130ef2fbc28b638) Added stdin support to pbjs and pbts
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/407223b5ceca3304bc65cb48888abfdc917d5800) Static code no longer uses IE8 support utility
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a017bf8a2dbdb7f9e7ce4c026bb6845174feb3b1) Generated static code now supports asJSON/from
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3c775535517b8385a1d3c1bf056f3da3b4266f8c) Added support for TypeScript enums to pbts
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0cda72a55a1f2567a5d981dc5d924e55b8070513) Added a few helpful comments to static code
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/24b293c297feff8bda5ee7a2f8f3f83d77c156d0) Slightly beautify statically generated code
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/65637ffce20099df97ffbcdce50faccc8e97c366) Do not wrap main definition as a module and export directly instead
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/65637ffce20099df97ffbcdce50faccc8e97c366) Generate prettier definitions with --no-comments
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/20d8a2dd93d3bbb6990594286f992e703fc4e334) Added variable arguments support to tsd-jsdoc
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8493dbd9a923693e943f710918937d83ae3c4572) Reference dependency imports as a module to prevent name collisions, see [#596](https://github.com/dcodeIO/protobuf.js/issues/596)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/39a2ea361c50d7f4aaa0408a0d55bb13823b906c) Removed now unnecessary comment lines in generated static code
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a4e41b55471d83a8bf265c6641c3c6e0eee82e31) Added notes on CSP-restricted environments to README, see [#593](https://github.com/dcodeIO/protobuf.js/issues/593)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1a3effdad171ded0608e8da021ba8f9dd017f2ff) Added test case for asJSON with arrays=true, see [#597](https://github.com/dcodeIO/protobuf.js/issues/597)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/751a90f509b68a5f410d1f1844ccff2fc1fc056a) Added a tape adapter to assert message equality accross browsers
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fde56c0de69b480343931264a01a1ead1e3156ec) Refactored some internal utility away
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/805291086f6212d1f108b3d8f36325cf1739c0bd) Reverted previous attempt on [#597](https://github.com/dcodeIO/protobuf.js/issues/597)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c5160217ea95996375460c5403dfe37b913d392e) Minor tsd-jsdoc refactor
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/961dd03061fc2c43ab3bf22b3f9f5165504c1002) Removed unused sandbox files
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f625eb8b0762f8f5d35bcd5fc445e52b92d8e77d) Updated package.json of micro modules to reference types, see [#599](https://github.com/dcodeIO/protobuf.js/issues/599)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/46ec8209b21cf9ff09ae8674e2a5bbc49fd4991b) Reference dependencies as imports in generated typescript definitions, see [#596](https://github.com/dcodeIO/protobuf.js/issues/596)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3bab132b871798c7c50c60a4c14c2effdffa372e) Allow null values on optional long fields, see [#590](https://github.com/dcodeIO/protobuf.js/issues/590)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/31da56c177f1e11ffe0072ad5f58a55e3f8008fd) Various jsdoc improvements and a workaround for d.ts generation, see [#592](https://github.com/dcodeIO/protobuf.js/issues/592)
- -# [6.3.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.3.1) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/95ed6e9e8268711db24f44f0d7e58dd278ddac4c) Empty inner messages are always present on the wire + test case + removed now unused Writer#ldelim parameter, see [#585](https://github.com/dcodeIO/protobuf.js/issues/585)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e8a4d5373b1a00cc6eafa5b201b91d0e250cc00b) Expose tsd-jsdoc's comments option to pbts as --no-comments, see [#587](https://github.com/dcodeIO/protobuf.js/issues/587)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6fe099259b5985d873ba5bec88c049d7491a11cc) Increase child process max buffer when running jsdoc from pbts, see [#587](https://github.com/dcodeIO/protobuf.js/issues/587)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3d84ecdb4788d71b5d3928e74db78e8e54695f0a) pbjs now generates more convenient dot-notation property accessors
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1e0ebc064e4f2566cebf525d526d0b701447bd6a) And fixed IE8 again (should probably just drop IE8 for good)
- -# [6.3.0](https://github.com/dcodeIO/protobuf.js/releases/tag/6.3.0) - -## Breaking -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a97956b1322b6ee62d4fc9af885658cd5855e521) Moved camelCase/underScore away from util to where actually used
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c144e7386529b53235a4a5bdd8383bdb322f2825) Renamed asJSON option keys (enum to enums, long to longs) because enum is a reserved keyword
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5b9ade428dca2df6a13277522f2916e22092a98b) Moved JSON/Message conversion to its own source file and added Message/Type.from + test case, see [#575](https://github.com/dcodeIO/protobuf.js/issues/575)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0b0de2458a1ade1ccd4ceb789697be13290f856b) Relicensed the library and its components to BSD-3-Clause to match the official implementation (again)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/22a64c641d4897965035cc80e92667bd243f182f) Dropped support for browser buffer entirely (is an Uint8Array anyway), ensures performance and makes things simpler
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/22a64c641d4897965035cc80e92667bd243f182f) Removed dead parts of the Reader API
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/964f65a9dd94ae0a18b8be3d9a9c1b0b1fdf6424) Refactored BufferReader/Writer to their own files and removed unnecessary operations (node always has FloatXXArray and browser buffer uses ieee anyway)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/bfac0ea9afa3dbaf5caf79ddf0600c3c7772a538) Stripped out fallback encoder/decoder/verifier completely (even IE8 supports codegen), significantly reduces bundle size, can use static codegen elsewhere
- -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c3023a2f51fc74547f6c6e53cf75feed60f3a25c) Actually concatenate mixed custom options when parsing
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0d66b839df0acec2aea0566d2c0bbcec46c3cd1d) Fixed a couple of issues with alternative browser builds
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/33706cdc201bc863774c4af6ac2c38ad96a276e6) Properly set long defaults on prototypes
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0ea2740f0774b4c5c349b9c303f3fb2c2743c37b) Fixed reference error in minimal runtime, see [#580](https://github.com/dcodeIO/protobuf.js/issues/580)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/741b6d8fde84d9574676a729a29a428d99f0a0a0) Non-repeated empty messages are always present on the wire, see [#581](https://github.com/dcodeIO/protobuf.js/issues/581)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7fac9d6a39bf42d316c1676082a2d0804bc55934) Properly check Buffer.prototype.set with node v4
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3ad8108eab57e2b061ee6f1fddf964abe3f4cbc7) Prevent NRE and properly annotate verify signature in tsd-jsdoc, fixed [#572](https://github.com/dcodeIO/protobuf.js/issues/572)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6c2415d599847cbdadc17dee3cdf369fc9facade) Fix directly using Buffer instead of util.Buffer
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/19e906c2a15acc6178b3bba6b19c2f021e681176) Added filter type to Namespace#lookup, fixes [#569](https://github.com/dcodeIO/protobuf.js/issues/569)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9c9a66bf393d9d6927f35a9c18abf5d1c31db912) Fixed parsing enum inner options, see [#565](https://github.com/dcodeIO/protobuf.js/issues/565)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ea7ba8b83890084d61012cb5386dc11dadfb3908) Fixed release links in README files
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/442471363f99e67fa97044f234a47b3c9b929dfa) Added a noparse build for completeness
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/bfee1cc3624d0fa21f9553c2f6ce2fcf7fcc09b7) Now compresses .gz files using zopfli to make them useful beyond being just a reference
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/aed134aa1cd7edd801de77c736cf5efe6fa61cb0) Updated non-bundled google types folder with missing descriptors and added wrappers to core
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0b0de2458a1ade1ccd4ceb789697be13290f856b) Replaced the ieee754 implementation for old browsers with a faster, use-case specific one + simple test case
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/99ad9cc08721b834a197d4bbb67fa152d7ad79aa) Added .create to statically generated types and uppercase nested elements to reflection namespaces, see [#576](https://github.com/dcodeIO/protobuf.js/issues/576)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/99ad9cc08721b834a197d4bbb67fa152d7ad79aa) Also added Namespace#getEnum for completeness, see [#576](https://github.com/dcodeIO/protobuf.js/issues/576)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ef43acff547c0cd84cfb7a892fe94504a586e491) Added Namespace#getEnum and changed #lookupEnum to the same behavior, see [#576](https://github.com/dcodeIO/protobuf.js/issues/576)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1fcfdfe21c1b321d975a8a96d133a452c9a9c0d8) Added a heap of coverage comments for usually unused code paths to open things up
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c234de7f0573ee30ed1ecb15aa82b74c0f994876) Added codegen test to determine if any ancient browsers don't actually support it
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fed2000e7e461efdb1c3a1a1aeefa8b255a7c20b) Added legacy groups support to pbjs, see [#568](https://github.com/dcodeIO/protobuf.js/issues/568)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/974a1321da3614832aa0a5b2e7c923f66e4ba8ae) Initial support for legacy groups + test case, see [#568](https://github.com/dcodeIO/protobuf.js/issues/568)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9c9a66bf393d9d6927f35a9c18abf5d1c31db912) Added asJSON bytes as Buffer, see [#566](https://github.com/dcodeIO/protobuf.js/issues/566)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c60cd397e902ae6851c017f2c298520b8336cbee) Annotated callback types in pbjs-generated services, see [#582](https://github.com/dcodeIO/protobuf.js/issues/582)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3e7e4fc59e6d2d6c862410b4b427fbedccdb237b) Removed type/ns alias comment in static target to not confuse jsdoc unnecessarily
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/99ad9cc08721b834a197d4bbb67fa152d7ad79aa) Made pbjs use loadSync for deterministic outputs, see [#573](https://github.com/dcodeIO/protobuf.js/issues/573)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4d1f5facfcaaf5f2ab6a70b12443ff1b66e7b94e) Updated documentation on runtime and noparse builds
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c59647a7542cbc4292248787e5f32bb99a9b8d46) Fixed an issue with the changelog generator skipping some commits
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/24f2c03af9f13f5404259866fdc8fed33bfaae25) Added notes on how to use pbjs and pbts programmatically
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3544576116146b209246d71c7f7a9ed687950b26) Manually sorted old changelog entries
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d5812571f335bae68f924aa1098519683a9f3e44) Initial changelog generator, see [#574](https://github.com/dcodeIO/protobuf.js/issues/574)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ab3e236a967a032a98267a648f84d129fdb4d4a6) Added static/JSON module interchangeability to README
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7939a4bd8baca5f7e07530fc93f27911a6d91c6f) Updated README and bundler according to dynamic require calls
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/93e04f1db4a9ef3accff8d071c75be3d74c0cd4a) Added basic services test case
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b5a068f5b79b6f00c4b05d9ac458878650ffa09a) Just polyfill Buffer.from / .allocUnsafe for good
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4375a485789e14f7bf24bece819001154a03dca2) Added a test case to find out if all the fallbacks are just for IE8
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/deb2e82ed7eda41d065a09d120e91c0f7ecf1e6a) Commented out float assertions in float test including explanation
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d3ebd5745b024033fbc2410ecad4d4e02abd67db) Expose array implementation used with (older) browsers on util for tests
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b1b6a813c93da4c7459755186aa02ef2f3765c94) Updated test cases
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/99dc5faa7b39fdad8ebc102de4463f8deb7f48ff) Added assumptions to float test case
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/948ca2e3c5c62fedcd918d75539c261abf1a7347) Updated travis config to use C++11
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c59647a7542cbc4292248787e5f32bb99a9b8d46) Updated / added additional LICENSE files where appropriate
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/333f0221814be976874862dc83d0b216e07d4012) Integrated changelog into build process, now also has 'npm run make' for everything, see [#574](https://github.com/dcodeIO/protobuf.js/issues/574)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ab3e236a967a032a98267a648f84d129fdb4d4a6) Minor optimizations through providing type-hints
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ab3e236a967a032a98267a648f84d129fdb4d4a6) Reverted shortened switch statements in verifier
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ab3e236a967a032a98267a648f84d129fdb4d4a6) Enums can't be map key types
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8ef6975b0bd372b79e9b638f43940424824e7176) Use custom require (now a micromodule) for all optional modules, see [#571](https://github.com/dcodeIO/protobuf.js/issues/571)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e226f001e4e4633d64c52be4abc1915d7b7bd515) Support usage when size = 0
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/19e906c2a15acc6178b3bba6b19c2f021e681176) Reverted aliases frequently used in codegen for better gzip ratio
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/47b51ec95a540681cbed0bac1b2f02fc4cf0b73d) Shrinked bundle size - a bit
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f8451f0058fdf7a1fac15ffc529e4e899c6b343c) Can finally run with --trace-deopt again without crashes
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9c9a66bf393d9d6927f35a9c18abf5d1c31db912) Other minor optimizations
- -# [6.2.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.2.1) - -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1a6fdc9a11fb08506d09351f8e853384c2b8be25) Added ParseOptions to protobuf.parse and --keep-case for .proto sources to pbjs, see [#564](https://github.com/dcodeIO/protobuf.js/issues/564)
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fc383d0721d83f66b2d941f0d9361621839327e9) Better TypeScript definition support for @property-annotated objects
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4531d75cddee9a99adcac814d52613116ba789f3) Can't just inline longNeq but can be simplified
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8f25377cf99036794ba13b160a5060f312d1a7e7) Array abuse and varint optimization
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/90b201209a03e8022ada0ab9182f338fa0813651) Updated dependencies
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f1110b0993ec86e0a4aee1735bd75b901952cb36) Other minor improvements to short ifs
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c079c900e2d61c63d5508eafacbd00163d377482) Reader/Writer example
- -# [6.2.0](https://github.com/dcodeIO/protobuf.js/releases/tag/6.2.0) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9b7b92a4c7f8caa460d687778dc0628a74cdde37) Fixed reserved names re, also ensure valid service method names, see [#559](https://github.com/dcodeIO/protobuf.js/issues/559)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a83425049c9a78c5607bc35e8089e08ce78a741e) Fix d.ts whitespace on empty lines, added tsd-jsdoc LICENSE
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5f9bede280aa998afb7898e8d2718b4a229e8e6f) Fix asJSON defaults option, make it work for repeated fields.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b0aef62191b65cbb305ece84a6652d76f98da259) Inlined any Reader/Writer#tag calls, also fixes [#556](https://github.com/dcodeIO/protobuf.js/issues/556)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4d091d41caad9e63cd64003a08210b78878e01dd) Fix building default dist files with explicit runtime=false
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/096dfb686f88db38ed2d8111ed7aac36f8ba658a) Apply asJSON recursively
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/19c269f1dce1b35fa190f264896d0865a54a4fff) Ensure working reflection class names with minified builds
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9c769504e0ffa6cbe0b6f8cdc14f1231bed7ee34) Lazily resolve (some) cyclic dependencies, see [#560](https://github.com/dcodeIO/protobuf.js/issues/560)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/da07d8bbbede4175cc45ca46d883210c1082e295) Added protobuf.roots to minimal runtime, see [#554](https://github.com/dcodeIO/protobuf.js/issues/554)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8f407a18607334185afcc85ee98dc1478322bd01) Repo now includes a restructured version of tsd-jsdoc with our changes incorporated for issues/prs, see [#550](https://github.com/dcodeIO/protobuf.js/issues/550)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1b5e4250415c6169eadb405561242f847d75044b) Updated pbjs arguments
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4750e3111b9fdb107d0fc811e99904fbcdbb6de1) Pipe tsd-jsdoc output (requires dcodeIO/tsd-jsdoc/master) and respect cwd, see [#550](https://github.com/dcodeIO/protobuf.js/issues/550)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/75f4b6cb6325a3fc7cd8fed3de5dbe0b6b29c748) tsd-jsdoc progress
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/766171e4c8b6650ea9c6bc3e76c9c96973c2f546) README
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c33835cb1fe1872d823e94b0fff024dc624323e8) Added GH issue template
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6f9ffb6307476d48f45dc4f936744b82982d386b) Path micromodule, dependencies
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0b9b1d8505743995c5328daab1f1e124debc63bd) Test case for [#556](https://github.com/dcodeIO/protobuf.js/issues/556)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/74b2c5c5d33a46c3751ebeadc9d934d4ccb8286c) Raw alloc benchmark
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fb74223b7273530d8baa53437ee96c65a387436d) Other minor optimizations
- -# [6.1.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.1.1) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/baea920fa6bf5746e0a7888cdbb089cd5d94fc90) Properly encode/decode map kv pairs as repeated messages (codegen and fallback), see [#547](https://github.com/dcodeIO/protobuf.js/issues/547)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/28a1d26f28daf855c949614ef485237c6bf316e5) Make genVerifyKey actually generate conditions for 32bit values and bool, fixes [#546](https://github.com/dcodeIO/protobuf.js/issues/546)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3e9d8ea9a5cbb2e029b5c892714edd6926d2e5a7) Fix to generation of verify methods for bytes
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e7893675ccdf18f0fdaea8f9a054a6b5402b060e) Take special care of oneofs when encoding (i.e. when explicitly set to defaults), see [#542](https://github.com/dcodeIO/protobuf.js/issues/542)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/52cd8b5a891ec8e11611127c8cfa6b3a91ff78e3) Added Message#asJSON option for bytes conversion
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/01365ba9116ca1649b682635bb29814657c4133c) Added Namespace#lookupType and Namespace#lookupService (throw instead of returning null), see [#544](https://github.com/dcodeIO/protobuf.js/issues/544)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a54fbc918ef6bd627113f05049ff704e07bf33b4) Provide prebuilt browser versions of the static runtime
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3783af7ca9187a1d9b1bb278ca69e0188c7e4c66) Initial pbts CLI for generating TypeScript definitions, see [#550](https://github.com/dcodeIO/protobuf.js/issues/550)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b8bce03405196b1779727f246229fd9217b4303d) Refactored json/static-module targets to use common wrappers
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/691231fbc453a243f48a97bfb86794ab5718ef49) Refactor cli to support multiple built-in wrappers, added named roots instead of always using global.root and added additionally necessary eslint comments, see [#540](https://github.com/dcodeIO/protobuf.js/issues/540)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e3e77d0c7dc973d3a5948a49d123bdaf8a048030) Annotate namespaces generated by static target, see [#550](https://github.com/dcodeIO/protobuf.js/issues/550)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/aff21a71e6bd949647b1b7721ea4e1fe16bcd933) static target: Basic support for oneof fields, see [#542](https://github.com/dcodeIO/protobuf.js/issues/542)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b6b00aa7b0cd35e0e8f3c16b322788e9942668d4) Fix to reflection documentation
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ed86f3acbeb6145be5f24dcd05efb287b539e61b) README on minimal runtime / available downloads
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d31590b82d8bafe6657bf877d403f01a034ab4ba) Notes on descriptors vs static modules
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ce41d0ef21cee2d918bdc5c3b542d3b7638b6ead) A lot of minor optimizations to performance and gzip ratio
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ecbb4a52fbab445e63bf23b91539e853efaefa47) Minimized base64 tables
- -# [6.1.0](https://github.com/dcodeIO/protobuf.js/releases/tag/6.1.0) - -## Breaking -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a46cc4934b7e888ae80e06fd7fdf91e5bc7f54f5) Removed as-function overload for Reader/Writer, profiler stub, optimized version of Reader#int32
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7983ee0ba15dc5c1daad82a067616865051848c9) Refactored Prototype and inherits away, is now Class and Message for more intuitive documentation and type refs
- -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/c3c70fe3a47fd4f7c85dc80e1af7d9403fe349cd) Fixed failing test case on node < 6
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/66be5983321dd06460382d045eb87ed72a186776) Fixed serialization order of sfixed64, fixes [#536](https://github.com/dcodeIO/protobuf.js/issues/536)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7def340833f9f1cc41f4835bd0d62e203b54d9eb) Fixed serialization order of fixed64, fallback to parseInt with no long lib, see [#534](https://github.com/dcodeIO/protobuf.js/issues/534)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/98a58d40ca7ee7afb1f76c5804e82619104644f6) Actually allow undefined as service method type, fixes [#528](https://github.com/dcodeIO/protobuf.js/issues/528)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/38d867fc50a4d7eb1ca07525c9e4c71b8782443e) Do not skip optional delimiter after aggregate options, fixes [#520](https://github.com/dcodeIO/protobuf.js/issues/520)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/67449db7c7416cbc59ad230c168cf6e6b6dba0c5) Verify empty base64 encoded strings for bytes fields, see [#535](https://github.com/dcodeIO/protobuf.js/issues/535)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ef0fcb6d525c5aab13a39b4f393adf03f751c8c9) wrong spell role should be rule
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/55db92e21a26c04f524aeecb2316968c000e744d) decodeDelimited always forks if writer is specified, see [#531](https://github.com/dcodeIO/protobuf.js/issues/531)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ebae1e18152617f11ac07827828f5740d4f2eb7e) Mimic spec-compliant behaviour in oneof getVirtual, see [#523](https://github.com/dcodeIO/protobuf.js/issues/523)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/a0398f5880c434ff88fd8d420ba07cc29c5d39d3) Initial base64 string support for bytes fields, see [#535](https://github.com/dcodeIO/protobuf.js/issues/535)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6a6c00c3e1def5d35c7fcaa1bbb6ce4e0fe67544) Initial type-checking verifier, see [#526](https://github.com/dcodeIO/protobuf.js/issues/526), added to bench out of competition
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3aa984e063cd73e4687102b4abd8adc16582dbc4) Initial loadSync (node only), see [#529](https://github.com/dcodeIO/protobuf.js/issues/529)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f1370ff5b0db2ebb73b975a3d7c7bd5b901cbfac) Initial RPC service implementaion, see [#529](https://github.com/dcodeIO/protobuf.js/issues/529)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/090d8eaf10704a811a73e1becd52f2307cbcad48) added 'defaults' option to Prototype#asJSON, see [#521](https://github.com/dcodeIO/protobuf.js/issues/521)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7c28483d65cde148e61fe9993f1716960b39e049) Use Uint8Array pool in browsers, just like node does with buffers
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4157a0ec2e54c4d19794cb16edddcd8d4fbd3e76) Also validate map fields, see [#526](https://github.com/dcodeIO/protobuf.js/issues/526) (this really needs some tests)
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0ce099bf4f4666fd00403a2839e6da628b8328a9) Added json-module target to pbjs, renamed static to static-module, see [#522](https://github.com/dcodeIO/protobuf.js/issues/522)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1d99442fe65fcaa2f9e33cc0186ef1336057e0cf) updated internals and static target to use immutable objects on prototypes
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e6eaa91b9fe021b3356d4d7e42033a877bc45871) Added a couple of alternative signatures, protobuf.load returns promise or undefined, aliased Reader/Writer-as-function signature with Reader/Writer.create for typed dialects, see [#518](https://github.com/dcodeIO/protobuf.js/issues/518)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9df6a3d4a654c3e122f97d9a594574c7bbb412da) Added variations for Root#load, see [#527](https://github.com/dcodeIO/protobuf.js/issues/527)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/193e65c006a8df8e9b72e0f23ace14a94952ee36) Added benchmark and profile related information to README
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/228a2027de35238feb867cb0485c78c755c4d17d) Added service example to README, see [#529](https://github.com/dcodeIO/protobuf.js/issues/529)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/1a8c720714bf867f1f0195b4690faefa4f65e66a) README on tests
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/014fb668dcf853874c67e3e0aeb7b488a149d35c) Update README/dist to reflect recent changes
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/11d844c010c5a22eff9d5824714fb67feca77b26) Minimal documentation for micromodules
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/47608dd8595b0df2b30dd18fef4b8207f73ed56a) Document all the callbacks, see [#527](https://github.com/dcodeIO/protobuf.js/issues/527)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3891ab07bbe20cf84701605aa62453a6dbdb6af2) Documented streaming-rpc example a bit
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5606cb1bc41bc90cb069de676650729186b38640) Removed the need for triple-slash references in .d.ts by providing a minimal Long interface, see [#527](https://github.com/dcodeIO/protobuf.js/issues/527), see [#530](https://github.com/dcodeIO/protobuf.js/issues/530)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/adf3cc3d340f8b2a596c892c64457b15e42a771b) Transition to micromodules
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f3a9589b74af6a1bf175f2b1994badf703d7abc4) Refactored argument order of utf8 for plausibility
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/14c207ed6e05a61e756fa4192efb2fa219734dd6) Restructured reusable micromodules
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/b510ba258986271f07007aebc5dcfea7cfd90cf4) Can't use Uint8Array#set on node < 6 buffers
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/78952a50ceee8e196b4f156eb01f7f693b5b8aac) Test case for [#531](https://github.com/dcodeIO/protobuf.js/issues/531)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/954577c6b421f7d7f4905bcc32f57e4ebaf548da) Safer signaling for synchronous load, see [#529](https://github.com/dcodeIO/protobuf.js/issues/529)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9ea3766ff1b8fb7ccad028f44efe27d3b019eeb7) Proper end of stream signaling to rpcImpl, see [#529](https://github.com/dcodeIO/protobuf.js/issues/529)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/e4faf7fac9b34d4776f3c15dfef8d2ae54104567) Moved event emitter to util, also accepts listener context, see [#529](https://github.com/dcodeIO/protobuf.js/issues/529)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9bdec62793ce77c954774cc19106bde4132f24fc) Probably the worst form of hiding require programmatically, see [#527](https://github.com/dcodeIO/protobuf.js/issues/527)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4462d8b05d3aba37c865cf53e09b3199cf051a92) Attempt to hide require('fs') from webpack, see [#527](https://github.com/dcodeIO/protobuf.js/issues/527)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/7c3bf8d32cbf831b251730b3876c35c901926300) Trying out jsdoc variations, see [#527](https://github.com/dcodeIO/protobuf.js/issues/527)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/bb4059467287fefda8f966de575fd0f8f9690bd3) by the way, why not include the json->proto functionality into "util"?
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f1008e6ee53ee50358e19c10df8608e950be4be3) Update proto.js
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fc9014822d9cdeae8c6e454ccb66ee28f579826c) Automatic profile generation and processing
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/2a2f6dcab5beaaa98e55a005b3d02643c45504d6) Generalized buffer pool and moved it to util
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/53a16bf3ada4a60cc09757712e0046f3f2d9d094) Make shields visible on npm, yey
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/9004b9d0c5135a7f6df208ea658258bf2f9e6fc9) More shields, I love shields, and maybe a workaround for travis timing out when sauce takes forever
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/060a7916a2715a9e4cd4d05d7c331bec33e60b7e) Trying SauceLabs with higher concurrency
- -# [6.0.2](https://github.com/dcodeIO/protobuf.js/releases/tag/6.0.2) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/23d664384900eb65e44910def45f04be996fbba1) Fix packable float/double see [#513](https://github.com/dcodeIO/protobuf.js/issues/513)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/54283d39c4c955b6a84f7f53d4940eec39e4df5e) Handle oneofs in prototype ctor, add non-ES5 fallbacks, test case
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/0ae66752362899b8407918a759b09938e82436e1) Be nice to AMD, allow reconfiguration of Reader/Writer interface
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/00f3574ef4ee8b237600e41839bf0066719c4469) Initial static codegen target for reference
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/81e36a7c14d89b487dfe7cfb2f8380fcdf0df392) pbjs static target services support
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4885b8239eb74c72e665787ea0ece3336e493d7f) pbjs static target progress, uses customizable wrapper template
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/ad5abe7bac7885ba4f68df7eeb800d2e3b81750b) Static pbjs target progress, now generates usable CommonJS code, see [#512](https://github.com/dcodeIO/protobuf.js/issues/512)
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d9634d218849fb49ff5dfb4597bbb2c2d43bbf08) TypeScript example
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/fce8276193a5a9fabad5e5fbeb2ccd4f0f3294a9) Adjectives, notes on browserify
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/23d664384900eb65e44910def45f04be996fbba1) Refactor runtime util into separate file, reader/writer uses runtime util
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/f91c432a498bebc0adecef1562061b392611f51a) Also optimize reader with what we have learned
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d83f799519fe69808c88e83d9ad66c645d15e963) More (shameless) writer over-optimization
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/8a2dbc610a06fe3a1a2695a3ab032d073b77760d) Trading package size for float speed
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/95c5538cfaf1daf6b4990f6aa7599779aaacf99f) Skip defining getters and setters on IE8 entirely, automate defining fallbacks
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/09865d069303e795e475c82afe2b2267abaa59ea) Unified proto/reflection/classes/static encoding API to always return a writer
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/98d6ae186a48416e4ff3030987caed285f40a4f7) plain js utf8 is faster for short strings
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/79fbbf48b8e4dc9c41dcbdef2b73c5f2608b0318) improve TypeScript support. add simple test script.
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/96fa07adec8b0ae05e07c2c40383267f25f2fc92) Use long.js dependency in tests, reference types instead of paths in .d.ts see [#503](https://github.com/dcodeIO/protobuf.js/issues/503)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/5785dee15d07fbcd14025a96686707173bd649a0) Restructured encoder / decoder to better support static code gen
- -# [6.0.1](https://github.com/dcodeIO/protobuf.js/releases/tag/6.0.1) - -## Fixed -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/799c1c1a84b255d1831cc84c3d24e61b36fa2530) Add support for long strings, fixes [#509](https://github.com/dcodeIO/protobuf.js/issues/509)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6e5fdb67cb34f90932e95a51370e1652acc55b4c) expose zero on LongBits, fixes [#508](https://github.com/dcodeIO/protobuf.js/issues/508)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/aa922c07490f185c5f97cf28ebbd65200fc5e377) Fixed issues with Root.fromJSON/#addJSON, search global for Long
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/51fe45656b530efbba6dad92f92db2300aa18761) Properly exclude browserify's annoying _process, again, fixes [#502](https://github.com/dcodeIO/protobuf.js/issues/502)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/3c16e462a28c36abbc8a176eab9ac2e10ba68597) Remember loaded files earlier to prevent race conditions, fixes [#501](https://github.com/dcodeIO/protobuf.js/issues/501)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4012a00a0578185d92fb6e7d3babd059fee6d6ab) Allow negative enum ids even if super inefficient (encodes as 10 bytes), fixes [#499](https://github.com/dcodeIO/protobuf.js/issues/499), fixes [#500](https://github.com/dcodeIO/protobuf.js/issues/500)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/96dd8f1729ad72e29dbe08dd01bc0ba08446dbe6) set resolvedResponseType on resolve(), fixes [#497](https://github.com/dcodeIO/protobuf.js/issues/497)
- -## New -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/d3ae961765e193ec11227d96d699463de346423f) Initial take on runtime services, see [#507](https://github.com/dcodeIO/protobuf.js/issues/507)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/90cd46b3576ddb2d0a6fc6ae55da512db4be3acc) Include dist/ in npm package for frontend use
- -## CLI -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/4affa1b7c0544229fb5f0d3948df6d832f6feadb) pbjs proto target field options, language-level compliance with jspb test.proto
- -## Docs -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/6a06e95222d741c47a51bcec85cd20317de7c0b0) always use Uint8Array in docs for tsd, see [#503](https://github.com/dcodeIO/protobuf.js/issues/503)
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/637698316e095fc35f62a304daaca22654974966) Notes on dist files
- -## Other -[:hash:](https://github.com/dcodeIO/protobuf.js/commit/29ff3f10e367d6a2ae15fb4254f4073541559c65) Update eslint env
-[:hash:](https://github.com/dcodeIO/protobuf.js/commit/943be1749c7d37945c11d1ebffbed9112c528d9f) Browser field in package.json isn't required
diff --git a/gateway/node_modules/@apollo/protobufjs/LICENSE b/gateway/node_modules/@apollo/protobufjs/LICENSE deleted file mode 100644 index 57b7e30..0000000 --- a/gateway/node_modules/@apollo/protobufjs/LICENSE +++ /dev/null @@ -1,39 +0,0 @@ -This license applies to all parts of protobuf.js except those files -either explicitly including or referencing a different license or -located in a directory containing a different LICENSE file. - ---- - -Copyright (c) 2016, Daniel Wirtz All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -* Neither the name of its author, nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- - -Code generated by the command line utilities is owned by the owner -of the input file used when generating it. This code is not -standalone and requires a support library to be linked with it. This -support library is itself covered by the above license. diff --git a/gateway/node_modules/@apollo/protobufjs/README.md b/gateway/node_modules/@apollo/protobufjs/README.md deleted file mode 100644 index 9a918dc..0000000 --- a/gateway/node_modules/@apollo/protobufjs/README.md +++ /dev/null @@ -1,909 +0,0 @@ -

protobuf.js

-

donate ❤

- -**Protocol Buffers** are a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more, originally designed at Google ([see](https://developers.google.com/protocol-buffers/)). - -**protobuf.js** is a pure JavaScript implementation with [TypeScript](https://www.typescriptlang.org) support for [node.js](https://nodejs.org) and the browser. It's easy to use, blazingly fast and works out of the box with [.proto](https://developers.google.com/protocol-buffers/docs/proto) files! - -Apollo GraphQL fork -------------------- -We have forked the [source repo](https://github.com/dcodeIO/protobuf.js) because we need to make changes to the package -for use in Apollo Server. - -Version 1.0.0 was forked from `master` which contained version 6.8.8 plus a few unreleased commits. [sha](https://github.com/protobufjs/protobuf.js/commit/4d490eb1bf71f5c5c4c9d253a2ffd36edea12386) - - -Contents --------- - -* [Installation](#installation)
- How to include protobuf.js in your project. - -* [Usage](#usage)
- A brief introduction to using the toolset. - - * [Valid Message](#valid-message) - * [Toolset](#toolset)
- -* [Examples](#examples)
- A few examples to get you started. - - * [Using .proto files](#using-proto-files) - * [Using JSON descriptors](#using-json-descriptors) - * [Using reflection only](#using-reflection-only) - * [Using custom classes](#using-custom-classes) - * [Using services](#using-services) - * [Usage with TypeScript](#usage-with-typescript)
- -* [Command line](#command-line)
- How to use the command line utility. - - * [pbjs for JavaScript](#pbjs-for-javascript) - * [pbts for TypeScript](#pbts-for-typescript) - * [Reflection vs. static code](#reflection-vs-static-code) - * [Command line API](#command-line-api)
- -* [Additional documentation](#additional-documentation)
- A list of available documentation resources. - -* [Performance](#performance)
- A few internals and a benchmark on performance. - -* [Compatibility](#compatibility)
- Notes on compatibility regarding browsers and optional libraries. - -* [Building](#building)
- How to build the library and its components yourself. - -Installation ---------------- - -### node.js - -``` -$> npm install @apollo/protobufjs [--save --save-prefix=~] -``` - -```js -var protobuf = require("@apollo/protobufjs"); -``` - -**Note** that this library's versioning scheme is not semver-compatible for historical reasons. For guaranteed backward compatibility, always depend on `~6.A.B` instead of `^6.A.B` (hence the `--save-prefix` above). - -### Browsers - -Development: - -``` - -``` - -Production: - -``` - -``` - -**Remember** to replace the version tag with the exact [release](https://github.com/dcodeIO/protobuf.js/tags) your project depends upon. - -The library supports CommonJS and AMD loaders and also exports globally as `protobuf`. - -### Distributions - -Where bundle size is a factor, there are additional stripped-down versions of the [full library][dist-full] (~19kb gzipped) available that exclude certain functionality: - -* When working with JSON descriptors (i.e. generated by [pbjs](#pbjs-for-javascript)) and/or reflection only, see the [light library][dist-light] (~16kb gzipped) that excludes the parser. CommonJS entry point is: - - ```js - var protobuf = require("@apollo/protobufjs/light"); - ``` - -* When working with statically generated code only, see the [minimal library][dist-minimal] (~6.5kb gzipped) that also excludes reflection. CommonJS entry point is: - - ```js - var protobuf = require("@apollo/protobufjs/minimal"); - ``` - -[dist-full]: https://github.com/dcodeIO/protobuf.js/tree/master/dist -[dist-light]: https://github.com/dcodeIO/protobuf.js/tree/master/dist/light -[dist-minimal]: https://github.com/dcodeIO/protobuf.js/tree/master/dist/minimal - -Usage ------ - -Because JavaScript is a dynamically typed language, protobuf.js introduces the concept of a **valid message** in order to provide the best possible [performance](#performance) (and, as a side product, proper typings): - -### Valid message - -> A valid message is an object (1) not missing any required fields and (2) exclusively composed of JS types understood by the wire format writer. - -There are two possible types of valid messages and the encoder is able to work with both of these for convenience: - -* **Message instances** (explicit instances of message classes with default values on their prototype) always (have to) satisfy the requirements of a valid message by design and -* **Plain JavaScript objects** that just so happen to be composed in a way satisfying the requirements of a valid message as well. - -In a nutshell, the wire format writer understands the following types: - -| Field type | Expected JS type (create, encode) | Conversion (fromObject) -|------------|-----------------------------------|------------------------ -| s-/u-/int32
s-/fixed32 | `number` (32 bit integer) | value | 0 if signed
`value >>> 0` if unsigned -| s-/u-/int64
s-/fixed64 | `Long`-like (optimal)
`number` (53 bit integer) | `Long.fromValue(value)` with long.js
`parseInt(value, 10)` otherwise -| float
double | `number` | `Number(value)` -| bool | `boolean` | `Boolean(value)` -| string | `string` | `String(value)` -| bytes | `Uint8Array` (optimal)
`Buffer` (optimal under node)
`Array.` (8 bit integers) | `base64.decode(value)` if a `string`
`Object` with non-zero `.length` is assumed to be buffer-like -| enum | `number` (32 bit integer) | Looks up the numeric id if a `string` -| message | Valid message | `Message.fromObject(value)` - -* Explicit `undefined` and `null` are considered as not set if the field is optional. -* Repeated fields are `Array.`. -* Map fields are `Object.` with the key being the string representation of the respective value or an 8 characters long binary hash string for `Long`-likes. -* Types marked as *optimal* provide the best performance because no conversion step (i.e. number to low and high bits or base64 string to buffer) is required. - -### Toolset - -With that in mind and again for performance reasons, each message class provides a distinct set of methods with each method doing just one thing. This avoids unnecessary assertions / redundant operations where performance is a concern but also forces a user to perform verification (of plain JavaScript objects that *might* just so happen to be a valid message) explicitly where necessary - for example when dealing with user input. - -**Note** that `Message` below refers to any message class. - -* **Message.verify**(message: `Object`): `null|string`
- verifies that a **plain JavaScript object** satisfies the requirements of a valid message and thus can be encoded without issues. Instead of throwing, it returns the error message as a string, if any. - - ```js - var payload = "invalid (not an object)"; - var err = AwesomeMessage.verify(payload); - if (err) - throw Error(err); - ``` - -* **Message.encode**(message: `Message|Object` [, writer: `Writer`]): `Writer`
- encodes a **message instance** or valid **plain JavaScript object**. This method does not implicitly verify the message and it's up to the user to make sure that the payload is a valid message. - - ```js - var buffer = AwesomeMessage.encode(message).finish(); - ``` - -* **Message.encodeDelimited**(message: `Message|Object` [, writer: `Writer`]): `Writer`
- works like `Message.encode` but additionally prepends the length of the message as a varint. - -* **Message.decode**(reader: `Reader|Uint8Array`): `Message`
- decodes a buffer to a **message instance**. If required fields are missing, it throws a `util.ProtocolError` with an `instance` property set to the so far decoded message. If the wire format is invalid, it throws an `Error`. - - ```js - try { - var decodedMessage = AwesomeMessage.decode(buffer); - } catch (e) { - if (e instanceof protobuf.util.ProtocolError) { - // e.instance holds the so far decoded message with missing required fields - } else { - // wire format is invalid - } - } - ``` - -* **Message.decodeDelimited**(reader: `Reader|Uint8Array`): `Message`
- works like `Message.decode` but additionally reads the length of the message prepended as a varint. - -* **Message.create**(properties: `Object`): `Message`
- creates a new **message instance** from a set of properties that satisfy the requirements of a valid message. Where applicable, it is recommended to prefer `Message.create` over `Message.fromObject` because it doesn't perform possibly redundant conversion. - - ```js - var message = AwesomeMessage.create({ awesomeField: "AwesomeString" }); - ``` - -* **Message.fromObject**(object: `Object`): `Message`
- converts any non-valid **plain JavaScript object** to a **message instance** using the conversion steps outlined within the table above. - - ```js - var message = AwesomeMessage.fromObject({ awesomeField: 42 }); - // converts awesomeField to a string - ``` - -* **Message.toObject**(message: `Message` [, options: `ConversionOptions`]): `Object`
- converts a **message instance** to an arbitrary **plain JavaScript object** for interoperability with other libraries or storage. The resulting plain JavaScript object *might* still satisfy the requirements of a valid message depending on the actual conversion options specified, but most of the time it does not. - - ```js - var object = AwesomeMessage.toObject(message, { - enums: String, // enums as string names - longs: String, // longs as strings (requires long.js) - bytes: String, // bytes as base64 encoded strings - defaults: true, // includes default values - arrays: true, // populates empty arrays (repeated fields) even if defaults=false - objects: true, // populates empty objects (map fields) even if defaults=false - oneofs: true // includes virtual oneof fields set to the present field's name - }); - ``` - -For reference, the following diagram aims to display relationships between the different methods and the concept of a valid message: - -

Toolset Diagram

- -> In other words: `verify` indicates that calling `create` or `encode` directly on the plain object will [result in a valid message respectively] succeed. `fromObject`, on the other hand, does conversion from a broader range of plain objects to create valid messages. ([ref](https://github.com/dcodeIO/protobuf.js/issues/748#issuecomment-291925749)) - -Examples --------- - -### Using .proto files - -It is possible to load existing .proto files using the full library, which parses and compiles the definitions to ready to use (reflection-based) message classes: - -```protobuf -// awesome.proto -package awesomepackage; -syntax = "proto3"; - -message AwesomeMessage { - string awesome_field = 1; // becomes awesomeField -} -``` - -```js -protobuf.load("awesome.proto", function(err, root) { - if (err) - throw err; - - // Obtain a message type - var AwesomeMessage = root.lookupType("awesomepackage.AwesomeMessage"); - - // Exemplary payload - var payload = { awesomeField: "AwesomeString" }; - - // Verify the payload if necessary (i.e. when possibly incomplete or invalid) - var errMsg = AwesomeMessage.verify(payload); - if (errMsg) - throw Error(errMsg); - - // Create a new message - var message = AwesomeMessage.create(payload); // or use .fromObject if conversion is necessary - - // Encode a message to an Uint8Array (browser) or Buffer (node) - var buffer = AwesomeMessage.encode(message).finish(); - // ... do something with buffer - - // Decode an Uint8Array (browser) or Buffer (node) to a message - var message = AwesomeMessage.decode(buffer); - // ... do something with message - - // If the application uses length-delimited buffers, there is also encodeDelimited and decodeDelimited. - - // Maybe convert the message back to a plain object - var object = AwesomeMessage.toObject(message, { - longs: String, - enums: String, - bytes: String, - // see ConversionOptions - }); -}); -``` - -Additionally, promise syntax can be used by omitting the callback, if preferred: - -```js -protobuf.load("awesome.proto") - .then(function(root) { - ... - }); -``` - -### Using JSON descriptors - -The library utilizes JSON descriptors that are equivalent to a .proto definition. For example, the following is identical to the .proto definition seen above: - -```json -// awesome.json -{ - "nested": { - "AwesomeMessage": { - "fields": { - "awesomeField": { - "type": "string", - "id": 1 - } - } - } - } -} -``` - -JSON descriptors closely resemble the internal reflection structure: - -| Type (T) | Extends | Type-specific properties -|--------------------|--------------------|------------------------- -| *ReflectionObject* | | options -| *Namespace* | *ReflectionObject* | nested -| Root | *Namespace* | **nested** -| Type | *Namespace* | **fields** -| Enum | *ReflectionObject* | **values** -| Field | *ReflectionObject* | rule, **type**, **id** -| MapField | Field | **keyType** -| OneOf | *ReflectionObject* | **oneof** (array of field names) -| Service | *Namespace* | **methods** -| Method | *ReflectionObject* | type, **requestType**, **responseType**, requestStream, responseStream - -* **Bold properties** are required. *Italic types* are abstract. -* `T.fromJSON(name, json)` creates the respective reflection object from a JSON descriptor -* `T#toJSON()` creates a JSON descriptor from the respective reflection object (its name is used as the key within the parent) - -Exclusively using JSON descriptors instead of .proto files enables the use of just the light library (the parser isn't required in this case). - -A JSON descriptor can either be loaded the usual way: - -```js -protobuf.load("awesome.json", function(err, root) { - if (err) throw err; - - // Continue at "Obtain a message type" above -}); -``` - -Or it can be loaded inline: - -```js -var jsonDescriptor = require("./awesome.json"); // exemplary for node - -var root = protobuf.Root.fromJSON(jsonDescriptor); - -// Continue at "Obtain a message type" above -``` - -### Using reflection only - -Both the full and the light library include full reflection support. One could, for example, define the .proto definitions seen in the examples above using just reflection: - -```js -... -var Root = protobuf.Root, - Type = protobuf.Type, - Field = protobuf.Field; - -var AwesomeMessage = new Type("AwesomeMessage").add(new Field("awesomeField", 1, "string")); - -var root = new Root().define("awesomepackage").add(AwesomeMessage); - -// Continue at "Create a new message" above -... -``` - -Detailed information on the reflection structure is available within the [API documentation](#additional-documentation). - -### Using custom classes - -Message classes can also be extended with custom functionality and it is also possible to register a custom constructor with a reflected message type: - -```js -... - -// Define a custom constructor -function AwesomeMessage(properties) { - // custom initialization code - ... -} - -// Register the custom constructor with its reflected type (*) -root.lookupType("awesomepackage.AwesomeMessage").ctor = AwesomeMessage; - -// Define custom functionality -AwesomeMessage.customStaticMethod = function() { ... }; -AwesomeMessage.prototype.customInstanceMethod = function() { ... }; - -// Continue at "Create a new message" above -``` - -(*) Besides referencing its reflected type through `AwesomeMessage.$type` and `AwesomeMesage#$type`, the respective custom class is automatically populated with: - -* `AwesomeMessage.create` -* `AwesomeMessage.encode` and `AwesomeMessage.encodeDelimited` -* `AwesomeMessage.decode` and `AwesomeMessage.decodeDelimited` -* `AwesomeMessage.verify` -* `AwesomeMessage.fromObject`, `AwesomeMessage.toObject` and `AwesomeMessage#toJSON` - -Afterwards, decoded messages of this type are `instanceof AwesomeMessage`. - -Alternatively, it is also possible to reuse and extend the internal constructor if custom initialization code is not required: - -```js -... - -// Reuse the internal constructor -var AwesomeMessage = root.lookupType("awesomepackage.AwesomeMessage").ctor; - -// Define custom functionality -AwesomeMessage.customStaticMethod = function() { ... }; -AwesomeMessage.prototype.customInstanceMethod = function() { ... }; - -// Continue at "Create a new message" above -``` - -### Using services - -The library also supports consuming services but it doesn't make any assumptions about the actual transport channel. Instead, a user must provide a suitable RPC implementation, which is an asynchronous function that takes the reflected service method, the binary request and a node-style callback as its parameters: - -```js -function rpcImpl(method, requestData, callback) { - // perform the request using an HTTP request or a WebSocket for example - var responseData = ...; - // and call the callback with the binary response afterwards: - callback(null, responseData); -} -``` - -Below is a working example with a typescript implementation using grpc npm package. -```ts -const grpc = require('grpc') - -const Client = grpc.makeGenericClientConstructor({}) -const client = new Client( - grpcServerUrl, - grpc.credentials.createInsecure() -) - -const rpcImpl = function(method, requestData, callback) { - client.makeUnaryRequest( - method.name, - arg => arg, - arg => arg, - requestData, - callback - ) -} -``` - -Example: - -```protobuf -// greeter.proto -syntax = "proto3"; - -service Greeter { - rpc SayHello (HelloRequest) returns (HelloReply) {} -} - -message HelloRequest { - string name = 1; -} - -message HelloReply { - string message = 1; -} -``` - -```js -... -var Greeter = root.lookup("Greeter"); -var greeter = Greeter.create(/* see above */ rpcImpl, /* request delimited? */ false, /* response delimited? */ false); - -greeter.sayHello({ name: 'you' }, function(err, response) { - console.log('Greeting:', response.message); -}); -``` - -Services also support promises: - -```js -greeter.sayHello({ name: 'you' }) - .then(function(response) { - console.log('Greeting:', response.message); - }); -``` - -There is also an [example for streaming RPC](https://github.com/dcodeIO/protobuf.js/blob/master/examples/streaming-rpc.js). - -Note that the service API is meant for clients. Implementing a server-side endpoint pretty much always requires transport channel (i.e. http, websocket, etc.) specific code with the only common denominator being that it decodes and encodes messages. - -### Usage with TypeScript - -The library ships with its own [type definitions](https://github.com/dcodeIO/protobuf.js/blob/master/index.d.ts) and modern editors like [Visual Studio Code](https://code.visualstudio.com/) will automatically detect and use them for code completion. - -The npm package depends on [@types/node](https://www.npmjs.com/package/@types/node) because of `Buffer` and [@types/long](https://www.npmjs.com/package/@types/long) because of `Long`. If you are not building for node and/or not using long.js, it should be safe to exclude them manually. - -#### Using the JS API - -The API shown above works pretty much the same with TypeScript. However, because everything is typed, accessing fields on instances of dynamically generated message classes requires either using bracket-notation (i.e. `message["awesomeField"]`) or explicit casts. Alternatively, it is possible to use a [typings file generated for its static counterpart](#pbts-for-typescript). - -```ts -import { load } from "@apollo/protobufjs"; // respectively "./node_modules/protobufjs" - -load("awesome.proto", function(err, root) { - if (err) - throw err; - - // example code - const AwesomeMessage = root.lookupType("awesomepackage.AwesomeMessage"); - - let message = AwesomeMessage.create({ awesomeField: "hello" }); - console.log(`message = ${JSON.stringify(message)}`); - - let buffer = AwesomeMessage.encode(message).finish(); - console.log(`buffer = ${Array.prototype.toString.call(buffer)}`); - - let decoded = AwesomeMessage.decode(buffer); - console.log(`decoded = ${JSON.stringify(decoded)}`); -}); -``` - -#### Using generated static code - -If you generated static code to `bundle.js` using the CLI and its type definitions to `bundle.d.ts`, then you can just do: - -```ts -import { AwesomeMessage } from "./bundle.js"; - -// example code -let message = AwesomeMessage.create({ awesomeField: "hello" }); -let buffer = AwesomeMessage.encode(message).finish(); -let decoded = AwesomeMessage.decode(buffer); -``` - -#### Using decorators - -The library also includes an early implementation of [decorators](https://www.typescriptlang.org/docs/handbook/decorators.html). - -**Note** that decorators are an experimental feature in TypeScript and that declaration order is important depending on the JS target. For example, `@Field.d(2, AwesomeArrayMessage)` requires that `AwesomeArrayMessage` has been defined earlier when targeting `ES5`. - -```ts -import { Message, Type, Field, OneOf } from "@apollo/protobufjs/light"; // respectively "./node_modules/protobufjs/light.js" - -export class AwesomeSubMessage extends Message { - - @Field.d(1, "string") - public awesomeString: string; - -} - -export enum AwesomeEnum { - ONE = 1, - TWO = 2 -} - -@Type.d("SuperAwesomeMessage") -export class AwesomeMessage extends Message { - - @Field.d(1, "string", "optional", "awesome default string") - public awesomeField: string; - - @Field.d(2, AwesomeSubMessage) - public awesomeSubMessage: AwesomeSubMessage; - - @Field.d(3, AwesomeEnum, "optional", AwesomeEnum.ONE) - public awesomeEnum: AwesomeEnum; - - @OneOf.d("awesomeSubMessage", "awesomeEnum") - public which: string; - -} - -// example code -let message = new AwesomeMessage({ awesomeField: "hello" }); -let buffer = AwesomeMessage.encode(message).finish(); -let decoded = AwesomeMessage.decode(buffer); -``` - -Supported decorators are: - -* **Type.d(typeName?: `string`)**   *(optional)*
- annotates a class as a protobuf message type. If `typeName` is not specified, the constructor's runtime function name is used for the reflected type. - -* **Field.d<T>(fieldId: `number`, fieldType: `string | Constructor`, fieldRule?: `"optional" | "required" | "repeated"`, defaultValue?: `T`)**
- annotates a property as a protobuf field with the specified id and protobuf type. - -* **MapField.d<T extends { [key: string]: any }>(fieldId: `number`, fieldKeyType: `string`, fieldValueType. `string | Constructor<{}>`)**
- annotates a property as a protobuf map field with the specified id, protobuf key and value type. - -* **OneOf.d<T extends string>(...fieldNames: `string[]`)**
- annotates a property as a protobuf oneof covering the specified fields. - -Other notes: - -* Decorated types reside in `protobuf.roots["decorated"]` using a flat structure, so no duplicate names. -* Enums are copied to a reflected enum with a generic name on decorator evaluation because referenced enum objects have no runtime name the decorator could use. -* Default values must be specified as arguments to the decorator instead of using a property initializer for proper prototype behavior. -* Property names on decorated classes must not be renamed on compile time (i.e. by a minifier) because decorators just receive the original field name as a string. - -**ProTip!** Not as pretty, but you can [use decorators in plain JavaScript](https://github.com/dcodeIO/protobuf.js/blob/master/examples/js-decorators.js) as well. - -Command line ------------- - -**Note** that moving the CLI to [its own package](./cli) is a work in progress. At the moment, it's still part of the main package. - -The command line interface (CLI) can be used to translate between file formats and to generate static code as well as TypeScript definitions. - -### pbjs for JavaScript - -``` -Translates between file formats and generates static code. - - -t, --target Specifies the target format. Also accepts a path to require a custom target. - - json JSON representation - json-module JSON representation as a module - proto2 Protocol Buffers, Version 2 - proto3 Protocol Buffers, Version 3 - static Static code without reflection (non-functional on its own) - static-module Static code without reflection as a module - - -p, --path Adds a directory to the include path. - - -o, --out Saves to a file instead of writing to stdout. - - --sparse Exports only those types referenced from a main file (experimental). - - Module targets only: - - -w, --wrap Specifies the wrapper to use. Also accepts a path to require a custom wrapper. - - default Default wrapper supporting both CommonJS and AMD - commonjs CommonJS wrapper - amd AMD wrapper - es6 ES6 wrapper (implies --es6) - closure A closure adding to protobuf.roots where protobuf is a global - - -r, --root Specifies an alternative protobuf.roots name. - - -l, --lint Linter configuration. Defaults to protobuf.js-compatible rules: - - eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins - - --es6 Enables ES6 syntax (const/let instead of var) - - Proto sources only: - - --keep-case Keeps field casing instead of converting to camel case. - - Static targets only: - - --no-create Does not generate create functions used for reflection compatibility. - --no-encode Does not generate encode functions. - --no-decode Does not generate decode functions. - --no-verify Does not generate verify functions. - --no-convert Does not generate convert functions like from/toObject - --no-delimited Does not generate delimited encode/decode functions. - --no-beautify Does not beautify generated code. - --no-comments Does not output any JSDoc comments. - - --force-long Enforces the use of 'Long' for s-/u-/int64 and s-/fixed64 fields. - --force-number Enforces the use of 'number' for s-/u-/int64 and s-/fixed64 fields. - --force-message Enforces the use of message instances instead of plain objects. - -usage: pbjs [options] file1.proto file2.json ... (or pipe) other | pbjs [options] - -``` - -For production environments it is recommended to bundle all your .proto files to a single .json file, which minimizes the number of network requests and avoids any parser overhead (hint: works with just the **light** library): - -``` -$> pbjs -t json file1.proto file2.proto > bundle.json -``` - -Now, either include this file in your final bundle: - -```js -var root = protobuf.Root.fromJSON(require("./bundle.json")); -``` - -or load it the usual way: - -```js -protobuf.load("bundle.json", function(err, root) { - ... -}); -``` - -Generated static code, on the other hand, works with just the **minimal** library. For example - -``` -$> pbjs -t static-module -w commonjs -o compiled.js file1.proto file2.proto -``` - -will generate static code for definitions within `file1.proto` and `file2.proto` to a CommonJS module `compiled.js`. - -**ProTip!** Documenting your .proto files with `/** ... */`-blocks or (trailing) `/// ...` lines translates to generated static code. - - -### pbts for TypeScript - -``` -Generates TypeScript definitions from annotated JavaScript files. - - -o, --out Saves to a file instead of writing to stdout. - - -g, --global Name of the global object in browser environments, if any. - - --no-comments Does not output any JSDoc comments. - - Internal flags: - - -n, --name Wraps everything in a module of the specified name. - - -m, --main Whether building the main library without any imports. - -usage: pbts [options] file1.js file2.js ... (or) other | pbts [options] - -``` - -Picking up on the example above, the following not only generates static code to a CommonJS module `compiled.js` but also its respective TypeScript definitions to `compiled.d.ts`: - -``` -$> pbjs -t static-module -w commonjs -o compiled.js file1.proto file2.proto -$> pbts -o compiled.d.ts compiled.js -``` - -Additionally, TypeScript definitions of static modules are compatible with their reflection-based counterparts (i.e. as exported by JSON modules), as long as the following conditions are met: - -1. Instead of using `new SomeMessage(...)`, always use `SomeMessage.create(...)` because reflection objects do not provide a constructor. -2. Types, services and enums must start with an uppercase letter to become available as properties of the reflected types as well (i.e. to be able to use `MyMessage.MyEnum` instead of `root.lookup("MyMessage.MyEnum")`). - -For example, the following generates a JSON module `bundle.js` and a `bundle.d.ts`, but no static code: - -``` -$> pbjs -t json-module -w commonjs -o bundle.js file1.proto file2.proto -$> pbjs -t static-module file1.proto file2.proto | pbts -o bundle.d.ts - -``` - -### Reflection vs. static code - -While using .proto files directly requires the full library respectively pure reflection/JSON the light library, pretty much all code but the relatively short descriptors is shared. - -Static code, on the other hand, requires just the minimal library, but generates additional source code without any reflection features. This also implies that there is a break-even point where statically generated code becomes larger than descriptor-based code once the amount of code generated exceeds the size of the full respectively light library. - -There is no significant difference performance-wise as the code generated statically is pretty much the same as generated at runtime and both are largely interchangeable as seen in the previous section. - -| Source | Library | Advantages | Tradeoffs -|--------|---------|------------|----------- -| .proto | full | Easily editable
Interoperability with other libraries
No compile step | Some parsing and possibly network overhead -| JSON | light | Easily editable
No parsing overhead
Single bundle (no network overhead) | protobuf.js specific
Has a compile step -| static | minimal | Works where `eval` access is restricted
Fully documented
Small footprint for small protos | Can be hard to edit
No reflection
Has a compile step - -### Command line API - -Both utilities can be used programmatically by providing command line arguments and a callback to their respective `main` functions: - -```js -var pbjs = require("@apollo/protobufjs/cli/pbjs"); // or require("@apollo/protobufjs/cli").pbjs / .pbts - -pbjs.main([ "--target", "json-module", "path/to/myproto.proto" ], function(err, output) { - if (err) - throw err; - // do something with output -}); -``` - -Additional documentation ------------------------- - -#### Protocol Buffers -* [Google's Developer Guide](https://developers.google.com/protocol-buffers/docs/overview) - -#### protobuf.js -* [API Documentation](https://protobufjs.github.io/protobuf.js) -* [CHANGELOG](https://github.com/dcodeIO/protobuf.js/blob/master/CHANGELOG.md) -* [Frequently asked questions](https://github.com/dcodeIO/protobuf.js/wiki) on our wiki - -#### Community -* [Questions and answers](http://stackoverflow.com/search?tab=newest&q=protobuf.js) on StackOverflow - -Performance ------------ -The package includes a benchmark that compares protobuf.js performance to native JSON (as far as this is possible) and [Google's JS implementation](https://github.com/google/protobuf/tree/master/js). On an i7-2600K running node 6.9.1 it yields: - -``` -benchmarking encoding performance ... - -protobuf.js (reflect) x 541,707 ops/sec ±1.13% (87 runs sampled) -protobuf.js (static) x 548,134 ops/sec ±1.38% (89 runs sampled) -JSON (string) x 318,076 ops/sec ±0.63% (93 runs sampled) -JSON (buffer) x 179,165 ops/sec ±2.26% (91 runs sampled) -google-protobuf x 74,406 ops/sec ±0.85% (86 runs sampled) - - protobuf.js (static) was fastest - protobuf.js (reflect) was 0.9% ops/sec slower (factor 1.0) - JSON (string) was 41.5% ops/sec slower (factor 1.7) - JSON (buffer) was 67.6% ops/sec slower (factor 3.1) - google-protobuf was 86.4% ops/sec slower (factor 7.3) - -benchmarking decoding performance ... - -protobuf.js (reflect) x 1,383,981 ops/sec ±0.88% (93 runs sampled) -protobuf.js (static) x 1,378,925 ops/sec ±0.81% (93 runs sampled) -JSON (string) x 302,444 ops/sec ±0.81% (93 runs sampled) -JSON (buffer) x 264,882 ops/sec ±0.81% (93 runs sampled) -google-protobuf x 179,180 ops/sec ±0.64% (94 runs sampled) - - protobuf.js (reflect) was fastest - protobuf.js (static) was 0.3% ops/sec slower (factor 1.0) - JSON (string) was 78.1% ops/sec slower (factor 4.6) - JSON (buffer) was 80.8% ops/sec slower (factor 5.2) - google-protobuf was 87.0% ops/sec slower (factor 7.7) - -benchmarking combined performance ... - -protobuf.js (reflect) x 275,900 ops/sec ±0.78% (90 runs sampled) -protobuf.js (static) x 290,096 ops/sec ±0.96% (90 runs sampled) -JSON (string) x 129,381 ops/sec ±0.77% (90 runs sampled) -JSON (buffer) x 91,051 ops/sec ±0.94% (90 runs sampled) -google-protobuf x 42,050 ops/sec ±0.85% (91 runs sampled) - - protobuf.js (static) was fastest - protobuf.js (reflect) was 4.7% ops/sec slower (factor 1.0) - JSON (string) was 55.3% ops/sec slower (factor 2.2) - JSON (buffer) was 68.6% ops/sec slower (factor 3.2) - google-protobuf was 85.5% ops/sec slower (factor 6.9) -``` - -These results are achieved by - -* generating type-specific encoders, decoders, verifiers and converters at runtime -* configuring the reader/writer interface according to the environment -* using node-specific functionality where beneficial and, of course -* avoiding unnecessary operations through splitting up [the toolset](#toolset). - -You can also run [the benchmark](https://github.com/dcodeIO/protobuf.js/blob/master/bench/index.js) ... - -``` -$> npm run bench -``` - -and [the profiler](https://github.com/dcodeIO/protobuf.js/blob/master/bench/prof.js) yourself (the latter requires a recent version of node): - -``` -$> npm run prof [iterations=10000000] -``` - -Note that as of this writing, the benchmark suite performs significantly slower on node 7.2.0 compared to 6.9.1 because moths. - -Compatibility -------------- - -* Works in all modern and not-so-modern browsers except IE8. -* Because the internals of this package do not rely on `google/protobuf/descriptor.proto`, options are parsed and presented literally. -* If typed arrays are not supported by the environment, plain arrays will be used instead. -* Support for pre-ES5 environments (except IE8) can be achieved by [using a polyfill](https://github.com/dcodeIO/protobuf.js/blob/master/scripts/polyfill.js). -* Support for [Content Security Policy](https://w3c.github.io/webappsec-csp/)-restricted environments (like Chrome extensions without [unsafe-eval](https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-eval)) can be achieved by generating and using static code instead. -* If a proper way to work with 64 bit values (uint64, int64 etc.) is required, just install [long.js](https://github.com/dcodeIO/long.js) alongside this library. All 64 bit numbers will then be returned as a `Long` instance instead of a possibly unsafe JavaScript number ([see](https://github.com/dcodeIO/long.js)). -* For descriptor.proto interoperability, see [ext/descriptor](https://github.com/dcodeIO/protobuf.js/tree/master/ext/descriptor) - -Building --------- - -To build the library or its components yourself, clone it from GitHub and install the development dependencies: - -``` -$> git clone https://github.com/dcodeIO/protobuf.js.git -$> cd protobuf.js -$> npm install -``` - -Building the respective development and production versions with their respective source maps to `dist/`: - -``` -$> npm run build -``` - -Building the documentation to `docs/`: - -``` -$> npm run docs -``` - -Building the TypeScript definition to `index.d.ts`: - -``` -$> npm run types -``` - -### Browserify integration - -By default, protobuf.js integrates into any browserify build-process without requiring any optional modules. Hence: - -* If int64 support is required, explicitly require the `long` module somewhere in your project as it will be excluded otherwise. This assumes that a global `require` function is present that protobuf.js can call to obtain the long module. - - If there is no global `require` function present after bundling, it's also possible to assign the long module programmatically: - - ```js - var Long = ...; - - protobuf.util.Long = Long; - protobuf.configure(); - ``` - -* If you have any special requirements, there is [the bundler](https://github.com/dcodeIO/protobuf.js/blob/master/scripts/bundle.js) for reference. - -**License:** [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause) diff --git a/gateway/node_modules/@apollo/protobufjs/bin/pbjs b/gateway/node_modules/@apollo/protobufjs/bin/pbjs deleted file mode 100755 index 6a5d49a..0000000 --- a/gateway/node_modules/@apollo/protobufjs/bin/pbjs +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env node -var path = require("path"), - cli = require(path.join(__dirname, "..", "cli", "pbjs.js")); -var ret = cli.main(process.argv.slice(2)); -if (typeof ret === 'number') - process.exit(ret); diff --git a/gateway/node_modules/@apollo/protobufjs/bin/pbts b/gateway/node_modules/@apollo/protobufjs/bin/pbts deleted file mode 100755 index cb1cdaf..0000000 --- a/gateway/node_modules/@apollo/protobufjs/bin/pbts +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env node -var path = require("path"), - cli = require(path.join(__dirname, "..", "cli", "pbts.js")); -var ret = cli.main(process.argv.slice(2)); -if (typeof ret === 'number') - process.exit(ret); diff --git a/gateway/node_modules/@apollo/protobufjs/cli/LICENSE b/gateway/node_modules/@apollo/protobufjs/cli/LICENSE deleted file mode 100644 index e5f7a5c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/LICENSE +++ /dev/null @@ -1,33 +0,0 @@ -Copyright (c) 2016, Daniel Wirtz All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -* Neither the name of its author, nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- - -Code generated by the command line utilities is owned by the owner -of the input file used when generating it. This code is not -standalone and requires a support library to be linked with it. This -support library is itself covered by the above license. diff --git a/gateway/node_modules/@apollo/protobufjs/cli/README.md b/gateway/node_modules/@apollo/protobufjs/cli/README.md deleted file mode 100644 index 1eb4c86..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/README.md +++ /dev/null @@ -1,11 +0,0 @@ -protobufjs-cli -============== -[![npm](https://img.shields.io/npm/v/protobufjscli.svg)](https://www.npmjs.com/package/protobufjs-cli) - -Command line interface (CLI) for [protobuf.js](https://github.com/dcodeIO/protobuf.js). Translates between file formats and generates static code as well as TypeScript definitions. - -* [CLI Documentation](https://github.com/dcodeIO/protobuf.js#command-line) - -**Note** that moving the CLI to its own package is a work in progress. At the moment, it's still part of the main package. - -**License:** [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause) diff --git a/gateway/node_modules/@apollo/protobufjs/cli/bin/pbjs b/gateway/node_modules/@apollo/protobufjs/cli/bin/pbjs deleted file mode 100644 index 9bfedb3..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/bin/pbjs +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env node -var path = require("path"), - cli = require(path.join(__dirname, "..", "pbjs.js")); -var ret = cli.main(process.argv.slice(2)); -if (typeof ret === 'number') - process.exit(ret); diff --git a/gateway/node_modules/@apollo/protobufjs/cli/bin/pbts b/gateway/node_modules/@apollo/protobufjs/cli/bin/pbts deleted file mode 100644 index 48d392c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/bin/pbts +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env node -var path = require("path"), - cli = require(path.join(__dirname, "..", "pbts.js")); -var ret = cli.main(process.argv.slice(2)); -if (typeof ret === 'number') - process.exit(ret); diff --git a/gateway/node_modules/@apollo/protobufjs/cli/index.d.ts b/gateway/node_modules/@apollo/protobufjs/cli/index.d.ts deleted file mode 100644 index 09c2026..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as pbjs from "./pbjs.js"; -import * as pbts from "./pbts.js"; -export { pbjs, pbts }; diff --git a/gateway/node_modules/@apollo/protobufjs/cli/index.js b/gateway/node_modules/@apollo/protobufjs/cli/index.js deleted file mode 100644 index c565aa6..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/index.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -exports.pbjs = require("./pbjs"); -exports.pbts = require("./pbts"); diff --git a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc.json b/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc.json deleted file mode 100644 index b5fe1d9..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "tags": { - "allowUnknownTags": false - }, - "plugins": [ - "./tsd-jsdoc/plugin" - ], - "opts": { - "encoding" : "utf8", - "recurse" : true, - "lenient" : true, - "template" : "./tsd-jsdoc", - - "private" : false, - "comments" : true, - "destination" : false - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/LICENSE b/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/LICENSE deleted file mode 100644 index e5aebc9..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2016 Chad Engler - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/README.md b/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/README.md deleted file mode 100644 index beed748..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/README.md +++ /dev/null @@ -1,23 +0,0 @@ -protobuf.js fork of tsd-jsdoc -============================= - -This is a modified version of [tsd-jsdoc](https://github.com/englercj/tsd-jsdoc) v1.0.1 for use with protobuf.js, parked here so we can process issues and pull requests. The ultimate goal is to switch back to the a recent version of tsd-jsdoc once it meets our needs. - -Options -------- - -* **module: `string`**
- Wraps everything in a module of the specified name. - -* **private: `boolean`**
- Includes private members when set to `true`. - -* **comments: `boolean`**
- Skips comments when explicitly set to `false`. - -* **destination: `string|boolean`**
- Saves to the specified destination file or to console when set to `false`. - -Setting options on the command line ------------------------------------ -Providing `-q, --query ` on the command line will set respectively override existing options. Example: `-q module=protobufjs` diff --git a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/plugin.js b/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/plugin.js deleted file mode 100644 index 1bf4f42..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/plugin.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -exports.defineTags = function(dictionary) { - - dictionary.defineTag("template", { - mustHaveValue: true, - canHaveType: false, - canHaveName: false, - onTagged: function(doclet, tag) { - (doclet.templates || (doclet.templates = [])).push(tag.text); - } - }); - - dictionary.defineTag("tstype", { - mustHaveValue: true, - canHaveType: false, - canHaveName: false, - onTagged: function(doclet, tag) { - doclet.tsType = tag.text; - } - }); -}; diff --git a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/publish.js b/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/publish.js deleted file mode 100644 index 2dc6f6a..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/lib/tsd-jsdoc/publish.js +++ /dev/null @@ -1,693 +0,0 @@ -"use strict"; - -var fs = require("fs"); - -// output stream -var out = null; - -// documentation data -var data = null; - -// already handled objects, by name -var seen = {}; - -// indentation level -var indent = 0; - -// whether indent has been written for the current line yet -var indentWritten = false; - -// provided options -var options = {}; - -// queued interfaces -var queuedInterfaces = []; - -// whether writing the first line -var firstLine = true; - -// JSDoc hook -exports.publish = function publish(taffy, opts) { - options = opts || {}; - - // query overrides options - if (options.query) - Object.keys(options.query).forEach(function(key) { - if (key !== "query") - switch (options[key] = options.query[key]) { - case "true": - options[key] = true; - break; - case "false": - options[key] = false; - break; - case "null": - options[key] = null; - break; - } - }); - - // remove undocumented - taffy({ undocumented: true }).remove(); - taffy({ ignore: true }).remove(); - taffy({ inherited: true }).remove(); - - // remove private - if (!options.private) - taffy({ access: "private" }).remove(); - - // setup output - out = options.destination - ? fs.createWriteStream(options.destination) - : process.stdout; - - try { - // setup environment - data = taffy().get(); - indent = 0; - indentWritten = false; - firstLine = true; - - // wrap everything in a module if configured - if (options.module) { - writeln("export = ", options.module, ";"); - writeln(); - writeln("declare namespace ", options.module, " {"); - writeln(); - ++indent; - } - - // handle all - getChildrenOf(undefined).forEach(function(child) { - handleElement(child, null); - }); - - // process queued - while (queuedInterfaces.length) { - var element = queuedInterfaces.shift(); - begin(element); - writeInterface(element); - writeln(";"); - } - - // end wrap - if (options.module) { - --indent; - writeln("}"); - } - - // close file output - if (out !== process.stdout) - out.end(); - - } finally { - // gc environment objects - out = data = null; - seen = options = {}; - queuedInterfaces = []; - } -}; - -// -// Utility -// - -// writes one or multiple strings -function write() { - var s = Array.prototype.slice.call(arguments).join(""); - if (!indentWritten) { - for (var i = 0; i < indent; ++i) - s = " " + s; - indentWritten = true; - } - out.write(s); - firstLine = false; -} - -// writes zero or multiple strings, followed by a new line -function writeln() { - var s = Array.prototype.slice.call(arguments).join(""); - if (s.length) - write(s, "\n"); - else if (!firstLine) - out.write("\n"); - indentWritten = false; -} - -var keepTags = [ - "param", - "returns", - "throws", - "see" -]; - -// parses a comment into text and tags -function parseComment(comment) { - var lines = comment.replace(/^ *\/\*\* *|^ *\*\/| *\*\/ *$|^ *\* */mg, "").trim().split(/\r?\n|\r/g); // property.description has just "\r" ?! - var desc; - var text = []; - var tags = null; - for (var i = 0; i < lines.length; ++i) { - var match = /^@(\w+)\b/.exec(lines[i]); - if (match) { - if (!tags) { - tags = []; - desc = text; - } - text = []; - tags.push({ name: match[1], text: text }); - lines[i] = lines[i].substring(match[1].length + 1).trim(); - } - if (lines[i].length || text.length) - text.push(lines[i]); - } - return { - text: desc || text, - tags: tags || [] - }; -} - -// writes a comment -function writeComment(comment, otherwiseNewline) { - if (!comment || options.comments === false) { - if (otherwiseNewline) - writeln(); - return; - } - if (typeof comment !== "object") - comment = parseComment(comment); - comment.tags = comment.tags.filter(function(tag) { - return keepTags.indexOf(tag.name) > -1 && (tag.name !== "returns" || tag.text[0] !== "{undefined}"); - }); - writeln(); - if (!comment.tags.length && comment.text.length < 2) { - writeln("/** " + comment.text[0] + " */"); - return; - } - writeln("/**"); - comment.text.forEach(function(line) { - if (line.length) - writeln(" * ", line); - else - writeln(" *"); - }); - comment.tags.forEach(function(tag) { - var started = false; - if (tag.text.length) { - tag.text.forEach(function(line, i) { - if (i > 0) - write(" * "); - else if (tag.name !== "throws") - line = line.replace(/^\{[^\s]*} ?/, ""); - if (!line.length) - return; - if (!started) { - write(" * @", tag.name, " "); - started = true; - } - writeln(line); - }); - } - }); - writeln(" */"); -} - -// recursively replaces all occurencies of re's match -function replaceRecursive(name, re, fn) { - var found; - - function replacer() { - found = true; - return fn.apply(null, arguments); - } - - do { - found = false; - name = name.replace(re, replacer); - } while (found); - return name; -} - -// tests if an element is considered to be a class or class-like -function isClassLike(element) { - return isClass(element) || isInterface(element); -} - -// tests if an element is considered to be a class -function isClass(element) { - return element && element.kind === "class"; -} - -// tests if an element is considered to be an interface -function isInterface(element) { - return element && (element.kind === "interface" || element.kind === "mixin"); -} - -// tests if an element is considered to be a namespace -function isNamespace(element) { - return element && (element.kind === "namespace" || element.kind === "module"); -} - -// gets all children of the specified parent -function getChildrenOf(parent) { - var memberof = parent ? parent.longname : undefined; - return data.filter(function(element) { - return element.memberof === memberof; - }); -} - -// gets the literal type of an element -function getTypeOf(element) { - if (element.tsType) - return element.tsType.replace(/\r?\n|\r/g, "\n"); - var name = "any"; - var type = element.type; - if (type && type.names && type.names.length) { - if (type.names.length === 1) - name = element.type.names[0].trim(); - else - name = "(" + element.type.names.join("|") + ")"; - } else - return name; - - // Replace catchalls with any - name = name.replace(/\*|\bmixed\b/g, "any"); - - // Ensure upper case Object for map expressions below - name = name.replace(/\bobject\b/g, "Object"); - - // Correct Something. to Something - name = replaceRecursive(name, /\b(?!Object|Array)([\w$]+)\.<([^>]*)>/gi, function($0, $1, $2) { - return $1 + "<" + $2 + ">"; - }); - - // Replace Array. with string[] - name = replaceRecursive(name, /\bArray\.?<([^>]*)>/gi, function($0, $1) { - return $1 + "[]"; - }); - - // Replace Object. with { [k: string]: number | undefined } - name = replaceRecursive(name, /\bObject\.?<([^,]*), *([^>]*)>/gi, function($0, $1, $2) { - return "{ [k: " + $1 + "]: " + $2 + " | undefined }"; - }); - - // Replace functions (there are no signatures) with Function - name = name.replace(/\bfunction(?:\(\))?\b/g, "Function"); - - // Convert plain Object back to just object - name = name.replace(/\b(Object\b(?!\.))/g, function($0, $1) { - return $1.toLowerCase(); - }); - - return name; -} - -// begins writing the definition of the specified element -function begin(element, is_interface) { - if (!seen[element.longname]) { - if (isClass(element)) { - var comment = parseComment(element.comment); - var classdesc = comment.tags.find(function(tag) { return tag.name === "classdesc"; }); - if (classdesc) { - comment.text = classdesc.text; - comment.tags = []; - } - writeComment(comment, true); - } else - writeComment(element.comment, is_interface || isClassLike(element) || isNamespace(element) || element.isEnum || element.scope === "global"); - seen[element.longname] = element; - } else - writeln(); - if (element.scope !== "global" || options.module) - return; - write("export "); -} - -// writes the function signature describing element -function writeFunctionSignature(element, isConstructor, isTypeDef) { - write("("); - - var params = {}; - - // this type - if (element.this) - params["this"] = { - type: element.this.replace(/^{|}$/g, ""), - optional: false - }; - - // parameter types - if (element.params) - element.params.forEach(function(param) { - var path = param.name.split(/\./g); - if (path.length === 1) - params[param.name] = { - type: getTypeOf(param), - variable: param.variable === true, - optional: param.optional === true, - defaultValue: param.defaultvalue // Not used yet (TODO) - }; - else // Property syntax (TODO) - params[path[0]].type = "{ [k: string]: any }"; - }); - - var paramNames = Object.keys(params); - paramNames.forEach(function(name, i) { - var param = params[name]; - var type = param.type; - if (param.variable) { - name = "..." + name; - type = param.type.charAt(0) === "(" ? "any[]" : param.type + "[]"; - } - write(name, !param.variable && param.optional ? "?: " : ": ", type); - if (i < paramNames.length - 1) - write(", "); - }); - - write(")"); - - // return type - if (!isConstructor) { - write(isTypeDef ? " => " : ": "); - var typeName; - if (element.returns && element.returns.length && (typeName = getTypeOf(element.returns[0])) !== "undefined") - write(typeName); - else - write("void"); - } -} - -// writes (a typedef as) an interface -function writeInterface(element) { - write("interface ", element.name); - writeInterfaceBody(element); - writeln(); -} - -function writeInterfaceBody(element) { - writeln("{"); - ++indent; - if (element.tsType) - writeln(element.tsType.replace(/\r?\n|\r/g, "\n")); - else if (element.properties && element.properties.length) - element.properties.forEach(writeProperty); - --indent; - write("}"); -} - -function writeProperty(property, declare) { - writeComment(property.description); - if (declare) - write("let "); - write(property.name); - if (property.optional) - write("?"); - writeln(": ", getTypeOf(property), ";"); -} - -// -// Handlers -// - -// handles a single element of any understood type -function handleElement(element, parent) { - if (element.scope === "inner") - return false; - - if (element.optional !== true && element.type && element.type.names && element.type.names.length) { - for (var i = 0; i < element.type.names.length; i++) { - if (element.type.names[i].toLowerCase() === "undefined") { - // This element is actually optional. Set optional to true and - // remove the 'undefined' type - element.optional = true; - element.type.names.splice(i, 1); - i--; - } - } - } - - if (seen[element.longname]) - return true; - if (isClassLike(element)) - handleClass(element, parent); - else switch (element.kind) { - case "module": - case "namespace": - handleNamespace(element, parent); - break; - case "constant": - case "member": - handleMember(element, parent); - break; - case "function": - handleFunction(element, parent); - break; - case "typedef": - handleTypeDef(element, parent); - break; - case "package": - break; - } - seen[element.longname] = element; - return true; -} - -// handles (just) a namespace -function handleNamespace(element/*, parent*/) { - var children = getChildrenOf(element); - if (!children.length) - return; - var first = true; - if (element.properties) - element.properties.forEach(function(property) { - if (!/^[$\w]+$/.test(property.name)) // incompatible in namespace - return; - if (first) { - begin(element); - writeln("namespace ", element.name, " {"); - ++indent; - first = false; - } - writeProperty(property, true); - }); - children.forEach(function(child) { - if (child.scope === "inner" || seen[child.longname]) - return; - if (first) { - begin(element); - writeln("namespace ", element.name, " {"); - ++indent; - first = false; - } - handleElement(child, element); - }); - if (!first) { - --indent; - writeln("}"); - } -} - -// a filter function to remove any module references -function notAModuleReference(ref) { - return ref.indexOf("module:") === -1; -} - -// handles a class or class-like -function handleClass(element, parent) { - var is_interface = isInterface(element); - begin(element, is_interface); - if (is_interface) - write("interface "); - else { - if (element.virtual) - write("abstract "); - write("class "); - } - write(element.name); - if (element.templates && element.templates.length) - write("<", element.templates.join(", "), ">"); - write(" "); - - // extended classes - if (element.augments) { - var augments = element.augments.filter(notAModuleReference); - if (augments.length) - write("extends ", augments[0], " "); - } - - // implemented interfaces - var impls = []; - if (element.implements) - Array.prototype.push.apply(impls, element.implements); - if (element.mixes) - Array.prototype.push.apply(impls, element.mixes); - impls = impls.filter(notAModuleReference); - if (impls.length) - write("implements ", impls.join(", "), " "); - - writeln("{"); - ++indent; - - if (element.tsType) - writeln(element.tsType.replace(/\r?\n|\r/g, "\n")); - - // constructor - if (!is_interface && !element.virtual) - handleFunction(element, parent, true); - - // properties - if (is_interface && element.properties) - element.properties.forEach(function(property) { - writeProperty(property); - }); - - // class-compatible members - var incompatible = []; - getChildrenOf(element).forEach(function(child) { - if (isClassLike(child) || child.kind === "module" || child.kind === "typedef" || child.isEnum) { - incompatible.push(child); - return; - } - handleElement(child, element); - }); - - --indent; - writeln("}"); - - // class-incompatible members - if (incompatible.length) { - writeln(); - if (element.scope === "global" && !options.module) - write("export "); - writeln("namespace ", element.name, " {"); - ++indent; - incompatible.forEach(function(child) { - handleElement(child, element); - }); - --indent; - writeln("}"); - } -} - -// handles a namespace or class member -function handleMember(element, parent) { - begin(element); - - if (element.isEnum) { - var stringEnum = false; - element.properties.forEach(function(property) { - if (isNaN(property.defaultvalue)) { - stringEnum = true; - } - }); - if (stringEnum) { - writeln("type ", element.name, " ="); - ++indent; - element.properties.forEach(function(property, i) { - write(i === 0 ? "" : "| ", JSON.stringify(property.defaultvalue)); - }); - --indent; - writeln(";"); - } else { - writeln("enum ", element.name, " {"); - ++indent; - element.properties.forEach(function(property, i) { - write(property.name); - if (property.defaultvalue !== undefined) - write(" = ", JSON.stringify(property.defaultvalue)); - if (i < element.properties.length - 1) - writeln(","); - else - writeln(); - }); - --indent; - writeln("}"); - } - - } else { - - var inClass = isClassLike(parent); - if (inClass) { - write(element.access || "public", " "); - if (element.scope === "static") - write("static "); - if (element.readonly) - write("readonly "); - } else - write(element.kind === "constant" ? "const " : "let "); - - write(element.name); - if (element.optional) - write("?"); - write(": "); - - if (element.type && element.type.names && /^Object\b/i.test(element.type.names[0]) && element.properties) { - writeln("{"); - ++indent; - element.properties.forEach(function(property, i) { - writeln(JSON.stringify(property.name), ": ", getTypeOf(property), i < element.properties.length - 1 ? "," : ""); - }); - --indent; - writeln("};"); - } else - writeln(getTypeOf(element), ";"); - } -} - -// handles a function or method -function handleFunction(element, parent, isConstructor) { - var insideClass = true; - if (isConstructor) { - writeComment(element.comment); - write("constructor"); - } else { - begin(element); - insideClass = isClassLike(parent); - if (insideClass) { - write(element.access || "public", " "); - if (element.scope === "static") - write("static "); - } else - write("function "); - write(element.name); - if (element.templates && element.templates.length) - write("<", element.templates.join(", "), ">"); - } - writeFunctionSignature(element, isConstructor, false); - writeln(";"); - if (!insideClass) - handleNamespace(element); -} - -// handles a type definition (not a real type) -function handleTypeDef(element, parent) { - if (isInterface(element)) { - if (isClassLike(parent)) - queuedInterfaces.push(element); - else { - begin(element); - writeInterface(element); - } - } else { - writeComment(element.comment, true); - write("type ", element.name); - if (element.templates && element.templates.length) - write("<", element.templates.join(", "), ">"); - write(" = "); - if (element.tsType) - write(element.tsType.replace(/\r?\n|\r/g, "\n")); - else { - var type = getTypeOf(element); - if (element.type && element.type.names.length === 1 && element.type.names[0] === "function") - writeFunctionSignature(element, false, true); - else if (type === "object") { - if (element.properties && element.properties.length) - writeInterfaceBody(element); - else - write("{}"); - } else - write(type); - } - writeln(";"); - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/package-lock.json b/gateway/node_modules/@apollo/protobufjs/cli/package-lock.json deleted file mode 100644 index 5615138..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/package-lock.json +++ /dev/null @@ -1,183 +0,0 @@ -{ - "version": "6.7.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/parser": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz", - "integrity": "sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==" - }, - "catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", - "requires": { - "lodash": "^4.17.14" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "js2xmlparser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.0.tgz", - "integrity": "sha512-WuNgdZOXVmBk5kUPMcTcVUpbGRzLfNkv7+7APq7WiDihpXVKrgxo6wwRpRl9OQeEBgKCVk9mR7RbzrnNWC8oBw==", - "requires": { - "xmlcreate": "^2.0.0" - } - }, - "jsdoc": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.3.tgz", - "integrity": "sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A==", - "requires": { - "@babel/parser": "^7.4.4", - "bluebird": "^3.5.4", - "catharsis": "^0.8.11", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.0", - "klaw": "^3.0.0", - "markdown-it": "^8.4.2", - "markdown-it-anchor": "^5.0.2", - "marked": "^0.7.0", - "mkdirp": "^0.5.1", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.0.1", - "taffydb": "2.6.2", - "underscore": "~1.9.1" - } - }, - "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdown-it-anchor": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.5.tgz", - "integrity": "sha512-xLIjLQmtym3QpoY9llBgApknl7pxAcN3WDRc2d3rwpl+/YvDZHPmKscGs+L6E05xf2KrCXPBvosWt7MZukwSpQ==" - }, - "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "requires": { - "lodash": "^4.17.14" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==" - }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" - }, - "xmlcreate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.1.tgz", - "integrity": "sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA==" - } - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/package.json b/gateway/node_modules/@apollo/protobufjs/cli/package.json deleted file mode 100644 index 8bdebc2..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": "6.7.0", - "dependencies": { - "jsdoc": "^3.6.3", - "minimist": "^1.2.0" - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/package.standalone.json b/gateway/node_modules/@apollo/protobufjs/cli/package.standalone.json deleted file mode 100644 index 4266b6d..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/package.standalone.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "protobufjs-cli", - "description": "Translates between file formats and generates static code as well as TypeScript definitions.", - "version": "6.7.0", - "author": "Daniel Wirtz ", - "repository": { - "type": "git", - "url": "https://github.com/dcodeIO/protobuf.js.git" - }, - "license": "BSD-3-Clause", - "main": "index.js", - "types": "index.d.ts", - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - }, - "peerDependencies": { - "@apollo/protobufjs": "~1.0.5" - }, - "dependencies": { - "chalk": "^1.1.3", - "escodegen": "^1.8.1", - "espree": "^3.1.3", - "estraverse": "^4.2.0", - "glob": "^7.1.1", - "jsdoc": "^3.4.2", - "minimist": "^1.2.0", - "semver": "^5.3.0", - "tmp": "0.0.31", - "uglify-js": "^2.8.15" - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/pbjs.d.ts b/gateway/node_modules/@apollo/protobufjs/cli/pbjs.d.ts deleted file mode 100644 index ead1f3c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/pbjs.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -type pbjsCallback = (err: Error|null, output?: string) => void; - -/** - * Runs pbjs programmatically. - * @param {string[]} args Command line arguments - * @param {function(?Error, string=)} [callback] Optional completion callback - * @returns {number|undefined} Exit code, if known - */ -export function main(args: string[], callback?: pbjsCallback): number|undefined; diff --git a/gateway/node_modules/@apollo/protobufjs/cli/pbjs.js b/gateway/node_modules/@apollo/protobufjs/cli/pbjs.js deleted file mode 100644 index ede8cb0..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/pbjs.js +++ /dev/null @@ -1,329 +0,0 @@ -"use strict"; -var path = require("path"), - fs = require("fs"), - pkg = require("./package.json"), - util = require("./util"); - -util.setup(); - -var protobuf = require(util.pathToProtobufJs), - minimist = require("minimist"), - chalk = require("chalk"), - glob = require("glob"); - -var targets = util.requireAll("./targets"); - -/** - * Runs pbjs programmatically. - * @param {string[]} args Command line arguments - * @param {function(?Error, string=)} [callback] Optional completion callback - * @returns {number|undefined} Exit code, if known - */ -exports.main = function main(args, callback) { - var lintDefault = "eslint-disable " + [ - "block-scoped-var", - "id-length", - "no-control-regex", - "no-magic-numbers", - "no-prototype-builtins", - "no-redeclare", - "no-shadow", - "no-var", - "sort-vars" - ].join(", "); - var argv = minimist(args, { - alias: { - target: "t", - out: "o", - path: "p", - wrap: "w", - root: "r", - lint: "l", - // backward compatibility: - "force-long": "strict-long", - "force-message": "strict-message" - }, - string: [ "target", "out", "path", "wrap", "dependency", "root", "lint" ], - boolean: [ "create", "encode", "decode", "verify", "convert", "delimited", "beautify", "comments", "es6", "sparse", "keep-case", "force-long", "force-number", "force-enum-string", "force-message" ], - default: { - target: "json", - create: true, - encode: true, - decode: true, - verify: true, - convert: true, - delimited: true, - beautify: true, - comments: true, - es6: null, - lint: lintDefault, - "keep-case": false, - "force-long": false, - "force-number": false, - "force-enum-string": false, - "force-message": false - } - }); - - var target = targets[argv.target], - files = argv._, - paths = typeof argv.path === "string" ? [ argv.path ] : argv.path || []; - - // alias hyphen args in camel case - Object.keys(argv).forEach(function(key) { - var camelKey = key.replace(/-([a-z])/g, function($0, $1) { return $1.toUpperCase(); }); - if (camelKey !== key) - argv[camelKey] = argv[key]; - }); - - // protobuf.js package directory contains additional, otherwise non-bundled google types - paths.push(path.relative(process.cwd(), path.join(__dirname, "..")) || "."); - - if (!files.length) { - var descs = Object.keys(targets).filter(function(key) { return !targets[key].private; }).map(function(key) { - return " " + util.pad(key, 14, true) + targets[key].description; - }); - if (callback) - callback(Error("usage")); // eslint-disable-line callback-return - else - process.stderr.write([ - "protobuf.js v" + pkg.version + " CLI for JavaScript", - "", - chalk.bold.white("Translates between file formats and generates static code."), - "", - " -t, --target Specifies the target format. Also accepts a path to require a custom target.", - "", - descs.join("\n"), - "", - " -p, --path Adds a directory to the include path.", - "", - " -o, --out Saves to a file instead of writing to stdout.", - "", - " --sparse Exports only those types referenced from a main file (experimental).", - "", - chalk.bold.gray(" Module targets only:"), - "", - " -w, --wrap Specifies the wrapper to use. Also accepts a path to require a custom wrapper.", - "", - " default Default wrapper supporting both CommonJS and AMD", - " commonjs CommonJS wrapper", - " amd AMD wrapper", - " es6 ES6 wrapper (implies --es6)", - " closure A closure adding to protobuf.roots where protobuf is a global", - "", - " --dependency Specifies which version of protobuf to require. Accepts any valid module id", - "", - " -r, --root Specifies an alternative protobuf.roots name.", - "", - " -l, --lint Linter configuration. Defaults to protobuf.js-compatible rules:", - "", - " " + lintDefault, - "", - " --es6 Enables ES6 syntax (const/let instead of var)", - "", - chalk.bold.gray(" Proto sources only:"), - "", - " --keep-case Keeps field casing instead of converting to camel case.", - "", - chalk.bold.gray(" Static targets only:"), - "", - " --no-create Does not generate create functions used for reflection compatibility.", - " --no-encode Does not generate encode functions.", - " --no-decode Does not generate decode functions.", - " --no-verify Does not generate verify functions.", - " --no-convert Does not generate convert functions like from/toObject", - " --no-delimited Does not generate delimited encode/decode functions.", - " --no-beautify Does not beautify generated code.", - " --no-comments Does not output any JSDoc comments.", - "", - " --force-long Enfores the use of 'Long' for s-/u-/int64 and s-/fixed64 fields.", - " --force-number Enfores the use of 'number' for s-/u-/int64 and s-/fixed64 fields.", - " --force-message Enfores the use of message instances instead of plain objects.", - "", - "usage: " + chalk.bold.green("pbjs") + " [options] file1.proto file2.json ..." + chalk.gray(" (or pipe) ") + "other | " + chalk.bold.green("pbjs") + " [options] -", - "" - ].join("\n")); - return 1; - } - - if (typeof argv["strict-long"] === "boolean") - argv["force-long"] = argv["strict-long"]; - - // Resolve glob expressions - for (var i = 0; i < files.length;) { - if (glob.hasMagic(files[i])) { - var matches = glob.sync(files[i]); - Array.prototype.splice.apply(files, [i, 1].concat(matches)); - i += matches.length; - } else - ++i; - } - - // Require custom target - if (!target) - target = require(path.resolve(process.cwd(), argv.target)); - - var root = new protobuf.Root(); - - var mainFiles = []; - - // Search include paths when resolving imports - root.resolvePath = function pbjsResolvePath(origin, target) { - var normOrigin = protobuf.util.path.normalize(origin), - normTarget = protobuf.util.path.normalize(target); - if (!normOrigin) - mainFiles.push(normTarget); - - var resolved = protobuf.util.path.resolve(normOrigin, normTarget, true); - var idx = resolved.lastIndexOf("google/protobuf/"); - if (idx > -1) { - var altname = resolved.substring(idx); - if (altname in protobuf.common) - resolved = altname; - } - - if (fs.existsSync(resolved)) - return resolved; - - for (var i = 0; i < paths.length; ++i) { - var iresolved = protobuf.util.path.resolve(paths[i] + "/", target); - if (fs.existsSync(iresolved)) - return iresolved; - } - - return resolved; - }; - - // Use es6 syntax if not explicitly specified on the command line and the es6 wrapper is used - if (argv.wrap === "es6" || argv.es6) { - argv.wrap = "es6"; - argv.es6 = true; - } - - var parseOptions = { - "keepCase": argv["keep-case"] || false - }; - - // Read from stdin - if (files.length === 1 && files[0] === "-") { - var data = []; - process.stdin.on("data", function(chunk) { - data.push(chunk); - }); - process.stdin.on("end", function() { - var source = Buffer.concat(data).toString("utf8"); - try { - if (source.charAt(0) !== "{") { - protobuf.parse.filename = "-"; - protobuf.parse(source, root, parseOptions); - } else { - var json = JSON.parse(source); - root.setOptions(json.options).addJSON(json); - } - callTarget(); - } catch (err) { - if (callback) { - callback(err); - return; - } - throw err; - } - }); - - // Load from disk - } else { - try { - root.loadSync(files, parseOptions).resolveAll(); // sync is deterministic while async is not - if (argv.sparse) - sparsify(root); - callTarget(); - } catch (err) { - if (callback) { - callback(err); - return undefined; - } - throw err; - } - } - - function markReferenced(tobj) { - tobj.referenced = true; - // also mark a type's fields and oneofs - if (tobj.fieldsArray) - tobj.fieldsArray.forEach(function(fobj) { - fobj.referenced = true; - }); - if (tobj.oneofsArray) - tobj.oneofsArray.forEach(function(oobj) { - oobj.referenced = true; - }); - // also mark an extension field's extended type, but not its (other) fields - if (tobj.extensionField) - tobj.extensionField.parent.referenced = true; - } - - function sparsify(root) { - - // 1. mark directly or indirectly referenced objects - util.traverse(root, function(obj) { - if (!obj.filename) - return; - if (mainFiles.indexOf(obj.filename) > -1) - util.traverseResolved(obj, markReferenced); - }); - - // 2. empty unreferenced objects - util.traverse(root, function(obj) { - var parent = obj.parent; - if (!parent || obj.referenced) // root or referenced - return; - // remove unreferenced namespaces - if (obj instanceof protobuf.Namespace) { - var hasReferenced = false; - util.traverse(obj, function(iobj) { - if (iobj.referenced) - hasReferenced = true; - }); - if (hasReferenced) { // replace with plain namespace if a namespace subclass - if (obj instanceof protobuf.Type || obj instanceof protobuf.Service) { - var robj = new protobuf.Namespace(obj.name, obj.options); - robj.nested = obj.nested; - parent.add(robj); - } - } else // remove completely if nothing inside is referenced - parent.remove(obj); - - // remove everything else unreferenced - } else if (!(obj instanceof protobuf.Namespace)) - parent.remove(obj); - }); - - // 3. validate that everything is fine - root.resolveAll(); - } - - function callTarget() { - target(root, argv, function targetCallback(err, output) { - if (err) { - if (callback) - return callback(err); - throw err; - } - try { - if (argv.out) - fs.writeFileSync(argv.out, output, { encoding: "utf8" }); - else if (!callback) - process.stdout.write(output, "utf8"); - return callback - ? callback(null, output) - : undefined; - } catch (err) { - if (callback) - return callback(err); - throw err; - } - }); - } - - return undefined; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/cli/pbts.d.ts b/gateway/node_modules/@apollo/protobufjs/cli/pbts.d.ts deleted file mode 100644 index 35db28c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/pbts.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -type pbtsCallback = (err: Error|null, output?: string) => void; - -/** - * Runs pbts programmatically. - * @param {string[]} args Command line arguments - * @param {function(?Error, string=)} [callback] Optional completion callback - * @returns {number|undefined} Exit code, if known - */ -export function main(args: string[], callback?: pbtsCallback): number|undefined; diff --git a/gateway/node_modules/@apollo/protobufjs/cli/pbts.js b/gateway/node_modules/@apollo/protobufjs/cli/pbts.js deleted file mode 100644 index a968a34..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/pbts.js +++ /dev/null @@ -1,201 +0,0 @@ -"use strict"; -var child_process = require("child_process"), - path = require("path"), - fs = require("fs"), - pkg = require("./package.json"), - util = require("./util"); - -util.setup(); - -var minimist = require("minimist"), - chalk = require("chalk"), - glob = require("glob"), - tmp = require("tmp"); - -/** - * Runs pbts programmatically. - * @param {string[]} args Command line arguments - * @param {function(?Error, string=)} [callback] Optional completion callback - * @returns {number|undefined} Exit code, if known - */ -exports.main = function(args, callback) { - var argv = minimist(args, { - alias: { - name: "n", - out : "o", - main: "m", - global: "g", - import: "i" - }, - string: [ "name", "out", "global", "import" ], - boolean: [ "comments", "main" ], - default: { - comments: true, - main: false - } - }); - - var files = argv._; - - if (!files.length) { - if (callback) - callback(Error("usage")); // eslint-disable-line callback-return - else - process.stderr.write([ - "protobuf.js v" + pkg.version + " CLI for TypeScript", - "", - chalk.bold.white("Generates TypeScript definitions from annotated JavaScript files."), - "", - " -o, --out Saves to a file instead of writing to stdout.", - "", - " -g, --global Name of the global object in browser environments, if any.", - "", - " -i, --import Comma delimited list of imports. Local names will equal camelCase of the basename.", - "", - " --no-comments Does not output any JSDoc comments.", - "", - chalk.bold.gray(" Internal flags:"), - "", - " -n, --name Wraps everything in a module of the specified name.", - "", - " -m, --main Whether building the main library without any imports.", - "", - "usage: " + chalk.bold.green("pbts") + " [options] file1.js file2.js ..." + chalk.bold.gray(" (or) ") + "other | " + chalk.bold.green("pbts") + " [options] -", - "" - ].join("\n")); - return 1; - } - - // Resolve glob expressions - for (var i = 0; i < files.length;) { - if (glob.hasMagic(files[i])) { - var matches = glob.sync(files[i]); - Array.prototype.splice.apply(files, [i, 1].concat(matches)); - i += matches.length; - } else - ++i; - } - - var cleanup = []; - - // Read from stdin (to a temporary file) - if (files.length === 1 && files[0] === "-") { - var data = []; - process.stdin.on("data", function(chunk) { - data.push(chunk); - }); - process.stdin.on("end", function() { - files[0] = tmp.tmpNameSync() + ".js"; - fs.writeFileSync(files[0], Buffer.concat(data)); - cleanup.push(files[0]); - callJsdoc(); - }); - - // Load from disk - } else { - callJsdoc(); - } - - function callJsdoc() { - - // There is no proper API for jsdoc, so this executes the CLI and pipes the output - var basedir = path.join(__dirname, "."); - var moduleName = argv.name || "null"; - var nodePath = process.execPath; - var cmd = "\"" + nodePath + "\" \"" + require.resolve("jsdoc/jsdoc.js") + "\" -c \"" + path.join(basedir, "lib", "tsd-jsdoc.json") + "\" -q \"module=" + encodeURIComponent(moduleName) + "&comments=" + Boolean(argv.comments) + "\" " + files.map(function(file) { return "\"" + file + "\""; }).join(" "); - var child = child_process.exec(cmd, { - cwd: process.cwd(), - argv0: "node", - stdio: "pipe", - maxBuffer: 1 << 24 // 16mb - }); - var out = []; - var ended = false; - var closed = false; - child.stdout.on("data", function(data) { - out.push(data); - }); - child.stdout.on("end", function() { - if (closed) finish(); - else ended = true; - }); - child.stderr.pipe(process.stderr); - child.on("close", function(code) { - // clean up temporary files, no matter what - try { cleanup.forEach(fs.unlinkSync); } catch(e) {/**/} cleanup = []; - - if (code) { - out = out.join("").replace(/\s*JSDoc \d+\.\d+\.\d+ [^$]+/, ""); - process.stderr.write(out); - var err = Error("code " + code); - if (callback) - return callback(err); - throw err; - } - - if (ended) return finish(); - closed = true; - return undefined; - }); - - function getImportName(importItem) { - return path.basename(importItem, ".js").replace(/([-_~.+]\w)/g, function(match) { - return match[1].toUpperCase(); - }); - } - - function finish() { - var output = []; - if (argv.main) - output.push( - "// DO NOT EDIT! This is a generated file. Edit the JSDoc in src/*.js instead and run 'npm run types'.", - "" - ); - output.push( - "import * as Long from \"long\";", - "" - ); - if (argv.global) - output.push( - "export as namespace " + argv.global + ";", - "" - ); - - if (!argv.main) { - // Ensure we have a usable array of imports - var importArray = typeof argv.import === "string" ? argv.import.split(",") : argv.import || []; - - // Build an object of imports and paths - var imports = { - $protobuf: "@apollo/protobufjs" - }; - importArray.forEach(function(importItem) { - imports[getImportName(importItem)] = importItem; - }); - - // Write out the imports - Object.keys(imports).forEach(function(key) { - output.push("import * as " + key + " from \"" + imports[key] + "\";"); - }); - } - - output = output.join("\n") + "\n" + out.join(""); - - try { - if (argv.out) - fs.writeFileSync(argv.out, output, { encoding: "utf8" }); - else if (!callback) - process.stdout.write(output, "utf8"); - return callback - ? callback(null, output) - : undefined; - } catch (err) { - if (callback) - return callback(err); - throw err; - } - } - } - - return undefined; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/cli/targets/json-module.js b/gateway/node_modules/@apollo/protobufjs/cli/targets/json-module.js deleted file mode 100644 index dc5e5ed..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/targets/json-module.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -module.exports = json_module; - -var util = require("../util"); - -var protobuf = require("../.."); - -json_module.description = "JSON representation as a module"; - -function jsonSafeProp(json) { - return json.replace(/^( +)"(\w+)":/mg, function($0, $1, $2) { - return protobuf.util.safeProp($2).charAt(0) === "." - ? $1 + $2 + ":" - : $0; - }); -} - -function json_module(root, options, callback) { - try { - var rootProp = protobuf.util.safeProp(options.root || "default"); - var output = [ - (options.es6 ? "const" : "var") + " $root = ($protobuf.roots" + rootProp + " || ($protobuf.roots" + rootProp + " = new $protobuf.Root()))\n" - ]; - if (root.options) { - var optionsJson = jsonSafeProp(JSON.stringify(root.options, null, 2)); - output.push(".setOptions(" + optionsJson + ")\n"); - } - var json = jsonSafeProp(JSON.stringify(root.nested, null, 2).trim()); - output.push(".addJSON(" + json + ");"); - output = util.wrap(output.join(""), protobuf.util.merge({ dependency: "@apollo/protobufjs/light" }, options)); - process.nextTick(function() { - callback(null, output); - }); - } catch (e) { - return callback(e); - } - return undefined; -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/targets/json.js b/gateway/node_modules/@apollo/protobufjs/cli/targets/json.js deleted file mode 100644 index 7025372..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/targets/json.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -module.exports = json_target; - -json_target.description = "JSON representation"; - -function json_target(root, options, callback) { - callback(null, JSON.stringify(root, null, 2)); -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/targets/proto.js b/gateway/node_modules/@apollo/protobufjs/cli/targets/proto.js deleted file mode 100644 index d633f16..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/targets/proto.js +++ /dev/null @@ -1,326 +0,0 @@ -"use strict"; -module.exports = proto_target; - -proto_target.private = true; - -var protobuf = require("../.."); - -var Namespace = protobuf.Namespace, - Enum = protobuf.Enum, - Type = protobuf.Type, - Field = protobuf.Field, - OneOf = protobuf.OneOf, - Service = protobuf.Service, - Method = protobuf.Method, - types = protobuf.types, - util = protobuf.util; - -function underScore(str) { - return str.substring(0,1) - + str.substring(1) - .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return "_" + $1.toLowerCase(); }); -} - -var out = []; -var indent = 0; -var first = false; -var syntax = 3; - -function proto_target(root, options, callback) { - if (options) { - switch (options.syntax) { - case undefined: - case "proto3": - case "3": - syntax = 3; - break; - case "proto2": - case "2": - syntax = 2; - break; - default: - return callback(Error("invalid syntax: " + options.syntax)); - } - } - indent = 0; - first = false; - try { - buildRoot(root); - return callback(null, out.join("\n")); - } catch (err) { - return callback(err); - } finally { - out = []; - syntax = 3; - } -} - -function push(line) { - if (line === "") - out.push(""); - else { - var ind = ""; - for (var i = 0; i < indent; ++i) - ind += " "; - out.push(ind + line); - } -} - -function escape(str) { - return str.replace(/[\\"']/g, "\\$&") - .replace(/\r/g, "\\r") - .replace(/\n/g, "\\n") - .replace(/\u0000/g, "\\0"); // eslint-disable-line no-control-regex -} - -function value(v) { - switch (typeof v) { - case "boolean": - return v ? "true" : "false"; - case "number": - return v.toString(); - default: - return "\"" + escape(String(v)) + "\""; - } -} - -function buildRoot(root) { - root.resolveAll(); - var pkg = []; - var ptr = root; - var repeat = true; - do { - var nested = ptr.nestedArray; - if (nested.length === 1 && nested[0] instanceof Namespace && !(nested[0] instanceof Type || nested[0] instanceof Service)) { - ptr = nested[0]; - if (ptr !== root) - pkg.push(ptr.name); - } else - repeat = false; - } while (repeat); - out.push("syntax = \"proto" + syntax + "\";"); - if (pkg.length) - out.push("", "package " + pkg.join(".") + ";"); - - buildOptions(ptr); - ptr.nestedArray.forEach(build); -} - -function build(object) { - if (object instanceof Enum) - buildEnum(object); - else if (object instanceof Type) - buildType(object); - else if (object instanceof Field) - buildField(object); - else if (object instanceof OneOf) - buildOneOf(object); - else if (object instanceof Service) - buildService(object); - else if (object instanceof Method) - buildMethod(object); - else - buildNamespace(object); -} - -function buildNamespace(namespace) { // just a namespace, not a type etc. - push(""); - push("message " + namespace.name + " {"); - ++indent; - buildOptions(namespace); - consolidateExtends(namespace.nestedArray).remaining.forEach(build); - --indent; - push("}"); -} - -function buildEnum(enm) { - push(""); - push("enum " + enm.name + " {"); - buildOptions(enm); - ++indent; first = true; - Object.keys(enm.values).forEach(function(name) { - var val = enm.values[name]; - if (first) { - push(""); - first = false; - } - push(name + " = " + val + ";"); - }); - --indent; first = false; - push("}"); -} - -function buildRanges(keyword, ranges) { - if (ranges && ranges.length) { - var parts = []; - ranges.forEach(function(range) { - if (typeof range === "string") - parts.push("\"" + escape(range) + "\""); - else if (range[0] === range[1]) - parts.push(range[0]); - else - parts.push(range[0] + " to " + (range[1] === 0x1FFFFFFF ? "max" : range[1])); - }); - push(""); - push(keyword + " " + parts.join(", ") + ";"); - } -} - -function buildType(type) { - if (type.group) - return; // built with the sister-field - push(""); - push("message " + type.name + " {"); - ++indent; - buildOptions(type); - type.oneofsArray.forEach(build); - first = true; - type.fieldsArray.forEach(build); - consolidateExtends(type.nestedArray).remaining.forEach(build); - buildRanges("extensions", type.extensions); - buildRanges("reserved", type.reserved); - --indent; - push("}"); -} - -function buildField(field, passExtend) { - if (field.partOf || field.declaringField || field.extend !== undefined && !passExtend) - return; - if (first) { - first = false; - push(""); - } - if (field.resolvedType && field.resolvedType.group) { - buildGroup(field); - return; - } - var sb = []; - if (field.map) - sb.push("map<" + field.keyType + ", " + field.type + ">"); - else if (field.repeated) - sb.push("repeated", field.type); - else if (syntax === 2 || field.parent.group) - sb.push(field.required ? "required" : "optional", field.type); - else - sb.push(field.type); - sb.push(underScore(field.name), "=", field.id); - var opts = buildFieldOptions(field); - if (opts) - sb.push(opts); - push(sb.join(" ") + ";"); -} - -function buildGroup(field) { - push(field.rule + " group " + field.resolvedType.name + " = " + field.id + " {"); - ++indent; - buildOptions(field.resolvedType); - first = true; - field.resolvedType.fieldsArray.forEach(function(field) { - buildField(field); - }); - --indent; - push("}"); -} - -function buildFieldOptions(field) { - var keys; - if (!field.options || !(keys = Object.keys(field.options)).length) - return null; - var sb = []; - keys.forEach(function(key) { - var val = field.options[key]; - var wireType = types.packed[field.resolvedType instanceof Enum ? "int32" : field.type]; - switch (key) { - case "packed": - val = Boolean(val); - // skip when not packable or syntax default - if (wireType === undefined || syntax === 3 === val) - return; - break; - case "default": - if (syntax === 3) - return; - // skip default (resolved) default values - if (field.long && !util.longNeq(field.defaultValue, types.defaults[field.type]) || !field.long && field.defaultValue === types.defaults[field.type]) - return; - // enum defaults specified as strings are type references and not enclosed in quotes - if (field.resolvedType instanceof Enum) - break; - // otherwise fallthrough - default: - val = value(val); - break; - } - sb.push(key + "=" + val); - }); - return sb.length - ? "[" + sb.join(", ") + "]" - : null; -} - -function consolidateExtends(nested) { - var ext = {}; - nested = nested.filter(function(obj) { - if (!(obj instanceof Field) || obj.extend === undefined) - return true; - (ext[obj.extend] || (ext[obj.extend] = [])).push(obj); - return false; - }); - Object.keys(ext).forEach(function(extend) { - push(""); - push("extend " + extend + " {"); - ++indent; first = true; - ext[extend].forEach(function(field) { - buildField(field, true); - }); - --indent; - push("}"); - }); - return { - remaining: nested - }; -} - -function buildOneOf(oneof) { - push(""); - push("oneof " + underScore(oneof.name) + " {"); - ++indent; first = true; - oneof.oneof.forEach(function(fieldName) { - var field = oneof.parent.get(fieldName); - if (first) { - first = false; - push(""); - } - var opts = buildFieldOptions(field); - push(field.type + " " + underScore(field.name) + " = " + field.id + (opts ? " " + opts : "") + ";"); - }); - --indent; - push("}"); -} - -function buildService(service) { - push("service " + service.name + " {"); - ++indent; - service.methodsArray.forEach(build); - consolidateExtends(service.nestedArray).remaining.forEach(build); - --indent; - push("}"); -} - -function buildMethod(method) { - push(method.type + " " + method.name + " (" + (method.requestStream ? "stream " : "") + method.requestType + ") returns (" + (method.responseStream ? "stream " : "") + method.responseType + ");"); -} - -function buildOptions(object) { - if (!object.options) - return; - first = true; - Object.keys(object.options).forEach(function(key) { - if (first) { - first = false; - push(""); - } - var val = object.options[key]; - push("option " + key + " = " + JSON.stringify(val) + ";"); - }); -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/targets/proto2.js b/gateway/node_modules/@apollo/protobufjs/cli/targets/proto2.js deleted file mode 100644 index 09521e0..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/targets/proto2.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -module.exports = proto2_target; - -var protobuf = require("../.."); - -proto2_target.description = "Protocol Buffers, Version 2"; - -function proto2_target(root, options, callback) { - require("./proto")(root, protobuf.util.merge(options, { syntax: "proto2" }), callback); -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/targets/proto3.js b/gateway/node_modules/@apollo/protobufjs/cli/targets/proto3.js deleted file mode 100644 index 661c916..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/targets/proto3.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -module.exports = proto3_target; - -var protobuf = require("../.."); - -proto3_target.description = "Protocol Buffers, Version 3"; - -function proto3_target(root, options, callback) { - require("./proto")(root, protobuf.util.merge(options, { syntax: "proto3" }), callback); -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/targets/static-module.js b/gateway/node_modules/@apollo/protobufjs/cli/targets/static-module.js deleted file mode 100644 index f69eba8..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/targets/static-module.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -module.exports = static_module_target; - -// - The default wrapper supports AMD, CommonJS and the global scope (as window.root), in this order. -// - You can specify a custom wrapper with the --wrap argument. -// - CommonJS modules depend on the minimal build for reduced package size with browserify. -// - AMD and global scope depend on the full library for now. - -var util = require("../util"); - -var protobuf = require("../.."); - -static_module_target.description = "Static code without reflection as a module"; - -function static_module_target(root, options, callback) { - require("./static")(root, options, function(err, output) { - if (err) { - callback(err); - return; - } - try { - output = util.wrap(output, protobuf.util.merge({ dependency: "@apollo/protobufjs/minimal" }, options)); - } catch (e) { - callback(e); - return; - } - callback(null, output); - }); -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/targets/static.js b/gateway/node_modules/@apollo/protobufjs/cli/targets/static.js deleted file mode 100644 index 1c443ea..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/targets/static.js +++ /dev/null @@ -1,706 +0,0 @@ -"use strict"; -module.exports = static_target; - -var protobuf = require("../.."), - UglifyJS = require("uglify-js"), - espree = require("espree"), - escodegen = require("escodegen"), - estraverse = require("estraverse"); - -var Type = protobuf.Type, - Service = protobuf.Service, - Enum = protobuf.Enum, - Namespace = protobuf.Namespace, - util = protobuf.util; - -var out = []; -var indent = 0; -var config = {}; - -static_target.description = "Static code without reflection (non-functional on its own)"; - -function static_target(root, options, callback) { - config = options; - try { - var aliases = []; - if (config.decode) - aliases.push("Reader"); - if (config.encode) - aliases.push("Writer"); - aliases.push("util"); - if (aliases.length) { - if (config.comments) - push("// Common aliases"); - push((config.es6 ? "const " : "var ") + aliases.map(function(name) { return "$" + name + " = $protobuf." + name; }).join(", ") + ";"); - push(""); - } - if (config.comments) { - if (root.comment) { - pushComment("@fileoverview " + root.comment); - push(""); - } - push("// Exported root namespace"); - } - var rootProp = util.safeProp(config.root || "default"); - push((config.es6 ? "const" : "var") + " $root = $protobuf.roots" + rootProp + " || ($protobuf.roots" + rootProp + " = {});"); - buildNamespace(null, root); - return callback(null, out.join("\n")); - } catch (err) { - return callback(err); - } finally { - out = []; - indent = 0; - config = {}; - } -} - -function push(line) { - if (line === "") - return out.push(""); - var ind = ""; - for (var i = 0; i < indent; ++i) - ind += " "; - return out.push(ind + line); -} - -function pushComment(lines) { - if (!config.comments) - return; - var split = []; - for (var i = 0; i < lines.length; ++i) - if (lines[i] != null && lines[i].substring(0, 8) !== "@exclude") - Array.prototype.push.apply(split, lines[i].split(/\r?\n/g)); - push("/**"); - split.forEach(function(line) { - if (line === null) - return; - push(" * " + line.replace(/\*\//g, "* /")); - }); - push(" */"); -} - -function exportName(object, asInterface) { - if (asInterface) { - if (object.__interfaceName) - return object.__interfaceName; - } else if (object.__exportName) - return object.__exportName; - var parts = object.fullName.substring(1).split("."), - i = 0; - while (i < parts.length) - parts[i] = escapeName(parts[i++]); - if (asInterface) - parts[i - 1] = "I" + parts[i - 1]; - return object[asInterface ? "__interfaceName" : "__exportName"] = parts.join("."); -} - -function escapeName(name) { - if (!name) - return "$root"; - return util.isReserved(name) ? name + "_" : name; -} - -function aOrAn(name) { - return ((/^[hH](?:ou|on|ei)/.test(name) || /^[aeiouAEIOU][a-z]/.test(name)) && !/^us/i.test(name) - ? "an " - : "a ") + name; -} - -function buildNamespace(ref, ns) { - if (!ns) - return; - if (ns.name !== "") { - push(""); - if (!ref && config.es6) - push("export const " + escapeName(ns.name) + " = " + escapeName(ref) + "." + escapeName(ns.name) + " = (() => {"); - else - push(escapeName(ref) + "." + escapeName(ns.name) + " = (function() {"); - ++indent; - } - - if (ns instanceof Type) { - buildType(undefined, ns); - } else if (ns instanceof Service) - buildService(undefined, ns); - else if (ns.name !== "") { - push(""); - pushComment([ - ns.comment || "Namespace " + ns.name + ".", - ns.parent instanceof protobuf.Root ? "@exports " + escapeName(ns.name) : "@memberof " + exportName(ns.parent), - "@namespace" - ]); - push((config.es6 ? "const" : "var") + " " + escapeName(ns.name) + " = {};"); - } - - ns.nestedArray.forEach(function(nested) { - if (nested instanceof Enum) - buildEnum(ns.name, nested); - else if (nested instanceof Namespace) - buildNamespace(ns.name, nested); - }); - if (ns.name !== "") { - push(""); - push("return " + escapeName(ns.name) + ";"); - --indent; - push("})();"); - } -} - -var reduceableBlockStatements = { - IfStatement: true, - ForStatement: true, - WhileStatement: true -}; - -var shortVars = { - "r": "reader", - "w": "writer", - "m": "message", - "t": "tag", - "l": "length", - "c": "end", "c2": "end2", - "k": "key", - "ks": "keys", "ks2": "keys2", - "e": "error", - "f": "impl", - "o": "options", - "d": "object", - "n": "long", - "p": "properties" -}; - -function beautifyCode(code) { - // Add semicolons - code = UglifyJS.minify(code, { - compress: false, - mangle: false, - output: { beautify: true } - }).code; - // Properly beautify - var ast = espree.parse(code); - estraverse.replace(ast, { - enter: function(node, parent) { - // rename short vars - if (node.type === "Identifier" && (parent.property !== node || parent.computed) && shortVars[node.name]) - return { - "type": "Identifier", - "name": shortVars[node.name] - }; - // replace var with let if es6 - if (config.es6 && node.type === "VariableDeclaration" && node.kind === "var") { - node.kind = "let"; - return undefined; - } - // remove braces around block statements with a single child - if (node.type === "BlockStatement" && reduceableBlockStatements[parent.type] && node.body.length === 1) - return node.body[0]; - return undefined; - } - }); - code = escodegen.generate(ast, { - format: { - newline: "\n", - quotes: "double" - } - }); - // Add id, wireType comments - if (config.comments) - code = code.replace(/\.uint32\((\d+)\)/g, function($0, $1) { - var id = $1 >>> 3, - wireType = $1 & 7; - return ".uint32(/* id " + id + ", wireType " + wireType + " =*/" + $1 + ")"; - }); - return code; -} - -var renameVars = { - "Writer": "$Writer", - "Reader": "$Reader", - "util": "$util" -}; - -function buildFunction(type, functionName, gen, scope) { - var code = gen.toString(functionName) - .replace(/((?!\.)types\[\d+])(\.values)/g, "$1"); // enums: use types[N] instead of reflected types[N].values - - var ast = espree.parse(code); - /* eslint-disable no-extra-parens */ - estraverse.replace(ast, { - enter: function(node, parent) { - // rename vars - if ( - node.type === "Identifier" && renameVars[node.name] - && ( - (parent.type === "MemberExpression" && parent.object === node) - || (parent.type === "BinaryExpression" && parent.right === node) - ) - ) - return { - "type": "Identifier", - "name": renameVars[node.name] - }; - // replace this.ctor with the actual ctor - if ( - node.type === "MemberExpression" - && node.object.type === "ThisExpression" - && node.property.type === "Identifier" && node.property.name === "ctor" - ) - return { - "type": "Identifier", - "name": "$root" + type.fullName - }; - // replace types[N] with the field's actual type - if ( - node.type === "MemberExpression" - && node.object.type === "Identifier" && node.object.name === "types" - && node.property.type === "Literal" - ) - return { - "type": "Identifier", - "name": "$root" + type.fieldsArray[node.property.value].resolvedType.fullName - }; - return undefined; - } - }); - /* eslint-enable no-extra-parens */ - code = escodegen.generate(ast, { - format: { - newline: "\n", - quotes: "double" - } - }); - - if (config.beautify) - code = beautifyCode(code); - - code = code.replace(/ {4}/g, "\t"); - - var hasScope = scope && Object.keys(scope).length, - isCtor = functionName === type.name; - - if (hasScope) // remove unused scope vars - Object.keys(scope).forEach(function(key) { - if (!new RegExp("\\b(" + key + ")\\b", "g").test(code)) - delete scope[key]; - }); - - var lines = code.split(/\n/g); - if (isCtor) // constructor - push(lines[0]); - else if (hasScope) // enclose in an iife - push(escapeName(type.name) + "." + escapeName(functionName) + " = (function(" + Object.keys(scope).map(escapeName).join(", ") + ") { return " + lines[0]); - else - push(escapeName(type.name) + "." + escapeName(functionName) + " = " + lines[0]); - lines.slice(1, lines.length - 1).forEach(function(line) { - var prev = indent; - var i = 0; - while (line.charAt(i++) === "\t") - ++indent; - push(line.trim()); - indent = prev; - }); - if (isCtor) - push("}"); - else if (hasScope) - push("};})(" + Object.keys(scope).map(function(key) { return scope[key]; }).join(", ") + ");"); - else - push("};"); -} - -function toJsType(field, forInterface) { - var type; - - switch (field.type) { - case "double": - case "float": - case "int32": - case "uint32": - case "sint32": - case "fixed32": - case "sfixed32": - type = "number"; - break; - case "int64": - case "uint64": - case "sint64": - case "fixed64": - case "sfixed64": - type = config.forceLong ? "Long" : config.forceNumber ? "number" : "number|Long"; - break; - case "bool": - type = "boolean"; - break; - case "string": - type = "string"; - break; - case "bytes": - type = "Uint8Array"; - break; - default: - if (field.resolve().resolvedType) - type = exportName(field.resolvedType, !(field.resolvedType instanceof protobuf.Enum || config.forceMessage)); - else - type = "*"; // should not happen - break; - } - if (field.map) - return "Object."; - if (field.repeated) { - if (forInterface && field.useToArray()) { - return "$protobuf.ToArray.<" + type + ">|Array.<" + type + ">"; - } - return "Array.<" + type + ">"; - } - return type; -} - -function buildType(ref, type) { - - if (config.comments) { - var typeDef = [ - "Properties of " + aOrAn(type.name) + ".", - type.parent instanceof protobuf.Root ? "@exports " + escapeName("I" + type.name) : "@memberof " + exportName(type.parent), - "@interface " + escapeName("I" + type.name) - ]; - type.fieldsArray.forEach(function(field) { - var prop = util.safeProp(field.name); // either .name or ["name"] - prop = prop.substring(1, prop.charAt(0) === "[" ? prop.length - 1 : prop.length); - var jsType = toJsType(field, true); - if (field.optional) - jsType = jsType + "|null"; - typeDef.push("@property {" + jsType + "} " + (field.optional ? "[" + prop + "]" : prop) + " " + (field.comment || type.name + " " + field.name)); - }); - push(""); - pushComment(typeDef); - } - - // constructor - push(""); - pushComment([ - "Constructs a new " + type.name + ".", - type.parent instanceof protobuf.Root ? "@exports " + escapeName(type.name) : "@memberof " + exportName(type.parent), - "@classdesc " + (type.comment || "Represents " + aOrAn(type.name) + "."), - config.comments ? "@implements " + escapeName("I" + type.name) : null, - "@constructor", - "@param {" + exportName(type, true) + "=} [" + (config.beautify ? "properties" : "p") + "] Properties to set" - ]); - buildFunction(type, type.name, Type.generateConstructor(type)); - - // default values - var firstField = true; - type.fieldsArray.forEach(function(field) { - field.resolve(); - var prop = util.safeProp(field.name); - if (config.comments) { - push(""); - var jsType = toJsType(field, false); - if (field.optional && !field.map && !field.repeated && field.resolvedType instanceof Type) - jsType = jsType + "|null|undefined"; - pushComment([ - field.comment || type.name + " " + field.name + ".", - "@member {" + jsType + "} " + field.name, - "@memberof " + exportName(type), - "@instance" - ]); - } else if (firstField) { - push(""); - firstField = false; - } - if (field.repeated) - push(escapeName(type.name) + ".prototype" + prop + " = $util.emptyArray;"); // overwritten in constructor - else if (field.map) - push(escapeName(type.name) + ".prototype" + prop + " = $util.emptyObject;"); // overwritten in constructor - else if (field.long) - push(escapeName(type.name) + ".prototype" + prop + " = $util.Long ? $util.Long.fromBits(" - + JSON.stringify(field.typeDefault.low) + "," - + JSON.stringify(field.typeDefault.high) + "," - + JSON.stringify(field.typeDefault.unsigned) - + ") : " + field.typeDefault.toNumber(field.type.charAt(0) === "u") + ";"); - else if (field.bytes) { - push(escapeName(type.name) + ".prototype" + prop + " = $util.newBuffer(" + JSON.stringify(Array.prototype.slice.call(field.typeDefault)) + ");"); - } else - push(escapeName(type.name) + ".prototype" + prop + " = " + JSON.stringify(field.typeDefault) + ";"); - }); - - // virtual oneof fields - var firstOneOf = true; - type.oneofsArray.forEach(function(oneof) { - if (firstOneOf) { - firstOneOf = false; - push(""); - if (config.comments) - push("// OneOf field names bound to virtual getters and setters"); - push((config.es6 ? "let" : "var") + " $oneOfFields;"); - } - oneof.resolve(); - push(""); - pushComment([ - oneof.comment || type.name + " " + oneof.name + ".", - "@member {" + oneof.oneof.map(JSON.stringify).join("|") + "|undefined} " + escapeName(oneof.name), - "@memberof " + exportName(type), - "@instance" - ]); - push("Object.defineProperty(" + escapeName(type.name) + ".prototype, " + JSON.stringify(oneof.name) +", {"); - ++indent; - push("get: $util.oneOfGetter($oneOfFields = [" + oneof.oneof.map(JSON.stringify).join(", ") + "]),"); - push("set: $util.oneOfSetter($oneOfFields)"); - --indent; - push("});"); - }); - - if (config.create) { - push(""); - pushComment([ - "Creates a new " + type.name + " instance using the specified properties.", - "@function create", - "@memberof " + exportName(type), - "@static", - "@param {" + exportName(type, true) + "=} [properties] Properties to set", - "@returns {" + exportName(type) + "} " + type.name + " instance" - ]); - push(escapeName(type.name) + ".create = function create(properties) {"); - ++indent; - push("return new " + escapeName(type.name) + "(properties);"); - --indent; - push("};"); - } - - if (config.encode) { - push(""); - pushComment([ - "Encodes the specified " + type.name + " message. Does not implicitly {@link " + exportName(type) + ".verify|verify} messages.", - "@function encode", - "@memberof " + exportName(type), - "@static", - "@param {" + exportName(type, !config.forceMessage) + "} " + (config.beautify ? "message" : "m") + " " + type.name + " message or plain object to encode", - "@param {$protobuf.Writer} [" + (config.beautify ? "writer" : "w") + "] Writer to encode to", - "@returns {$protobuf.Writer} Writer" - ]); - buildFunction(type, "encode", protobuf.encoder(type)); - - if (config.delimited) { - push(""); - pushComment([ - "Encodes the specified " + type.name + " message, length delimited. Does not implicitly {@link " + exportName(type) + ".verify|verify} messages.", - "@function encodeDelimited", - "@memberof " + exportName(type), - "@static", - "@param {" + exportName(type, !config.forceMessage) + "} message " + type.name + " message or plain object to encode", - "@param {$protobuf.Writer} [writer] Writer to encode to", - "@returns {$protobuf.Writer} Writer" - ]); - push(escapeName(type.name) + ".encodeDelimited = function encodeDelimited(message, writer) {"); - ++indent; - push("return this.encode(message, writer).ldelim();"); - --indent; - push("};"); - } - } - - if (config.decode) { - push(""); - pushComment([ - "Decodes " + aOrAn(type.name) + " message from the specified reader or buffer.", - "@function decode", - "@memberof " + exportName(type), - "@static", - "@param {$protobuf.Reader|Uint8Array} " + (config.beautify ? "reader" : "r") + " Reader or buffer to decode from", - "@param {number} [" + (config.beautify ? "length" : "l") + "] Message length if known beforehand", - "@returns {" + exportName(type) + "} " + type.name, - "@throws {Error} If the payload is not a reader or valid buffer", - "@throws {$protobuf.util.ProtocolError} If required fields are missing" - ]); - buildFunction(type, "decode", protobuf.decoder(type)); - - if (config.delimited) { - push(""); - pushComment([ - "Decodes " + aOrAn(type.name) + " message from the specified reader or buffer, length delimited.", - "@function decodeDelimited", - "@memberof " + exportName(type), - "@static", - "@param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from", - "@returns {" + exportName(type) + "} " + type.name, - "@throws {Error} If the payload is not a reader or valid buffer", - "@throws {$protobuf.util.ProtocolError} If required fields are missing" - ]); - push(escapeName(type.name) + ".decodeDelimited = function decodeDelimited(reader) {"); - ++indent; - push("if (!(reader instanceof $Reader))"); - ++indent; - push("reader = new $Reader(reader);"); - --indent; - push("return this.decode(reader, reader.uint32());"); - --indent; - push("};"); - } - } - - if (config.verify) { - push(""); - pushComment([ - "Verifies " + aOrAn(type.name) + " message.", - "@function verify", - "@memberof " + exportName(type), - "@static", - "@param {Object.} " + (config.beautify ? "message" : "m") + " Plain object to verify", - "@returns {string|null} `null` if valid, otherwise the reason why it is not" - ]); - buildFunction(type, "verify", protobuf.verifier(type)); - } - - if (config.convert) { - push(""); - pushComment([ - "Creates " + aOrAn(type.name) + " message from a plain object. Also converts values to their respective internal types.", - "@function fromObject", - "@memberof " + exportName(type), - "@static", - "@param {Object.} " + (config.beautify ? "object" : "d") + " Plain object", - "@returns {" + exportName(type) + "} " + type.name - ]); - buildFunction(type, "fromObject", protobuf.converter.fromObject(type)); - - push(""); - pushComment([ - "Creates a plain object from " + aOrAn(type.name) + " message. Also converts values to other types if specified.", - "@function toObject", - "@memberof " + exportName(type), - "@static", - "@param {" + exportName(type) + "} " + (config.beautify ? "message" : "m") + " " + type.name, - "@param {$protobuf.IConversionOptions} [" + (config.beautify ? "options" : "o") + "] Conversion options", - "@returns {Object.} Plain object" - ]); - buildFunction(type, "toObject", protobuf.converter.toObject(type)); - - push(""); - pushComment([ - "Converts this " + type.name + " to JSON.", - "@function toJSON", - "@memberof " + exportName(type), - "@instance", - "@returns {Object.} JSON object" - ]); - push(escapeName(type.name) + ".prototype.toJSON = function toJSON() {"); - ++indent; - push("return this.constructor.toObject(this, $protobuf.util.toJSONOptions);"); - --indent; - push("};"); - } -} - -function buildService(ref, service) { - - push(""); - pushComment([ - "Constructs a new " + service.name + " service.", - service.parent instanceof protobuf.Root ? "@exports " + escapeName(service.name) : "@memberof " + exportName(service.parent), - "@classdesc " + (service.comment || "Represents " + aOrAn(service.name)), - "@extends $protobuf.rpc.Service", - "@constructor", - "@param {$protobuf.RPCImpl} rpcImpl RPC implementation", - "@param {boolean} [requestDelimited=false] Whether requests are length-delimited", - "@param {boolean} [responseDelimited=false] Whether responses are length-delimited" - ]); - push("function " + escapeName(service.name) + "(rpcImpl, requestDelimited, responseDelimited) {"); - ++indent; - push("$protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited);"); - --indent; - push("}"); - push(""); - push("(" + escapeName(service.name) + ".prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = " + escapeName(service.name) + ";"); - - if (config.create) { - push(""); - pushComment([ - "Creates new " + service.name + " service using the specified rpc implementation.", - "@function create", - "@memberof " + exportName(service), - "@static", - "@param {$protobuf.RPCImpl} rpcImpl RPC implementation", - "@param {boolean} [requestDelimited=false] Whether requests are length-delimited", - "@param {boolean} [responseDelimited=false] Whether responses are length-delimited", - "@returns {" + escapeName(service.name) + "} RPC service. Useful where requests and/or responses are streamed." - ]); - push(escapeName(service.name) + ".create = function create(rpcImpl, requestDelimited, responseDelimited) {"); - ++indent; - push("return new this(rpcImpl, requestDelimited, responseDelimited);"); - --indent; - push("};"); - } - - service.methodsArray.forEach(function(method) { - method.resolve(); - var lcName = protobuf.util.lcFirst(method.name), - cbName = escapeName(method.name + "Callback"); - push(""); - pushComment([ - "Callback as used by {@link " + exportName(service) + "#" + escapeName(lcName) + "}.", - // This is a more specialized version of protobuf.rpc.ServiceCallback - "@memberof " + exportName(service), - "@typedef " + cbName, - "@type {function}", - "@param {Error|null} error Error, if any", - "@param {" + exportName(method.resolvedResponseType) + "} [response] " + method.resolvedResponseType.name - ]); - push(""); - pushComment([ - method.comment || "Calls " + method.name + ".", - "@function " + lcName, - "@memberof " + exportName(service), - "@instance", - "@param {" + exportName(method.resolvedRequestType, !config.forceMessage) + "} request " + method.resolvedRequestType.name + " message or plain object", - "@param {" + exportName(service) + "." + cbName + "} callback Node-style callback called with the error, if any, and " + method.resolvedResponseType.name, - "@returns {undefined}", - "@variation 1" - ]); - push("Object.defineProperty(" + escapeName(service.name) + ".prototype" + util.safeProp(lcName) + " = function " + escapeName(lcName) + "(request, callback) {"); - ++indent; - push("return this.rpcCall(" + escapeName(lcName) + ", $root." + exportName(method.resolvedRequestType) + ", $root." + exportName(method.resolvedResponseType) + ", request, callback);"); - --indent; - push("}, \"name\", { value: " + JSON.stringify(method.name) + " });"); - if (config.comments) - push(""); - pushComment([ - method.comment || "Calls " + method.name + ".", - "@function " + lcName, - "@memberof " + exportName(service), - "@instance", - "@param {" + exportName(method.resolvedRequestType, !config.forceMessage) + "} request " + method.resolvedRequestType.name + " message or plain object", - "@returns {Promise<" + exportName(method.resolvedResponseType) + ">} Promise", - "@variation 2" - ]); - }); -} - -function buildEnum(ref, enm) { - - push(""); - var comment = [ - enm.comment || enm.name + " enum.", - enm.parent instanceof protobuf.Root ? "@exports " + escapeName(enm.name) : "@name " + exportName(enm), - config.forceEnumString ? "@enum {number}" : "@enum {string}", - ]; - Object.keys(enm.values).forEach(function(key) { - var val = config.forceEnumString ? key : enm.values[key]; - comment.push((config.forceEnumString ? "@property {string} " : "@property {number} ") + key + "=" + val + " " + (enm.comments[key] || key + " value")); - }); - pushComment(comment); - push(escapeName(ref) + "." + escapeName(enm.name) + " = (function() {"); - ++indent; - push((config.es6 ? "const" : "var") + " valuesById = {}, values = Object.create(valuesById);"); - var aliased = []; - Object.keys(enm.values).forEach(function(key) { - var valueId = enm.values[key]; - var val = config.forceEnumString ? JSON.stringify(key) : valueId; - if (aliased.indexOf(valueId) > -1) - push("values[" + JSON.stringify(key) + "] = " + val + ";"); - else { - push("values[valuesById[" + valueId + "] = " + JSON.stringify(key) + "] = " + val + ";"); - aliased.push(valueId); - } - }); - push("return values;"); - --indent; - push("})();"); -} diff --git a/gateway/node_modules/@apollo/protobufjs/cli/util.js b/gateway/node_modules/@apollo/protobufjs/cli/util.js deleted file mode 100644 index 40ad29d..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/util.js +++ /dev/null @@ -1,183 +0,0 @@ -"use strict"; -var fs = require("fs"), - path = require("path"), - child_process = require("child_process"); - -var semver; - -try { - // installed as a peer dependency - require.resolve("@apollo/protobufjs"); - exports.pathToProtobufJs = "@apollo/protobufjs"; -} catch (e) { - // local development, i.e. forked from github - exports.pathToProtobufJs = ".."; -} - -var protobuf = require(exports.pathToProtobufJs); - -function basenameCompare(a, b) { - var aa = String(a).replace(/\.\w+$/, "").split(/(-?\d*\.?\d+)/g), - bb = String(b).replace(/\.\w+$/, "").split(/(-?\d*\.?\d+)/g); - for (var i = 0, k = Math.min(aa.length, bb.length); i < k; i++) { - var x = parseFloat(aa[i]) || aa[i].toLowerCase(), - y = parseFloat(bb[i]) || bb[i].toLowerCase(); - if (x < y) - return -1; - if (x > y) - return 1; - } - return a.length < b.length ? -1 : 0; -} - -exports.requireAll = function requireAll(dirname) { - dirname = path.join(__dirname, dirname); - var files = fs.readdirSync(dirname).sort(basenameCompare), - all = {}; - files.forEach(function(file) { - var basename = path.basename(file, ".js"), - extname = path.extname(file); - if (extname === ".js") - all[basename] = require(path.join(dirname, file)); - }); - return all; -}; - -exports.traverse = function traverse(current, fn) { - fn(current); - if (current.fieldsArray) - current.fieldsArray.forEach(function(field) { - traverse(field, fn); - }); - if (current.oneofsArray) - current.oneofsArray.forEach(function(oneof) { - traverse(oneof, fn); - }); - if (current.methodsArray) - current.methodsArray.forEach(function(method) { - traverse(method, fn); - }); - if (current.nestedArray) - current.nestedArray.forEach(function(nested) { - traverse(nested, fn); - }); -}; - -exports.traverseResolved = function traverseResolved(current, fn) { - fn(current); - if (current.resolvedType) - traverseResolved(current.resolvedType, fn); - if (current.resolvedKeyType) - traverseResolved(current.resolvedKeyType, fn); - if (current.resolvedRequestType) - traverseResolved(current.resolvedRequestType, fn); - if (current.resolvedResponseType) - traverseResolved(current.resolvedResponseType, fn); -}; - -exports.inspect = function inspect(object, indent) { - if (!object) - return ""; - var chalk = require("chalk"); - var sb = []; - if (!indent) - indent = ""; - var ind = indent ? indent.substring(0, indent.length - 2) + "└ " : ""; - sb.push( - ind + chalk.bold(object.toString()) + (object.visible ? " (visible)" : ""), - indent + chalk.gray("parent: ") + object.parent - ); - if (object instanceof protobuf.Field) { - if (object.extend !== undefined) - sb.push(indent + chalk.gray("extend: ") + object.extend); - if (object.partOf) - sb.push(indent + chalk.gray("oneof : ") + object.oneof); - } - sb.push(""); - if (object.fieldsArray) - object.fieldsArray.forEach(function(field) { - sb.push(inspect(field, indent + " ")); - }); - if (object.oneofsArray) - object.oneofsArray.forEach(function(oneof) { - sb.push(inspect(oneof, indent + " ")); - }); - if (object.methodsArray) - object.methodsArray.forEach(function(service) { - sb.push(inspect(service, indent + " ")); - }); - if (object.nestedArray) - object.nestedArray.forEach(function(nested) { - sb.push(inspect(nested, indent + " ")); - }); - return sb.join("\n"); -}; - -function modExists(name, version) { - for (var i = 0; i < module.paths.length; ++i) { - try { - var pkg = JSON.parse(fs.readFileSync(path.join(module.paths[i], name, "package.json"))); - return semver - ? semver.satisfies(pkg.version, version) - : parseInt(pkg.version, 10) === parseInt(version.replace(/^[\^~]/, ""), 10); // used for semver only - } catch (e) {/**/} - } - return false; -} - -function modInstall(install) { - child_process.execSync("npm --silent install " + (typeof install === "string" ? install : install.join(" ")), { - cwd: __dirname, - stdio: "ignore" - }); -} - -exports.setup = function() { - var pkg = require(path.join(__dirname, "..", "package.json")); - var version = pkg.dependencies["semver"] || pkg.devDependencies["semver"]; - if (!modExists("semver", version)) { - process.stderr.write("installing semver@" + version + "\n"); - modInstall("semver@" + version); - } - semver = require("semver"); // used from now on for version comparison - var install = []; - pkg.cliDependencies.forEach(function(name) { - if (name === "semver") - return; - version = pkg.dependencies[name] || pkg.devDependencies[name]; - if (!modExists(name, version)) { - process.stderr.write("installing " + name + "@" + version + "\n"); - install.push(name + "@" + version); - } - }); - require("../scripts/postinstall"); // emit postinstall warning, if any - if (!install.length) - return; - modInstall(install); -}; - -exports.wrap = function(OUTPUT, options) { - var name = options.wrap || "default"; - var wrap; - try { - // try built-in wrappers first - wrap = fs.readFileSync(path.join(__dirname, "wrappers", name + ".js")).toString("utf8"); - } catch (e) { - // otherwise fetch the custom one - wrap = fs.readFileSync(path.resolve(process.cwd(), name)).toString("utf8"); - } - wrap = wrap.replace(/\$DEPENDENCY/g, JSON.stringify(options.dependency || "@apollo/protobufjs")); - wrap = wrap.replace(/( *)\$OUTPUT;/, function($0, $1) { - return $1.length ? OUTPUT.replace(/^/mg, $1) : OUTPUT; - }); - if (options.lint !== "") - wrap = "/*" + options.lint + "*/\n" + wrap; - return wrap.replace(/\r?\n/g, "\n"); -}; - -exports.pad = function(str, len, l) { - while (str.length < len) - str = l ? str + " " : " " + str; - return str; -}; - diff --git a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/amd.js b/gateway/node_modules/@apollo/protobufjs/cli/wrappers/amd.js deleted file mode 100644 index c43dd73..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/amd.js +++ /dev/null @@ -1,7 +0,0 @@ -define([$DEPENDENCY], function($protobuf) { - "use strict"; - - $OUTPUT; - - return $root; -}); diff --git a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/closure.js b/gateway/node_modules/@apollo/protobufjs/cli/wrappers/closure.js deleted file mode 100644 index c94327c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/closure.js +++ /dev/null @@ -1,7 +0,0 @@ -(function($protobuf) { - "use strict"; - - $OUTPUT; - - return $root; -})(protobuf); diff --git a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/commonjs.js b/gateway/node_modules/@apollo/protobufjs/cli/wrappers/commonjs.js deleted file mode 100644 index 6dc9168..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/commonjs.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -var $protobuf = require($DEPENDENCY); - -$OUTPUT; - -module.exports = $root; diff --git a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/default.js b/gateway/node_modules/@apollo/protobufjs/cli/wrappers/default.js deleted file mode 100644 index 34b29ec..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/default.js +++ /dev/null @@ -1,15 +0,0 @@ -(function(global, factory) { /* global define, require, module */ - - /* AMD */ if (typeof define === 'function' && define.amd) - define([$DEPENDENCY], factory); - - /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports) - module.exports = factory(require($DEPENDENCY)); - -})(this, function($protobuf) { - "use strict"; - - $OUTPUT; - - return $root; -}); diff --git a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/es6.js b/gateway/node_modules/@apollo/protobufjs/cli/wrappers/es6.js deleted file mode 100644 index 5bdc43c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/cli/wrappers/es6.js +++ /dev/null @@ -1,5 +0,0 @@ -import * as $protobuf from $DEPENDENCY; - -$OUTPUT; - -export { $root as default }; diff --git a/gateway/node_modules/@apollo/protobufjs/dist/README.md b/gateway/node_modules/@apollo/protobufjs/dist/README.md deleted file mode 100644 index 93a54cc..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/README.md +++ /dev/null @@ -1,31 +0,0 @@ -This folder contains prebuilt browser versions of the full library. When sending pull requests, it is not required to update these. - -Prebuilt files are in source control to enable pain-free frontend respectively CDN usage: - -CDN usage ---------- - -Development: -``` - -``` - -Production: -``` - -``` - -**NOTE:** Remember to replace the version tag with the exact [release](https://github.com/dcodeIO/protobuf.js/tags) your project depends upon. - -Frontend usage --------------- - -Development: -``` - -``` - -Production: -``` - -``` diff --git a/gateway/node_modules/@apollo/protobufjs/dist/light/README.md b/gateway/node_modules/@apollo/protobufjs/dist/light/README.md deleted file mode 100644 index 2122c3f..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/light/README.md +++ /dev/null @@ -1,31 +0,0 @@ -This folder contains prebuilt browser versions of the light library suitable for use with reflection, static code and JSON descriptors / modules. When sending pull requests, it is not required to update these. - -Prebuilt files are in source control to enable pain-free frontend respectively CDN usage: - -CDN usage ---------- - -Development: -``` - -``` - -Production: -``` - -``` - -**NOTE:** Remember to replace the version tag with the exact [release](https://github.com/dcodeIO/protobuf.js/tags) your project depends upon. - -Frontend usage --------------- - -Development: -``` - -``` - -Production: -``` - -``` diff --git a/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.js b/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.js deleted file mode 100644 index ecef113..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.js +++ /dev/null @@ -1,7175 +0,0 @@ -/*! - * protobuf.js v1.0.5 (c) 2016, daniel wirtz - * compiled fri, 14 aug 2020 05:32:49 utc - * licensed under the bsd-3-clause license - * see: https://github.com/apollographql/protobuf.js for details - */ -(function(undefined){"use strict";(function prelude(modules, cache, entries) { - - // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS - // sources through a conflict-free require shim and is again wrapped within an iife that - // provides a minification-friendly `undefined` var plus a global "use strict" directive - // so that minification can remove the directives of each module. - - function $require(name) { - var $module = cache[name]; - if (!$module) - modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports); - return $module.exports; - } - - var protobuf = $require(entries[0]); - - // Expose globally - protobuf.util.global.protobuf = protobuf; - - // Be nice to AMD - if (typeof define === "function" && define.amd) - define(["long"], function(Long) { - if (Long && Long.isLong) { - protobuf.util.Long = Long; - protobuf.configure(); - } - return protobuf; - }); - - // Be nice to CommonJS - if (typeof module === "object" && module && module.exports) - module.exports = protobuf; - -})/* end of prelude */({1:[function(require,module,exports){ -"use strict"; -module.exports = asPromise; - -/** - * Callback as used by {@link util.asPromise}. - * @typedef asPromiseCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {...*} params Additional arguments - * @returns {undefined} - */ - -/** - * Returns a promise from a node-style callback function. - * @memberof util - * @param {asPromiseCallback} fn Function to call - * @param {*} ctx Function context - * @param {...*} params Function arguments - * @returns {Promise<*>} Promisified function - */ -function asPromise(fn, ctx/*, varargs */) { - var params = new Array(arguments.length - 1), - offset = 0, - index = 2, - pending = true; - while (index < arguments.length) - params[offset++] = arguments[index++]; - return new Promise(function executor(resolve, reject) { - params[offset] = function callback(err/*, varargs */) { - if (pending) { - pending = false; - if (err) - reject(err); - else { - var params = new Array(arguments.length - 1), - offset = 0; - while (offset < params.length) - params[offset++] = arguments[offset]; - resolve.apply(null, params); - } - } - }; - try { - fn.apply(ctx || null, params); - } catch (err) { - if (pending) { - pending = false; - reject(err); - } - } - }); -} - -},{}],2:[function(require,module,exports){ -"use strict"; - -/** - * A minimal base64 implementation for number arrays. - * @memberof util - * @namespace - */ -var base64 = exports; - -/** - * Calculates the byte length of a base64 encoded string. - * @param {string} string Base64 encoded string - * @returns {number} Byte length - */ -base64.length = function length(string) { - var p = string.length; - if (!p) - return 0; - var n = 0; - while (--p % 4 > 1 && string.charAt(p) === "=") - ++n; - return Math.ceil(string.length * 3) / 4 - n; -}; - -// Base64 encoding table -var b64 = new Array(64); - -// Base64 decoding table -var s64 = new Array(123); - -// 65..90, 97..122, 48..57, 43, 47 -for (var i = 0; i < 64;) - s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++; - -/** - * Encodes a buffer to a base64 encoded string. - * @param {Uint8Array} buffer Source buffer - * @param {number} start Source start - * @param {number} end Source end - * @returns {string} Base64 encoded string - */ -base64.encode = function encode(buffer, start, end) { - var parts = null, - chunk = []; - var i = 0, // output index - j = 0, // goto index - t; // temporary - while (start < end) { - var b = buffer[start++]; - switch (j) { - case 0: - chunk[i++] = b64[b >> 2]; - t = (b & 3) << 4; - j = 1; - break; - case 1: - chunk[i++] = b64[t | b >> 4]; - t = (b & 15) << 2; - j = 2; - break; - case 2: - chunk[i++] = b64[t | b >> 6]; - chunk[i++] = b64[b & 63]; - j = 0; - break; - } - if (i > 8191) { - (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk)); - i = 0; - } - } - if (j) { - chunk[i++] = b64[t]; - chunk[i++] = 61; - if (j === 1) - chunk[i++] = 61; - } - if (parts) { - if (i) - parts.push(String.fromCharCode.apply(String, chunk.slice(0, i))); - return parts.join(""); - } - return String.fromCharCode.apply(String, chunk.slice(0, i)); -}; - -var invalidEncoding = "invalid encoding"; - -/** - * Decodes a base64 encoded string to a buffer. - * @param {string} string Source string - * @param {Uint8Array} buffer Destination buffer - * @param {number} offset Destination offset - * @returns {number} Number of bytes written - * @throws {Error} If encoding is invalid - */ -base64.decode = function decode(string, buffer, offset) { - var start = offset; - var j = 0, // goto index - t; // temporary - for (var i = 0; i < string.length;) { - var c = string.charCodeAt(i++); - if (c === 61 && j > 1) - break; - if ((c = s64[c]) === undefined) - throw Error(invalidEncoding); - switch (j) { - case 0: - t = c; - j = 1; - break; - case 1: - buffer[offset++] = t << 2 | (c & 48) >> 4; - t = c; - j = 2; - break; - case 2: - buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2; - t = c; - j = 3; - break; - case 3: - buffer[offset++] = (t & 3) << 6 | c; - j = 0; - break; - } - } - if (j === 1) - throw Error(invalidEncoding); - return offset - start; -}; - -/** - * Tests if the specified string appears to be base64 encoded. - * @param {string} string String to test - * @returns {boolean} `true` if probably base64 encoded, otherwise false - */ -base64.test = function test(string) { - return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string); -}; - -},{}],3:[function(require,module,exports){ -"use strict"; -module.exports = codegen; - -/** - * Begins generating a function. - * @memberof util - * @param {string[]} functionParams Function parameter names - * @param {string} [functionName] Function name if not anonymous - * @returns {Codegen} Appender that appends code to the function's body - */ -function codegen(functionParams, functionName) { - - /* istanbul ignore if */ - if (typeof functionParams === "string") { - functionName = functionParams; - functionParams = undefined; - } - - var body = []; - - /** - * Appends code to the function's body or finishes generation. - * @typedef Codegen - * @type {function} - * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any - * @param {...*} [formatParams] Format parameters - * @returns {Codegen|Function} Itself or the generated function if finished - * @throws {Error} If format parameter counts do not match - */ - - function Codegen(formatStringOrScope) { - // note that explicit array handling below makes this ~50% faster - - // finish the function - if (typeof formatStringOrScope !== "string") { - var source = toString(); - if (codegen.verbose) - console.log("codegen: " + source); // eslint-disable-line no-console - source = "return " + source; - if (formatStringOrScope) { - var scopeKeys = Object.keys(formatStringOrScope), - scopeParams = new Array(scopeKeys.length + 1), - scopeValues = new Array(scopeKeys.length), - scopeOffset = 0; - while (scopeOffset < scopeKeys.length) { - scopeParams[scopeOffset] = scopeKeys[scopeOffset]; - scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]]; - } - scopeParams[scopeOffset] = source; - return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func - } - return Function(source)(); // eslint-disable-line no-new-func - } - - // otherwise append to body - var formatParams = new Array(arguments.length - 1), - formatOffset = 0; - while (formatOffset < formatParams.length) - formatParams[formatOffset] = arguments[++formatOffset]; - formatOffset = 0; - formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) { - var value = formatParams[formatOffset++]; - switch ($1) { - case "d": case "f": return String(Number(value)); - case "i": return String(Math.floor(value)); - case "j": return JSON.stringify(value); - case "s": return String(value); - } - return "%"; - }); - if (formatOffset !== formatParams.length) - throw Error("parameter count mismatch"); - body.push(formatStringOrScope); - return Codegen; - } - - function toString(functionNameOverride) { - return "function " + (functionNameOverride || functionName || "") + "(" + (functionParams && functionParams.join(",") || "") + "){\n " + body.join("\n ") + "\n}"; - } - - Codegen.toString = toString; - return Codegen; -} - -/** - * Begins generating a function. - * @memberof util - * @function codegen - * @param {string} [functionName] Function name if not anonymous - * @returns {Codegen} Appender that appends code to the function's body - * @variation 2 - */ - -/** - * When set to `true`, codegen will log generated code to console. Useful for debugging. - * @name util.codegen.verbose - * @type {boolean} - */ -codegen.verbose = false; - -},{}],4:[function(require,module,exports){ -"use strict"; -module.exports = EventEmitter; - -/** - * Constructs a new event emitter instance. - * @classdesc A minimal event emitter. - * @memberof util - * @constructor - */ -function EventEmitter() { - - /** - * Registered listeners. - * @type {Object.} - * @private - */ - this._listeners = {}; -} - -/** - * Registers an event listener. - * @param {string} evt Event name - * @param {function} fn Listener - * @param {*} [ctx] Listener context - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.on = function on(evt, fn, ctx) { - (this._listeners[evt] || (this._listeners[evt] = [])).push({ - fn : fn, - ctx : ctx || this - }); - return this; -}; - -/** - * Removes an event listener or any matching listeners if arguments are omitted. - * @param {string} [evt] Event name. Removes all listeners if omitted. - * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted. - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.off = function off(evt, fn) { - if (evt === undefined) - this._listeners = {}; - else { - if (fn === undefined) - this._listeners[evt] = []; - else { - var listeners = this._listeners[evt]; - for (var i = 0; i < listeners.length;) - if (listeners[i].fn === fn) - listeners.splice(i, 1); - else - ++i; - } - } - return this; -}; - -/** - * Emits an event by calling its listeners with the specified arguments. - * @param {string} evt Event name - * @param {...*} args Arguments - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.emit = function emit(evt) { - var listeners = this._listeners[evt]; - if (listeners) { - var args = [], - i = 1; - for (; i < arguments.length;) - args.push(arguments[i++]); - for (i = 0; i < listeners.length;) - listeners[i].fn.apply(listeners[i++].ctx, args); - } - return this; -}; - -},{}],5:[function(require,module,exports){ -"use strict"; -module.exports = fetch; - -var asPromise = require(1), - inquire = require(7); - -var fs = inquire("fs"); - -/** - * Node-style callback as used by {@link util.fetch}. - * @typedef FetchCallback - * @type {function} - * @param {?Error} error Error, if any, otherwise `null` - * @param {string} [contents] File contents, if there hasn't been an error - * @returns {undefined} - */ - -/** - * Options as used by {@link util.fetch}. - * @typedef FetchOptions - * @type {Object} - * @property {boolean} [binary=false] Whether expecting a binary response - * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest - */ - -/** - * Fetches the contents of a file. - * @memberof util - * @param {string} filename File path or url - * @param {FetchOptions} options Fetch options - * @param {FetchCallback} callback Callback function - * @returns {undefined} - */ -function fetch(filename, options, callback) { - if (typeof options === "function") { - callback = options; - options = {}; - } else if (!options) - options = {}; - - if (!callback) - return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this - - // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found. - if (!options.xhr && fs && fs.readFile) - return fs.readFile(filename, function fetchReadFileCallback(err, contents) { - return err && typeof XMLHttpRequest !== "undefined" - ? fetch.xhr(filename, options, callback) - : err - ? callback(err) - : callback(null, options.binary ? contents : contents.toString("utf8")); - }); - - // use the XHR version otherwise. - return fetch.xhr(filename, options, callback); -} - -/** - * Fetches the contents of a file. - * @name util.fetch - * @function - * @param {string} path File path or url - * @param {FetchCallback} callback Callback function - * @returns {undefined} - * @variation 2 - */ - -/** - * Fetches the contents of a file. - * @name util.fetch - * @function - * @param {string} path File path or url - * @param {FetchOptions} [options] Fetch options - * @returns {Promise} Promise - * @variation 3 - */ - -/**/ -fetch.xhr = function fetch_xhr(filename, options, callback) { - var xhr = new XMLHttpRequest(); - xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() { - - if (xhr.readyState !== 4) - return undefined; - - // local cors security errors return status 0 / empty string, too. afaik this cannot be - // reliably distinguished from an actually empty file for security reasons. feel free - // to send a pull request if you are aware of a solution. - if (xhr.status !== 0 && xhr.status !== 200) - return callback(Error("status " + xhr.status)); - - // if binary data is expected, make sure that some sort of array is returned, even if - // ArrayBuffers are not supported. the binary string fallback, however, is unsafe. - if (options.binary) { - var buffer = xhr.response; - if (!buffer) { - buffer = []; - for (var i = 0; i < xhr.responseText.length; ++i) - buffer.push(xhr.responseText.charCodeAt(i) & 255); - } - return callback(null, typeof Uint8Array !== "undefined" ? new Uint8Array(buffer) : buffer); - } - return callback(null, xhr.responseText); - }; - - if (options.binary) { - // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers - if ("overrideMimeType" in xhr) - xhr.overrideMimeType("text/plain; charset=x-user-defined"); - xhr.responseType = "arraybuffer"; - } - - xhr.open("GET", filename); - xhr.send(); -}; - -},{"1":1,"7":7}],6:[function(require,module,exports){ -"use strict"; - -module.exports = factory(factory); - -/** - * Reads / writes floats / doubles from / to buffers. - * @name util.float - * @namespace - */ - -/** - * Writes a 32 bit float to a buffer using little endian byte order. - * @name util.float.writeFloatLE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Writes a 32 bit float to a buffer using big endian byte order. - * @name util.float.writeFloatBE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Reads a 32 bit float from a buffer using little endian byte order. - * @name util.float.readFloatLE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Reads a 32 bit float from a buffer using big endian byte order. - * @name util.float.readFloatBE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Writes a 64 bit double to a buffer using little endian byte order. - * @name util.float.writeDoubleLE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Writes a 64 bit double to a buffer using big endian byte order. - * @name util.float.writeDoubleBE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Reads a 64 bit double from a buffer using little endian byte order. - * @name util.float.readDoubleLE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Reads a 64 bit double from a buffer using big endian byte order. - * @name util.float.readDoubleBE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -// Factory function for the purpose of node-based testing in modified global environments -function factory(exports) { - - // float: typed array - if (typeof Float32Array !== "undefined") (function() { - - var f32 = new Float32Array([ -0 ]), - f8b = new Uint8Array(f32.buffer), - le = f8b[3] === 128; - - function writeFloat_f32_cpy(val, buf, pos) { - f32[0] = val; - buf[pos ] = f8b[0]; - buf[pos + 1] = f8b[1]; - buf[pos + 2] = f8b[2]; - buf[pos + 3] = f8b[3]; - } - - function writeFloat_f32_rev(val, buf, pos) { - f32[0] = val; - buf[pos ] = f8b[3]; - buf[pos + 1] = f8b[2]; - buf[pos + 2] = f8b[1]; - buf[pos + 3] = f8b[0]; - } - - /* istanbul ignore next */ - exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev; - /* istanbul ignore next */ - exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy; - - function readFloat_f32_cpy(buf, pos) { - f8b[0] = buf[pos ]; - f8b[1] = buf[pos + 1]; - f8b[2] = buf[pos + 2]; - f8b[3] = buf[pos + 3]; - return f32[0]; - } - - function readFloat_f32_rev(buf, pos) { - f8b[3] = buf[pos ]; - f8b[2] = buf[pos + 1]; - f8b[1] = buf[pos + 2]; - f8b[0] = buf[pos + 3]; - return f32[0]; - } - - /* istanbul ignore next */ - exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev; - /* istanbul ignore next */ - exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy; - - // float: ieee754 - })(); else (function() { - - function writeFloat_ieee754(writeUint, val, buf, pos) { - var sign = val < 0 ? 1 : 0; - if (sign) - val = -val; - if (val === 0) - writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos); - else if (isNaN(val)) - writeUint(2143289344, buf, pos); - else if (val > 3.4028234663852886e+38) // +-Infinity - writeUint((sign << 31 | 2139095040) >>> 0, buf, pos); - else if (val < 1.1754943508222875e-38) // denormal - writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos); - else { - var exponent = Math.floor(Math.log(val) / Math.LN2), - mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607; - writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos); - } - } - - exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE); - exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE); - - function readFloat_ieee754(readUint, buf, pos) { - var uint = readUint(buf, pos), - sign = (uint >> 31) * 2 + 1, - exponent = uint >>> 23 & 255, - mantissa = uint & 8388607; - return exponent === 255 - ? mantissa - ? NaN - : sign * Infinity - : exponent === 0 // denormal - ? sign * 1.401298464324817e-45 * mantissa - : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608); - } - - exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE); - exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE); - - })(); - - // double: typed array - if (typeof Float64Array !== "undefined") (function() { - - var f64 = new Float64Array([-0]), - f8b = new Uint8Array(f64.buffer), - le = f8b[7] === 128; - - function writeDouble_f64_cpy(val, buf, pos) { - f64[0] = val; - buf[pos ] = f8b[0]; - buf[pos + 1] = f8b[1]; - buf[pos + 2] = f8b[2]; - buf[pos + 3] = f8b[3]; - buf[pos + 4] = f8b[4]; - buf[pos + 5] = f8b[5]; - buf[pos + 6] = f8b[6]; - buf[pos + 7] = f8b[7]; - } - - function writeDouble_f64_rev(val, buf, pos) { - f64[0] = val; - buf[pos ] = f8b[7]; - buf[pos + 1] = f8b[6]; - buf[pos + 2] = f8b[5]; - buf[pos + 3] = f8b[4]; - buf[pos + 4] = f8b[3]; - buf[pos + 5] = f8b[2]; - buf[pos + 6] = f8b[1]; - buf[pos + 7] = f8b[0]; - } - - /* istanbul ignore next */ - exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev; - /* istanbul ignore next */ - exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy; - - function readDouble_f64_cpy(buf, pos) { - f8b[0] = buf[pos ]; - f8b[1] = buf[pos + 1]; - f8b[2] = buf[pos + 2]; - f8b[3] = buf[pos + 3]; - f8b[4] = buf[pos + 4]; - f8b[5] = buf[pos + 5]; - f8b[6] = buf[pos + 6]; - f8b[7] = buf[pos + 7]; - return f64[0]; - } - - function readDouble_f64_rev(buf, pos) { - f8b[7] = buf[pos ]; - f8b[6] = buf[pos + 1]; - f8b[5] = buf[pos + 2]; - f8b[4] = buf[pos + 3]; - f8b[3] = buf[pos + 4]; - f8b[2] = buf[pos + 5]; - f8b[1] = buf[pos + 6]; - f8b[0] = buf[pos + 7]; - return f64[0]; - } - - /* istanbul ignore next */ - exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev; - /* istanbul ignore next */ - exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy; - - // double: ieee754 - })(); else (function() { - - function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) { - var sign = val < 0 ? 1 : 0; - if (sign) - val = -val; - if (val === 0) { - writeUint(0, buf, pos + off0); - writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1); - } else if (isNaN(val)) { - writeUint(0, buf, pos + off0); - writeUint(2146959360, buf, pos + off1); - } else if (val > 1.7976931348623157e+308) { // +-Infinity - writeUint(0, buf, pos + off0); - writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1); - } else { - var mantissa; - if (val < 2.2250738585072014e-308) { // denormal - mantissa = val / 5e-324; - writeUint(mantissa >>> 0, buf, pos + off0); - writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1); - } else { - var exponent = Math.floor(Math.log(val) / Math.LN2); - if (exponent === 1024) - exponent = 1023; - mantissa = val * Math.pow(2, -exponent); - writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0); - writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1); - } - } - } - - exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4); - exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0); - - function readDouble_ieee754(readUint, off0, off1, buf, pos) { - var lo = readUint(buf, pos + off0), - hi = readUint(buf, pos + off1); - var sign = (hi >> 31) * 2 + 1, - exponent = hi >>> 20 & 2047, - mantissa = 4294967296 * (hi & 1048575) + lo; - return exponent === 2047 - ? mantissa - ? NaN - : sign * Infinity - : exponent === 0 // denormal - ? sign * 5e-324 * mantissa - : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496); - } - - exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4); - exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0); - - })(); - - return exports; -} - -// uint helpers - -function writeUintLE(val, buf, pos) { - buf[pos ] = val & 255; - buf[pos + 1] = val >>> 8 & 255; - buf[pos + 2] = val >>> 16 & 255; - buf[pos + 3] = val >>> 24; -} - -function writeUintBE(val, buf, pos) { - buf[pos ] = val >>> 24; - buf[pos + 1] = val >>> 16 & 255; - buf[pos + 2] = val >>> 8 & 255; - buf[pos + 3] = val & 255; -} - -function readUintLE(buf, pos) { - return (buf[pos ] - | buf[pos + 1] << 8 - | buf[pos + 2] << 16 - | buf[pos + 3] << 24) >>> 0; -} - -function readUintBE(buf, pos) { - return (buf[pos ] << 24 - | buf[pos + 1] << 16 - | buf[pos + 2] << 8 - | buf[pos + 3]) >>> 0; -} - -},{}],7:[function(require,module,exports){ -"use strict"; -module.exports = inquire; - -/** - * Requires a module only if available. - * @memberof util - * @param {string} moduleName Module to require - * @returns {?Object} Required module if available and not empty, otherwise `null` - */ -function inquire(moduleName) { - try { - var mod = eval("quire".replace(/^/,"re"))(moduleName); // eslint-disable-line no-eval - if (mod && (mod.length || Object.keys(mod).length)) - return mod; - } catch (e) {} // eslint-disable-line no-empty - return null; -} - -},{}],8:[function(require,module,exports){ -"use strict"; - -/** - * A minimal path module to resolve Unix, Windows and URL paths alike. - * @memberof util - * @namespace - */ -var path = exports; - -var isAbsolute = -/** - * Tests if the specified path is absolute. - * @param {string} path Path to test - * @returns {boolean} `true` if path is absolute - */ -path.isAbsolute = function isAbsolute(path) { - return /^(?:\/|\w+:)/.test(path); -}; - -var normalize = -/** - * Normalizes the specified path. - * @param {string} path Path to normalize - * @returns {string} Normalized path - */ -path.normalize = function normalize(path) { - path = path.replace(/\\/g, "/") - .replace(/\/{2,}/g, "/"); - var parts = path.split("/"), - absolute = isAbsolute(path), - prefix = ""; - if (absolute) - prefix = parts.shift() + "/"; - for (var i = 0; i < parts.length;) { - if (parts[i] === "..") { - if (i > 0 && parts[i - 1] !== "..") - parts.splice(--i, 2); - else if (absolute) - parts.splice(i, 1); - else - ++i; - } else if (parts[i] === ".") - parts.splice(i, 1); - else - ++i; - } - return prefix + parts.join("/"); -}; - -/** - * Resolves the specified include path against the specified origin path. - * @param {string} originPath Path to the origin file - * @param {string} includePath Include path relative to origin path - * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized - * @returns {string} Path to the include file - */ -path.resolve = function resolve(originPath, includePath, alreadyNormalized) { - if (!alreadyNormalized) - includePath = normalize(includePath); - if (isAbsolute(includePath)) - return includePath; - if (!alreadyNormalized) - originPath = normalize(originPath); - return (originPath = originPath.replace(/(?:\/|^)[^/]+$/, "")).length ? normalize(originPath + "/" + includePath) : includePath; -}; - -},{}],9:[function(require,module,exports){ -"use strict"; -module.exports = pool; - -/** - * An allocator as used by {@link util.pool}. - * @typedef PoolAllocator - * @type {function} - * @param {number} size Buffer size - * @returns {Uint8Array} Buffer - */ - -/** - * A slicer as used by {@link util.pool}. - * @typedef PoolSlicer - * @type {function} - * @param {number} start Start offset - * @param {number} end End offset - * @returns {Uint8Array} Buffer slice - * @this {Uint8Array} - */ - -/** - * A general purpose buffer pool. - * @memberof util - * @function - * @param {PoolAllocator} alloc Allocator - * @param {PoolSlicer} slice Slicer - * @param {number} [size=8192] Slab size - * @returns {PoolAllocator} Pooled allocator - */ -function pool(alloc, slice, size) { - var SIZE = size || 8192; - var MAX = SIZE >>> 1; - var slab = null; - var offset = SIZE; - return function pool_alloc(size) { - if (size < 1 || size > MAX) - return alloc(size); - if (offset + size > SIZE) { - slab = alloc(SIZE); - offset = 0; - } - var buf = slice.call(slab, offset, offset += size); - if (offset & 7) // align to 32 bit - offset = (offset | 7) + 1; - return buf; - }; -} - -},{}],10:[function(require,module,exports){ -"use strict"; - -/** - * A minimal UTF8 implementation for number arrays. - * @memberof util - * @namespace - */ -var utf8 = exports; - -/** - * Calculates the UTF8 byte length of a string. - * @param {string} string String - * @returns {number} Byte length - */ -utf8.length = function utf8_length(string) { - var len = 0, - c = 0; - for (var i = 0; i < string.length; ++i) { - c = string.charCodeAt(i); - if (c < 128) - len += 1; - else if (c < 2048) - len += 2; - else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) { - ++i; - len += 4; - } else - len += 3; - } - return len; -}; - -/** - * Reads UTF8 bytes as a string. - * @param {Uint8Array} buffer Source buffer - * @param {number} start Source start - * @param {number} end Source end - * @returns {string} String read - */ -utf8.read = function utf8_read(buffer, start, end) { - var len = end - start; - if (len < 1) - return ""; - var parts = null, - chunk = [], - i = 0, // char offset - t; // temporary - while (start < end) { - t = buffer[start++]; - if (t < 128) - chunk[i++] = t; - else if (t > 191 && t < 224) - chunk[i++] = (t & 31) << 6 | buffer[start++] & 63; - else if (t > 239 && t < 365) { - t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000; - chunk[i++] = 0xD800 + (t >> 10); - chunk[i++] = 0xDC00 + (t & 1023); - } else - chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63; - if (i > 8191) { - (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk)); - i = 0; - } - } - if (parts) { - if (i) - parts.push(String.fromCharCode.apply(String, chunk.slice(0, i))); - return parts.join(""); - } - return String.fromCharCode.apply(String, chunk.slice(0, i)); -}; - -/** - * Writes a string as UTF8 bytes. - * @param {string} string Source string - * @param {Uint8Array} buffer Destination buffer - * @param {number} offset Destination offset - * @returns {number} Bytes written - */ -utf8.write = function utf8_write(string, buffer, offset) { - var start = offset, - c1, // character 1 - c2; // character 2 - for (var i = 0; i < string.length; ++i) { - c1 = string.charCodeAt(i); - if (c1 < 128) { - buffer[offset++] = c1; - } else if (c1 < 2048) { - buffer[offset++] = c1 >> 6 | 192; - buffer[offset++] = c1 & 63 | 128; - } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) { - c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF); - ++i; - buffer[offset++] = c1 >> 18 | 240; - buffer[offset++] = c1 >> 12 & 63 | 128; - buffer[offset++] = c1 >> 6 & 63 | 128; - buffer[offset++] = c1 & 63 | 128; - } else { - buffer[offset++] = c1 >> 12 | 224; - buffer[offset++] = c1 >> 6 & 63 | 128; - buffer[offset++] = c1 & 63 | 128; - } - } - return offset - start; -}; - -},{}],11:[function(require,module,exports){ -"use strict"; -/** - * Runtime message from/to plain object converters. - * @namespace - */ -var converter = exports; - -var Enum = require(14), - util = require(33); - -/** - * Generates a partial value fromObject conveter. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {number} fieldIndex Field index - * @param {string} prop Property reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genValuePartial_fromObject(gen, field, fieldIndex, prop, ref) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - if (ref === undefined) { - ref = "d" + prop; - } - if (field.resolvedType) { - if (field.resolvedType instanceof Enum) { gen - ("switch(%s){", ref); - for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) { - if (field.repeated && values[keys[i]] === field.typeDefault) gen - ("default:"); - gen - ("case%j:", keys[i]) - ("case %i:", values[keys[i]]) - ("m%s=%j", prop, values[keys[i]]) - ("break"); - } gen - ("}"); - } else gen - ("if(typeof %s!==\"object\")", ref) - ("throw TypeError(%j)", field.fullName + ": object expected") - ("m%s=types[%i].fromObject(%s)", prop, fieldIndex, ref); - } else { - var isUnsigned = false; - switch (field.type) { - case "double": - case "float": gen - ("m%s=Number(%s)", prop, ref); // also catches "NaN", "Infinity" - break; - case "uint32": - case "fixed32": gen - ("m%s=%s>>>0", prop, ref); - break; - case "int32": - case "sint32": - case "sfixed32": gen - ("m%s=%s|0", prop, ref); - break; - case "uint64": - isUnsigned = true; - // eslint-disable-line no-fallthrough - case "int64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(util.Long)") - ("(m%s=util.Long.fromValue(%s)).unsigned=%j", prop, ref, isUnsigned) - ("else if(typeof %s===\"string\")", ref) - ("m%s=parseInt(%s,10)", prop, ref) - ("else if(typeof %s===\"number\")", ref) - ("m%s=%s", prop, ref) - ("else if(typeof %s===\"object\")", ref) - ("m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)", prop, ref, ref, isUnsigned ? "true" : ""); - break; - case "bytes": gen - ("if(typeof %s===\"string\")", ref) - ("util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)", ref, prop, ref) - ("else if(%s.length)", ref) - ("m%s=%s", prop, ref); - break; - case "string": gen - ("m%s=String(%s)", prop, ref); - break; - case "bool": gen - ("m%s=Boolean(%s)", prop, ref); - break; - /* default: gen - ("m%s=%s", prop, ref); - break; */ - } - } - return gen; - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} - -/** - * Generates a plain object to runtime message converter specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -converter.fromObject = function fromObject(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var fields = mtype.fieldsArray; - var gen = util.codegen(["d"], mtype.name + "$fromObject") - ("if(d instanceof this.ctor)") - ("return d"); - if (!fields.length) return gen - ("return new this.ctor"); - gen - ("var m=new this.ctor"); - for (var i = 0; i < fields.length; ++i) { - var field = fields[i].resolve(), - prop = util.safeProp(field.name); - - // Map fields - if (field.map) { gen - ("if(d%s){", prop) - ("if(typeof d%s!==\"object\")", prop) - ("throw TypeError(%j)", field.fullName + ": object expected") - ("m%s={}", prop) - ("for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s", prop, prop, prop, prop, isUnsigned ? "true": "", prop); - break; - case "bytes": gen - ("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s", prop, prop, prop, prop, prop); - break; - default: gen - ("d%s=m%s", prop, prop); - break; - } - } - return gen; - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} - -/** - * Generates a runtime message to plain object converter specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -converter.toObject = function toObject(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById); - if (!fields.length) - return util.codegen()("return {}"); - var gen = util.codegen(["m", "o"], mtype.name + "$toObject") - ("if(!o)") - ("o={}") - ("var d={}"); - - var repeatedFields = [], - mapFields = [], - normalFields = [], - i = 0; - for (; i < fields.length; ++i) - if (!fields[i].partOf) - ( fields[i].resolve().repeated ? repeatedFields - : fields[i].map ? mapFields - : normalFields).push(fields[i]); - - if (repeatedFields.length) { gen - ("if(o.arrays||o.defaults){"); - for (i = 0; i < repeatedFields.length; ++i) gen - ("d%s=[]", util.safeProp(repeatedFields[i].name)); - gen - ("}"); - } - - if (mapFields.length) { gen - ("if(o.objects||o.defaults){"); - for (i = 0; i < mapFields.length; ++i) gen - ("d%s={}", util.safeProp(mapFields[i].name)); - gen - ("}"); - } - - if (normalFields.length) { gen - ("if(o.defaults){"); - for (i = 0; i < normalFields.length; ++i) { - var field = normalFields[i], - prop = util.safeProp(field.name); - if (field.resolvedType instanceof Enum) gen - ("d%s=o.enums===String?%j:%j", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault); - else if (field.long) gen - ("if(util.Long){") - ("var n=new util.Long(%i,%i,%j)", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned) - ("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n", prop) - ("}else") - ("d%s=o.longs===String?%j:%i", prop, field.typeDefault.toString(), field.typeDefault.toNumber()); - else if (field.bytes) { - var arrayDefault = "[" + Array.prototype.slice.call(field.typeDefault).join(",") + "]"; - gen - ("if(o.bytes===String)d%s=%j", prop, String.fromCharCode.apply(String, field.typeDefault)) - ("else{") - ("d%s=%s", prop, arrayDefault) - ("if(o.bytes!==Array)d%s=util.newBuffer(d%s)", prop, prop) - ("}"); - } else gen - ("d%s=%j", prop, field.typeDefault); // also messages (=null) - } gen - ("}"); - } - var hasKs2 = false; - for (i = 0; i < fields.length; ++i) { - var field = fields[i], - index = mtype._fieldsArray.indexOf(field), - prop = util.safeProp(field.name); - if (field.map) { - if (!hasKs2) { hasKs2 = true; gen - ("var ks2"); - } gen - ("if(m%s&&(ks2=Object.keys(m%s)).length){", prop, prop) - ("d%s={}", prop) - ("for(var j=0;j>>3){"); - - var i = 0; - for (; i < /* initializes */ mtype.fieldsArray.length; ++i) { - var field = mtype._fieldsArray[i].resolve(), - type = field.resolvedType instanceof Enum ? "int32" : field.type, - ref = "m" + util.safeProp(field.name); gen - ("case %i:", field.id); - - // Map fields - if (field.map) { gen - ("r.skip().pos++") // assumes id 1 + key wireType - ("if(%s===util.emptyObject)", ref) - ("%s={}", ref) - ("k=r.%s()", field.keyType) - ("r.pos++"); // assumes id 2 + value wireType - if (types.long[field.keyType] !== undefined) { - if (types.basic[type] === undefined) gen - ("%s[typeof k===\"object\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())", ref, i); // can't be groups - else gen - ("%s[typeof k===\"object\"?util.longToHash(k):k]=r.%s()", ref, type); - } else { - if (types.basic[type] === undefined) gen - ("%s[k]=types[%i].decode(r,r.uint32())", ref, i); // can't be groups - else gen - ("%s[k]=r.%s()", ref, type); - } - - // Repeated fields - } else if (field.repeated) { gen - - ("if(!(%s&&%s.length))", ref, ref) - ("%s=[]", ref); - - // Packable (always check for forward and backward compatiblity) - if (types.packed[type] !== undefined) gen - ("if((t&7)===2){") - ("var c2=r.uint32()+r.pos") - ("while(r.pos>> 0, (field.id << 3 | 4) >>> 0) - : gen("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()", fieldIndex, ref, (field.id << 3 | 2) >>> 0); -} - -/** - * Generates an encoder specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -function encoder(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var gen = util.codegen(["m", "w"], mtype.name + "$encode") - ("if(!w)") - ("w=Writer.create()"); - - var i, ref; - - // "when a message is serialized its known fields should be written sequentially by field number" - var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById); - - for (var i = 0; i < fields.length; ++i) { - var field = fields[i].resolve(), - index = mtype._fieldsArray.indexOf(field), - type = field.resolvedType instanceof Enum ? "int32" : field.type, - wireType = types.basic[type]; - ref = "m" + util.safeProp(field.name); - - // Map fields - if (field.map) { - gen - ("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){", ref, field.name) // !== undefined && !== null - ("for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType); - if (wireType === undefined) gen - ("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()", index, ref); // can't be groups - else gen - (".uint32(%i).%s(%s[ks[i]]).ldelim()", 16 | wireType, type, ref); - gen - ("}") - ("}"); - - // Repeated fields - } else if (field.repeated) { - var arrayRef = ref; - if (field.useToArray()) { - arrayRef = "array" + field.id; - gen("var %s", arrayRef); - gen("if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }", - ref, ref, arrayRef, ref, arrayRef, ref); - } - gen("if(%s!=null&&%s.length){", arrayRef, arrayRef); // !== undefined && !== null - // Packed repeated - if (field.packed && types.packed[type] !== undefined) { gen - - ("w.uint32(%i).fork()", (field.id << 3 | 2) >>> 0) - ("for(var i=0;i<%s.length;++i)", arrayRef) - ("w.%s(%s[i])", type, arrayRef) - ("w.ldelim()"); - - // Non-packed - } else { gen - - ("for(var i=0;i<%s.length;++i)", arrayRef); - if (wireType === undefined) - genTypePartial(gen, field, index, arrayRef + "[i]"); - else gen - ("w.uint32(%i).%s(%s[i])", (field.id << 3 | wireType) >>> 0, type, arrayRef); - - } gen - ("}"); - - // Non-repeated - } else { - if (field.optional) gen - ("if(%s!=null&&Object.hasOwnProperty.call(m,%j))", ref, field.name); // !== undefined && !== null - - if (wireType === undefined) - genTypePartial(gen, field, index, ref); - else gen - ("w.uint32(%i).%s(%s)", (field.id << 3 | wireType) >>> 0, type, ref); - - } - } - - return gen - ("return w"); - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} - -},{"14":14,"32":32,"33":33}],14:[function(require,module,exports){ -"use strict"; -module.exports = Enum; - -// extends ReflectionObject -var ReflectionObject = require(22); -((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = "Enum"; - -var Namespace = require(21), - util = require(33); - -/** - * Constructs a new enum instance. - * @classdesc Reflected enum. - * @extends ReflectionObject - * @constructor - * @param {string} name Unique name within its namespace - * @param {Object.} [values] Enum values as an object, by name - * @param {Object.} [options] Declared options - * @param {string} [comment] The comment for this enum - * @param {Object.} [comments] The value comments for this enum - */ -function Enum(name, values, options, comment, comments) { - ReflectionObject.call(this, name, options); - - if (values && typeof values !== "object") - throw TypeError("values must be an object"); - - /** - * Enum values by id. - * @type {Object.} - */ - this.valuesById = {}; - - /** - * Enum values by name. - * @type {Object.} - */ - this.values = Object.create(this.valuesById); // toJSON, marker - - /** - * Enum comment text. - * @type {string|null} - */ - this.comment = comment; - - /** - * Value comment texts, if any. - * @type {Object.} - */ - this.comments = comments || {}; - - /** - * Reserved ranges, if any. - * @type {Array.} - */ - this.reserved = undefined; // toJSON - - // Note that values inherit valuesById on their prototype which makes them a TypeScript- - // compatible enum. This is used by pbts to write actual enum definitions that work for - // static and reflection code alike instead of emitting generic object definitions. - - if (values) - for (var keys = Object.keys(values), i = 0; i < keys.length; ++i) - if (typeof values[keys[i]] === "number") // use forward entries only - this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i]; -} - -/** - * Enum descriptor. - * @interface IEnum - * @property {Object.} values Enum values - * @property {Object.} [options] Enum options - */ - -/** - * Constructs an enum from an enum descriptor. - * @param {string} name Enum name - * @param {IEnum} json Enum descriptor - * @returns {Enum} Created enum - * @throws {TypeError} If arguments are invalid - */ -Enum.fromJSON = function fromJSON(name, json) { - var enm = new Enum(name, json.values, json.options, json.comment, json.comments); - enm.reserved = json.reserved; - return enm; -}; - -/** - * Converts this enum to an enum descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IEnum} Enum descriptor - */ -Enum.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , this.options, - "values" , this.values, - "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined, - "comment" , keepComments ? this.comment : undefined, - "comments" , keepComments ? this.comments : undefined - ]); -}; - -/** - * Adds a value to this enum. - * @param {string} name Value name - * @param {number} id Value id - * @param {string} [comment] Comment, if any - * @returns {Enum} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a value with this name or id - */ -Enum.prototype.add = function add(name, id, comment) { - // utilized by the parser but not by .fromJSON - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - if (!util.isInteger(id)) - throw TypeError("id must be an integer"); - - if (this.values[name] !== undefined) - throw Error("duplicate name '" + name + "' in " + this); - - if (this.isReservedId(id)) - throw Error("id " + id + " is reserved in " + this); - - if (this.isReservedName(name)) - throw Error("name '" + name + "' is reserved in " + this); - - if (this.valuesById[id] !== undefined) { - if (!(this.options && this.options.allow_alias)) - throw Error("duplicate id " + id + " in " + this); - this.values[name] = id; - } else - this.valuesById[this.values[name] = id] = name; - - this.comments[name] = comment || null; - return this; -}; - -/** - * Removes a value from this enum - * @param {string} name Value name - * @returns {Enum} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `name` is not a name of this enum - */ -Enum.prototype.remove = function remove(name) { - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - var val = this.values[name]; - if (val == null) - throw Error("name '" + name + "' does not exist in " + this); - - delete this.valuesById[val]; - delete this.values[name]; - delete this.comments[name]; - - return this; -}; - -/** - * Tests if the specified id is reserved. - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Enum.prototype.isReservedId = function isReservedId(id) { - return Namespace.isReservedId(this.reserved, id); -}; - -/** - * Tests if the specified name is reserved. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Enum.prototype.isReservedName = function isReservedName(name) { - return Namespace.isReservedName(this.reserved, name); -}; - -},{"21":21,"22":22,"33":33}],15:[function(require,module,exports){ -"use strict"; -module.exports = Field; - -// extends ReflectionObject -var ReflectionObject = require(22); -((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = "Field"; - -var Enum = require(14), - types = require(32), - util = require(33); - -var Type; // cyclic - -var ruleRe = /^required|optional|repeated$/; - -/** - * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class. - * @name Field - * @classdesc Reflected message field. - * @extends FieldBase - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} type Value type - * @param {string|Object.} [rule="optional"] Field rule - * @param {string|Object.} [extend] Extended type if different from parent - * @param {Object.} [options] Declared options - */ - -/** - * Constructs a field from a field descriptor. - * @param {string} name Field name - * @param {IField} json Field descriptor - * @returns {Field} Created field - * @throws {TypeError} If arguments are invalid - */ -Field.fromJSON = function fromJSON(name, json) { - return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment); -}; - -/** - * Not an actual constructor. Use {@link Field} instead. - * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions. - * @exports FieldBase - * @extends ReflectionObject - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} type Value type - * @param {string|Object.} [rule="optional"] Field rule - * @param {string|Object.} [extend] Extended type if different from parent - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function Field(name, id, type, rule, extend, options, comment) { - - if (util.isObject(rule)) { - comment = extend; - options = rule; - rule = extend = undefined; - } else if (util.isObject(extend)) { - comment = options; - options = extend; - extend = undefined; - } - - ReflectionObject.call(this, name, options); - - if (!util.isInteger(id) || id < 0) - throw TypeError("id must be a non-negative integer"); - - if (!util.isString(type)) - throw TypeError("type must be a string"); - - if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase())) - throw TypeError("rule must be a string rule"); - - if (extend !== undefined && !util.isString(extend)) - throw TypeError("extend must be a string"); - - /** - * Field rule, if any. - * @type {string|undefined} - */ - this.rule = rule && rule !== "optional" ? rule : undefined; // toJSON - - /** - * Field type. - * @type {string} - */ - this.type = type; // toJSON - - /** - * Unique field id. - * @type {number} - */ - this.id = id; // toJSON, marker - - /** - * Extended type if different from parent. - * @type {string|undefined} - */ - this.extend = extend || undefined; // toJSON - - /** - * Whether this field is required. - * @type {boolean} - */ - this.required = rule === "required"; - - /** - * Whether this field is optional. - * @type {boolean} - */ - this.optional = !this.required; - - /** - * Whether this field is repeated. - * @type {boolean} - */ - this.repeated = rule === "repeated"; - - /** - * Whether this field is a map or not. - * @type {boolean} - */ - this.map = false; - - /** - * Message this field belongs to. - * @type {Type|null} - */ - this.message = null; - - /** - * OneOf this field belongs to, if any, - * @type {OneOf|null} - */ - this.partOf = null; - - /** - * The field type's default value. - * @type {*} - */ - this.typeDefault = null; - - /** - * The field's default value on prototypes. - * @type {*} - */ - this.defaultValue = null; - - /** - * Whether this field's value should be treated as a long. - * @type {boolean} - */ - this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false; - - /** - * Whether this field's value is a buffer. - * @type {boolean} - */ - this.bytes = type === "bytes"; - - /** - * Resolved type if not a basic type. - * @type {Type|Enum|null} - */ - this.resolvedType = null; - - /** - * Sister-field within the extended type if a declaring extension field. - * @type {Field|null} - */ - this.extensionField = null; - - /** - * Sister-field within the declaring namespace if an extended field. - * @type {Field|null} - */ - this.declaringField = null; - - /** - * Internally remembers whether this field is packed. - * @type {boolean|null} - * @private - */ - this._packed = null; - - /** - * Comment for this field. - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Determines whether this field is packed. Only relevant when repeated and working with proto2. - * @name Field#packed - * @type {boolean} - * @readonly - */ -Object.defineProperty(Field.prototype, "packed", { - get: function() { - // defaults to packed=true if not explicity set to false - if (this._packed === null) - this._packed = this.getOption("packed") !== false; - return this._packed; - } -}); - -/** - * @override - */ -Field.prototype.setOption = function setOption(name, value, ifNotSet) { - if (name === "packed") // clear cached before setting - this._packed = null; - return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet); -}; - -/** - * Field descriptor. - * @interface IField - * @property {string} [rule="optional"] Field rule - * @property {string} type Field type - * @property {number} id Field id - * @property {Object.} [options] Field options - */ - -/** - * Extension field descriptor. - * @interface IExtensionField - * @extends IField - * @property {string} extend Extended type - */ - -/** - * Converts this field to a field descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IField} Field descriptor - */ -Field.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "rule" , this.rule !== "optional" && this.rule || undefined, - "type" , this.type, - "id" , this.id, - "extend" , this.extend, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Resolves this field's type references. - * @returns {Field} `this` - * @throws {Error} If any reference cannot be resolved - */ -Field.prototype.resolve = function resolve() { - - if (this.resolved) - return this; - - if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it - this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type); - if (this.resolvedType instanceof Type) - this.typeDefault = null; - else // instanceof Enum - this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined - } - - // use explicitly set default value if present - if (this.options && this.options["default"] != null) { - this.typeDefault = this.options["default"]; - if (this.resolvedType instanceof Enum && typeof this.typeDefault === "string") - this.typeDefault = this.resolvedType.values[this.typeDefault]; - } - - // remove unnecessary options - if (this.options) { - if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum)) - delete this.options.packed; - if (!Object.keys(this.options).length) - this.options = undefined; - } - - // convert to internal data type if necesssary - if (this.long) { - this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === "u"); - - /* istanbul ignore else */ - if (Object.freeze) - Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it) - - } else if (this.bytes && typeof this.typeDefault === "string") { - var buf; - if (util.base64.test(this.typeDefault)) - util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0); - else - util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0); - this.typeDefault = buf; - } - - // take special care of maps and repeated fields - if (this.map) - this.defaultValue = util.emptyObject; - else if (this.repeated) - this.defaultValue = util.emptyArray; - else - this.defaultValue = this.typeDefault; - - // ensure proper value on prototype - if (this.parent instanceof Type) - this.parent.ctor.prototype[this.name] = this.defaultValue; - - return ReflectionObject.prototype.resolve.call(this); -}; - -Field.prototype.useToArray = function useToArray() { - return !!this.getOption("(js_use_toArray)"); -}; - -/** - * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript). - * @typedef FieldDecorator - * @type {function} - * @param {Object} prototype Target prototype - * @param {string} fieldName Field name - * @returns {undefined} - */ - -/** - * Field decorator (TypeScript). - * @name Field.d - * @function - * @param {number} fieldId Field id - * @param {"double"|"float"|"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"string"|"bool"|"bytes"|Object} fieldType Field type - * @param {"optional"|"required"|"repeated"} [fieldRule="optional"] Field rule - * @param {T} [defaultValue] Default value - * @returns {FieldDecorator} Decorator function - * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[] - */ -Field.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) { - - // submessage: decorate the submessage and use its name as the type - if (typeof fieldType === "function") - fieldType = util.decorateType(fieldType).name; - - // enum reference: create a reflected copy of the enum and keep reuseing it - else if (fieldType && typeof fieldType === "object") - fieldType = util.decorateEnum(fieldType).name; - - return function fieldDecorator(prototype, fieldName) { - util.decorateType(prototype.constructor) - .add(new Field(fieldName, fieldId, fieldType, fieldRule, { "default": defaultValue })); - }; -}; - -/** - * Field decorator (TypeScript). - * @name Field.d - * @function - * @param {number} fieldId Field id - * @param {Constructor|string} fieldType Field type - * @param {"optional"|"required"|"repeated"} [fieldRule="optional"] Field rule - * @returns {FieldDecorator} Decorator function - * @template T extends Message - * @variation 2 - */ -// like Field.d but without a default value - -// Sets up cyclic dependencies (called in index-light) -Field._configure = function configure(Type_) { - Type = Type_; -}; - -},{"14":14,"22":22,"32":32,"33":33}],16:[function(require,module,exports){ -"use strict"; -var protobuf = module.exports = require(17); - -protobuf.build = "light"; - -/** - * A node-style callback as used by {@link load} and {@link Root#load}. - * @typedef LoadCallback - * @type {function} - * @param {Error|null} error Error, if any, otherwise `null` - * @param {Root} [root] Root, if there hasn't been an error - * @returns {undefined} - */ - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. - * @param {string|string[]} filename One or multiple files to load - * @param {Root} root Root namespace, defaults to create a new one if omitted. - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @see {@link Root#load} - */ -function load(filename, root, callback) { - if (typeof root === "function") { - callback = root; - root = new protobuf.Root(); - } else if (!root) - root = new protobuf.Root(); - return root.load(filename, callback); -} - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. - * @name load - * @function - * @param {string|string[]} filename One or multiple files to load - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @see {@link Root#load} - * @variation 2 - */ -// function load(filename:string, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise. - * @name load - * @function - * @param {string|string[]} filename One or multiple files to load - * @param {Root} [root] Root namespace, defaults to create a new one if omitted. - * @returns {Promise} Promise - * @see {@link Root#load} - * @variation 3 - */ -// function load(filename:string, [root:Root]):Promise - -protobuf.load = load; - -/** - * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only). - * @param {string|string[]} filename One or multiple files to load - * @param {Root} [root] Root namespace, defaults to create a new one if omitted. - * @returns {Root} Root namespace - * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid - * @see {@link Root#loadSync} - */ -function loadSync(filename, root) { - if (!root) - root = new protobuf.Root(); - return root.loadSync(filename); -} - -protobuf.loadSync = loadSync; - -// Serialization -protobuf.encoder = require(13); -protobuf.decoder = require(12); -protobuf.verifier = require(36); -protobuf.converter = require(11); - -// Reflection -protobuf.ReflectionObject = require(22); -protobuf.Namespace = require(21); -protobuf.Root = require(26); -protobuf.Enum = require(14); -protobuf.Type = require(31); -protobuf.Field = require(15); -protobuf.OneOf = require(23); -protobuf.MapField = require(18); -protobuf.Service = require(30); -protobuf.Method = require(20); - -// Runtime -protobuf.Message = require(19); -protobuf.wrappers = require(37); - -// Utility -protobuf.types = require(32); -protobuf.util = require(33); - -// Set up possibly cyclic reflection dependencies -protobuf.ReflectionObject._configure(protobuf.Root); -protobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum); -protobuf.Root._configure(protobuf.Type); -protobuf.Field._configure(protobuf.Type); - -},{"11":11,"12":12,"13":13,"14":14,"15":15,"17":17,"18":18,"19":19,"20":20,"21":21,"22":22,"23":23,"26":26,"30":30,"31":31,"32":32,"33":33,"36":36,"37":37}],17:[function(require,module,exports){ -"use strict"; -var protobuf = exports; - -/** - * Build type, one of `"full"`, `"light"` or `"minimal"`. - * @name build - * @type {string} - * @const - */ -protobuf.build = "minimal"; - -// Serialization -protobuf.Writer = require(38); -protobuf.BufferWriter = require(39); -protobuf.Reader = require(24); -protobuf.BufferReader = require(25); - -// Utility -protobuf.util = require(35); -protobuf.rpc = require(28); -protobuf.roots = require(27); -protobuf.configure = configure; - -/* istanbul ignore next */ -/** - * Reconfigures the library according to the environment. - * @returns {undefined} - */ -function configure() { - protobuf.Reader._configure(protobuf.BufferReader); - protobuf.util._configure(); -} - -// Set up buffer utility according to the environment -protobuf.Writer._configure(protobuf.BufferWriter); -configure(); - -},{"24":24,"25":25,"27":27,"28":28,"35":35,"38":38,"39":39}],18:[function(require,module,exports){ -"use strict"; -module.exports = MapField; - -// extends Field -var Field = require(15); -((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = "MapField"; - -var types = require(32), - util = require(33); - -/** - * Constructs a new map field instance. - * @classdesc Reflected map field. - * @extends FieldBase - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} keyType Key type - * @param {string} type Value type - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function MapField(name, id, keyType, type, options, comment) { - Field.call(this, name, id, type, undefined, undefined, options, comment); - - /* istanbul ignore if */ - if (!util.isString(keyType)) - throw TypeError("keyType must be a string"); - - /** - * Key type. - * @type {string} - */ - this.keyType = keyType; // toJSON, marker - - /** - * Resolved key type if not a basic type. - * @type {ReflectionObject|null} - */ - this.resolvedKeyType = null; - - // Overrides Field#map - this.map = true; -} - -/** - * Map field descriptor. - * @interface IMapField - * @extends {IField} - * @property {string} keyType Key type - */ - -/** - * Extension map field descriptor. - * @interface IExtensionMapField - * @extends IMapField - * @property {string} extend Extended type - */ - -/** - * Constructs a map field from a map field descriptor. - * @param {string} name Field name - * @param {IMapField} json Map field descriptor - * @returns {MapField} Created map field - * @throws {TypeError} If arguments are invalid - */ -MapField.fromJSON = function fromJSON(name, json) { - return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment); -}; - -/** - * Converts this map field to a map field descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IMapField} Map field descriptor - */ -MapField.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "keyType" , this.keyType, - "type" , this.type, - "id" , this.id, - "extend" , this.extend, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -MapField.prototype.resolve = function resolve() { - if (this.resolved) - return this; - - // Besides a value type, map fields have a key type that may be "any scalar type except for floating point types and bytes" - if (types.mapKey[this.keyType] === undefined) - throw Error("invalid key type: " + this.keyType); - - return Field.prototype.resolve.call(this); -}; - -/** - * Map field decorator (TypeScript). - * @name MapField.d - * @function - * @param {number} fieldId Field id - * @param {"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"bool"|"string"} fieldKeyType Field key type - * @param {"double"|"float"|"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"bool"|"string"|"bytes"|Object|Constructor<{}>} fieldValueType Field value type - * @returns {FieldDecorator} Decorator function - * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> } - */ -MapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) { - - // submessage value: decorate the submessage and use its name as the type - if (typeof fieldValueType === "function") - fieldValueType = util.decorateType(fieldValueType).name; - - // enum reference value: create a reflected copy of the enum and keep reuseing it - else if (fieldValueType && typeof fieldValueType === "object") - fieldValueType = util.decorateEnum(fieldValueType).name; - - return function mapFieldDecorator(prototype, fieldName) { - util.decorateType(prototype.constructor) - .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType)); - }; -}; - -},{"15":15,"32":32,"33":33}],19:[function(require,module,exports){ -"use strict"; -module.exports = Message; - -var util = require(35); - -/** - * Constructs a new message instance. - * @classdesc Abstract runtime message. - * @constructor - * @param {Properties} [properties] Properties to set - * @template T extends object = object - */ -function Message(properties) { - // not used internally - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - this[keys[i]] = properties[keys[i]]; -} - -/** - * Reference to the reflected type. - * @name Message.$type - * @type {Type} - * @readonly - */ - -/** - * Reference to the reflected type. - * @name Message#$type - * @type {Type} - * @readonly - */ - -/*eslint-disable valid-jsdoc*/ - -/** - * Creates a new message of this type using the specified properties. - * @param {Object.} [properties] Properties to set - * @returns {Message} Message instance - * @template T extends Message - * @this Constructor - */ -Message.create = function create(properties) { - return this.$type.create(properties); -}; - -/** - * Encodes a message of this type. - * @param {T|Object.} message Message to encode - * @param {Writer} [writer] Writer to use - * @returns {Writer} Writer - * @template T extends Message - * @this Constructor - */ -Message.encode = function encode(message, writer) { - return this.$type.encode(message, writer); -}; - -/** - * Encodes a message of this type preceeded by its length as a varint. - * @param {T|Object.} message Message to encode - * @param {Writer} [writer] Writer to use - * @returns {Writer} Writer - * @template T extends Message - * @this Constructor - */ -Message.encodeDelimited = function encodeDelimited(message, writer) { - return this.$type.encodeDelimited(message, writer); -}; - -/** - * Decodes a message of this type. - * @name Message.decode - * @function - * @param {Reader|Uint8Array} reader Reader or buffer to decode - * @returns {T} Decoded message - * @template T extends Message - * @this Constructor - */ -Message.decode = function decode(reader) { - return this.$type.decode(reader); -}; - -/** - * Decodes a message of this type preceeded by its length as a varint. - * @name Message.decodeDelimited - * @function - * @param {Reader|Uint8Array} reader Reader or buffer to decode - * @returns {T} Decoded message - * @template T extends Message - * @this Constructor - */ -Message.decodeDelimited = function decodeDelimited(reader) { - return this.$type.decodeDelimited(reader); -}; - -/** - * Verifies a message of this type. - * @name Message.verify - * @function - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ -Message.verify = function verify(message) { - return this.$type.verify(message); -}; - -/** - * Creates a new message of this type from a plain object. Also converts values to their respective internal types. - * @param {Object.} object Plain object - * @returns {T} Message instance - * @template T extends Message - * @this Constructor - */ -Message.fromObject = function fromObject(object) { - return this.$type.fromObject(object); -}; - -/** - * Creates a plain object from a message of this type. Also converts values to other types if specified. - * @param {T} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - * @template T extends Message - * @this Constructor - */ -Message.toObject = function toObject(message, options) { - return this.$type.toObject(message, options); -}; - -/** - * Converts this message to JSON. - * @returns {Object.} JSON object - */ -Message.prototype.toJSON = function toJSON() { - return this.$type.toObject(this, util.toJSONOptions); -}; - -/*eslint-enable valid-jsdoc*/ -},{"35":35}],20:[function(require,module,exports){ -"use strict"; -module.exports = Method; - -// extends ReflectionObject -var ReflectionObject = require(22); -((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = "Method"; - -var util = require(33); - -/** - * Constructs a new service method instance. - * @classdesc Reflected service method. - * @extends ReflectionObject - * @constructor - * @param {string} name Method name - * @param {string|undefined} type Method type, usually `"rpc"` - * @param {string} requestType Request message type - * @param {string} responseType Response message type - * @param {boolean|Object.} [requestStream] Whether the request is streamed - * @param {boolean|Object.} [responseStream] Whether the response is streamed - * @param {Object.} [options] Declared options - * @param {string} [comment] The comment for this method - */ -function Method(name, type, requestType, responseType, requestStream, responseStream, options, comment) { - - /* istanbul ignore next */ - if (util.isObject(requestStream)) { - options = requestStream; - requestStream = responseStream = undefined; - } else if (util.isObject(responseStream)) { - options = responseStream; - responseStream = undefined; - } - - /* istanbul ignore if */ - if (!(type === undefined || util.isString(type))) - throw TypeError("type must be a string"); - - /* istanbul ignore if */ - if (!util.isString(requestType)) - throw TypeError("requestType must be a string"); - - /* istanbul ignore if */ - if (!util.isString(responseType)) - throw TypeError("responseType must be a string"); - - ReflectionObject.call(this, name, options); - - /** - * Method type. - * @type {string} - */ - this.type = type || "rpc"; // toJSON - - /** - * Request type. - * @type {string} - */ - this.requestType = requestType; // toJSON, marker - - /** - * Whether requests are streamed or not. - * @type {boolean|undefined} - */ - this.requestStream = requestStream ? true : undefined; // toJSON - - /** - * Response type. - * @type {string} - */ - this.responseType = responseType; // toJSON - - /** - * Whether responses are streamed or not. - * @type {boolean|undefined} - */ - this.responseStream = responseStream ? true : undefined; // toJSON - - /** - * Resolved request type. - * @type {Type|null} - */ - this.resolvedRequestType = null; - - /** - * Resolved response type. - * @type {Type|null} - */ - this.resolvedResponseType = null; - - /** - * Comment for this method - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Method descriptor. - * @interface IMethod - * @property {string} [type="rpc"] Method type - * @property {string} requestType Request type - * @property {string} responseType Response type - * @property {boolean} [requestStream=false] Whether requests are streamed - * @property {boolean} [responseStream=false] Whether responses are streamed - * @property {Object.} [options] Method options - */ - -/** - * Constructs a method from a method descriptor. - * @param {string} name Method name - * @param {IMethod} json Method descriptor - * @returns {Method} Created method - * @throws {TypeError} If arguments are invalid - */ -Method.fromJSON = function fromJSON(name, json) { - return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment); -}; - -/** - * Converts this method to a method descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IMethod} Method descriptor - */ -Method.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "type" , this.type !== "rpc" && /* istanbul ignore next */ this.type || undefined, - "requestType" , this.requestType, - "requestStream" , this.requestStream, - "responseType" , this.responseType, - "responseStream" , this.responseStream, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -Method.prototype.resolve = function resolve() { - - /* istanbul ignore if */ - if (this.resolved) - return this; - - this.resolvedRequestType = this.parent.lookupType(this.requestType); - this.resolvedResponseType = this.parent.lookupType(this.responseType); - - return ReflectionObject.prototype.resolve.call(this); -}; - -},{"22":22,"33":33}],21:[function(require,module,exports){ -"use strict"; -module.exports = Namespace; - -// extends ReflectionObject -var ReflectionObject = require(22); -((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = "Namespace"; - -var Field = require(15), - util = require(33); - -var Type, // cyclic - Service, - Enum; - -/** - * Constructs a new namespace instance. - * @name Namespace - * @classdesc Reflected namespace. - * @extends NamespaceBase - * @constructor - * @param {string} name Namespace name - * @param {Object.} [options] Declared options - */ - -/** - * Constructs a namespace from JSON. - * @memberof Namespace - * @function - * @param {string} name Namespace name - * @param {Object.} json JSON object - * @returns {Namespace} Created namespace - * @throws {TypeError} If arguments are invalid - */ -Namespace.fromJSON = function fromJSON(name, json) { - return new Namespace(name, json.options).addJSON(json.nested); -}; - -/** - * Converts an array of reflection objects to JSON. - * @memberof Namespace - * @param {ReflectionObject[]} array Object array - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {Object.|undefined} JSON object or `undefined` when array is empty - */ -function arrayToJSON(array, toJSONOptions) { - if (!(array && array.length)) - return undefined; - var obj = {}; - for (var i = 0; i < array.length; ++i) - obj[array[i].name] = array[i].toJSON(toJSONOptions); - return obj; -} - -Namespace.arrayToJSON = arrayToJSON; - -/** - * Tests if the specified id is reserved. - * @param {Array.|undefined} reserved Array of reserved ranges and names - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Namespace.isReservedId = function isReservedId(reserved, id) { - if (reserved) - for (var i = 0; i < reserved.length; ++i) - if (typeof reserved[i] !== "string" && reserved[i][0] <= id && reserved[i][1] > id) - return true; - return false; -}; - -/** - * Tests if the specified name is reserved. - * @param {Array.|undefined} reserved Array of reserved ranges and names - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Namespace.isReservedName = function isReservedName(reserved, name) { - if (reserved) - for (var i = 0; i < reserved.length; ++i) - if (reserved[i] === name) - return true; - return false; -}; - -/** - * Not an actual constructor. Use {@link Namespace} instead. - * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions. - * @exports NamespaceBase - * @extends ReflectionObject - * @abstract - * @constructor - * @param {string} name Namespace name - * @param {Object.} [options] Declared options - * @see {@link Namespace} - */ -function Namespace(name, options) { - ReflectionObject.call(this, name, options); - - /** - * Nested objects by name. - * @type {Object.|undefined} - */ - this.nested = undefined; // toJSON - - /** - * Cached nested objects as an array. - * @type {ReflectionObject[]|null} - * @private - */ - this._nestedArray = null; -} - -function clearCache(namespace) { - namespace._nestedArray = null; - return namespace; -} - -/** - * Nested objects of this namespace as an array for iteration. - * @name NamespaceBase#nestedArray - * @type {ReflectionObject[]} - * @readonly - */ -Object.defineProperty(Namespace.prototype, "nestedArray", { - get: function() { - return this._nestedArray || (this._nestedArray = util.toArray(this.nested)); - } -}); - -/** - * Namespace descriptor. - * @interface INamespace - * @property {Object.} [options] Namespace options - * @property {Object.} [nested] Nested object descriptors - */ - -/** - * Any extension field descriptor. - * @typedef AnyExtensionField - * @type {IExtensionField|IExtensionMapField} - */ - -/** - * Any nested object descriptor. - * @typedef AnyNestedObject - * @type {IEnum|IType|IService|AnyExtensionField|INamespace} - */ -// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place) - -/** - * Converts this namespace to a namespace descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {INamespace} Namespace descriptor - */ -Namespace.prototype.toJSON = function toJSON(toJSONOptions) { - return util.toObject([ - "options" , this.options, - "nested" , arrayToJSON(this.nestedArray, toJSONOptions) - ]); -}; - -/** - * Adds nested objects to this namespace from nested object descriptors. - * @param {Object.} nestedJson Any nested object descriptors - * @returns {Namespace} `this` - */ -Namespace.prototype.addJSON = function addJSON(nestedJson) { - var ns = this; - /* istanbul ignore else */ - if (nestedJson) { - for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) { - nested = nestedJson[names[i]]; - ns.add( // most to least likely - ( nested.fields !== undefined - ? Type.fromJSON - : nested.values !== undefined - ? Enum.fromJSON - : nested.methods !== undefined - ? Service.fromJSON - : nested.id !== undefined - ? Field.fromJSON - : Namespace.fromJSON )(names[i], nested) - ); - } - } - return this; -}; - -/** - * Gets the nested object of the specified name. - * @param {string} name Nested object name - * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist - */ -Namespace.prototype.get = function get(name) { - return this.nested && this.nested[name] - || null; -}; - -/** - * Gets the values of the nested {@link Enum|enum} of the specified name. - * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`. - * @param {string} name Nested enum name - * @returns {Object.} Enum values - * @throws {Error} If there is no such enum - */ -Namespace.prototype.getEnum = function getEnum(name) { - if (this.nested && this.nested[name] instanceof Enum) - return this.nested[name].values; - throw Error("no such enum: " + name); -}; - -/** - * Adds a nested object to this namespace. - * @param {ReflectionObject} object Nested object to add - * @returns {Namespace} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a nested object with this name - */ -Namespace.prototype.add = function add(object) { - - if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace)) - throw TypeError("object must be a valid nested object"); - - if (!this.nested) - this.nested = {}; - else { - var prev = this.get(object.name); - if (prev) { - if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) { - // replace plain namespace but keep existing nested elements and options - var nested = prev.nestedArray; - for (var i = 0; i < nested.length; ++i) - object.add(nested[i]); - this.remove(prev); - if (!this.nested) - this.nested = {}; - object.setOptions(prev.options, true); - - } else - throw Error("duplicate name '" + object.name + "' in " + this); - } - } - this.nested[object.name] = object; - object.onAdd(this); - return clearCache(this); -}; - -/** - * Removes a nested object from this namespace. - * @param {ReflectionObject} object Nested object to remove - * @returns {Namespace} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `object` is not a member of this namespace - */ -Namespace.prototype.remove = function remove(object) { - - if (!(object instanceof ReflectionObject)) - throw TypeError("object must be a ReflectionObject"); - if (object.parent !== this) - throw Error(object + " is not a member of " + this); - - delete this.nested[object.name]; - if (!Object.keys(this.nested).length) - this.nested = undefined; - - object.onRemove(this); - return clearCache(this); -}; - -/** - * Defines additial namespaces within this one if not yet existing. - * @param {string|string[]} path Path to create - * @param {*} [json] Nested types to create from JSON - * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty - */ -Namespace.prototype.define = function define(path, json) { - - if (util.isString(path)) - path = path.split("."); - else if (!Array.isArray(path)) - throw TypeError("illegal path"); - if (path && path.length && path[0] === "") - throw Error("path must be relative"); - - var ptr = this; - while (path.length > 0) { - var part = path.shift(); - if (ptr.nested && ptr.nested[part]) { - ptr = ptr.nested[part]; - if (!(ptr instanceof Namespace)) - throw Error("path conflicts with non-namespace objects"); - } else - ptr.add(ptr = new Namespace(part)); - } - if (json) - ptr.addJSON(json); - return ptr; -}; - -/** - * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost. - * @returns {Namespace} `this` - */ -Namespace.prototype.resolveAll = function resolveAll() { - var nested = this.nestedArray, i = 0; - while (i < nested.length) - if (nested[i] instanceof Namespace) - nested[i++].resolveAll(); - else - nested[i++].resolve(); - return this.resolve(); -}; - -/** - * Recursively looks up the reflection object matching the specified path in the scope of this namespace. - * @param {string|string[]} path Path to look up - * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc. - * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked - * @returns {ReflectionObject|null} Looked up object or `null` if none could be found - */ -Namespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) { - - /* istanbul ignore next */ - if (typeof filterTypes === "boolean") { - parentAlreadyChecked = filterTypes; - filterTypes = undefined; - } else if (filterTypes && !Array.isArray(filterTypes)) - filterTypes = [ filterTypes ]; - - if (util.isString(path) && path.length) { - if (path === ".") - return this.root; - path = path.split("."); - } else if (!path.length) - return this; - - // Start at root if path is absolute - if (path[0] === "") - return this.root.lookup(path.slice(1), filterTypes); - - // Test if the first part matches any nested object, and if so, traverse if path contains more - var found = this.get(path[0]); - if (found) { - if (path.length === 1) { - if (!filterTypes || filterTypes.indexOf(found.constructor) > -1) - return found; - } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true))) - return found; - - // Otherwise try each nested namespace - } else - for (var i = 0; i < this.nestedArray.length; ++i) - if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true))) - return found; - - // If there hasn't been a match, try again at the parent - if (this.parent === null || parentAlreadyChecked) - return null; - return this.parent.lookup(path, filterTypes); -}; - -/** - * Looks up the reflection object at the specified path, relative to this namespace. - * @name NamespaceBase#lookup - * @function - * @param {string|string[]} path Path to look up - * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked - * @returns {ReflectionObject|null} Looked up object or `null` if none could be found - * @variation 2 - */ -// lookup(path: string, [parentAlreadyChecked: boolean]) - -/** - * Looks up the {@link Type|type} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Type} Looked up type - * @throws {Error} If `path` does not point to a type - */ -Namespace.prototype.lookupType = function lookupType(path) { - var found = this.lookup(path, [ Type ]); - if (!found) - throw Error("no such type: " + path); - return found; -}; - -/** - * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Enum} Looked up enum - * @throws {Error} If `path` does not point to an enum - */ -Namespace.prototype.lookupEnum = function lookupEnum(path) { - var found = this.lookup(path, [ Enum ]); - if (!found) - throw Error("no such Enum '" + path + "' in " + this); - return found; -}; - -/** - * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Type} Looked up type or enum - * @throws {Error} If `path` does not point to a type or enum - */ -Namespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) { - var found = this.lookup(path, [ Type, Enum ]); - if (!found) - throw Error("no such Type or Enum '" + path + "' in " + this); - return found; -}; - -/** - * Looks up the {@link Service|service} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Service} Looked up service - * @throws {Error} If `path` does not point to a service - */ -Namespace.prototype.lookupService = function lookupService(path) { - var found = this.lookup(path, [ Service ]); - if (!found) - throw Error("no such Service '" + path + "' in " + this); - return found; -}; - -// Sets up cyclic dependencies (called in index-light) -Namespace._configure = function(Type_, Service_, Enum_) { - Type = Type_; - Service = Service_; - Enum = Enum_; -}; - -},{"15":15,"22":22,"33":33}],22:[function(require,module,exports){ -"use strict"; -module.exports = ReflectionObject; - -ReflectionObject.className = "ReflectionObject"; - -var util = require(33); - -var Root; // cyclic - -/** - * Constructs a new reflection object instance. - * @classdesc Base class of all reflection objects. - * @constructor - * @param {string} name Object name - * @param {Object.} [options] Declared options - * @abstract - */ -function ReflectionObject(name, options) { - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - if (options && !util.isObject(options)) - throw TypeError("options must be an object"); - - /** - * Options. - * @type {Object.|undefined} - */ - this.options = options; // toJSON - - /** - * Unique name within its namespace. - * @type {string} - */ - this.name = name; - - /** - * Parent namespace. - * @type {Namespace|null} - */ - this.parent = null; - - /** - * Whether already resolved or not. - * @type {boolean} - */ - this.resolved = false; - - /** - * Comment text, if any. - * @type {string|null} - */ - this.comment = null; - - /** - * Defining file name. - * @type {string|null} - */ - this.filename = null; -} - -Object.defineProperties(ReflectionObject.prototype, { - - /** - * Reference to the root namespace. - * @name ReflectionObject#root - * @type {Root} - * @readonly - */ - root: { - get: function() { - var ptr = this; - while (ptr.parent !== null) - ptr = ptr.parent; - return ptr; - } - }, - - /** - * Full name including leading dot. - * @name ReflectionObject#fullName - * @type {string} - * @readonly - */ - fullName: { - get: function() { - var path = [ this.name ], - ptr = this.parent; - while (ptr) { - path.unshift(ptr.name); - ptr = ptr.parent; - } - return path.join("."); - } - } -}); - -/** - * Converts this reflection object to its descriptor representation. - * @returns {Object.} Descriptor - * @abstract - */ -ReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() { - throw Error(); // not implemented, shouldn't happen -}; - -/** - * Called when this object is added to a parent. - * @param {ReflectionObject} parent Parent added to - * @returns {undefined} - */ -ReflectionObject.prototype.onAdd = function onAdd(parent) { - if (this.parent && this.parent !== parent) - this.parent.remove(this); - this.parent = parent; - this.resolved = false; - var root = parent.root; - if (root instanceof Root) - root._handleAdd(this); -}; - -/** - * Called when this object is removed from a parent. - * @param {ReflectionObject} parent Parent removed from - * @returns {undefined} - */ -ReflectionObject.prototype.onRemove = function onRemove(parent) { - var root = parent.root; - if (root instanceof Root) - root._handleRemove(this); - this.parent = null; - this.resolved = false; -}; - -/** - * Resolves this objects type references. - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.resolve = function resolve() { - if (this.resolved) - return this; - if (this.root instanceof Root) - this.resolved = true; // only if part of a root - return this; -}; - -/** - * Gets an option value. - * @param {string} name Option name - * @returns {*} Option value or `undefined` if not set - */ -ReflectionObject.prototype.getOption = function getOption(name) { - if (this.options) - return this.options[name]; - return undefined; -}; - -/** - * Sets an option. - * @param {string} name Option name - * @param {*} value Option value - * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) { - if (!ifNotSet || !this.options || this.options[name] === undefined) - (this.options || (this.options = {}))[name] = value; - return this; -}; - -/** - * Sets multiple options. - * @param {Object.} options Options to set - * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) { - if (options) - for (var keys = Object.keys(options), i = 0; i < keys.length; ++i) - this.setOption(keys[i], options[keys[i]], ifNotSet); - return this; -}; - -/** - * Converts this instance to its string representation. - * @returns {string} Class name[, space, full name] - */ -ReflectionObject.prototype.toString = function toString() { - var className = this.constructor.className, - fullName = this.fullName; - if (fullName.length) - return className + " " + fullName; - return className; -}; - -// Sets up cyclic dependencies (called in index-light) -ReflectionObject._configure = function(Root_) { - Root = Root_; -}; - -},{"33":33}],23:[function(require,module,exports){ -"use strict"; -module.exports = OneOf; - -// extends ReflectionObject -var ReflectionObject = require(22); -((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = "OneOf"; - -var Field = require(15), - util = require(33); - -/** - * Constructs a new oneof instance. - * @classdesc Reflected oneof. - * @extends ReflectionObject - * @constructor - * @param {string} name Oneof name - * @param {string[]|Object.} [fieldNames] Field names - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function OneOf(name, fieldNames, options, comment) { - if (!Array.isArray(fieldNames)) { - options = fieldNames; - fieldNames = undefined; - } - ReflectionObject.call(this, name, options); - - /* istanbul ignore if */ - if (!(fieldNames === undefined || Array.isArray(fieldNames))) - throw TypeError("fieldNames must be an Array"); - - /** - * Field names that belong to this oneof. - * @type {string[]} - */ - this.oneof = fieldNames || []; // toJSON, marker - - /** - * Fields that belong to this oneof as an array for iteration. - * @type {Field[]} - * @readonly - */ - this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent - - /** - * Comment for this field. - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Oneof descriptor. - * @interface IOneOf - * @property {Array.} oneof Oneof field names - * @property {Object.} [options] Oneof options - */ - -/** - * Constructs a oneof from a oneof descriptor. - * @param {string} name Oneof name - * @param {IOneOf} json Oneof descriptor - * @returns {OneOf} Created oneof - * @throws {TypeError} If arguments are invalid - */ -OneOf.fromJSON = function fromJSON(name, json) { - return new OneOf(name, json.oneof, json.options, json.comment); -}; - -/** - * Converts this oneof to a oneof descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IOneOf} Oneof descriptor - */ -OneOf.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , this.options, - "oneof" , this.oneof, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Adds the fields of the specified oneof to the parent if not already done so. - * @param {OneOf} oneof The oneof - * @returns {undefined} - * @inner - * @ignore - */ -function addFieldsToParent(oneof) { - if (oneof.parent) - for (var i = 0; i < oneof.fieldsArray.length; ++i) - if (!oneof.fieldsArray[i].parent) - oneof.parent.add(oneof.fieldsArray[i]); -} - -/** - * Adds a field to this oneof and removes it from its current parent, if any. - * @param {Field} field Field to add - * @returns {OneOf} `this` - */ -OneOf.prototype.add = function add(field) { - - /* istanbul ignore if */ - if (!(field instanceof Field)) - throw TypeError("field must be a Field"); - - if (field.parent && field.parent !== this.parent) - field.parent.remove(field); - this.oneof.push(field.name); - this.fieldsArray.push(field); - field.partOf = this; // field.parent remains null - addFieldsToParent(this); - return this; -}; - -/** - * Removes a field from this oneof and puts it back to the oneof's parent. - * @param {Field} field Field to remove - * @returns {OneOf} `this` - */ -OneOf.prototype.remove = function remove(field) { - - /* istanbul ignore if */ - if (!(field instanceof Field)) - throw TypeError("field must be a Field"); - - var index = this.fieldsArray.indexOf(field); - - /* istanbul ignore if */ - if (index < 0) - throw Error(field + " is not a member of " + this); - - this.fieldsArray.splice(index, 1); - index = this.oneof.indexOf(field.name); - - /* istanbul ignore else */ - if (index > -1) // theoretical - this.oneof.splice(index, 1); - - field.partOf = null; - return this; -}; - -/** - * @override - */ -OneOf.prototype.onAdd = function onAdd(parent) { - ReflectionObject.prototype.onAdd.call(this, parent); - var self = this; - // Collect present fields - for (var i = 0; i < this.oneof.length; ++i) { - var field = parent.get(this.oneof[i]); - if (field && !field.partOf) { - field.partOf = self; - self.fieldsArray.push(field); - } - } - // Add not yet present fields - addFieldsToParent(this); -}; - -/** - * @override - */ -OneOf.prototype.onRemove = function onRemove(parent) { - for (var i = 0, field; i < this.fieldsArray.length; ++i) - if ((field = this.fieldsArray[i]).parent) - field.parent.remove(field); - ReflectionObject.prototype.onRemove.call(this, parent); -}; - -/** - * Decorator function as returned by {@link OneOf.d} (TypeScript). - * @typedef OneOfDecorator - * @type {function} - * @param {Object} prototype Target prototype - * @param {string} oneofName OneOf name - * @returns {undefined} - */ - -/** - * OneOf decorator (TypeScript). - * @function - * @param {...string} fieldNames Field names - * @returns {OneOfDecorator} Decorator function - * @template T extends string - */ -OneOf.d = function decorateOneOf() { - var fieldNames = new Array(arguments.length), - index = 0; - while (index < arguments.length) - fieldNames[index] = arguments[index++]; - return function oneOfDecorator(prototype, oneofName) { - util.decorateType(prototype.constructor) - .add(new OneOf(oneofName, fieldNames)); - Object.defineProperty(prototype, oneofName, { - get: util.oneOfGetter(fieldNames), - set: util.oneOfSetter(fieldNames) - }); - }; -}; - -},{"15":15,"22":22,"33":33}],24:[function(require,module,exports){ -"use strict"; -module.exports = Reader; - -var util = require(35); - -var BufferReader; // cyclic - -var LongBits = util.LongBits, - utf8 = util.utf8; - -/* istanbul ignore next */ -function indexOutOfRange(reader, writeLength) { - return RangeError("index out of range: " + reader.pos + " + " + (writeLength || 1) + " > " + reader.len); -} - -/** - * Constructs a new reader instance using the specified buffer. - * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`. - * @constructor - * @param {Uint8Array} buffer Buffer to read from - */ -function Reader(buffer) { - - /** - * Read buffer. - * @type {Uint8Array} - */ - this.buf = buffer; - - /** - * Read buffer position. - * @type {number} - */ - this.pos = 0; - - /** - * Read buffer length. - * @type {number} - */ - this.len = buffer.length; -} - -var create_array = typeof Uint8Array !== "undefined" - ? function create_typed_array(buffer) { - if (buffer instanceof Uint8Array || Array.isArray(buffer)) - return new Reader(buffer); - throw Error("illegal buffer"); - } - /* istanbul ignore next */ - : function create_array(buffer) { - if (Array.isArray(buffer)) - return new Reader(buffer); - throw Error("illegal buffer"); - }; - -/** - * Creates a new reader using the specified buffer. - * @function - * @param {Uint8Array|Buffer} buffer Buffer to read from - * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} - * @throws {Error} If `buffer` is not a valid buffer - */ -Reader.create = util.Buffer - ? function create_buffer_setup(buffer) { - return (Reader.create = function create_buffer(buffer) { - return util.Buffer.isBuffer(buffer) - ? new BufferReader(buffer) - /* istanbul ignore next */ - : create_array(buffer); - })(buffer); - } - /* istanbul ignore next */ - : create_array; - -Reader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice; - -/** - * Reads a varint as an unsigned 32 bit value. - * @function - * @returns {number} Value read - */ -Reader.prototype.uint32 = (function read_uint32_setup() { - var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!) - return function read_uint32() { - value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value; - - /* istanbul ignore if */ - if ((this.pos += 5) > this.len) { - this.pos = this.len; - throw indexOutOfRange(this, 10); - } - return value; - }; -})(); - -/** - * Reads a varint as a signed 32 bit value. - * @returns {number} Value read - */ -Reader.prototype.int32 = function read_int32() { - return this.uint32() | 0; -}; - -/** - * Reads a zig-zag encoded varint as a signed 32 bit value. - * @returns {number} Value read - */ -Reader.prototype.sint32 = function read_sint32() { - var value = this.uint32(); - return value >>> 1 ^ -(value & 1) | 0; -}; - -/* eslint-disable no-invalid-this */ - -function readLongVarint() { - // tends to deopt with local vars for octet etc. - var bits = new LongBits(0, 0); - var i = 0; - if (this.len - this.pos > 4) { // fast route (lo) - for (; i < 4; ++i) { - // 1st..4th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - // 5th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0; - bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - i = 0; - } else { - for (; i < 3; ++i) { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - // 1st..3th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - // 4th - bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0; - return bits; - } - if (this.len - this.pos > 4) { // fast route (hi) - for (; i < 5; ++i) { - // 6th..10th - bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - } else { - for (; i < 5; ++i) { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - // 6th..10th - bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - } - /* istanbul ignore next */ - throw Error("invalid varint encoding"); -} - -/* eslint-enable no-invalid-this */ - -/** - * Reads a varint as a signed 64 bit value. - * @name Reader#int64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a varint as an unsigned 64 bit value. - * @name Reader#uint64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a zig-zag encoded varint as a signed 64 bit value. - * @name Reader#sint64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a varint as a boolean. - * @returns {boolean} Value read - */ -Reader.prototype.bool = function read_bool() { - return this.uint32() !== 0; -}; - -function readFixed32_end(buf, end) { // note that this uses `end`, not `pos` - return (buf[end - 4] - | buf[end - 3] << 8 - | buf[end - 2] << 16 - | buf[end - 1] << 24) >>> 0; -} - -/** - * Reads fixed 32 bits as an unsigned 32 bit integer. - * @returns {number} Value read - */ -Reader.prototype.fixed32 = function read_fixed32() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - return readFixed32_end(this.buf, this.pos += 4); -}; - -/** - * Reads fixed 32 bits as a signed 32 bit integer. - * @returns {number} Value read - */ -Reader.prototype.sfixed32 = function read_sfixed32() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - return readFixed32_end(this.buf, this.pos += 4) | 0; -}; - -/* eslint-disable no-invalid-this */ - -function readFixed64(/* this: Reader */) { - - /* istanbul ignore if */ - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 8); - - return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4)); -} - -/* eslint-enable no-invalid-this */ - -/** - * Reads fixed 64 bits. - * @name Reader#fixed64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads zig-zag encoded fixed 64 bits. - * @name Reader#sfixed64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a float (32 bit) as a number. - * @function - * @returns {number} Value read - */ -Reader.prototype.float = function read_float() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - var value = util.float.readFloatLE(this.buf, this.pos); - this.pos += 4; - return value; -}; - -/** - * Reads a double (64 bit float) as a number. - * @function - * @returns {number} Value read - */ -Reader.prototype.double = function read_double() { - - /* istanbul ignore if */ - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 4); - - var value = util.float.readDoubleLE(this.buf, this.pos); - this.pos += 8; - return value; -}; - -/** - * Reads a sequence of bytes preceeded by its length as a varint. - * @returns {Uint8Array} Value read - */ -Reader.prototype.bytes = function read_bytes() { - var length = this.uint32(), - start = this.pos, - end = this.pos + length; - - /* istanbul ignore if */ - if (end > this.len) - throw indexOutOfRange(this, length); - - this.pos += length; - if (Array.isArray(this.buf)) // plain array - return this.buf.slice(start, end); - return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1 - ? new this.buf.constructor(0) - : this._slice.call(this.buf, start, end); -}; - -/** - * Reads a string preceeded by its byte length as a varint. - * @returns {string} Value read - */ -Reader.prototype.string = function read_string() { - var bytes = this.bytes(); - return utf8.read(bytes, 0, bytes.length); -}; - -/** - * Skips the specified number of bytes if specified, otherwise skips a varint. - * @param {number} [length] Length if known, otherwise a varint is assumed - * @returns {Reader} `this` - */ -Reader.prototype.skip = function skip(length) { - if (typeof length === "number") { - /* istanbul ignore if */ - if (this.pos + length > this.len) - throw indexOutOfRange(this, length); - this.pos += length; - } else { - do { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - } while (this.buf[this.pos++] & 128); - } - return this; -}; - -/** - * Skips the next element of the specified wire type. - * @param {number} wireType Wire type received - * @returns {Reader} `this` - */ -Reader.prototype.skipType = function(wireType) { - switch (wireType) { - case 0: - this.skip(); - break; - case 1: - this.skip(8); - break; - case 2: - this.skip(this.uint32()); - break; - case 3: - while ((wireType = this.uint32() & 7) !== 4) { - this.skipType(wireType); - } - break; - case 5: - this.skip(4); - break; - - /* istanbul ignore next */ - default: - throw Error("invalid wire type " + wireType + " at offset " + this.pos); - } - return this; -}; - -Reader._configure = function(BufferReader_) { - BufferReader = BufferReader_; - - var fn = util.Long ? "toLong" : /* istanbul ignore next */ "toNumber"; - util.merge(Reader.prototype, { - - int64: function read_int64() { - return readLongVarint.call(this)[fn](false); - }, - - uint64: function read_uint64() { - return readLongVarint.call(this)[fn](true); - }, - - sint64: function read_sint64() { - return readLongVarint.call(this).zzDecode()[fn](false); - }, - - fixed64: function read_fixed64() { - return readFixed64.call(this)[fn](true); - }, - - sfixed64: function read_sfixed64() { - return readFixed64.call(this)[fn](false); - } - - }); -}; - -},{"35":35}],25:[function(require,module,exports){ -"use strict"; -module.exports = BufferReader; - -// extends Reader -var Reader = require(24); -(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader; - -var util = require(35); - -/** - * Constructs a new buffer reader instance. - * @classdesc Wire format reader using node buffers. - * @extends Reader - * @constructor - * @param {Buffer} buffer Buffer to read from - */ -function BufferReader(buffer) { - Reader.call(this, buffer); - - /** - * Read buffer. - * @name BufferReader#buf - * @type {Buffer} - */ -} - -/* istanbul ignore else */ -if (util.Buffer) - BufferReader.prototype._slice = util.Buffer.prototype.slice; - -/** - * @override - */ -BufferReader.prototype.string = function read_string_buffer() { - var len = this.uint32(); // modifies pos - return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len)); -}; - -/** - * Reads a sequence of bytes preceeded by its length as a varint. - * @name BufferReader#bytes - * @function - * @returns {Buffer} Value read - */ - -},{"24":24,"35":35}],26:[function(require,module,exports){ -"use strict"; -module.exports = Root; - -// extends Namespace -var Namespace = require(21); -((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = "Root"; - -var Field = require(15), - Enum = require(14), - OneOf = require(23), - util = require(33); - -var Type, // cyclic - parse, // might be excluded - common; // " - -/** - * Constructs a new root namespace instance. - * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together. - * @extends NamespaceBase - * @constructor - * @param {Object.} [options] Top level options - */ -function Root(options) { - Namespace.call(this, "", options); - - /** - * Deferred extension fields. - * @type {Field[]} - */ - this.deferred = []; - - /** - * Resolved file names of loaded files. - * @type {string[]} - */ - this.files = []; -} - -/** - * Loads a namespace descriptor into a root namespace. - * @param {INamespace} json Nameespace descriptor - * @param {Root} [root] Root namespace, defaults to create a new one if omitted - * @returns {Root} Root namespace - */ -Root.fromJSON = function fromJSON(json, root) { - if (!root) - root = new Root(); - if (json.options) - root.setOptions(json.options); - return root.addJSON(json.nested); -}; - -/** - * Resolves the path of an imported file, relative to the importing origin. - * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories. - * @function - * @param {string} origin The file name of the importing file - * @param {string} target The file name being imported - * @returns {string|null} Resolved path to `target` or `null` to skip the file - */ -Root.prototype.resolvePath = util.path.resolve; - -// A symbol-like function to safely signal synchronous loading -/* istanbul ignore next */ -function SYNC() {} // eslint-disable-line no-empty-function - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback. - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} options Parse options - * @param {LoadCallback} callback Callback function - * @returns {undefined} - */ -Root.prototype.load = function load(filename, options, callback) { - if (typeof options === "function") { - callback = options; - options = undefined; - } - var self = this; - if (!callback) - return util.asPromise(load, self, filename, options); - - var sync = callback === SYNC; // undocumented - - // Finishes loading by calling the callback (exactly once) - function finish(err, root) { - /* istanbul ignore if */ - if (!callback) - return; - var cb = callback; - callback = null; - if (sync) - throw err; - cb(err, root); - } - - // Bundled definition existence checking - function getBundledFileName(filename) { - var idx = filename.lastIndexOf("google/protobuf/"); - if (idx > -1) { - var altname = filename.substring(idx); - if (altname in common) return altname; - } - return null; - } - - // Processes a single file - function process(filename, source) { - try { - if (util.isString(source) && source.charAt(0) === "{") - source = JSON.parse(source); - if (!util.isString(source)) - self.setOptions(source.options).addJSON(source.nested); - else { - parse.filename = filename; - var parsed = parse(source, self, options), - resolved, - i = 0; - if (parsed.imports) - for (; i < parsed.imports.length; ++i) - if (resolved = (getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))) - fetch(resolved); - if (parsed.weakImports) - for (i = 0; i < parsed.weakImports.length; ++i) - if (resolved = (getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))) - fetch(resolved, true); - } - } catch (err) { - finish(err); - } - if (!sync && !queued) - finish(null, self); // only once anyway - } - - // Fetches a single file - function fetch(filename, weak) { - - // Skip if already loaded / attempted - if (self.files.indexOf(filename) > -1) - return; - self.files.push(filename); - - // Shortcut bundled definitions - if (filename in common) { - if (sync) - process(filename, common[filename]); - else { - ++queued; - setTimeout(function() { - --queued; - process(filename, common[filename]); - }); - } - return; - } - - // Otherwise fetch from disk or network - if (sync) { - var source; - try { - source = util.fs.readFileSync(filename).toString("utf8"); - } catch (err) { - if (!weak) - finish(err); - return; - } - process(filename, source); - } else { - ++queued; - util.fetch(filename, function(err, source) { - --queued; - /* istanbul ignore if */ - if (!callback) - return; // terminated meanwhile - if (err) { - /* istanbul ignore else */ - if (!weak) - finish(err); - else if (!queued) // can't be covered reliably - finish(null, self); - return; - } - process(filename, source); - }); - } - } - var queued = 0; - - // Assembling the root namespace doesn't require working type - // references anymore, so we can load everything in parallel - if (util.isString(filename)) - filename = [ filename ]; - for (var i = 0, resolved; i < filename.length; ++i) - if (resolved = self.resolvePath("", filename[i])) - fetch(resolved); - - if (sync) - return self; - if (!queued) - finish(null, self); - return undefined; -}; -// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback. - * @function Root#load - * @param {string|string[]} filename Names of one or multiple files to load - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @variation 2 - */ -// function load(filename:string, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise. - * @function Root#load - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {Promise} Promise - * @variation 3 - */ -// function load(filename:string, [options:IParseOptions]):Promise - -/** - * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only). - * @function Root#loadSync - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {Root} Root namespace - * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid - */ -Root.prototype.loadSync = function loadSync(filename, options) { - if (!util.isNode) - throw Error("not supported"); - return this.load(filename, options, SYNC); -}; - -/** - * @override - */ -Root.prototype.resolveAll = function resolveAll() { - if (this.deferred.length) - throw Error("unresolvable extensions: " + this.deferred.map(function(field) { - return "'extend " + field.extend + "' in " + field.parent.fullName; - }).join(", ")); - return Namespace.prototype.resolveAll.call(this); -}; - -// only uppercased (and thus conflict-free) children are exposed, see below -var exposeRe = /^[A-Z]/; - -/** - * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type. - * @param {Root} root Root instance - * @param {Field} field Declaring extension field witin the declaring type - * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise - * @inner - * @ignore - */ -function tryHandleExtension(root, field) { - var extendedType = field.parent.lookup(field.extend); - if (extendedType) { - var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options); - sisterField.declaringField = field; - field.extensionField = sisterField; - extendedType.add(sisterField); - return true; - } - return false; -} - -/** - * Called when any object is added to this root or its sub-namespaces. - * @param {ReflectionObject} object Object added - * @returns {undefined} - * @private - */ -Root.prototype._handleAdd = function _handleAdd(object) { - if (object instanceof Field) { - - if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField) - if (!tryHandleExtension(this, object)) - this.deferred.push(object); - - } else if (object instanceof Enum) { - - if (exposeRe.test(object.name)) - object.parent[object.name] = object.values; // expose enum values as property of its parent - - } else if (!(object instanceof OneOf)) /* everything else is a namespace */ { - - if (object instanceof Type) // Try to handle any deferred extensions - for (var i = 0; i < this.deferred.length;) - if (tryHandleExtension(this, this.deferred[i])) - this.deferred.splice(i, 1); - else - ++i; - for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace - this._handleAdd(object._nestedArray[j]); - if (exposeRe.test(object.name)) - object.parent[object.name] = object; // expose namespace as property of its parent - } - - // The above also adds uppercased (and thus conflict-free) nested types, services and enums as - // properties of namespaces just like static code does. This allows using a .d.ts generated for - // a static module with reflection-based solutions where the condition is met. -}; - -/** - * Called when any object is removed from this root or its sub-namespaces. - * @param {ReflectionObject} object Object removed - * @returns {undefined} - * @private - */ -Root.prototype._handleRemove = function _handleRemove(object) { - if (object instanceof Field) { - - if (/* an extension field */ object.extend !== undefined) { - if (/* already handled */ object.extensionField) { // remove its sister field - object.extensionField.parent.remove(object.extensionField); - object.extensionField = null; - } else { // cancel the extension - var index = this.deferred.indexOf(object); - /* istanbul ignore else */ - if (index > -1) - this.deferred.splice(index, 1); - } - } - - } else if (object instanceof Enum) { - - if (exposeRe.test(object.name)) - delete object.parent[object.name]; // unexpose enum values - - } else if (object instanceof Namespace) { - - for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace - this._handleRemove(object._nestedArray[i]); - - if (exposeRe.test(object.name)) - delete object.parent[object.name]; // unexpose namespaces - - } -}; - -// Sets up cyclic dependencies (called in index-light) -Root._configure = function(Type_, parse_, common_) { - Type = Type_; - parse = parse_; - common = common_; -}; - -},{"14":14,"15":15,"21":21,"23":23,"33":33}],27:[function(require,module,exports){ -"use strict"; -module.exports = {}; - -/** - * Named roots. - * This is where pbjs stores generated structures (the option `-r, --root` specifies a name). - * Can also be used manually to make roots available accross modules. - * @name roots - * @type {Object.} - * @example - * // pbjs -r myroot -o compiled.js ... - * - * // in another module: - * require("./compiled.js"); - * - * // in any subsequent module: - * var root = protobuf.roots["myroot"]; - */ - -},{}],28:[function(require,module,exports){ -"use strict"; - -/** - * Streaming RPC helpers. - * @namespace - */ -var rpc = exports; - -/** - * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets. - * @typedef RPCImpl - * @type {function} - * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called - * @param {Uint8Array} requestData Request data - * @param {RPCImplCallback} callback Callback function - * @returns {undefined} - * @example - * function rpcImpl(method, requestData, callback) { - * if (protobuf.util.lcFirst(method.name) !== "myMethod") // compatible with static code - * throw Error("no such method"); - * asynchronouslyObtainAResponse(requestData, function(err, responseData) { - * callback(err, responseData); - * }); - * } - */ - -/** - * Node-style callback as used by {@link RPCImpl}. - * @typedef RPCImplCallback - * @type {function} - * @param {Error|null} error Error, if any, otherwise `null` - * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error - * @returns {undefined} - */ - -rpc.Service = require(29); - -},{"29":29}],29:[function(require,module,exports){ -"use strict"; -module.exports = Service; - -var util = require(35); - -// Extends EventEmitter -(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service; - -/** - * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}. - * - * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`. - * @typedef rpc.ServiceMethodCallback - * @template TRes extends Message - * @type {function} - * @param {Error|null} error Error, if any - * @param {TRes} [response] Response message - * @returns {undefined} - */ - -/** - * A service method part of a {@link rpc.Service} as created by {@link Service.create}. - * @typedef rpc.ServiceMethod - * @template TReq extends Message - * @template TRes extends Message - * @type {function} - * @param {TReq|Properties} request Request message or plain object - * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message - * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined` - */ - -/** - * Constructs a new RPC service instance. - * @classdesc An RPC service as returned by {@link Service#create}. - * @exports rpc.Service - * @extends util.EventEmitter - * @constructor - * @param {RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - */ -function Service(rpcImpl, requestDelimited, responseDelimited) { - - if (typeof rpcImpl !== "function") - throw TypeError("rpcImpl must be a function"); - - util.EventEmitter.call(this); - - /** - * RPC implementation. Becomes `null` once the service is ended. - * @type {RPCImpl|null} - */ - this.rpcImpl = rpcImpl; - - /** - * Whether requests are length-delimited. - * @type {boolean} - */ - this.requestDelimited = Boolean(requestDelimited); - - /** - * Whether responses are length-delimited. - * @type {boolean} - */ - this.responseDelimited = Boolean(responseDelimited); -} - -/** - * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}. - * @param {Method|rpc.ServiceMethod} method Reflected or static method - * @param {Constructor} requestCtor Request constructor - * @param {Constructor} responseCtor Response constructor - * @param {TReq|Properties} request Request message or plain object - * @param {rpc.ServiceMethodCallback} callback Service callback - * @returns {undefined} - * @template TReq extends Message - * @template TRes extends Message - */ -Service.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) { - - if (!request) - throw TypeError("request must be specified"); - - var self = this; - if (!callback) - return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request); - - if (!self.rpcImpl) { - setTimeout(function() { callback(Error("already ended")); }, 0); - return undefined; - } - - try { - return self.rpcImpl( - method, - requestCtor[self.requestDelimited ? "encodeDelimited" : "encode"](request).finish(), - function rpcCallback(err, response) { - - if (err) { - self.emit("error", err, method); - return callback(err); - } - - if (response === null) { - self.end(/* endedByRPC */ true); - return undefined; - } - - if (!(response instanceof responseCtor)) { - try { - response = responseCtor[self.responseDelimited ? "decodeDelimited" : "decode"](response); - } catch (err) { - self.emit("error", err, method); - return callback(err); - } - } - - self.emit("data", response, method); - return callback(null, response); - } - ); - } catch (err) { - self.emit("error", err, method); - setTimeout(function() { callback(err); }, 0); - return undefined; - } -}; - -/** - * Ends this service and emits the `end` event. - * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation. - * @returns {rpc.Service} `this` - */ -Service.prototype.end = function end(endedByRPC) { - if (this.rpcImpl) { - if (!endedByRPC) // signal end to rpcImpl - this.rpcImpl(null, null, null); - this.rpcImpl = null; - this.emit("end").off(); - } - return this; -}; - -},{"35":35}],30:[function(require,module,exports){ -"use strict"; -module.exports = Service; - -// extends Namespace -var Namespace = require(21); -((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = "Service"; - -var Method = require(20), - util = require(33), - rpc = require(28); - -/** - * Constructs a new service instance. - * @classdesc Reflected service. - * @extends NamespaceBase - * @constructor - * @param {string} name Service name - * @param {Object.} [options] Service options - * @throws {TypeError} If arguments are invalid - */ -function Service(name, options) { - Namespace.call(this, name, options); - - /** - * Service methods. - * @type {Object.} - */ - this.methods = {}; // toJSON, marker - - /** - * Cached methods as an array. - * @type {Method[]|null} - * @private - */ - this._methodsArray = null; -} - -/** - * Service descriptor. - * @interface IService - * @extends INamespace - * @property {Object.} methods Method descriptors - */ - -/** - * Constructs a service from a service descriptor. - * @param {string} name Service name - * @param {IService} json Service descriptor - * @returns {Service} Created service - * @throws {TypeError} If arguments are invalid - */ -Service.fromJSON = function fromJSON(name, json) { - var service = new Service(name, json.options); - /* istanbul ignore else */ - if (json.methods) - for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i) - service.add(Method.fromJSON(names[i], json.methods[names[i]])); - if (json.nested) - service.addJSON(json.nested); - service.comment = json.comment; - return service; -}; - -/** - * Converts this service to a service descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IService} Service descriptor - */ -Service.prototype.toJSON = function toJSON(toJSONOptions) { - var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions); - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , inherited && inherited.options || undefined, - "methods" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {}, - "nested" , inherited && inherited.nested || undefined, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Methods of this service as an array for iteration. - * @name Service#methodsArray - * @type {Method[]} - * @readonly - */ -Object.defineProperty(Service.prototype, "methodsArray", { - get: function() { - return this._methodsArray || (this._methodsArray = util.toArray(this.methods)); - } -}); - -function clearCache(service) { - service._methodsArray = null; - return service; -} - -/** - * @override - */ -Service.prototype.get = function get(name) { - return this.methods[name] - || Namespace.prototype.get.call(this, name); -}; - -/** - * @override - */ -Service.prototype.resolveAll = function resolveAll() { - var methods = this.methodsArray; - for (var i = 0; i < methods.length; ++i) - methods[i].resolve(); - return Namespace.prototype.resolve.call(this); -}; - -/** - * @override - */ -Service.prototype.add = function add(object) { - - /* istanbul ignore if */ - if (this.get(object.name)) - throw Error("duplicate name '" + object.name + "' in " + this); - - if (object instanceof Method) { - this.methods[object.name] = object; - object.parent = this; - return clearCache(this); - } - return Namespace.prototype.add.call(this, object); -}; - -/** - * @override - */ -Service.prototype.remove = function remove(object) { - if (object instanceof Method) { - - /* istanbul ignore if */ - if (this.methods[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.methods[object.name]; - object.parent = null; - return clearCache(this); - } - return Namespace.prototype.remove.call(this, object); -}; - -/** - * Creates a runtime service using the specified rpc implementation. - * @param {RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed. - */ -Service.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) { - var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited); - for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) { - var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\w_]/g, ""); - rpcService[methodName] = util.codegen(["r","c"], util.isReserved(methodName) ? methodName + "_" : methodName)("return this.rpcCall(m,q,s,r,c)")({ - m: method, - q: method.resolvedRequestType.ctor, - s: method.resolvedResponseType.ctor - }); - } - return rpcService; -}; - -},{"20":20,"21":21,"28":28,"33":33}],31:[function(require,module,exports){ -"use strict"; -module.exports = Type; - -// extends Namespace -var Namespace = require(21); -((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = "Type"; - -var Enum = require(14), - OneOf = require(23), - Field = require(15), - MapField = require(18), - Service = require(30), - Message = require(19), - Reader = require(24), - Writer = require(38), - util = require(33), - encoder = require(13), - decoder = require(12), - verifier = require(36), - converter = require(11), - wrappers = require(37); - -/** - * Constructs a new reflected message type instance. - * @classdesc Reflected message type. - * @extends NamespaceBase - * @constructor - * @param {string} name Message name - * @param {Object.} [options] Declared options - */ -function Type(name, options) { - Namespace.call(this, name, options); - - /** - * Message fields. - * @type {Object.} - */ - this.fields = {}; // toJSON, marker - - /** - * Oneofs declared within this namespace, if any. - * @type {Object.} - */ - this.oneofs = undefined; // toJSON - - /** - * Extension ranges, if any. - * @type {number[][]} - */ - this.extensions = undefined; // toJSON - - /** - * Reserved ranges, if any. - * @type {Array.} - */ - this.reserved = undefined; // toJSON - - /*? - * Whether this type is a legacy group. - * @type {boolean|undefined} - */ - this.group = undefined; // toJSON - - /** - * Cached fields by id. - * @type {Object.|null} - * @private - */ - this._fieldsById = null; - - /** - * Cached fields as an array. - * @type {Field[]|null} - * @private - */ - this._fieldsArray = null; - - /** - * Cached oneofs as an array. - * @type {OneOf[]|null} - * @private - */ - this._oneofsArray = null; - - /** - * Cached constructor. - * @type {Constructor<{}>} - * @private - */ - this._ctor = null; -} - -Object.defineProperties(Type.prototype, { - - /** - * Message fields by id. - * @name Type#fieldsById - * @type {Object.} - * @readonly - */ - fieldsById: { - get: function() { - - /* istanbul ignore if */ - if (this._fieldsById) - return this._fieldsById; - - this._fieldsById = {}; - for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) { - var field = this.fields[names[i]], - id = field.id; - - /* istanbul ignore if */ - if (this._fieldsById[id]) - throw Error("duplicate id " + id + " in " + this); - - this._fieldsById[id] = field; - } - return this._fieldsById; - } - }, - - /** - * Fields of this message as an array for iteration. - * @name Type#fieldsArray - * @type {Field[]} - * @readonly - */ - fieldsArray: { - get: function() { - return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields)); - } - }, - - /** - * Oneofs of this message as an array for iteration. - * @name Type#oneofsArray - * @type {OneOf[]} - * @readonly - */ - oneofsArray: { - get: function() { - return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs)); - } - }, - - /** - * The registered constructor, if any registered, otherwise a generic constructor. - * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor. - * @name Type#ctor - * @type {Constructor<{}>} - */ - ctor: { - get: function() { - return this._ctor || (this.ctor = Type.generateConstructor(this)()); - }, - set: function(ctor) { - - // Ensure proper prototype - var prototype = ctor.prototype; - if (!(prototype instanceof Message)) { - (ctor.prototype = new Message()).constructor = ctor; - util.merge(ctor.prototype, prototype); - } - - // Classes and messages reference their reflected type - ctor.$type = ctor.prototype.$type = this; - - // Mix in static methods - util.merge(ctor, Message, true); - - this._ctor = ctor; - - // Messages have non-enumerable default values on their prototype - var i = 0; - for (; i < /* initializes */ this.fieldsArray.length; ++i) - this._fieldsArray[i].resolve(); // ensures a proper value - - // Messages have non-enumerable getters and setters for each virtual oneof field - var ctorProperties = {}; - for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i) - ctorProperties[this._oneofsArray[i].resolve().name] = { - get: util.oneOfGetter(this._oneofsArray[i].oneof), - set: util.oneOfSetter(this._oneofsArray[i].oneof) - }; - if (i) - Object.defineProperties(ctor.prototype, ctorProperties); - } - } -}); - -/** - * Generates a constructor function for the specified type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -Type.generateConstructor = function generateConstructor(mtype) { - /* eslint-disable no-unexpected-multiline */ - var gen = util.codegen(["p"], mtype.name); - // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype - for (var i = 0, field; i < mtype.fieldsArray.length; ++i) - if ((field = mtype._fieldsArray[i]).map) gen - ("this%s={}", util.safeProp(field.name)); - else if (field.repeated) gen - ("this%s=[]", util.safeProp(field.name)); - return gen - ("if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors - * @property {Object.} fields Field descriptors - * @property {number[][]} [extensions] Extension ranges - * @property {number[][]} [reserved] Reserved ranges - * @property {boolean} [group=false] Whether a legacy group or not - */ - -/** - * Creates a message type from a message type descriptor. - * @param {string} name Message name - * @param {IType} json Message type descriptor - * @returns {Type} Created message type - */ -Type.fromJSON = function fromJSON(name, json) { - var type = new Type(name, json.options); - type.extensions = json.extensions; - type.reserved = json.reserved; - var names = Object.keys(json.fields), - i = 0; - for (; i < names.length; ++i) - type.add( - ( typeof json.fields[names[i]].keyType !== "undefined" - ? MapField.fromJSON - : Field.fromJSON )(names[i], json.fields[names[i]]) - ); - if (json.oneofs) - for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i) - type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]])); - if (json.nested) - for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) { - var nested = json.nested[names[i]]; - type.add( // most to least likely - ( nested.id !== undefined - ? Field.fromJSON - : nested.fields !== undefined - ? Type.fromJSON - : nested.values !== undefined - ? Enum.fromJSON - : nested.methods !== undefined - ? Service.fromJSON - : Namespace.fromJSON )(names[i], nested) - ); - } - if (json.extensions && json.extensions.length) - type.extensions = json.extensions; - if (json.reserved && json.reserved.length) - type.reserved = json.reserved; - if (json.group) - type.group = true; - if (json.comment) - type.comment = json.comment; - return type; -}; - -/** - * Converts this message type to a message type descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IType} Message type descriptor - */ -Type.prototype.toJSON = function toJSON(toJSONOptions) { - var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions); - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , inherited && inherited.options || undefined, - "oneofs" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions), - "fields" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {}, - "extensions" , this.extensions && this.extensions.length ? this.extensions : undefined, - "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined, - "group" , this.group || undefined, - "nested" , inherited && inherited.nested || undefined, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -Type.prototype.resolveAll = function resolveAll() { - var fields = this.fieldsArray, i = 0; - while (i < fields.length) - fields[i++].resolve(); - var oneofs = this.oneofsArray; i = 0; - while (i < oneofs.length) - oneofs[i++].resolve(); - return Namespace.prototype.resolveAll.call(this); -}; - -/** - * @override - */ -Type.prototype.get = function get(name) { - return this.fields[name] - || this.oneofs && this.oneofs[name] - || this.nested && this.nested[name] - || null; -}; - -/** - * Adds a nested object to this type. - * @param {ReflectionObject} object Nested object to add - * @returns {Type} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id - */ -Type.prototype.add = function add(object) { - - if (this.get(object.name)) - throw Error("duplicate name '" + object.name + "' in " + this); - - if (object instanceof Field && object.extend === undefined) { - // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects. - // The root object takes care of adding distinct sister-fields to the respective extended - // type instead. - - // avoids calling the getter if not absolutely necessary because it's called quite frequently - if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id]) - throw Error("duplicate id " + object.id + " in " + this); - if (this.isReservedId(object.id)) - throw Error("id " + object.id + " is reserved in " + this); - if (this.isReservedName(object.name)) - throw Error("name '" + object.name + "' is reserved in " + this); - - if (object.parent) - object.parent.remove(object); - this.fields[object.name] = object; - object.message = this; - object.onAdd(this); - return clearCache(this); - } - if (object instanceof OneOf) { - if (!this.oneofs) - this.oneofs = {}; - this.oneofs[object.name] = object; - object.onAdd(this); - return clearCache(this); - } - return Namespace.prototype.add.call(this, object); -}; - -/** - * Removes a nested object from this type. - * @param {ReflectionObject} object Nested object to remove - * @returns {Type} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `object` is not a member of this type - */ -Type.prototype.remove = function remove(object) { - if (object instanceof Field && object.extend === undefined) { - // See Type#add for the reason why extension fields are excluded here. - - /* istanbul ignore if */ - if (!this.fields || this.fields[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.fields[object.name]; - object.parent = null; - object.onRemove(this); - return clearCache(this); - } - if (object instanceof OneOf) { - - /* istanbul ignore if */ - if (!this.oneofs || this.oneofs[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.oneofs[object.name]; - object.parent = null; - object.onRemove(this); - return clearCache(this); - } - return Namespace.prototype.remove.call(this, object); -}; - -/** - * Tests if the specified id is reserved. - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Type.prototype.isReservedId = function isReservedId(id) { - return Namespace.isReservedId(this.reserved, id); -}; - -/** - * Tests if the specified name is reserved. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Type.prototype.isReservedName = function isReservedName(name) { - return Namespace.isReservedName(this.reserved, name); -}; - -/** - * Creates a new message of this type using the specified properties. - * @param {Object.} [properties] Properties to set - * @returns {Message<{}>} Message instance - */ -Type.prototype.create = function create(properties) { - return new this.ctor(properties); -}; - -/** - * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}. - * @returns {Type} `this` - */ -Type.prototype.setup = function setup() { - // Sets up everything at once so that the prototype chain does not have to be re-evaluated - // multiple times (V8, soft-deopt prototype-check). - - var fullName = this.fullName, - types = []; - for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i) - types.push(this._fieldsArray[i].resolve().resolvedType); - - // Replace setup methods with type-specific generated functions - this.encode = encoder(this)({ - Writer : Writer, - types : types, - util : util - }); - this.decode = decoder(this)({ - Reader : Reader, - types : types, - util : util - }); - this.verify = verifier(this)({ - types : types, - util : util - }); - this.fromObject = converter.fromObject(this)({ - types : types, - util : util - }); - this.toObject = converter.toObject(this)({ - types : types, - util : util - }); - - // Inject custom wrappers for common types - var wrapper = wrappers[fullName]; - if (wrapper) { - var originalThis = Object.create(this); - // if (wrapper.fromObject) { - originalThis.fromObject = this.fromObject; - this.fromObject = wrapper.fromObject.bind(originalThis); - // } - // if (wrapper.toObject) { - originalThis.toObject = this.toObject; - this.toObject = wrapper.toObject.bind(originalThis); - // } - } - - return this; -}; - -/** - * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages. - * @param {Message<{}>|Object.} message Message instance or plain object - * @param {Writer} [writer] Writer to encode to - * @returns {Writer} writer - */ -Type.prototype.encode = function encode_setup(message, writer) { - return this.setup().encode(message, writer); // overrides this method -}; - -/** - * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages. - * @param {Message<{}>|Object.} message Message instance or plain object - * @param {Writer} [writer] Writer to encode to - * @returns {Writer} writer - */ -Type.prototype.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); -}; - -/** - * Decodes a message of this type. - * @param {Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Length of the message, if known beforehand - * @returns {Message<{}>} Decoded message - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {util.ProtocolError<{}>} If required fields are missing - */ -Type.prototype.decode = function decode_setup(reader, length) { - return this.setup().decode(reader, length); // overrides this method -}; - -/** - * Decodes a message of this type preceeded by its byte length as a varint. - * @param {Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {Message<{}>} Decoded message - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {util.ProtocolError} If required fields are missing - */ -Type.prototype.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof Reader)) - reader = Reader.create(reader); - return this.decode(reader, reader.uint32()); -}; - -/** - * Verifies that field values are valid and that required fields are present. - * @param {Object.} message Plain object to verify - * @returns {null|string} `null` if valid, otherwise the reason why it is not - */ -Type.prototype.verify = function verify_setup(message) { - return this.setup().verify(message); // overrides this method -}; - -/** - * Creates a new message of this type from a plain object. Also converts values to their respective internal types. - * @param {Object.} object Plain object to convert - * @returns {Message<{}>} Message instance - */ -Type.prototype.fromObject = function fromObject(object) { - return this.setup().fromObject(object); -}; - -/** - * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}. - * @interface IConversionOptions - * @property {Function} [longs] Long conversion type. - * Valid values are `String` and `Number` (the global types). - * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library. - * @property {Function} [enums] Enum value conversion type. - * Only valid value is `String` (the global type). - * Defaults to copy the present value, which is the numeric id. - * @property {Function} [bytes] Bytes value conversion type. - * Valid values are `Array` and (a base64 encoded) `String` (the global types). - * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser. - * @property {boolean} [defaults=false] Also sets default values on the resulting object - * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false` - * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false` - * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any - * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings - */ - -/** - * Creates a plain object from a message of this type. Also converts values to other types if specified. - * @param {Message<{}>} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ -Type.prototype.toObject = function toObject(message, options) { - return this.setup().toObject(message, options); -}; - -/** - * Decorator function as returned by {@link Type.d} (TypeScript). - * @typedef TypeDecorator - * @type {function} - * @param {Constructor} target Target constructor - * @returns {undefined} - * @template T extends Message - */ - -/** - * Type decorator (TypeScript). - * @param {string} [typeName] Type name, defaults to the constructor's name - * @returns {TypeDecorator} Decorator function - * @template T extends Message - */ -Type.d = function decorateType(typeName) { - return function typeDecorator(target) { - util.decorateType(target, typeName); - }; -}; - -},{"11":11,"12":12,"13":13,"14":14,"15":15,"18":18,"19":19,"21":21,"23":23,"24":24,"30":30,"33":33,"36":36,"37":37,"38":38}],32:[function(require,module,exports){ -"use strict"; - -/** - * Common type constants. - * @namespace - */ -var types = exports; - -var util = require(33); - -var s = [ - "double", // 0 - "float", // 1 - "int32", // 2 - "uint32", // 3 - "sint32", // 4 - "fixed32", // 5 - "sfixed32", // 6 - "int64", // 7 - "uint64", // 8 - "sint64", // 9 - "fixed64", // 10 - "sfixed64", // 11 - "bool", // 12 - "string", // 13 - "bytes" // 14 -]; - -function bake(values, offset) { - var i = 0, o = {}; - offset |= 0; - while (i < values.length) o[s[i + offset]] = values[i++]; - return o; -} - -/** - * Basic type wire types. - * @type {Object.} - * @const - * @property {number} double=1 Fixed64 wire type - * @property {number} float=5 Fixed32 wire type - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - * @property {number} string=2 Ldelim wire type - * @property {number} bytes=2 Ldelim wire type - */ -types.basic = bake([ - /* double */ 1, - /* float */ 5, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0, - /* string */ 2, - /* bytes */ 2 -]); - -/** - * Basic type defaults. - * @type {Object.} - * @const - * @property {number} double=0 Double default - * @property {number} float=0 Float default - * @property {number} int32=0 Int32 default - * @property {number} uint32=0 Uint32 default - * @property {number} sint32=0 Sint32 default - * @property {number} fixed32=0 Fixed32 default - * @property {number} sfixed32=0 Sfixed32 default - * @property {number} int64=0 Int64 default - * @property {number} uint64=0 Uint64 default - * @property {number} sint64=0 Sint32 default - * @property {number} fixed64=0 Fixed64 default - * @property {number} sfixed64=0 Sfixed64 default - * @property {boolean} bool=false Bool default - * @property {string} string="" String default - * @property {Array.} bytes=Array(0) Bytes default - * @property {null} message=null Message default - */ -types.defaults = bake([ - /* double */ 0, - /* float */ 0, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 0, - /* sfixed32 */ 0, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 0, - /* sfixed64 */ 0, - /* bool */ false, - /* string */ "", - /* bytes */ util.emptyArray, - /* message */ null -]); - -/** - * Basic long type wire types. - * @type {Object.} - * @const - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - */ -types.long = bake([ - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1 -], 7); - -/** - * Allowed types for map keys with their associated wire type. - * @type {Object.} - * @const - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - * @property {number} string=2 Ldelim wire type - */ -types.mapKey = bake([ - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0, - /* string */ 2 -], 2); - -/** - * Allowed types for packed repeated fields with their associated wire type. - * @type {Object.} - * @const - * @property {number} double=1 Fixed64 wire type - * @property {number} float=5 Fixed32 wire type - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - */ -types.packed = bake([ - /* double */ 1, - /* float */ 5, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0 -]); - -},{"33":33}],33:[function(require,module,exports){ -"use strict"; - -/** - * Various utility functions. - * @namespace - */ -var util = module.exports = require(35); - -var roots = require(27); - -var Type, // cyclic - Enum; - -util.codegen = require(3); -util.fetch = require(5); -util.path = require(8); - -/** - * Node's fs module if available. - * @type {Object.} - */ -util.fs = util.inquire("fs"); - -/** - * Converts an object's values to an array. - * @param {Object.} object Object to convert - * @returns {Array.<*>} Converted array - */ -util.toArray = function toArray(object) { - if (object) { - var keys = Object.keys(object), - array = new Array(keys.length), - index = 0; - while (index < keys.length) - array[index] = object[keys[index++]]; - return array; - } - return []; -}; - -/** - * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values. - * @param {Array.<*>} array Array to convert - * @returns {Object.} Converted object - */ -util.toObject = function toObject(array) { - var object = {}, - index = 0; - while (index < array.length) { - var key = array[index++], - val = array[index++]; - if (val !== undefined) - object[key] = val; - } - return object; -}; - -var safePropBackslashRe = /\\/g, - safePropQuoteRe = /"/g; - -/** - * Tests whether the specified name is a reserved word in JS. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -util.isReserved = function isReserved(name) { - return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name); -}; - -/** - * Returns a safe property accessor for the specified property name. - * @param {string} prop Property name - * @returns {string} Safe accessor - */ -util.safeProp = function safeProp(prop) { - if (!/^[$\w_]+$/.test(prop) || util.isReserved(prop)) - return "[\"" + prop.replace(safePropBackslashRe, "\\\\").replace(safePropQuoteRe, "\\\"") + "\"]"; - return "." + prop; -}; - -/** - * Converts the first character of a string to upper case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.ucFirst = function ucFirst(str) { - return str.charAt(0).toUpperCase() + str.substring(1); -}; - -var camelCaseRe = /_([a-z])/g; - -/** - * Converts a string to camel case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.camelCase = function camelCase(str) { - return str.substring(0, 1) - + str.substring(1) - .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); }); -}; - -/** - * Compares reflected fields by id. - * @param {Field} a First field - * @param {Field} b Second field - * @returns {number} Comparison value - */ -util.compareFieldsById = function compareFieldsById(a, b) { - return a.id - b.id; -}; - -/** - * Decorator helper for types (TypeScript). - * @param {Constructor} ctor Constructor function - * @param {string} [typeName] Type name, defaults to the constructor's name - * @returns {Type} Reflected type - * @template T extends Message - * @property {Root} root Decorators root - */ -util.decorateType = function decorateType(ctor, typeName) { - - /* istanbul ignore if */ - if (ctor.$type) { - if (typeName && ctor.$type.name !== typeName) { - util.decorateRoot.remove(ctor.$type); - ctor.$type.name = typeName; - util.decorateRoot.add(ctor.$type); - } - return ctor.$type; - } - - /* istanbul ignore next */ - if (!Type) - Type = require(31); - - var type = new Type(typeName || ctor.name); - util.decorateRoot.add(type); - type.ctor = ctor; // sets up .encode, .decode etc. - Object.defineProperty(ctor, "$type", { value: type, enumerable: false }); - Object.defineProperty(ctor.prototype, "$type", { value: type, enumerable: false }); - return type; -}; - -var decorateEnumIndex = 0; - -/** - * Decorator helper for enums (TypeScript). - * @param {Object} object Enum object - * @returns {Enum} Reflected enum - */ -util.decorateEnum = function decorateEnum(object) { - - /* istanbul ignore if */ - if (object.$type) - return object.$type; - - /* istanbul ignore next */ - if (!Enum) - Enum = require(14); - - var enm = new Enum("Enum" + decorateEnumIndex++, object); - util.decorateRoot.add(enm); - Object.defineProperty(object, "$type", { value: enm, enumerable: false }); - return enm; -}; - -/** - * Decorator root (TypeScript). - * @name util.decorateRoot - * @type {Root} - * @readonly - */ -Object.defineProperty(util, "decorateRoot", { - get: function() { - return roots["decorated"] || (roots["decorated"] = new (require(26))()); - } -}); - -},{"14":14,"26":26,"27":27,"3":3,"31":31,"35":35,"5":5,"8":8}],34:[function(require,module,exports){ -"use strict"; -module.exports = LongBits; - -var util = require(35); - -/** - * Constructs new long bits. - * @classdesc Helper class for working with the low and high bits of a 64 bit value. - * @memberof util - * @constructor - * @param {number} lo Low 32 bits, unsigned - * @param {number} hi High 32 bits, unsigned - */ -function LongBits(lo, hi) { - - // note that the casts below are theoretically unnecessary as of today, but older statically - // generated converter code might still call the ctor with signed 32bits. kept for compat. - - /** - * Low bits. - * @type {number} - */ - this.lo = lo >>> 0; - - /** - * High bits. - * @type {number} - */ - this.hi = hi >>> 0; -} - -/** - * Zero bits. - * @memberof util.LongBits - * @type {util.LongBits} - */ -var zero = LongBits.zero = new LongBits(0, 0); - -zero.toNumber = function() { return 0; }; -zero.zzEncode = zero.zzDecode = function() { return this; }; -zero.length = function() { return 1; }; - -/** - * Zero hash. - * @memberof util.LongBits - * @type {string} - */ -var zeroHash = LongBits.zeroHash = "\0\0\0\0\0\0\0\0"; - -/** - * Constructs new long bits from the specified number. - * @param {number} value Value - * @returns {util.LongBits} Instance - */ -LongBits.fromNumber = function fromNumber(value) { - if (value === 0) - return zero; - var sign = value < 0; - if (sign) - value = -value; - var lo = value >>> 0, - hi = (value - lo) / 4294967296 >>> 0; - if (sign) { - hi = ~hi >>> 0; - lo = ~lo >>> 0; - if (++lo > 4294967295) { - lo = 0; - if (++hi > 4294967295) - hi = 0; - } - } - return new LongBits(lo, hi); -}; - -/** - * Constructs new long bits from a number, long or string. - * @param {Long|number|string} value Value - * @returns {util.LongBits} Instance - */ -LongBits.from = function from(value) { - if (typeof value === "number") - return LongBits.fromNumber(value); - if (util.isString(value)) { - /* istanbul ignore else */ - if (util.Long) - value = util.Long.fromString(value); - else - return LongBits.fromNumber(parseInt(value, 10)); - } - return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero; -}; - -/** - * Converts this long bits to a possibly unsafe JavaScript number. - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {number} Possibly unsafe number - */ -LongBits.prototype.toNumber = function toNumber(unsigned) { - if (!unsigned && this.hi >>> 31) { - var lo = ~this.lo + 1 >>> 0, - hi = ~this.hi >>> 0; - if (!lo) - hi = hi + 1 >>> 0; - return -(lo + hi * 4294967296); - } - return this.lo + this.hi * 4294967296; -}; - -/** - * Converts this long bits to a long. - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {Long} Long - */ -LongBits.prototype.toLong = function toLong(unsigned) { - return util.Long - ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned)) - /* istanbul ignore next */ - : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) }; -}; - -var charCodeAt = String.prototype.charCodeAt; - -/** - * Constructs new long bits from the specified 8 characters long hash. - * @param {string} hash Hash - * @returns {util.LongBits} Bits - */ -LongBits.fromHash = function fromHash(hash) { - if (hash === zeroHash) - return zero; - return new LongBits( - ( charCodeAt.call(hash, 0) - | charCodeAt.call(hash, 1) << 8 - | charCodeAt.call(hash, 2) << 16 - | charCodeAt.call(hash, 3) << 24) >>> 0 - , - ( charCodeAt.call(hash, 4) - | charCodeAt.call(hash, 5) << 8 - | charCodeAt.call(hash, 6) << 16 - | charCodeAt.call(hash, 7) << 24) >>> 0 - ); -}; - -/** - * Converts this long bits to a 8 characters long hash. - * @returns {string} Hash - */ -LongBits.prototype.toHash = function toHash() { - return String.fromCharCode( - this.lo & 255, - this.lo >>> 8 & 255, - this.lo >>> 16 & 255, - this.lo >>> 24 , - this.hi & 255, - this.hi >>> 8 & 255, - this.hi >>> 16 & 255, - this.hi >>> 24 - ); -}; - -/** - * Zig-zag encodes this long bits. - * @returns {util.LongBits} `this` - */ -LongBits.prototype.zzEncode = function zzEncode() { - var mask = this.hi >> 31; - this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0; - this.lo = ( this.lo << 1 ^ mask) >>> 0; - return this; -}; - -/** - * Zig-zag decodes this long bits. - * @returns {util.LongBits} `this` - */ -LongBits.prototype.zzDecode = function zzDecode() { - var mask = -(this.lo & 1); - this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0; - this.hi = ( this.hi >>> 1 ^ mask) >>> 0; - return this; -}; - -/** - * Calculates the length of this longbits when encoded as a varint. - * @returns {number} Length - */ -LongBits.prototype.length = function length() { - var part0 = this.lo, - part1 = (this.lo >>> 28 | this.hi << 4) >>> 0, - part2 = this.hi >>> 24; - return part2 === 0 - ? part1 === 0 - ? part0 < 16384 - ? part0 < 128 ? 1 : 2 - : part0 < 2097152 ? 3 : 4 - : part1 < 16384 - ? part1 < 128 ? 5 : 6 - : part1 < 2097152 ? 7 : 8 - : part2 < 128 ? 9 : 10; -}; - -},{"35":35}],35:[function(require,module,exports){ -"use strict"; -var util = exports; - -// used to return a Promise where callback is omitted -util.asPromise = require(1); - -// converts to / from base64 encoded strings -util.base64 = require(2); - -// base class of rpc.Service -util.EventEmitter = require(4); - -// float handling accross browsers -util.float = require(6); - -// requires modules optionally and hides the call from bundlers -util.inquire = require(7); - -// converts to / from utf8 encoded strings -util.utf8 = require(10); - -// provides a node-like buffer pool in the browser -util.pool = require(9); - -// utility to work with the low and high bits of a 64 bit value -util.LongBits = require(34); - -// global object reference -util.global = typeof window !== "undefined" && window - || typeof global !== "undefined" && global - || typeof self !== "undefined" && self - || this; // eslint-disable-line no-invalid-this - -/** - * An immuable empty array. - * @memberof util - * @type {Array.<*>} - * @const - */ -util.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes - -/** - * An immutable empty object. - * @type {Object} - * @const - */ -util.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes - -/** - * Whether running within node or not. - * @memberof util - * @type {boolean} - * @const - */ -util.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node); - -/** - * Tests if the specified value is an integer. - * @function - * @param {*} value Value to test - * @returns {boolean} `true` if the value is an integer - */ -util.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) { - return typeof value === "number" && isFinite(value) && Math.floor(value) === value; -}; - -/** - * Tests if the specified value is a string. - * @param {*} value Value to test - * @returns {boolean} `true` if the value is a string - */ -util.isString = function isString(value) { - return typeof value === "string" || value instanceof String; -}; - -/** - * Tests if the specified value is a non-null object. - * @param {*} value Value to test - * @returns {boolean} `true` if the value is a non-null object - */ -util.isObject = function isObject(value) { - return value && typeof value === "object"; -}; - -/** - * Checks if a property on a message is considered to be present. - * This is an alias of {@link util.isSet}. - * @function - * @param {Object} obj Plain object or message instance - * @param {string} prop Property name - * @returns {boolean} `true` if considered to be present, otherwise `false` - */ -util.isset = - -/** - * Checks if a property on a message is considered to be present. - * @param {Object} obj Plain object or message instance - * @param {string} prop Property name - * @returns {boolean} `true` if considered to be present, otherwise `false` - */ -util.isSet = function isSet(obj, prop) { - var value = obj[prop]; - if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins - return typeof value !== "object" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0; - return false; -}; - -/** - * Any compatible Buffer instance. - * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings. - * @interface Buffer - * @extends Uint8Array - */ - -/** - * Node's Buffer class if available. - * @type {Constructor} - */ -util.Buffer = (function() { - try { - var Buffer = util.inquire("buffer").Buffer; - // refuse to use non-node buffers if not explicitly assigned (perf reasons): - return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null; - } catch (e) { - /* istanbul ignore next */ - return null; - } -})(); - -// Internal alias of or polyfull for Buffer.from. -util._Buffer_from = null; - -// Internal alias of or polyfill for Buffer.allocUnsafe. -util._Buffer_allocUnsafe = null; - -/** - * Creates a new buffer of whatever type supported by the environment. - * @param {number|number[]} [sizeOrArray=0] Buffer size or number array - * @returns {Uint8Array|Buffer} Buffer - */ -util.newBuffer = function newBuffer(sizeOrArray) { - /* istanbul ignore next */ - return typeof sizeOrArray === "number" - ? util.Buffer - ? util._Buffer_allocUnsafe(sizeOrArray) - : new util.Array(sizeOrArray) - : util.Buffer - ? util._Buffer_from(sizeOrArray) - : typeof Uint8Array === "undefined" - ? sizeOrArray - : new Uint8Array(sizeOrArray); -}; - -/** - * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`. - * @type {Constructor} - */ -util.Array = typeof Uint8Array !== "undefined" ? Uint8Array /* istanbul ignore next */ : Array; - -/** - * Long.js's Long class if available. - * @type {Constructor} - */ -util.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long - || /* istanbul ignore next */ util.global.Long - || util.inquire("long"); - -/** - * Regular expression used to verify 2 bit (`bool`) map keys. - * @type {RegExp} - * @const - */ -util.key2Re = /^true|false|0|1$/; - -/** - * Regular expression used to verify 32 bit (`int32` etc.) map keys. - * @type {RegExp} - * @const - */ -util.key32Re = /^-?(?:0|[1-9][0-9]*)$/; - -/** - * Regular expression used to verify 64 bit (`int64` etc.) map keys. - * @type {RegExp} - * @const - */ -util.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/; - -/** - * Converts a number or long to an 8 characters long hash string. - * @param {Long|number} value Value to convert - * @returns {string} Hash - */ -util.longToHash = function longToHash(value) { - return value - ? util.LongBits.from(value).toHash() - : util.LongBits.zeroHash; -}; - -/** - * Converts an 8 characters long hash string to a long or number. - * @param {string} hash Hash - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {Long|number} Original value - */ -util.longFromHash = function longFromHash(hash, unsigned) { - var bits = util.LongBits.fromHash(hash); - if (util.Long) - return util.Long.fromBits(bits.lo, bits.hi, unsigned); - return bits.toNumber(Boolean(unsigned)); -}; - -/** - * Merges the properties of the source object into the destination object. - * @memberof util - * @param {Object.} dst Destination object - * @param {Object.} src Source object - * @param {boolean} [ifNotSet=false] Merges only if the key is not already set - * @returns {Object.} Destination object - */ -function merge(dst, src, ifNotSet) { // used by converters - for (var keys = Object.keys(src), i = 0; i < keys.length; ++i) - if (dst[keys[i]] === undefined || !ifNotSet) - dst[keys[i]] = src[keys[i]]; - return dst; -} - -util.merge = merge; - -/** - * Converts the first character of a string to lower case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.lcFirst = function lcFirst(str) { - return str.charAt(0).toLowerCase() + str.substring(1); -}; - -/** - * Creates a custom error constructor. - * @memberof util - * @param {string} name Error name - * @returns {Constructor} Custom error constructor - */ -function newError(name) { - - function CustomError(message, properties) { - - if (!(this instanceof CustomError)) - return new CustomError(message, properties); - - // Error.call(this, message); - // ^ just returns a new error instance because the ctor can be called as a function - - Object.defineProperty(this, "message", { get: function() { return message; } }); - - /* istanbul ignore next */ - if (Error.captureStackTrace) // node - Error.captureStackTrace(this, CustomError); - else - Object.defineProperty(this, "stack", { value: (new Error()).stack || "" }); - - if (properties) - merge(this, properties); - } - - (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError; - - Object.defineProperty(CustomError.prototype, "name", { get: function() { return name; } }); - - CustomError.prototype.toString = function toString() { - return this.name + ": " + this.message; - }; - - return CustomError; -} - -util.newError = newError; - -/** - * Constructs a new protocol error. - * @classdesc Error subclass indicating a protocol specifc error. - * @memberof util - * @extends Error - * @template T extends Message - * @constructor - * @param {string} message Error message - * @param {Object.} [properties] Additional properties - * @example - * try { - * MyMessage.decode(someBuffer); // throws if required fields are missing - * } catch (e) { - * if (e instanceof ProtocolError && e.instance) - * console.log("decoded so far: " + JSON.stringify(e.instance)); - * } - */ -util.ProtocolError = newError("ProtocolError"); - -/** - * So far decoded message instance. - * @name util.ProtocolError#instance - * @type {Message} - */ - -/** - * A OneOf getter as returned by {@link util.oneOfGetter}. - * @typedef OneOfGetter - * @type {function} - * @returns {string|undefined} Set field name, if any - */ - -/** - * Builds a getter for a oneof's present field name. - * @param {string[]} fieldNames Field names - * @returns {OneOfGetter} Unbound getter - */ -util.oneOfGetter = function getOneOf(fieldNames) { - var fieldMap = {}; - for (var i = 0; i < fieldNames.length; ++i) - fieldMap[fieldNames[i]] = 1; - - /** - * @returns {string|undefined} Set field name, if any - * @this Object - * @ignore - */ - return function() { // eslint-disable-line consistent-return - for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i) - if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null) - return keys[i]; - }; -}; - -/** - * A OneOf setter as returned by {@link util.oneOfSetter}. - * @typedef OneOfSetter - * @type {function} - * @param {string|undefined} value Field name - * @returns {undefined} - */ - -/** - * Builds a setter for a oneof's present field name. - * @param {string[]} fieldNames Field names - * @returns {OneOfSetter} Unbound setter - */ -util.oneOfSetter = function setOneOf(fieldNames) { - - /** - * @param {string} name Field name - * @returns {undefined} - * @this Object - * @ignore - */ - return function(name) { - for (var i = 0; i < fieldNames.length; ++i) - if (fieldNames[i] !== name) - delete this[fieldNames[i]]; - }; -}; - -/** - * Default conversion options used for {@link Message#toJSON} implementations. - * - * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely: - * - * - Longs become strings - * - Enums become string keys - * - Bytes become base64 encoded strings - * - (Sub-)Messages become plain objects - * - Maps become plain objects with all string keys - * - Repeated fields become arrays - * - NaN and Infinity for float and double fields become strings - * - * @type {IConversionOptions} - * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json - */ -util.toJSONOptions = { - longs: String, - enums: String, - bytes: String, - json: true -}; - -// Sets up buffer utility according to the environment (called in index-minimal) -util._configure = function() { - var Buffer = util.Buffer; - /* istanbul ignore if */ - if (!Buffer) { - util._Buffer_from = util._Buffer_allocUnsafe = null; - return; - } - // because node 4.x buffers are incompatible & immutable - // see: https://github.com/dcodeIO/protobuf.js/pull/665 - util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from || - /* istanbul ignore next */ - function Buffer_from(value, encoding) { - return new Buffer(value, encoding); - }; - util._Buffer_allocUnsafe = Buffer.allocUnsafe || - /* istanbul ignore next */ - function Buffer_allocUnsafe(size) { - return new Buffer(size); - }; -}; - -},{"1":1,"10":10,"2":2,"34":34,"4":4,"6":6,"7":7,"9":9}],36:[function(require,module,exports){ -"use strict"; -module.exports = verifier; - -var Enum = require(14), - util = require(33); - -function invalid(field, expected) { - return field.name + ": " + expected + (field.repeated && expected !== "array" ? "[]" : field.map && expected !== "object" ? "{k:"+field.keyType+"}" : "") + " expected"; -} - -/** - * Generates a partial value verifier. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {number} fieldIndex Field index - * @param {string} ref Variable reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genVerifyValue(gen, field, fieldIndex, ref) { - /* eslint-disable no-unexpected-multiline */ - if (field.resolvedType) { - if (field.resolvedType instanceof Enum) { gen - ("switch(%s){", ref) - ("default:") - ("return%j", invalid(field, "enum value")); - for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen - ("case %i:", field.resolvedType.values[keys[j]]); - gen - ("break") - ("}"); - } else { - gen - ("{") - ("var e=types[%i].verify(%s);", fieldIndex, ref) - ("if(e)") - ("return%j+e", field.name + ".") - ("}"); - } - } else { - switch (field.type) { - case "int32": - case "uint32": - case "sint32": - case "fixed32": - case "sfixed32": gen - ("if(!util.isInteger(%s))", ref) - ("return%j", invalid(field, "integer")); - break; - case "int64": - case "uint64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))", ref, ref, ref, ref) - ("return%j", invalid(field, "integer|Long")); - break; - case "float": - case "double": gen - ("if(typeof %s!==\"number\")", ref) - ("return%j", invalid(field, "number")); - break; - case "bool": gen - ("if(typeof %s!==\"boolean\")", ref) - ("return%j", invalid(field, "boolean")); - break; - case "string": gen - ("if(!util.isString(%s))", ref) - ("return%j", invalid(field, "string")); - break; - case "bytes": gen - ("if(!(%s&&typeof %s.length===\"number\"||util.isString(%s)))", ref, ref, ref) - ("return%j", invalid(field, "buffer")); - break; - } - } - return gen; - /* eslint-enable no-unexpected-multiline */ -} - -/** - * Generates a partial key verifier. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {string} ref Variable reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genVerifyKey(gen, field, ref) { - /* eslint-disable no-unexpected-multiline */ - switch (field.keyType) { - case "int32": - case "uint32": - case "sint32": - case "fixed32": - case "sfixed32": gen - ("if(!util.key32Re.test(%s))", ref) - ("return%j", invalid(field, "integer key")); - break; - case "int64": - case "uint64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(!util.key64Re.test(%s))", ref) // see comment above: x is ok, d is not - ("return%j", invalid(field, "integer|Long key")); - break; - case "bool": gen - ("if(!util.key2Re.test(%s))", ref) - ("return%j", invalid(field, "boolean key")); - break; - } - return gen; - /* eslint-enable no-unexpected-multiline */ -} - -/** - * Generates a verifier specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -function verifier(mtype) { - /* eslint-disable no-unexpected-multiline */ - - var gen = util.codegen(["m"], mtype.name + "$verify") - ("if(typeof m!==\"object\"||m===null)") - ("return%j", "object expected"); - var oneofs = mtype.oneofsArray, - seenFirstField = {}; - if (oneofs.length) gen - ("var p={}"); - - for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) { - var field = mtype._fieldsArray[i].resolve(), - ref = "m" + util.safeProp(field.name); - - if (field.optional) gen - ("if(%s!=null&&m.hasOwnProperty(%j)){", ref, field.name); // !== undefined && !== null - - // map fields - if (field.map) { gen - ("if(!util.isObject(%s))", ref) - ("return%j", invalid(field, "object")) - ("var k=Object.keys(%s)", ref) - ("for(var i=0;i} - * @const - */ -var wrappers = exports; - -var Message = require(19); - -/** - * From object converter part of an {@link IWrapper}. - * @typedef WrapperFromObjectConverter - * @type {function} - * @param {Object.} object Plain object - * @returns {Message<{}>} Message instance - * @this Type - */ - -/** - * To object converter part of an {@link IWrapper}. - * @typedef WrapperToObjectConverter - * @type {function} - * @param {Message<{}>} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - * @this Type - */ - -/** - * Common type wrapper part of {@link wrappers}. - * @interface IWrapper - * @property {WrapperFromObjectConverter} [fromObject] From object converter - * @property {WrapperToObjectConverter} [toObject] To object converter - */ - -// Custom wrapper for Any -wrappers[".google.protobuf.Any"] = { - - fromObject: function(object) { - - // unwrap value type if mapped - if (object && object["@type"]) { - var type = this.lookup(object["@type"]); - /* istanbul ignore else */ - if (type) { - // type_url does not accept leading "." - var type_url = object["@type"].charAt(0) === "." ? - object["@type"].substr(1) : object["@type"]; - // type_url prefix is optional, but path seperator is required - return this.create({ - type_url: "/" + type_url, - value: type.encode(type.fromObject(object)).finish() - }); - } - } - - return this.fromObject(object); - }, - - toObject: function(message, options) { - - // decode value if requested and unmapped - if (options && options.json && message.type_url && message.value) { - // Only use fully qualified type name after the last '/' - var name = message.type_url.substring(message.type_url.lastIndexOf("/") + 1); - var type = this.lookup(name); - /* istanbul ignore else */ - if (type) - message = type.decode(message.value); - } - - // wrap value if unmapped - if (!(message instanceof this.ctor) && message instanceof Message) { - var object = message.$type.toObject(message, options); - object["@type"] = message.$type.fullName; - return object; - } - - return this.toObject(message, options); - } -}; - -},{"19":19}],38:[function(require,module,exports){ -"use strict"; -module.exports = Writer; - -var util = require(35); - -var BufferWriter; // cyclic - -var LongBits = util.LongBits, - base64 = util.base64, - utf8 = util.utf8; - -/** - * Constructs a new writer operation instance. - * @classdesc Scheduled writer operation. - * @constructor - * @param {function(*, Uint8Array, number)} fn Function to call - * @param {number} len Value byte length - * @param {*} val Value to write - * @ignore - */ -function Op(fn, len, val) { - - /** - * Function to call. - * @type {function(Uint8Array, number, *)} - */ - this.fn = fn; - - /** - * Value byte length. - * @type {number} - */ - this.len = len; - - /** - * Next operation. - * @type {Writer.Op|undefined} - */ - this.next = undefined; - - /** - * Value to write. - * @type {*} - */ - this.val = val; // type varies -} - -/* istanbul ignore next */ -function noop() {} // eslint-disable-line no-empty-function - -/** - * Constructs a new writer state instance. - * @classdesc Copied writer state. - * @memberof Writer - * @constructor - * @param {Writer} writer Writer to copy state from - * @ignore - */ -function State(writer) { - - /** - * Current head. - * @type {Writer.Op} - */ - this.head = writer.head; - - /** - * Current tail. - * @type {Writer.Op} - */ - this.tail = writer.tail; - - /** - * Current buffer length. - * @type {number} - */ - this.len = writer.len; - - /** - * Next state. - * @type {State|null} - */ - this.next = writer.states; -} - -/** - * Constructs a new writer instance. - * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`. - * @constructor - */ -function Writer() { - - /** - * Current length. - * @type {number} - */ - this.len = 0; - - /** - * Operations head. - * @type {Object} - */ - this.head = new Op(noop, 0, 0); - - /** - * Operations tail - * @type {Object} - */ - this.tail = this.head; - - /** - * Linked forked states. - * @type {Object|null} - */ - this.states = null; - - // When a value is written, the writer calculates its byte length and puts it into a linked - // list of operations to perform when finish() is called. This both allows us to allocate - // buffers of the exact required size and reduces the amount of work we have to do compared - // to first calculating over objects and then encoding over objects. In our case, the encoding - // part is just a linked list walk calling operations with already prepared values. -} - -/** - * Creates a new writer. - * @function - * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} - */ -Writer.create = util.Buffer - ? function create_buffer_setup() { - return (Writer.create = function create_buffer() { - return new BufferWriter(); - })(); - } - /* istanbul ignore next */ - : function create_array() { - return new Writer(); - }; - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Uint8Array} Buffer - */ -Writer.alloc = function alloc(size) { - return new util.Array(size); -}; - -// Use Uint8Array buffer pool in the browser, just like node does with buffers -/* istanbul ignore else */ -if (util.Array !== Array) - Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray); - -/** - * Pushes a new operation to the queue. - * @param {function(Uint8Array, number, *)} fn Function to call - * @param {number} len Value byte length - * @param {number} val Value to write - * @returns {Writer} `this` - * @private - */ -Writer.prototype._push = function push(fn, len, val) { - this.tail = this.tail.next = new Op(fn, len, val); - this.len += len; - return this; -}; - -function writeByte(val, buf, pos) { - buf[pos] = val & 255; -} - -function writeVarint32(val, buf, pos) { - while (val > 127) { - buf[pos++] = val & 127 | 128; - val >>>= 7; - } - buf[pos] = val; -} - -/** - * Constructs a new varint writer operation instance. - * @classdesc Scheduled varint writer operation. - * @extends Op - * @constructor - * @param {number} len Value byte length - * @param {number} val Value to write - * @ignore - */ -function VarintOp(len, val) { - this.len = len; - this.next = undefined; - this.val = val; -} - -VarintOp.prototype = Object.create(Op.prototype); -VarintOp.prototype.fn = writeVarint32; - -/** - * Writes an unsigned 32 bit value as a varint. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.uint32 = function write_uint32(value) { - // here, the call to this.push has been inlined and a varint specific Op subclass is used. - // uint32 is by far the most frequently used operation and benefits significantly from this. - this.len += (this.tail = this.tail.next = new VarintOp( - (value = value >>> 0) - < 128 ? 1 - : value < 16384 ? 2 - : value < 2097152 ? 3 - : value < 268435456 ? 4 - : 5, - value)).len; - return this; -}; - -/** - * Writes a signed 32 bit value as a varint. - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.int32 = function write_int32(value) { - return value < 0 - ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec - : this.uint32(value); -}; - -/** - * Writes a 32 bit value as a varint, zig-zag encoded. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.sint32 = function write_sint32(value) { - return this.uint32((value << 1 ^ value >> 31) >>> 0); -}; - -function writeVarint64(val, buf, pos) { - while (val.hi) { - buf[pos++] = val.lo & 127 | 128; - val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0; - val.hi >>>= 7; - } - while (val.lo > 127) { - buf[pos++] = val.lo & 127 | 128; - val.lo = val.lo >>> 7; - } - buf[pos++] = val.lo; -} - -/** - * Writes an unsigned 64 bit value as a varint. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.uint64 = function write_uint64(value) { - var bits = LongBits.from(value); - return this._push(writeVarint64, bits.length(), bits); -}; - -/** - * Writes a signed 64 bit value as a varint. - * @function - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.int64 = Writer.prototype.uint64; - -/** - * Writes a signed 64 bit value as a varint, zig-zag encoded. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.sint64 = function write_sint64(value) { - var bits = LongBits.from(value).zzEncode(); - return this._push(writeVarint64, bits.length(), bits); -}; - -/** - * Writes a boolish value as a varint. - * @param {boolean} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.bool = function write_bool(value) { - return this._push(writeByte, 1, value ? 1 : 0); -}; - -function writeFixed32(val, buf, pos) { - buf[pos ] = val & 255; - buf[pos + 1] = val >>> 8 & 255; - buf[pos + 2] = val >>> 16 & 255; - buf[pos + 3] = val >>> 24; -} - -/** - * Writes an unsigned 32 bit value as fixed 32 bits. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.fixed32 = function write_fixed32(value) { - return this._push(writeFixed32, 4, value >>> 0); -}; - -/** - * Writes a signed 32 bit value as fixed 32 bits. - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.sfixed32 = Writer.prototype.fixed32; - -/** - * Writes an unsigned 64 bit value as fixed 64 bits. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.fixed64 = function write_fixed64(value) { - var bits = LongBits.from(value); - return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi); -}; - -/** - * Writes a signed 64 bit value as fixed 64 bits. - * @function - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.sfixed64 = Writer.prototype.fixed64; - -/** - * Writes a float (32 bit). - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.float = function write_float(value) { - return this._push(util.float.writeFloatLE, 4, value); -}; - -/** - * Writes a double (64 bit float). - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.double = function write_double(value) { - return this._push(util.float.writeDoubleLE, 8, value); -}; - -var writeBytes = util.Array.prototype.set - ? function writeBytes_set(val, buf, pos) { - buf.set(val, pos); // also works for plain array values - } - /* istanbul ignore next */ - : function writeBytes_for(val, buf, pos) { - for (var i = 0; i < val.length; ++i) - buf[pos + i] = val[i]; - }; - -/** - * Writes a sequence of bytes. - * @param {Uint8Array|string} value Buffer or base64 encoded string to write - * @returns {Writer} `this` - */ -Writer.prototype.bytes = function write_bytes(value) { - var len = value.length >>> 0; - if (!len) - return this._push(writeByte, 1, 0); - if (util.isString(value)) { - var buf = Writer.alloc(len = base64.length(value)); - base64.decode(value, buf, 0); - value = buf; - } - return this.uint32(len)._push(writeBytes, len, value); -}; - -/** - * Writes a string. - * @param {string} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.string = function write_string(value) { - var len = utf8.length(value); - return len - ? this.uint32(len)._push(utf8.write, len, value) - : this._push(writeByte, 1, 0); -}; - -/** - * Forks this writer's state by pushing it to a stack. - * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state. - * @returns {Writer} `this` - */ -Writer.prototype.fork = function fork() { - this.states = new State(this); - this.head = this.tail = new Op(noop, 0, 0); - this.len = 0; - return this; -}; - -/** - * Resets this instance to the last state. - * @returns {Writer} `this` - */ -Writer.prototype.reset = function reset() { - if (this.states) { - this.head = this.states.head; - this.tail = this.states.tail; - this.len = this.states.len; - this.states = this.states.next; - } else { - this.head = this.tail = new Op(noop, 0, 0); - this.len = 0; - } - return this; -}; - -/** - * Resets to the last state and appends the fork state's current write length as a varint followed by its operations. - * @returns {Writer} `this` - */ -Writer.prototype.ldelim = function ldelim() { - var head = this.head, - tail = this.tail, - len = this.len; - this.reset().uint32(len); - if (len) { - this.tail.next = head.next; // skip noop - this.tail = tail; - this.len += len; - } - return this; -}; - -/** - * Finishes the write operation. - * @returns {Uint8Array} Finished buffer - */ -Writer.prototype.finish = function finish() { - var head = this.head.next, // skip noop - buf = this.constructor.alloc(this.len), - pos = 0; - while (head) { - head.fn(head.val, buf, pos); - pos += head.len; - head = head.next; - } - // this.head = this.tail = null; - return buf; -}; - -Writer._configure = function(BufferWriter_) { - BufferWriter = BufferWriter_; -}; - -},{"35":35}],39:[function(require,module,exports){ -"use strict"; -module.exports = BufferWriter; - -// extends Writer -var Writer = require(38); -(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter; - -var util = require(35); - -var Buffer = util.Buffer; - -/** - * Constructs a new buffer writer instance. - * @classdesc Wire format writer using node buffers. - * @extends Writer - * @constructor - */ -function BufferWriter() { - Writer.call(this); -} - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Buffer} Buffer - */ -BufferWriter.alloc = function alloc_buffer(size) { - return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size); -}; - -var writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === "set" - ? function writeBytesBuffer_set(val, buf, pos) { - buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited) - // also works for plain array values - } - /* istanbul ignore next */ - : function writeBytesBuffer_copy(val, buf, pos) { - if (val.copy) // Buffer values - val.copy(buf, pos, 0, val.length); - else for (var i = 0; i < val.length;) // plain array values - buf[pos++] = val[i++]; - }; - -/** - * @override - */ -BufferWriter.prototype.bytes = function write_bytes_buffer(value) { - if (util.isString(value)) - value = util._Buffer_from(value, "base64"); - var len = value.length >>> 0; - this.uint32(len); - if (len) - this._push(writeBytesBuffer, len, value); - return this; -}; - -function writeStringBuffer(val, buf, pos) { - if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions) - util.utf8.write(val, buf, pos); - else - buf.utf8Write(val, pos); -} - -/** - * @override - */ -BufferWriter.prototype.string = function write_string_buffer(value) { - var len = Buffer.byteLength(value); - this.uint32(len); - if (len) - this._push(writeStringBuffer, len, value); - return this; -}; - - -/** - * Finishes the write operation. - * @name BufferWriter#finish - * @function - * @returns {Buffer} Finished buffer - */ - -},{"35":35,"38":38}]},{},[16]) - -})(); -//# sourceMappingURL=protobuf.js.map diff --git a/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.js.map b/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.js.map deleted file mode 100644 index f885a3c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["lib/prelude.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/codegen/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/fetch/index.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/inquire/index.js","../node_modules/@protobufjs/path/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/@protobufjs/utf8/index.js","../src/converter.js","../src/decoder.js","../src/encoder.js","../src/enum.js","../src/field.js","../src/index-light","../src/index-minimal.js","../src/mapfield.js","../src/message.js","../src/method.js","../src/namespace.js","../src/object.js","../src/oneof.js","../src/reader.js","../src/reader_buffer.js","../src/root.js","../src/roots.js","../src/rpc.js","../src/rpc/service.js","../src/service.js","../src/type.js","../src/types.js","../src/util.js","../src/util/longbits.js","../src/util/minimal.js","../src/verifier.js","../src/wrappers.js","../src/writer.js","../src/writer_buffer.js"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function prelude(modules, cache, entries) {\n\n // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS\n // sources through a conflict-free require shim and is again wrapped within an iife that\n // provides a minification-friendly `undefined` var plus a global \"use strict\" directive\n // so that minification can remove the directives of each module.\n\n function $require(name) {\n var $module = cache[name];\n if (!$module)\n modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports);\n return $module.exports;\n }\n\n var protobuf = $require(entries[0]);\n\n // Expose globally\n protobuf.util.global.protobuf = protobuf;\n\n // Be nice to AMD\n if (typeof define === \"function\" && define.amd)\n define([\"long\"], function(Long) {\n if (Long && Long.isLong) {\n protobuf.util.Long = Long;\n protobuf.configure();\n }\n return protobuf;\n });\n\n // Be nice to CommonJS\n if (typeof module === \"object\" && module && module.exports)\n module.exports = protobuf;\n\n})/* end of prelude */","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n /* istanbul ignore if */\r\n if (typeof functionParams === \"string\") {\r\n functionName = functionParams;\r\n functionParams = undefined;\r\n }\r\n\r\n var body = [];\r\n\r\n /**\r\n * Appends code to the function's body or finishes generation.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n * @param {...*} [formatParams] Format parameters\r\n * @returns {Codegen|Function} Itself or the generated function if finished\r\n * @throws {Error} If format parameter counts do not match\r\n */\r\n\r\n function Codegen(formatStringOrScope) {\r\n // note that explicit array handling below makes this ~50% faster\r\n\r\n // finish the function\r\n if (typeof formatStringOrScope !== \"string\") {\r\n var source = toString();\r\n if (codegen.verbose)\r\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n source = \"return \" + source;\r\n if (formatStringOrScope) {\r\n var scopeKeys = Object.keys(formatStringOrScope),\r\n scopeParams = new Array(scopeKeys.length + 1),\r\n scopeValues = new Array(scopeKeys.length),\r\n scopeOffset = 0;\r\n while (scopeOffset < scopeKeys.length) {\r\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n }\r\n scopeParams[scopeOffset] = source;\r\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n }\r\n return Function(source)(); // eslint-disable-line no-new-func\r\n }\r\n\r\n // otherwise append to body\r\n var formatParams = new Array(arguments.length - 1),\r\n formatOffset = 0;\r\n while (formatOffset < formatParams.length)\r\n formatParams[formatOffset] = arguments[++formatOffset];\r\n formatOffset = 0;\r\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n var value = formatParams[formatOffset++];\r\n switch ($1) {\r\n case \"d\": case \"f\": return String(Number(value));\r\n case \"i\": return String(Math.floor(value));\r\n case \"j\": return JSON.stringify(value);\r\n case \"s\": return String(value);\r\n }\r\n return \"%\";\r\n });\r\n if (formatOffset !== formatParams.length)\r\n throw Error(\"parameter count mismatch\");\r\n body.push(formatStringOrScope);\r\n return Codegen;\r\n }\r\n\r\n function toString(functionNameOverride) {\r\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\r\n }\r\n\r\n Codegen.toString = toString;\r\n return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @typedef FetchOptions\r\n * @type {Object}\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {FetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n } else if (!options)\r\n options = {};\r\n\r\n if (!callback)\r\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n if (!options.xhr && fs && fs.readFile)\r\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch.xhr(filename, options, callback)\r\n : err\r\n ? callback(err)\r\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n });\r\n\r\n // use the XHR version otherwise.\r\n return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchOptions} [options] Fetch options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n if (xhr.readyState !== 4)\r\n return undefined;\r\n\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n if (xhr.status !== 0 && xhr.status !== 200)\r\n return callback(Error(\"status \" + xhr.status));\r\n\r\n // if binary data is expected, make sure that some sort of array is returned, even if\r\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n if (options.binary) {\r\n var buffer = xhr.response;\r\n if (!buffer) {\r\n buffer = [];\r\n for (var i = 0; i < xhr.responseText.length; ++i)\r\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n }\r\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n }\r\n return callback(null, xhr.responseText);\r\n };\r\n\r\n if (options.binary) {\r\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n if (\"overrideMimeType\" in xhr)\r\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n xhr.responseType = \"arraybuffer\";\r\n }\r\n\r\n xhr.open(\"GET\", filename);\r\n xhr.send();\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0 && parts[i - 1] !== \"..\")\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\n/**\n * Runtime message from/to plain object converters.\n * @namespace\n */\nvar converter = exports;\n\nvar Enum = require(14),\n util = require(33);\n\n/**\n * Generates a partial value fromObject conveter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop, ref) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (ref === undefined) {\n ref = \"d\" + prop;\n }\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref);\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\n (\"default:\");\n gen\n (\"case%j:\", keys[i])\n (\"case %i:\", values[keys[i]])\n (\"m%s=%j\", prop, values[keys[i]])\n (\"break\");\n } gen\n (\"}\");\n } else gen\n (\"if(typeof %s!==\\\"object\\\")\", ref)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s=types[%i].fromObject(%s)\", prop, fieldIndex, ref);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"m%s=Number(%s)\", prop, ref); // also catches \"NaN\", \"Infinity\"\n break;\n case \"uint32\":\n case \"fixed32\": gen\n (\"m%s=%s>>>0\", prop, ref);\n break;\n case \"int32\":\n case \"sint32\":\n case \"sfixed32\": gen\n (\"m%s=%s|0\", prop, ref);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(util.Long)\")\n (\"(m%s=util.Long.fromValue(%s)).unsigned=%j\", prop, ref, isUnsigned)\n (\"else if(typeof %s===\\\"string\\\")\", ref)\n (\"m%s=parseInt(%s,10)\", prop, ref)\n (\"else if(typeof %s===\\\"number\\\")\", ref)\n (\"m%s=%s\", prop, ref)\n (\"else if(typeof %s===\\\"object\\\")\", ref)\n (\"m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)\", prop, ref, ref, isUnsigned ? \"true\" : \"\");\n break;\n case \"bytes\": gen\n (\"if(typeof %s===\\\"string\\\")\", ref)\n (\"util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)\", ref, prop, ref)\n (\"else if(%s.length)\", ref)\n (\"m%s=%s\", prop, ref);\n break;\n case \"string\": gen\n (\"m%s=String(%s)\", prop, ref);\n break;\n case \"bool\": gen\n (\"m%s=Boolean(%s)\", prop, ref);\n break;\n /* default: gen\n (\"m%s=%s\", prop, ref);\n break; */\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a plain object to runtime message converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.fromObject = function fromObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray;\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\n (\"if(d instanceof this.ctor)\")\n (\"return d\");\n if (!fields.length) return gen\n (\"return new this.ctor\");\n gen\n (\"var m=new this.ctor\");\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n prop = util.safeProp(field.name);\n\n // Map fields\n if (field.map) { gen\n (\"if(d%s){\", prop)\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s={}\", prop)\n (\"for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\n break;\n case \"bytes\": gen\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\n break;\n default: gen\n (\"d%s=m%s\", prop, prop);\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a runtime message to plain object converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.toObject = function toObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\n if (!fields.length)\n return util.codegen()(\"return {}\");\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\n (\"if(!o)\")\n (\"o={}\")\n (\"var d={}\");\n\n var repeatedFields = [],\n mapFields = [],\n normalFields = [],\n i = 0;\n for (; i < fields.length; ++i)\n if (!fields[i].partOf)\n ( fields[i].resolve().repeated ? repeatedFields\n : fields[i].map ? mapFields\n : normalFields).push(fields[i]);\n\n if (repeatedFields.length) { gen\n (\"if(o.arrays||o.defaults){\");\n for (i = 0; i < repeatedFields.length; ++i) gen\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\n gen\n (\"}\");\n }\n\n if (mapFields.length) { gen\n (\"if(o.objects||o.defaults){\");\n for (i = 0; i < mapFields.length; ++i) gen\n (\"d%s={}\", util.safeProp(mapFields[i].name));\n gen\n (\"}\");\n }\n\n if (normalFields.length) { gen\n (\"if(o.defaults){\");\n for (i = 0; i < normalFields.length; ++i) {\n var field = normalFields[i],\n prop = util.safeProp(field.name);\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\n else if (field.long) gen\n (\"if(util.Long){\")\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\n (\"}else\")\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\n else if (field.bytes) {\n var arrayDefault = \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\";\n gen\n (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\n (\"else{\")\n (\"d%s=%s\", prop, arrayDefault)\n (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\n (\"}\");\n } else gen\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\n } gen\n (\"}\");\n }\n var hasKs2 = false;\n for (i = 0; i < fields.length; ++i) {\n var field = fields[i],\n index = mtype._fieldsArray.indexOf(field),\n prop = util.safeProp(field.name);\n if (field.map) {\n if (!hasKs2) { hasKs2 = true; gen\n (\"var ks2\");\n } gen\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\n (\"d%s={}\", prop)\n (\"for(var j=0;j>>3){\");\n\n var i = 0;\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n ref = \"m\" + util.safeProp(field.name); gen\n (\"case %i:\", field.id);\n\n // Map fields\n if (field.map) { gen\n (\"r.skip().pos++\") // assumes id 1 + key wireType\n (\"if(%s===util.emptyObject)\", ref)\n (\"%s={}\", ref)\n (\"k=r.%s()\", field.keyType)\n (\"r.pos++\"); // assumes id 2 + value wireType\n if (types.long[field.keyType] !== undefined) {\n if (types.basic[type] === undefined) gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\n } else {\n if (types.basic[type] === undefined) gen\n (\"%s[k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[k]=r.%s()\", ref, type);\n }\n\n // Repeated fields\n } else if (field.repeated) { gen\n\n (\"if(!(%s&&%s.length))\", ref, ref)\n (\"%s=[]\", ref);\n\n // Packable (always check for forward and backward compatiblity)\n if (types.packed[type] !== undefined) gen\n (\"if((t&7)===2){\")\n (\"var c2=r.uint32()+r.pos\")\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\n}\n\n/**\n * Generates an encoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction encoder(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\n (\"if(!w)\")\n (\"w=Writer.create()\");\n\n var i, ref;\n\n // \"when a message is serialized its known fields should be written sequentially by field number\"\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\n\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n index = mtype._fieldsArray.indexOf(field),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n wireType = types.basic[type];\n ref = \"m\" + util.safeProp(field.name);\n\n // Map fields\n if (field.map) {\n gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j)){\", ref, field.name) // !== undefined && !== null\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\n if (wireType === undefined) gen\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\n else gen\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\n gen\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) {\n var arrayRef = ref;\n if (field.useToArray()) {\n arrayRef = \"array\" + field.id;\n gen(\"var %s\", arrayRef);\n gen(\"if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }\",\n ref, ref, arrayRef, ref, arrayRef, ref);\n }\n gen(\"if(%s!=null&&%s.length){\", arrayRef, arrayRef); // !== undefined && !== null\n // Packed repeated\n if (field.packed && types.packed[type] !== undefined) { gen\n\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\n (\"for(var i=0;i<%s.length;++i)\", arrayRef)\n (\"w.%s(%s[i])\", type, arrayRef)\n (\"w.ldelim()\");\n\n // Non-packed\n } else { gen\n\n (\"for(var i=0;i<%s.length;++i)\", arrayRef);\n if (wireType === undefined)\n genTypePartial(gen, field, index, arrayRef + \"[i]\");\n else gen\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, arrayRef);\n\n } gen\n (\"}\");\n\n // Non-repeated\n } else {\n if (field.optional) gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j))\", ref, field.name); // !== undefined && !== null\n\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref);\n else gen\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n }\n }\n\n return gen\n (\"return w\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n","\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(21),\n util = require(33);\n\n/**\n * Constructs a new enum instance.\n * @classdesc Reflected enum.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {Object.} [values] Enum values as an object, by name\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this enum\n * @param {Object.} [comments] The value comments for this enum\n */\nfunction Enum(name, values, options, comment, comments) {\n ReflectionObject.call(this, name, options);\n\n if (values && typeof values !== \"object\")\n throw TypeError(\"values must be an object\");\n\n /**\n * Enum values by id.\n * @type {Object.}\n */\n this.valuesById = {};\n\n /**\n * Enum values by name.\n * @type {Object.}\n */\n this.values = Object.create(this.valuesById); // toJSON, marker\n\n /**\n * Enum comment text.\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Value comment texts, if any.\n * @type {Object.}\n */\n this.comments = comments || {};\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\n // compatible enum. This is used by pbts to write actual enum definitions that work for\n // static and reflection code alike instead of emitting generic object definitions.\n\n if (values)\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\n if (typeof values[keys[i]] === \"number\") // use forward entries only\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\n}\n\n/**\n * Enum descriptor.\n * @interface IEnum\n * @property {Object.} values Enum values\n * @property {Object.} [options] Enum options\n */\n\n/**\n * Constructs an enum from an enum descriptor.\n * @param {string} name Enum name\n * @param {IEnum} json Enum descriptor\n * @returns {Enum} Created enum\n * @throws {TypeError} If arguments are invalid\n */\nEnum.fromJSON = function fromJSON(name, json) {\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\n enm.reserved = json.reserved;\n return enm;\n};\n\n/**\n * Converts this enum to an enum descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IEnum} Enum descriptor\n */\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"values\" , this.values,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"comment\" , keepComments ? this.comment : undefined,\n \"comments\" , keepComments ? this.comments : undefined\n ]);\n};\n\n/**\n * Adds a value to this enum.\n * @param {string} name Value name\n * @param {number} id Value id\n * @param {string} [comment] Comment, if any\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a value with this name or id\n */\nEnum.prototype.add = function add(name, id, comment) {\n // utilized by the parser but not by .fromJSON\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (!util.isInteger(id))\n throw TypeError(\"id must be an integer\");\n\n if (this.values[name] !== undefined)\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\n\n if (this.isReservedId(id))\n throw Error(\"id \" + id + \" is reserved in \" + this);\n\n if (this.isReservedName(name))\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\n\n if (this.valuesById[id] !== undefined) {\n if (!(this.options && this.options.allow_alias))\n throw Error(\"duplicate id \" + id + \" in \" + this);\n this.values[name] = id;\n } else\n this.valuesById[this.values[name] = id] = name;\n\n this.comments[name] = comment || null;\n return this;\n};\n\n/**\n * Removes a value from this enum\n * @param {string} name Value name\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `name` is not a name of this enum\n */\nEnum.prototype.remove = function remove(name) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n var val = this.values[name];\n if (val == null)\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\n\n delete this.valuesById[val];\n delete this.values[name];\n delete this.comments[name];\n\n return this;\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n","\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum = require(14),\n types = require(32),\n util = require(33);\n\nvar Type; // cyclic\n\nvar ruleRe = /^required|optional|repeated$/;\n\n/**\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\n * @name Field\n * @classdesc Reflected message field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a field from a field descriptor.\n * @param {string} name Field name\n * @param {IField} json Field descriptor\n * @returns {Field} Created field\n * @throws {TypeError} If arguments are invalid\n */\nField.fromJSON = function fromJSON(name, json) {\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n};\n\n/**\n * Not an actual constructor. Use {@link Field} instead.\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports FieldBase\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction Field(name, id, type, rule, extend, options, comment) {\n\n if (util.isObject(rule)) {\n comment = extend;\n options = rule;\n rule = extend = undefined;\n } else if (util.isObject(extend)) {\n comment = options;\n options = extend;\n extend = undefined;\n }\n\n ReflectionObject.call(this, name, options);\n\n if (!util.isInteger(id) || id < 0)\n throw TypeError(\"id must be a non-negative integer\");\n\n if (!util.isString(type))\n throw TypeError(\"type must be a string\");\n\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\n throw TypeError(\"rule must be a string rule\");\n\n if (extend !== undefined && !util.isString(extend))\n throw TypeError(\"extend must be a string\");\n\n /**\n * Field rule, if any.\n * @type {string|undefined}\n */\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\n\n /**\n * Field type.\n * @type {string}\n */\n this.type = type; // toJSON\n\n /**\n * Unique field id.\n * @type {number}\n */\n this.id = id; // toJSON, marker\n\n /**\n * Extended type if different from parent.\n * @type {string|undefined}\n */\n this.extend = extend || undefined; // toJSON\n\n /**\n * Whether this field is required.\n * @type {boolean}\n */\n this.required = rule === \"required\";\n\n /**\n * Whether this field is optional.\n * @type {boolean}\n */\n this.optional = !this.required;\n\n /**\n * Whether this field is repeated.\n * @type {boolean}\n */\n this.repeated = rule === \"repeated\";\n\n /**\n * Whether this field is a map or not.\n * @type {boolean}\n */\n this.map = false;\n\n /**\n * Message this field belongs to.\n * @type {Type|null}\n */\n this.message = null;\n\n /**\n * OneOf this field belongs to, if any,\n * @type {OneOf|null}\n */\n this.partOf = null;\n\n /**\n * The field type's default value.\n * @type {*}\n */\n this.typeDefault = null;\n\n /**\n * The field's default value on prototypes.\n * @type {*}\n */\n this.defaultValue = null;\n\n /**\n * Whether this field's value should be treated as a long.\n * @type {boolean}\n */\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\n\n /**\n * Whether this field's value is a buffer.\n * @type {boolean}\n */\n this.bytes = type === \"bytes\";\n\n /**\n * Resolved type if not a basic type.\n * @type {Type|Enum|null}\n */\n this.resolvedType = null;\n\n /**\n * Sister-field within the extended type if a declaring extension field.\n * @type {Field|null}\n */\n this.extensionField = null;\n\n /**\n * Sister-field within the declaring namespace if an extended field.\n * @type {Field|null}\n */\n this.declaringField = null;\n\n /**\n * Internally remembers whether this field is packed.\n * @type {boolean|null}\n * @private\n */\n this._packed = null;\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n get: function() {\n // defaults to packed=true if not explicity set to false\n if (this._packed === null)\n this._packed = this.getOption(\"packed\") !== false;\n return this._packed;\n }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (name === \"packed\") // clear cached before setting\n this._packed = null;\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\n};\n\n/**\n * Field descriptor.\n * @interface IField\n * @property {string} [rule=\"optional\"] Field rule\n * @property {string} type Field type\n * @property {number} id Field id\n * @property {Object.} [options] Field options\n */\n\n/**\n * Extension field descriptor.\n * @interface IExtensionField\n * @extends IField\n * @property {string} extend Extended type\n */\n\n/**\n * Converts this field to a field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IField} Field descriptor\n */\nField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Resolves this field's type references.\n * @returns {Field} `this`\n * @throws {Error} If any reference cannot be resolved\n */\nField.prototype.resolve = function resolve() {\n\n if (this.resolved)\n return this;\n\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\n if (this.resolvedType instanceof Type)\n this.typeDefault = null;\n else // instanceof Enum\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\n }\n\n // use explicitly set default value if present\n if (this.options && this.options[\"default\"] != null) {\n this.typeDefault = this.options[\"default\"];\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\n this.typeDefault = this.resolvedType.values[this.typeDefault];\n }\n\n // remove unnecessary options\n if (this.options) {\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\n delete this.options.packed;\n if (!Object.keys(this.options).length)\n this.options = undefined;\n }\n\n // convert to internal data type if necesssary\n if (this.long) {\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\n\n /* istanbul ignore else */\n if (Object.freeze)\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\n\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\n var buf;\n if (util.base64.test(this.typeDefault))\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\n else\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\n this.typeDefault = buf;\n }\n\n // take special care of maps and repeated fields\n if (this.map)\n this.defaultValue = util.emptyObject;\n else if (this.repeated)\n this.defaultValue = util.emptyArray;\n else\n this.defaultValue = this.typeDefault;\n\n // ensure proper value on prototype\n if (this.parent instanceof Type)\n this.parent.ctor.prototype[this.name] = this.defaultValue;\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\nField.prototype.useToArray = function useToArray() {\n return !!this.getOption(\"(js_use_toArray)\");\n};\n\n/**\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\n * @typedef FieldDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} fieldName Field name\n * @returns {undefined}\n */\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @param {T} [defaultValue] Default value\n * @returns {FieldDecorator} Decorator function\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\n */\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\n\n // submessage: decorate the submessage and use its name as the type\n if (typeof fieldType === \"function\")\n fieldType = util.decorateType(fieldType).name;\n\n // enum reference: create a reflected copy of the enum and keep reuseing it\n else if (fieldType && typeof fieldType === \"object\")\n fieldType = util.decorateEnum(fieldType).name;\n\n return function fieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\n };\n};\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {Constructor|string} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @returns {FieldDecorator} Decorator function\n * @template T extends Message\n * @variation 2\n */\n// like Field.d but without a default value\n\n// Sets up cyclic dependencies (called in index-light)\nField._configure = function configure(Type_) {\n Type = Type_;\n};\n","\"use strict\";\nvar protobuf = module.exports = require(17);\n\nprotobuf.build = \"light\";\n\n/**\n * A node-style callback as used by {@link load} and {@link Root#load}.\n * @typedef LoadCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Root} [root] Root, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n */\nfunction load(filename, root, callback) {\n if (typeof root === \"function\") {\n callback = root;\n root = new protobuf.Root();\n } else if (!root)\n root = new protobuf.Root();\n return root.load(filename, callback);\n}\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Promise} Promise\n * @see {@link Root#load}\n * @variation 3\n */\n// function load(filename:string, [root:Root]):Promise\n\nprotobuf.load = load;\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n * @see {@link Root#loadSync}\n */\nfunction loadSync(filename, root) {\n if (!root)\n root = new protobuf.Root();\n return root.loadSync(filename);\n}\n\nprotobuf.loadSync = loadSync;\n\n// Serialization\nprotobuf.encoder = require(13);\nprotobuf.decoder = require(12);\nprotobuf.verifier = require(36);\nprotobuf.converter = require(11);\n\n// Reflection\nprotobuf.ReflectionObject = require(22);\nprotobuf.Namespace = require(21);\nprotobuf.Root = require(26);\nprotobuf.Enum = require(14);\nprotobuf.Type = require(31);\nprotobuf.Field = require(15);\nprotobuf.OneOf = require(23);\nprotobuf.MapField = require(18);\nprotobuf.Service = require(30);\nprotobuf.Method = require(20);\n\n// Runtime\nprotobuf.Message = require(19);\nprotobuf.wrappers = require(37);\n\n// Utility\nprotobuf.types = require(32);\nprotobuf.util = require(33);\n\n// Set up possibly cyclic reflection dependencies\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(38);\nprotobuf.BufferWriter = require(39);\nprotobuf.Reader = require(24);\nprotobuf.BufferReader = require(25);\n\n// Utility\nprotobuf.util = require(35);\nprotobuf.rpc = require(28);\nprotobuf.roots = require(27);\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.Reader._configure(protobuf.BufferReader);\n protobuf.util._configure();\n}\n\n// Set up buffer utility according to the environment\nprotobuf.Writer._configure(protobuf.BufferWriter);\nconfigure();\n","\"use strict\";\nmodule.exports = MapField;\n\n// extends Field\nvar Field = require(15);\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\n\nvar types = require(32),\n util = require(33);\n\n/**\n * Constructs a new map field instance.\n * @classdesc Reflected map field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} keyType Key type\n * @param {string} type Value type\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction MapField(name, id, keyType, type, options, comment) {\n Field.call(this, name, id, type, undefined, undefined, options, comment);\n\n /* istanbul ignore if */\n if (!util.isString(keyType))\n throw TypeError(\"keyType must be a string\");\n\n /**\n * Key type.\n * @type {string}\n */\n this.keyType = keyType; // toJSON, marker\n\n /**\n * Resolved key type if not a basic type.\n * @type {ReflectionObject|null}\n */\n this.resolvedKeyType = null;\n\n // Overrides Field#map\n this.map = true;\n}\n\n/**\n * Map field descriptor.\n * @interface IMapField\n * @extends {IField}\n * @property {string} keyType Key type\n */\n\n/**\n * Extension map field descriptor.\n * @interface IExtensionMapField\n * @extends IMapField\n * @property {string} extend Extended type\n */\n\n/**\n * Constructs a map field from a map field descriptor.\n * @param {string} name Field name\n * @param {IMapField} json Map field descriptor\n * @returns {MapField} Created map field\n * @throws {TypeError} If arguments are invalid\n */\nMapField.fromJSON = function fromJSON(name, json) {\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\n};\n\n/**\n * Converts this map field to a map field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMapField} Map field descriptor\n */\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"keyType\" , this.keyType,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMapField.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\n if (types.mapKey[this.keyType] === undefined)\n throw Error(\"invalid key type: \" + this.keyType);\n\n return Field.prototype.resolve.call(this);\n};\n\n/**\n * Map field decorator (TypeScript).\n * @name MapField.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\n * @returns {FieldDecorator} Decorator function\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\n */\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\n\n // submessage value: decorate the submessage and use its name as the type\n if (typeof fieldValueType === \"function\")\n fieldValueType = util.decorateType(fieldValueType).name;\n\n // enum reference value: create a reflected copy of the enum and keep reuseing it\n else if (fieldValueType && typeof fieldValueType === \"object\")\n fieldValueType = util.decorateEnum(fieldValueType).name;\n\n return function mapFieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\n };\n};\n","\"use strict\";\nmodule.exports = Message;\n\nvar util = require(35);\n\n/**\n * Constructs a new message instance.\n * @classdesc Abstract runtime message.\n * @constructor\n * @param {Properties} [properties] Properties to set\n * @template T extends object = object\n */\nfunction Message(properties) {\n // not used internally\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n this[keys[i]] = properties[keys[i]];\n}\n\n/**\n * Reference to the reflected type.\n * @name Message.$type\n * @type {Type}\n * @readonly\n */\n\n/**\n * Reference to the reflected type.\n * @name Message#$type\n * @type {Type}\n * @readonly\n */\n\n/*eslint-disable valid-jsdoc*/\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.create = function create(properties) {\n return this.$type.create(properties);\n};\n\n/**\n * Encodes a message of this type.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encode = function encode(message, writer) {\n return this.$type.encode(message, writer);\n};\n\n/**\n * Encodes a message of this type preceeded by its length as a varint.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.$type.encodeDelimited(message, writer);\n};\n\n/**\n * Decodes a message of this type.\n * @name Message.decode\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decode = function decode(reader) {\n return this.$type.decode(reader);\n};\n\n/**\n * Decodes a message of this type preceeded by its length as a varint.\n * @name Message.decodeDelimited\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decodeDelimited = function decodeDelimited(reader) {\n return this.$type.decodeDelimited(reader);\n};\n\n/**\n * Verifies a message of this type.\n * @name Message.verify\n * @function\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\nMessage.verify = function verify(message) {\n return this.$type.verify(message);\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object\n * @returns {T} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.fromObject = function fromObject(object) {\n return this.$type.fromObject(object);\n};\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {T} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @template T extends Message\n * @this Constructor\n */\nMessage.toObject = function toObject(message, options) {\n return this.$type.toObject(message, options);\n};\n\n/**\n * Converts this message to JSON.\n * @returns {Object.} JSON object\n */\nMessage.prototype.toJSON = function toJSON() {\n return this.$type.toObject(this, util.toJSONOptions);\n};\n\n/*eslint-enable valid-jsdoc*/","\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(33);\n\n/**\n * Constructs a new service method instance.\n * @classdesc Reflected service method.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Method name\n * @param {string|undefined} type Method type, usually `\"rpc\"`\n * @param {string} requestType Request message type\n * @param {string} responseType Response message type\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this method\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment) {\n\n /* istanbul ignore next */\n if (util.isObject(requestStream)) {\n options = requestStream;\n requestStream = responseStream = undefined;\n } else if (util.isObject(responseStream)) {\n options = responseStream;\n responseStream = undefined;\n }\n\n /* istanbul ignore if */\n if (!(type === undefined || util.isString(type)))\n throw TypeError(\"type must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(requestType))\n throw TypeError(\"requestType must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(responseType))\n throw TypeError(\"responseType must be a string\");\n\n ReflectionObject.call(this, name, options);\n\n /**\n * Method type.\n * @type {string}\n */\n this.type = type || \"rpc\"; // toJSON\n\n /**\n * Request type.\n * @type {string}\n */\n this.requestType = requestType; // toJSON, marker\n\n /**\n * Whether requests are streamed or not.\n * @type {boolean|undefined}\n */\n this.requestStream = requestStream ? true : undefined; // toJSON\n\n /**\n * Response type.\n * @type {string}\n */\n this.responseType = responseType; // toJSON\n\n /**\n * Whether responses are streamed or not.\n * @type {boolean|undefined}\n */\n this.responseStream = responseStream ? true : undefined; // toJSON\n\n /**\n * Resolved request type.\n * @type {Type|null}\n */\n this.resolvedRequestType = null;\n\n /**\n * Resolved response type.\n * @type {Type|null}\n */\n this.resolvedResponseType = null;\n\n /**\n * Comment for this method\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Method descriptor.\n * @interface IMethod\n * @property {string} [type=\"rpc\"] Method type\n * @property {string} requestType Request type\n * @property {string} responseType Response type\n * @property {boolean} [requestStream=false] Whether requests are streamed\n * @property {boolean} [responseStream=false] Whether responses are streamed\n * @property {Object.} [options] Method options\n */\n\n/**\n * Constructs a method from a method descriptor.\n * @param {string} name Method name\n * @param {IMethod} json Method descriptor\n * @returns {Method} Created method\n * @throws {TypeError} If arguments are invalid\n */\nMethod.fromJSON = function fromJSON(name, json) {\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment);\n};\n\n/**\n * Converts this method to a method descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMethod} Method descriptor\n */\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\n \"requestType\" , this.requestType,\n \"requestStream\" , this.requestStream,\n \"responseType\" , this.responseType,\n \"responseStream\" , this.responseStream,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMethod.prototype.resolve = function resolve() {\n\n /* istanbul ignore if */\n if (this.resolved)\n return this;\n\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n","\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Field = require(15),\n util = require(33);\n\nvar Type, // cyclic\n Service,\n Enum;\n\n/**\n * Constructs a new namespace instance.\n * @name Namespace\n * @classdesc Reflected namespace.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a namespace from JSON.\n * @memberof Namespace\n * @function\n * @param {string} name Namespace name\n * @param {Object.} json JSON object\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json) {\n return new Namespace(name, json.options).addJSON(json.nested);\n};\n\n/**\n * Converts an array of reflection objects to JSON.\n * @memberof Namespace\n * @param {ReflectionObject[]} array Object array\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\n */\nfunction arrayToJSON(array, toJSONOptions) {\n if (!(array && array.length))\n return undefined;\n var obj = {};\n for (var i = 0; i < array.length; ++i)\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\n return obj;\n}\n\nNamespace.arrayToJSON = arrayToJSON;\n\n/**\n * Tests if the specified id is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedId = function isReservedId(reserved, id) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] > id)\n return true;\n return false;\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedName = function isReservedName(reserved, name) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (reserved[i] === name)\n return true;\n return false;\n};\n\n/**\n * Not an actual constructor. Use {@link Namespace} instead.\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports NamespaceBase\n * @extends ReflectionObject\n * @abstract\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n * @see {@link Namespace}\n */\nfunction Namespace(name, options) {\n ReflectionObject.call(this, name, options);\n\n /**\n * Nested objects by name.\n * @type {Object.|undefined}\n */\n this.nested = undefined; // toJSON\n\n /**\n * Cached nested objects as an array.\n * @type {ReflectionObject[]|null}\n * @private\n */\n this._nestedArray = null;\n}\n\nfunction clearCache(namespace) {\n namespace._nestedArray = null;\n return namespace;\n}\n\n/**\n * Nested objects of this namespace as an array for iteration.\n * @name NamespaceBase#nestedArray\n * @type {ReflectionObject[]}\n * @readonly\n */\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\n get: function() {\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\n }\n});\n\n/**\n * Namespace descriptor.\n * @interface INamespace\n * @property {Object.} [options] Namespace options\n * @property {Object.} [nested] Nested object descriptors\n */\n\n/**\n * Any extension field descriptor.\n * @typedef AnyExtensionField\n * @type {IExtensionField|IExtensionMapField}\n */\n\n/**\n * Any nested object descriptor.\n * @typedef AnyNestedObject\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace}\n */\n// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place)\n\n/**\n * Converts this namespace to a namespace descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {INamespace} Namespace descriptor\n */\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\n return util.toObject([\n \"options\" , this.options,\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\n ]);\n};\n\n/**\n * Adds nested objects to this namespace from nested object descriptors.\n * @param {Object.} nestedJson Any nested object descriptors\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\n var ns = this;\n /* istanbul ignore else */\n if (nestedJson) {\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\n nested = nestedJson[names[i]];\n ns.add( // most to least likely\n ( nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : nested.id !== undefined\n ? Field.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n }\n return this;\n};\n\n/**\n * Gets the nested object of the specified name.\n * @param {string} name Nested object name\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\n */\nNamespace.prototype.get = function get(name) {\n return this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Gets the values of the nested {@link Enum|enum} of the specified name.\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\n * @param {string} name Nested enum name\n * @returns {Object.} Enum values\n * @throws {Error} If there is no such enum\n */\nNamespace.prototype.getEnum = function getEnum(name) {\n if (this.nested && this.nested[name] instanceof Enum)\n return this.nested[name].values;\n throw Error(\"no such enum: \" + name);\n};\n\n/**\n * Adds a nested object to this namespace.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name\n */\nNamespace.prototype.add = function add(object) {\n\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\n throw TypeError(\"object must be a valid nested object\");\n\n if (!this.nested)\n this.nested = {};\n else {\n var prev = this.get(object.name);\n if (prev) {\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\n // replace plain namespace but keep existing nested elements and options\n var nested = prev.nestedArray;\n for (var i = 0; i < nested.length; ++i)\n object.add(nested[i]);\n this.remove(prev);\n if (!this.nested)\n this.nested = {};\n object.setOptions(prev.options, true);\n\n } else\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n }\n }\n this.nested[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n};\n\n/**\n * Removes a nested object from this namespace.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this namespace\n */\nNamespace.prototype.remove = function remove(object) {\n\n if (!(object instanceof ReflectionObject))\n throw TypeError(\"object must be a ReflectionObject\");\n if (object.parent !== this)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.nested[object.name];\n if (!Object.keys(this.nested).length)\n this.nested = undefined;\n\n object.onRemove(this);\n return clearCache(this);\n};\n\n/**\n * Defines additial namespaces within this one if not yet existing.\n * @param {string|string[]} path Path to create\n * @param {*} [json] Nested types to create from JSON\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\n */\nNamespace.prototype.define = function define(path, json) {\n\n if (util.isString(path))\n path = path.split(\".\");\n else if (!Array.isArray(path))\n throw TypeError(\"illegal path\");\n if (path && path.length && path[0] === \"\")\n throw Error(\"path must be relative\");\n\n var ptr = this;\n while (path.length > 0) {\n var part = path.shift();\n if (ptr.nested && ptr.nested[part]) {\n ptr = ptr.nested[part];\n if (!(ptr instanceof Namespace))\n throw Error(\"path conflicts with non-namespace objects\");\n } else\n ptr.add(ptr = new Namespace(part));\n }\n if (json)\n ptr.addJSON(json);\n return ptr;\n};\n\n/**\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\n * @returns {Namespace} `this`\n */\nNamespace.prototype.resolveAll = function resolveAll() {\n var nested = this.nestedArray, i = 0;\n while (i < nested.length)\n if (nested[i] instanceof Namespace)\n nested[i++].resolveAll();\n else\n nested[i++].resolve();\n return this.resolve();\n};\n\n/**\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\n * @param {string|string[]} path Path to look up\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n */\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\n\n /* istanbul ignore next */\n if (typeof filterTypes === \"boolean\") {\n parentAlreadyChecked = filterTypes;\n filterTypes = undefined;\n } else if (filterTypes && !Array.isArray(filterTypes))\n filterTypes = [ filterTypes ];\n\n if (util.isString(path) && path.length) {\n if (path === \".\")\n return this.root;\n path = path.split(\".\");\n } else if (!path.length)\n return this;\n\n // Start at root if path is absolute\n if (path[0] === \"\")\n return this.root.lookup(path.slice(1), filterTypes);\n\n // Test if the first part matches any nested object, and if so, traverse if path contains more\n var found = this.get(path[0]);\n if (found) {\n if (path.length === 1) {\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\n return found;\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\n return found;\n\n // Otherwise try each nested namespace\n } else\n for (var i = 0; i < this.nestedArray.length; ++i)\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\n return found;\n\n // If there hasn't been a match, try again at the parent\n if (this.parent === null || parentAlreadyChecked)\n return null;\n return this.parent.lookup(path, filterTypes);\n};\n\n/**\n * Looks up the reflection object at the specified path, relative to this namespace.\n * @name NamespaceBase#lookup\n * @function\n * @param {string|string[]} path Path to look up\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @variation 2\n */\n// lookup(path: string, [parentAlreadyChecked: boolean])\n\n/**\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type\n * @throws {Error} If `path` does not point to a type\n */\nNamespace.prototype.lookupType = function lookupType(path) {\n var found = this.lookup(path, [ Type ]);\n if (!found)\n throw Error(\"no such type: \" + path);\n return found;\n};\n\n/**\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Enum} Looked up enum\n * @throws {Error} If `path` does not point to an enum\n */\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\n var found = this.lookup(path, [ Enum ]);\n if (!found)\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type or enum\n * @throws {Error} If `path` does not point to a type or enum\n */\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\n var found = this.lookup(path, [ Type, Enum ]);\n if (!found)\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Service} Looked up service\n * @throws {Error} If `path` does not point to a service\n */\nNamespace.prototype.lookupService = function lookupService(path) {\n var found = this.lookup(path, [ Service ]);\n if (!found)\n throw Error(\"no such Service '\" + path + \"' in \" + this);\n return found;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nNamespace._configure = function(Type_, Service_, Enum_) {\n Type = Type_;\n Service = Service_;\n Enum = Enum_;\n};\n","\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nvar util = require(33);\n\nvar Root; // cyclic\n\n/**\n * Constructs a new reflection object instance.\n * @classdesc Base class of all reflection objects.\n * @constructor\n * @param {string} name Object name\n * @param {Object.} [options] Declared options\n * @abstract\n */\nfunction ReflectionObject(name, options) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (options && !util.isObject(options))\n throw TypeError(\"options must be an object\");\n\n /**\n * Options.\n * @type {Object.|undefined}\n */\n this.options = options; // toJSON\n\n /**\n * Unique name within its namespace.\n * @type {string}\n */\n this.name = name;\n\n /**\n * Parent namespace.\n * @type {Namespace|null}\n */\n this.parent = null;\n\n /**\n * Whether already resolved or not.\n * @type {boolean}\n */\n this.resolved = false;\n\n /**\n * Comment text, if any.\n * @type {string|null}\n */\n this.comment = null;\n\n /**\n * Defining file name.\n * @type {string|null}\n */\n this.filename = null;\n}\n\nObject.defineProperties(ReflectionObject.prototype, {\n\n /**\n * Reference to the root namespace.\n * @name ReflectionObject#root\n * @type {Root}\n * @readonly\n */\n root: {\n get: function() {\n var ptr = this;\n while (ptr.parent !== null)\n ptr = ptr.parent;\n return ptr;\n }\n },\n\n /**\n * Full name including leading dot.\n * @name ReflectionObject#fullName\n * @type {string}\n * @readonly\n */\n fullName: {\n get: function() {\n var path = [ this.name ],\n ptr = this.parent;\n while (ptr) {\n path.unshift(ptr.name);\n ptr = ptr.parent;\n }\n return path.join(\".\");\n }\n }\n});\n\n/**\n * Converts this reflection object to its descriptor representation.\n * @returns {Object.} Descriptor\n * @abstract\n */\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\n throw Error(); // not implemented, shouldn't happen\n};\n\n/**\n * Called when this object is added to a parent.\n * @param {ReflectionObject} parent Parent added to\n * @returns {undefined}\n */\nReflectionObject.prototype.onAdd = function onAdd(parent) {\n if (this.parent && this.parent !== parent)\n this.parent.remove(this);\n this.parent = parent;\n this.resolved = false;\n var root = parent.root;\n if (root instanceof Root)\n root._handleAdd(this);\n};\n\n/**\n * Called when this object is removed from a parent.\n * @param {ReflectionObject} parent Parent removed from\n * @returns {undefined}\n */\nReflectionObject.prototype.onRemove = function onRemove(parent) {\n var root = parent.root;\n if (root instanceof Root)\n root._handleRemove(this);\n this.parent = null;\n this.resolved = false;\n};\n\n/**\n * Resolves this objects type references.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n if (this.root instanceof Root)\n this.resolved = true; // only if part of a root\n return this;\n};\n\n/**\n * Gets an option value.\n * @param {string} name Option name\n * @returns {*} Option value or `undefined` if not set\n */\nReflectionObject.prototype.getOption = function getOption(name) {\n if (this.options)\n return this.options[name];\n return undefined;\n};\n\n/**\n * Sets an option.\n * @param {string} name Option name\n * @param {*} value Option value\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (!ifNotSet || !this.options || this.options[name] === undefined)\n (this.options || (this.options = {}))[name] = value;\n return this;\n};\n\n/**\n * Sets multiple options.\n * @param {Object.} options Options to set\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\n if (options)\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\n this.setOption(keys[i], options[keys[i]], ifNotSet);\n return this;\n};\n\n/**\n * Converts this instance to its string representation.\n * @returns {string} Class name[, space, full name]\n */\nReflectionObject.prototype.toString = function toString() {\n var className = this.constructor.className,\n fullName = this.fullName;\n if (fullName.length)\n return className + \" \" + fullName;\n return className;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nReflectionObject._configure = function(Root_) {\n Root = Root_;\n};\n","\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(15),\n util = require(33);\n\n/**\n * Constructs a new oneof instance.\n * @classdesc Reflected oneof.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Oneof name\n * @param {string[]|Object.} [fieldNames] Field names\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction OneOf(name, fieldNames, options, comment) {\n if (!Array.isArray(fieldNames)) {\n options = fieldNames;\n fieldNames = undefined;\n }\n ReflectionObject.call(this, name, options);\n\n /* istanbul ignore if */\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\n throw TypeError(\"fieldNames must be an Array\");\n\n /**\n * Field names that belong to this oneof.\n * @type {string[]}\n */\n this.oneof = fieldNames || []; // toJSON, marker\n\n /**\n * Fields that belong to this oneof as an array for iteration.\n * @type {Field[]}\n * @readonly\n */\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Oneof descriptor.\n * @interface IOneOf\n * @property {Array.} oneof Oneof field names\n * @property {Object.} [options] Oneof options\n */\n\n/**\n * Constructs a oneof from a oneof descriptor.\n * @param {string} name Oneof name\n * @param {IOneOf} json Oneof descriptor\n * @returns {OneOf} Created oneof\n * @throws {TypeError} If arguments are invalid\n */\nOneOf.fromJSON = function fromJSON(name, json) {\n return new OneOf(name, json.oneof, json.options, json.comment);\n};\n\n/**\n * Converts this oneof to a oneof descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IOneOf} Oneof descriptor\n */\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"oneof\" , this.oneof,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Adds the fields of the specified oneof to the parent if not already done so.\n * @param {OneOf} oneof The oneof\n * @returns {undefined}\n * @inner\n * @ignore\n */\nfunction addFieldsToParent(oneof) {\n if (oneof.parent)\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\n if (!oneof.fieldsArray[i].parent)\n oneof.parent.add(oneof.fieldsArray[i]);\n}\n\n/**\n * Adds a field to this oneof and removes it from its current parent, if any.\n * @param {Field} field Field to add\n * @returns {OneOf} `this`\n */\nOneOf.prototype.add = function add(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n if (field.parent && field.parent !== this.parent)\n field.parent.remove(field);\n this.oneof.push(field.name);\n this.fieldsArray.push(field);\n field.partOf = this; // field.parent remains null\n addFieldsToParent(this);\n return this;\n};\n\n/**\n * Removes a field from this oneof and puts it back to the oneof's parent.\n * @param {Field} field Field to remove\n * @returns {OneOf} `this`\n */\nOneOf.prototype.remove = function remove(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n var index = this.fieldsArray.indexOf(field);\n\n /* istanbul ignore if */\n if (index < 0)\n throw Error(field + \" is not a member of \" + this);\n\n this.fieldsArray.splice(index, 1);\n index = this.oneof.indexOf(field.name);\n\n /* istanbul ignore else */\n if (index > -1) // theoretical\n this.oneof.splice(index, 1);\n\n field.partOf = null;\n return this;\n};\n\n/**\n * @override\n */\nOneOf.prototype.onAdd = function onAdd(parent) {\n ReflectionObject.prototype.onAdd.call(this, parent);\n var self = this;\n // Collect present fields\n for (var i = 0; i < this.oneof.length; ++i) {\n var field = parent.get(this.oneof[i]);\n if (field && !field.partOf) {\n field.partOf = self;\n self.fieldsArray.push(field);\n }\n }\n // Add not yet present fields\n addFieldsToParent(this);\n};\n\n/**\n * @override\n */\nOneOf.prototype.onRemove = function onRemove(parent) {\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\n if ((field = this.fieldsArray[i]).parent)\n field.parent.remove(field);\n ReflectionObject.prototype.onRemove.call(this, parent);\n};\n\n/**\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\n * @typedef OneOfDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} oneofName OneOf name\n * @returns {undefined}\n */\n\n/**\n * OneOf decorator (TypeScript).\n * @function\n * @param {...string} fieldNames Field names\n * @returns {OneOfDecorator} Decorator function\n * @template T extends string\n */\nOneOf.d = function decorateOneOf() {\n var fieldNames = new Array(arguments.length),\n index = 0;\n while (index < arguments.length)\n fieldNames[index] = arguments[index++];\n return function oneOfDecorator(prototype, oneofName) {\n util.decorateType(prototype.constructor)\n .add(new OneOf(oneofName, fieldNames));\n Object.defineProperty(prototype, oneofName, {\n get: util.oneOfGetter(fieldNames),\n set: util.oneOfSetter(fieldNames)\n });\n };\n};\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(35);\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(24);\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(35);\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\n/* istanbul ignore else */\nif (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n","\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(21);\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field = require(15),\n Enum = require(14),\n OneOf = require(23),\n util = require(33);\n\nvar Type, // cyclic\n parse, // might be excluded\n common; // \"\n\n/**\n * Constructs a new root namespace instance.\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\n * @extends NamespaceBase\n * @constructor\n * @param {Object.} [options] Top level options\n */\nfunction Root(options) {\n Namespace.call(this, \"\", options);\n\n /**\n * Deferred extension fields.\n * @type {Field[]}\n */\n this.deferred = [];\n\n /**\n * Resolved file names of loaded files.\n * @type {string[]}\n */\n this.files = [];\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Nameespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root) {\n if (!root)\n root = new Root();\n if (json.options)\n root.setOptions(json.options);\n return root.addJSON(json.nested);\n};\n\n/**\n * Resolves the path of an imported file, relative to the importing origin.\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\n * @function\n * @param {string} origin The file name of the importing file\n * @param {string} target The file name being imported\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\n */\nRoot.prototype.resolvePath = util.path.resolve;\n\n// A symbol-like function to safely signal synchronous loading\n/* istanbul ignore next */\nfunction SYNC() {} // eslint-disable-line no-empty-function\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} options Parse options\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.load = function load(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = undefined;\n }\n var self = this;\n if (!callback)\n return util.asPromise(load, self, filename, options);\n\n var sync = callback === SYNC; // undocumented\n\n // Finishes loading by calling the callback (exactly once)\n function finish(err, root) {\n /* istanbul ignore if */\n if (!callback)\n return;\n var cb = callback;\n callback = null;\n if (sync)\n throw err;\n cb(err, root);\n }\n\t\n // Bundled definition existence checking\n function getBundledFileName(filename) {\n var idx = filename.lastIndexOf(\"google/protobuf/\");\n if (idx > -1) {\n var altname = filename.substring(idx);\n if (altname in common) return altname; \n }\n return null;\n }\n\n // Processes a single file\n function process(filename, source) {\n try {\n if (util.isString(source) && source.charAt(0) === \"{\")\n source = JSON.parse(source);\n if (!util.isString(source))\n self.setOptions(source.options).addJSON(source.nested);\n else {\n parse.filename = filename;\n var parsed = parse(source, self, options),\n resolved,\n i = 0;\n if (parsed.imports)\n for (; i < parsed.imports.length; ++i)\n if (resolved = (getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i])))\n fetch(resolved);\n if (parsed.weakImports)\n for (i = 0; i < parsed.weakImports.length; ++i)\n if (resolved = (getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i])))\n fetch(resolved, true);\n }\n } catch (err) {\n finish(err);\n }\n if (!sync && !queued)\n finish(null, self); // only once anyway\n }\n\n // Fetches a single file\n function fetch(filename, weak) {\n\n // Skip if already loaded / attempted\n if (self.files.indexOf(filename) > -1)\n return;\n self.files.push(filename);\n\n // Shortcut bundled definitions\n if (filename in common) {\n if (sync)\n process(filename, common[filename]);\n else {\n ++queued;\n setTimeout(function() {\n --queued;\n process(filename, common[filename]);\n });\n }\n return;\n }\n\n // Otherwise fetch from disk or network\n if (sync) {\n var source;\n try {\n source = util.fs.readFileSync(filename).toString(\"utf8\");\n } catch (err) {\n if (!weak)\n finish(err);\n return;\n }\n process(filename, source);\n } else {\n ++queued;\n util.fetch(filename, function(err, source) {\n --queued;\n /* istanbul ignore if */\n if (!callback)\n return; // terminated meanwhile\n if (err) {\n /* istanbul ignore else */\n if (!weak)\n finish(err);\n else if (!queued) // can't be covered reliably\n finish(null, self);\n return;\n }\n process(filename, source);\n });\n }\n }\n var queued = 0;\n\n // Assembling the root namespace doesn't require working type\n // references anymore, so we can load everything in parallel\n if (util.isString(filename))\n filename = [ filename ];\n for (var i = 0, resolved; i < filename.length; ++i)\n if (resolved = self.resolvePath(\"\", filename[i]))\n fetch(resolved);\n\n if (sync)\n return self;\n if (!queued)\n finish(null, self);\n return undefined;\n};\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Promise} Promise\n * @variation 3\n */\n// function load(filename:string, [options:IParseOptions]):Promise\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\n * @function Root#loadSync\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n */\nRoot.prototype.loadSync = function loadSync(filename, options) {\n if (!util.isNode)\n throw Error(\"not supported\");\n return this.load(filename, options, SYNC);\n};\n\n/**\n * @override\n */\nRoot.prototype.resolveAll = function resolveAll() {\n if (this.deferred.length)\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\n }).join(\", \"));\n return Namespace.prototype.resolveAll.call(this);\n};\n\n// only uppercased (and thus conflict-free) children are exposed, see below\nvar exposeRe = /^[A-Z]/;\n\n/**\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\n * @param {Root} root Root instance\n * @param {Field} field Declaring extension field witin the declaring type\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\n * @inner\n * @ignore\n */\nfunction tryHandleExtension(root, field) {\n var extendedType = field.parent.lookup(field.extend);\n if (extendedType) {\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\n sisterField.declaringField = field;\n field.extensionField = sisterField;\n extendedType.add(sisterField);\n return true;\n }\n return false;\n}\n\n/**\n * Called when any object is added to this root or its sub-namespaces.\n * @param {ReflectionObject} object Object added\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleAdd = function _handleAdd(object) {\n if (object instanceof Field) {\n\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\n if (!tryHandleExtension(this, object))\n this.deferred.push(object);\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n object.parent[object.name] = object.values; // expose enum values as property of its parent\n\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\n\n if (object instanceof Type) // Try to handle any deferred extensions\n for (var i = 0; i < this.deferred.length;)\n if (tryHandleExtension(this, this.deferred[i]))\n this.deferred.splice(i, 1);\n else\n ++i;\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\n this._handleAdd(object._nestedArray[j]);\n if (exposeRe.test(object.name))\n object.parent[object.name] = object; // expose namespace as property of its parent\n }\n\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\n // a static module with reflection-based solutions where the condition is met.\n};\n\n/**\n * Called when any object is removed from this root or its sub-namespaces.\n * @param {ReflectionObject} object Object removed\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleRemove = function _handleRemove(object) {\n if (object instanceof Field) {\n\n if (/* an extension field */ object.extend !== undefined) {\n if (/* already handled */ object.extensionField) { // remove its sister field\n object.extensionField.parent.remove(object.extensionField);\n object.extensionField = null;\n } else { // cancel the extension\n var index = this.deferred.indexOf(object);\n /* istanbul ignore else */\n if (index > -1)\n this.deferred.splice(index, 1);\n }\n }\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose enum values\n\n } else if (object instanceof Namespace) {\n\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\n this._handleRemove(object._nestedArray[i]);\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose namespaces\n\n }\n};\n\n// Sets up cyclic dependencies (called in index-light)\nRoot._configure = function(Type_, parse_, common_) {\n Type = Type_;\n parse = parse_;\n common = common_;\n};\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(29);\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(35);\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(21);\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(20),\n util = require(33),\n rpc = require(28);\n\n/**\n * Constructs a new service instance.\n * @classdesc Reflected service.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Service name\n * @param {Object.} [options] Service options\n * @throws {TypeError} If arguments are invalid\n */\nfunction Service(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Service methods.\n * @type {Object.}\n */\n this.methods = {}; // toJSON, marker\n\n /**\n * Cached methods as an array.\n * @type {Method[]|null}\n * @private\n */\n this._methodsArray = null;\n}\n\n/**\n * Service descriptor.\n * @interface IService\n * @extends INamespace\n * @property {Object.} methods Method descriptors\n */\n\n/**\n * Constructs a service from a service descriptor.\n * @param {string} name Service name\n * @param {IService} json Service descriptor\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json) {\n var service = new Service(name, json.options);\n /* istanbul ignore else */\n if (json.methods)\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\n if (json.nested)\n service.addJSON(json.nested);\n service.comment = json.comment;\n return service;\n};\n\n/**\n * Converts this service to a service descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IService} Service descriptor\n */\nService.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Methods of this service as an array for iteration.\n * @name Service#methodsArray\n * @type {Method[]}\n * @readonly\n */\nObject.defineProperty(Service.prototype, \"methodsArray\", {\n get: function() {\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\n }\n});\n\nfunction clearCache(service) {\n service._methodsArray = null;\n return service;\n}\n\n/**\n * @override\n */\nService.prototype.get = function get(name) {\n return this.methods[name]\n || Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n var methods = this.methodsArray;\n for (var i = 0; i < methods.length; ++i)\n methods[i].resolve();\n return Namespace.prototype.resolve.call(this);\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\n\n /* istanbul ignore if */\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Method) {\n this.methods[object.name] = object;\n object.parent = this;\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * @override\n */\nService.prototype.remove = function remove(object) {\n if (object instanceof Method) {\n\n /* istanbul ignore if */\n if (this.methods[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.methods[object.name];\n object.parent = null;\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Creates a runtime service using the specified rpc implementation.\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\n */\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\n m: method,\n q: method.resolvedRequestType.ctor,\n s: method.resolvedResponseType.ctor\n });\n }\n return rpcService;\n};\n","\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(21);\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum = require(14),\n OneOf = require(23),\n Field = require(15),\n MapField = require(18),\n Service = require(30),\n Message = require(19),\n Reader = require(24),\n Writer = require(38),\n util = require(33),\n encoder = require(13),\n decoder = require(12),\n verifier = require(36),\n converter = require(11),\n wrappers = require(37);\n\n/**\n * Constructs a new reflected message type instance.\n * @classdesc Reflected message type.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Message name\n * @param {Object.} [options] Declared options\n */\nfunction Type(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Message fields.\n * @type {Object.}\n */\n this.fields = {}; // toJSON, marker\n\n /**\n * Oneofs declared within this namespace, if any.\n * @type {Object.}\n */\n this.oneofs = undefined; // toJSON\n\n /**\n * Extension ranges, if any.\n * @type {number[][]}\n */\n this.extensions = undefined; // toJSON\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n /*?\n * Whether this type is a legacy group.\n * @type {boolean|undefined}\n */\n this.group = undefined; // toJSON\n\n /**\n * Cached fields by id.\n * @type {Object.|null}\n * @private\n */\n this._fieldsById = null;\n\n /**\n * Cached fields as an array.\n * @type {Field[]|null}\n * @private\n */\n this._fieldsArray = null;\n\n /**\n * Cached oneofs as an array.\n * @type {OneOf[]|null}\n * @private\n */\n this._oneofsArray = null;\n\n /**\n * Cached constructor.\n * @type {Constructor<{}>}\n * @private\n */\n this._ctor = null;\n}\n\nObject.defineProperties(Type.prototype, {\n\n /**\n * Message fields by id.\n * @name Type#fieldsById\n * @type {Object.}\n * @readonly\n */\n fieldsById: {\n get: function() {\n\n /* istanbul ignore if */\n if (this._fieldsById)\n return this._fieldsById;\n\n this._fieldsById = {};\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\n var field = this.fields[names[i]],\n id = field.id;\n\n /* istanbul ignore if */\n if (this._fieldsById[id])\n throw Error(\"duplicate id \" + id + \" in \" + this);\n\n this._fieldsById[id] = field;\n }\n return this._fieldsById;\n }\n },\n\n /**\n * Fields of this message as an array for iteration.\n * @name Type#fieldsArray\n * @type {Field[]}\n * @readonly\n */\n fieldsArray: {\n get: function() {\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\n }\n },\n\n /**\n * Oneofs of this message as an array for iteration.\n * @name Type#oneofsArray\n * @type {OneOf[]}\n * @readonly\n */\n oneofsArray: {\n get: function() {\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\n }\n },\n\n /**\n * The registered constructor, if any registered, otherwise a generic constructor.\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\n * @name Type#ctor\n * @type {Constructor<{}>}\n */\n ctor: {\n get: function() {\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\n },\n set: function(ctor) {\n\n // Ensure proper prototype\n var prototype = ctor.prototype;\n if (!(prototype instanceof Message)) {\n (ctor.prototype = new Message()).constructor = ctor;\n util.merge(ctor.prototype, prototype);\n }\n\n // Classes and messages reference their reflected type\n ctor.$type = ctor.prototype.$type = this;\n\n // Mix in static methods\n util.merge(ctor, Message, true);\n\n this._ctor = ctor;\n\n // Messages have non-enumerable default values on their prototype\n var i = 0;\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\n this._fieldsArray[i].resolve(); // ensures a proper value\n\n // Messages have non-enumerable getters and setters for each virtual oneof field\n var ctorProperties = {};\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\n ctorProperties[this._oneofsArray[i].resolve().name] = {\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\n };\n if (i)\n Object.defineProperties(ctor.prototype, ctorProperties);\n }\n }\n});\n\n/**\n * Generates a constructor function for the specified type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nType.generateConstructor = function generateConstructor(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"p\"], mtype.name);\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\n if ((field = mtype._fieldsArray[i]).map) gen\n (\"this%s={}\", util.safeProp(field.name));\n else if (field.repeated) gen\n (\"this%s=[]\", util.safeProp(field.name));\n return gen\n (\"if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors\n * @property {Object.} fields Field descriptors\n * @property {number[][]} [extensions] Extension ranges\n * @property {number[][]} [reserved] Reserved ranges\n * @property {boolean} [group=false] Whether a legacy group or not\n */\n\n/**\n * Creates a message type from a message type descriptor.\n * @param {string} name Message name\n * @param {IType} json Message type descriptor\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json) {\n var type = new Type(name, json.options);\n type.extensions = json.extensions;\n type.reserved = json.reserved;\n var names = Object.keys(json.fields),\n i = 0;\n for (; i < names.length; ++i)\n type.add(\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\n ? MapField.fromJSON\n : Field.fromJSON )(names[i], json.fields[names[i]])\n );\n if (json.oneofs)\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\n if (json.nested)\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\n var nested = json.nested[names[i]];\n type.add( // most to least likely\n ( nested.id !== undefined\n ? Field.fromJSON\n : nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n if (json.extensions && json.extensions.length)\n type.extensions = json.extensions;\n if (json.reserved && json.reserved.length)\n type.reserved = json.reserved;\n if (json.group)\n type.group = true;\n if (json.comment)\n type.comment = json.comment;\n return type;\n};\n\n/**\n * Converts this message type to a message type descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IType} Message type descriptor\n */\nType.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"group\" , this.group || undefined,\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nType.prototype.resolveAll = function resolveAll() {\n var fields = this.fieldsArray, i = 0;\n while (i < fields.length)\n fields[i++].resolve();\n var oneofs = this.oneofsArray; i = 0;\n while (i < oneofs.length)\n oneofs[i++].resolve();\n return Namespace.prototype.resolveAll.call(this);\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n return this.fields[name]\n || this.oneofs && this.oneofs[name]\n || this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Adds a nested object to this type.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\n */\nType.prototype.add = function add(object) {\n\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Field && object.extend === undefined) {\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\n // The root object takes care of adding distinct sister-fields to the respective extended\n // type instead.\n\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\n if (this.isReservedId(object.id))\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\n if (this.isReservedName(object.name))\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n\n if (object.parent)\n object.parent.remove(object);\n this.fields[object.name] = object;\n object.message = this;\n object.onAdd(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n if (!this.oneofs)\n this.oneofs = {};\n this.oneofs[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * Removes a nested object from this type.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this type\n */\nType.prototype.remove = function remove(object) {\n if (object instanceof Field && object.extend === undefined) {\n // See Type#add for the reason why extension fields are excluded here.\n\n /* istanbul ignore if */\n if (!this.fields || this.fields[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.fields[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n\n /* istanbul ignore if */\n if (!this.oneofs || this.oneofs[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.oneofs[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message<{}>} Message instance\n */\nType.prototype.create = function create(properties) {\n return new this.ctor(properties);\n};\n\n/**\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\n * @returns {Type} `this`\n */\nType.prototype.setup = function setup() {\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\n // multiple times (V8, soft-deopt prototype-check).\n\n var fullName = this.fullName,\n types = [];\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\n types.push(this._fieldsArray[i].resolve().resolvedType);\n\n // Replace setup methods with type-specific generated functions\n this.encode = encoder(this)({\n Writer : Writer,\n types : types,\n util : util\n });\n this.decode = decoder(this)({\n Reader : Reader,\n types : types,\n util : util\n });\n this.verify = verifier(this)({\n types : types,\n util : util\n });\n this.fromObject = converter.fromObject(this)({\n types : types,\n util : util\n });\n this.toObject = converter.toObject(this)({\n types : types,\n util : util\n });\n\n // Inject custom wrappers for common types\n var wrapper = wrappers[fullName];\n if (wrapper) {\n var originalThis = Object.create(this);\n // if (wrapper.fromObject) {\n originalThis.fromObject = this.fromObject;\n this.fromObject = wrapper.fromObject.bind(originalThis);\n // }\n // if (wrapper.toObject) {\n originalThis.toObject = this.toObject;\n this.toObject = wrapper.toObject.bind(originalThis);\n // }\n }\n\n return this;\n};\n\n/**\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encode = function encode_setup(message, writer) {\n return this.setup().encode(message, writer); // overrides this method\n};\n\n/**\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\n};\n\n/**\n * Decodes a message of this type.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Length of the message, if known beforehand\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError<{}>} If required fields are missing\n */\nType.prototype.decode = function decode_setup(reader, length) {\n return this.setup().decode(reader, length); // overrides this method\n};\n\n/**\n * Decodes a message of this type preceeded by its byte length as a varint.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError} If required fields are missing\n */\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof Reader))\n reader = Reader.create(reader);\n return this.decode(reader, reader.uint32());\n};\n\n/**\n * Verifies that field values are valid and that required fields are present.\n * @param {Object.} message Plain object to verify\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message) {\n return this.setup().verify(message); // overrides this method\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object to convert\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object) {\n return this.setup().fromObject(object);\n};\n\n/**\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\n * @interface IConversionOptions\n * @property {Function} [longs] Long conversion type.\n * Valid values are `String` and `Number` (the global types).\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\n * @property {Function} [enums] Enum value conversion type.\n * Only valid value is `String` (the global type).\n * Defaults to copy the present value, which is the numeric id.\n * @property {Function} [bytes] Bytes value conversion type.\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\n */\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\nType.prototype.toObject = function toObject(message, options) {\n return this.setup().toObject(message, options);\n};\n\n/**\n * Decorator function as returned by {@link Type.d} (TypeScript).\n * @typedef TypeDecorator\n * @type {function}\n * @param {Constructor} target Target constructor\n * @returns {undefined}\n * @template T extends Message\n */\n\n/**\n * Type decorator (TypeScript).\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {TypeDecorator} Decorator function\n * @template T extends Message\n */\nType.d = function decorateType(typeName) {\n return function typeDecorator(target) {\n util.decorateType(target, typeName);\n };\n};\n","\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(33);\n\nvar s = [\n \"double\", // 0\n \"float\", // 1\n \"int32\", // 2\n \"uint32\", // 3\n \"sint32\", // 4\n \"fixed32\", // 5\n \"sfixed32\", // 6\n \"int64\", // 7\n \"uint64\", // 8\n \"sint64\", // 9\n \"fixed64\", // 10\n \"sfixed64\", // 11\n \"bool\", // 12\n \"string\", // 13\n \"bytes\" // 14\n];\n\nfunction bake(values, offset) {\n var i = 0, o = {};\n offset |= 0;\n while (i < values.length) o[s[i + offset]] = values[i++];\n return o;\n}\n\n/**\n * Basic type wire types.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n * @property {number} bytes=2 Ldelim wire type\n */\ntypes.basic = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2,\n /* bytes */ 2\n]);\n\n/**\n * Basic type defaults.\n * @type {Object.}\n * @const\n * @property {number} double=0 Double default\n * @property {number} float=0 Float default\n * @property {number} int32=0 Int32 default\n * @property {number} uint32=0 Uint32 default\n * @property {number} sint32=0 Sint32 default\n * @property {number} fixed32=0 Fixed32 default\n * @property {number} sfixed32=0 Sfixed32 default\n * @property {number} int64=0 Int64 default\n * @property {number} uint64=0 Uint64 default\n * @property {number} sint64=0 Sint32 default\n * @property {number} fixed64=0 Fixed64 default\n * @property {number} sfixed64=0 Sfixed64 default\n * @property {boolean} bool=false Bool default\n * @property {string} string=\"\" String default\n * @property {Array.} bytes=Array(0) Bytes default\n * @property {null} message=null Message default\n */\ntypes.defaults = bake([\n /* double */ 0,\n /* float */ 0,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 0,\n /* sfixed32 */ 0,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 0,\n /* sfixed64 */ 0,\n /* bool */ false,\n /* string */ \"\",\n /* bytes */ util.emptyArray,\n /* message */ null\n]);\n\n/**\n * Basic long type wire types.\n * @type {Object.}\n * @const\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n */\ntypes.long = bake([\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1\n], 7);\n\n/**\n * Allowed types for map keys with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n */\ntypes.mapKey = bake([\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2\n], 2);\n\n/**\n * Allowed types for packed repeated fields with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n */\ntypes.packed = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0\n]);\n","\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(35);\n\nvar roots = require(27);\n\nvar Type, // cyclic\n Enum;\n\nutil.codegen = require(3);\nutil.fetch = require(5);\nutil.path = require(8);\n\n/**\n * Node's fs module if available.\n * @type {Object.}\n */\nutil.fs = util.inquire(\"fs\");\n\n/**\n * Converts an object's values to an array.\n * @param {Object.} object Object to convert\n * @returns {Array.<*>} Converted array\n */\nutil.toArray = function toArray(object) {\n if (object) {\n var keys = Object.keys(object),\n array = new Array(keys.length),\n index = 0;\n while (index < keys.length)\n array[index] = object[keys[index++]];\n return array;\n }\n return [];\n};\n\n/**\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\n * @param {Array.<*>} array Array to convert\n * @returns {Object.} Converted object\n */\nutil.toObject = function toObject(array) {\n var object = {},\n index = 0;\n while (index < array.length) {\n var key = array[index++],\n val = array[index++];\n if (val !== undefined)\n object[key] = val;\n }\n return object;\n};\n\nvar safePropBackslashRe = /\\\\/g,\n safePropQuoteRe = /\"/g;\n\n/**\n * Tests whether the specified name is a reserved word in JS.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nutil.isReserved = function isReserved(name) {\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\n};\n\n/**\n * Returns a safe property accessor for the specified property name.\n * @param {string} prop Property name\n * @returns {string} Safe accessor\n */\nutil.safeProp = function safeProp(prop) {\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\n return \".\" + prop;\n};\n\n/**\n * Converts the first character of a string to upper case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.ucFirst = function ucFirst(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar camelCaseRe = /_([a-z])/g;\n\n/**\n * Converts a string to camel case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.camelCase = function camelCase(str) {\n return str.substring(0, 1)\n + str.substring(1)\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\n};\n\n/**\n * Compares reflected fields by id.\n * @param {Field} a First field\n * @param {Field} b Second field\n * @returns {number} Comparison value\n */\nutil.compareFieldsById = function compareFieldsById(a, b) {\n return a.id - b.id;\n};\n\n/**\n * Decorator helper for types (TypeScript).\n * @param {Constructor} ctor Constructor function\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {Type} Reflected type\n * @template T extends Message\n * @property {Root} root Decorators root\n */\nutil.decorateType = function decorateType(ctor, typeName) {\n\n /* istanbul ignore if */\n if (ctor.$type) {\n if (typeName && ctor.$type.name !== typeName) {\n util.decorateRoot.remove(ctor.$type);\n ctor.$type.name = typeName;\n util.decorateRoot.add(ctor.$type);\n }\n return ctor.$type;\n }\n\n /* istanbul ignore next */\n if (!Type)\n Type = require(31);\n\n var type = new Type(typeName || ctor.name);\n util.decorateRoot.add(type);\n type.ctor = ctor; // sets up .encode, .decode etc.\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\n return type;\n};\n\nvar decorateEnumIndex = 0;\n\n/**\n * Decorator helper for enums (TypeScript).\n * @param {Object} object Enum object\n * @returns {Enum} Reflected enum\n */\nutil.decorateEnum = function decorateEnum(object) {\n\n /* istanbul ignore if */\n if (object.$type)\n return object.$type;\n\n /* istanbul ignore next */\n if (!Enum)\n Enum = require(14);\n\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\n util.decorateRoot.add(enm);\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\n return enm;\n};\n\n/**\n * Decorator root (TypeScript).\n * @name util.decorateRoot\n * @type {Root}\n * @readonly\n */\nObject.defineProperty(util, \"decorateRoot\", {\n get: function() {\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(26))());\n }\n});\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(35);\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(1);\n\n// converts to / from base64 encoded strings\nutil.base64 = require(2);\n\n// base class of rpc.Service\nutil.EventEmitter = require(4);\n\n// float handling accross browsers\nutil.float = require(6);\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(7);\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(10);\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(9);\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(34);\n\n// global object reference\nutil.global = typeof window !== \"undefined\" && window\n || typeof global !== \"undefined\" && global\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n * @const\n */\nutil.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node);\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: (new Error()).stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = verifier;\n\nvar Enum = require(14),\n util = require(33);\n\nfunction invalid(field, expected) {\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\n}\n\n/**\n * Generates a partial value verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\n /* eslint-disable no-unexpected-multiline */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref)\n (\"default:\")\n (\"return%j\", invalid(field, \"enum value\"));\n for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen\n (\"case %i:\", field.resolvedType.values[keys[j]]);\n gen\n (\"break\")\n (\"}\");\n } else {\n gen\n (\"{\")\n (\"var e=types[%i].verify(%s);\", fieldIndex, ref)\n (\"if(e)\")\n (\"return%j+e\", field.name + \".\")\n (\"}\");\n }\n } else {\n switch (field.type) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.isInteger(%s))\", ref)\n (\"return%j\", invalid(field, \"integer\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\n (\"return%j\", invalid(field, \"integer|Long\"));\n break;\n case \"float\":\n case \"double\": gen\n (\"if(typeof %s!==\\\"number\\\")\", ref)\n (\"return%j\", invalid(field, \"number\"));\n break;\n case \"bool\": gen\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\n (\"return%j\", invalid(field, \"boolean\"));\n break;\n case \"string\": gen\n (\"if(!util.isString(%s))\", ref)\n (\"return%j\", invalid(field, \"string\"));\n break;\n case \"bytes\": gen\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\n (\"return%j\", invalid(field, \"buffer\"));\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a partial key verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyKey(gen, field, ref) {\n /* eslint-disable no-unexpected-multiline */\n switch (field.keyType) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.key32Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"integer key\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.key64Re.test(%s))\", ref) // see comment above: x is ok, d is not\n (\"return%j\", invalid(field, \"integer|Long key\"));\n break;\n case \"bool\": gen\n (\"if(!util.key2Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"boolean key\"));\n break;\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a verifier specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction verifier(mtype) {\n /* eslint-disable no-unexpected-multiline */\n\n var gen = util.codegen([\"m\"], mtype.name + \"$verify\")\n (\"if(typeof m!==\\\"object\\\"||m===null)\")\n (\"return%j\", \"object expected\");\n var oneofs = mtype.oneofsArray,\n seenFirstField = {};\n if (oneofs.length) gen\n (\"var p={}\");\n\n for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n ref = \"m\" + util.safeProp(field.name);\n\n if (field.optional) gen\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name); // !== undefined && !== null\n\n // map fields\n if (field.map) { gen\n (\"if(!util.isObject(%s))\", ref)\n (\"return%j\", invalid(field, \"object\"))\n (\"var k=Object.keys(%s)\", ref)\n (\"for(var i=0;i}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(19);\n\n/**\n * From object converter part of an {@link IWrapper}.\n * @typedef WrapperFromObjectConverter\n * @type {function}\n * @param {Object.} object Plain object\n * @returns {Message<{}>} Message instance\n * @this Type\n */\n\n/**\n * To object converter part of an {@link IWrapper}.\n * @typedef WrapperToObjectConverter\n * @type {function}\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @this Type\n */\n\n/**\n * Common type wrapper part of {@link wrappers}.\n * @interface IWrapper\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\n * @property {WrapperToObjectConverter} [toObject] To object converter\n */\n\n// Custom wrapper for Any\nwrappers[\".google.protobuf.Any\"] = {\n\n fromObject: function(object) {\n\n // unwrap value type if mapped\n if (object && object[\"@type\"]) {\n var type = this.lookup(object[\"@type\"]);\n /* istanbul ignore else */\n if (type) {\n // type_url does not accept leading \".\"\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\n object[\"@type\"].substr(1) : object[\"@type\"];\n // type_url prefix is optional, but path seperator is required\n return this.create({\n type_url: \"/\" + type_url,\n value: type.encode(type.fromObject(object)).finish()\n });\n }\n }\n\n return this.fromObject(object);\n },\n\n toObject: function(message, options) {\n\n // decode value if requested and unmapped\n if (options && options.json && message.type_url && message.value) {\n // Only use fully qualified type name after the last '/'\n var name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type)\n message = type.decode(message.value);\n }\n\n // wrap value if unmapped\n if (!(message instanceof this.ctor) && message instanceof Message) {\n var object = message.$type.toObject(message, options);\n object[\"@type\"] = message.$type.fullName;\n return object;\n }\n\n return this.toObject(message, options);\n }\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(35);\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(38);\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(35);\n\nvar Buffer = util.Buffer;\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\nBufferWriter.alloc = function alloc_buffer(size) {\n return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size);\n};\n\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else\n buf.utf8Write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.min.js b/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.min.js deleted file mode 100644 index 3b70681..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * protobuf.js v1.0.5 (c) 2016, daniel wirtz - * compiled fri, 14 aug 2020 05:32:50 utc - * licensed under the bsd-3-clause license - * see: https://github.com/apollographql/protobuf.js for details - */ -!function(g){"use strict";var r,e,t,i;r={1:[function(t,i){i.exports=function(t,i){var n=Array(arguments.length-1),s=0,r=2,u=!0;for(;r>2],r=(3&f)<<4,o=1;break;case 1:s[u++]=h[r|f>>4],r=(15&f)<<2,o=2;break;case 2:s[u++]=h[r|f>>6],s[u++]=h[63&f],o=0}8191>4,r=o,s=2;break;case 2:i[n++]=(15&r)<<4|(60&o)>>2,r=o,s=3;break;case 3:i[n++]=(3&r)<<6|o,s=0}}if(1===s)throw Error(c);return n-e},r.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}},{}],3:[function(t,i){function a(i,n){"string"==typeof i&&(n=i,i=g);var f=[];function h(t){if("string"!=typeof t){var i=c();if(a.verbose&&console.log("codegen: "+i),i="return "+i,t){for(var n=Object.keys(t),r=Array(n.length+1),e=Array(n.length),s=0;s>>0,n,r);else if(i<11754943508222875e-54)t((e<<31|Math.round(i/1401298464324817e-60))>>>0,n,r);else{var s=Math.floor(Math.log(i)/Math.LN2);t((e<<31|s+127<<23|8388607&Math.round(i*Math.pow(2,-s)*8388608))>>>0,n,r)}}function i(t,i,n){var r=t(i,n),e=2*(r>>31)+1,s=r>>>23&255,u=8388607&r;return 255===s?u?NaN:e*(1/0):0===s?1401298464324817e-60*e*u:e*Math.pow(2,s-150)*(u+8388608)}o.writeFloatLE=t.bind(null,r),o.writeFloatBE=t.bind(null,e),o.readFloatLE=i.bind(null,s),o.readFloatBE=i.bind(null,u)}(),"undefined"!=typeof Float64Array?function(){var r=new Float64Array([-0]),e=new Uint8Array(r.buffer),t=128===e[7];function i(t,i,n){r[0]=t,i[n]=e[0],i[n+1]=e[1],i[n+2]=e[2],i[n+3]=e[3],i[n+4]=e[4],i[n+5]=e[5],i[n+6]=e[6],i[n+7]=e[7]}function n(t,i,n){r[0]=t,i[n]=e[7],i[n+1]=e[6],i[n+2]=e[5],i[n+3]=e[4],i[n+4]=e[3],i[n+5]=e[2],i[n+6]=e[1],i[n+7]=e[0]}function s(t,i){return e[0]=t[i],e[1]=t[i+1],e[2]=t[i+2],e[3]=t[i+3],e[4]=t[i+4],e[5]=t[i+5],e[6]=t[i+6],e[7]=t[i+7],r[0]}function u(t,i){return e[7]=t[i],e[6]=t[i+1],e[5]=t[i+2],e[4]=t[i+3],e[3]=t[i+4],e[2]=t[i+5],e[1]=t[i+6],e[0]=t[i+7],r[0]}o.writeDoubleLE=t?i:n,o.writeDoubleBE=t?n:i,o.readDoubleLE=t?s:u,o.readDoubleBE=t?u:s}():function(){function t(t,i,n,r,e,s){var u=r<0?1:0;if(u&&(r=-r),0===r)t(0,e,s+i),t(0<1/r?0:2147483648,e,s+n);else if(isNaN(r))t(0,e,s+i),t(2146959360,e,s+n);else if(17976931348623157e292>>0,e,s+n);else{var o;if(r<22250738585072014e-324)t((o=r/5e-324)>>>0,e,s+i),t((u<<31|o/4294967296)>>>0,e,s+n);else{var f=Math.floor(Math.log(r)/Math.LN2);1024===f&&(f=1023),t(4503599627370496*(o=r*Math.pow(2,-f))>>>0,e,s+i),t((u<<31|f+1023<<20|1048576*o&1048575)>>>0,e,s+n)}}}function i(t,i,n,r,e){var s=t(r,e+i),u=t(r,e+n),o=2*(u>>31)+1,f=u>>>20&2047,h=4294967296*(1048575&u)+s;return 2047===f?h?NaN:o*(1/0):0===f?5e-324*o*h:o*Math.pow(2,f-1075)*(h+4503599627370496)}o.writeDoubleLE=t.bind(null,r,0,4),o.writeDoubleBE=t.bind(null,e,4,0),o.readDoubleLE=i.bind(null,s,0,4),o.readDoubleBE=i.bind(null,u,4,0)}(),o}function r(t,i,n){i[n]=255&t,i[n+1]=t>>>8&255,i[n+2]=t>>>16&255,i[n+3]=t>>>24}function e(t,i,n){i[n]=t>>>24,i[n+1]=t>>>16&255,i[n+2]=t>>>8&255,i[n+3]=255&t}function s(t,i){return(t[i]|t[i+1]<<8|t[i+2]<<16|t[i+3]<<24)>>>0}function u(t,i){return(t[i]<<24|t[i+1]<<16|t[i+2]<<8|t[i+3])>>>0}i.exports=n(n)},{}],7:[function(t,i,n){function r(t){try{var i=eval("require")(t);if(i&&(i.length||Object.keys(i).length))return i}catch(t){}return null}i.exports=r},{}],8:[function(t,i,n){var r=n,s=r.isAbsolute=function(t){return/^(?:\/|\w+:)/.test(t)},e=r.normalize=function(t){var i=(t=t.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),n=s(t),r="";n&&(r=i.shift()+"/");for(var e=0;e>>1,u=null,o=e;return function(t){if(t<1||s>10),s[u++]=56320+(1023&r)):s[u++]=(15&r)<<12|(63&t[i++])<<6|63&t[i++],8191>6|192:(55296==(64512&r)&&56320==(64512&(e=t.charCodeAt(u+1)))?(r=65536+((1023&r)<<10)+(1023&e),++u,i[n++]=r>>18|240,i[n++]=r>>12&63|128):i[n++]=r>>12|224,i[n++]=r>>6&63|128),i[n++]=63&r|128);return n-s}},{}],11:[function(t,i,n){var r=n,l=t(14),v=t(33);function o(t,i,n,r,e){if(e===g&&(e="d"+r),i.resolvedType)if(i.resolvedType instanceof l){t("switch(%s){",e);for(var s=i.resolvedType.values,u=Object.keys(s),o=0;o>>0",r,e);break;case"int32":case"sint32":case"sfixed32":t("m%s=%s|0",r,e);break;case"uint64":f=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":t("if(util.Long)")("(m%s=util.Long.fromValue(%s)).unsigned=%j",r,e,f)('else if(typeof %s==="string")',e)("m%s=parseInt(%s,10)",r,e)('else if(typeof %s==="number")',e)("m%s=%s",r,e)('else if(typeof %s==="object")',e)("m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)",r,e,e,f?"true":"");break;case"bytes":t('if(typeof %s==="string")',e)("util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)",e,r,e)("else if(%s.length)",e)("m%s=%s",r,e);break;case"string":t("m%s=String(%s)",r,e);break;case"bool":t("m%s=Boolean(%s)",r,e)}}return t}function d(t,i,n,r){if(i.resolvedType)i.resolvedType instanceof l?t("d%s=o.enums===String?types[%i].values[m%s]:m%s",r,n,r,r):t("d%s=types[%i].toObject(m%s,o)",r,n,r);else{var e=!1;switch(i.type){case"double":case"float":t("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",r,r,r,r);break;case"uint64":e=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":t('if(typeof m%s==="number")',r)("d%s=o.longs===String?String(m%s):m%s",r,r,r)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",r,r,r,r,e?"true":"",r);break;case"bytes":t("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",r,r,r,r,r);break;default:t("d%s=m%s",r,r)}}return t}r.fromObject=function(t){var i=t.fieldsArray,n=v.codegen(["d"],t.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!i.length)return n("return new this.ctor");n("var m=new this.ctor");for(var r=0;r>>3){");for(var n=0;n>>0,8|a.mapKey[s.keyType],s.keyType),f===g?n("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",u,i):n(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|f,o,i),n("}")("}");else if(s.repeated){var h=i;s.useToArray()&&(h="array"+s.id,n("var %s",h),n("if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }",i,i,h,i,h,i)),n("if(%s!=null&&%s.length){",h,h),s.packed&&a.packed[o]!==g?n("w.uint32(%i).fork()",(s.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",h)("w.%s(%s[i])",o,h)("w.ldelim()"):(n("for(var i=0;i<%s.length;++i)",h),f===g?v(n,s,u,h+"[i]"):n("w.uint32(%i).%s(%s[i])",(s.id<<3|f)>>>0,o,h)),n("}")}else s.optional&&n("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",i,s.name),f===g?v(n,s,u,i):n("w.uint32(%i).%s(%s)",(s.id<<3|f)>>>0,o,i)}return n("return w")};var c=t(14),a=t(32),l=t(33);function v(t,i,n,r){return i.resolvedType.group?t("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",n,r,(i.id<<3|3)>>>0,(i.id<<3|4)>>>0):t("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",n,r,(i.id<<3|2)>>>0)}},{14:14,32:32,33:33}],14:[function(t,i){i.exports=e;var o=t(22);((e.prototype=Object.create(o.prototype)).constructor=e).className="Enum";var n=t(21),r=t(33);function e(t,i,n,r,e){if(o.call(this,t,n),i&&"object"!=typeof i)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=r,this.comments=e||{},this.reserved=g,i)for(var s=Object.keys(i),u=0;ui)return!0;return!1},h.isReservedName=function(t,i){if(t)for(var n=0;n "+t.len)}function o(t){this.buf=t,this.pos=0,this.len=t.length}var f,h="undefined"!=typeof Uint8Array?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new o(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new o(t);throw Error("illegal buffer")};function c(){var t=new e(0,0),i=0;if(!(4=this.len)throw u(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*i)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(127&this.buf[this.pos++])<<7*i)>>>0,t}for(;i<4;++i)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*i)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t;if(i=0,4>>0,this.buf[this.pos++]<128)return t}else for(;i<5;++i){if(this.pos>=this.len)throw u(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*i+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function a(t,i){return(t[i-4]|t[i-3]<<8|t[i-2]<<16|t[i-1]<<24)>>>0}function l(){if(this.pos+8>this.len)throw u(this,8);return new e(a(this.buf,this.pos+=4),a(this.buf,this.pos+=4))}o.create=r.Buffer?function(t){return(o.create=function(t){return r.Buffer.isBuffer(t)?new n(t):h(t)})(t)}:h,o.prototype.f=r.Array.prototype.subarray||r.Array.prototype.slice,o.prototype.uint32=(f=4294967295,function(){if(f=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return f;if((this.pos+=5)>this.len)throw this.pos=this.len,u(this,10);return f}),o.prototype.int32=function(){return 0|this.uint32()},o.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},o.prototype.bool=function(){return 0!==this.uint32()},o.prototype.fixed32=function(){if(this.pos+4>this.len)throw u(this,4);return a(this.buf,this.pos+=4)},o.prototype.sfixed32=function(){if(this.pos+4>this.len)throw u(this,4);return 0|a(this.buf,this.pos+=4)},o.prototype.float=function(){if(this.pos+4>this.len)throw u(this,4);var t=r.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},o.prototype.double=function(){if(this.pos+8>this.len)throw u(this,4);var t=r.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},o.prototype.bytes=function(){var t=this.uint32(),i=this.pos,n=this.pos+t;if(n>this.len)throw u(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(i,n):i===n?new this.buf.constructor(0):this.f.call(this.buf,i,n)},o.prototype.string=function(){var t=this.bytes();return s.read(t,0,t.length)},o.prototype.skip=function(t){if("number"==typeof t){if(this.pos+t>this.len)throw u(this,t);this.pos+=t}else do{if(this.pos>=this.len)throw u(this)}while(128&this.buf[this.pos++]);return this},o.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(t=7&this.uint32());)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this},o.r=function(t){n=t;var i=r.Long?"toLong":"toNumber";r.merge(o.prototype,{int64:function(){return c.call(this)[i](!1)},uint64:function(){return c.call(this)[i](!0)},sint64:function(){return c.call(this).zzDecode()[i](!1)},fixed64:function(){return l.call(this)[i](!0)},sfixed64:function(){return l.call(this)[i](!1)}})}},{35:35}],25:[function(t,i){i.exports=e;var n=t(24);(e.prototype=Object.create(n.prototype)).constructor=e;var r=t(35);function e(t){n.call(this,t)}r.Buffer&&(e.prototype.f=r.Buffer.prototype.slice),e.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len))}},{24:24,35:35}],26:[function(t,i){i.exports=n;var r=t(21);((n.prototype=Object.create(r.prototype)).constructor=n).className="Root";var e,v,d,s=t(15),u=t(14),o=t(23),y=t(33);function n(t){r.call(this,"",t),this.deferred=[],this.files=[]}function b(){}n.fromJSON=function(t,i){return i||(i=new n),t.options&&i.setOptions(t.options),i.addJSON(t.nested)},n.prototype.resolvePath=y.path.resolve,n.prototype.load=function t(i,s,e){"function"==typeof s&&(e=s,s=g);var u=this;if(!e)return y.asPromise(t,u,i,s);var o=e===b;function f(t,i){if(e){var n=e;if(e=null,o)throw t;n(t,i)}}function h(t){var i=t.lastIndexOf("google/protobuf/");if(-1>>0,this.hi=i>>>0}var s=e.zero=new e(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1};var r=e.zeroHash="\0\0\0\0\0\0\0\0";e.fromNumber=function(t){if(0===t)return s;var i=t<0;i&&(t=-t);var n=t>>>0,r=(t-n)/4294967296>>>0;return i&&(r=~r>>>0,n=~n>>>0,4294967295<++n&&(n=0,4294967295<++r&&(r=0))),new e(n,r)},e.from=function(t){if("number"==typeof t)return e.fromNumber(t);if(n.isString(t)){if(!n.Long)return e.fromNumber(parseInt(t,10));t=n.Long.fromString(t)}return t.low||t.high?new e(t.low>>>0,t.high>>>0):s},e.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var i=1+~this.lo>>>0,n=~this.hi>>>0;return i||(n=n+1>>>0),-(i+4294967296*n)}return this.lo+4294967296*this.hi},e.prototype.toLong=function(t){return n.Long?new n.Long(0|this.lo,0|this.hi,!!t):{low:0|this.lo,high:0|this.hi,unsigned:!!t}};var u=String.prototype.charCodeAt;e.fromHash=function(t){return t===r?s:new e((u.call(t,0)|u.call(t,1)<<8|u.call(t,2)<<16|u.call(t,3)<<24)>>>0,(u.call(t,4)|u.call(t,5)<<8|u.call(t,6)<<16|u.call(t,7)<<24)>>>0)},e.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},e.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},e.prototype.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},e.prototype.length=function(){var t=this.lo,i=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===i?t<16384?t<128?1:2:t<2097152?3:4:i<16384?i<128?5:6:i<2097152?7:8:n<128?9:10}},{35:35}],35:[function(t,i,n){var r=n;function e(t,i,n){for(var r=Object.keys(i),e=0;e>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;127>>7;i[n++]=t.lo}function d(t,i,n){i[n]=255&t,i[n+1]=t>>>8&255,i[n+2]=t>>>16&255,i[n+3]=t>>>24}c.create=r.Buffer?function(){return(c.create=function(){return new n})()}:function(){return new c},c.alloc=function(t){return new r.Array(t)},r.Array!==Array&&(c.alloc=r.pool(c.alloc,r.Array.prototype.subarray)),c.prototype.b=function(t,i,n){return this.tail=this.tail.next=new o(t,i,n),this.len+=i,this},(l.prototype=Object.create(o.prototype)).fn=function(t,i,n){for(;127>>=7;i[n]=t},c.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new l((t>>>=0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},c.prototype.int32=function(t){return t<0?this.b(v,10,e.fromNumber(t)):this.uint32(t)},c.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},c.prototype.int64=c.prototype.uint64=function(t){var i=e.from(t);return this.b(v,i.length(),i)},c.prototype.sint64=function(t){var i=e.from(t).zzEncode();return this.b(v,i.length(),i)},c.prototype.bool=function(t){return this.b(a,1,t?1:0)},c.prototype.sfixed32=c.prototype.fixed32=function(t){return this.b(d,4,t>>>0)},c.prototype.sfixed64=c.prototype.fixed64=function(t){var i=e.from(t);return this.b(d,4,i.lo).b(d,4,i.hi)},c.prototype.float=function(t){return this.b(r.float.writeFloatLE,4,t)},c.prototype.double=function(t){return this.b(r.float.writeDoubleLE,8,t)};var y=r.Array.prototype.set?function(t,i,n){i.set(t,n)}:function(t,i,n){for(var r=0;r>>0;if(!i)return this.b(a,1,0);if(r.isString(t)){var n=c.alloc(i=s.length(t));s.decode(t,n,0),t=n}return this.uint32(i).b(y,i,t)},c.prototype.string=function(t){var i=u.length(t);return i?this.uint32(i).b(u.write,i,t):this.b(a,1,0)},c.prototype.fork=function(){return this.states=new h(this),this.head=this.tail=new o(f,0,0),this.len=0,this},c.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new o(f,0,0),this.len=0),this},c.prototype.ldelim=function(){var t=this.head,i=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=i,this.len+=n),this},c.prototype.finish=function(){for(var t=this.head.next,i=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,i,n),n+=t.len,t=t.next;return i},c.r=function(t){n=t}},{35:35}],39:[function(t,i){i.exports=s;var n=t(38);(s.prototype=Object.create(n.prototype)).constructor=s;var r=t(35),e=r.Buffer;function s(){n.call(this)}s.alloc=function(t){return(s.alloc=r.y)(t)};var u=e&&e.prototype instanceof Uint8Array&&"set"===e.prototype.set.name?function(t,i,n){i.set(t,n)}:function(t,i,n){if(t.copy)t.copy(i,n,0,t.length);else for(var r=0;r>>0;return this.uint32(i),i&&this.b(u,i,t),this},s.prototype.string=function(t){var i=e.byteLength(t);return this.uint32(i),i&&this.b(o,i,t),this}},{35:35,38:38}]},e={},t=[16],i=function t(i){var n=e[i];return n||r[i][0].call(n=e[i]={exports:{}},t,n,n.exports),n.exports}(t[0]),i.util.global.protobuf=i,"function"==typeof define&&define.amd&&define(["long"],function(t){return t&&t.isLong&&(i.util.Long=t,i.configure()),i}),"object"==typeof module&&module&&module.exports&&(module.exports=i)}(); -//# sourceMappingURL=protobuf.min.js.map diff --git a/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.min.js.map b/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.min.js.map deleted file mode 100644 index bc89af4..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/light/protobuf.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["lib/prelude.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/codegen/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/fetch/index.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/inquire/index.js","../node_modules/@protobufjs/path/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/@protobufjs/utf8/index.js","../src/converter.js","../src/decoder.js","../src/encoder.js","../src/enum.js","../src/field.js","../src/index-light","../src/index-minimal.js","../src/mapfield.js","../src/message.js","../src/method.js","../src/namespace.js","../src/object.js","../src/oneof.js","../src/reader.js","../src/reader_buffer.js","../src/root.js","../src/roots.js","../src/rpc.js","../src/rpc/service.js","../src/service.js","../src/type.js","../src/types.js","../src/util.js","../src/util/longbits.js","../src/util/minimal.js","../src/verifier.js","../src/wrappers.js","../src/writer.js","../src/writer_buffer.js"],"names":["undefined","modules","cache","entries","protobuf","1","require","module","exports","fn","ctx","params","Array","arguments","length","offset","index","pending","Promise","resolve","reject","err","apply","base64","string","p","n","charAt","Math","ceil","b64","s64","i","encode","buffer","start","end","t","parts","chunk","j","b","push","String","fromCharCode","slice","join","invalidEncoding","decode","c","charCodeAt","Error","test","codegen","functionParams","functionName","body","Codegen","formatStringOrScope","source","toString","verbose","console","log","scopeKeys","Object","keys","scopeParams","scopeValues","scopeOffset","Function","formatParams","formatOffset","replace","$0","$1","value","floor","JSON","stringify","functionNameOverride","EventEmitter","this","_listeners","prototype","on","evt","off","listeners","splice","emit","args","fetch","asPromise","fs","inquire","filename","options","callback","xhr","readFile","contents","XMLHttpRequest","binary","onreadystatechange","readyState","status","response","responseText","Uint8Array","overrideMimeType","responseType","open","send","factory","Float32Array","f32","f8b","le","writeFloat_f32_cpy","val","buf","pos","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatLE","writeFloatBE","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","isNaN","round","exponent","LN2","pow","readFloat_ieee754","readUint","uint","mantissa","NaN","Infinity","bind","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","lo","hi","moduleName","mod","eval","e","path","isAbsolute","normalize","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","alloc","size","SIZE","MAX","slab","call","utf8","len","read","write","c1","c2","converter","Enum","util","genValuePartial_fromObject","gen","field","fieldIndex","prop","ref","resolvedType","values","repeated","typeDefault","fullName","isUnsigned","type","genValuePartial_toObject","fromObject","mtype","fields","fieldsArray","name","safeProp","map","arrayRef","useToArray","id","toObject","sort","compareFieldsById","repeatedFields","mapFields","normalFields","partOf","valuesById","long","low","high","unsigned","toNumber","bytes","arrayDefault","hasKs2","_fieldsArray","indexOf","filter","group","keyType","types","basic","packed","rfield","required","wireType","mapKey","genTypePartial","optional","ReflectionObject","create","constructor","className","Namespace","comment","comments","TypeError","reserved","fromJSON","json","enm","toJSON","toJSONOptions","keepComments","add","isString","isInteger","isReservedId","isReservedName","allow_alias","remove","Field","Type","ruleRe","rule","extend","isObject","toLowerCase","message","defaultValue","Long","extensionField","declaringField","_packed","defineProperty","get","getOption","setOption","ifNotSet","resolved","defaults","parent","lookupTypeOrEnum","fromNumber","freeze","newBuffer","emptyObject","emptyArray","ctor","d","fieldId","fieldType","fieldRule","decorateType","decorateEnum","fieldName","default","_configure","Type_","build","load","root","Root","loadSync","encoder","decoder","verifier","OneOf","MapField","Service","Method","Message","wrappers","configure","Reader","BufferReader","Writer","BufferWriter","rpc","roots","resolvedKeyType","fieldKeyType","fieldValueType","properties","$type","writer","encodeDelimited","reader","decodeDelimited","verify","object","requestType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","lookupType","arrayToJSON","array","obj","nested","_nestedArray","clearCache","namespace","addJSON","toArray","nestedArray","nestedJson","names","methods","getEnum","prev","setOptions","onAdd","onRemove","define","isArray","ptr","part","resolveAll","lookup","filterTypes","parentAlreadyChecked","found","lookupEnum","lookupService","Service_","Enum_","defineProperties","unshift","_handleAdd","_handleRemove","Root_","fieldNames","oneof","addFieldsToParent","oneofName","oneOfGetter","set","oneOfSetter","LongBits","indexOutOfRange","writeLength","RangeError","create_array","readLongVarint","bits","readFixed32_end","readFixed64","Buffer","isBuffer","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","float","double","skip","skipType","BufferReader_","merge","int64","uint64","sint64","zzDecode","fixed64","sfixed64","utf8Slice","min","parse","common","deferred","files","SYNC","resolvePath","self","sync","finish","cb","getBundledFileName","idx","lastIndexOf","altname","substring","process","parsed","imports","weakImports","queued","weak","setTimeout","readFileSync","isNode","exposeRe","tryHandleExtension","extendedType","sisterField","parse_","common_","rpcImpl","requestDelimited","responseDelimited","rpcCall","method","requestCtor","responseCtor","request","endedByRPC","_methodsArray","service","inherited","methodsArray","rpcService","methodName","lcFirst","isReserved","m","q","s","oneofs","extensions","_fieldsById","_oneofsArray","_ctor","fieldsById","oneofsArray","generateConstructor","ctorProperties","setup","wrapper","originalThis","fork","ldelim","typeName","target","bake","o","key","safePropBackslashRe","safePropQuoteRe","ucFirst","str","toUpperCase","camelCaseRe","camelCase","a","decorateRoot","enumerable","decorateEnumIndex","zero","zzEncode","zeroHash","from","parseInt","fromString","toLong","fromHash","hash","toHash","mask","part0","part1","part2","dst","src","newError","CustomError","captureStackTrace","stack","pool","global","window","versions","node","Number","isFinite","isset","isSet","hasOwnProperty","utf8Write","_Buffer_from","_Buffer_allocUnsafe","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","fromBits","ProtocolError","fieldMap","longs","enums","encoding","allocUnsafe","seenFirstField","invalid","genVerifyKey","genVerifyValue","oneofProp","expected","type_url","substr","Op","next","noop","State","head","tail","states","writeByte","VarintOp","writeVarint64","writeFixed32","_push","writeBytes","reset","BufferWriter_","writeBytesBuffer","copy","writeStringBuffer","byteLength","$require","$module","amd","isLong"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(function prelude(modules, cache, entries) {\n\n // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS\n // sources through a conflict-free require shim and is again wrapped within an iife that\n // provides a minification-friendly `undefined` var plus a global \"use strict\" directive\n // so that minification can remove the directives of each module.\n\n function $require(name) {\n var $module = cache[name];\n if (!$module)\n modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports);\n return $module.exports;\n }\n\n var protobuf = $require(entries[0]);\n\n // Expose globally\n protobuf.util.global.protobuf = protobuf;\n\n // Be nice to AMD\n if (typeof define === \"function\" && define.amd)\n define([\"long\"], function(Long) {\n if (Long && Long.isLong) {\n protobuf.util.Long = Long;\n protobuf.configure();\n }\n return protobuf;\n });\n\n // Be nice to CommonJS\n if (typeof module === \"object\" && module && module.exports)\n module.exports = protobuf;\n\n})/* end of prelude */","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n /* istanbul ignore if */\r\n if (typeof functionParams === \"string\") {\r\n functionName = functionParams;\r\n functionParams = undefined;\r\n }\r\n\r\n var body = [];\r\n\r\n /**\r\n * Appends code to the function's body or finishes generation.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n * @param {...*} [formatParams] Format parameters\r\n * @returns {Codegen|Function} Itself or the generated function if finished\r\n * @throws {Error} If format parameter counts do not match\r\n */\r\n\r\n function Codegen(formatStringOrScope) {\r\n // note that explicit array handling below makes this ~50% faster\r\n\r\n // finish the function\r\n if (typeof formatStringOrScope !== \"string\") {\r\n var source = toString();\r\n if (codegen.verbose)\r\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n source = \"return \" + source;\r\n if (formatStringOrScope) {\r\n var scopeKeys = Object.keys(formatStringOrScope),\r\n scopeParams = new Array(scopeKeys.length + 1),\r\n scopeValues = new Array(scopeKeys.length),\r\n scopeOffset = 0;\r\n while (scopeOffset < scopeKeys.length) {\r\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n }\r\n scopeParams[scopeOffset] = source;\r\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n }\r\n return Function(source)(); // eslint-disable-line no-new-func\r\n }\r\n\r\n // otherwise append to body\r\n var formatParams = new Array(arguments.length - 1),\r\n formatOffset = 0;\r\n while (formatOffset < formatParams.length)\r\n formatParams[formatOffset] = arguments[++formatOffset];\r\n formatOffset = 0;\r\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n var value = formatParams[formatOffset++];\r\n switch ($1) {\r\n case \"d\": case \"f\": return String(Number(value));\r\n case \"i\": return String(Math.floor(value));\r\n case \"j\": return JSON.stringify(value);\r\n case \"s\": return String(value);\r\n }\r\n return \"%\";\r\n });\r\n if (formatOffset !== formatParams.length)\r\n throw Error(\"parameter count mismatch\");\r\n body.push(formatStringOrScope);\r\n return Codegen;\r\n }\r\n\r\n function toString(functionNameOverride) {\r\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\r\n }\r\n\r\n Codegen.toString = toString;\r\n return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @typedef FetchOptions\r\n * @type {Object}\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {FetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n } else if (!options)\r\n options = {};\r\n\r\n if (!callback)\r\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n if (!options.xhr && fs && fs.readFile)\r\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch.xhr(filename, options, callback)\r\n : err\r\n ? callback(err)\r\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n });\r\n\r\n // use the XHR version otherwise.\r\n return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchOptions} [options] Fetch options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n if (xhr.readyState !== 4)\r\n return undefined;\r\n\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n if (xhr.status !== 0 && xhr.status !== 200)\r\n return callback(Error(\"status \" + xhr.status));\r\n\r\n // if binary data is expected, make sure that some sort of array is returned, even if\r\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n if (options.binary) {\r\n var buffer = xhr.response;\r\n if (!buffer) {\r\n buffer = [];\r\n for (var i = 0; i < xhr.responseText.length; ++i)\r\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n }\r\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n }\r\n return callback(null, xhr.responseText);\r\n };\r\n\r\n if (options.binary) {\r\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n if (\"overrideMimeType\" in xhr)\r\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n xhr.responseType = \"arraybuffer\";\r\n }\r\n\r\n xhr.open(\"GET\", filename);\r\n xhr.send();\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0 && parts[i - 1] !== \"..\")\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\n/**\n * Runtime message from/to plain object converters.\n * @namespace\n */\nvar converter = exports;\n\nvar Enum = require(14),\n util = require(33);\n\n/**\n * Generates a partial value fromObject conveter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop, ref) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (ref === undefined) {\n ref = \"d\" + prop;\n }\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref);\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\n (\"default:\");\n gen\n (\"case%j:\", keys[i])\n (\"case %i:\", values[keys[i]])\n (\"m%s=%j\", prop, values[keys[i]])\n (\"break\");\n } gen\n (\"}\");\n } else gen\n (\"if(typeof %s!==\\\"object\\\")\", ref)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s=types[%i].fromObject(%s)\", prop, fieldIndex, ref);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"m%s=Number(%s)\", prop, ref); // also catches \"NaN\", \"Infinity\"\n break;\n case \"uint32\":\n case \"fixed32\": gen\n (\"m%s=%s>>>0\", prop, ref);\n break;\n case \"int32\":\n case \"sint32\":\n case \"sfixed32\": gen\n (\"m%s=%s|0\", prop, ref);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(util.Long)\")\n (\"(m%s=util.Long.fromValue(%s)).unsigned=%j\", prop, ref, isUnsigned)\n (\"else if(typeof %s===\\\"string\\\")\", ref)\n (\"m%s=parseInt(%s,10)\", prop, ref)\n (\"else if(typeof %s===\\\"number\\\")\", ref)\n (\"m%s=%s\", prop, ref)\n (\"else if(typeof %s===\\\"object\\\")\", ref)\n (\"m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)\", prop, ref, ref, isUnsigned ? \"true\" : \"\");\n break;\n case \"bytes\": gen\n (\"if(typeof %s===\\\"string\\\")\", ref)\n (\"util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)\", ref, prop, ref)\n (\"else if(%s.length)\", ref)\n (\"m%s=%s\", prop, ref);\n break;\n case \"string\": gen\n (\"m%s=String(%s)\", prop, ref);\n break;\n case \"bool\": gen\n (\"m%s=Boolean(%s)\", prop, ref);\n break;\n /* default: gen\n (\"m%s=%s\", prop, ref);\n break; */\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a plain object to runtime message converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.fromObject = function fromObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray;\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\n (\"if(d instanceof this.ctor)\")\n (\"return d\");\n if (!fields.length) return gen\n (\"return new this.ctor\");\n gen\n (\"var m=new this.ctor\");\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n prop = util.safeProp(field.name);\n\n // Map fields\n if (field.map) { gen\n (\"if(d%s){\", prop)\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s={}\", prop)\n (\"for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\n break;\n case \"bytes\": gen\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\n break;\n default: gen\n (\"d%s=m%s\", prop, prop);\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a runtime message to plain object converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.toObject = function toObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\n if (!fields.length)\n return util.codegen()(\"return {}\");\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\n (\"if(!o)\")\n (\"o={}\")\n (\"var d={}\");\n\n var repeatedFields = [],\n mapFields = [],\n normalFields = [],\n i = 0;\n for (; i < fields.length; ++i)\n if (!fields[i].partOf)\n ( fields[i].resolve().repeated ? repeatedFields\n : fields[i].map ? mapFields\n : normalFields).push(fields[i]);\n\n if (repeatedFields.length) { gen\n (\"if(o.arrays||o.defaults){\");\n for (i = 0; i < repeatedFields.length; ++i) gen\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\n gen\n (\"}\");\n }\n\n if (mapFields.length) { gen\n (\"if(o.objects||o.defaults){\");\n for (i = 0; i < mapFields.length; ++i) gen\n (\"d%s={}\", util.safeProp(mapFields[i].name));\n gen\n (\"}\");\n }\n\n if (normalFields.length) { gen\n (\"if(o.defaults){\");\n for (i = 0; i < normalFields.length; ++i) {\n var field = normalFields[i],\n prop = util.safeProp(field.name);\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\n else if (field.long) gen\n (\"if(util.Long){\")\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\n (\"}else\")\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\n else if (field.bytes) {\n var arrayDefault = \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\";\n gen\n (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\n (\"else{\")\n (\"d%s=%s\", prop, arrayDefault)\n (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\n (\"}\");\n } else gen\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\n } gen\n (\"}\");\n }\n var hasKs2 = false;\n for (i = 0; i < fields.length; ++i) {\n var field = fields[i],\n index = mtype._fieldsArray.indexOf(field),\n prop = util.safeProp(field.name);\n if (field.map) {\n if (!hasKs2) { hasKs2 = true; gen\n (\"var ks2\");\n } gen\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\n (\"d%s={}\", prop)\n (\"for(var j=0;j>>3){\");\n\n var i = 0;\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n ref = \"m\" + util.safeProp(field.name); gen\n (\"case %i:\", field.id);\n\n // Map fields\n if (field.map) { gen\n (\"r.skip().pos++\") // assumes id 1 + key wireType\n (\"if(%s===util.emptyObject)\", ref)\n (\"%s={}\", ref)\n (\"k=r.%s()\", field.keyType)\n (\"r.pos++\"); // assumes id 2 + value wireType\n if (types.long[field.keyType] !== undefined) {\n if (types.basic[type] === undefined) gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\n } else {\n if (types.basic[type] === undefined) gen\n (\"%s[k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[k]=r.%s()\", ref, type);\n }\n\n // Repeated fields\n } else if (field.repeated) { gen\n\n (\"if(!(%s&&%s.length))\", ref, ref)\n (\"%s=[]\", ref);\n\n // Packable (always check for forward and backward compatiblity)\n if (types.packed[type] !== undefined) gen\n (\"if((t&7)===2){\")\n (\"var c2=r.uint32()+r.pos\")\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\n}\n\n/**\n * Generates an encoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction encoder(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\n (\"if(!w)\")\n (\"w=Writer.create()\");\n\n var i, ref;\n\n // \"when a message is serialized its known fields should be written sequentially by field number\"\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\n\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n index = mtype._fieldsArray.indexOf(field),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n wireType = types.basic[type];\n ref = \"m\" + util.safeProp(field.name);\n\n // Map fields\n if (field.map) {\n gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j)){\", ref, field.name) // !== undefined && !== null\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\n if (wireType === undefined) gen\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\n else gen\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\n gen\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) {\n var arrayRef = ref;\n if (field.useToArray()) {\n arrayRef = \"array\" + field.id;\n gen(\"var %s\", arrayRef);\n gen(\"if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }\",\n ref, ref, arrayRef, ref, arrayRef, ref);\n }\n gen(\"if(%s!=null&&%s.length){\", arrayRef, arrayRef); // !== undefined && !== null\n // Packed repeated\n if (field.packed && types.packed[type] !== undefined) { gen\n\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\n (\"for(var i=0;i<%s.length;++i)\", arrayRef)\n (\"w.%s(%s[i])\", type, arrayRef)\n (\"w.ldelim()\");\n\n // Non-packed\n } else { gen\n\n (\"for(var i=0;i<%s.length;++i)\", arrayRef);\n if (wireType === undefined)\n genTypePartial(gen, field, index, arrayRef + \"[i]\");\n else gen\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, arrayRef);\n\n } gen\n (\"}\");\n\n // Non-repeated\n } else {\n if (field.optional) gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j))\", ref, field.name); // !== undefined && !== null\n\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref);\n else gen\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n }\n }\n\n return gen\n (\"return w\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n","\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(21),\n util = require(33);\n\n/**\n * Constructs a new enum instance.\n * @classdesc Reflected enum.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {Object.} [values] Enum values as an object, by name\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this enum\n * @param {Object.} [comments] The value comments for this enum\n */\nfunction Enum(name, values, options, comment, comments) {\n ReflectionObject.call(this, name, options);\n\n if (values && typeof values !== \"object\")\n throw TypeError(\"values must be an object\");\n\n /**\n * Enum values by id.\n * @type {Object.}\n */\n this.valuesById = {};\n\n /**\n * Enum values by name.\n * @type {Object.}\n */\n this.values = Object.create(this.valuesById); // toJSON, marker\n\n /**\n * Enum comment text.\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Value comment texts, if any.\n * @type {Object.}\n */\n this.comments = comments || {};\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\n // compatible enum. This is used by pbts to write actual enum definitions that work for\n // static and reflection code alike instead of emitting generic object definitions.\n\n if (values)\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\n if (typeof values[keys[i]] === \"number\") // use forward entries only\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\n}\n\n/**\n * Enum descriptor.\n * @interface IEnum\n * @property {Object.} values Enum values\n * @property {Object.} [options] Enum options\n */\n\n/**\n * Constructs an enum from an enum descriptor.\n * @param {string} name Enum name\n * @param {IEnum} json Enum descriptor\n * @returns {Enum} Created enum\n * @throws {TypeError} If arguments are invalid\n */\nEnum.fromJSON = function fromJSON(name, json) {\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\n enm.reserved = json.reserved;\n return enm;\n};\n\n/**\n * Converts this enum to an enum descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IEnum} Enum descriptor\n */\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"values\" , this.values,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"comment\" , keepComments ? this.comment : undefined,\n \"comments\" , keepComments ? this.comments : undefined\n ]);\n};\n\n/**\n * Adds a value to this enum.\n * @param {string} name Value name\n * @param {number} id Value id\n * @param {string} [comment] Comment, if any\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a value with this name or id\n */\nEnum.prototype.add = function add(name, id, comment) {\n // utilized by the parser but not by .fromJSON\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (!util.isInteger(id))\n throw TypeError(\"id must be an integer\");\n\n if (this.values[name] !== undefined)\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\n\n if (this.isReservedId(id))\n throw Error(\"id \" + id + \" is reserved in \" + this);\n\n if (this.isReservedName(name))\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\n\n if (this.valuesById[id] !== undefined) {\n if (!(this.options && this.options.allow_alias))\n throw Error(\"duplicate id \" + id + \" in \" + this);\n this.values[name] = id;\n } else\n this.valuesById[this.values[name] = id] = name;\n\n this.comments[name] = comment || null;\n return this;\n};\n\n/**\n * Removes a value from this enum\n * @param {string} name Value name\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `name` is not a name of this enum\n */\nEnum.prototype.remove = function remove(name) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n var val = this.values[name];\n if (val == null)\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\n\n delete this.valuesById[val];\n delete this.values[name];\n delete this.comments[name];\n\n return this;\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n","\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum = require(14),\n types = require(32),\n util = require(33);\n\nvar Type; // cyclic\n\nvar ruleRe = /^required|optional|repeated$/;\n\n/**\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\n * @name Field\n * @classdesc Reflected message field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a field from a field descriptor.\n * @param {string} name Field name\n * @param {IField} json Field descriptor\n * @returns {Field} Created field\n * @throws {TypeError} If arguments are invalid\n */\nField.fromJSON = function fromJSON(name, json) {\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n};\n\n/**\n * Not an actual constructor. Use {@link Field} instead.\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports FieldBase\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction Field(name, id, type, rule, extend, options, comment) {\n\n if (util.isObject(rule)) {\n comment = extend;\n options = rule;\n rule = extend = undefined;\n } else if (util.isObject(extend)) {\n comment = options;\n options = extend;\n extend = undefined;\n }\n\n ReflectionObject.call(this, name, options);\n\n if (!util.isInteger(id) || id < 0)\n throw TypeError(\"id must be a non-negative integer\");\n\n if (!util.isString(type))\n throw TypeError(\"type must be a string\");\n\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\n throw TypeError(\"rule must be a string rule\");\n\n if (extend !== undefined && !util.isString(extend))\n throw TypeError(\"extend must be a string\");\n\n /**\n * Field rule, if any.\n * @type {string|undefined}\n */\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\n\n /**\n * Field type.\n * @type {string}\n */\n this.type = type; // toJSON\n\n /**\n * Unique field id.\n * @type {number}\n */\n this.id = id; // toJSON, marker\n\n /**\n * Extended type if different from parent.\n * @type {string|undefined}\n */\n this.extend = extend || undefined; // toJSON\n\n /**\n * Whether this field is required.\n * @type {boolean}\n */\n this.required = rule === \"required\";\n\n /**\n * Whether this field is optional.\n * @type {boolean}\n */\n this.optional = !this.required;\n\n /**\n * Whether this field is repeated.\n * @type {boolean}\n */\n this.repeated = rule === \"repeated\";\n\n /**\n * Whether this field is a map or not.\n * @type {boolean}\n */\n this.map = false;\n\n /**\n * Message this field belongs to.\n * @type {Type|null}\n */\n this.message = null;\n\n /**\n * OneOf this field belongs to, if any,\n * @type {OneOf|null}\n */\n this.partOf = null;\n\n /**\n * The field type's default value.\n * @type {*}\n */\n this.typeDefault = null;\n\n /**\n * The field's default value on prototypes.\n * @type {*}\n */\n this.defaultValue = null;\n\n /**\n * Whether this field's value should be treated as a long.\n * @type {boolean}\n */\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\n\n /**\n * Whether this field's value is a buffer.\n * @type {boolean}\n */\n this.bytes = type === \"bytes\";\n\n /**\n * Resolved type if not a basic type.\n * @type {Type|Enum|null}\n */\n this.resolvedType = null;\n\n /**\n * Sister-field within the extended type if a declaring extension field.\n * @type {Field|null}\n */\n this.extensionField = null;\n\n /**\n * Sister-field within the declaring namespace if an extended field.\n * @type {Field|null}\n */\n this.declaringField = null;\n\n /**\n * Internally remembers whether this field is packed.\n * @type {boolean|null}\n * @private\n */\n this._packed = null;\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n get: function() {\n // defaults to packed=true if not explicity set to false\n if (this._packed === null)\n this._packed = this.getOption(\"packed\") !== false;\n return this._packed;\n }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (name === \"packed\") // clear cached before setting\n this._packed = null;\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\n};\n\n/**\n * Field descriptor.\n * @interface IField\n * @property {string} [rule=\"optional\"] Field rule\n * @property {string} type Field type\n * @property {number} id Field id\n * @property {Object.} [options] Field options\n */\n\n/**\n * Extension field descriptor.\n * @interface IExtensionField\n * @extends IField\n * @property {string} extend Extended type\n */\n\n/**\n * Converts this field to a field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IField} Field descriptor\n */\nField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Resolves this field's type references.\n * @returns {Field} `this`\n * @throws {Error} If any reference cannot be resolved\n */\nField.prototype.resolve = function resolve() {\n\n if (this.resolved)\n return this;\n\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\n if (this.resolvedType instanceof Type)\n this.typeDefault = null;\n else // instanceof Enum\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\n }\n\n // use explicitly set default value if present\n if (this.options && this.options[\"default\"] != null) {\n this.typeDefault = this.options[\"default\"];\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\n this.typeDefault = this.resolvedType.values[this.typeDefault];\n }\n\n // remove unnecessary options\n if (this.options) {\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\n delete this.options.packed;\n if (!Object.keys(this.options).length)\n this.options = undefined;\n }\n\n // convert to internal data type if necesssary\n if (this.long) {\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\n\n /* istanbul ignore else */\n if (Object.freeze)\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\n\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\n var buf;\n if (util.base64.test(this.typeDefault))\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\n else\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\n this.typeDefault = buf;\n }\n\n // take special care of maps and repeated fields\n if (this.map)\n this.defaultValue = util.emptyObject;\n else if (this.repeated)\n this.defaultValue = util.emptyArray;\n else\n this.defaultValue = this.typeDefault;\n\n // ensure proper value on prototype\n if (this.parent instanceof Type)\n this.parent.ctor.prototype[this.name] = this.defaultValue;\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\nField.prototype.useToArray = function useToArray() {\n return !!this.getOption(\"(js_use_toArray)\");\n};\n\n/**\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\n * @typedef FieldDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} fieldName Field name\n * @returns {undefined}\n */\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @param {T} [defaultValue] Default value\n * @returns {FieldDecorator} Decorator function\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\n */\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\n\n // submessage: decorate the submessage and use its name as the type\n if (typeof fieldType === \"function\")\n fieldType = util.decorateType(fieldType).name;\n\n // enum reference: create a reflected copy of the enum and keep reuseing it\n else if (fieldType && typeof fieldType === \"object\")\n fieldType = util.decorateEnum(fieldType).name;\n\n return function fieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\n };\n};\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {Constructor|string} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @returns {FieldDecorator} Decorator function\n * @template T extends Message\n * @variation 2\n */\n// like Field.d but without a default value\n\n// Sets up cyclic dependencies (called in index-light)\nField._configure = function configure(Type_) {\n Type = Type_;\n};\n","\"use strict\";\nvar protobuf = module.exports = require(17);\n\nprotobuf.build = \"light\";\n\n/**\n * A node-style callback as used by {@link load} and {@link Root#load}.\n * @typedef LoadCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Root} [root] Root, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n */\nfunction load(filename, root, callback) {\n if (typeof root === \"function\") {\n callback = root;\n root = new protobuf.Root();\n } else if (!root)\n root = new protobuf.Root();\n return root.load(filename, callback);\n}\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Promise} Promise\n * @see {@link Root#load}\n * @variation 3\n */\n// function load(filename:string, [root:Root]):Promise\n\nprotobuf.load = load;\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n * @see {@link Root#loadSync}\n */\nfunction loadSync(filename, root) {\n if (!root)\n root = new protobuf.Root();\n return root.loadSync(filename);\n}\n\nprotobuf.loadSync = loadSync;\n\n// Serialization\nprotobuf.encoder = require(13);\nprotobuf.decoder = require(12);\nprotobuf.verifier = require(36);\nprotobuf.converter = require(11);\n\n// Reflection\nprotobuf.ReflectionObject = require(22);\nprotobuf.Namespace = require(21);\nprotobuf.Root = require(26);\nprotobuf.Enum = require(14);\nprotobuf.Type = require(31);\nprotobuf.Field = require(15);\nprotobuf.OneOf = require(23);\nprotobuf.MapField = require(18);\nprotobuf.Service = require(30);\nprotobuf.Method = require(20);\n\n// Runtime\nprotobuf.Message = require(19);\nprotobuf.wrappers = require(37);\n\n// Utility\nprotobuf.types = require(32);\nprotobuf.util = require(33);\n\n// Set up possibly cyclic reflection dependencies\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(38);\nprotobuf.BufferWriter = require(39);\nprotobuf.Reader = require(24);\nprotobuf.BufferReader = require(25);\n\n// Utility\nprotobuf.util = require(35);\nprotobuf.rpc = require(28);\nprotobuf.roots = require(27);\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.Reader._configure(protobuf.BufferReader);\n protobuf.util._configure();\n}\n\n// Set up buffer utility according to the environment\nprotobuf.Writer._configure(protobuf.BufferWriter);\nconfigure();\n","\"use strict\";\nmodule.exports = MapField;\n\n// extends Field\nvar Field = require(15);\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\n\nvar types = require(32),\n util = require(33);\n\n/**\n * Constructs a new map field instance.\n * @classdesc Reflected map field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} keyType Key type\n * @param {string} type Value type\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction MapField(name, id, keyType, type, options, comment) {\n Field.call(this, name, id, type, undefined, undefined, options, comment);\n\n /* istanbul ignore if */\n if (!util.isString(keyType))\n throw TypeError(\"keyType must be a string\");\n\n /**\n * Key type.\n * @type {string}\n */\n this.keyType = keyType; // toJSON, marker\n\n /**\n * Resolved key type if not a basic type.\n * @type {ReflectionObject|null}\n */\n this.resolvedKeyType = null;\n\n // Overrides Field#map\n this.map = true;\n}\n\n/**\n * Map field descriptor.\n * @interface IMapField\n * @extends {IField}\n * @property {string} keyType Key type\n */\n\n/**\n * Extension map field descriptor.\n * @interface IExtensionMapField\n * @extends IMapField\n * @property {string} extend Extended type\n */\n\n/**\n * Constructs a map field from a map field descriptor.\n * @param {string} name Field name\n * @param {IMapField} json Map field descriptor\n * @returns {MapField} Created map field\n * @throws {TypeError} If arguments are invalid\n */\nMapField.fromJSON = function fromJSON(name, json) {\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\n};\n\n/**\n * Converts this map field to a map field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMapField} Map field descriptor\n */\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"keyType\" , this.keyType,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMapField.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\n if (types.mapKey[this.keyType] === undefined)\n throw Error(\"invalid key type: \" + this.keyType);\n\n return Field.prototype.resolve.call(this);\n};\n\n/**\n * Map field decorator (TypeScript).\n * @name MapField.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\n * @returns {FieldDecorator} Decorator function\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\n */\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\n\n // submessage value: decorate the submessage and use its name as the type\n if (typeof fieldValueType === \"function\")\n fieldValueType = util.decorateType(fieldValueType).name;\n\n // enum reference value: create a reflected copy of the enum and keep reuseing it\n else if (fieldValueType && typeof fieldValueType === \"object\")\n fieldValueType = util.decorateEnum(fieldValueType).name;\n\n return function mapFieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\n };\n};\n","\"use strict\";\nmodule.exports = Message;\n\nvar util = require(35);\n\n/**\n * Constructs a new message instance.\n * @classdesc Abstract runtime message.\n * @constructor\n * @param {Properties} [properties] Properties to set\n * @template T extends object = object\n */\nfunction Message(properties) {\n // not used internally\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n this[keys[i]] = properties[keys[i]];\n}\n\n/**\n * Reference to the reflected type.\n * @name Message.$type\n * @type {Type}\n * @readonly\n */\n\n/**\n * Reference to the reflected type.\n * @name Message#$type\n * @type {Type}\n * @readonly\n */\n\n/*eslint-disable valid-jsdoc*/\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.create = function create(properties) {\n return this.$type.create(properties);\n};\n\n/**\n * Encodes a message of this type.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encode = function encode(message, writer) {\n return this.$type.encode(message, writer);\n};\n\n/**\n * Encodes a message of this type preceeded by its length as a varint.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.$type.encodeDelimited(message, writer);\n};\n\n/**\n * Decodes a message of this type.\n * @name Message.decode\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decode = function decode(reader) {\n return this.$type.decode(reader);\n};\n\n/**\n * Decodes a message of this type preceeded by its length as a varint.\n * @name Message.decodeDelimited\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decodeDelimited = function decodeDelimited(reader) {\n return this.$type.decodeDelimited(reader);\n};\n\n/**\n * Verifies a message of this type.\n * @name Message.verify\n * @function\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\nMessage.verify = function verify(message) {\n return this.$type.verify(message);\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object\n * @returns {T} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.fromObject = function fromObject(object) {\n return this.$type.fromObject(object);\n};\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {T} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @template T extends Message\n * @this Constructor\n */\nMessage.toObject = function toObject(message, options) {\n return this.$type.toObject(message, options);\n};\n\n/**\n * Converts this message to JSON.\n * @returns {Object.} JSON object\n */\nMessage.prototype.toJSON = function toJSON() {\n return this.$type.toObject(this, util.toJSONOptions);\n};\n\n/*eslint-enable valid-jsdoc*/","\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(33);\n\n/**\n * Constructs a new service method instance.\n * @classdesc Reflected service method.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Method name\n * @param {string|undefined} type Method type, usually `\"rpc\"`\n * @param {string} requestType Request message type\n * @param {string} responseType Response message type\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this method\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment) {\n\n /* istanbul ignore next */\n if (util.isObject(requestStream)) {\n options = requestStream;\n requestStream = responseStream = undefined;\n } else if (util.isObject(responseStream)) {\n options = responseStream;\n responseStream = undefined;\n }\n\n /* istanbul ignore if */\n if (!(type === undefined || util.isString(type)))\n throw TypeError(\"type must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(requestType))\n throw TypeError(\"requestType must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(responseType))\n throw TypeError(\"responseType must be a string\");\n\n ReflectionObject.call(this, name, options);\n\n /**\n * Method type.\n * @type {string}\n */\n this.type = type || \"rpc\"; // toJSON\n\n /**\n * Request type.\n * @type {string}\n */\n this.requestType = requestType; // toJSON, marker\n\n /**\n * Whether requests are streamed or not.\n * @type {boolean|undefined}\n */\n this.requestStream = requestStream ? true : undefined; // toJSON\n\n /**\n * Response type.\n * @type {string}\n */\n this.responseType = responseType; // toJSON\n\n /**\n * Whether responses are streamed or not.\n * @type {boolean|undefined}\n */\n this.responseStream = responseStream ? true : undefined; // toJSON\n\n /**\n * Resolved request type.\n * @type {Type|null}\n */\n this.resolvedRequestType = null;\n\n /**\n * Resolved response type.\n * @type {Type|null}\n */\n this.resolvedResponseType = null;\n\n /**\n * Comment for this method\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Method descriptor.\n * @interface IMethod\n * @property {string} [type=\"rpc\"] Method type\n * @property {string} requestType Request type\n * @property {string} responseType Response type\n * @property {boolean} [requestStream=false] Whether requests are streamed\n * @property {boolean} [responseStream=false] Whether responses are streamed\n * @property {Object.} [options] Method options\n */\n\n/**\n * Constructs a method from a method descriptor.\n * @param {string} name Method name\n * @param {IMethod} json Method descriptor\n * @returns {Method} Created method\n * @throws {TypeError} If arguments are invalid\n */\nMethod.fromJSON = function fromJSON(name, json) {\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment);\n};\n\n/**\n * Converts this method to a method descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMethod} Method descriptor\n */\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\n \"requestType\" , this.requestType,\n \"requestStream\" , this.requestStream,\n \"responseType\" , this.responseType,\n \"responseStream\" , this.responseStream,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMethod.prototype.resolve = function resolve() {\n\n /* istanbul ignore if */\n if (this.resolved)\n return this;\n\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n","\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Field = require(15),\n util = require(33);\n\nvar Type, // cyclic\n Service,\n Enum;\n\n/**\n * Constructs a new namespace instance.\n * @name Namespace\n * @classdesc Reflected namespace.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a namespace from JSON.\n * @memberof Namespace\n * @function\n * @param {string} name Namespace name\n * @param {Object.} json JSON object\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json) {\n return new Namespace(name, json.options).addJSON(json.nested);\n};\n\n/**\n * Converts an array of reflection objects to JSON.\n * @memberof Namespace\n * @param {ReflectionObject[]} array Object array\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\n */\nfunction arrayToJSON(array, toJSONOptions) {\n if (!(array && array.length))\n return undefined;\n var obj = {};\n for (var i = 0; i < array.length; ++i)\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\n return obj;\n}\n\nNamespace.arrayToJSON = arrayToJSON;\n\n/**\n * Tests if the specified id is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedId = function isReservedId(reserved, id) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] > id)\n return true;\n return false;\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedName = function isReservedName(reserved, name) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (reserved[i] === name)\n return true;\n return false;\n};\n\n/**\n * Not an actual constructor. Use {@link Namespace} instead.\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports NamespaceBase\n * @extends ReflectionObject\n * @abstract\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n * @see {@link Namespace}\n */\nfunction Namespace(name, options) {\n ReflectionObject.call(this, name, options);\n\n /**\n * Nested objects by name.\n * @type {Object.|undefined}\n */\n this.nested = undefined; // toJSON\n\n /**\n * Cached nested objects as an array.\n * @type {ReflectionObject[]|null}\n * @private\n */\n this._nestedArray = null;\n}\n\nfunction clearCache(namespace) {\n namespace._nestedArray = null;\n return namespace;\n}\n\n/**\n * Nested objects of this namespace as an array for iteration.\n * @name NamespaceBase#nestedArray\n * @type {ReflectionObject[]}\n * @readonly\n */\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\n get: function() {\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\n }\n});\n\n/**\n * Namespace descriptor.\n * @interface INamespace\n * @property {Object.} [options] Namespace options\n * @property {Object.} [nested] Nested object descriptors\n */\n\n/**\n * Any extension field descriptor.\n * @typedef AnyExtensionField\n * @type {IExtensionField|IExtensionMapField}\n */\n\n/**\n * Any nested object descriptor.\n * @typedef AnyNestedObject\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace}\n */\n// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place)\n\n/**\n * Converts this namespace to a namespace descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {INamespace} Namespace descriptor\n */\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\n return util.toObject([\n \"options\" , this.options,\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\n ]);\n};\n\n/**\n * Adds nested objects to this namespace from nested object descriptors.\n * @param {Object.} nestedJson Any nested object descriptors\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\n var ns = this;\n /* istanbul ignore else */\n if (nestedJson) {\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\n nested = nestedJson[names[i]];\n ns.add( // most to least likely\n ( nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : nested.id !== undefined\n ? Field.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n }\n return this;\n};\n\n/**\n * Gets the nested object of the specified name.\n * @param {string} name Nested object name\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\n */\nNamespace.prototype.get = function get(name) {\n return this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Gets the values of the nested {@link Enum|enum} of the specified name.\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\n * @param {string} name Nested enum name\n * @returns {Object.} Enum values\n * @throws {Error} If there is no such enum\n */\nNamespace.prototype.getEnum = function getEnum(name) {\n if (this.nested && this.nested[name] instanceof Enum)\n return this.nested[name].values;\n throw Error(\"no such enum: \" + name);\n};\n\n/**\n * Adds a nested object to this namespace.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name\n */\nNamespace.prototype.add = function add(object) {\n\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\n throw TypeError(\"object must be a valid nested object\");\n\n if (!this.nested)\n this.nested = {};\n else {\n var prev = this.get(object.name);\n if (prev) {\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\n // replace plain namespace but keep existing nested elements and options\n var nested = prev.nestedArray;\n for (var i = 0; i < nested.length; ++i)\n object.add(nested[i]);\n this.remove(prev);\n if (!this.nested)\n this.nested = {};\n object.setOptions(prev.options, true);\n\n } else\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n }\n }\n this.nested[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n};\n\n/**\n * Removes a nested object from this namespace.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this namespace\n */\nNamespace.prototype.remove = function remove(object) {\n\n if (!(object instanceof ReflectionObject))\n throw TypeError(\"object must be a ReflectionObject\");\n if (object.parent !== this)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.nested[object.name];\n if (!Object.keys(this.nested).length)\n this.nested = undefined;\n\n object.onRemove(this);\n return clearCache(this);\n};\n\n/**\n * Defines additial namespaces within this one if not yet existing.\n * @param {string|string[]} path Path to create\n * @param {*} [json] Nested types to create from JSON\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\n */\nNamespace.prototype.define = function define(path, json) {\n\n if (util.isString(path))\n path = path.split(\".\");\n else if (!Array.isArray(path))\n throw TypeError(\"illegal path\");\n if (path && path.length && path[0] === \"\")\n throw Error(\"path must be relative\");\n\n var ptr = this;\n while (path.length > 0) {\n var part = path.shift();\n if (ptr.nested && ptr.nested[part]) {\n ptr = ptr.nested[part];\n if (!(ptr instanceof Namespace))\n throw Error(\"path conflicts with non-namespace objects\");\n } else\n ptr.add(ptr = new Namespace(part));\n }\n if (json)\n ptr.addJSON(json);\n return ptr;\n};\n\n/**\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\n * @returns {Namespace} `this`\n */\nNamespace.prototype.resolveAll = function resolveAll() {\n var nested = this.nestedArray, i = 0;\n while (i < nested.length)\n if (nested[i] instanceof Namespace)\n nested[i++].resolveAll();\n else\n nested[i++].resolve();\n return this.resolve();\n};\n\n/**\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\n * @param {string|string[]} path Path to look up\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n */\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\n\n /* istanbul ignore next */\n if (typeof filterTypes === \"boolean\") {\n parentAlreadyChecked = filterTypes;\n filterTypes = undefined;\n } else if (filterTypes && !Array.isArray(filterTypes))\n filterTypes = [ filterTypes ];\n\n if (util.isString(path) && path.length) {\n if (path === \".\")\n return this.root;\n path = path.split(\".\");\n } else if (!path.length)\n return this;\n\n // Start at root if path is absolute\n if (path[0] === \"\")\n return this.root.lookup(path.slice(1), filterTypes);\n\n // Test if the first part matches any nested object, and if so, traverse if path contains more\n var found = this.get(path[0]);\n if (found) {\n if (path.length === 1) {\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\n return found;\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\n return found;\n\n // Otherwise try each nested namespace\n } else\n for (var i = 0; i < this.nestedArray.length; ++i)\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\n return found;\n\n // If there hasn't been a match, try again at the parent\n if (this.parent === null || parentAlreadyChecked)\n return null;\n return this.parent.lookup(path, filterTypes);\n};\n\n/**\n * Looks up the reflection object at the specified path, relative to this namespace.\n * @name NamespaceBase#lookup\n * @function\n * @param {string|string[]} path Path to look up\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @variation 2\n */\n// lookup(path: string, [parentAlreadyChecked: boolean])\n\n/**\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type\n * @throws {Error} If `path` does not point to a type\n */\nNamespace.prototype.lookupType = function lookupType(path) {\n var found = this.lookup(path, [ Type ]);\n if (!found)\n throw Error(\"no such type: \" + path);\n return found;\n};\n\n/**\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Enum} Looked up enum\n * @throws {Error} If `path` does not point to an enum\n */\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\n var found = this.lookup(path, [ Enum ]);\n if (!found)\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type or enum\n * @throws {Error} If `path` does not point to a type or enum\n */\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\n var found = this.lookup(path, [ Type, Enum ]);\n if (!found)\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Service} Looked up service\n * @throws {Error} If `path` does not point to a service\n */\nNamespace.prototype.lookupService = function lookupService(path) {\n var found = this.lookup(path, [ Service ]);\n if (!found)\n throw Error(\"no such Service '\" + path + \"' in \" + this);\n return found;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nNamespace._configure = function(Type_, Service_, Enum_) {\n Type = Type_;\n Service = Service_;\n Enum = Enum_;\n};\n","\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nvar util = require(33);\n\nvar Root; // cyclic\n\n/**\n * Constructs a new reflection object instance.\n * @classdesc Base class of all reflection objects.\n * @constructor\n * @param {string} name Object name\n * @param {Object.} [options] Declared options\n * @abstract\n */\nfunction ReflectionObject(name, options) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (options && !util.isObject(options))\n throw TypeError(\"options must be an object\");\n\n /**\n * Options.\n * @type {Object.|undefined}\n */\n this.options = options; // toJSON\n\n /**\n * Unique name within its namespace.\n * @type {string}\n */\n this.name = name;\n\n /**\n * Parent namespace.\n * @type {Namespace|null}\n */\n this.parent = null;\n\n /**\n * Whether already resolved or not.\n * @type {boolean}\n */\n this.resolved = false;\n\n /**\n * Comment text, if any.\n * @type {string|null}\n */\n this.comment = null;\n\n /**\n * Defining file name.\n * @type {string|null}\n */\n this.filename = null;\n}\n\nObject.defineProperties(ReflectionObject.prototype, {\n\n /**\n * Reference to the root namespace.\n * @name ReflectionObject#root\n * @type {Root}\n * @readonly\n */\n root: {\n get: function() {\n var ptr = this;\n while (ptr.parent !== null)\n ptr = ptr.parent;\n return ptr;\n }\n },\n\n /**\n * Full name including leading dot.\n * @name ReflectionObject#fullName\n * @type {string}\n * @readonly\n */\n fullName: {\n get: function() {\n var path = [ this.name ],\n ptr = this.parent;\n while (ptr) {\n path.unshift(ptr.name);\n ptr = ptr.parent;\n }\n return path.join(\".\");\n }\n }\n});\n\n/**\n * Converts this reflection object to its descriptor representation.\n * @returns {Object.} Descriptor\n * @abstract\n */\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\n throw Error(); // not implemented, shouldn't happen\n};\n\n/**\n * Called when this object is added to a parent.\n * @param {ReflectionObject} parent Parent added to\n * @returns {undefined}\n */\nReflectionObject.prototype.onAdd = function onAdd(parent) {\n if (this.parent && this.parent !== parent)\n this.parent.remove(this);\n this.parent = parent;\n this.resolved = false;\n var root = parent.root;\n if (root instanceof Root)\n root._handleAdd(this);\n};\n\n/**\n * Called when this object is removed from a parent.\n * @param {ReflectionObject} parent Parent removed from\n * @returns {undefined}\n */\nReflectionObject.prototype.onRemove = function onRemove(parent) {\n var root = parent.root;\n if (root instanceof Root)\n root._handleRemove(this);\n this.parent = null;\n this.resolved = false;\n};\n\n/**\n * Resolves this objects type references.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n if (this.root instanceof Root)\n this.resolved = true; // only if part of a root\n return this;\n};\n\n/**\n * Gets an option value.\n * @param {string} name Option name\n * @returns {*} Option value or `undefined` if not set\n */\nReflectionObject.prototype.getOption = function getOption(name) {\n if (this.options)\n return this.options[name];\n return undefined;\n};\n\n/**\n * Sets an option.\n * @param {string} name Option name\n * @param {*} value Option value\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (!ifNotSet || !this.options || this.options[name] === undefined)\n (this.options || (this.options = {}))[name] = value;\n return this;\n};\n\n/**\n * Sets multiple options.\n * @param {Object.} options Options to set\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\n if (options)\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\n this.setOption(keys[i], options[keys[i]], ifNotSet);\n return this;\n};\n\n/**\n * Converts this instance to its string representation.\n * @returns {string} Class name[, space, full name]\n */\nReflectionObject.prototype.toString = function toString() {\n var className = this.constructor.className,\n fullName = this.fullName;\n if (fullName.length)\n return className + \" \" + fullName;\n return className;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nReflectionObject._configure = function(Root_) {\n Root = Root_;\n};\n","\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(22);\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(15),\n util = require(33);\n\n/**\n * Constructs a new oneof instance.\n * @classdesc Reflected oneof.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Oneof name\n * @param {string[]|Object.} [fieldNames] Field names\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction OneOf(name, fieldNames, options, comment) {\n if (!Array.isArray(fieldNames)) {\n options = fieldNames;\n fieldNames = undefined;\n }\n ReflectionObject.call(this, name, options);\n\n /* istanbul ignore if */\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\n throw TypeError(\"fieldNames must be an Array\");\n\n /**\n * Field names that belong to this oneof.\n * @type {string[]}\n */\n this.oneof = fieldNames || []; // toJSON, marker\n\n /**\n * Fields that belong to this oneof as an array for iteration.\n * @type {Field[]}\n * @readonly\n */\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Oneof descriptor.\n * @interface IOneOf\n * @property {Array.} oneof Oneof field names\n * @property {Object.} [options] Oneof options\n */\n\n/**\n * Constructs a oneof from a oneof descriptor.\n * @param {string} name Oneof name\n * @param {IOneOf} json Oneof descriptor\n * @returns {OneOf} Created oneof\n * @throws {TypeError} If arguments are invalid\n */\nOneOf.fromJSON = function fromJSON(name, json) {\n return new OneOf(name, json.oneof, json.options, json.comment);\n};\n\n/**\n * Converts this oneof to a oneof descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IOneOf} Oneof descriptor\n */\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"oneof\" , this.oneof,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Adds the fields of the specified oneof to the parent if not already done so.\n * @param {OneOf} oneof The oneof\n * @returns {undefined}\n * @inner\n * @ignore\n */\nfunction addFieldsToParent(oneof) {\n if (oneof.parent)\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\n if (!oneof.fieldsArray[i].parent)\n oneof.parent.add(oneof.fieldsArray[i]);\n}\n\n/**\n * Adds a field to this oneof and removes it from its current parent, if any.\n * @param {Field} field Field to add\n * @returns {OneOf} `this`\n */\nOneOf.prototype.add = function add(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n if (field.parent && field.parent !== this.parent)\n field.parent.remove(field);\n this.oneof.push(field.name);\n this.fieldsArray.push(field);\n field.partOf = this; // field.parent remains null\n addFieldsToParent(this);\n return this;\n};\n\n/**\n * Removes a field from this oneof and puts it back to the oneof's parent.\n * @param {Field} field Field to remove\n * @returns {OneOf} `this`\n */\nOneOf.prototype.remove = function remove(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n var index = this.fieldsArray.indexOf(field);\n\n /* istanbul ignore if */\n if (index < 0)\n throw Error(field + \" is not a member of \" + this);\n\n this.fieldsArray.splice(index, 1);\n index = this.oneof.indexOf(field.name);\n\n /* istanbul ignore else */\n if (index > -1) // theoretical\n this.oneof.splice(index, 1);\n\n field.partOf = null;\n return this;\n};\n\n/**\n * @override\n */\nOneOf.prototype.onAdd = function onAdd(parent) {\n ReflectionObject.prototype.onAdd.call(this, parent);\n var self = this;\n // Collect present fields\n for (var i = 0; i < this.oneof.length; ++i) {\n var field = parent.get(this.oneof[i]);\n if (field && !field.partOf) {\n field.partOf = self;\n self.fieldsArray.push(field);\n }\n }\n // Add not yet present fields\n addFieldsToParent(this);\n};\n\n/**\n * @override\n */\nOneOf.prototype.onRemove = function onRemove(parent) {\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\n if ((field = this.fieldsArray[i]).parent)\n field.parent.remove(field);\n ReflectionObject.prototype.onRemove.call(this, parent);\n};\n\n/**\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\n * @typedef OneOfDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} oneofName OneOf name\n * @returns {undefined}\n */\n\n/**\n * OneOf decorator (TypeScript).\n * @function\n * @param {...string} fieldNames Field names\n * @returns {OneOfDecorator} Decorator function\n * @template T extends string\n */\nOneOf.d = function decorateOneOf() {\n var fieldNames = new Array(arguments.length),\n index = 0;\n while (index < arguments.length)\n fieldNames[index] = arguments[index++];\n return function oneOfDecorator(prototype, oneofName) {\n util.decorateType(prototype.constructor)\n .add(new OneOf(oneofName, fieldNames));\n Object.defineProperty(prototype, oneofName, {\n get: util.oneOfGetter(fieldNames),\n set: util.oneOfSetter(fieldNames)\n });\n };\n};\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(35);\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(24);\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(35);\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\n/* istanbul ignore else */\nif (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n","\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(21);\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field = require(15),\n Enum = require(14),\n OneOf = require(23),\n util = require(33);\n\nvar Type, // cyclic\n parse, // might be excluded\n common; // \"\n\n/**\n * Constructs a new root namespace instance.\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\n * @extends NamespaceBase\n * @constructor\n * @param {Object.} [options] Top level options\n */\nfunction Root(options) {\n Namespace.call(this, \"\", options);\n\n /**\n * Deferred extension fields.\n * @type {Field[]}\n */\n this.deferred = [];\n\n /**\n * Resolved file names of loaded files.\n * @type {string[]}\n */\n this.files = [];\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Nameespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root) {\n if (!root)\n root = new Root();\n if (json.options)\n root.setOptions(json.options);\n return root.addJSON(json.nested);\n};\n\n/**\n * Resolves the path of an imported file, relative to the importing origin.\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\n * @function\n * @param {string} origin The file name of the importing file\n * @param {string} target The file name being imported\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\n */\nRoot.prototype.resolvePath = util.path.resolve;\n\n// A symbol-like function to safely signal synchronous loading\n/* istanbul ignore next */\nfunction SYNC() {} // eslint-disable-line no-empty-function\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} options Parse options\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.load = function load(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = undefined;\n }\n var self = this;\n if (!callback)\n return util.asPromise(load, self, filename, options);\n\n var sync = callback === SYNC; // undocumented\n\n // Finishes loading by calling the callback (exactly once)\n function finish(err, root) {\n /* istanbul ignore if */\n if (!callback)\n return;\n var cb = callback;\n callback = null;\n if (sync)\n throw err;\n cb(err, root);\n }\n\t\n // Bundled definition existence checking\n function getBundledFileName(filename) {\n var idx = filename.lastIndexOf(\"google/protobuf/\");\n if (idx > -1) {\n var altname = filename.substring(idx);\n if (altname in common) return altname; \n }\n return null;\n }\n\n // Processes a single file\n function process(filename, source) {\n try {\n if (util.isString(source) && source.charAt(0) === \"{\")\n source = JSON.parse(source);\n if (!util.isString(source))\n self.setOptions(source.options).addJSON(source.nested);\n else {\n parse.filename = filename;\n var parsed = parse(source, self, options),\n resolved,\n i = 0;\n if (parsed.imports)\n for (; i < parsed.imports.length; ++i)\n if (resolved = (getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i])))\n fetch(resolved);\n if (parsed.weakImports)\n for (i = 0; i < parsed.weakImports.length; ++i)\n if (resolved = (getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i])))\n fetch(resolved, true);\n }\n } catch (err) {\n finish(err);\n }\n if (!sync && !queued)\n finish(null, self); // only once anyway\n }\n\n // Fetches a single file\n function fetch(filename, weak) {\n\n // Skip if already loaded / attempted\n if (self.files.indexOf(filename) > -1)\n return;\n self.files.push(filename);\n\n // Shortcut bundled definitions\n if (filename in common) {\n if (sync)\n process(filename, common[filename]);\n else {\n ++queued;\n setTimeout(function() {\n --queued;\n process(filename, common[filename]);\n });\n }\n return;\n }\n\n // Otherwise fetch from disk or network\n if (sync) {\n var source;\n try {\n source = util.fs.readFileSync(filename).toString(\"utf8\");\n } catch (err) {\n if (!weak)\n finish(err);\n return;\n }\n process(filename, source);\n } else {\n ++queued;\n util.fetch(filename, function(err, source) {\n --queued;\n /* istanbul ignore if */\n if (!callback)\n return; // terminated meanwhile\n if (err) {\n /* istanbul ignore else */\n if (!weak)\n finish(err);\n else if (!queued) // can't be covered reliably\n finish(null, self);\n return;\n }\n process(filename, source);\n });\n }\n }\n var queued = 0;\n\n // Assembling the root namespace doesn't require working type\n // references anymore, so we can load everything in parallel\n if (util.isString(filename))\n filename = [ filename ];\n for (var i = 0, resolved; i < filename.length; ++i)\n if (resolved = self.resolvePath(\"\", filename[i]))\n fetch(resolved);\n\n if (sync)\n return self;\n if (!queued)\n finish(null, self);\n return undefined;\n};\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Promise} Promise\n * @variation 3\n */\n// function load(filename:string, [options:IParseOptions]):Promise\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\n * @function Root#loadSync\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n */\nRoot.prototype.loadSync = function loadSync(filename, options) {\n if (!util.isNode)\n throw Error(\"not supported\");\n return this.load(filename, options, SYNC);\n};\n\n/**\n * @override\n */\nRoot.prototype.resolveAll = function resolveAll() {\n if (this.deferred.length)\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\n }).join(\", \"));\n return Namespace.prototype.resolveAll.call(this);\n};\n\n// only uppercased (and thus conflict-free) children are exposed, see below\nvar exposeRe = /^[A-Z]/;\n\n/**\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\n * @param {Root} root Root instance\n * @param {Field} field Declaring extension field witin the declaring type\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\n * @inner\n * @ignore\n */\nfunction tryHandleExtension(root, field) {\n var extendedType = field.parent.lookup(field.extend);\n if (extendedType) {\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\n sisterField.declaringField = field;\n field.extensionField = sisterField;\n extendedType.add(sisterField);\n return true;\n }\n return false;\n}\n\n/**\n * Called when any object is added to this root or its sub-namespaces.\n * @param {ReflectionObject} object Object added\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleAdd = function _handleAdd(object) {\n if (object instanceof Field) {\n\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\n if (!tryHandleExtension(this, object))\n this.deferred.push(object);\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n object.parent[object.name] = object.values; // expose enum values as property of its parent\n\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\n\n if (object instanceof Type) // Try to handle any deferred extensions\n for (var i = 0; i < this.deferred.length;)\n if (tryHandleExtension(this, this.deferred[i]))\n this.deferred.splice(i, 1);\n else\n ++i;\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\n this._handleAdd(object._nestedArray[j]);\n if (exposeRe.test(object.name))\n object.parent[object.name] = object; // expose namespace as property of its parent\n }\n\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\n // a static module with reflection-based solutions where the condition is met.\n};\n\n/**\n * Called when any object is removed from this root or its sub-namespaces.\n * @param {ReflectionObject} object Object removed\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleRemove = function _handleRemove(object) {\n if (object instanceof Field) {\n\n if (/* an extension field */ object.extend !== undefined) {\n if (/* already handled */ object.extensionField) { // remove its sister field\n object.extensionField.parent.remove(object.extensionField);\n object.extensionField = null;\n } else { // cancel the extension\n var index = this.deferred.indexOf(object);\n /* istanbul ignore else */\n if (index > -1)\n this.deferred.splice(index, 1);\n }\n }\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose enum values\n\n } else if (object instanceof Namespace) {\n\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\n this._handleRemove(object._nestedArray[i]);\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose namespaces\n\n }\n};\n\n// Sets up cyclic dependencies (called in index-light)\nRoot._configure = function(Type_, parse_, common_) {\n Type = Type_;\n parse = parse_;\n common = common_;\n};\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(29);\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(35);\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(21);\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(20),\n util = require(33),\n rpc = require(28);\n\n/**\n * Constructs a new service instance.\n * @classdesc Reflected service.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Service name\n * @param {Object.} [options] Service options\n * @throws {TypeError} If arguments are invalid\n */\nfunction Service(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Service methods.\n * @type {Object.}\n */\n this.methods = {}; // toJSON, marker\n\n /**\n * Cached methods as an array.\n * @type {Method[]|null}\n * @private\n */\n this._methodsArray = null;\n}\n\n/**\n * Service descriptor.\n * @interface IService\n * @extends INamespace\n * @property {Object.} methods Method descriptors\n */\n\n/**\n * Constructs a service from a service descriptor.\n * @param {string} name Service name\n * @param {IService} json Service descriptor\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json) {\n var service = new Service(name, json.options);\n /* istanbul ignore else */\n if (json.methods)\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\n if (json.nested)\n service.addJSON(json.nested);\n service.comment = json.comment;\n return service;\n};\n\n/**\n * Converts this service to a service descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IService} Service descriptor\n */\nService.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Methods of this service as an array for iteration.\n * @name Service#methodsArray\n * @type {Method[]}\n * @readonly\n */\nObject.defineProperty(Service.prototype, \"methodsArray\", {\n get: function() {\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\n }\n});\n\nfunction clearCache(service) {\n service._methodsArray = null;\n return service;\n}\n\n/**\n * @override\n */\nService.prototype.get = function get(name) {\n return this.methods[name]\n || Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n var methods = this.methodsArray;\n for (var i = 0; i < methods.length; ++i)\n methods[i].resolve();\n return Namespace.prototype.resolve.call(this);\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\n\n /* istanbul ignore if */\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Method) {\n this.methods[object.name] = object;\n object.parent = this;\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * @override\n */\nService.prototype.remove = function remove(object) {\n if (object instanceof Method) {\n\n /* istanbul ignore if */\n if (this.methods[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.methods[object.name];\n object.parent = null;\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Creates a runtime service using the specified rpc implementation.\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\n */\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\n m: method,\n q: method.resolvedRequestType.ctor,\n s: method.resolvedResponseType.ctor\n });\n }\n return rpcService;\n};\n","\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(21);\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum = require(14),\n OneOf = require(23),\n Field = require(15),\n MapField = require(18),\n Service = require(30),\n Message = require(19),\n Reader = require(24),\n Writer = require(38),\n util = require(33),\n encoder = require(13),\n decoder = require(12),\n verifier = require(36),\n converter = require(11),\n wrappers = require(37);\n\n/**\n * Constructs a new reflected message type instance.\n * @classdesc Reflected message type.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Message name\n * @param {Object.} [options] Declared options\n */\nfunction Type(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Message fields.\n * @type {Object.}\n */\n this.fields = {}; // toJSON, marker\n\n /**\n * Oneofs declared within this namespace, if any.\n * @type {Object.}\n */\n this.oneofs = undefined; // toJSON\n\n /**\n * Extension ranges, if any.\n * @type {number[][]}\n */\n this.extensions = undefined; // toJSON\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n /*?\n * Whether this type is a legacy group.\n * @type {boolean|undefined}\n */\n this.group = undefined; // toJSON\n\n /**\n * Cached fields by id.\n * @type {Object.|null}\n * @private\n */\n this._fieldsById = null;\n\n /**\n * Cached fields as an array.\n * @type {Field[]|null}\n * @private\n */\n this._fieldsArray = null;\n\n /**\n * Cached oneofs as an array.\n * @type {OneOf[]|null}\n * @private\n */\n this._oneofsArray = null;\n\n /**\n * Cached constructor.\n * @type {Constructor<{}>}\n * @private\n */\n this._ctor = null;\n}\n\nObject.defineProperties(Type.prototype, {\n\n /**\n * Message fields by id.\n * @name Type#fieldsById\n * @type {Object.}\n * @readonly\n */\n fieldsById: {\n get: function() {\n\n /* istanbul ignore if */\n if (this._fieldsById)\n return this._fieldsById;\n\n this._fieldsById = {};\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\n var field = this.fields[names[i]],\n id = field.id;\n\n /* istanbul ignore if */\n if (this._fieldsById[id])\n throw Error(\"duplicate id \" + id + \" in \" + this);\n\n this._fieldsById[id] = field;\n }\n return this._fieldsById;\n }\n },\n\n /**\n * Fields of this message as an array for iteration.\n * @name Type#fieldsArray\n * @type {Field[]}\n * @readonly\n */\n fieldsArray: {\n get: function() {\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\n }\n },\n\n /**\n * Oneofs of this message as an array for iteration.\n * @name Type#oneofsArray\n * @type {OneOf[]}\n * @readonly\n */\n oneofsArray: {\n get: function() {\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\n }\n },\n\n /**\n * The registered constructor, if any registered, otherwise a generic constructor.\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\n * @name Type#ctor\n * @type {Constructor<{}>}\n */\n ctor: {\n get: function() {\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\n },\n set: function(ctor) {\n\n // Ensure proper prototype\n var prototype = ctor.prototype;\n if (!(prototype instanceof Message)) {\n (ctor.prototype = new Message()).constructor = ctor;\n util.merge(ctor.prototype, prototype);\n }\n\n // Classes and messages reference their reflected type\n ctor.$type = ctor.prototype.$type = this;\n\n // Mix in static methods\n util.merge(ctor, Message, true);\n\n this._ctor = ctor;\n\n // Messages have non-enumerable default values on their prototype\n var i = 0;\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\n this._fieldsArray[i].resolve(); // ensures a proper value\n\n // Messages have non-enumerable getters and setters for each virtual oneof field\n var ctorProperties = {};\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\n ctorProperties[this._oneofsArray[i].resolve().name] = {\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\n };\n if (i)\n Object.defineProperties(ctor.prototype, ctorProperties);\n }\n }\n});\n\n/**\n * Generates a constructor function for the specified type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nType.generateConstructor = function generateConstructor(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"p\"], mtype.name);\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\n if ((field = mtype._fieldsArray[i]).map) gen\n (\"this%s={}\", util.safeProp(field.name));\n else if (field.repeated) gen\n (\"this%s=[]\", util.safeProp(field.name));\n return gen\n (\"if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors\n * @property {Object.} fields Field descriptors\n * @property {number[][]} [extensions] Extension ranges\n * @property {number[][]} [reserved] Reserved ranges\n * @property {boolean} [group=false] Whether a legacy group or not\n */\n\n/**\n * Creates a message type from a message type descriptor.\n * @param {string} name Message name\n * @param {IType} json Message type descriptor\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json) {\n var type = new Type(name, json.options);\n type.extensions = json.extensions;\n type.reserved = json.reserved;\n var names = Object.keys(json.fields),\n i = 0;\n for (; i < names.length; ++i)\n type.add(\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\n ? MapField.fromJSON\n : Field.fromJSON )(names[i], json.fields[names[i]])\n );\n if (json.oneofs)\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\n if (json.nested)\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\n var nested = json.nested[names[i]];\n type.add( // most to least likely\n ( nested.id !== undefined\n ? Field.fromJSON\n : nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n if (json.extensions && json.extensions.length)\n type.extensions = json.extensions;\n if (json.reserved && json.reserved.length)\n type.reserved = json.reserved;\n if (json.group)\n type.group = true;\n if (json.comment)\n type.comment = json.comment;\n return type;\n};\n\n/**\n * Converts this message type to a message type descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IType} Message type descriptor\n */\nType.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"group\" , this.group || undefined,\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nType.prototype.resolveAll = function resolveAll() {\n var fields = this.fieldsArray, i = 0;\n while (i < fields.length)\n fields[i++].resolve();\n var oneofs = this.oneofsArray; i = 0;\n while (i < oneofs.length)\n oneofs[i++].resolve();\n return Namespace.prototype.resolveAll.call(this);\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n return this.fields[name]\n || this.oneofs && this.oneofs[name]\n || this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Adds a nested object to this type.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\n */\nType.prototype.add = function add(object) {\n\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Field && object.extend === undefined) {\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\n // The root object takes care of adding distinct sister-fields to the respective extended\n // type instead.\n\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\n if (this.isReservedId(object.id))\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\n if (this.isReservedName(object.name))\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n\n if (object.parent)\n object.parent.remove(object);\n this.fields[object.name] = object;\n object.message = this;\n object.onAdd(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n if (!this.oneofs)\n this.oneofs = {};\n this.oneofs[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * Removes a nested object from this type.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this type\n */\nType.prototype.remove = function remove(object) {\n if (object instanceof Field && object.extend === undefined) {\n // See Type#add for the reason why extension fields are excluded here.\n\n /* istanbul ignore if */\n if (!this.fields || this.fields[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.fields[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n\n /* istanbul ignore if */\n if (!this.oneofs || this.oneofs[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.oneofs[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message<{}>} Message instance\n */\nType.prototype.create = function create(properties) {\n return new this.ctor(properties);\n};\n\n/**\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\n * @returns {Type} `this`\n */\nType.prototype.setup = function setup() {\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\n // multiple times (V8, soft-deopt prototype-check).\n\n var fullName = this.fullName,\n types = [];\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\n types.push(this._fieldsArray[i].resolve().resolvedType);\n\n // Replace setup methods with type-specific generated functions\n this.encode = encoder(this)({\n Writer : Writer,\n types : types,\n util : util\n });\n this.decode = decoder(this)({\n Reader : Reader,\n types : types,\n util : util\n });\n this.verify = verifier(this)({\n types : types,\n util : util\n });\n this.fromObject = converter.fromObject(this)({\n types : types,\n util : util\n });\n this.toObject = converter.toObject(this)({\n types : types,\n util : util\n });\n\n // Inject custom wrappers for common types\n var wrapper = wrappers[fullName];\n if (wrapper) {\n var originalThis = Object.create(this);\n // if (wrapper.fromObject) {\n originalThis.fromObject = this.fromObject;\n this.fromObject = wrapper.fromObject.bind(originalThis);\n // }\n // if (wrapper.toObject) {\n originalThis.toObject = this.toObject;\n this.toObject = wrapper.toObject.bind(originalThis);\n // }\n }\n\n return this;\n};\n\n/**\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encode = function encode_setup(message, writer) {\n return this.setup().encode(message, writer); // overrides this method\n};\n\n/**\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\n};\n\n/**\n * Decodes a message of this type.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Length of the message, if known beforehand\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError<{}>} If required fields are missing\n */\nType.prototype.decode = function decode_setup(reader, length) {\n return this.setup().decode(reader, length); // overrides this method\n};\n\n/**\n * Decodes a message of this type preceeded by its byte length as a varint.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError} If required fields are missing\n */\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof Reader))\n reader = Reader.create(reader);\n return this.decode(reader, reader.uint32());\n};\n\n/**\n * Verifies that field values are valid and that required fields are present.\n * @param {Object.} message Plain object to verify\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message) {\n return this.setup().verify(message); // overrides this method\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object to convert\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object) {\n return this.setup().fromObject(object);\n};\n\n/**\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\n * @interface IConversionOptions\n * @property {Function} [longs] Long conversion type.\n * Valid values are `String` and `Number` (the global types).\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\n * @property {Function} [enums] Enum value conversion type.\n * Only valid value is `String` (the global type).\n * Defaults to copy the present value, which is the numeric id.\n * @property {Function} [bytes] Bytes value conversion type.\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\n */\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\nType.prototype.toObject = function toObject(message, options) {\n return this.setup().toObject(message, options);\n};\n\n/**\n * Decorator function as returned by {@link Type.d} (TypeScript).\n * @typedef TypeDecorator\n * @type {function}\n * @param {Constructor} target Target constructor\n * @returns {undefined}\n * @template T extends Message\n */\n\n/**\n * Type decorator (TypeScript).\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {TypeDecorator} Decorator function\n * @template T extends Message\n */\nType.d = function decorateType(typeName) {\n return function typeDecorator(target) {\n util.decorateType(target, typeName);\n };\n};\n","\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(33);\n\nvar s = [\n \"double\", // 0\n \"float\", // 1\n \"int32\", // 2\n \"uint32\", // 3\n \"sint32\", // 4\n \"fixed32\", // 5\n \"sfixed32\", // 6\n \"int64\", // 7\n \"uint64\", // 8\n \"sint64\", // 9\n \"fixed64\", // 10\n \"sfixed64\", // 11\n \"bool\", // 12\n \"string\", // 13\n \"bytes\" // 14\n];\n\nfunction bake(values, offset) {\n var i = 0, o = {};\n offset |= 0;\n while (i < values.length) o[s[i + offset]] = values[i++];\n return o;\n}\n\n/**\n * Basic type wire types.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n * @property {number} bytes=2 Ldelim wire type\n */\ntypes.basic = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2,\n /* bytes */ 2\n]);\n\n/**\n * Basic type defaults.\n * @type {Object.}\n * @const\n * @property {number} double=0 Double default\n * @property {number} float=0 Float default\n * @property {number} int32=0 Int32 default\n * @property {number} uint32=0 Uint32 default\n * @property {number} sint32=0 Sint32 default\n * @property {number} fixed32=0 Fixed32 default\n * @property {number} sfixed32=0 Sfixed32 default\n * @property {number} int64=0 Int64 default\n * @property {number} uint64=0 Uint64 default\n * @property {number} sint64=0 Sint32 default\n * @property {number} fixed64=0 Fixed64 default\n * @property {number} sfixed64=0 Sfixed64 default\n * @property {boolean} bool=false Bool default\n * @property {string} string=\"\" String default\n * @property {Array.} bytes=Array(0) Bytes default\n * @property {null} message=null Message default\n */\ntypes.defaults = bake([\n /* double */ 0,\n /* float */ 0,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 0,\n /* sfixed32 */ 0,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 0,\n /* sfixed64 */ 0,\n /* bool */ false,\n /* string */ \"\",\n /* bytes */ util.emptyArray,\n /* message */ null\n]);\n\n/**\n * Basic long type wire types.\n * @type {Object.}\n * @const\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n */\ntypes.long = bake([\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1\n], 7);\n\n/**\n * Allowed types for map keys with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n */\ntypes.mapKey = bake([\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2\n], 2);\n\n/**\n * Allowed types for packed repeated fields with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n */\ntypes.packed = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0\n]);\n","\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(35);\n\nvar roots = require(27);\n\nvar Type, // cyclic\n Enum;\n\nutil.codegen = require(3);\nutil.fetch = require(5);\nutil.path = require(8);\n\n/**\n * Node's fs module if available.\n * @type {Object.}\n */\nutil.fs = util.inquire(\"fs\");\n\n/**\n * Converts an object's values to an array.\n * @param {Object.} object Object to convert\n * @returns {Array.<*>} Converted array\n */\nutil.toArray = function toArray(object) {\n if (object) {\n var keys = Object.keys(object),\n array = new Array(keys.length),\n index = 0;\n while (index < keys.length)\n array[index] = object[keys[index++]];\n return array;\n }\n return [];\n};\n\n/**\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\n * @param {Array.<*>} array Array to convert\n * @returns {Object.} Converted object\n */\nutil.toObject = function toObject(array) {\n var object = {},\n index = 0;\n while (index < array.length) {\n var key = array[index++],\n val = array[index++];\n if (val !== undefined)\n object[key] = val;\n }\n return object;\n};\n\nvar safePropBackslashRe = /\\\\/g,\n safePropQuoteRe = /\"/g;\n\n/**\n * Tests whether the specified name is a reserved word in JS.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nutil.isReserved = function isReserved(name) {\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\n};\n\n/**\n * Returns a safe property accessor for the specified property name.\n * @param {string} prop Property name\n * @returns {string} Safe accessor\n */\nutil.safeProp = function safeProp(prop) {\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\n return \".\" + prop;\n};\n\n/**\n * Converts the first character of a string to upper case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.ucFirst = function ucFirst(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar camelCaseRe = /_([a-z])/g;\n\n/**\n * Converts a string to camel case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.camelCase = function camelCase(str) {\n return str.substring(0, 1)\n + str.substring(1)\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\n};\n\n/**\n * Compares reflected fields by id.\n * @param {Field} a First field\n * @param {Field} b Second field\n * @returns {number} Comparison value\n */\nutil.compareFieldsById = function compareFieldsById(a, b) {\n return a.id - b.id;\n};\n\n/**\n * Decorator helper for types (TypeScript).\n * @param {Constructor} ctor Constructor function\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {Type} Reflected type\n * @template T extends Message\n * @property {Root} root Decorators root\n */\nutil.decorateType = function decorateType(ctor, typeName) {\n\n /* istanbul ignore if */\n if (ctor.$type) {\n if (typeName && ctor.$type.name !== typeName) {\n util.decorateRoot.remove(ctor.$type);\n ctor.$type.name = typeName;\n util.decorateRoot.add(ctor.$type);\n }\n return ctor.$type;\n }\n\n /* istanbul ignore next */\n if (!Type)\n Type = require(31);\n\n var type = new Type(typeName || ctor.name);\n util.decorateRoot.add(type);\n type.ctor = ctor; // sets up .encode, .decode etc.\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\n return type;\n};\n\nvar decorateEnumIndex = 0;\n\n/**\n * Decorator helper for enums (TypeScript).\n * @param {Object} object Enum object\n * @returns {Enum} Reflected enum\n */\nutil.decorateEnum = function decorateEnum(object) {\n\n /* istanbul ignore if */\n if (object.$type)\n return object.$type;\n\n /* istanbul ignore next */\n if (!Enum)\n Enum = require(14);\n\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\n util.decorateRoot.add(enm);\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\n return enm;\n};\n\n/**\n * Decorator root (TypeScript).\n * @name util.decorateRoot\n * @type {Root}\n * @readonly\n */\nObject.defineProperty(util, \"decorateRoot\", {\n get: function() {\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(26))());\n }\n});\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(35);\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(1);\n\n// converts to / from base64 encoded strings\nutil.base64 = require(2);\n\n// base class of rpc.Service\nutil.EventEmitter = require(4);\n\n// float handling accross browsers\nutil.float = require(6);\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(7);\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(10);\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(9);\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(34);\n\n// global object reference\nutil.global = typeof window !== \"undefined\" && window\n || typeof global !== \"undefined\" && global\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n * @const\n */\nutil.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node);\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: (new Error()).stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = verifier;\n\nvar Enum = require(14),\n util = require(33);\n\nfunction invalid(field, expected) {\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\n}\n\n/**\n * Generates a partial value verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\n /* eslint-disable no-unexpected-multiline */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref)\n (\"default:\")\n (\"return%j\", invalid(field, \"enum value\"));\n for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen\n (\"case %i:\", field.resolvedType.values[keys[j]]);\n gen\n (\"break\")\n (\"}\");\n } else {\n gen\n (\"{\")\n (\"var e=types[%i].verify(%s);\", fieldIndex, ref)\n (\"if(e)\")\n (\"return%j+e\", field.name + \".\")\n (\"}\");\n }\n } else {\n switch (field.type) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.isInteger(%s))\", ref)\n (\"return%j\", invalid(field, \"integer\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\n (\"return%j\", invalid(field, \"integer|Long\"));\n break;\n case \"float\":\n case \"double\": gen\n (\"if(typeof %s!==\\\"number\\\")\", ref)\n (\"return%j\", invalid(field, \"number\"));\n break;\n case \"bool\": gen\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\n (\"return%j\", invalid(field, \"boolean\"));\n break;\n case \"string\": gen\n (\"if(!util.isString(%s))\", ref)\n (\"return%j\", invalid(field, \"string\"));\n break;\n case \"bytes\": gen\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\n (\"return%j\", invalid(field, \"buffer\"));\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a partial key verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyKey(gen, field, ref) {\n /* eslint-disable no-unexpected-multiline */\n switch (field.keyType) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.key32Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"integer key\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.key64Re.test(%s))\", ref) // see comment above: x is ok, d is not\n (\"return%j\", invalid(field, \"integer|Long key\"));\n break;\n case \"bool\": gen\n (\"if(!util.key2Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"boolean key\"));\n break;\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a verifier specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction verifier(mtype) {\n /* eslint-disable no-unexpected-multiline */\n\n var gen = util.codegen([\"m\"], mtype.name + \"$verify\")\n (\"if(typeof m!==\\\"object\\\"||m===null)\")\n (\"return%j\", \"object expected\");\n var oneofs = mtype.oneofsArray,\n seenFirstField = {};\n if (oneofs.length) gen\n (\"var p={}\");\n\n for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n ref = \"m\" + util.safeProp(field.name);\n\n if (field.optional) gen\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name); // !== undefined && !== null\n\n // map fields\n if (field.map) { gen\n (\"if(!util.isObject(%s))\", ref)\n (\"return%j\", invalid(field, \"object\"))\n (\"var k=Object.keys(%s)\", ref)\n (\"for(var i=0;i}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(19);\n\n/**\n * From object converter part of an {@link IWrapper}.\n * @typedef WrapperFromObjectConverter\n * @type {function}\n * @param {Object.} object Plain object\n * @returns {Message<{}>} Message instance\n * @this Type\n */\n\n/**\n * To object converter part of an {@link IWrapper}.\n * @typedef WrapperToObjectConverter\n * @type {function}\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @this Type\n */\n\n/**\n * Common type wrapper part of {@link wrappers}.\n * @interface IWrapper\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\n * @property {WrapperToObjectConverter} [toObject] To object converter\n */\n\n// Custom wrapper for Any\nwrappers[\".google.protobuf.Any\"] = {\n\n fromObject: function(object) {\n\n // unwrap value type if mapped\n if (object && object[\"@type\"]) {\n var type = this.lookup(object[\"@type\"]);\n /* istanbul ignore else */\n if (type) {\n // type_url does not accept leading \".\"\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\n object[\"@type\"].substr(1) : object[\"@type\"];\n // type_url prefix is optional, but path seperator is required\n return this.create({\n type_url: \"/\" + type_url,\n value: type.encode(type.fromObject(object)).finish()\n });\n }\n }\n\n return this.fromObject(object);\n },\n\n toObject: function(message, options) {\n\n // decode value if requested and unmapped\n if (options && options.json && message.type_url && message.value) {\n // Only use fully qualified type name after the last '/'\n var name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type)\n message = type.decode(message.value);\n }\n\n // wrap value if unmapped\n if (!(message instanceof this.ctor) && message instanceof Message) {\n var object = message.$type.toObject(message, options);\n object[\"@type\"] = message.$type.fullName;\n return object;\n }\n\n return this.toObject(message, options);\n }\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(35);\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(38);\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(35);\n\nvar Buffer = util.Buffer;\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\nBufferWriter.alloc = function alloc_buffer(size) {\n return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size);\n};\n\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else\n buf.utf8Write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/dist/minimal/README.md b/gateway/node_modules/@apollo/protobufjs/dist/minimal/README.md deleted file mode 100644 index 5eeb571..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/minimal/README.md +++ /dev/null @@ -1,31 +0,0 @@ -This folder contains prebuilt browser versions of the minimal library suitable for use with statically generated code only. When sending pull requests, it is not required to update these. - -Prebuilt files are in source control to enable pain-free frontend respectively CDN usage: - -CDN usage ---------- - -Development: -``` - -``` - -Production: -``` - -``` - -**NOTE:** Remember to replace the version tag with the exact [release](https://github.com/dcodeIO/protobuf.js/tags) your project depends upon. - -Frontend usage --------------- - -Development: -``` - -``` - -Production: -``` - -``` diff --git a/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.js b/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.js deleted file mode 100644 index ab42242..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.js +++ /dev/null @@ -1,2675 +0,0 @@ -/*! - * protobuf.js v1.0.5 (c) 2016, daniel wirtz - * compiled fri, 14 aug 2020 05:32:49 utc - * licensed under the bsd-3-clause license - * see: https://github.com/apollographql/protobuf.js for details - */ -(function(undefined){"use strict";(function prelude(modules, cache, entries) { - - // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS - // sources through a conflict-free require shim and is again wrapped within an iife that - // provides a minification-friendly `undefined` var plus a global "use strict" directive - // so that minification can remove the directives of each module. - - function $require(name) { - var $module = cache[name]; - if (!$module) - modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports); - return $module.exports; - } - - var protobuf = $require(entries[0]); - - // Expose globally - protobuf.util.global.protobuf = protobuf; - - // Be nice to AMD - if (typeof define === "function" && define.amd) - define(["long"], function(Long) { - if (Long && Long.isLong) { - protobuf.util.Long = Long; - protobuf.configure(); - } - return protobuf; - }); - - // Be nice to CommonJS - if (typeof module === "object" && module && module.exports) - module.exports = protobuf; - -})/* end of prelude */({1:[function(require,module,exports){ -"use strict"; -module.exports = asPromise; - -/** - * Callback as used by {@link util.asPromise}. - * @typedef asPromiseCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {...*} params Additional arguments - * @returns {undefined} - */ - -/** - * Returns a promise from a node-style callback function. - * @memberof util - * @param {asPromiseCallback} fn Function to call - * @param {*} ctx Function context - * @param {...*} params Function arguments - * @returns {Promise<*>} Promisified function - */ -function asPromise(fn, ctx/*, varargs */) { - var params = new Array(arguments.length - 1), - offset = 0, - index = 2, - pending = true; - while (index < arguments.length) - params[offset++] = arguments[index++]; - return new Promise(function executor(resolve, reject) { - params[offset] = function callback(err/*, varargs */) { - if (pending) { - pending = false; - if (err) - reject(err); - else { - var params = new Array(arguments.length - 1), - offset = 0; - while (offset < params.length) - params[offset++] = arguments[offset]; - resolve.apply(null, params); - } - } - }; - try { - fn.apply(ctx || null, params); - } catch (err) { - if (pending) { - pending = false; - reject(err); - } - } - }); -} - -},{}],2:[function(require,module,exports){ -"use strict"; - -/** - * A minimal base64 implementation for number arrays. - * @memberof util - * @namespace - */ -var base64 = exports; - -/** - * Calculates the byte length of a base64 encoded string. - * @param {string} string Base64 encoded string - * @returns {number} Byte length - */ -base64.length = function length(string) { - var p = string.length; - if (!p) - return 0; - var n = 0; - while (--p % 4 > 1 && string.charAt(p) === "=") - ++n; - return Math.ceil(string.length * 3) / 4 - n; -}; - -// Base64 encoding table -var b64 = new Array(64); - -// Base64 decoding table -var s64 = new Array(123); - -// 65..90, 97..122, 48..57, 43, 47 -for (var i = 0; i < 64;) - s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++; - -/** - * Encodes a buffer to a base64 encoded string. - * @param {Uint8Array} buffer Source buffer - * @param {number} start Source start - * @param {number} end Source end - * @returns {string} Base64 encoded string - */ -base64.encode = function encode(buffer, start, end) { - var parts = null, - chunk = []; - var i = 0, // output index - j = 0, // goto index - t; // temporary - while (start < end) { - var b = buffer[start++]; - switch (j) { - case 0: - chunk[i++] = b64[b >> 2]; - t = (b & 3) << 4; - j = 1; - break; - case 1: - chunk[i++] = b64[t | b >> 4]; - t = (b & 15) << 2; - j = 2; - break; - case 2: - chunk[i++] = b64[t | b >> 6]; - chunk[i++] = b64[b & 63]; - j = 0; - break; - } - if (i > 8191) { - (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk)); - i = 0; - } - } - if (j) { - chunk[i++] = b64[t]; - chunk[i++] = 61; - if (j === 1) - chunk[i++] = 61; - } - if (parts) { - if (i) - parts.push(String.fromCharCode.apply(String, chunk.slice(0, i))); - return parts.join(""); - } - return String.fromCharCode.apply(String, chunk.slice(0, i)); -}; - -var invalidEncoding = "invalid encoding"; - -/** - * Decodes a base64 encoded string to a buffer. - * @param {string} string Source string - * @param {Uint8Array} buffer Destination buffer - * @param {number} offset Destination offset - * @returns {number} Number of bytes written - * @throws {Error} If encoding is invalid - */ -base64.decode = function decode(string, buffer, offset) { - var start = offset; - var j = 0, // goto index - t; // temporary - for (var i = 0; i < string.length;) { - var c = string.charCodeAt(i++); - if (c === 61 && j > 1) - break; - if ((c = s64[c]) === undefined) - throw Error(invalidEncoding); - switch (j) { - case 0: - t = c; - j = 1; - break; - case 1: - buffer[offset++] = t << 2 | (c & 48) >> 4; - t = c; - j = 2; - break; - case 2: - buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2; - t = c; - j = 3; - break; - case 3: - buffer[offset++] = (t & 3) << 6 | c; - j = 0; - break; - } - } - if (j === 1) - throw Error(invalidEncoding); - return offset - start; -}; - -/** - * Tests if the specified string appears to be base64 encoded. - * @param {string} string String to test - * @returns {boolean} `true` if probably base64 encoded, otherwise false - */ -base64.test = function test(string) { - return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string); -}; - -},{}],3:[function(require,module,exports){ -"use strict"; -module.exports = EventEmitter; - -/** - * Constructs a new event emitter instance. - * @classdesc A minimal event emitter. - * @memberof util - * @constructor - */ -function EventEmitter() { - - /** - * Registered listeners. - * @type {Object.} - * @private - */ - this._listeners = {}; -} - -/** - * Registers an event listener. - * @param {string} evt Event name - * @param {function} fn Listener - * @param {*} [ctx] Listener context - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.on = function on(evt, fn, ctx) { - (this._listeners[evt] || (this._listeners[evt] = [])).push({ - fn : fn, - ctx : ctx || this - }); - return this; -}; - -/** - * Removes an event listener or any matching listeners if arguments are omitted. - * @param {string} [evt] Event name. Removes all listeners if omitted. - * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted. - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.off = function off(evt, fn) { - if (evt === undefined) - this._listeners = {}; - else { - if (fn === undefined) - this._listeners[evt] = []; - else { - var listeners = this._listeners[evt]; - for (var i = 0; i < listeners.length;) - if (listeners[i].fn === fn) - listeners.splice(i, 1); - else - ++i; - } - } - return this; -}; - -/** - * Emits an event by calling its listeners with the specified arguments. - * @param {string} evt Event name - * @param {...*} args Arguments - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.emit = function emit(evt) { - var listeners = this._listeners[evt]; - if (listeners) { - var args = [], - i = 1; - for (; i < arguments.length;) - args.push(arguments[i++]); - for (i = 0; i < listeners.length;) - listeners[i].fn.apply(listeners[i++].ctx, args); - } - return this; -}; - -},{}],4:[function(require,module,exports){ -"use strict"; - -module.exports = factory(factory); - -/** - * Reads / writes floats / doubles from / to buffers. - * @name util.float - * @namespace - */ - -/** - * Writes a 32 bit float to a buffer using little endian byte order. - * @name util.float.writeFloatLE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Writes a 32 bit float to a buffer using big endian byte order. - * @name util.float.writeFloatBE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Reads a 32 bit float from a buffer using little endian byte order. - * @name util.float.readFloatLE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Reads a 32 bit float from a buffer using big endian byte order. - * @name util.float.readFloatBE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Writes a 64 bit double to a buffer using little endian byte order. - * @name util.float.writeDoubleLE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Writes a 64 bit double to a buffer using big endian byte order. - * @name util.float.writeDoubleBE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Reads a 64 bit double from a buffer using little endian byte order. - * @name util.float.readDoubleLE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Reads a 64 bit double from a buffer using big endian byte order. - * @name util.float.readDoubleBE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -// Factory function for the purpose of node-based testing in modified global environments -function factory(exports) { - - // float: typed array - if (typeof Float32Array !== "undefined") (function() { - - var f32 = new Float32Array([ -0 ]), - f8b = new Uint8Array(f32.buffer), - le = f8b[3] === 128; - - function writeFloat_f32_cpy(val, buf, pos) { - f32[0] = val; - buf[pos ] = f8b[0]; - buf[pos + 1] = f8b[1]; - buf[pos + 2] = f8b[2]; - buf[pos + 3] = f8b[3]; - } - - function writeFloat_f32_rev(val, buf, pos) { - f32[0] = val; - buf[pos ] = f8b[3]; - buf[pos + 1] = f8b[2]; - buf[pos + 2] = f8b[1]; - buf[pos + 3] = f8b[0]; - } - - /* istanbul ignore next */ - exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev; - /* istanbul ignore next */ - exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy; - - function readFloat_f32_cpy(buf, pos) { - f8b[0] = buf[pos ]; - f8b[1] = buf[pos + 1]; - f8b[2] = buf[pos + 2]; - f8b[3] = buf[pos + 3]; - return f32[0]; - } - - function readFloat_f32_rev(buf, pos) { - f8b[3] = buf[pos ]; - f8b[2] = buf[pos + 1]; - f8b[1] = buf[pos + 2]; - f8b[0] = buf[pos + 3]; - return f32[0]; - } - - /* istanbul ignore next */ - exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev; - /* istanbul ignore next */ - exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy; - - // float: ieee754 - })(); else (function() { - - function writeFloat_ieee754(writeUint, val, buf, pos) { - var sign = val < 0 ? 1 : 0; - if (sign) - val = -val; - if (val === 0) - writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos); - else if (isNaN(val)) - writeUint(2143289344, buf, pos); - else if (val > 3.4028234663852886e+38) // +-Infinity - writeUint((sign << 31 | 2139095040) >>> 0, buf, pos); - else if (val < 1.1754943508222875e-38) // denormal - writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos); - else { - var exponent = Math.floor(Math.log(val) / Math.LN2), - mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607; - writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos); - } - } - - exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE); - exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE); - - function readFloat_ieee754(readUint, buf, pos) { - var uint = readUint(buf, pos), - sign = (uint >> 31) * 2 + 1, - exponent = uint >>> 23 & 255, - mantissa = uint & 8388607; - return exponent === 255 - ? mantissa - ? NaN - : sign * Infinity - : exponent === 0 // denormal - ? sign * 1.401298464324817e-45 * mantissa - : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608); - } - - exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE); - exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE); - - })(); - - // double: typed array - if (typeof Float64Array !== "undefined") (function() { - - var f64 = new Float64Array([-0]), - f8b = new Uint8Array(f64.buffer), - le = f8b[7] === 128; - - function writeDouble_f64_cpy(val, buf, pos) { - f64[0] = val; - buf[pos ] = f8b[0]; - buf[pos + 1] = f8b[1]; - buf[pos + 2] = f8b[2]; - buf[pos + 3] = f8b[3]; - buf[pos + 4] = f8b[4]; - buf[pos + 5] = f8b[5]; - buf[pos + 6] = f8b[6]; - buf[pos + 7] = f8b[7]; - } - - function writeDouble_f64_rev(val, buf, pos) { - f64[0] = val; - buf[pos ] = f8b[7]; - buf[pos + 1] = f8b[6]; - buf[pos + 2] = f8b[5]; - buf[pos + 3] = f8b[4]; - buf[pos + 4] = f8b[3]; - buf[pos + 5] = f8b[2]; - buf[pos + 6] = f8b[1]; - buf[pos + 7] = f8b[0]; - } - - /* istanbul ignore next */ - exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev; - /* istanbul ignore next */ - exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy; - - function readDouble_f64_cpy(buf, pos) { - f8b[0] = buf[pos ]; - f8b[1] = buf[pos + 1]; - f8b[2] = buf[pos + 2]; - f8b[3] = buf[pos + 3]; - f8b[4] = buf[pos + 4]; - f8b[5] = buf[pos + 5]; - f8b[6] = buf[pos + 6]; - f8b[7] = buf[pos + 7]; - return f64[0]; - } - - function readDouble_f64_rev(buf, pos) { - f8b[7] = buf[pos ]; - f8b[6] = buf[pos + 1]; - f8b[5] = buf[pos + 2]; - f8b[4] = buf[pos + 3]; - f8b[3] = buf[pos + 4]; - f8b[2] = buf[pos + 5]; - f8b[1] = buf[pos + 6]; - f8b[0] = buf[pos + 7]; - return f64[0]; - } - - /* istanbul ignore next */ - exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev; - /* istanbul ignore next */ - exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy; - - // double: ieee754 - })(); else (function() { - - function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) { - var sign = val < 0 ? 1 : 0; - if (sign) - val = -val; - if (val === 0) { - writeUint(0, buf, pos + off0); - writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1); - } else if (isNaN(val)) { - writeUint(0, buf, pos + off0); - writeUint(2146959360, buf, pos + off1); - } else if (val > 1.7976931348623157e+308) { // +-Infinity - writeUint(0, buf, pos + off0); - writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1); - } else { - var mantissa; - if (val < 2.2250738585072014e-308) { // denormal - mantissa = val / 5e-324; - writeUint(mantissa >>> 0, buf, pos + off0); - writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1); - } else { - var exponent = Math.floor(Math.log(val) / Math.LN2); - if (exponent === 1024) - exponent = 1023; - mantissa = val * Math.pow(2, -exponent); - writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0); - writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1); - } - } - } - - exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4); - exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0); - - function readDouble_ieee754(readUint, off0, off1, buf, pos) { - var lo = readUint(buf, pos + off0), - hi = readUint(buf, pos + off1); - var sign = (hi >> 31) * 2 + 1, - exponent = hi >>> 20 & 2047, - mantissa = 4294967296 * (hi & 1048575) + lo; - return exponent === 2047 - ? mantissa - ? NaN - : sign * Infinity - : exponent === 0 // denormal - ? sign * 5e-324 * mantissa - : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496); - } - - exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4); - exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0); - - })(); - - return exports; -} - -// uint helpers - -function writeUintLE(val, buf, pos) { - buf[pos ] = val & 255; - buf[pos + 1] = val >>> 8 & 255; - buf[pos + 2] = val >>> 16 & 255; - buf[pos + 3] = val >>> 24; -} - -function writeUintBE(val, buf, pos) { - buf[pos ] = val >>> 24; - buf[pos + 1] = val >>> 16 & 255; - buf[pos + 2] = val >>> 8 & 255; - buf[pos + 3] = val & 255; -} - -function readUintLE(buf, pos) { - return (buf[pos ] - | buf[pos + 1] << 8 - | buf[pos + 2] << 16 - | buf[pos + 3] << 24) >>> 0; -} - -function readUintBE(buf, pos) { - return (buf[pos ] << 24 - | buf[pos + 1] << 16 - | buf[pos + 2] << 8 - | buf[pos + 3]) >>> 0; -} - -},{}],5:[function(require,module,exports){ -"use strict"; -module.exports = inquire; - -/** - * Requires a module only if available. - * @memberof util - * @param {string} moduleName Module to require - * @returns {?Object} Required module if available and not empty, otherwise `null` - */ -function inquire(moduleName) { - try { - var mod = eval("quire".replace(/^/,"re"))(moduleName); // eslint-disable-line no-eval - if (mod && (mod.length || Object.keys(mod).length)) - return mod; - } catch (e) {} // eslint-disable-line no-empty - return null; -} - -},{}],6:[function(require,module,exports){ -"use strict"; -module.exports = pool; - -/** - * An allocator as used by {@link util.pool}. - * @typedef PoolAllocator - * @type {function} - * @param {number} size Buffer size - * @returns {Uint8Array} Buffer - */ - -/** - * A slicer as used by {@link util.pool}. - * @typedef PoolSlicer - * @type {function} - * @param {number} start Start offset - * @param {number} end End offset - * @returns {Uint8Array} Buffer slice - * @this {Uint8Array} - */ - -/** - * A general purpose buffer pool. - * @memberof util - * @function - * @param {PoolAllocator} alloc Allocator - * @param {PoolSlicer} slice Slicer - * @param {number} [size=8192] Slab size - * @returns {PoolAllocator} Pooled allocator - */ -function pool(alloc, slice, size) { - var SIZE = size || 8192; - var MAX = SIZE >>> 1; - var slab = null; - var offset = SIZE; - return function pool_alloc(size) { - if (size < 1 || size > MAX) - return alloc(size); - if (offset + size > SIZE) { - slab = alloc(SIZE); - offset = 0; - } - var buf = slice.call(slab, offset, offset += size); - if (offset & 7) // align to 32 bit - offset = (offset | 7) + 1; - return buf; - }; -} - -},{}],7:[function(require,module,exports){ -"use strict"; - -/** - * A minimal UTF8 implementation for number arrays. - * @memberof util - * @namespace - */ -var utf8 = exports; - -/** - * Calculates the UTF8 byte length of a string. - * @param {string} string String - * @returns {number} Byte length - */ -utf8.length = function utf8_length(string) { - var len = 0, - c = 0; - for (var i = 0; i < string.length; ++i) { - c = string.charCodeAt(i); - if (c < 128) - len += 1; - else if (c < 2048) - len += 2; - else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) { - ++i; - len += 4; - } else - len += 3; - } - return len; -}; - -/** - * Reads UTF8 bytes as a string. - * @param {Uint8Array} buffer Source buffer - * @param {number} start Source start - * @param {number} end Source end - * @returns {string} String read - */ -utf8.read = function utf8_read(buffer, start, end) { - var len = end - start; - if (len < 1) - return ""; - var parts = null, - chunk = [], - i = 0, // char offset - t; // temporary - while (start < end) { - t = buffer[start++]; - if (t < 128) - chunk[i++] = t; - else if (t > 191 && t < 224) - chunk[i++] = (t & 31) << 6 | buffer[start++] & 63; - else if (t > 239 && t < 365) { - t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000; - chunk[i++] = 0xD800 + (t >> 10); - chunk[i++] = 0xDC00 + (t & 1023); - } else - chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63; - if (i > 8191) { - (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk)); - i = 0; - } - } - if (parts) { - if (i) - parts.push(String.fromCharCode.apply(String, chunk.slice(0, i))); - return parts.join(""); - } - return String.fromCharCode.apply(String, chunk.slice(0, i)); -}; - -/** - * Writes a string as UTF8 bytes. - * @param {string} string Source string - * @param {Uint8Array} buffer Destination buffer - * @param {number} offset Destination offset - * @returns {number} Bytes written - */ -utf8.write = function utf8_write(string, buffer, offset) { - var start = offset, - c1, // character 1 - c2; // character 2 - for (var i = 0; i < string.length; ++i) { - c1 = string.charCodeAt(i); - if (c1 < 128) { - buffer[offset++] = c1; - } else if (c1 < 2048) { - buffer[offset++] = c1 >> 6 | 192; - buffer[offset++] = c1 & 63 | 128; - } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) { - c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF); - ++i; - buffer[offset++] = c1 >> 18 | 240; - buffer[offset++] = c1 >> 12 & 63 | 128; - buffer[offset++] = c1 >> 6 & 63 | 128; - buffer[offset++] = c1 & 63 | 128; - } else { - buffer[offset++] = c1 >> 12 | 224; - buffer[offset++] = c1 >> 6 & 63 | 128; - buffer[offset++] = c1 & 63 | 128; - } - } - return offset - start; -}; - -},{}],8:[function(require,module,exports){ -"use strict"; -var protobuf = exports; - -/** - * Build type, one of `"full"`, `"light"` or `"minimal"`. - * @name build - * @type {string} - * @const - */ -protobuf.build = "minimal"; - -// Serialization -protobuf.Writer = require(16); -protobuf.BufferWriter = require(17); -protobuf.Reader = require(9); -protobuf.BufferReader = require(10); - -// Utility -protobuf.util = require(15); -protobuf.rpc = require(12); -protobuf.roots = require(11); -protobuf.configure = configure; - -/* istanbul ignore next */ -/** - * Reconfigures the library according to the environment. - * @returns {undefined} - */ -function configure() { - protobuf.Reader._configure(protobuf.BufferReader); - protobuf.util._configure(); -} - -// Set up buffer utility according to the environment -protobuf.Writer._configure(protobuf.BufferWriter); -configure(); - -},{"10":10,"11":11,"12":12,"15":15,"16":16,"17":17,"9":9}],9:[function(require,module,exports){ -"use strict"; -module.exports = Reader; - -var util = require(15); - -var BufferReader; // cyclic - -var LongBits = util.LongBits, - utf8 = util.utf8; - -/* istanbul ignore next */ -function indexOutOfRange(reader, writeLength) { - return RangeError("index out of range: " + reader.pos + " + " + (writeLength || 1) + " > " + reader.len); -} - -/** - * Constructs a new reader instance using the specified buffer. - * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`. - * @constructor - * @param {Uint8Array} buffer Buffer to read from - */ -function Reader(buffer) { - - /** - * Read buffer. - * @type {Uint8Array} - */ - this.buf = buffer; - - /** - * Read buffer position. - * @type {number} - */ - this.pos = 0; - - /** - * Read buffer length. - * @type {number} - */ - this.len = buffer.length; -} - -var create_array = typeof Uint8Array !== "undefined" - ? function create_typed_array(buffer) { - if (buffer instanceof Uint8Array || Array.isArray(buffer)) - return new Reader(buffer); - throw Error("illegal buffer"); - } - /* istanbul ignore next */ - : function create_array(buffer) { - if (Array.isArray(buffer)) - return new Reader(buffer); - throw Error("illegal buffer"); - }; - -/** - * Creates a new reader using the specified buffer. - * @function - * @param {Uint8Array|Buffer} buffer Buffer to read from - * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} - * @throws {Error} If `buffer` is not a valid buffer - */ -Reader.create = util.Buffer - ? function create_buffer_setup(buffer) { - return (Reader.create = function create_buffer(buffer) { - return util.Buffer.isBuffer(buffer) - ? new BufferReader(buffer) - /* istanbul ignore next */ - : create_array(buffer); - })(buffer); - } - /* istanbul ignore next */ - : create_array; - -Reader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice; - -/** - * Reads a varint as an unsigned 32 bit value. - * @function - * @returns {number} Value read - */ -Reader.prototype.uint32 = (function read_uint32_setup() { - var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!) - return function read_uint32() { - value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value; - - /* istanbul ignore if */ - if ((this.pos += 5) > this.len) { - this.pos = this.len; - throw indexOutOfRange(this, 10); - } - return value; - }; -})(); - -/** - * Reads a varint as a signed 32 bit value. - * @returns {number} Value read - */ -Reader.prototype.int32 = function read_int32() { - return this.uint32() | 0; -}; - -/** - * Reads a zig-zag encoded varint as a signed 32 bit value. - * @returns {number} Value read - */ -Reader.prototype.sint32 = function read_sint32() { - var value = this.uint32(); - return value >>> 1 ^ -(value & 1) | 0; -}; - -/* eslint-disable no-invalid-this */ - -function readLongVarint() { - // tends to deopt with local vars for octet etc. - var bits = new LongBits(0, 0); - var i = 0; - if (this.len - this.pos > 4) { // fast route (lo) - for (; i < 4; ++i) { - // 1st..4th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - // 5th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0; - bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - i = 0; - } else { - for (; i < 3; ++i) { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - // 1st..3th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - // 4th - bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0; - return bits; - } - if (this.len - this.pos > 4) { // fast route (hi) - for (; i < 5; ++i) { - // 6th..10th - bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - } else { - for (; i < 5; ++i) { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - // 6th..10th - bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - } - /* istanbul ignore next */ - throw Error("invalid varint encoding"); -} - -/* eslint-enable no-invalid-this */ - -/** - * Reads a varint as a signed 64 bit value. - * @name Reader#int64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a varint as an unsigned 64 bit value. - * @name Reader#uint64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a zig-zag encoded varint as a signed 64 bit value. - * @name Reader#sint64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a varint as a boolean. - * @returns {boolean} Value read - */ -Reader.prototype.bool = function read_bool() { - return this.uint32() !== 0; -}; - -function readFixed32_end(buf, end) { // note that this uses `end`, not `pos` - return (buf[end - 4] - | buf[end - 3] << 8 - | buf[end - 2] << 16 - | buf[end - 1] << 24) >>> 0; -} - -/** - * Reads fixed 32 bits as an unsigned 32 bit integer. - * @returns {number} Value read - */ -Reader.prototype.fixed32 = function read_fixed32() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - return readFixed32_end(this.buf, this.pos += 4); -}; - -/** - * Reads fixed 32 bits as a signed 32 bit integer. - * @returns {number} Value read - */ -Reader.prototype.sfixed32 = function read_sfixed32() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - return readFixed32_end(this.buf, this.pos += 4) | 0; -}; - -/* eslint-disable no-invalid-this */ - -function readFixed64(/* this: Reader */) { - - /* istanbul ignore if */ - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 8); - - return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4)); -} - -/* eslint-enable no-invalid-this */ - -/** - * Reads fixed 64 bits. - * @name Reader#fixed64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads zig-zag encoded fixed 64 bits. - * @name Reader#sfixed64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a float (32 bit) as a number. - * @function - * @returns {number} Value read - */ -Reader.prototype.float = function read_float() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - var value = util.float.readFloatLE(this.buf, this.pos); - this.pos += 4; - return value; -}; - -/** - * Reads a double (64 bit float) as a number. - * @function - * @returns {number} Value read - */ -Reader.prototype.double = function read_double() { - - /* istanbul ignore if */ - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 4); - - var value = util.float.readDoubleLE(this.buf, this.pos); - this.pos += 8; - return value; -}; - -/** - * Reads a sequence of bytes preceeded by its length as a varint. - * @returns {Uint8Array} Value read - */ -Reader.prototype.bytes = function read_bytes() { - var length = this.uint32(), - start = this.pos, - end = this.pos + length; - - /* istanbul ignore if */ - if (end > this.len) - throw indexOutOfRange(this, length); - - this.pos += length; - if (Array.isArray(this.buf)) // plain array - return this.buf.slice(start, end); - return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1 - ? new this.buf.constructor(0) - : this._slice.call(this.buf, start, end); -}; - -/** - * Reads a string preceeded by its byte length as a varint. - * @returns {string} Value read - */ -Reader.prototype.string = function read_string() { - var bytes = this.bytes(); - return utf8.read(bytes, 0, bytes.length); -}; - -/** - * Skips the specified number of bytes if specified, otherwise skips a varint. - * @param {number} [length] Length if known, otherwise a varint is assumed - * @returns {Reader} `this` - */ -Reader.prototype.skip = function skip(length) { - if (typeof length === "number") { - /* istanbul ignore if */ - if (this.pos + length > this.len) - throw indexOutOfRange(this, length); - this.pos += length; - } else { - do { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - } while (this.buf[this.pos++] & 128); - } - return this; -}; - -/** - * Skips the next element of the specified wire type. - * @param {number} wireType Wire type received - * @returns {Reader} `this` - */ -Reader.prototype.skipType = function(wireType) { - switch (wireType) { - case 0: - this.skip(); - break; - case 1: - this.skip(8); - break; - case 2: - this.skip(this.uint32()); - break; - case 3: - while ((wireType = this.uint32() & 7) !== 4) { - this.skipType(wireType); - } - break; - case 5: - this.skip(4); - break; - - /* istanbul ignore next */ - default: - throw Error("invalid wire type " + wireType + " at offset " + this.pos); - } - return this; -}; - -Reader._configure = function(BufferReader_) { - BufferReader = BufferReader_; - - var fn = util.Long ? "toLong" : /* istanbul ignore next */ "toNumber"; - util.merge(Reader.prototype, { - - int64: function read_int64() { - return readLongVarint.call(this)[fn](false); - }, - - uint64: function read_uint64() { - return readLongVarint.call(this)[fn](true); - }, - - sint64: function read_sint64() { - return readLongVarint.call(this).zzDecode()[fn](false); - }, - - fixed64: function read_fixed64() { - return readFixed64.call(this)[fn](true); - }, - - sfixed64: function read_sfixed64() { - return readFixed64.call(this)[fn](false); - } - - }); -}; - -},{"15":15}],10:[function(require,module,exports){ -"use strict"; -module.exports = BufferReader; - -// extends Reader -var Reader = require(9); -(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader; - -var util = require(15); - -/** - * Constructs a new buffer reader instance. - * @classdesc Wire format reader using node buffers. - * @extends Reader - * @constructor - * @param {Buffer} buffer Buffer to read from - */ -function BufferReader(buffer) { - Reader.call(this, buffer); - - /** - * Read buffer. - * @name BufferReader#buf - * @type {Buffer} - */ -} - -/* istanbul ignore else */ -if (util.Buffer) - BufferReader.prototype._slice = util.Buffer.prototype.slice; - -/** - * @override - */ -BufferReader.prototype.string = function read_string_buffer() { - var len = this.uint32(); // modifies pos - return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len)); -}; - -/** - * Reads a sequence of bytes preceeded by its length as a varint. - * @name BufferReader#bytes - * @function - * @returns {Buffer} Value read - */ - -},{"15":15,"9":9}],11:[function(require,module,exports){ -"use strict"; -module.exports = {}; - -/** - * Named roots. - * This is where pbjs stores generated structures (the option `-r, --root` specifies a name). - * Can also be used manually to make roots available accross modules. - * @name roots - * @type {Object.} - * @example - * // pbjs -r myroot -o compiled.js ... - * - * // in another module: - * require("./compiled.js"); - * - * // in any subsequent module: - * var root = protobuf.roots["myroot"]; - */ - -},{}],12:[function(require,module,exports){ -"use strict"; - -/** - * Streaming RPC helpers. - * @namespace - */ -var rpc = exports; - -/** - * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets. - * @typedef RPCImpl - * @type {function} - * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called - * @param {Uint8Array} requestData Request data - * @param {RPCImplCallback} callback Callback function - * @returns {undefined} - * @example - * function rpcImpl(method, requestData, callback) { - * if (protobuf.util.lcFirst(method.name) !== "myMethod") // compatible with static code - * throw Error("no such method"); - * asynchronouslyObtainAResponse(requestData, function(err, responseData) { - * callback(err, responseData); - * }); - * } - */ - -/** - * Node-style callback as used by {@link RPCImpl}. - * @typedef RPCImplCallback - * @type {function} - * @param {Error|null} error Error, if any, otherwise `null` - * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error - * @returns {undefined} - */ - -rpc.Service = require(13); - -},{"13":13}],13:[function(require,module,exports){ -"use strict"; -module.exports = Service; - -var util = require(15); - -// Extends EventEmitter -(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service; - -/** - * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}. - * - * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`. - * @typedef rpc.ServiceMethodCallback - * @template TRes extends Message - * @type {function} - * @param {Error|null} error Error, if any - * @param {TRes} [response] Response message - * @returns {undefined} - */ - -/** - * A service method part of a {@link rpc.Service} as created by {@link Service.create}. - * @typedef rpc.ServiceMethod - * @template TReq extends Message - * @template TRes extends Message - * @type {function} - * @param {TReq|Properties} request Request message or plain object - * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message - * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined` - */ - -/** - * Constructs a new RPC service instance. - * @classdesc An RPC service as returned by {@link Service#create}. - * @exports rpc.Service - * @extends util.EventEmitter - * @constructor - * @param {RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - */ -function Service(rpcImpl, requestDelimited, responseDelimited) { - - if (typeof rpcImpl !== "function") - throw TypeError("rpcImpl must be a function"); - - util.EventEmitter.call(this); - - /** - * RPC implementation. Becomes `null` once the service is ended. - * @type {RPCImpl|null} - */ - this.rpcImpl = rpcImpl; - - /** - * Whether requests are length-delimited. - * @type {boolean} - */ - this.requestDelimited = Boolean(requestDelimited); - - /** - * Whether responses are length-delimited. - * @type {boolean} - */ - this.responseDelimited = Boolean(responseDelimited); -} - -/** - * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}. - * @param {Method|rpc.ServiceMethod} method Reflected or static method - * @param {Constructor} requestCtor Request constructor - * @param {Constructor} responseCtor Response constructor - * @param {TReq|Properties} request Request message or plain object - * @param {rpc.ServiceMethodCallback} callback Service callback - * @returns {undefined} - * @template TReq extends Message - * @template TRes extends Message - */ -Service.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) { - - if (!request) - throw TypeError("request must be specified"); - - var self = this; - if (!callback) - return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request); - - if (!self.rpcImpl) { - setTimeout(function() { callback(Error("already ended")); }, 0); - return undefined; - } - - try { - return self.rpcImpl( - method, - requestCtor[self.requestDelimited ? "encodeDelimited" : "encode"](request).finish(), - function rpcCallback(err, response) { - - if (err) { - self.emit("error", err, method); - return callback(err); - } - - if (response === null) { - self.end(/* endedByRPC */ true); - return undefined; - } - - if (!(response instanceof responseCtor)) { - try { - response = responseCtor[self.responseDelimited ? "decodeDelimited" : "decode"](response); - } catch (err) { - self.emit("error", err, method); - return callback(err); - } - } - - self.emit("data", response, method); - return callback(null, response); - } - ); - } catch (err) { - self.emit("error", err, method); - setTimeout(function() { callback(err); }, 0); - return undefined; - } -}; - -/** - * Ends this service and emits the `end` event. - * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation. - * @returns {rpc.Service} `this` - */ -Service.prototype.end = function end(endedByRPC) { - if (this.rpcImpl) { - if (!endedByRPC) // signal end to rpcImpl - this.rpcImpl(null, null, null); - this.rpcImpl = null; - this.emit("end").off(); - } - return this; -}; - -},{"15":15}],14:[function(require,module,exports){ -"use strict"; -module.exports = LongBits; - -var util = require(15); - -/** - * Constructs new long bits. - * @classdesc Helper class for working with the low and high bits of a 64 bit value. - * @memberof util - * @constructor - * @param {number} lo Low 32 bits, unsigned - * @param {number} hi High 32 bits, unsigned - */ -function LongBits(lo, hi) { - - // note that the casts below are theoretically unnecessary as of today, but older statically - // generated converter code might still call the ctor with signed 32bits. kept for compat. - - /** - * Low bits. - * @type {number} - */ - this.lo = lo >>> 0; - - /** - * High bits. - * @type {number} - */ - this.hi = hi >>> 0; -} - -/** - * Zero bits. - * @memberof util.LongBits - * @type {util.LongBits} - */ -var zero = LongBits.zero = new LongBits(0, 0); - -zero.toNumber = function() { return 0; }; -zero.zzEncode = zero.zzDecode = function() { return this; }; -zero.length = function() { return 1; }; - -/** - * Zero hash. - * @memberof util.LongBits - * @type {string} - */ -var zeroHash = LongBits.zeroHash = "\0\0\0\0\0\0\0\0"; - -/** - * Constructs new long bits from the specified number. - * @param {number} value Value - * @returns {util.LongBits} Instance - */ -LongBits.fromNumber = function fromNumber(value) { - if (value === 0) - return zero; - var sign = value < 0; - if (sign) - value = -value; - var lo = value >>> 0, - hi = (value - lo) / 4294967296 >>> 0; - if (sign) { - hi = ~hi >>> 0; - lo = ~lo >>> 0; - if (++lo > 4294967295) { - lo = 0; - if (++hi > 4294967295) - hi = 0; - } - } - return new LongBits(lo, hi); -}; - -/** - * Constructs new long bits from a number, long or string. - * @param {Long|number|string} value Value - * @returns {util.LongBits} Instance - */ -LongBits.from = function from(value) { - if (typeof value === "number") - return LongBits.fromNumber(value); - if (util.isString(value)) { - /* istanbul ignore else */ - if (util.Long) - value = util.Long.fromString(value); - else - return LongBits.fromNumber(parseInt(value, 10)); - } - return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero; -}; - -/** - * Converts this long bits to a possibly unsafe JavaScript number. - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {number} Possibly unsafe number - */ -LongBits.prototype.toNumber = function toNumber(unsigned) { - if (!unsigned && this.hi >>> 31) { - var lo = ~this.lo + 1 >>> 0, - hi = ~this.hi >>> 0; - if (!lo) - hi = hi + 1 >>> 0; - return -(lo + hi * 4294967296); - } - return this.lo + this.hi * 4294967296; -}; - -/** - * Converts this long bits to a long. - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {Long} Long - */ -LongBits.prototype.toLong = function toLong(unsigned) { - return util.Long - ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned)) - /* istanbul ignore next */ - : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) }; -}; - -var charCodeAt = String.prototype.charCodeAt; - -/** - * Constructs new long bits from the specified 8 characters long hash. - * @param {string} hash Hash - * @returns {util.LongBits} Bits - */ -LongBits.fromHash = function fromHash(hash) { - if (hash === zeroHash) - return zero; - return new LongBits( - ( charCodeAt.call(hash, 0) - | charCodeAt.call(hash, 1) << 8 - | charCodeAt.call(hash, 2) << 16 - | charCodeAt.call(hash, 3) << 24) >>> 0 - , - ( charCodeAt.call(hash, 4) - | charCodeAt.call(hash, 5) << 8 - | charCodeAt.call(hash, 6) << 16 - | charCodeAt.call(hash, 7) << 24) >>> 0 - ); -}; - -/** - * Converts this long bits to a 8 characters long hash. - * @returns {string} Hash - */ -LongBits.prototype.toHash = function toHash() { - return String.fromCharCode( - this.lo & 255, - this.lo >>> 8 & 255, - this.lo >>> 16 & 255, - this.lo >>> 24 , - this.hi & 255, - this.hi >>> 8 & 255, - this.hi >>> 16 & 255, - this.hi >>> 24 - ); -}; - -/** - * Zig-zag encodes this long bits. - * @returns {util.LongBits} `this` - */ -LongBits.prototype.zzEncode = function zzEncode() { - var mask = this.hi >> 31; - this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0; - this.lo = ( this.lo << 1 ^ mask) >>> 0; - return this; -}; - -/** - * Zig-zag decodes this long bits. - * @returns {util.LongBits} `this` - */ -LongBits.prototype.zzDecode = function zzDecode() { - var mask = -(this.lo & 1); - this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0; - this.hi = ( this.hi >>> 1 ^ mask) >>> 0; - return this; -}; - -/** - * Calculates the length of this longbits when encoded as a varint. - * @returns {number} Length - */ -LongBits.prototype.length = function length() { - var part0 = this.lo, - part1 = (this.lo >>> 28 | this.hi << 4) >>> 0, - part2 = this.hi >>> 24; - return part2 === 0 - ? part1 === 0 - ? part0 < 16384 - ? part0 < 128 ? 1 : 2 - : part0 < 2097152 ? 3 : 4 - : part1 < 16384 - ? part1 < 128 ? 5 : 6 - : part1 < 2097152 ? 7 : 8 - : part2 < 128 ? 9 : 10; -}; - -},{"15":15}],15:[function(require,module,exports){ -"use strict"; -var util = exports; - -// used to return a Promise where callback is omitted -util.asPromise = require(1); - -// converts to / from base64 encoded strings -util.base64 = require(2); - -// base class of rpc.Service -util.EventEmitter = require(3); - -// float handling accross browsers -util.float = require(4); - -// requires modules optionally and hides the call from bundlers -util.inquire = require(5); - -// converts to / from utf8 encoded strings -util.utf8 = require(7); - -// provides a node-like buffer pool in the browser -util.pool = require(6); - -// utility to work with the low and high bits of a 64 bit value -util.LongBits = require(14); - -// global object reference -util.global = typeof window !== "undefined" && window - || typeof global !== "undefined" && global - || typeof self !== "undefined" && self - || this; // eslint-disable-line no-invalid-this - -/** - * An immuable empty array. - * @memberof util - * @type {Array.<*>} - * @const - */ -util.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes - -/** - * An immutable empty object. - * @type {Object} - * @const - */ -util.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes - -/** - * Whether running within node or not. - * @memberof util - * @type {boolean} - * @const - */ -util.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node); - -/** - * Tests if the specified value is an integer. - * @function - * @param {*} value Value to test - * @returns {boolean} `true` if the value is an integer - */ -util.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) { - return typeof value === "number" && isFinite(value) && Math.floor(value) === value; -}; - -/** - * Tests if the specified value is a string. - * @param {*} value Value to test - * @returns {boolean} `true` if the value is a string - */ -util.isString = function isString(value) { - return typeof value === "string" || value instanceof String; -}; - -/** - * Tests if the specified value is a non-null object. - * @param {*} value Value to test - * @returns {boolean} `true` if the value is a non-null object - */ -util.isObject = function isObject(value) { - return value && typeof value === "object"; -}; - -/** - * Checks if a property on a message is considered to be present. - * This is an alias of {@link util.isSet}. - * @function - * @param {Object} obj Plain object or message instance - * @param {string} prop Property name - * @returns {boolean} `true` if considered to be present, otherwise `false` - */ -util.isset = - -/** - * Checks if a property on a message is considered to be present. - * @param {Object} obj Plain object or message instance - * @param {string} prop Property name - * @returns {boolean} `true` if considered to be present, otherwise `false` - */ -util.isSet = function isSet(obj, prop) { - var value = obj[prop]; - if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins - return typeof value !== "object" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0; - return false; -}; - -/** - * Any compatible Buffer instance. - * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings. - * @interface Buffer - * @extends Uint8Array - */ - -/** - * Node's Buffer class if available. - * @type {Constructor} - */ -util.Buffer = (function() { - try { - var Buffer = util.inquire("buffer").Buffer; - // refuse to use non-node buffers if not explicitly assigned (perf reasons): - return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null; - } catch (e) { - /* istanbul ignore next */ - return null; - } -})(); - -// Internal alias of or polyfull for Buffer.from. -util._Buffer_from = null; - -// Internal alias of or polyfill for Buffer.allocUnsafe. -util._Buffer_allocUnsafe = null; - -/** - * Creates a new buffer of whatever type supported by the environment. - * @param {number|number[]} [sizeOrArray=0] Buffer size or number array - * @returns {Uint8Array|Buffer} Buffer - */ -util.newBuffer = function newBuffer(sizeOrArray) { - /* istanbul ignore next */ - return typeof sizeOrArray === "number" - ? util.Buffer - ? util._Buffer_allocUnsafe(sizeOrArray) - : new util.Array(sizeOrArray) - : util.Buffer - ? util._Buffer_from(sizeOrArray) - : typeof Uint8Array === "undefined" - ? sizeOrArray - : new Uint8Array(sizeOrArray); -}; - -/** - * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`. - * @type {Constructor} - */ -util.Array = typeof Uint8Array !== "undefined" ? Uint8Array /* istanbul ignore next */ : Array; - -/** - * Long.js's Long class if available. - * @type {Constructor} - */ -util.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long - || /* istanbul ignore next */ util.global.Long - || util.inquire("long"); - -/** - * Regular expression used to verify 2 bit (`bool`) map keys. - * @type {RegExp} - * @const - */ -util.key2Re = /^true|false|0|1$/; - -/** - * Regular expression used to verify 32 bit (`int32` etc.) map keys. - * @type {RegExp} - * @const - */ -util.key32Re = /^-?(?:0|[1-9][0-9]*)$/; - -/** - * Regular expression used to verify 64 bit (`int64` etc.) map keys. - * @type {RegExp} - * @const - */ -util.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/; - -/** - * Converts a number or long to an 8 characters long hash string. - * @param {Long|number} value Value to convert - * @returns {string} Hash - */ -util.longToHash = function longToHash(value) { - return value - ? util.LongBits.from(value).toHash() - : util.LongBits.zeroHash; -}; - -/** - * Converts an 8 characters long hash string to a long or number. - * @param {string} hash Hash - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {Long|number} Original value - */ -util.longFromHash = function longFromHash(hash, unsigned) { - var bits = util.LongBits.fromHash(hash); - if (util.Long) - return util.Long.fromBits(bits.lo, bits.hi, unsigned); - return bits.toNumber(Boolean(unsigned)); -}; - -/** - * Merges the properties of the source object into the destination object. - * @memberof util - * @param {Object.} dst Destination object - * @param {Object.} src Source object - * @param {boolean} [ifNotSet=false] Merges only if the key is not already set - * @returns {Object.} Destination object - */ -function merge(dst, src, ifNotSet) { // used by converters - for (var keys = Object.keys(src), i = 0; i < keys.length; ++i) - if (dst[keys[i]] === undefined || !ifNotSet) - dst[keys[i]] = src[keys[i]]; - return dst; -} - -util.merge = merge; - -/** - * Converts the first character of a string to lower case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.lcFirst = function lcFirst(str) { - return str.charAt(0).toLowerCase() + str.substring(1); -}; - -/** - * Creates a custom error constructor. - * @memberof util - * @param {string} name Error name - * @returns {Constructor} Custom error constructor - */ -function newError(name) { - - function CustomError(message, properties) { - - if (!(this instanceof CustomError)) - return new CustomError(message, properties); - - // Error.call(this, message); - // ^ just returns a new error instance because the ctor can be called as a function - - Object.defineProperty(this, "message", { get: function() { return message; } }); - - /* istanbul ignore next */ - if (Error.captureStackTrace) // node - Error.captureStackTrace(this, CustomError); - else - Object.defineProperty(this, "stack", { value: (new Error()).stack || "" }); - - if (properties) - merge(this, properties); - } - - (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError; - - Object.defineProperty(CustomError.prototype, "name", { get: function() { return name; } }); - - CustomError.prototype.toString = function toString() { - return this.name + ": " + this.message; - }; - - return CustomError; -} - -util.newError = newError; - -/** - * Constructs a new protocol error. - * @classdesc Error subclass indicating a protocol specifc error. - * @memberof util - * @extends Error - * @template T extends Message - * @constructor - * @param {string} message Error message - * @param {Object.} [properties] Additional properties - * @example - * try { - * MyMessage.decode(someBuffer); // throws if required fields are missing - * } catch (e) { - * if (e instanceof ProtocolError && e.instance) - * console.log("decoded so far: " + JSON.stringify(e.instance)); - * } - */ -util.ProtocolError = newError("ProtocolError"); - -/** - * So far decoded message instance. - * @name util.ProtocolError#instance - * @type {Message} - */ - -/** - * A OneOf getter as returned by {@link util.oneOfGetter}. - * @typedef OneOfGetter - * @type {function} - * @returns {string|undefined} Set field name, if any - */ - -/** - * Builds a getter for a oneof's present field name. - * @param {string[]} fieldNames Field names - * @returns {OneOfGetter} Unbound getter - */ -util.oneOfGetter = function getOneOf(fieldNames) { - var fieldMap = {}; - for (var i = 0; i < fieldNames.length; ++i) - fieldMap[fieldNames[i]] = 1; - - /** - * @returns {string|undefined} Set field name, if any - * @this Object - * @ignore - */ - return function() { // eslint-disable-line consistent-return - for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i) - if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null) - return keys[i]; - }; -}; - -/** - * A OneOf setter as returned by {@link util.oneOfSetter}. - * @typedef OneOfSetter - * @type {function} - * @param {string|undefined} value Field name - * @returns {undefined} - */ - -/** - * Builds a setter for a oneof's present field name. - * @param {string[]} fieldNames Field names - * @returns {OneOfSetter} Unbound setter - */ -util.oneOfSetter = function setOneOf(fieldNames) { - - /** - * @param {string} name Field name - * @returns {undefined} - * @this Object - * @ignore - */ - return function(name) { - for (var i = 0; i < fieldNames.length; ++i) - if (fieldNames[i] !== name) - delete this[fieldNames[i]]; - }; -}; - -/** - * Default conversion options used for {@link Message#toJSON} implementations. - * - * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely: - * - * - Longs become strings - * - Enums become string keys - * - Bytes become base64 encoded strings - * - (Sub-)Messages become plain objects - * - Maps become plain objects with all string keys - * - Repeated fields become arrays - * - NaN and Infinity for float and double fields become strings - * - * @type {IConversionOptions} - * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json - */ -util.toJSONOptions = { - longs: String, - enums: String, - bytes: String, - json: true -}; - -// Sets up buffer utility according to the environment (called in index-minimal) -util._configure = function() { - var Buffer = util.Buffer; - /* istanbul ignore if */ - if (!Buffer) { - util._Buffer_from = util._Buffer_allocUnsafe = null; - return; - } - // because node 4.x buffers are incompatible & immutable - // see: https://github.com/dcodeIO/protobuf.js/pull/665 - util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from || - /* istanbul ignore next */ - function Buffer_from(value, encoding) { - return new Buffer(value, encoding); - }; - util._Buffer_allocUnsafe = Buffer.allocUnsafe || - /* istanbul ignore next */ - function Buffer_allocUnsafe(size) { - return new Buffer(size); - }; -}; - -},{"1":1,"14":14,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7}],16:[function(require,module,exports){ -"use strict"; -module.exports = Writer; - -var util = require(15); - -var BufferWriter; // cyclic - -var LongBits = util.LongBits, - base64 = util.base64, - utf8 = util.utf8; - -/** - * Constructs a new writer operation instance. - * @classdesc Scheduled writer operation. - * @constructor - * @param {function(*, Uint8Array, number)} fn Function to call - * @param {number} len Value byte length - * @param {*} val Value to write - * @ignore - */ -function Op(fn, len, val) { - - /** - * Function to call. - * @type {function(Uint8Array, number, *)} - */ - this.fn = fn; - - /** - * Value byte length. - * @type {number} - */ - this.len = len; - - /** - * Next operation. - * @type {Writer.Op|undefined} - */ - this.next = undefined; - - /** - * Value to write. - * @type {*} - */ - this.val = val; // type varies -} - -/* istanbul ignore next */ -function noop() {} // eslint-disable-line no-empty-function - -/** - * Constructs a new writer state instance. - * @classdesc Copied writer state. - * @memberof Writer - * @constructor - * @param {Writer} writer Writer to copy state from - * @ignore - */ -function State(writer) { - - /** - * Current head. - * @type {Writer.Op} - */ - this.head = writer.head; - - /** - * Current tail. - * @type {Writer.Op} - */ - this.tail = writer.tail; - - /** - * Current buffer length. - * @type {number} - */ - this.len = writer.len; - - /** - * Next state. - * @type {State|null} - */ - this.next = writer.states; -} - -/** - * Constructs a new writer instance. - * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`. - * @constructor - */ -function Writer() { - - /** - * Current length. - * @type {number} - */ - this.len = 0; - - /** - * Operations head. - * @type {Object} - */ - this.head = new Op(noop, 0, 0); - - /** - * Operations tail - * @type {Object} - */ - this.tail = this.head; - - /** - * Linked forked states. - * @type {Object|null} - */ - this.states = null; - - // When a value is written, the writer calculates its byte length and puts it into a linked - // list of operations to perform when finish() is called. This both allows us to allocate - // buffers of the exact required size and reduces the amount of work we have to do compared - // to first calculating over objects and then encoding over objects. In our case, the encoding - // part is just a linked list walk calling operations with already prepared values. -} - -/** - * Creates a new writer. - * @function - * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} - */ -Writer.create = util.Buffer - ? function create_buffer_setup() { - return (Writer.create = function create_buffer() { - return new BufferWriter(); - })(); - } - /* istanbul ignore next */ - : function create_array() { - return new Writer(); - }; - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Uint8Array} Buffer - */ -Writer.alloc = function alloc(size) { - return new util.Array(size); -}; - -// Use Uint8Array buffer pool in the browser, just like node does with buffers -/* istanbul ignore else */ -if (util.Array !== Array) - Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray); - -/** - * Pushes a new operation to the queue. - * @param {function(Uint8Array, number, *)} fn Function to call - * @param {number} len Value byte length - * @param {number} val Value to write - * @returns {Writer} `this` - * @private - */ -Writer.prototype._push = function push(fn, len, val) { - this.tail = this.tail.next = new Op(fn, len, val); - this.len += len; - return this; -}; - -function writeByte(val, buf, pos) { - buf[pos] = val & 255; -} - -function writeVarint32(val, buf, pos) { - while (val > 127) { - buf[pos++] = val & 127 | 128; - val >>>= 7; - } - buf[pos] = val; -} - -/** - * Constructs a new varint writer operation instance. - * @classdesc Scheduled varint writer operation. - * @extends Op - * @constructor - * @param {number} len Value byte length - * @param {number} val Value to write - * @ignore - */ -function VarintOp(len, val) { - this.len = len; - this.next = undefined; - this.val = val; -} - -VarintOp.prototype = Object.create(Op.prototype); -VarintOp.prototype.fn = writeVarint32; - -/** - * Writes an unsigned 32 bit value as a varint. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.uint32 = function write_uint32(value) { - // here, the call to this.push has been inlined and a varint specific Op subclass is used. - // uint32 is by far the most frequently used operation and benefits significantly from this. - this.len += (this.tail = this.tail.next = new VarintOp( - (value = value >>> 0) - < 128 ? 1 - : value < 16384 ? 2 - : value < 2097152 ? 3 - : value < 268435456 ? 4 - : 5, - value)).len; - return this; -}; - -/** - * Writes a signed 32 bit value as a varint. - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.int32 = function write_int32(value) { - return value < 0 - ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec - : this.uint32(value); -}; - -/** - * Writes a 32 bit value as a varint, zig-zag encoded. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.sint32 = function write_sint32(value) { - return this.uint32((value << 1 ^ value >> 31) >>> 0); -}; - -function writeVarint64(val, buf, pos) { - while (val.hi) { - buf[pos++] = val.lo & 127 | 128; - val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0; - val.hi >>>= 7; - } - while (val.lo > 127) { - buf[pos++] = val.lo & 127 | 128; - val.lo = val.lo >>> 7; - } - buf[pos++] = val.lo; -} - -/** - * Writes an unsigned 64 bit value as a varint. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.uint64 = function write_uint64(value) { - var bits = LongBits.from(value); - return this._push(writeVarint64, bits.length(), bits); -}; - -/** - * Writes a signed 64 bit value as a varint. - * @function - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.int64 = Writer.prototype.uint64; - -/** - * Writes a signed 64 bit value as a varint, zig-zag encoded. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.sint64 = function write_sint64(value) { - var bits = LongBits.from(value).zzEncode(); - return this._push(writeVarint64, bits.length(), bits); -}; - -/** - * Writes a boolish value as a varint. - * @param {boolean} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.bool = function write_bool(value) { - return this._push(writeByte, 1, value ? 1 : 0); -}; - -function writeFixed32(val, buf, pos) { - buf[pos ] = val & 255; - buf[pos + 1] = val >>> 8 & 255; - buf[pos + 2] = val >>> 16 & 255; - buf[pos + 3] = val >>> 24; -} - -/** - * Writes an unsigned 32 bit value as fixed 32 bits. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.fixed32 = function write_fixed32(value) { - return this._push(writeFixed32, 4, value >>> 0); -}; - -/** - * Writes a signed 32 bit value as fixed 32 bits. - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.sfixed32 = Writer.prototype.fixed32; - -/** - * Writes an unsigned 64 bit value as fixed 64 bits. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.fixed64 = function write_fixed64(value) { - var bits = LongBits.from(value); - return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi); -}; - -/** - * Writes a signed 64 bit value as fixed 64 bits. - * @function - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.sfixed64 = Writer.prototype.fixed64; - -/** - * Writes a float (32 bit). - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.float = function write_float(value) { - return this._push(util.float.writeFloatLE, 4, value); -}; - -/** - * Writes a double (64 bit float). - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.double = function write_double(value) { - return this._push(util.float.writeDoubleLE, 8, value); -}; - -var writeBytes = util.Array.prototype.set - ? function writeBytes_set(val, buf, pos) { - buf.set(val, pos); // also works for plain array values - } - /* istanbul ignore next */ - : function writeBytes_for(val, buf, pos) { - for (var i = 0; i < val.length; ++i) - buf[pos + i] = val[i]; - }; - -/** - * Writes a sequence of bytes. - * @param {Uint8Array|string} value Buffer or base64 encoded string to write - * @returns {Writer} `this` - */ -Writer.prototype.bytes = function write_bytes(value) { - var len = value.length >>> 0; - if (!len) - return this._push(writeByte, 1, 0); - if (util.isString(value)) { - var buf = Writer.alloc(len = base64.length(value)); - base64.decode(value, buf, 0); - value = buf; - } - return this.uint32(len)._push(writeBytes, len, value); -}; - -/** - * Writes a string. - * @param {string} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.string = function write_string(value) { - var len = utf8.length(value); - return len - ? this.uint32(len)._push(utf8.write, len, value) - : this._push(writeByte, 1, 0); -}; - -/** - * Forks this writer's state by pushing it to a stack. - * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state. - * @returns {Writer} `this` - */ -Writer.prototype.fork = function fork() { - this.states = new State(this); - this.head = this.tail = new Op(noop, 0, 0); - this.len = 0; - return this; -}; - -/** - * Resets this instance to the last state. - * @returns {Writer} `this` - */ -Writer.prototype.reset = function reset() { - if (this.states) { - this.head = this.states.head; - this.tail = this.states.tail; - this.len = this.states.len; - this.states = this.states.next; - } else { - this.head = this.tail = new Op(noop, 0, 0); - this.len = 0; - } - return this; -}; - -/** - * Resets to the last state and appends the fork state's current write length as a varint followed by its operations. - * @returns {Writer} `this` - */ -Writer.prototype.ldelim = function ldelim() { - var head = this.head, - tail = this.tail, - len = this.len; - this.reset().uint32(len); - if (len) { - this.tail.next = head.next; // skip noop - this.tail = tail; - this.len += len; - } - return this; -}; - -/** - * Finishes the write operation. - * @returns {Uint8Array} Finished buffer - */ -Writer.prototype.finish = function finish() { - var head = this.head.next, // skip noop - buf = this.constructor.alloc(this.len), - pos = 0; - while (head) { - head.fn(head.val, buf, pos); - pos += head.len; - head = head.next; - } - // this.head = this.tail = null; - return buf; -}; - -Writer._configure = function(BufferWriter_) { - BufferWriter = BufferWriter_; -}; - -},{"15":15}],17:[function(require,module,exports){ -"use strict"; -module.exports = BufferWriter; - -// extends Writer -var Writer = require(16); -(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter; - -var util = require(15); - -var Buffer = util.Buffer; - -/** - * Constructs a new buffer writer instance. - * @classdesc Wire format writer using node buffers. - * @extends Writer - * @constructor - */ -function BufferWriter() { - Writer.call(this); -} - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Buffer} Buffer - */ -BufferWriter.alloc = function alloc_buffer(size) { - return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size); -}; - -var writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === "set" - ? function writeBytesBuffer_set(val, buf, pos) { - buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited) - // also works for plain array values - } - /* istanbul ignore next */ - : function writeBytesBuffer_copy(val, buf, pos) { - if (val.copy) // Buffer values - val.copy(buf, pos, 0, val.length); - else for (var i = 0; i < val.length;) // plain array values - buf[pos++] = val[i++]; - }; - -/** - * @override - */ -BufferWriter.prototype.bytes = function write_bytes_buffer(value) { - if (util.isString(value)) - value = util._Buffer_from(value, "base64"); - var len = value.length >>> 0; - this.uint32(len); - if (len) - this._push(writeBytesBuffer, len, value); - return this; -}; - -function writeStringBuffer(val, buf, pos) { - if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions) - util.utf8.write(val, buf, pos); - else - buf.utf8Write(val, pos); -} - -/** - * @override - */ -BufferWriter.prototype.string = function write_string_buffer(value) { - var len = Buffer.byteLength(value); - this.uint32(len); - if (len) - this._push(writeStringBuffer, len, value); - return this; -}; - - -/** - * Finishes the write operation. - * @name BufferWriter#finish - * @function - * @returns {Buffer} Finished buffer - */ - -},{"15":15,"16":16}]},{},[8]) - -})(); -//# sourceMappingURL=protobuf.js.map diff --git a/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.js.map b/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.js.map deleted file mode 100644 index 7349e1f..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["lib/prelude.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/inquire/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/@protobufjs/utf8/index.js","../src/index-minimal","../src/reader.js","../src/reader_buffer.js","../src/roots.js","../src/rpc.js","../src/rpc/service.js","../src/util/longbits.js","../src/util/minimal.js","../src/writer.js","../src/writer_buffer.js"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function prelude(modules, cache, entries) {\n\n // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS\n // sources through a conflict-free require shim and is again wrapped within an iife that\n // provides a minification-friendly `undefined` var plus a global \"use strict\" directive\n // so that minification can remove the directives of each module.\n\n function $require(name) {\n var $module = cache[name];\n if (!$module)\n modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports);\n return $module.exports;\n }\n\n var protobuf = $require(entries[0]);\n\n // Expose globally\n protobuf.util.global.protobuf = protobuf;\n\n // Be nice to AMD\n if (typeof define === \"function\" && define.amd)\n define([\"long\"], function(Long) {\n if (Long && Long.isLong) {\n protobuf.util.Long = Long;\n protobuf.configure();\n }\n return protobuf;\n });\n\n // Be nice to CommonJS\n if (typeof module === \"object\" && module && module.exports)\n module.exports = protobuf;\n\n})/* end of prelude */","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(16);\nprotobuf.BufferWriter = require(17);\nprotobuf.Reader = require(9);\nprotobuf.BufferReader = require(10);\n\n// Utility\nprotobuf.util = require(15);\nprotobuf.rpc = require(12);\nprotobuf.roots = require(11);\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.Reader._configure(protobuf.BufferReader);\n protobuf.util._configure();\n}\n\n// Set up buffer utility according to the environment\nprotobuf.Writer._configure(protobuf.BufferWriter);\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(15);\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(9);\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(15);\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\n/* istanbul ignore else */\nif (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(13);\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(15);\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(15);\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(1);\n\n// converts to / from base64 encoded strings\nutil.base64 = require(2);\n\n// base class of rpc.Service\nutil.EventEmitter = require(3);\n\n// float handling accross browsers\nutil.float = require(4);\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(5);\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(7);\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(6);\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(14);\n\n// global object reference\nutil.global = typeof window !== \"undefined\" && window\n || typeof global !== \"undefined\" && global\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n * @const\n */\nutil.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node);\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: (new Error()).stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(15);\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(16);\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(15);\n\nvar Buffer = util.Buffer;\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\nBufferWriter.alloc = function alloc_buffer(size) {\n return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size);\n};\n\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else\n buf.utf8Write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.min.js b/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.min.js deleted file mode 100644 index 7cbaca2..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * protobuf.js v1.0.5 (c) 2016, daniel wirtz - * compiled fri, 14 aug 2020 05:32:50 utc - * licensed under the bsd-3-clause license - * see: https://github.com/apollographql/protobuf.js for details - */ -!function(b){"use strict";var r,u,t,n;r={1:[function(t,n){n.exports=function(t,n){var i=Array(arguments.length-1),e=0,r=2,s=!0;for(;r>2],r=(3&f)<<4,h=1;break;case 1:e[s++]=o[r|f>>4],r=(15&f)<<2,h=2;break;case 2:e[s++]=o[r|f>>6],e[s++]=o[63&f],h=0}8191>4,r=h,e=2;break;case 2:n[i++]=(15&r)<<4|(60&h)>>2,r=h,e=3;break;case 3:n[i++]=(3&r)<<6|h,e=0}}if(1===e)throw Error(c);return i-u},r.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}},{}],3:[function(t,n){function i(){this.t={}}(n.exports=i).prototype.on=function(t,n,i){return(this.t[t]||(this.t[t]=[])).push({fn:n,ctx:i||this}),this},i.prototype.off=function(t,n){if(t===b)this.t={};else if(n===b)this.t[t]=[];else for(var i=this.t[t],r=0;r>>0,i,r);else if(n<11754943508222875e-54)t((u<<31|Math.round(n/1401298464324817e-60))>>>0,i,r);else{var e=Math.floor(Math.log(n)/Math.LN2);t((u<<31|e+127<<23|8388607&Math.round(n*Math.pow(2,-e)*8388608))>>>0,i,r)}}function n(t,n,i){var r=t(n,i),u=2*(r>>31)+1,e=r>>>23&255,s=8388607&r;return 255===e?s?NaN:u*(1/0):0===e?1401298464324817e-60*u*s:u*Math.pow(2,e-150)*(s+8388608)}h.writeFloatLE=t.bind(null,r),h.writeFloatBE=t.bind(null,u),h.readFloatLE=n.bind(null,e),h.readFloatBE=n.bind(null,s)}(),"undefined"!=typeof Float64Array?function(){var r=new Float64Array([-0]),u=new Uint8Array(r.buffer),t=128===u[7];function n(t,n,i){r[0]=t,n[i]=u[0],n[i+1]=u[1],n[i+2]=u[2],n[i+3]=u[3],n[i+4]=u[4],n[i+5]=u[5],n[i+6]=u[6],n[i+7]=u[7]}function i(t,n,i){r[0]=t,n[i]=u[7],n[i+1]=u[6],n[i+2]=u[5],n[i+3]=u[4],n[i+4]=u[3],n[i+5]=u[2],n[i+6]=u[1],n[i+7]=u[0]}function e(t,n){return u[0]=t[n],u[1]=t[n+1],u[2]=t[n+2],u[3]=t[n+3],u[4]=t[n+4],u[5]=t[n+5],u[6]=t[n+6],u[7]=t[n+7],r[0]}function s(t,n){return u[7]=t[n],u[6]=t[n+1],u[5]=t[n+2],u[4]=t[n+3],u[3]=t[n+4],u[2]=t[n+5],u[1]=t[n+6],u[0]=t[n+7],r[0]}h.writeDoubleLE=t?n:i,h.writeDoubleBE=t?i:n,h.readDoubleLE=t?e:s,h.readDoubleBE=t?s:e}():function(){function t(t,n,i,r,u,e){var s=r<0?1:0;if(s&&(r=-r),0===r)t(0,u,e+n),t(0<1/r?0:2147483648,u,e+i);else if(isNaN(r))t(0,u,e+n),t(2146959360,u,e+i);else if(17976931348623157e292>>0,u,e+i);else{var h;if(r<22250738585072014e-324)t((h=r/5e-324)>>>0,u,e+n),t((s<<31|h/4294967296)>>>0,u,e+i);else{var f=Math.floor(Math.log(r)/Math.LN2);1024===f&&(f=1023),t(4503599627370496*(h=r*Math.pow(2,-f))>>>0,u,e+n),t((s<<31|f+1023<<20|1048576*h&1048575)>>>0,u,e+i)}}}function n(t,n,i,r,u){var e=t(r,u+n),s=t(r,u+i),h=2*(s>>31)+1,f=s>>>20&2047,o=4294967296*(1048575&s)+e;return 2047===f?o?NaN:h*(1/0):0===f?5e-324*h*o:h*Math.pow(2,f-1075)*(o+4503599627370496)}h.writeDoubleLE=t.bind(null,r,0,4),h.writeDoubleBE=t.bind(null,u,4,0),h.readDoubleLE=n.bind(null,e,0,4),h.readDoubleBE=n.bind(null,s,4,0)}(),h}function r(t,n,i){n[i]=255&t,n[i+1]=t>>>8&255,n[i+2]=t>>>16&255,n[i+3]=t>>>24}function u(t,n,i){n[i]=t>>>24,n[i+1]=t>>>16&255,n[i+2]=t>>>8&255,n[i+3]=255&t}function e(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16|t[n+3]<<24)>>>0}function s(t,n){return(t[n]<<24|t[n+1]<<16|t[n+2]<<8|t[n+3])>>>0}n.exports=i(i)},{}],5:[function(t,n,i){function r(t){try{var n=eval("require")(t);if(n&&(n.length||Object.keys(n).length))return n}catch(t){}return null}n.exports=r},{}],6:[function(t,n){n.exports=function(i,r,t){var u=t||8192,e=u>>>1,s=null,h=u;return function(t){if(t<1||e>10),e[s++]=56320+(1023&r)):e[s++]=(15&r)<<12|(63&t[n++])<<6|63&t[n++],8191>6|192:(55296==(64512&r)&&56320==(64512&(u=t.charCodeAt(s+1)))?(r=65536+((1023&r)<<10)+(1023&u),++s,n[i++]=r>>18|240,n[i++]=r>>12&63|128):n[i++]=r>>12|224,n[i++]=r>>6&63|128),n[i++]=63&r|128);return i-e}},{}],8:[function(t,n,i){var r=i;function u(){r.Reader.n(r.BufferReader),r.util.n()}r.build="minimal",r.Writer=t(16),r.BufferWriter=t(17),r.Reader=t(9),r.BufferReader=t(10),r.util=t(15),r.rpc=t(12),r.roots=t(11),r.configure=u,r.Writer.n(r.BufferWriter),u()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(t,n){n.exports=h;var i,r=t(15),u=r.LongBits,e=r.utf8;function s(t,n){return RangeError("index out of range: "+t.pos+" + "+(n||1)+" > "+t.len)}function h(t){this.buf=t,this.pos=0,this.len=t.length}var f,o="undefined"!=typeof Uint8Array?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new h(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new h(t);throw Error("illegal buffer")};function c(){var t=new u(0,0),n=0;if(!(4=this.len)throw s(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*n)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(127&this.buf[this.pos++])<<7*n)>>>0,t}for(;n<4;++n)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*n)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t;if(n=0,4>>0,this.buf[this.pos++]<128)return t}else for(;n<5;++n){if(this.pos>=this.len)throw s(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*n+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function a(t,n){return(t[n-4]|t[n-3]<<8|t[n-2]<<16|t[n-1]<<24)>>>0}function l(){if(this.pos+8>this.len)throw s(this,8);return new u(a(this.buf,this.pos+=4),a(this.buf,this.pos+=4))}h.create=r.Buffer?function(t){return(h.create=function(t){return r.Buffer.isBuffer(t)?new i(t):o(t)})(t)}:o,h.prototype.i=r.Array.prototype.subarray||r.Array.prototype.slice,h.prototype.uint32=(f=4294967295,function(){if(f=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return f;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return f}),h.prototype.int32=function(){return 0|this.uint32()},h.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},h.prototype.bool=function(){return 0!==this.uint32()},h.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return a(this.buf,this.pos+=4)},h.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|a(this.buf,this.pos+=4)},h.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var t=r.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},h.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var t=r.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},h.prototype.bytes=function(){var t=this.uint32(),n=this.pos,i=this.pos+t;if(i>this.len)throw s(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(n,i):n===i?new this.buf.constructor(0):this.i.call(this.buf,n,i)},h.prototype.string=function(){var t=this.bytes();return e.read(t,0,t.length)},h.prototype.skip=function(t){if("number"==typeof t){if(this.pos+t>this.len)throw s(this,t);this.pos+=t}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},h.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(t=7&this.uint32());)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this},h.n=function(t){i=t;var n=r.Long?"toLong":"toNumber";r.merge(h.prototype,{int64:function(){return c.call(this)[n](!1)},uint64:function(){return c.call(this)[n](!0)},sint64:function(){return c.call(this).zzDecode()[n](!1)},fixed64:function(){return l.call(this)[n](!0)},sfixed64:function(){return l.call(this)[n](!1)}})}},{15:15}],10:[function(t,n){n.exports=u;var i=t(9);(u.prototype=Object.create(i.prototype)).constructor=u;var r=t(15);function u(t){i.call(this,t)}r.Buffer&&(u.prototype.i=r.Buffer.prototype.slice),u.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len))}},{15:15,9:9}],11:[function(t,n){n.exports={}},{}],12:[function(t,n,i){i.Service=t(13)},{13:13}],13:[function(t,n){n.exports=i;var h=t(15);function i(t,n,i){if("function"!=typeof t)throw TypeError("rpcImpl must be a function");h.EventEmitter.call(this),this.rpcImpl=t,this.requestDelimited=!!n,this.responseDelimited=!!i}((i.prototype=Object.create(h.EventEmitter.prototype)).constructor=i).prototype.rpcCall=function t(i,n,r,u,e){if(!u)throw TypeError("request must be specified");var s=this;if(!e)return h.asPromise(t,s,i,n,r,u);if(!s.rpcImpl)return setTimeout(function(){e(Error("already ended"))},0),b;try{return s.rpcImpl(i,n[s.requestDelimited?"encodeDelimited":"encode"](u).finish(),function(t,n){if(t)return s.emit("error",t,i),e(t);if(null===n)return s.end(!0),b;if(!(n instanceof r))try{n=r[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(t){return s.emit("error",t,i),e(t)}return s.emit("data",n,i),e(null,n)})}catch(t){return s.emit("error",t,i),setTimeout(function(){e(t)},0),b}},i.prototype.end=function(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(t,n){n.exports=u;var i=t(15);function u(t,n){this.lo=t>>>0,this.hi=n>>>0}var e=u.zero=new u(0,0);e.toNumber=function(){return 0},e.zzEncode=e.zzDecode=function(){return this},e.length=function(){return 1};var r=u.zeroHash="\0\0\0\0\0\0\0\0";u.fromNumber=function(t){if(0===t)return e;var n=t<0;n&&(t=-t);var i=t>>>0,r=(t-i)/4294967296>>>0;return n&&(r=~r>>>0,i=~i>>>0,4294967295<++i&&(i=0,4294967295<++r&&(r=0))),new u(i,r)},u.from=function(t){if("number"==typeof t)return u.fromNumber(t);if(i.isString(t)){if(!i.Long)return u.fromNumber(parseInt(t,10));t=i.Long.fromString(t)}return t.low||t.high?new u(t.low>>>0,t.high>>>0):e},u.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var n=1+~this.lo>>>0,i=~this.hi>>>0;return n||(i=i+1>>>0),-(n+4294967296*i)}return this.lo+4294967296*this.hi},u.prototype.toLong=function(t){return i.Long?new i.Long(0|this.lo,0|this.hi,!!t):{low:0|this.lo,high:0|this.hi,unsigned:!!t}};var s=String.prototype.charCodeAt;u.fromHash=function(t){return t===r?e:new u((s.call(t,0)|s.call(t,1)<<8|s.call(t,2)<<16|s.call(t,3)<<24)>>>0,(s.call(t,4)|s.call(t,5)<<8|s.call(t,6)<<16|s.call(t,7)<<24)>>>0)},u.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},u.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},u.prototype.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},u.prototype.length=function(){var t=this.lo,n=(this.lo>>>28|this.hi<<4)>>>0,i=this.hi>>>24;return 0===i?0===n?t<16384?t<128?1:2:t<2097152?3:4:n<16384?n<128?5:6:n<2097152?7:8:i<128?9:10}},{15:15}],15:[function(t,n,i){var r=i;function u(t,n,i){for(var r=Object.keys(n),u=0;u>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;127>>7;n[i++]=t.lo}function w(t,n,i){n[i]=255&t,n[i+1]=t>>>8&255,n[i+2]=t>>>16&255,n[i+3]=t>>>24}c.create=r.Buffer?function(){return(c.create=function(){return new i})()}:function(){return new c},c.alloc=function(t){return new r.Array(t)},r.Array!==Array&&(c.alloc=r.pool(c.alloc,r.Array.prototype.subarray)),c.prototype.e=function(t,n,i){return this.tail=this.tail.next=new h(t,n,i),this.len+=n,this},(l.prototype=Object.create(h.prototype)).fn=function(t,n,i){for(;127>>=7;n[i]=t},c.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new l((t>>>=0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},c.prototype.int32=function(t){return t<0?this.e(v,10,u.fromNumber(t)):this.uint32(t)},c.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},c.prototype.int64=c.prototype.uint64=function(t){var n=u.from(t);return this.e(v,n.length(),n)},c.prototype.sint64=function(t){var n=u.from(t).zzEncode();return this.e(v,n.length(),n)},c.prototype.bool=function(t){return this.e(a,1,t?1:0)},c.prototype.sfixed32=c.prototype.fixed32=function(t){return this.e(w,4,t>>>0)},c.prototype.sfixed64=c.prototype.fixed64=function(t){var n=u.from(t);return this.e(w,4,n.lo).e(w,4,n.hi)},c.prototype.float=function(t){return this.e(r.float.writeFloatLE,4,t)},c.prototype.double=function(t){return this.e(r.float.writeDoubleLE,8,t)};var y=r.Array.prototype.set?function(t,n,i){n.set(t,i)}:function(t,n,i){for(var r=0;r>>0;if(!n)return this.e(a,1,0);if(r.isString(t)){var i=c.alloc(n=e.length(t));e.decode(t,i,0),t=i}return this.uint32(n).e(y,n,t)},c.prototype.string=function(t){var n=s.length(t);return n?this.uint32(n).e(s.write,n,t):this.e(a,1,0)},c.prototype.fork=function(){return this.states=new o(this),this.head=this.tail=new h(f,0,0),this.len=0,this},c.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new h(f,0,0),this.len=0),this},c.prototype.ldelim=function(){var t=this.head,n=this.tail,i=this.len;return this.reset().uint32(i),i&&(this.tail.next=t.next,this.tail=n,this.len+=i),this},c.prototype.finish=function(){for(var t=this.head.next,n=this.constructor.alloc(this.len),i=0;t;)t.fn(t.val,n,i),i+=t.len,t=t.next;return n},c.n=function(t){i=t}},{15:15}],17:[function(t,n){n.exports=e;var i=t(16);(e.prototype=Object.create(i.prototype)).constructor=e;var r=t(15),u=r.Buffer;function e(){i.call(this)}e.alloc=function(t){return(e.alloc=r.u)(t)};var s=u&&u.prototype instanceof Uint8Array&&"set"===u.prototype.set.name?function(t,n,i){n.set(t,i)}:function(t,n,i){if(t.copy)t.copy(n,i,0,t.length);else for(var r=0;r>>0;return this.uint32(n),n&&this.e(s,n,t),this},e.prototype.string=function(t){var n=u.byteLength(t);return this.uint32(n),n&&this.e(h,n,t),this}},{15:15,16:16}]},u={},t=[8],n=function t(n){var i=u[n];return i||r[n][0].call(i=u[n]={exports:{}},t,i,i.exports),i.exports}(t[0]),n.util.global.protobuf=n,"function"==typeof define&&define.amd&&define(["long"],function(t){return t&&t.isLong&&(n.util.Long=t,n.configure()),n}),"object"==typeof module&&module&&module.exports&&(module.exports=n)}(); -//# sourceMappingURL=protobuf.min.js.map diff --git a/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.min.js.map b/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.min.js.map deleted file mode 100644 index 81278b0..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/minimal/protobuf.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["lib/prelude.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/inquire/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/@protobufjs/utf8/index.js","../src/index-minimal","../src/reader.js","../src/reader_buffer.js","../src/roots.js","../src/rpc.js","../src/rpc/service.js","../src/util/longbits.js","../src/util/minimal.js","../src/writer.js","../src/writer_buffer.js"],"names":["undefined","modules","cache","entries","protobuf","1","require","module","exports","fn","ctx","params","Array","arguments","length","offset","index","pending","Promise","resolve","reject","err","apply","base64","string","p","n","charAt","Math","ceil","b64","s64","i","encode","buffer","start","end","t","parts","chunk","j","b","push","String","fromCharCode","slice","join","invalidEncoding","decode","c","charCodeAt","Error","test","EventEmitter","this","_listeners","prototype","on","evt","off","listeners","splice","emit","args","factory","Float32Array","f32","f8b","Uint8Array","le","writeFloat_f32_cpy","val","buf","pos","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatLE","writeFloatBE","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","isNaN","round","exponent","floor","log","LN2","pow","readFloat_ieee754","readUint","uint","mantissa","NaN","Infinity","bind","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","lo","hi","inquire","moduleName","mod","eval","Object","keys","e","alloc","size","SIZE","MAX","slab","call","utf8","len","read","write","c1","c2","configure","Reader","_configure","BufferReader","util","build","Writer","BufferWriter","rpc","roots","LongBits","indexOutOfRange","reader","writeLength","RangeError","value","create_array","isArray","readLongVarint","bits","readFixed32_end","readFixed64","create","Buffer","isBuffer","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","float","double","bytes","constructor","skip","skipType","wireType","BufferReader_","Long","merge","int64","uint64","sint64","zzDecode","fixed64","sfixed64","utf8Slice","min","Service","rpcImpl","requestDelimited","responseDelimited","TypeError","rpcCall","method","requestCtor","responseCtor","request","callback","self","asPromise","setTimeout","finish","response","endedByRPC","zero","toNumber","zzEncode","zeroHash","fromNumber","from","isString","parseInt","fromString","low","high","unsigned","toLong","fromHash","hash","toHash","mask","part0","part1","part2","dst","src","ifNotSet","newError","name","CustomError","message","properties","defineProperty","get","captureStackTrace","stack","toString","pool","global","window","emptyArray","freeze","emptyObject","isNode","process","versions","node","isInteger","Number","isFinite","isObject","isset","isSet","obj","prop","hasOwnProperty","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","fromBits","lcFirst","str","toLowerCase","substring","ProtocolError","oneOfGetter","fieldNames","fieldMap","oneOfSetter","toJSONOptions","longs","enums","json","encoding","allocUnsafe","Op","next","noop","State","writer","head","tail","states","writeByte","VarintOp","writeVarint64","writeFixed32","_push","writeBytes","set","fork","reset","ldelim","BufferWriter_","writeBytesBuffer","copy","writeStringBuffer","byteLength","$require","$module","define","amd","isLong"],"mappings":";;;;;;CAAA,SAAAA,GAAA,aAAA,IAAAC,EAAAC,EAAAC,EAcAC,EAdAH,EAiCA,CAAAI,EAAA,CAAA,SAAAC,EAAAC,GChCAA,EAAAC,QAmBA,SAAAC,EAAAC,GACA,IAAAC,EAAAC,MAAAC,UAAAC,OAAA,GACAC,EAAA,EACAC,EAAA,EACAC,GAAA,EACA,KAAAD,EAAAH,UAAAC,QACAH,EAAAI,KAAAF,UAAAG,KACA,OAAA,IAAAE,QAAA,SAAAC,EAAAC,GACAT,EAAAI,GAAA,SAAAM,GACA,GAAAJ,EAEA,GADAA,GAAA,EACAI,EACAD,EAAAC,OACA,CAGA,IAFA,IAAAV,EAAAC,MAAAC,UAAAC,OAAA,GACAC,EAAA,EACAA,EAAAJ,EAAAG,QACAH,EAAAI,KAAAF,UAAAE,GACAI,EAAAG,MAAA,KAAAX,KAIA,IACAF,EAAAa,MAAAZ,GAAA,KAAAC,GACA,MAAAU,GACAJ,IACAA,GAAA,EACAG,EAAAC,gCCxCA,IAAAE,EAAAf,EAOAe,EAAAT,OAAA,SAAAU,GACA,IAAAC,EAAAD,EAAAV,OACA,IAAAW,EACA,OAAA,EAEA,IADA,IAAAC,EAAA,EACA,IAAAD,EAAA,GAAA,MAAAD,EAAAG,OAAAF,MACAC,EACA,OAAAE,KAAAC,KAAA,EAAAL,EAAAV,QAAA,EAAAY,GAUA,IANA,IAAAI,EAAAlB,MAAA,IAGAmB,EAAAnB,MAAA,KAGAoB,EAAA,EAAAA,EAAA,IACAD,EAAAD,EAAAE,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,EAAAA,EAAA,GAAA,IAAAA,IASAT,EAAAU,OAAA,SAAAC,EAAAC,EAAAC,GAMA,IALA,IAIAC,EAJAC,EAAA,KACAC,EAAA,GACAP,EAAA,EACAQ,EAAA,EAEAL,EAAAC,GAAA,CACA,IAAAK,EAAAP,EAAAC,KACA,OAAAK,GACA,KAAA,EACAD,EAAAP,KAAAF,EAAAW,GAAA,GACAJ,GAAA,EAAAI,IAAA,EACAD,EAAA,EACA,MACA,KAAA,EACAD,EAAAP,KAAAF,EAAAO,EAAAI,GAAA,GACAJ,GAAA,GAAAI,IAAA,EACAD,EAAA,EACA,MACA,KAAA,EACAD,EAAAP,KAAAF,EAAAO,EAAAI,GAAA,GACAF,EAAAP,KAAAF,EAAA,GAAAW,GACAD,EAAA,EAGA,KAAAR,KACAM,IAAAA,EAAA,KAAAI,KAAAC,OAAAC,aAAAtB,MAAAqB,OAAAJ,IACAP,EAAA,GASA,OANAQ,IACAD,EAAAP,KAAAF,EAAAO,GACAE,EAAAP,KAAA,GACA,IAAAQ,IACAD,EAAAP,KAAA,KAEAM,GACAN,GACAM,EAAAI,KAAAC,OAAAC,aAAAtB,MAAAqB,OAAAJ,EAAAM,MAAA,EAAAb,KACAM,EAAAQ,KAAA,KAEAH,OAAAC,aAAAtB,MAAAqB,OAAAJ,EAAAM,MAAA,EAAAb,KAGA,IAAAe,EAAA,mBAUAxB,EAAAyB,OAAA,SAAAxB,EAAAU,EAAAnB,GAIA,IAHA,IAEAsB,EAFAF,EAAApB,EACAyB,EAAA,EAEAR,EAAA,EAAAA,EAAAR,EAAAV,QAAA,CACA,IAAAmC,EAAAzB,EAAA0B,WAAAlB,KACA,GAAA,KAAAiB,GAAA,EAAAT,EACA,MACA,IAAAS,EAAAlB,EAAAkB,MAAAjD,EACA,MAAAmD,MAAAJ,GACA,OAAAP,GACA,KAAA,EACAH,EAAAY,EACAT,EAAA,EACA,MACA,KAAA,EACAN,EAAAnB,KAAAsB,GAAA,GAAA,GAAAY,IAAA,EACAZ,EAAAY,EACAT,EAAA,EACA,MACA,KAAA,EACAN,EAAAnB,MAAA,GAAAsB,IAAA,GAAA,GAAAY,IAAA,EACAZ,EAAAY,EACAT,EAAA,EACA,MACA,KAAA,EACAN,EAAAnB,MAAA,EAAAsB,IAAA,EAAAY,EACAT,EAAA,GAIA,GAAA,IAAAA,EACA,MAAAW,MAAAJ,GACA,OAAAhC,EAAAoB,GAQAZ,EAAA6B,KAAA,SAAA5B,GACA,MAAA,mEAAA4B,KAAA5B,0BChIA,SAAA6B,IAOAC,KAAAC,EAAA,IAfAhD,EAAAC,QAAA6C,GAyBAG,UAAAC,GAAA,SAAAC,EAAAjD,EAAAC,GAKA,OAJA4C,KAAAC,EAAAG,KAAAJ,KAAAC,EAAAG,GAAA,KAAAhB,KAAA,CACAjC,GAAAA,EACAC,IAAAA,GAAA4C,OAEAA,MASAD,EAAAG,UAAAG,IAAA,SAAAD,EAAAjD,GACA,GAAAiD,IAAA1D,EACAsD,KAAAC,EAAA,QAEA,GAAA9C,IAAAT,EACAsD,KAAAC,EAAAG,GAAA,QAGA,IADA,IAAAE,EAAAN,KAAAC,EAAAG,GACA1B,EAAA,EAAAA,EAAA4B,EAAA9C,QACA8C,EAAA5B,GAAAvB,KAAAA,EACAmD,EAAAC,OAAA7B,EAAA,KAEAA,EAGA,OAAAsB,MASAD,EAAAG,UAAAM,KAAA,SAAAJ,GACA,IAAAE,EAAAN,KAAAC,EAAAG,GACA,GAAAE,EAAA,CAGA,IAFA,IAAAG,EAAA,GACA/B,EAAA,EACAA,EAAAnB,UAAAC,QACAiD,EAAArB,KAAA7B,UAAAmB,MACA,IAAAA,EAAA,EAAAA,EAAA4B,EAAA9C,QACA8C,EAAA5B,GAAAvB,GAAAa,MAAAsC,EAAA5B,KAAAtB,IAAAqD,GAEA,OAAAT,4BCaA,SAAAU,EAAAxD,GAwNA,MArNA,oBAAAyD,aAAA,WAEA,IAAAC,EAAA,IAAAD,aAAA,EAAA,IACAE,EAAA,IAAAC,WAAAF,EAAAhC,QACAmC,EAAA,MAAAF,EAAA,GAEA,SAAAG,EAAAC,EAAAC,EAAAC,GACAP,EAAA,GAAAK,EACAC,EAAAC,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GAGA,SAAAO,EAAAH,EAAAC,EAAAC,GACAP,EAAA,GAAAK,EACAC,EAAAC,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GAQA,SAAAQ,EAAAH,EAAAC,GAKA,OAJAN,EAAA,GAAAK,EAAAC,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAP,EAAA,GAGA,SAAAU,EAAAJ,EAAAC,GAKA,OAJAN,EAAA,GAAAK,EAAAC,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAP,EAAA,GAjBA1D,EAAAqE,aAAAR,EAAAC,EAAAI,EAEAlE,EAAAsE,aAAAT,EAAAK,EAAAJ,EAmBA9D,EAAAuE,YAAAV,EAAAM,EAAAC,EAEApE,EAAAwE,YAAAX,EAAAO,EAAAD,EA9CA,GAiDA,WAEA,SAAAM,EAAAC,EAAAX,EAAAC,EAAAC,GACA,IAAAU,EAAAZ,EAAA,EAAA,EAAA,EAGA,GAFAY,IACAZ,GAAAA,GACA,IAAAA,EACAW,EAAA,EAAA,EAAAX,EAAA,EAAA,WAAAC,EAAAC,QACA,GAAAW,MAAAb,GACAW,EAAA,WAAAV,EAAAC,QACA,GAAA,qBAAAF,EACAW,GAAAC,GAAA,GAAA,cAAA,EAAAX,EAAAC,QACA,GAAAF,EAAA,sBACAW,GAAAC,GAAA,GAAAvD,KAAAyD,MAAAd,EAAA,yBAAA,EAAAC,EAAAC,OACA,CACA,IAAAa,EAAA1D,KAAA2D,MAAA3D,KAAA4D,IAAAjB,GAAA3C,KAAA6D,KAEAP,GAAAC,GAAA,GAAAG,EAAA,KAAA,GADA,QAAA1D,KAAAyD,MAAAd,EAAA3C,KAAA8D,IAAA,GAAAJ,GAAA,YACA,EAAAd,EAAAC,IAOA,SAAAkB,EAAAC,EAAApB,EAAAC,GACA,IAAAoB,EAAAD,EAAApB,EAAAC,GACAU,EAAA,GAAAU,GAAA,IAAA,EACAP,EAAAO,IAAA,GAAA,IACAC,EAAA,QAAAD,EACA,OAAA,MAAAP,EACAQ,EACAC,IACAZ,GAAAa,EAAAA,GACA,IAAAV,EACA,qBAAAH,EAAAW,EACAX,EAAAvD,KAAA8D,IAAA,EAAAJ,EAAA,MAAAQ,EAAA,SAdAtF,EAAAqE,aAAAI,EAAAgB,KAAA,KAAAC,GACA1F,EAAAsE,aAAAG,EAAAgB,KAAA,KAAAE,GAgBA3F,EAAAuE,YAAAY,EAAAM,KAAA,KAAAG,GACA5F,EAAAwE,YAAAW,EAAAM,KAAA,KAAAI,GAvCA,GA4CA,oBAAAC,aAAA,WAEA,IAAAC,EAAA,IAAAD,aAAA,EAAA,IACAnC,EAAA,IAAAC,WAAAmC,EAAArE,QACAmC,EAAA,MAAAF,EAAA,GAEA,SAAAqC,EAAAjC,EAAAC,EAAAC,GACA8B,EAAA,GAAAhC,EACAC,EAAAC,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GAGA,SAAAsC,EAAAlC,EAAAC,EAAAC,GACA8B,EAAA,GAAAhC,EACAC,EAAAC,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GACAK,EAAAC,EAAA,GAAAN,EAAA,GAQA,SAAAuC,EAAAlC,EAAAC,GASA,OARAN,EAAA,GAAAK,EAAAC,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACA8B,EAAA,GAGA,SAAAI,EAAAnC,EAAAC,GASA,OARAN,EAAA,GAAAK,EAAAC,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACAN,EAAA,GAAAK,EAAAC,EAAA,GACA8B,EAAA,GAzBA/F,EAAAoG,cAAAvC,EAAAmC,EAAAC,EAEAjG,EAAAqG,cAAAxC,EAAAoC,EAAAD,EA2BAhG,EAAAsG,aAAAzC,EAAAqC,EAAAC,EAEAnG,EAAAuG,aAAA1C,EAAAsC,EAAAD,EA9DA,GAiEA,WAEA,SAAAM,EAAA9B,EAAA+B,EAAAC,EAAA3C,EAAAC,EAAAC,GACA,IAAAU,EAAAZ,EAAA,EAAA,EAAA,EAGA,GAFAY,IACAZ,GAAAA,GACA,IAAAA,EACAW,EAAA,EAAAV,EAAAC,EAAAwC,GACA/B,EAAA,EAAA,EAAAX,EAAA,EAAA,WAAAC,EAAAC,EAAAyC,QACA,GAAA9B,MAAAb,GACAW,EAAA,EAAAV,EAAAC,EAAAwC,GACA/B,EAAA,WAAAV,EAAAC,EAAAyC,QACA,GAAA,sBAAA3C,EACAW,EAAA,EAAAV,EAAAC,EAAAwC,GACA/B,GAAAC,GAAA,GAAA,cAAA,EAAAX,EAAAC,EAAAyC,OACA,CACA,IAAApB,EACA,GAAAvB,EAAA,uBAEAW,GADAY,EAAAvB,EAAA,UACA,EAAAC,EAAAC,EAAAwC,GACA/B,GAAAC,GAAA,GAAAW,EAAA,cAAA,EAAAtB,EAAAC,EAAAyC,OACA,CACA,IAAA5B,EAAA1D,KAAA2D,MAAA3D,KAAA4D,IAAAjB,GAAA3C,KAAA6D,KACA,OAAAH,IACAA,EAAA,MAEAJ,EAAA,kBADAY,EAAAvB,EAAA3C,KAAA8D,IAAA,GAAAJ,MACA,EAAAd,EAAAC,EAAAwC,GACA/B,GAAAC,GAAA,GAAAG,EAAA,MAAA,GAAA,QAAAQ,EAAA,WAAA,EAAAtB,EAAAC,EAAAyC,KAQA,SAAAC,EAAAvB,EAAAqB,EAAAC,EAAA1C,EAAAC,GACA,IAAA2C,EAAAxB,EAAApB,EAAAC,EAAAwC,GACAI,EAAAzB,EAAApB,EAAAC,EAAAyC,GACA/B,EAAA,GAAAkC,GAAA,IAAA,EACA/B,EAAA+B,IAAA,GAAA,KACAvB,EAAA,YAAA,QAAAuB,GAAAD,EACA,OAAA,OAAA9B,EACAQ,EACAC,IACAZ,GAAAa,EAAAA,GACA,IAAAV,EACA,OAAAH,EAAAW,EACAX,EAAAvD,KAAA8D,IAAA,EAAAJ,EAAA,OAAAQ,EAAA,kBAfAtF,EAAAoG,cAAAI,EAAAf,KAAA,KAAAC,EAAA,EAAA,GACA1F,EAAAqG,cAAAG,EAAAf,KAAA,KAAAE,EAAA,EAAA,GAiBA3F,EAAAsG,aAAAK,EAAAlB,KAAA,KAAAG,EAAA,EAAA,GACA5F,EAAAuG,aAAAI,EAAAlB,KAAA,KAAAI,EAAA,EAAA,GAnDA,GAuDA7F,EAKA,SAAA0F,EAAA3B,EAAAC,EAAAC,GACAD,EAAAC,GAAA,IAAAF,EACAC,EAAAC,EAAA,GAAAF,IAAA,EAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,GAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,GAGA,SAAA4B,EAAA5B,EAAAC,EAAAC,GACAD,EAAAC,GAAAF,IAAA,GACAC,EAAAC,EAAA,GAAAF,IAAA,GAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,EAAA,IACAC,EAAAC,EAAA,GAAA,IAAAF,EAGA,SAAA6B,EAAA5B,EAAAC,GACA,OAAAD,EAAAC,GACAD,EAAAC,EAAA,IAAA,EACAD,EAAAC,EAAA,IAAA,GACAD,EAAAC,EAAA,IAAA,MAAA,EAGA,SAAA4B,EAAA7B,EAAAC,GACA,OAAAD,EAAAC,IAAA,GACAD,EAAAC,EAAA,IAAA,GACAD,EAAAC,EAAA,IAAA,EACAD,EAAAC,EAAA,MAAA,EA3UAlE,EAAAC,QAAAwD,EAAAA,2BCOA,SAAAsD,EAAAC,GACA,IACA,IAAAC,EAAAC,KAAA,UAAAA,CAAAF,GACA,GAAAC,IAAAA,EAAA1G,QAAA4G,OAAAC,KAAAH,GAAA1G,QACA,OAAA0G,EACA,MAAAI,IACA,OAAA,KAdArH,EAAAC,QAAA8G,wBCAA/G,EAAAC,QA6BA,SAAAqH,EAAAhF,EAAAiF,GACA,IAAAC,EAAAD,GAAA,KACAE,EAAAD,IAAA,EACAE,EAAA,KACAlH,EAAAgH,EACA,OAAA,SAAAD,GACA,GAAAA,EAAA,GAAAE,EAAAF,EACA,OAAAD,EAAAC,GACAC,EAAAhH,EAAA+G,IACAG,EAAAJ,EAAAE,GACAhH,EAAA,GAEA,IAAAyD,EAAA3B,EAAAqF,KAAAD,EAAAlH,EAAAA,GAAA+G,GAGA,OAFA,EAAA/G,IACAA,EAAA,GAAA,EAAAA,IACAyD,4BCtCA,IAAA2D,EAAA3H,EAOA2H,EAAArH,OAAA,SAAAU,GAGA,IAFA,IAAA4G,EAAA,EACAnF,EAAA,EACAjB,EAAA,EAAAA,EAAAR,EAAAV,SAAAkB,GACAiB,EAAAzB,EAAA0B,WAAAlB,IACA,IACAoG,GAAA,EACAnF,EAAA,KACAmF,GAAA,EACA,QAAA,MAAAnF,IAAA,QAAA,MAAAzB,EAAA0B,WAAAlB,EAAA,OACAA,EACAoG,GAAA,GAEAA,GAAA,EAEA,OAAAA,GAUAD,EAAAE,KAAA,SAAAnG,EAAAC,EAAAC,GAEA,GADAA,EAAAD,EACA,EACA,MAAA,GAKA,IAJA,IAGAE,EAHAC,EAAA,KACAC,EAAA,GACAP,EAAA,EAEAG,EAAAC,IACAC,EAAAH,EAAAC,MACA,IACAI,EAAAP,KAAAK,EACA,IAAAA,GAAAA,EAAA,IACAE,EAAAP,MAAA,GAAAK,IAAA,EAAA,GAAAH,EAAAC,KACA,IAAAE,GAAAA,EAAA,KACAA,IAAA,EAAAA,IAAA,IAAA,GAAAH,EAAAC,OAAA,IAAA,GAAAD,EAAAC,OAAA,EAAA,GAAAD,EAAAC,MAAA,MACAI,EAAAP,KAAA,OAAAK,GAAA,IACAE,EAAAP,KAAA,OAAA,KAAAK,IAEAE,EAAAP,MAAA,GAAAK,IAAA,IAAA,GAAAH,EAAAC,OAAA,EAAA,GAAAD,EAAAC,KACA,KAAAH,KACAM,IAAAA,EAAA,KAAAI,KAAAC,OAAAC,aAAAtB,MAAAqB,OAAAJ,IACAP,EAAA,GAGA,OAAAM,GACAN,GACAM,EAAAI,KAAAC,OAAAC,aAAAtB,MAAAqB,OAAAJ,EAAAM,MAAA,EAAAb,KACAM,EAAAQ,KAAA,KAEAH,OAAAC,aAAAtB,MAAAqB,OAAAJ,EAAAM,MAAA,EAAAb,KAUAmG,EAAAG,MAAA,SAAA9G,EAAAU,EAAAnB,GAIA,IAHA,IACAwH,EACAC,EAFArG,EAAApB,EAGAiB,EAAA,EAAAA,EAAAR,EAAAV,SAAAkB,GACAuG,EAAA/G,EAAA0B,WAAAlB,IACA,IACAE,EAAAnB,KAAAwH,GACAA,EAAA,KACArG,EAAAnB,KAAAwH,GAAA,EAAA,KAEA,QAAA,MAAAA,IAAA,QAAA,OAAAC,EAAAhH,EAAA0B,WAAAlB,EAAA,MACAuG,EAAA,QAAA,KAAAA,IAAA,KAAA,KAAAC,KACAxG,EACAE,EAAAnB,KAAAwH,GAAA,GAAA,IACArG,EAAAnB,KAAAwH,GAAA,GAAA,GAAA,KAIArG,EAAAnB,KAAAwH,GAAA,GAAA,IAHArG,EAAAnB,KAAAwH,GAAA,EAAA,GAAA,KANArG,EAAAnB,KAAA,GAAAwH,EAAA,KAcA,OAAAxH,EAAAoB,2BCtGA,IAAA/B,EAAAI,EA2BA,SAAAiI,IACArI,EAAAsI,OAAAC,EAAAvI,EAAAwI,cACAxI,EAAAyI,KAAAF,IArBAvI,EAAA0I,MAAA,UAGA1I,EAAA2I,OAAAzI,EAAA,IACAF,EAAA4I,aAAA1I,EAAA,IACAF,EAAAsI,OAAApI,EAAA,GACAF,EAAAwI,aAAAtI,EAAA,IAGAF,EAAAyI,KAAAvI,EAAA,IACAF,EAAA6I,IAAA3I,EAAA,IACAF,EAAA8I,MAAA5I,EAAA,IACAF,EAAAqI,UAAAA,EAaArI,EAAA2I,OAAAJ,EAAAvI,EAAA4I,cACAP,iEClCAlI,EAAAC,QAAAkI,EAEA,IAEAE,EAFAC,EAAAvI,EAAA,IAIA6I,EAAAN,EAAAM,SACAhB,EAAAU,EAAAV,KAGA,SAAAiB,EAAAC,EAAAC,GACA,OAAAC,WAAA,uBAAAF,EAAA5E,IAAA,OAAA6E,GAAA,GAAA,MAAAD,EAAAjB,KASA,SAAAM,EAAAxG,GAMAoB,KAAAkB,IAAAtC,EAMAoB,KAAAmB,IAAA,EAMAnB,KAAA8E,IAAAlG,EAAApB,OAGA,IAwCA0I,EAxCAC,EAAA,oBAAArF,WACA,SAAAlC,GACA,GAAAA,aAAAkC,YAAAxD,MAAA8I,QAAAxH,GACA,OAAA,IAAAwG,EAAAxG,GACA,MAAAiB,MAAA,mBAGA,SAAAjB,GACA,GAAAtB,MAAA8I,QAAAxH,GACA,OAAA,IAAAwG,EAAAxG,GACA,MAAAiB,MAAA,mBAkEA,SAAAwG,IAEA,IAAAC,EAAA,IAAAT,EAAA,EAAA,GACAnH,EAAA,EACA,KAAA,EAAAsB,KAAA8E,IAAA9E,KAAAmB,KAaA,CACA,KAAAzC,EAAA,IAAAA,EAAA,CAEA,GAAAsB,KAAAmB,KAAAnB,KAAA8E,IACA,MAAAgB,EAAA9F,MAGA,GADAsG,EAAAxC,IAAAwC,EAAAxC,IAAA,IAAA9D,KAAAkB,IAAAlB,KAAAmB,OAAA,EAAAzC,KAAA,EACAsB,KAAAkB,IAAAlB,KAAAmB,OAAA,IACA,OAAAmF,EAIA,OADAA,EAAAxC,IAAAwC,EAAAxC,IAAA,IAAA9D,KAAAkB,IAAAlB,KAAAmB,SAAA,EAAAzC,KAAA,EACA4H,EAxBA,KAAA5H,EAAA,IAAAA,EAGA,GADA4H,EAAAxC,IAAAwC,EAAAxC,IAAA,IAAA9D,KAAAkB,IAAAlB,KAAAmB,OAAA,EAAAzC,KAAA,EACAsB,KAAAkB,IAAAlB,KAAAmB,OAAA,IACA,OAAAmF,EAKA,GAFAA,EAAAxC,IAAAwC,EAAAxC,IAAA,IAAA9D,KAAAkB,IAAAlB,KAAAmB,OAAA,MAAA,EACAmF,EAAAvC,IAAAuC,EAAAvC,IAAA,IAAA/D,KAAAkB,IAAAlB,KAAAmB,OAAA,KAAA,EACAnB,KAAAkB,IAAAlB,KAAAmB,OAAA,IACA,OAAAmF,EAgBA,GAfA5H,EAAA,EAeA,EAAAsB,KAAA8E,IAAA9E,KAAAmB,KACA,KAAAzC,EAAA,IAAAA,EAGA,GADA4H,EAAAvC,IAAAuC,EAAAvC,IAAA,IAAA/D,KAAAkB,IAAAlB,KAAAmB,OAAA,EAAAzC,EAAA,KAAA,EACAsB,KAAAkB,IAAAlB,KAAAmB,OAAA,IACA,OAAAmF,OAGA,KAAA5H,EAAA,IAAAA,EAAA,CAEA,GAAAsB,KAAAmB,KAAAnB,KAAA8E,IACA,MAAAgB,EAAA9F,MAGA,GADAsG,EAAAvC,IAAAuC,EAAAvC,IAAA,IAAA/D,KAAAkB,IAAAlB,KAAAmB,OAAA,EAAAzC,EAAA,KAAA,EACAsB,KAAAkB,IAAAlB,KAAAmB,OAAA,IACA,OAAAmF,EAIA,MAAAzG,MAAA,2BAkCA,SAAA0G,EAAArF,EAAApC,GACA,OAAAoC,EAAApC,EAAA,GACAoC,EAAApC,EAAA,IAAA,EACAoC,EAAApC,EAAA,IAAA,GACAoC,EAAApC,EAAA,IAAA,MAAA,EA+BA,SAAA0H,IAGA,GAAAxG,KAAAmB,IAAA,EAAAnB,KAAA8E,IACA,MAAAgB,EAAA9F,KAAA,GAEA,OAAA,IAAA6F,EAAAU,EAAAvG,KAAAkB,IAAAlB,KAAAmB,KAAA,GAAAoF,EAAAvG,KAAAkB,IAAAlB,KAAAmB,KAAA,IArLAiE,EAAAqB,OAAAlB,EAAAmB,OACA,SAAA9H,GACA,OAAAwG,EAAAqB,OAAA,SAAA7H,GACA,OAAA2G,EAAAmB,OAAAC,SAAA/H,GACA,IAAA0G,EAAA1G,GAEAuH,EAAAvH,KACAA,IAGAuH,EAEAf,EAAAlF,UAAA0G,EAAArB,EAAAjI,MAAA4C,UAAA2G,UAAAtB,EAAAjI,MAAA4C,UAAAX,MAOA6F,EAAAlF,UAAA4G,QACAZ,EAAA,WACA,WACA,GAAAA,GAAA,IAAAlG,KAAAkB,IAAAlB,KAAAmB,QAAA,EAAAnB,KAAAkB,IAAAlB,KAAAmB,OAAA,IAAA,OAAA+E,EACA,GAAAA,GAAAA,GAAA,IAAAlG,KAAAkB,IAAAlB,KAAAmB,OAAA,KAAA,EAAAnB,KAAAkB,IAAAlB,KAAAmB,OAAA,IAAA,OAAA+E,EACA,GAAAA,GAAAA,GAAA,IAAAlG,KAAAkB,IAAAlB,KAAAmB,OAAA,MAAA,EAAAnB,KAAAkB,IAAAlB,KAAAmB,OAAA,IAAA,OAAA+E,EACA,GAAAA,GAAAA,GAAA,IAAAlG,KAAAkB,IAAAlB,KAAAmB,OAAA,MAAA,EAAAnB,KAAAkB,IAAAlB,KAAAmB,OAAA,IAAA,OAAA+E,EACA,GAAAA,GAAAA,GAAA,GAAAlG,KAAAkB,IAAAlB,KAAAmB,OAAA,MAAA,EAAAnB,KAAAkB,IAAAlB,KAAAmB,OAAA,IAAA,OAAA+E,EAGA,IAAAlG,KAAAmB,KAAA,GAAAnB,KAAA8E,IAEA,MADA9E,KAAAmB,IAAAnB,KAAA8E,IACAgB,EAAA9F,KAAA,IAEA,OAAAkG,IAQAd,EAAAlF,UAAA6G,MAAA,WACA,OAAA,EAAA/G,KAAA8G,UAOA1B,EAAAlF,UAAA8G,OAAA,WACA,IAAAd,EAAAlG,KAAA8G,SACA,OAAAZ,IAAA,IAAA,EAAAA,GAAA,GAqFAd,EAAAlF,UAAA+G,KAAA,WACA,OAAA,IAAAjH,KAAA8G,UAcA1B,EAAAlF,UAAAgH,QAAA,WAGA,GAAAlH,KAAAmB,IAAA,EAAAnB,KAAA8E,IACA,MAAAgB,EAAA9F,KAAA,GAEA,OAAAuG,EAAAvG,KAAAkB,IAAAlB,KAAAmB,KAAA,IAOAiE,EAAAlF,UAAAiH,SAAA,WAGA,GAAAnH,KAAAmB,IAAA,EAAAnB,KAAA8E,IACA,MAAAgB,EAAA9F,KAAA,GAEA,OAAA,EAAAuG,EAAAvG,KAAAkB,IAAAlB,KAAAmB,KAAA,IAmCAiE,EAAAlF,UAAAkH,MAAA,WAGA,GAAApH,KAAAmB,IAAA,EAAAnB,KAAA8E,IACA,MAAAgB,EAAA9F,KAAA,GAEA,IAAAkG,EAAAX,EAAA6B,MAAA3F,YAAAzB,KAAAkB,IAAAlB,KAAAmB,KAEA,OADAnB,KAAAmB,KAAA,EACA+E,GAQAd,EAAAlF,UAAAmH,OAAA,WAGA,GAAArH,KAAAmB,IAAA,EAAAnB,KAAA8E,IACA,MAAAgB,EAAA9F,KAAA,GAEA,IAAAkG,EAAAX,EAAA6B,MAAA5D,aAAAxD,KAAAkB,IAAAlB,KAAAmB,KAEA,OADAnB,KAAAmB,KAAA,EACA+E,GAOAd,EAAAlF,UAAAoH,MAAA,WACA,IAAA9J,EAAAwC,KAAA8G,SACAjI,EAAAmB,KAAAmB,IACArC,EAAAkB,KAAAmB,IAAA3D,EAGA,GAAAsB,EAAAkB,KAAA8E,IACA,MAAAgB,EAAA9F,KAAAxC,GAGA,OADAwC,KAAAmB,KAAA3D,EACAF,MAAA8I,QAAApG,KAAAkB,KACAlB,KAAAkB,IAAA3B,MAAAV,EAAAC,GACAD,IAAAC,EACA,IAAAkB,KAAAkB,IAAAqG,YAAA,GACAvH,KAAA4G,EAAAhC,KAAA5E,KAAAkB,IAAArC,EAAAC,IAOAsG,EAAAlF,UAAAhC,OAAA,WACA,IAAAoJ,EAAAtH,KAAAsH,QACA,OAAAzC,EAAAE,KAAAuC,EAAA,EAAAA,EAAA9J,SAQA4H,EAAAlF,UAAAsH,KAAA,SAAAhK,GACA,GAAA,iBAAAA,EAAA,CAEA,GAAAwC,KAAAmB,IAAA3D,EAAAwC,KAAA8E,IACA,MAAAgB,EAAA9F,KAAAxC,GACAwC,KAAAmB,KAAA3D,OAEA,GAEA,GAAAwC,KAAAmB,KAAAnB,KAAA8E,IACA,MAAAgB,EAAA9F,YACA,IAAAA,KAAAkB,IAAAlB,KAAAmB,QAEA,OAAAnB,MAQAoF,EAAAlF,UAAAuH,SAAA,SAAAC,GACA,OAAAA,GACA,KAAA,EACA1H,KAAAwH,OACA,MACA,KAAA,EACAxH,KAAAwH,KAAA,GACA,MACA,KAAA,EACAxH,KAAAwH,KAAAxH,KAAA8G,UACA,MACA,KAAA,EACA,KAAA,IAAAY,EAAA,EAAA1H,KAAA8G,WACA9G,KAAAyH,SAAAC,GAEA,MACA,KAAA,EACA1H,KAAAwH,KAAA,GACA,MAGA,QACA,MAAA3H,MAAA,qBAAA6H,EAAA,cAAA1H,KAAAmB,KAEA,OAAAnB,MAGAoF,EAAAC,EAAA,SAAAsC,GACArC,EAAAqC,EAEA,IAAAxK,EAAAoI,EAAAqC,KAAA,SAAA,WACArC,EAAAsC,MAAAzC,EAAAlF,UAAA,CAEA4H,MAAA,WACA,OAAAzB,EAAAzB,KAAA5E,MAAA7C,IAAA,IAGA4K,OAAA,WACA,OAAA1B,EAAAzB,KAAA5E,MAAA7C,IAAA,IAGA6K,OAAA,WACA,OAAA3B,EAAAzB,KAAA5E,MAAAiI,WAAA9K,IAAA,IAGA+K,QAAA,WACA,OAAA1B,EAAA5B,KAAA5E,MAAA7C,IAAA,IAGAgL,SAAA,WACA,OAAA3B,EAAA5B,KAAA5E,MAAA7C,IAAA,mCC/YAF,EAAAC,QAAAoI,EAGA,IAAAF,EAAApI,EAAA,IACAsI,EAAApF,UAAAkE,OAAAqC,OAAArB,EAAAlF,YAAAqH,YAAAjC,EAEA,IAAAC,EAAAvI,EAAA,IASA,SAAAsI,EAAA1G,GACAwG,EAAAR,KAAA5E,KAAApB,GAUA2G,EAAAmB,SACApB,EAAApF,UAAA0G,EAAArB,EAAAmB,OAAAxG,UAAAX,OAKA+F,EAAApF,UAAAhC,OAAA,WACA,IAAA4G,EAAA9E,KAAA8G,SACA,OAAA9G,KAAAkB,IAAAkH,UAAApI,KAAAmB,IAAAnB,KAAAmB,IAAA7C,KAAA+J,IAAArI,KAAAmB,IAAA2D,EAAA9E,KAAA8E,uCClCA7H,EAAAC,QAAA,4BCKAA,EA6BAoL,QAAAtL,EAAA,gCClCAC,EAAAC,QAAAoL,EAEA,IAAA/C,EAAAvI,EAAA,IAsCA,SAAAsL,EAAAC,EAAAC,EAAAC,GAEA,GAAA,mBAAAF,EACA,MAAAG,UAAA,8BAEAnD,EAAAxF,aAAA6E,KAAA5E,MAMAA,KAAAuI,QAAAA,EAMAvI,KAAAwI,mBAAAA,EAMAxI,KAAAyI,oBAAAA,IA1DAH,EAAApI,UAAAkE,OAAAqC,OAAAlB,EAAAxF,aAAAG,YAAAqH,YAAAe,GAwEApI,UAAAyI,QAAA,SAAAA,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAEA,IAAAD,EACA,MAAAL,UAAA,6BAEA,IAAAO,EAAAjJ,KACA,IAAAgJ,EACA,OAAAzD,EAAA2D,UAAAP,EAAAM,EAAAL,EAAAC,EAAAC,EAAAC,GAEA,IAAAE,EAAAV,QAEA,OADAY,WAAA,WAAAH,EAAAnJ,MAAA,mBAAA,GACAnD,EAGA,IACA,OAAAuM,EAAAV,QACAK,EACAC,EAAAI,EAAAT,iBAAA,kBAAA,UAAAO,GAAAK,SACA,SAAArL,EAAAsL,GAEA,GAAAtL,EAEA,OADAkL,EAAAzI,KAAA,QAAAzC,EAAA6K,GACAI,EAAAjL,GAGA,GAAA,OAAAsL,EAEA,OADAJ,EAAAnK,KAAA,GACApC,EAGA,KAAA2M,aAAAP,GACA,IACAO,EAAAP,EAAAG,EAAAR,kBAAA,kBAAA,UAAAY,GACA,MAAAtL,GAEA,OADAkL,EAAAzI,KAAA,QAAAzC,EAAA6K,GACAI,EAAAjL,GAKA,OADAkL,EAAAzI,KAAA,OAAA6I,EAAAT,GACAI,EAAA,KAAAK,KAGA,MAAAtL,GAGA,OAFAkL,EAAAzI,KAAA,QAAAzC,EAAA6K,GACAO,WAAA,WAAAH,EAAAjL,IAAA,GACArB,IASA4L,EAAApI,UAAApB,IAAA,SAAAwK,GAOA,OANAtJ,KAAAuI,UACAe,GACAtJ,KAAAuI,QAAA,KAAA,KAAA,MACAvI,KAAAuI,QAAA,KACAvI,KAAAQ,KAAA,OAAAH,OAEAL,kCC3IA/C,EAAAC,QAAA2I,EAEA,IAAAN,EAAAvI,EAAA,IAUA,SAAA6I,EAAA/B,EAAAC,GASA/D,KAAA8D,GAAAA,IAAA,EAMA9D,KAAA+D,GAAAA,IAAA,EAQA,IAAAwF,EAAA1D,EAAA0D,KAAA,IAAA1D,EAAA,EAAA,GAEA0D,EAAAC,SAAA,WAAA,OAAA,GACAD,EAAAE,SAAAF,EAAAtB,SAAA,WAAA,OAAAjI,MACAuJ,EAAA/L,OAAA,WAAA,OAAA,GAOA,IAAAkM,EAAA7D,EAAA6D,SAAA,mBAOA7D,EAAA8D,WAAA,SAAAzD,GACA,GAAA,IAAAA,EACA,OAAAqD,EACA,IAAA1H,EAAAqE,EAAA,EACArE,IACAqE,GAAAA,GACA,IAAApC,EAAAoC,IAAA,EACAnC,GAAAmC,EAAApC,GAAA,aAAA,EAUA,OATAjC,IACAkC,GAAAA,IAAA,EACAD,GAAAA,IAAA,EACA,aAAAA,IACAA,EAAA,EACA,aAAAC,IACAA,EAAA,KAGA,IAAA8B,EAAA/B,EAAAC,IAQA8B,EAAA+D,KAAA,SAAA1D,GACA,GAAA,iBAAAA,EACA,OAAAL,EAAA8D,WAAAzD,GACA,GAAAX,EAAAsE,SAAA3D,GAAA,CAEA,IAAAX,EAAAqC,KAGA,OAAA/B,EAAA8D,WAAAG,SAAA5D,EAAA,KAFAA,EAAAX,EAAAqC,KAAAmC,WAAA7D,GAIA,OAAAA,EAAA8D,KAAA9D,EAAA+D,KAAA,IAAApE,EAAAK,EAAA8D,MAAA,EAAA9D,EAAA+D,OAAA,GAAAV,GAQA1D,EAAA3F,UAAAsJ,SAAA,SAAAU,GACA,IAAAA,GAAAlK,KAAA+D,KAAA,GAAA,CACA,IAAAD,EAAA,GAAA9D,KAAA8D,KAAA,EACAC,GAAA/D,KAAA+D,KAAA,EAGA,OAFAD,IACAC,EAAAA,EAAA,IAAA,KACAD,EAAA,WAAAC,GAEA,OAAA/D,KAAA8D,GAAA,WAAA9D,KAAA+D,IAQA8B,EAAA3F,UAAAiK,OAAA,SAAAD,GACA,OAAA3E,EAAAqC,KACA,IAAArC,EAAAqC,KAAA,EAAA5H,KAAA8D,GAAA,EAAA9D,KAAA+D,KAAAmG,GAEA,CAAAF,IAAA,EAAAhK,KAAA8D,GAAAmG,KAAA,EAAAjK,KAAA+D,GAAAmG,WAAAA,IAGA,IAAAtK,EAAAP,OAAAa,UAAAN,WAOAiG,EAAAuE,SAAA,SAAAC,GACA,OAAAA,IAAAX,EACAH,EACA,IAAA1D,GACAjG,EAAAgF,KAAAyF,EAAA,GACAzK,EAAAgF,KAAAyF,EAAA,IAAA,EACAzK,EAAAgF,KAAAyF,EAAA,IAAA,GACAzK,EAAAgF,KAAAyF,EAAA,IAAA,MAAA,GAEAzK,EAAAgF,KAAAyF,EAAA,GACAzK,EAAAgF,KAAAyF,EAAA,IAAA,EACAzK,EAAAgF,KAAAyF,EAAA,IAAA,GACAzK,EAAAgF,KAAAyF,EAAA,IAAA,MAAA,IAQAxE,EAAA3F,UAAAoK,OAAA,WACA,OAAAjL,OAAAC,aACA,IAAAU,KAAA8D,GACA9D,KAAA8D,KAAA,EAAA,IACA9D,KAAA8D,KAAA,GAAA,IACA9D,KAAA8D,KAAA,GACA,IAAA9D,KAAA+D,GACA/D,KAAA+D,KAAA,EAAA,IACA/D,KAAA+D,KAAA,GAAA,IACA/D,KAAA+D,KAAA,KAQA8B,EAAA3F,UAAAuJ,SAAA,WACA,IAAAc,EAAAvK,KAAA+D,IAAA,GAGA,OAFA/D,KAAA+D,KAAA/D,KAAA+D,IAAA,EAAA/D,KAAA8D,KAAA,IAAAyG,KAAA,EACAvK,KAAA8D,IAAA9D,KAAA8D,IAAA,EAAAyG,KAAA,EACAvK,MAOA6F,EAAA3F,UAAA+H,SAAA,WACA,IAAAsC,IAAA,EAAAvK,KAAA8D,IAGA,OAFA9D,KAAA8D,KAAA9D,KAAA8D,KAAA,EAAA9D,KAAA+D,IAAA,IAAAwG,KAAA,EACAvK,KAAA+D,IAAA/D,KAAA+D,KAAA,EAAAwG,KAAA,EACAvK,MAOA6F,EAAA3F,UAAA1C,OAAA,WACA,IAAAgN,EAAAxK,KAAA8D,GACA2G,GAAAzK,KAAA8D,KAAA,GAAA9D,KAAA+D,IAAA,KAAA,EACA2G,EAAA1K,KAAA+D,KAAA,GACA,OAAA,IAAA2G,EACA,IAAAD,EACAD,EAAA,MACAA,EAAA,IAAA,EAAA,EACAA,EAAA,QAAA,EAAA,EACAC,EAAA,MACAA,EAAA,IAAA,EAAA,EACAA,EAAA,QAAA,EAAA,EACAC,EAAA,IAAA,EAAA,kCCrMA,IAAAnF,EAAArI,EA2NA,SAAA2K,EAAA8C,EAAAC,EAAAC,GACA,IAAA,IAAAxG,EAAAD,OAAAC,KAAAuG,GAAAlM,EAAA,EAAAA,EAAA2F,EAAA7G,SAAAkB,EACAiM,EAAAtG,EAAA3F,MAAAhC,GAAAmO,IACAF,EAAAtG,EAAA3F,IAAAkM,EAAAvG,EAAA3F,KACA,OAAAiM,EAoBA,SAAAG,EAAAC,GAEA,SAAAC,EAAAC,EAAAC,GAEA,KAAAlL,gBAAAgL,GACA,OAAA,IAAAA,EAAAC,EAAAC,GAKA9G,OAAA+G,eAAAnL,KAAA,UAAA,CAAAoL,IAAA,WAAA,OAAAH,KAGApL,MAAAwL,kBACAxL,MAAAwL,kBAAArL,KAAAgL,GAEA5G,OAAA+G,eAAAnL,KAAA,QAAA,CAAAkG,MAAArG,QAAAyL,OAAA,KAEAJ,GACArD,EAAA7H,KAAAkL,GAWA,OARAF,EAAA9K,UAAAkE,OAAAqC,OAAA5G,MAAAK,YAAAqH,YAAAyD,EAEA5G,OAAA+G,eAAAH,EAAA9K,UAAA,OAAA,CAAAkL,IAAA,WAAA,OAAAL,KAEAC,EAAA9K,UAAAqL,SAAA,WACA,OAAAvL,KAAA+K,KAAA,KAAA/K,KAAAiL,SAGAD,EA9QAzF,EAAA2D,UAAAlM,EAAA,GAGAuI,EAAAtH,OAAAjB,EAAA,GAGAuI,EAAAxF,aAAA/C,EAAA,GAGAuI,EAAA6B,MAAApK,EAAA,GAGAuI,EAAAvB,QAAAhH,EAAA,GAGAuI,EAAAV,KAAA7H,EAAA,GAGAuI,EAAAiG,KAAAxO,EAAA,GAGAuI,EAAAM,SAAA7I,EAAA,IAGAuI,EAAAkG,OAAA,oBAAAC,QAAAA,QACA,oBAAAD,QAAAA,QACA,oBAAAxC,MAAAA,MACAjJ,KAQAuF,EAAAoG,WAAAvH,OAAAwH,OAAAxH,OAAAwH,OAAA,IAAA,GAOArG,EAAAsG,YAAAzH,OAAAwH,OAAAxH,OAAAwH,OAAA,IAAA,GAQArG,EAAAuG,UAAAvG,EAAAkG,OAAAM,SAAAxG,EAAAkG,OAAAM,QAAAC,UAAAzG,EAAAkG,OAAAM,QAAAC,SAAAC,MAQA1G,EAAA2G,UAAAC,OAAAD,WAAA,SAAAhG,GACA,MAAA,iBAAAA,GAAAkG,SAAAlG,IAAA5H,KAAA2D,MAAAiE,KAAAA,GAQAX,EAAAsE,SAAA,SAAA3D,GACA,MAAA,iBAAAA,GAAAA,aAAA7G,QAQAkG,EAAA8G,SAAA,SAAAnG,GACA,OAAAA,GAAA,iBAAAA,GAWAX,EAAA+G,MAQA/G,EAAAgH,MAAA,SAAAC,EAAAC,GACA,IAAAvG,EAAAsG,EAAAC,GACA,QAAA,MAAAvG,IAAAsG,EAAAE,eAAAD,MACA,iBAAAvG,GAAA,GAAA5I,MAAA8I,QAAAF,GAAAA,EAAA1I,OAAA4G,OAAAC,KAAA6B,GAAA1I,UAeA+H,EAAAmB,OAAA,WACA,IACA,IAAAA,EAAAnB,EAAAvB,QAAA,UAAA0C,OAEA,OAAAA,EAAAxG,UAAAyM,UAAAjG,EAAA,KACA,MAAApC,GAEA,OAAA,MAPA,GAYAiB,EAAAqH,EAAA,KAGArH,EAAAsH,EAAA,KAOAtH,EAAAuH,UAAA,SAAAC,GAEA,MAAA,iBAAAA,EACAxH,EAAAmB,OACAnB,EAAAsH,EAAAE,GACA,IAAAxH,EAAAjI,MAAAyP,GACAxH,EAAAmB,OACAnB,EAAAqH,EAAAG,GACA,oBAAAjM,WACAiM,EACA,IAAAjM,WAAAiM,IAOAxH,EAAAjI,MAAA,oBAAAwD,WAAAA,WAAAxD,MAMAiI,EAAAqC,KAAArC,EAAAkG,OAAAuB,SAAAzH,EAAAkG,OAAAuB,QAAApF,MACArC,EAAAkG,OAAA7D,MACArC,EAAAvB,QAAA,QAOAuB,EAAA0H,OAAA,mBAOA1H,EAAA2H,QAAA,wBAOA3H,EAAA4H,QAAA,6CAOA5H,EAAA6H,WAAA,SAAAlH,GACA,OAAAA,EACAX,EAAAM,SAAA+D,KAAA1D,GAAAoE,SACA/E,EAAAM,SAAA6D,UASAnE,EAAA8H,aAAA,SAAAhD,EAAAH,GACA,IAAA5D,EAAAf,EAAAM,SAAAuE,SAAAC,GACA,OAAA9E,EAAAqC,KACArC,EAAAqC,KAAA0F,SAAAhH,EAAAxC,GAAAwC,EAAAvC,GAAAmG,GACA5D,EAAAkD,WAAAU,IAkBA3E,EAAAsC,MAAAA,EAOAtC,EAAAgI,QAAA,SAAAC,GACA,OAAAA,EAAAnP,OAAA,GAAAoP,cAAAD,EAAAE,UAAA,IA0CAnI,EAAAuF,SAAAA,EAmBAvF,EAAAoI,cAAA7C,EAAA,iBAoBAvF,EAAAqI,YAAA,SAAAC,GAEA,IADA,IAAAC,EAAA,GACApP,EAAA,EAAAA,EAAAmP,EAAArQ,SAAAkB,EACAoP,EAAAD,EAAAnP,IAAA,EAOA,OAAA,WACA,IAAA,IAAA2F,EAAAD,OAAAC,KAAArE,MAAAtB,EAAA2F,EAAA7G,OAAA,GAAA,EAAAkB,IAAAA,EACA,GAAA,IAAAoP,EAAAzJ,EAAA3F,KAAAsB,KAAAqE,EAAA3F,MAAAhC,GAAA,OAAAsD,KAAAqE,EAAA3F,IACA,OAAA2F,EAAA3F,KAiBA6G,EAAAwI,YAAA,SAAAF,GAQA,OAAA,SAAA9C,GACA,IAAA,IAAArM,EAAA,EAAAA,EAAAmP,EAAArQ,SAAAkB,EACAmP,EAAAnP,KAAAqM,UACA/K,KAAA6N,EAAAnP,MAoBA6G,EAAAyI,cAAA,CACAC,MAAA5O,OACA6O,MAAA7O,OACAiI,MAAAjI,OACA8O,MAAA,GAIA5I,EAAAF,EAAA,WACA,IAAAqB,EAAAnB,EAAAmB,OAEAA,GAMAnB,EAAAqH,EAAAlG,EAAAkD,OAAA9I,WAAA8I,MAAAlD,EAAAkD,MAEA,SAAA1D,EAAAkI,GACA,OAAA,IAAA1H,EAAAR,EAAAkI,IAEA7I,EAAAsH,EAAAnG,EAAA2H,aAEA,SAAA7J,GACA,OAAA,IAAAkC,EAAAlC,KAbAe,EAAAqH,EAAArH,EAAAsH,EAAA,8DCpYA5P,EAAAC,QAAAuI,EAEA,IAEAC,EAFAH,EAAAvI,EAAA,IAIA6I,EAAAN,EAAAM,SACA5H,EAAAsH,EAAAtH,OACA4G,EAAAU,EAAAV,KAWA,SAAAyJ,EAAAnR,EAAA2H,EAAA7D,GAMAjB,KAAA7C,GAAAA,EAMA6C,KAAA8E,IAAAA,EAMA9E,KAAAuO,KAAA7R,EAMAsD,KAAAiB,IAAAA,EAIA,SAAAuN,KAUA,SAAAC,EAAAC,GAMA1O,KAAA2O,KAAAD,EAAAC,KAMA3O,KAAA4O,KAAAF,EAAAE,KAMA5O,KAAA8E,IAAA4J,EAAA5J,IAMA9E,KAAAuO,KAAAG,EAAAG,OAQA,SAAApJ,IAMAzF,KAAA8E,IAAA,EAMA9E,KAAA2O,KAAA,IAAAL,EAAAE,EAAA,EAAA,GAMAxO,KAAA4O,KAAA5O,KAAA2O,KAMA3O,KAAA6O,OAAA,KAqDA,SAAAC,EAAA7N,EAAAC,EAAAC,GACAD,EAAAC,GAAA,IAAAF,EAoBA,SAAA8N,EAAAjK,EAAA7D,GACAjB,KAAA8E,IAAAA,EACA9E,KAAAuO,KAAA7R,EACAsD,KAAAiB,IAAAA,EA8CA,SAAA+N,EAAA/N,EAAAC,EAAAC,GACA,KAAAF,EAAA8C,IACA7C,EAAAC,KAAA,IAAAF,EAAA6C,GAAA,IACA7C,EAAA6C,IAAA7C,EAAA6C,KAAA,EAAA7C,EAAA8C,IAAA,MAAA,EACA9C,EAAA8C,MAAA,EAEA,KAAA,IAAA9C,EAAA6C,IACA5C,EAAAC,KAAA,IAAAF,EAAA6C,GAAA,IACA7C,EAAA6C,GAAA7C,EAAA6C,KAAA,EAEA5C,EAAAC,KAAAF,EAAA6C,GA2CA,SAAAmL,EAAAhO,EAAAC,EAAAC,GACAD,EAAAC,GAAA,IAAAF,EACAC,EAAAC,EAAA,GAAAF,IAAA,EAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,GAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,GAtKAwE,EAAAgB,OAAAlB,EAAAmB,OACA,WACA,OAAAjB,EAAAgB,OAAA,WACA,OAAA,IAAAf,OAIA,WACA,OAAA,IAAAD,GAQAA,EAAAlB,MAAA,SAAAC,GACA,OAAA,IAAAe,EAAAjI,MAAAkH,IAKAe,EAAAjI,QAAAA,QACAmI,EAAAlB,MAAAgB,EAAAiG,KAAA/F,EAAAlB,MAAAgB,EAAAjI,MAAA4C,UAAA2G,WAUApB,EAAAvF,UAAAgP,EAAA,SAAA/R,EAAA2H,EAAA7D,GAGA,OAFAjB,KAAA4O,KAAA5O,KAAA4O,KAAAL,KAAA,IAAAD,EAAAnR,EAAA2H,EAAA7D,GACAjB,KAAA8E,KAAAA,EACA9E,OA8BA+O,EAAA7O,UAAAkE,OAAAqC,OAAA6H,EAAApO,YACA/C,GAxBA,SAAA8D,EAAAC,EAAAC,GACA,KAAA,IAAAF,GACAC,EAAAC,KAAA,IAAAF,EAAA,IACAA,KAAA,EAEAC,EAAAC,GAAAF,GA0BAwE,EAAAvF,UAAA4G,OAAA,SAAAZ,GAWA,OARAlG,KAAA8E,MAAA9E,KAAA4O,KAAA5O,KAAA4O,KAAAL,KAAA,IAAAQ,GACA7I,KAAA,GACA,IAAA,EACAA,EAAA,MAAA,EACAA,EAAA,QAAA,EACAA,EAAA,UAAA,EACA,EACAA,IAAApB,IACA9E,MASAyF,EAAAvF,UAAA6G,MAAA,SAAAb,GACA,OAAAA,EAAA,EACAlG,KAAAkP,EAAAF,EAAA,GAAAnJ,EAAA8D,WAAAzD,IACAlG,KAAA8G,OAAAZ,IAQAT,EAAAvF,UAAA8G,OAAA,SAAAd,GACA,OAAAlG,KAAA8G,QAAAZ,GAAA,EAAAA,GAAA,MAAA,IAkCAT,EAAAvF,UAAA4H,MAZArC,EAAAvF,UAAA6H,OAAA,SAAA7B,GACA,IAAAI,EAAAT,EAAA+D,KAAA1D,GACA,OAAAlG,KAAAkP,EAAAF,EAAA1I,EAAA9I,SAAA8I,IAkBAb,EAAAvF,UAAA8H,OAAA,SAAA9B,GACA,IAAAI,EAAAT,EAAA+D,KAAA1D,GAAAuD,WACA,OAAAzJ,KAAAkP,EAAAF,EAAA1I,EAAA9I,SAAA8I,IAQAb,EAAAvF,UAAA+G,KAAA,SAAAf,GACA,OAAAlG,KAAAkP,EAAAJ,EAAA,EAAA5I,EAAA,EAAA,IAyBAT,EAAAvF,UAAAiH,SAVA1B,EAAAvF,UAAAgH,QAAA,SAAAhB,GACA,OAAAlG,KAAAkP,EAAAD,EAAA,EAAA/I,IAAA,IA6BAT,EAAAvF,UAAAiI,SAZA1C,EAAAvF,UAAAgI,QAAA,SAAAhC,GACA,IAAAI,EAAAT,EAAA+D,KAAA1D,GACA,OAAAlG,KAAAkP,EAAAD,EAAA,EAAA3I,EAAAxC,IAAAoL,EAAAD,EAAA,EAAA3I,EAAAvC,KAkBA0B,EAAAvF,UAAAkH,MAAA,SAAAlB,GACA,OAAAlG,KAAAkP,EAAA3J,EAAA6B,MAAA7F,aAAA,EAAA2E,IASAT,EAAAvF,UAAAmH,OAAA,SAAAnB,GACA,OAAAlG,KAAAkP,EAAA3J,EAAA6B,MAAA9D,cAAA,EAAA4C,IAGA,IAAAiJ,EAAA5J,EAAAjI,MAAA4C,UAAAkP,IACA,SAAAnO,EAAAC,EAAAC,GACAD,EAAAkO,IAAAnO,EAAAE,IAGA,SAAAF,EAAAC,EAAAC,GACA,IAAA,IAAAzC,EAAA,EAAAA,EAAAuC,EAAAzD,SAAAkB,EACAwC,EAAAC,EAAAzC,GAAAuC,EAAAvC,IAQA+G,EAAAvF,UAAAoH,MAAA,SAAApB,GACA,IAAApB,EAAAoB,EAAA1I,SAAA,EACA,IAAAsH,EACA,OAAA9E,KAAAkP,EAAAJ,EAAA,EAAA,GACA,GAAAvJ,EAAAsE,SAAA3D,GAAA,CACA,IAAAhF,EAAAuE,EAAAlB,MAAAO,EAAA7G,EAAAT,OAAA0I,IACAjI,EAAAyB,OAAAwG,EAAAhF,EAAA,GACAgF,EAAAhF,EAEA,OAAAlB,KAAA8G,OAAAhC,GAAAoK,EAAAC,EAAArK,EAAAoB,IAQAT,EAAAvF,UAAAhC,OAAA,SAAAgI,GACA,IAAApB,EAAAD,EAAArH,OAAA0I,GACA,OAAApB,EACA9E,KAAA8G,OAAAhC,GAAAoK,EAAArK,EAAAG,MAAAF,EAAAoB,GACAlG,KAAAkP,EAAAJ,EAAA,EAAA,IAQArJ,EAAAvF,UAAAmP,KAAA,WAIA,OAHArP,KAAA6O,OAAA,IAAAJ,EAAAzO,MACAA,KAAA2O,KAAA3O,KAAA4O,KAAA,IAAAN,EAAAE,EAAA,EAAA,GACAxO,KAAA8E,IAAA,EACA9E,MAOAyF,EAAAvF,UAAAoP,MAAA,WAUA,OATAtP,KAAA6O,QACA7O,KAAA2O,KAAA3O,KAAA6O,OAAAF,KACA3O,KAAA4O,KAAA5O,KAAA6O,OAAAD,KACA5O,KAAA8E,IAAA9E,KAAA6O,OAAA/J,IACA9E,KAAA6O,OAAA7O,KAAA6O,OAAAN,OAEAvO,KAAA2O,KAAA3O,KAAA4O,KAAA,IAAAN,EAAAE,EAAA,EAAA,GACAxO,KAAA8E,IAAA,GAEA9E,MAOAyF,EAAAvF,UAAAqP,OAAA,WACA,IAAAZ,EAAA3O,KAAA2O,KACAC,EAAA5O,KAAA4O,KACA9J,EAAA9E,KAAA8E,IAOA,OANA9E,KAAAsP,QAAAxI,OAAAhC,GACAA,IACA9E,KAAA4O,KAAAL,KAAAI,EAAAJ,KACAvO,KAAA4O,KAAAA,EACA5O,KAAA8E,KAAAA,GAEA9E,MAOAyF,EAAAvF,UAAAkJ,OAAA,WAIA,IAHA,IAAAuF,EAAA3O,KAAA2O,KAAAJ,KACArN,EAAAlB,KAAAuH,YAAAhD,MAAAvE,KAAA8E,KACA3D,EAAA,EACAwN,GACAA,EAAAxR,GAAAwR,EAAA1N,IAAAC,EAAAC,GACAA,GAAAwN,EAAA7J,IACA6J,EAAAA,EAAAJ,KAGA,OAAArN,GAGAuE,EAAAJ,EAAA,SAAAmK,GACA9J,EAAA8J,+BCxcAvS,EAAAC,QAAAwI,EAGA,IAAAD,EAAAzI,EAAA,KACA0I,EAAAxF,UAAAkE,OAAAqC,OAAAhB,EAAAvF,YAAAqH,YAAA7B,EAEA,IAAAH,EAAAvI,EAAA,IAEA0J,EAAAnB,EAAAmB,OAQA,SAAAhB,IACAD,EAAAb,KAAA5E,MAQA0F,EAAAnB,MAAA,SAAAC,GACA,OAAAkB,EAAAnB,MAAAgB,EAAAsH,GAAArI,IAGA,IAAAiL,EAAA/I,GAAAA,EAAAxG,qBAAAY,YAAA,QAAA4F,EAAAxG,UAAAkP,IAAArE,KACA,SAAA9J,EAAAC,EAAAC,GACAD,EAAAkO,IAAAnO,EAAAE,IAIA,SAAAF,EAAAC,EAAAC,GACA,GAAAF,EAAAyO,KACAzO,EAAAyO,KAAAxO,EAAAC,EAAA,EAAAF,EAAAzD,aACA,IAAA,IAAAkB,EAAA,EAAAA,EAAAuC,EAAAzD,QACA0D,EAAAC,KAAAF,EAAAvC,MAgBA,SAAAiR,EAAA1O,EAAAC,EAAAC,GACAF,EAAAzD,OAAA,GACA+H,EAAAV,KAAAG,MAAA/D,EAAAC,EAAAC,GAEAD,EAAAyL,UAAA1L,EAAAE,GAdAuE,EAAAxF,UAAAoH,MAAA,SAAApB,GACAX,EAAAsE,SAAA3D,KACAA,EAAAX,EAAAqH,EAAA1G,EAAA,WACA,IAAApB,EAAAoB,EAAA1I,SAAA,EAIA,OAHAwC,KAAA8G,OAAAhC,GACAA,GACA9E,KAAAkP,EAAAO,EAAA3K,EAAAoB,GACAlG,MAaA0F,EAAAxF,UAAAhC,OAAA,SAAAgI,GACA,IAAApB,EAAA4B,EAAAkJ,WAAA1J,GAIA,OAHAlG,KAAA8G,OAAAhC,GACAA,GACA9E,KAAAkP,EAAAS,EAAA7K,EAAAoB,GACAlG,uBjBvEApD,KAAAC,MAcAC,EAPA,SAAA+S,EAAA9E,GACA,IAAA+E,EAAAlT,EAAAmO,GAGA,OAFA+E,GACAnT,EAAAoO,GAAA,GAAAnG,KAAAkL,EAAAlT,EAAAmO,GAAA,CAAA7N,QAAA,IAAA2S,EAAAC,EAAAA,EAAA5S,SACA4S,EAAA5S,QAGA2S,CAAAhT,EAAA,IAGAC,EAAAyI,KAAAkG,OAAA3O,SAAAA,EAGA,mBAAAiT,QAAAA,OAAAC,KACAD,OAAA,CAAA,QAAA,SAAAnI,GAKA,OAJAA,GAAAA,EAAAqI,SACAnT,EAAAyI,KAAAqC,KAAAA,EACA9K,EAAAqI,aAEArI,IAIA,iBAAAG,QAAAA,QAAAA,OAAAC,UACAD,OAAAC,QAAAJ,GA/BA","file":"protobuf.min.js","sourcesContent":["(function prelude(modules, cache, entries) {\n\n // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS\n // sources through a conflict-free require shim and is again wrapped within an iife that\n // provides a minification-friendly `undefined` var plus a global \"use strict\" directive\n // so that minification can remove the directives of each module.\n\n function $require(name) {\n var $module = cache[name];\n if (!$module)\n modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports);\n return $module.exports;\n }\n\n var protobuf = $require(entries[0]);\n\n // Expose globally\n protobuf.util.global.protobuf = protobuf;\n\n // Be nice to AMD\n if (typeof define === \"function\" && define.amd)\n define([\"long\"], function(Long) {\n if (Long && Long.isLong) {\n protobuf.util.Long = Long;\n protobuf.configure();\n }\n return protobuf;\n });\n\n // Be nice to CommonJS\n if (typeof module === \"object\" && module && module.exports)\n module.exports = protobuf;\n\n})/* end of prelude */","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(16);\nprotobuf.BufferWriter = require(17);\nprotobuf.Reader = require(9);\nprotobuf.BufferReader = require(10);\n\n// Utility\nprotobuf.util = require(15);\nprotobuf.rpc = require(12);\nprotobuf.roots = require(11);\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.Reader._configure(protobuf.BufferReader);\n protobuf.util._configure();\n}\n\n// Set up buffer utility according to the environment\nprotobuf.Writer._configure(protobuf.BufferWriter);\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(15);\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(9);\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(15);\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\n/* istanbul ignore else */\nif (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(13);\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(15);\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(15);\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(1);\n\n// converts to / from base64 encoded strings\nutil.base64 = require(2);\n\n// base class of rpc.Service\nutil.EventEmitter = require(3);\n\n// float handling accross browsers\nutil.float = require(4);\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(5);\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(7);\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(6);\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(14);\n\n// global object reference\nutil.global = typeof window !== \"undefined\" && window\n || typeof global !== \"undefined\" && global\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n * @const\n */\nutil.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node);\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: (new Error()).stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(15);\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(16);\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(15);\n\nvar Buffer = util.Buffer;\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\nBufferWriter.alloc = function alloc_buffer(size) {\n return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size);\n};\n\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else\n buf.utf8Write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/dist/protobuf.js b/gateway/node_modules/@apollo/protobufjs/dist/protobuf.js deleted file mode 100644 index 12a64c8..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/protobuf.js +++ /dev/null @@ -1,8752 +0,0 @@ -/*! - * protobuf.js v1.0.5 (c) 2016, daniel wirtz - * compiled fri, 14 aug 2020 05:32:49 utc - * licensed under the bsd-3-clause license - * see: https://github.com/apollographql/protobuf.js for details - */ -(function(undefined){"use strict";(function prelude(modules, cache, entries) { - - // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS - // sources through a conflict-free require shim and is again wrapped within an iife that - // provides a minification-friendly `undefined` var plus a global "use strict" directive - // so that minification can remove the directives of each module. - - function $require(name) { - var $module = cache[name]; - if (!$module) - modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports); - return $module.exports; - } - - var protobuf = $require(entries[0]); - - // Expose globally - protobuf.util.global.protobuf = protobuf; - - // Be nice to AMD - if (typeof define === "function" && define.amd) - define(["long"], function(Long) { - if (Long && Long.isLong) { - protobuf.util.Long = Long; - protobuf.configure(); - } - return protobuf; - }); - - // Be nice to CommonJS - if (typeof module === "object" && module && module.exports) - module.exports = protobuf; - -})/* end of prelude */({1:[function(require,module,exports){ -"use strict"; -module.exports = asPromise; - -/** - * Callback as used by {@link util.asPromise}. - * @typedef asPromiseCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {...*} params Additional arguments - * @returns {undefined} - */ - -/** - * Returns a promise from a node-style callback function. - * @memberof util - * @param {asPromiseCallback} fn Function to call - * @param {*} ctx Function context - * @param {...*} params Function arguments - * @returns {Promise<*>} Promisified function - */ -function asPromise(fn, ctx/*, varargs */) { - var params = new Array(arguments.length - 1), - offset = 0, - index = 2, - pending = true; - while (index < arguments.length) - params[offset++] = arguments[index++]; - return new Promise(function executor(resolve, reject) { - params[offset] = function callback(err/*, varargs */) { - if (pending) { - pending = false; - if (err) - reject(err); - else { - var params = new Array(arguments.length - 1), - offset = 0; - while (offset < params.length) - params[offset++] = arguments[offset]; - resolve.apply(null, params); - } - } - }; - try { - fn.apply(ctx || null, params); - } catch (err) { - if (pending) { - pending = false; - reject(err); - } - } - }); -} - -},{}],2:[function(require,module,exports){ -"use strict"; - -/** - * A minimal base64 implementation for number arrays. - * @memberof util - * @namespace - */ -var base64 = exports; - -/** - * Calculates the byte length of a base64 encoded string. - * @param {string} string Base64 encoded string - * @returns {number} Byte length - */ -base64.length = function length(string) { - var p = string.length; - if (!p) - return 0; - var n = 0; - while (--p % 4 > 1 && string.charAt(p) === "=") - ++n; - return Math.ceil(string.length * 3) / 4 - n; -}; - -// Base64 encoding table -var b64 = new Array(64); - -// Base64 decoding table -var s64 = new Array(123); - -// 65..90, 97..122, 48..57, 43, 47 -for (var i = 0; i < 64;) - s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++; - -/** - * Encodes a buffer to a base64 encoded string. - * @param {Uint8Array} buffer Source buffer - * @param {number} start Source start - * @param {number} end Source end - * @returns {string} Base64 encoded string - */ -base64.encode = function encode(buffer, start, end) { - var parts = null, - chunk = []; - var i = 0, // output index - j = 0, // goto index - t; // temporary - while (start < end) { - var b = buffer[start++]; - switch (j) { - case 0: - chunk[i++] = b64[b >> 2]; - t = (b & 3) << 4; - j = 1; - break; - case 1: - chunk[i++] = b64[t | b >> 4]; - t = (b & 15) << 2; - j = 2; - break; - case 2: - chunk[i++] = b64[t | b >> 6]; - chunk[i++] = b64[b & 63]; - j = 0; - break; - } - if (i > 8191) { - (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk)); - i = 0; - } - } - if (j) { - chunk[i++] = b64[t]; - chunk[i++] = 61; - if (j === 1) - chunk[i++] = 61; - } - if (parts) { - if (i) - parts.push(String.fromCharCode.apply(String, chunk.slice(0, i))); - return parts.join(""); - } - return String.fromCharCode.apply(String, chunk.slice(0, i)); -}; - -var invalidEncoding = "invalid encoding"; - -/** - * Decodes a base64 encoded string to a buffer. - * @param {string} string Source string - * @param {Uint8Array} buffer Destination buffer - * @param {number} offset Destination offset - * @returns {number} Number of bytes written - * @throws {Error} If encoding is invalid - */ -base64.decode = function decode(string, buffer, offset) { - var start = offset; - var j = 0, // goto index - t; // temporary - for (var i = 0; i < string.length;) { - var c = string.charCodeAt(i++); - if (c === 61 && j > 1) - break; - if ((c = s64[c]) === undefined) - throw Error(invalidEncoding); - switch (j) { - case 0: - t = c; - j = 1; - break; - case 1: - buffer[offset++] = t << 2 | (c & 48) >> 4; - t = c; - j = 2; - break; - case 2: - buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2; - t = c; - j = 3; - break; - case 3: - buffer[offset++] = (t & 3) << 6 | c; - j = 0; - break; - } - } - if (j === 1) - throw Error(invalidEncoding); - return offset - start; -}; - -/** - * Tests if the specified string appears to be base64 encoded. - * @param {string} string String to test - * @returns {boolean} `true` if probably base64 encoded, otherwise false - */ -base64.test = function test(string) { - return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string); -}; - -},{}],3:[function(require,module,exports){ -"use strict"; -module.exports = codegen; - -/** - * Begins generating a function. - * @memberof util - * @param {string[]} functionParams Function parameter names - * @param {string} [functionName] Function name if not anonymous - * @returns {Codegen} Appender that appends code to the function's body - */ -function codegen(functionParams, functionName) { - - /* istanbul ignore if */ - if (typeof functionParams === "string") { - functionName = functionParams; - functionParams = undefined; - } - - var body = []; - - /** - * Appends code to the function's body or finishes generation. - * @typedef Codegen - * @type {function} - * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any - * @param {...*} [formatParams] Format parameters - * @returns {Codegen|Function} Itself or the generated function if finished - * @throws {Error} If format parameter counts do not match - */ - - function Codegen(formatStringOrScope) { - // note that explicit array handling below makes this ~50% faster - - // finish the function - if (typeof formatStringOrScope !== "string") { - var source = toString(); - if (codegen.verbose) - console.log("codegen: " + source); // eslint-disable-line no-console - source = "return " + source; - if (formatStringOrScope) { - var scopeKeys = Object.keys(formatStringOrScope), - scopeParams = new Array(scopeKeys.length + 1), - scopeValues = new Array(scopeKeys.length), - scopeOffset = 0; - while (scopeOffset < scopeKeys.length) { - scopeParams[scopeOffset] = scopeKeys[scopeOffset]; - scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]]; - } - scopeParams[scopeOffset] = source; - return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func - } - return Function(source)(); // eslint-disable-line no-new-func - } - - // otherwise append to body - var formatParams = new Array(arguments.length - 1), - formatOffset = 0; - while (formatOffset < formatParams.length) - formatParams[formatOffset] = arguments[++formatOffset]; - formatOffset = 0; - formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) { - var value = formatParams[formatOffset++]; - switch ($1) { - case "d": case "f": return String(Number(value)); - case "i": return String(Math.floor(value)); - case "j": return JSON.stringify(value); - case "s": return String(value); - } - return "%"; - }); - if (formatOffset !== formatParams.length) - throw Error("parameter count mismatch"); - body.push(formatStringOrScope); - return Codegen; - } - - function toString(functionNameOverride) { - return "function " + (functionNameOverride || functionName || "") + "(" + (functionParams && functionParams.join(",") || "") + "){\n " + body.join("\n ") + "\n}"; - } - - Codegen.toString = toString; - return Codegen; -} - -/** - * Begins generating a function. - * @memberof util - * @function codegen - * @param {string} [functionName] Function name if not anonymous - * @returns {Codegen} Appender that appends code to the function's body - * @variation 2 - */ - -/** - * When set to `true`, codegen will log generated code to console. Useful for debugging. - * @name util.codegen.verbose - * @type {boolean} - */ -codegen.verbose = false; - -},{}],4:[function(require,module,exports){ -"use strict"; -module.exports = EventEmitter; - -/** - * Constructs a new event emitter instance. - * @classdesc A minimal event emitter. - * @memberof util - * @constructor - */ -function EventEmitter() { - - /** - * Registered listeners. - * @type {Object.} - * @private - */ - this._listeners = {}; -} - -/** - * Registers an event listener. - * @param {string} evt Event name - * @param {function} fn Listener - * @param {*} [ctx] Listener context - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.on = function on(evt, fn, ctx) { - (this._listeners[evt] || (this._listeners[evt] = [])).push({ - fn : fn, - ctx : ctx || this - }); - return this; -}; - -/** - * Removes an event listener or any matching listeners if arguments are omitted. - * @param {string} [evt] Event name. Removes all listeners if omitted. - * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted. - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.off = function off(evt, fn) { - if (evt === undefined) - this._listeners = {}; - else { - if (fn === undefined) - this._listeners[evt] = []; - else { - var listeners = this._listeners[evt]; - for (var i = 0; i < listeners.length;) - if (listeners[i].fn === fn) - listeners.splice(i, 1); - else - ++i; - } - } - return this; -}; - -/** - * Emits an event by calling its listeners with the specified arguments. - * @param {string} evt Event name - * @param {...*} args Arguments - * @returns {util.EventEmitter} `this` - */ -EventEmitter.prototype.emit = function emit(evt) { - var listeners = this._listeners[evt]; - if (listeners) { - var args = [], - i = 1; - for (; i < arguments.length;) - args.push(arguments[i++]); - for (i = 0; i < listeners.length;) - listeners[i].fn.apply(listeners[i++].ctx, args); - } - return this; -}; - -},{}],5:[function(require,module,exports){ -"use strict"; -module.exports = fetch; - -var asPromise = require(1), - inquire = require(7); - -var fs = inquire("fs"); - -/** - * Node-style callback as used by {@link util.fetch}. - * @typedef FetchCallback - * @type {function} - * @param {?Error} error Error, if any, otherwise `null` - * @param {string} [contents] File contents, if there hasn't been an error - * @returns {undefined} - */ - -/** - * Options as used by {@link util.fetch}. - * @typedef FetchOptions - * @type {Object} - * @property {boolean} [binary=false] Whether expecting a binary response - * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest - */ - -/** - * Fetches the contents of a file. - * @memberof util - * @param {string} filename File path or url - * @param {FetchOptions} options Fetch options - * @param {FetchCallback} callback Callback function - * @returns {undefined} - */ -function fetch(filename, options, callback) { - if (typeof options === "function") { - callback = options; - options = {}; - } else if (!options) - options = {}; - - if (!callback) - return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this - - // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found. - if (!options.xhr && fs && fs.readFile) - return fs.readFile(filename, function fetchReadFileCallback(err, contents) { - return err && typeof XMLHttpRequest !== "undefined" - ? fetch.xhr(filename, options, callback) - : err - ? callback(err) - : callback(null, options.binary ? contents : contents.toString("utf8")); - }); - - // use the XHR version otherwise. - return fetch.xhr(filename, options, callback); -} - -/** - * Fetches the contents of a file. - * @name util.fetch - * @function - * @param {string} path File path or url - * @param {FetchCallback} callback Callback function - * @returns {undefined} - * @variation 2 - */ - -/** - * Fetches the contents of a file. - * @name util.fetch - * @function - * @param {string} path File path or url - * @param {FetchOptions} [options] Fetch options - * @returns {Promise} Promise - * @variation 3 - */ - -/**/ -fetch.xhr = function fetch_xhr(filename, options, callback) { - var xhr = new XMLHttpRequest(); - xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() { - - if (xhr.readyState !== 4) - return undefined; - - // local cors security errors return status 0 / empty string, too. afaik this cannot be - // reliably distinguished from an actually empty file for security reasons. feel free - // to send a pull request if you are aware of a solution. - if (xhr.status !== 0 && xhr.status !== 200) - return callback(Error("status " + xhr.status)); - - // if binary data is expected, make sure that some sort of array is returned, even if - // ArrayBuffers are not supported. the binary string fallback, however, is unsafe. - if (options.binary) { - var buffer = xhr.response; - if (!buffer) { - buffer = []; - for (var i = 0; i < xhr.responseText.length; ++i) - buffer.push(xhr.responseText.charCodeAt(i) & 255); - } - return callback(null, typeof Uint8Array !== "undefined" ? new Uint8Array(buffer) : buffer); - } - return callback(null, xhr.responseText); - }; - - if (options.binary) { - // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers - if ("overrideMimeType" in xhr) - xhr.overrideMimeType("text/plain; charset=x-user-defined"); - xhr.responseType = "arraybuffer"; - } - - xhr.open("GET", filename); - xhr.send(); -}; - -},{"1":1,"7":7}],6:[function(require,module,exports){ -"use strict"; - -module.exports = factory(factory); - -/** - * Reads / writes floats / doubles from / to buffers. - * @name util.float - * @namespace - */ - -/** - * Writes a 32 bit float to a buffer using little endian byte order. - * @name util.float.writeFloatLE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Writes a 32 bit float to a buffer using big endian byte order. - * @name util.float.writeFloatBE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Reads a 32 bit float from a buffer using little endian byte order. - * @name util.float.readFloatLE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Reads a 32 bit float from a buffer using big endian byte order. - * @name util.float.readFloatBE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Writes a 64 bit double to a buffer using little endian byte order. - * @name util.float.writeDoubleLE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Writes a 64 bit double to a buffer using big endian byte order. - * @name util.float.writeDoubleBE - * @function - * @param {number} val Value to write - * @param {Uint8Array} buf Target buffer - * @param {number} pos Target buffer offset - * @returns {undefined} - */ - -/** - * Reads a 64 bit double from a buffer using little endian byte order. - * @name util.float.readDoubleLE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -/** - * Reads a 64 bit double from a buffer using big endian byte order. - * @name util.float.readDoubleBE - * @function - * @param {Uint8Array} buf Source buffer - * @param {number} pos Source buffer offset - * @returns {number} Value read - */ - -// Factory function for the purpose of node-based testing in modified global environments -function factory(exports) { - - // float: typed array - if (typeof Float32Array !== "undefined") (function() { - - var f32 = new Float32Array([ -0 ]), - f8b = new Uint8Array(f32.buffer), - le = f8b[3] === 128; - - function writeFloat_f32_cpy(val, buf, pos) { - f32[0] = val; - buf[pos ] = f8b[0]; - buf[pos + 1] = f8b[1]; - buf[pos + 2] = f8b[2]; - buf[pos + 3] = f8b[3]; - } - - function writeFloat_f32_rev(val, buf, pos) { - f32[0] = val; - buf[pos ] = f8b[3]; - buf[pos + 1] = f8b[2]; - buf[pos + 2] = f8b[1]; - buf[pos + 3] = f8b[0]; - } - - /* istanbul ignore next */ - exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev; - /* istanbul ignore next */ - exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy; - - function readFloat_f32_cpy(buf, pos) { - f8b[0] = buf[pos ]; - f8b[1] = buf[pos + 1]; - f8b[2] = buf[pos + 2]; - f8b[3] = buf[pos + 3]; - return f32[0]; - } - - function readFloat_f32_rev(buf, pos) { - f8b[3] = buf[pos ]; - f8b[2] = buf[pos + 1]; - f8b[1] = buf[pos + 2]; - f8b[0] = buf[pos + 3]; - return f32[0]; - } - - /* istanbul ignore next */ - exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev; - /* istanbul ignore next */ - exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy; - - // float: ieee754 - })(); else (function() { - - function writeFloat_ieee754(writeUint, val, buf, pos) { - var sign = val < 0 ? 1 : 0; - if (sign) - val = -val; - if (val === 0) - writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos); - else if (isNaN(val)) - writeUint(2143289344, buf, pos); - else if (val > 3.4028234663852886e+38) // +-Infinity - writeUint((sign << 31 | 2139095040) >>> 0, buf, pos); - else if (val < 1.1754943508222875e-38) // denormal - writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos); - else { - var exponent = Math.floor(Math.log(val) / Math.LN2), - mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607; - writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos); - } - } - - exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE); - exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE); - - function readFloat_ieee754(readUint, buf, pos) { - var uint = readUint(buf, pos), - sign = (uint >> 31) * 2 + 1, - exponent = uint >>> 23 & 255, - mantissa = uint & 8388607; - return exponent === 255 - ? mantissa - ? NaN - : sign * Infinity - : exponent === 0 // denormal - ? sign * 1.401298464324817e-45 * mantissa - : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608); - } - - exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE); - exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE); - - })(); - - // double: typed array - if (typeof Float64Array !== "undefined") (function() { - - var f64 = new Float64Array([-0]), - f8b = new Uint8Array(f64.buffer), - le = f8b[7] === 128; - - function writeDouble_f64_cpy(val, buf, pos) { - f64[0] = val; - buf[pos ] = f8b[0]; - buf[pos + 1] = f8b[1]; - buf[pos + 2] = f8b[2]; - buf[pos + 3] = f8b[3]; - buf[pos + 4] = f8b[4]; - buf[pos + 5] = f8b[5]; - buf[pos + 6] = f8b[6]; - buf[pos + 7] = f8b[7]; - } - - function writeDouble_f64_rev(val, buf, pos) { - f64[0] = val; - buf[pos ] = f8b[7]; - buf[pos + 1] = f8b[6]; - buf[pos + 2] = f8b[5]; - buf[pos + 3] = f8b[4]; - buf[pos + 4] = f8b[3]; - buf[pos + 5] = f8b[2]; - buf[pos + 6] = f8b[1]; - buf[pos + 7] = f8b[0]; - } - - /* istanbul ignore next */ - exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev; - /* istanbul ignore next */ - exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy; - - function readDouble_f64_cpy(buf, pos) { - f8b[0] = buf[pos ]; - f8b[1] = buf[pos + 1]; - f8b[2] = buf[pos + 2]; - f8b[3] = buf[pos + 3]; - f8b[4] = buf[pos + 4]; - f8b[5] = buf[pos + 5]; - f8b[6] = buf[pos + 6]; - f8b[7] = buf[pos + 7]; - return f64[0]; - } - - function readDouble_f64_rev(buf, pos) { - f8b[7] = buf[pos ]; - f8b[6] = buf[pos + 1]; - f8b[5] = buf[pos + 2]; - f8b[4] = buf[pos + 3]; - f8b[3] = buf[pos + 4]; - f8b[2] = buf[pos + 5]; - f8b[1] = buf[pos + 6]; - f8b[0] = buf[pos + 7]; - return f64[0]; - } - - /* istanbul ignore next */ - exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev; - /* istanbul ignore next */ - exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy; - - // double: ieee754 - })(); else (function() { - - function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) { - var sign = val < 0 ? 1 : 0; - if (sign) - val = -val; - if (val === 0) { - writeUint(0, buf, pos + off0); - writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1); - } else if (isNaN(val)) { - writeUint(0, buf, pos + off0); - writeUint(2146959360, buf, pos + off1); - } else if (val > 1.7976931348623157e+308) { // +-Infinity - writeUint(0, buf, pos + off0); - writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1); - } else { - var mantissa; - if (val < 2.2250738585072014e-308) { // denormal - mantissa = val / 5e-324; - writeUint(mantissa >>> 0, buf, pos + off0); - writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1); - } else { - var exponent = Math.floor(Math.log(val) / Math.LN2); - if (exponent === 1024) - exponent = 1023; - mantissa = val * Math.pow(2, -exponent); - writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0); - writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1); - } - } - } - - exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4); - exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0); - - function readDouble_ieee754(readUint, off0, off1, buf, pos) { - var lo = readUint(buf, pos + off0), - hi = readUint(buf, pos + off1); - var sign = (hi >> 31) * 2 + 1, - exponent = hi >>> 20 & 2047, - mantissa = 4294967296 * (hi & 1048575) + lo; - return exponent === 2047 - ? mantissa - ? NaN - : sign * Infinity - : exponent === 0 // denormal - ? sign * 5e-324 * mantissa - : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496); - } - - exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4); - exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0); - - })(); - - return exports; -} - -// uint helpers - -function writeUintLE(val, buf, pos) { - buf[pos ] = val & 255; - buf[pos + 1] = val >>> 8 & 255; - buf[pos + 2] = val >>> 16 & 255; - buf[pos + 3] = val >>> 24; -} - -function writeUintBE(val, buf, pos) { - buf[pos ] = val >>> 24; - buf[pos + 1] = val >>> 16 & 255; - buf[pos + 2] = val >>> 8 & 255; - buf[pos + 3] = val & 255; -} - -function readUintLE(buf, pos) { - return (buf[pos ] - | buf[pos + 1] << 8 - | buf[pos + 2] << 16 - | buf[pos + 3] << 24) >>> 0; -} - -function readUintBE(buf, pos) { - return (buf[pos ] << 24 - | buf[pos + 1] << 16 - | buf[pos + 2] << 8 - | buf[pos + 3]) >>> 0; -} - -},{}],7:[function(require,module,exports){ -"use strict"; -module.exports = inquire; - -/** - * Requires a module only if available. - * @memberof util - * @param {string} moduleName Module to require - * @returns {?Object} Required module if available and not empty, otherwise `null` - */ -function inquire(moduleName) { - try { - var mod = eval("quire".replace(/^/,"re"))(moduleName); // eslint-disable-line no-eval - if (mod && (mod.length || Object.keys(mod).length)) - return mod; - } catch (e) {} // eslint-disable-line no-empty - return null; -} - -},{}],8:[function(require,module,exports){ -"use strict"; - -/** - * A minimal path module to resolve Unix, Windows and URL paths alike. - * @memberof util - * @namespace - */ -var path = exports; - -var isAbsolute = -/** - * Tests if the specified path is absolute. - * @param {string} path Path to test - * @returns {boolean} `true` if path is absolute - */ -path.isAbsolute = function isAbsolute(path) { - return /^(?:\/|\w+:)/.test(path); -}; - -var normalize = -/** - * Normalizes the specified path. - * @param {string} path Path to normalize - * @returns {string} Normalized path - */ -path.normalize = function normalize(path) { - path = path.replace(/\\/g, "/") - .replace(/\/{2,}/g, "/"); - var parts = path.split("/"), - absolute = isAbsolute(path), - prefix = ""; - if (absolute) - prefix = parts.shift() + "/"; - for (var i = 0; i < parts.length;) { - if (parts[i] === "..") { - if (i > 0 && parts[i - 1] !== "..") - parts.splice(--i, 2); - else if (absolute) - parts.splice(i, 1); - else - ++i; - } else if (parts[i] === ".") - parts.splice(i, 1); - else - ++i; - } - return prefix + parts.join("/"); -}; - -/** - * Resolves the specified include path against the specified origin path. - * @param {string} originPath Path to the origin file - * @param {string} includePath Include path relative to origin path - * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized - * @returns {string} Path to the include file - */ -path.resolve = function resolve(originPath, includePath, alreadyNormalized) { - if (!alreadyNormalized) - includePath = normalize(includePath); - if (isAbsolute(includePath)) - return includePath; - if (!alreadyNormalized) - originPath = normalize(originPath); - return (originPath = originPath.replace(/(?:\/|^)[^/]+$/, "")).length ? normalize(originPath + "/" + includePath) : includePath; -}; - -},{}],9:[function(require,module,exports){ -"use strict"; -module.exports = pool; - -/** - * An allocator as used by {@link util.pool}. - * @typedef PoolAllocator - * @type {function} - * @param {number} size Buffer size - * @returns {Uint8Array} Buffer - */ - -/** - * A slicer as used by {@link util.pool}. - * @typedef PoolSlicer - * @type {function} - * @param {number} start Start offset - * @param {number} end End offset - * @returns {Uint8Array} Buffer slice - * @this {Uint8Array} - */ - -/** - * A general purpose buffer pool. - * @memberof util - * @function - * @param {PoolAllocator} alloc Allocator - * @param {PoolSlicer} slice Slicer - * @param {number} [size=8192] Slab size - * @returns {PoolAllocator} Pooled allocator - */ -function pool(alloc, slice, size) { - var SIZE = size || 8192; - var MAX = SIZE >>> 1; - var slab = null; - var offset = SIZE; - return function pool_alloc(size) { - if (size < 1 || size > MAX) - return alloc(size); - if (offset + size > SIZE) { - slab = alloc(SIZE); - offset = 0; - } - var buf = slice.call(slab, offset, offset += size); - if (offset & 7) // align to 32 bit - offset = (offset | 7) + 1; - return buf; - }; -} - -},{}],10:[function(require,module,exports){ -"use strict"; - -/** - * A minimal UTF8 implementation for number arrays. - * @memberof util - * @namespace - */ -var utf8 = exports; - -/** - * Calculates the UTF8 byte length of a string. - * @param {string} string String - * @returns {number} Byte length - */ -utf8.length = function utf8_length(string) { - var len = 0, - c = 0; - for (var i = 0; i < string.length; ++i) { - c = string.charCodeAt(i); - if (c < 128) - len += 1; - else if (c < 2048) - len += 2; - else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) { - ++i; - len += 4; - } else - len += 3; - } - return len; -}; - -/** - * Reads UTF8 bytes as a string. - * @param {Uint8Array} buffer Source buffer - * @param {number} start Source start - * @param {number} end Source end - * @returns {string} String read - */ -utf8.read = function utf8_read(buffer, start, end) { - var len = end - start; - if (len < 1) - return ""; - var parts = null, - chunk = [], - i = 0, // char offset - t; // temporary - while (start < end) { - t = buffer[start++]; - if (t < 128) - chunk[i++] = t; - else if (t > 191 && t < 224) - chunk[i++] = (t & 31) << 6 | buffer[start++] & 63; - else if (t > 239 && t < 365) { - t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000; - chunk[i++] = 0xD800 + (t >> 10); - chunk[i++] = 0xDC00 + (t & 1023); - } else - chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63; - if (i > 8191) { - (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk)); - i = 0; - } - } - if (parts) { - if (i) - parts.push(String.fromCharCode.apply(String, chunk.slice(0, i))); - return parts.join(""); - } - return String.fromCharCode.apply(String, chunk.slice(0, i)); -}; - -/** - * Writes a string as UTF8 bytes. - * @param {string} string Source string - * @param {Uint8Array} buffer Destination buffer - * @param {number} offset Destination offset - * @returns {number} Bytes written - */ -utf8.write = function utf8_write(string, buffer, offset) { - var start = offset, - c1, // character 1 - c2; // character 2 - for (var i = 0; i < string.length; ++i) { - c1 = string.charCodeAt(i); - if (c1 < 128) { - buffer[offset++] = c1; - } else if (c1 < 2048) { - buffer[offset++] = c1 >> 6 | 192; - buffer[offset++] = c1 & 63 | 128; - } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) { - c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF); - ++i; - buffer[offset++] = c1 >> 18 | 240; - buffer[offset++] = c1 >> 12 & 63 | 128; - buffer[offset++] = c1 >> 6 & 63 | 128; - buffer[offset++] = c1 & 63 | 128; - } else { - buffer[offset++] = c1 >> 12 | 224; - buffer[offset++] = c1 >> 6 & 63 | 128; - buffer[offset++] = c1 & 63 | 128; - } - } - return offset - start; -}; - -},{}],11:[function(require,module,exports){ -"use strict"; -module.exports = common; - -var commonRe = /\/|\./; - -/** - * Provides common type definitions. - * Can also be used to provide additional google types or your own custom types. - * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name - * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition - * @returns {undefined} - * @property {INamespace} google/protobuf/any.proto Any - * @property {INamespace} google/protobuf/duration.proto Duration - * @property {INamespace} google/protobuf/empty.proto Empty - * @property {INamespace} google/protobuf/field_mask.proto FieldMask - * @property {INamespace} google/protobuf/struct.proto Struct, Value, NullValue and ListValue - * @property {INamespace} google/protobuf/timestamp.proto Timestamp - * @property {INamespace} google/protobuf/wrappers.proto Wrappers - * @example - * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension) - * protobuf.common("descriptor", descriptorJson); - * - * // manually provides a custom definition (uses my.foo namespace) - * protobuf.common("my/foo/bar.proto", myFooBarJson); - */ -function common(name, json) { - if (!commonRe.test(name)) { - name = "google/protobuf/" + name + ".proto"; - json = { nested: { google: { nested: { protobuf: { nested: json } } } } }; - } - common[name] = json; -} - -// Not provided because of limited use (feel free to discuss or to provide yourself): -// -// google/protobuf/descriptor.proto -// google/protobuf/source_context.proto -// google/protobuf/type.proto -// -// Stripped and pre-parsed versions of these non-bundled files are instead available as part of -// the repository or package within the google/protobuf directory. - -common("any", { - - /** - * Properties of a google.protobuf.Any message. - * @interface IAny - * @type {Object} - * @property {string} [typeUrl] - * @property {Uint8Array} [bytes] - * @memberof common - */ - Any: { - fields: { - type_url: { - type: "string", - id: 1 - }, - value: { - type: "bytes", - id: 2 - } - } - } -}); - -var timeType; - -common("duration", { - - /** - * Properties of a google.protobuf.Duration message. - * @interface IDuration - * @type {Object} - * @property {number|Long} [seconds] - * @property {number} [nanos] - * @memberof common - */ - Duration: timeType = { - fields: { - seconds: { - type: "int64", - id: 1 - }, - nanos: { - type: "int32", - id: 2 - } - } - } -}); - -common("timestamp", { - - /** - * Properties of a google.protobuf.Timestamp message. - * @interface ITimestamp - * @type {Object} - * @property {number|Long} [seconds] - * @property {number} [nanos] - * @memberof common - */ - Timestamp: timeType -}); - -common("empty", { - - /** - * Properties of a google.protobuf.Empty message. - * @interface IEmpty - * @memberof common - */ - Empty: { - fields: {} - } -}); - -common("struct", { - - /** - * Properties of a google.protobuf.Struct message. - * @interface IStruct - * @type {Object} - * @property {Object.} [fields] - * @memberof common - */ - Struct: { - fields: { - fields: { - keyType: "string", - type: "Value", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.Value message. - * @interface IValue - * @type {Object} - * @property {string} [kind] - * @property {0} [nullValue] - * @property {number} [numberValue] - * @property {string} [stringValue] - * @property {boolean} [boolValue] - * @property {IStruct} [structValue] - * @property {IListValue} [listValue] - * @memberof common - */ - Value: { - oneofs: { - kind: { - oneof: [ - "nullValue", - "numberValue", - "stringValue", - "boolValue", - "structValue", - "listValue" - ] - } - }, - fields: { - nullValue: { - type: "NullValue", - id: 1 - }, - numberValue: { - type: "double", - id: 2 - }, - stringValue: { - type: "string", - id: 3 - }, - boolValue: { - type: "bool", - id: 4 - }, - structValue: { - type: "Struct", - id: 5 - }, - listValue: { - type: "ListValue", - id: 6 - } - } - }, - - NullValue: { - values: { - NULL_VALUE: 0 - } - }, - - /** - * Properties of a google.protobuf.ListValue message. - * @interface IListValue - * @type {Object} - * @property {Array.} [values] - * @memberof common - */ - ListValue: { - fields: { - values: { - rule: "repeated", - type: "Value", - id: 1 - } - } - } -}); - -common("wrappers", { - - /** - * Properties of a google.protobuf.DoubleValue message. - * @interface IDoubleValue - * @type {Object} - * @property {number} [value] - * @memberof common - */ - DoubleValue: { - fields: { - value: { - type: "double", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.FloatValue message. - * @interface IFloatValue - * @type {Object} - * @property {number} [value] - * @memberof common - */ - FloatValue: { - fields: { - value: { - type: "float", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.Int64Value message. - * @interface IInt64Value - * @type {Object} - * @property {number|Long} [value] - * @memberof common - */ - Int64Value: { - fields: { - value: { - type: "int64", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.UInt64Value message. - * @interface IUInt64Value - * @type {Object} - * @property {number|Long} [value] - * @memberof common - */ - UInt64Value: { - fields: { - value: { - type: "uint64", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.Int32Value message. - * @interface IInt32Value - * @type {Object} - * @property {number} [value] - * @memberof common - */ - Int32Value: { - fields: { - value: { - type: "int32", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.UInt32Value message. - * @interface IUInt32Value - * @type {Object} - * @property {number} [value] - * @memberof common - */ - UInt32Value: { - fields: { - value: { - type: "uint32", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.BoolValue message. - * @interface IBoolValue - * @type {Object} - * @property {boolean} [value] - * @memberof common - */ - BoolValue: { - fields: { - value: { - type: "bool", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.StringValue message. - * @interface IStringValue - * @type {Object} - * @property {string} [value] - * @memberof common - */ - StringValue: { - fields: { - value: { - type: "string", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.BytesValue message. - * @interface IBytesValue - * @type {Object} - * @property {Uint8Array} [value] - * @memberof common - */ - BytesValue: { - fields: { - value: { - type: "bytes", - id: 1 - } - } - } -}); - -common("field_mask", { - - /** - * Properties of a google.protobuf.FieldMask message. - * @interface IDoubleValue - * @type {Object} - * @property {number} [value] - * @memberof common - */ - FieldMask: { - fields: { - paths: { - rule: "repeated", - type: "string", - id: 1 - } - } - } -}); - -/** - * Gets the root definition of the specified common proto file. - * - * Bundled definitions are: - * - google/protobuf/any.proto - * - google/protobuf/duration.proto - * - google/protobuf/empty.proto - * - google/protobuf/field_mask.proto - * - google/protobuf/struct.proto - * - google/protobuf/timestamp.proto - * - google/protobuf/wrappers.proto - * - * @param {string} file Proto file name - * @returns {INamespace|null} Root definition or `null` if not defined - */ -common.get = function get(file) { - return common[file] || null; -}; - -},{}],12:[function(require,module,exports){ -"use strict"; -/** - * Runtime message from/to plain object converters. - * @namespace - */ -var converter = exports; - -var Enum = require(15), - util = require(37); - -/** - * Generates a partial value fromObject conveter. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {number} fieldIndex Field index - * @param {string} prop Property reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genValuePartial_fromObject(gen, field, fieldIndex, prop, ref) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - if (ref === undefined) { - ref = "d" + prop; - } - if (field.resolvedType) { - if (field.resolvedType instanceof Enum) { gen - ("switch(%s){", ref); - for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) { - if (field.repeated && values[keys[i]] === field.typeDefault) gen - ("default:"); - gen - ("case%j:", keys[i]) - ("case %i:", values[keys[i]]) - ("m%s=%j", prop, values[keys[i]]) - ("break"); - } gen - ("}"); - } else gen - ("if(typeof %s!==\"object\")", ref) - ("throw TypeError(%j)", field.fullName + ": object expected") - ("m%s=types[%i].fromObject(%s)", prop, fieldIndex, ref); - } else { - var isUnsigned = false; - switch (field.type) { - case "double": - case "float": gen - ("m%s=Number(%s)", prop, ref); // also catches "NaN", "Infinity" - break; - case "uint32": - case "fixed32": gen - ("m%s=%s>>>0", prop, ref); - break; - case "int32": - case "sint32": - case "sfixed32": gen - ("m%s=%s|0", prop, ref); - break; - case "uint64": - isUnsigned = true; - // eslint-disable-line no-fallthrough - case "int64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(util.Long)") - ("(m%s=util.Long.fromValue(%s)).unsigned=%j", prop, ref, isUnsigned) - ("else if(typeof %s===\"string\")", ref) - ("m%s=parseInt(%s,10)", prop, ref) - ("else if(typeof %s===\"number\")", ref) - ("m%s=%s", prop, ref) - ("else if(typeof %s===\"object\")", ref) - ("m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)", prop, ref, ref, isUnsigned ? "true" : ""); - break; - case "bytes": gen - ("if(typeof %s===\"string\")", ref) - ("util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)", ref, prop, ref) - ("else if(%s.length)", ref) - ("m%s=%s", prop, ref); - break; - case "string": gen - ("m%s=String(%s)", prop, ref); - break; - case "bool": gen - ("m%s=Boolean(%s)", prop, ref); - break; - /* default: gen - ("m%s=%s", prop, ref); - break; */ - } - } - return gen; - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} - -/** - * Generates a plain object to runtime message converter specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -converter.fromObject = function fromObject(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var fields = mtype.fieldsArray; - var gen = util.codegen(["d"], mtype.name + "$fromObject") - ("if(d instanceof this.ctor)") - ("return d"); - if (!fields.length) return gen - ("return new this.ctor"); - gen - ("var m=new this.ctor"); - for (var i = 0; i < fields.length; ++i) { - var field = fields[i].resolve(), - prop = util.safeProp(field.name); - - // Map fields - if (field.map) { gen - ("if(d%s){", prop) - ("if(typeof d%s!==\"object\")", prop) - ("throw TypeError(%j)", field.fullName + ": object expected") - ("m%s={}", prop) - ("for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s", prop, prop, prop, prop, isUnsigned ? "true": "", prop); - break; - case "bytes": gen - ("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s", prop, prop, prop, prop, prop); - break; - default: gen - ("d%s=m%s", prop, prop); - break; - } - } - return gen; - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} - -/** - * Generates a runtime message to plain object converter specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -converter.toObject = function toObject(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById); - if (!fields.length) - return util.codegen()("return {}"); - var gen = util.codegen(["m", "o"], mtype.name + "$toObject") - ("if(!o)") - ("o={}") - ("var d={}"); - - var repeatedFields = [], - mapFields = [], - normalFields = [], - i = 0; - for (; i < fields.length; ++i) - if (!fields[i].partOf) - ( fields[i].resolve().repeated ? repeatedFields - : fields[i].map ? mapFields - : normalFields).push(fields[i]); - - if (repeatedFields.length) { gen - ("if(o.arrays||o.defaults){"); - for (i = 0; i < repeatedFields.length; ++i) gen - ("d%s=[]", util.safeProp(repeatedFields[i].name)); - gen - ("}"); - } - - if (mapFields.length) { gen - ("if(o.objects||o.defaults){"); - for (i = 0; i < mapFields.length; ++i) gen - ("d%s={}", util.safeProp(mapFields[i].name)); - gen - ("}"); - } - - if (normalFields.length) { gen - ("if(o.defaults){"); - for (i = 0; i < normalFields.length; ++i) { - var field = normalFields[i], - prop = util.safeProp(field.name); - if (field.resolvedType instanceof Enum) gen - ("d%s=o.enums===String?%j:%j", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault); - else if (field.long) gen - ("if(util.Long){") - ("var n=new util.Long(%i,%i,%j)", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned) - ("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n", prop) - ("}else") - ("d%s=o.longs===String?%j:%i", prop, field.typeDefault.toString(), field.typeDefault.toNumber()); - else if (field.bytes) { - var arrayDefault = "[" + Array.prototype.slice.call(field.typeDefault).join(",") + "]"; - gen - ("if(o.bytes===String)d%s=%j", prop, String.fromCharCode.apply(String, field.typeDefault)) - ("else{") - ("d%s=%s", prop, arrayDefault) - ("if(o.bytes!==Array)d%s=util.newBuffer(d%s)", prop, prop) - ("}"); - } else gen - ("d%s=%j", prop, field.typeDefault); // also messages (=null) - } gen - ("}"); - } - var hasKs2 = false; - for (i = 0; i < fields.length; ++i) { - var field = fields[i], - index = mtype._fieldsArray.indexOf(field), - prop = util.safeProp(field.name); - if (field.map) { - if (!hasKs2) { hasKs2 = true; gen - ("var ks2"); - } gen - ("if(m%s&&(ks2=Object.keys(m%s)).length){", prop, prop) - ("d%s={}", prop) - ("for(var j=0;j>>3){"); - - var i = 0; - for (; i < /* initializes */ mtype.fieldsArray.length; ++i) { - var field = mtype._fieldsArray[i].resolve(), - type = field.resolvedType instanceof Enum ? "int32" : field.type, - ref = "m" + util.safeProp(field.name); gen - ("case %i:", field.id); - - // Map fields - if (field.map) { gen - ("r.skip().pos++") // assumes id 1 + key wireType - ("if(%s===util.emptyObject)", ref) - ("%s={}", ref) - ("k=r.%s()", field.keyType) - ("r.pos++"); // assumes id 2 + value wireType - if (types.long[field.keyType] !== undefined) { - if (types.basic[type] === undefined) gen - ("%s[typeof k===\"object\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())", ref, i); // can't be groups - else gen - ("%s[typeof k===\"object\"?util.longToHash(k):k]=r.%s()", ref, type); - } else { - if (types.basic[type] === undefined) gen - ("%s[k]=types[%i].decode(r,r.uint32())", ref, i); // can't be groups - else gen - ("%s[k]=r.%s()", ref, type); - } - - // Repeated fields - } else if (field.repeated) { gen - - ("if(!(%s&&%s.length))", ref, ref) - ("%s=[]", ref); - - // Packable (always check for forward and backward compatiblity) - if (types.packed[type] !== undefined) gen - ("if((t&7)===2){") - ("var c2=r.uint32()+r.pos") - ("while(r.pos>> 0, (field.id << 3 | 4) >>> 0) - : gen("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()", fieldIndex, ref, (field.id << 3 | 2) >>> 0); -} - -/** - * Generates an encoder specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -function encoder(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var gen = util.codegen(["m", "w"], mtype.name + "$encode") - ("if(!w)") - ("w=Writer.create()"); - - var i, ref; - - // "when a message is serialized its known fields should be written sequentially by field number" - var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById); - - for (var i = 0; i < fields.length; ++i) { - var field = fields[i].resolve(), - index = mtype._fieldsArray.indexOf(field), - type = field.resolvedType instanceof Enum ? "int32" : field.type, - wireType = types.basic[type]; - ref = "m" + util.safeProp(field.name); - - // Map fields - if (field.map) { - gen - ("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){", ref, field.name) // !== undefined && !== null - ("for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType); - if (wireType === undefined) gen - ("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()", index, ref); // can't be groups - else gen - (".uint32(%i).%s(%s[ks[i]]).ldelim()", 16 | wireType, type, ref); - gen - ("}") - ("}"); - - // Repeated fields - } else if (field.repeated) { - var arrayRef = ref; - if (field.useToArray()) { - arrayRef = "array" + field.id; - gen("var %s", arrayRef); - gen("if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }", - ref, ref, arrayRef, ref, arrayRef, ref); - } - gen("if(%s!=null&&%s.length){", arrayRef, arrayRef); // !== undefined && !== null - // Packed repeated - if (field.packed && types.packed[type] !== undefined) { gen - - ("w.uint32(%i).fork()", (field.id << 3 | 2) >>> 0) - ("for(var i=0;i<%s.length;++i)", arrayRef) - ("w.%s(%s[i])", type, arrayRef) - ("w.ldelim()"); - - // Non-packed - } else { gen - - ("for(var i=0;i<%s.length;++i)", arrayRef); - if (wireType === undefined) - genTypePartial(gen, field, index, arrayRef + "[i]"); - else gen - ("w.uint32(%i).%s(%s[i])", (field.id << 3 | wireType) >>> 0, type, arrayRef); - - } gen - ("}"); - - // Non-repeated - } else { - if (field.optional) gen - ("if(%s!=null&&Object.hasOwnProperty.call(m,%j))", ref, field.name); // !== undefined && !== null - - if (wireType === undefined) - genTypePartial(gen, field, index, ref); - else gen - ("w.uint32(%i).%s(%s)", (field.id << 3 | wireType) >>> 0, type, ref); - - } - } - - return gen - ("return w"); - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} - -},{"15":15,"36":36,"37":37}],15:[function(require,module,exports){ -"use strict"; -module.exports = Enum; - -// extends ReflectionObject -var ReflectionObject = require(24); -((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = "Enum"; - -var Namespace = require(23), - util = require(37); - -/** - * Constructs a new enum instance. - * @classdesc Reflected enum. - * @extends ReflectionObject - * @constructor - * @param {string} name Unique name within its namespace - * @param {Object.} [values] Enum values as an object, by name - * @param {Object.} [options] Declared options - * @param {string} [comment] The comment for this enum - * @param {Object.} [comments] The value comments for this enum - */ -function Enum(name, values, options, comment, comments) { - ReflectionObject.call(this, name, options); - - if (values && typeof values !== "object") - throw TypeError("values must be an object"); - - /** - * Enum values by id. - * @type {Object.} - */ - this.valuesById = {}; - - /** - * Enum values by name. - * @type {Object.} - */ - this.values = Object.create(this.valuesById); // toJSON, marker - - /** - * Enum comment text. - * @type {string|null} - */ - this.comment = comment; - - /** - * Value comment texts, if any. - * @type {Object.} - */ - this.comments = comments || {}; - - /** - * Reserved ranges, if any. - * @type {Array.} - */ - this.reserved = undefined; // toJSON - - // Note that values inherit valuesById on their prototype which makes them a TypeScript- - // compatible enum. This is used by pbts to write actual enum definitions that work for - // static and reflection code alike instead of emitting generic object definitions. - - if (values) - for (var keys = Object.keys(values), i = 0; i < keys.length; ++i) - if (typeof values[keys[i]] === "number") // use forward entries only - this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i]; -} - -/** - * Enum descriptor. - * @interface IEnum - * @property {Object.} values Enum values - * @property {Object.} [options] Enum options - */ - -/** - * Constructs an enum from an enum descriptor. - * @param {string} name Enum name - * @param {IEnum} json Enum descriptor - * @returns {Enum} Created enum - * @throws {TypeError} If arguments are invalid - */ -Enum.fromJSON = function fromJSON(name, json) { - var enm = new Enum(name, json.values, json.options, json.comment, json.comments); - enm.reserved = json.reserved; - return enm; -}; - -/** - * Converts this enum to an enum descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IEnum} Enum descriptor - */ -Enum.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , this.options, - "values" , this.values, - "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined, - "comment" , keepComments ? this.comment : undefined, - "comments" , keepComments ? this.comments : undefined - ]); -}; - -/** - * Adds a value to this enum. - * @param {string} name Value name - * @param {number} id Value id - * @param {string} [comment] Comment, if any - * @returns {Enum} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a value with this name or id - */ -Enum.prototype.add = function add(name, id, comment) { - // utilized by the parser but not by .fromJSON - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - if (!util.isInteger(id)) - throw TypeError("id must be an integer"); - - if (this.values[name] !== undefined) - throw Error("duplicate name '" + name + "' in " + this); - - if (this.isReservedId(id)) - throw Error("id " + id + " is reserved in " + this); - - if (this.isReservedName(name)) - throw Error("name '" + name + "' is reserved in " + this); - - if (this.valuesById[id] !== undefined) { - if (!(this.options && this.options.allow_alias)) - throw Error("duplicate id " + id + " in " + this); - this.values[name] = id; - } else - this.valuesById[this.values[name] = id] = name; - - this.comments[name] = comment || null; - return this; -}; - -/** - * Removes a value from this enum - * @param {string} name Value name - * @returns {Enum} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `name` is not a name of this enum - */ -Enum.prototype.remove = function remove(name) { - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - var val = this.values[name]; - if (val == null) - throw Error("name '" + name + "' does not exist in " + this); - - delete this.valuesById[val]; - delete this.values[name]; - delete this.comments[name]; - - return this; -}; - -/** - * Tests if the specified id is reserved. - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Enum.prototype.isReservedId = function isReservedId(id) { - return Namespace.isReservedId(this.reserved, id); -}; - -/** - * Tests if the specified name is reserved. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Enum.prototype.isReservedName = function isReservedName(name) { - return Namespace.isReservedName(this.reserved, name); -}; - -},{"23":23,"24":24,"37":37}],16:[function(require,module,exports){ -"use strict"; -module.exports = Field; - -// extends ReflectionObject -var ReflectionObject = require(24); -((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = "Field"; - -var Enum = require(15), - types = require(36), - util = require(37); - -var Type; // cyclic - -var ruleRe = /^required|optional|repeated$/; - -/** - * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class. - * @name Field - * @classdesc Reflected message field. - * @extends FieldBase - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} type Value type - * @param {string|Object.} [rule="optional"] Field rule - * @param {string|Object.} [extend] Extended type if different from parent - * @param {Object.} [options] Declared options - */ - -/** - * Constructs a field from a field descriptor. - * @param {string} name Field name - * @param {IField} json Field descriptor - * @returns {Field} Created field - * @throws {TypeError} If arguments are invalid - */ -Field.fromJSON = function fromJSON(name, json) { - return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment); -}; - -/** - * Not an actual constructor. Use {@link Field} instead. - * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions. - * @exports FieldBase - * @extends ReflectionObject - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} type Value type - * @param {string|Object.} [rule="optional"] Field rule - * @param {string|Object.} [extend] Extended type if different from parent - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function Field(name, id, type, rule, extend, options, comment) { - - if (util.isObject(rule)) { - comment = extend; - options = rule; - rule = extend = undefined; - } else if (util.isObject(extend)) { - comment = options; - options = extend; - extend = undefined; - } - - ReflectionObject.call(this, name, options); - - if (!util.isInteger(id) || id < 0) - throw TypeError("id must be a non-negative integer"); - - if (!util.isString(type)) - throw TypeError("type must be a string"); - - if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase())) - throw TypeError("rule must be a string rule"); - - if (extend !== undefined && !util.isString(extend)) - throw TypeError("extend must be a string"); - - /** - * Field rule, if any. - * @type {string|undefined} - */ - this.rule = rule && rule !== "optional" ? rule : undefined; // toJSON - - /** - * Field type. - * @type {string} - */ - this.type = type; // toJSON - - /** - * Unique field id. - * @type {number} - */ - this.id = id; // toJSON, marker - - /** - * Extended type if different from parent. - * @type {string|undefined} - */ - this.extend = extend || undefined; // toJSON - - /** - * Whether this field is required. - * @type {boolean} - */ - this.required = rule === "required"; - - /** - * Whether this field is optional. - * @type {boolean} - */ - this.optional = !this.required; - - /** - * Whether this field is repeated. - * @type {boolean} - */ - this.repeated = rule === "repeated"; - - /** - * Whether this field is a map or not. - * @type {boolean} - */ - this.map = false; - - /** - * Message this field belongs to. - * @type {Type|null} - */ - this.message = null; - - /** - * OneOf this field belongs to, if any, - * @type {OneOf|null} - */ - this.partOf = null; - - /** - * The field type's default value. - * @type {*} - */ - this.typeDefault = null; - - /** - * The field's default value on prototypes. - * @type {*} - */ - this.defaultValue = null; - - /** - * Whether this field's value should be treated as a long. - * @type {boolean} - */ - this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false; - - /** - * Whether this field's value is a buffer. - * @type {boolean} - */ - this.bytes = type === "bytes"; - - /** - * Resolved type if not a basic type. - * @type {Type|Enum|null} - */ - this.resolvedType = null; - - /** - * Sister-field within the extended type if a declaring extension field. - * @type {Field|null} - */ - this.extensionField = null; - - /** - * Sister-field within the declaring namespace if an extended field. - * @type {Field|null} - */ - this.declaringField = null; - - /** - * Internally remembers whether this field is packed. - * @type {boolean|null} - * @private - */ - this._packed = null; - - /** - * Comment for this field. - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Determines whether this field is packed. Only relevant when repeated and working with proto2. - * @name Field#packed - * @type {boolean} - * @readonly - */ -Object.defineProperty(Field.prototype, "packed", { - get: function() { - // defaults to packed=true if not explicity set to false - if (this._packed === null) - this._packed = this.getOption("packed") !== false; - return this._packed; - } -}); - -/** - * @override - */ -Field.prototype.setOption = function setOption(name, value, ifNotSet) { - if (name === "packed") // clear cached before setting - this._packed = null; - return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet); -}; - -/** - * Field descriptor. - * @interface IField - * @property {string} [rule="optional"] Field rule - * @property {string} type Field type - * @property {number} id Field id - * @property {Object.} [options] Field options - */ - -/** - * Extension field descriptor. - * @interface IExtensionField - * @extends IField - * @property {string} extend Extended type - */ - -/** - * Converts this field to a field descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IField} Field descriptor - */ -Field.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "rule" , this.rule !== "optional" && this.rule || undefined, - "type" , this.type, - "id" , this.id, - "extend" , this.extend, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Resolves this field's type references. - * @returns {Field} `this` - * @throws {Error} If any reference cannot be resolved - */ -Field.prototype.resolve = function resolve() { - - if (this.resolved) - return this; - - if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it - this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type); - if (this.resolvedType instanceof Type) - this.typeDefault = null; - else // instanceof Enum - this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined - } - - // use explicitly set default value if present - if (this.options && this.options["default"] != null) { - this.typeDefault = this.options["default"]; - if (this.resolvedType instanceof Enum && typeof this.typeDefault === "string") - this.typeDefault = this.resolvedType.values[this.typeDefault]; - } - - // remove unnecessary options - if (this.options) { - if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum)) - delete this.options.packed; - if (!Object.keys(this.options).length) - this.options = undefined; - } - - // convert to internal data type if necesssary - if (this.long) { - this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === "u"); - - /* istanbul ignore else */ - if (Object.freeze) - Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it) - - } else if (this.bytes && typeof this.typeDefault === "string") { - var buf; - if (util.base64.test(this.typeDefault)) - util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0); - else - util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0); - this.typeDefault = buf; - } - - // take special care of maps and repeated fields - if (this.map) - this.defaultValue = util.emptyObject; - else if (this.repeated) - this.defaultValue = util.emptyArray; - else - this.defaultValue = this.typeDefault; - - // ensure proper value on prototype - if (this.parent instanceof Type) - this.parent.ctor.prototype[this.name] = this.defaultValue; - - return ReflectionObject.prototype.resolve.call(this); -}; - -Field.prototype.useToArray = function useToArray() { - return !!this.getOption("(js_use_toArray)"); -}; - -/** - * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript). - * @typedef FieldDecorator - * @type {function} - * @param {Object} prototype Target prototype - * @param {string} fieldName Field name - * @returns {undefined} - */ - -/** - * Field decorator (TypeScript). - * @name Field.d - * @function - * @param {number} fieldId Field id - * @param {"double"|"float"|"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"string"|"bool"|"bytes"|Object} fieldType Field type - * @param {"optional"|"required"|"repeated"} [fieldRule="optional"] Field rule - * @param {T} [defaultValue] Default value - * @returns {FieldDecorator} Decorator function - * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[] - */ -Field.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) { - - // submessage: decorate the submessage and use its name as the type - if (typeof fieldType === "function") - fieldType = util.decorateType(fieldType).name; - - // enum reference: create a reflected copy of the enum and keep reuseing it - else if (fieldType && typeof fieldType === "object") - fieldType = util.decorateEnum(fieldType).name; - - return function fieldDecorator(prototype, fieldName) { - util.decorateType(prototype.constructor) - .add(new Field(fieldName, fieldId, fieldType, fieldRule, { "default": defaultValue })); - }; -}; - -/** - * Field decorator (TypeScript). - * @name Field.d - * @function - * @param {number} fieldId Field id - * @param {Constructor|string} fieldType Field type - * @param {"optional"|"required"|"repeated"} [fieldRule="optional"] Field rule - * @returns {FieldDecorator} Decorator function - * @template T extends Message - * @variation 2 - */ -// like Field.d but without a default value - -// Sets up cyclic dependencies (called in index-light) -Field._configure = function configure(Type_) { - Type = Type_; -}; - -},{"15":15,"24":24,"36":36,"37":37}],17:[function(require,module,exports){ -"use strict"; -var protobuf = module.exports = require(18); - -protobuf.build = "light"; - -/** - * A node-style callback as used by {@link load} and {@link Root#load}. - * @typedef LoadCallback - * @type {function} - * @param {Error|null} error Error, if any, otherwise `null` - * @param {Root} [root] Root, if there hasn't been an error - * @returns {undefined} - */ - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. - * @param {string|string[]} filename One or multiple files to load - * @param {Root} root Root namespace, defaults to create a new one if omitted. - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @see {@link Root#load} - */ -function load(filename, root, callback) { - if (typeof root === "function") { - callback = root; - root = new protobuf.Root(); - } else if (!root) - root = new protobuf.Root(); - return root.load(filename, callback); -} - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. - * @name load - * @function - * @param {string|string[]} filename One or multiple files to load - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @see {@link Root#load} - * @variation 2 - */ -// function load(filename:string, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise. - * @name load - * @function - * @param {string|string[]} filename One or multiple files to load - * @param {Root} [root] Root namespace, defaults to create a new one if omitted. - * @returns {Promise} Promise - * @see {@link Root#load} - * @variation 3 - */ -// function load(filename:string, [root:Root]):Promise - -protobuf.load = load; - -/** - * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only). - * @param {string|string[]} filename One or multiple files to load - * @param {Root} [root] Root namespace, defaults to create a new one if omitted. - * @returns {Root} Root namespace - * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid - * @see {@link Root#loadSync} - */ -function loadSync(filename, root) { - if (!root) - root = new protobuf.Root(); - return root.loadSync(filename); -} - -protobuf.loadSync = loadSync; - -// Serialization -protobuf.encoder = require(14); -protobuf.decoder = require(13); -protobuf.verifier = require(40); -protobuf.converter = require(12); - -// Reflection -protobuf.ReflectionObject = require(24); -protobuf.Namespace = require(23); -protobuf.Root = require(29); -protobuf.Enum = require(15); -protobuf.Type = require(35); -protobuf.Field = require(16); -protobuf.OneOf = require(25); -protobuf.MapField = require(20); -protobuf.Service = require(33); -protobuf.Method = require(22); - -// Runtime -protobuf.Message = require(21); -protobuf.wrappers = require(41); - -// Utility -protobuf.types = require(36); -protobuf.util = require(37); - -// Set up possibly cyclic reflection dependencies -protobuf.ReflectionObject._configure(protobuf.Root); -protobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum); -protobuf.Root._configure(protobuf.Type); -protobuf.Field._configure(protobuf.Type); - -},{"12":12,"13":13,"14":14,"15":15,"16":16,"18":18,"20":20,"21":21,"22":22,"23":23,"24":24,"25":25,"29":29,"33":33,"35":35,"36":36,"37":37,"40":40,"41":41}],18:[function(require,module,exports){ -"use strict"; -var protobuf = exports; - -/** - * Build type, one of `"full"`, `"light"` or `"minimal"`. - * @name build - * @type {string} - * @const - */ -protobuf.build = "minimal"; - -// Serialization -protobuf.Writer = require(42); -protobuf.BufferWriter = require(43); -protobuf.Reader = require(27); -protobuf.BufferReader = require(28); - -// Utility -protobuf.util = require(39); -protobuf.rpc = require(31); -protobuf.roots = require(30); -protobuf.configure = configure; - -/* istanbul ignore next */ -/** - * Reconfigures the library according to the environment. - * @returns {undefined} - */ -function configure() { - protobuf.Reader._configure(protobuf.BufferReader); - protobuf.util._configure(); -} - -// Set up buffer utility according to the environment -protobuf.Writer._configure(protobuf.BufferWriter); -configure(); - -},{"27":27,"28":28,"30":30,"31":31,"39":39,"42":42,"43":43}],19:[function(require,module,exports){ -"use strict"; -var protobuf = module.exports = require(17); - -protobuf.build = "full"; - -// Parser -protobuf.tokenize = require(34); -protobuf.parse = require(26); -protobuf.common = require(11); - -// Configure parser -protobuf.Root._configure(protobuf.Type, protobuf.parse, protobuf.common); - -},{"11":11,"17":17,"26":26,"34":34}],20:[function(require,module,exports){ -"use strict"; -module.exports = MapField; - -// extends Field -var Field = require(16); -((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = "MapField"; - -var types = require(36), - util = require(37); - -/** - * Constructs a new map field instance. - * @classdesc Reflected map field. - * @extends FieldBase - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} keyType Key type - * @param {string} type Value type - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function MapField(name, id, keyType, type, options, comment) { - Field.call(this, name, id, type, undefined, undefined, options, comment); - - /* istanbul ignore if */ - if (!util.isString(keyType)) - throw TypeError("keyType must be a string"); - - /** - * Key type. - * @type {string} - */ - this.keyType = keyType; // toJSON, marker - - /** - * Resolved key type if not a basic type. - * @type {ReflectionObject|null} - */ - this.resolvedKeyType = null; - - // Overrides Field#map - this.map = true; -} - -/** - * Map field descriptor. - * @interface IMapField - * @extends {IField} - * @property {string} keyType Key type - */ - -/** - * Extension map field descriptor. - * @interface IExtensionMapField - * @extends IMapField - * @property {string} extend Extended type - */ - -/** - * Constructs a map field from a map field descriptor. - * @param {string} name Field name - * @param {IMapField} json Map field descriptor - * @returns {MapField} Created map field - * @throws {TypeError} If arguments are invalid - */ -MapField.fromJSON = function fromJSON(name, json) { - return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment); -}; - -/** - * Converts this map field to a map field descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IMapField} Map field descriptor - */ -MapField.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "keyType" , this.keyType, - "type" , this.type, - "id" , this.id, - "extend" , this.extend, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -MapField.prototype.resolve = function resolve() { - if (this.resolved) - return this; - - // Besides a value type, map fields have a key type that may be "any scalar type except for floating point types and bytes" - if (types.mapKey[this.keyType] === undefined) - throw Error("invalid key type: " + this.keyType); - - return Field.prototype.resolve.call(this); -}; - -/** - * Map field decorator (TypeScript). - * @name MapField.d - * @function - * @param {number} fieldId Field id - * @param {"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"bool"|"string"} fieldKeyType Field key type - * @param {"double"|"float"|"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"bool"|"string"|"bytes"|Object|Constructor<{}>} fieldValueType Field value type - * @returns {FieldDecorator} Decorator function - * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> } - */ -MapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) { - - // submessage value: decorate the submessage and use its name as the type - if (typeof fieldValueType === "function") - fieldValueType = util.decorateType(fieldValueType).name; - - // enum reference value: create a reflected copy of the enum and keep reuseing it - else if (fieldValueType && typeof fieldValueType === "object") - fieldValueType = util.decorateEnum(fieldValueType).name; - - return function mapFieldDecorator(prototype, fieldName) { - util.decorateType(prototype.constructor) - .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType)); - }; -}; - -},{"16":16,"36":36,"37":37}],21:[function(require,module,exports){ -"use strict"; -module.exports = Message; - -var util = require(39); - -/** - * Constructs a new message instance. - * @classdesc Abstract runtime message. - * @constructor - * @param {Properties} [properties] Properties to set - * @template T extends object = object - */ -function Message(properties) { - // not used internally - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - this[keys[i]] = properties[keys[i]]; -} - -/** - * Reference to the reflected type. - * @name Message.$type - * @type {Type} - * @readonly - */ - -/** - * Reference to the reflected type. - * @name Message#$type - * @type {Type} - * @readonly - */ - -/*eslint-disable valid-jsdoc*/ - -/** - * Creates a new message of this type using the specified properties. - * @param {Object.} [properties] Properties to set - * @returns {Message} Message instance - * @template T extends Message - * @this Constructor - */ -Message.create = function create(properties) { - return this.$type.create(properties); -}; - -/** - * Encodes a message of this type. - * @param {T|Object.} message Message to encode - * @param {Writer} [writer] Writer to use - * @returns {Writer} Writer - * @template T extends Message - * @this Constructor - */ -Message.encode = function encode(message, writer) { - return this.$type.encode(message, writer); -}; - -/** - * Encodes a message of this type preceeded by its length as a varint. - * @param {T|Object.} message Message to encode - * @param {Writer} [writer] Writer to use - * @returns {Writer} Writer - * @template T extends Message - * @this Constructor - */ -Message.encodeDelimited = function encodeDelimited(message, writer) { - return this.$type.encodeDelimited(message, writer); -}; - -/** - * Decodes a message of this type. - * @name Message.decode - * @function - * @param {Reader|Uint8Array} reader Reader or buffer to decode - * @returns {T} Decoded message - * @template T extends Message - * @this Constructor - */ -Message.decode = function decode(reader) { - return this.$type.decode(reader); -}; - -/** - * Decodes a message of this type preceeded by its length as a varint. - * @name Message.decodeDelimited - * @function - * @param {Reader|Uint8Array} reader Reader or buffer to decode - * @returns {T} Decoded message - * @template T extends Message - * @this Constructor - */ -Message.decodeDelimited = function decodeDelimited(reader) { - return this.$type.decodeDelimited(reader); -}; - -/** - * Verifies a message of this type. - * @name Message.verify - * @function - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ -Message.verify = function verify(message) { - return this.$type.verify(message); -}; - -/** - * Creates a new message of this type from a plain object. Also converts values to their respective internal types. - * @param {Object.} object Plain object - * @returns {T} Message instance - * @template T extends Message - * @this Constructor - */ -Message.fromObject = function fromObject(object) { - return this.$type.fromObject(object); -}; - -/** - * Creates a plain object from a message of this type. Also converts values to other types if specified. - * @param {T} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - * @template T extends Message - * @this Constructor - */ -Message.toObject = function toObject(message, options) { - return this.$type.toObject(message, options); -}; - -/** - * Converts this message to JSON. - * @returns {Object.} JSON object - */ -Message.prototype.toJSON = function toJSON() { - return this.$type.toObject(this, util.toJSONOptions); -}; - -/*eslint-enable valid-jsdoc*/ -},{"39":39}],22:[function(require,module,exports){ -"use strict"; -module.exports = Method; - -// extends ReflectionObject -var ReflectionObject = require(24); -((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = "Method"; - -var util = require(37); - -/** - * Constructs a new service method instance. - * @classdesc Reflected service method. - * @extends ReflectionObject - * @constructor - * @param {string} name Method name - * @param {string|undefined} type Method type, usually `"rpc"` - * @param {string} requestType Request message type - * @param {string} responseType Response message type - * @param {boolean|Object.} [requestStream] Whether the request is streamed - * @param {boolean|Object.} [responseStream] Whether the response is streamed - * @param {Object.} [options] Declared options - * @param {string} [comment] The comment for this method - */ -function Method(name, type, requestType, responseType, requestStream, responseStream, options, comment) { - - /* istanbul ignore next */ - if (util.isObject(requestStream)) { - options = requestStream; - requestStream = responseStream = undefined; - } else if (util.isObject(responseStream)) { - options = responseStream; - responseStream = undefined; - } - - /* istanbul ignore if */ - if (!(type === undefined || util.isString(type))) - throw TypeError("type must be a string"); - - /* istanbul ignore if */ - if (!util.isString(requestType)) - throw TypeError("requestType must be a string"); - - /* istanbul ignore if */ - if (!util.isString(responseType)) - throw TypeError("responseType must be a string"); - - ReflectionObject.call(this, name, options); - - /** - * Method type. - * @type {string} - */ - this.type = type || "rpc"; // toJSON - - /** - * Request type. - * @type {string} - */ - this.requestType = requestType; // toJSON, marker - - /** - * Whether requests are streamed or not. - * @type {boolean|undefined} - */ - this.requestStream = requestStream ? true : undefined; // toJSON - - /** - * Response type. - * @type {string} - */ - this.responseType = responseType; // toJSON - - /** - * Whether responses are streamed or not. - * @type {boolean|undefined} - */ - this.responseStream = responseStream ? true : undefined; // toJSON - - /** - * Resolved request type. - * @type {Type|null} - */ - this.resolvedRequestType = null; - - /** - * Resolved response type. - * @type {Type|null} - */ - this.resolvedResponseType = null; - - /** - * Comment for this method - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Method descriptor. - * @interface IMethod - * @property {string} [type="rpc"] Method type - * @property {string} requestType Request type - * @property {string} responseType Response type - * @property {boolean} [requestStream=false] Whether requests are streamed - * @property {boolean} [responseStream=false] Whether responses are streamed - * @property {Object.} [options] Method options - */ - -/** - * Constructs a method from a method descriptor. - * @param {string} name Method name - * @param {IMethod} json Method descriptor - * @returns {Method} Created method - * @throws {TypeError} If arguments are invalid - */ -Method.fromJSON = function fromJSON(name, json) { - return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment); -}; - -/** - * Converts this method to a method descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IMethod} Method descriptor - */ -Method.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "type" , this.type !== "rpc" && /* istanbul ignore next */ this.type || undefined, - "requestType" , this.requestType, - "requestStream" , this.requestStream, - "responseType" , this.responseType, - "responseStream" , this.responseStream, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -Method.prototype.resolve = function resolve() { - - /* istanbul ignore if */ - if (this.resolved) - return this; - - this.resolvedRequestType = this.parent.lookupType(this.requestType); - this.resolvedResponseType = this.parent.lookupType(this.responseType); - - return ReflectionObject.prototype.resolve.call(this); -}; - -},{"24":24,"37":37}],23:[function(require,module,exports){ -"use strict"; -module.exports = Namespace; - -// extends ReflectionObject -var ReflectionObject = require(24); -((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = "Namespace"; - -var Field = require(16), - util = require(37); - -var Type, // cyclic - Service, - Enum; - -/** - * Constructs a new namespace instance. - * @name Namespace - * @classdesc Reflected namespace. - * @extends NamespaceBase - * @constructor - * @param {string} name Namespace name - * @param {Object.} [options] Declared options - */ - -/** - * Constructs a namespace from JSON. - * @memberof Namespace - * @function - * @param {string} name Namespace name - * @param {Object.} json JSON object - * @returns {Namespace} Created namespace - * @throws {TypeError} If arguments are invalid - */ -Namespace.fromJSON = function fromJSON(name, json) { - return new Namespace(name, json.options).addJSON(json.nested); -}; - -/** - * Converts an array of reflection objects to JSON. - * @memberof Namespace - * @param {ReflectionObject[]} array Object array - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {Object.|undefined} JSON object or `undefined` when array is empty - */ -function arrayToJSON(array, toJSONOptions) { - if (!(array && array.length)) - return undefined; - var obj = {}; - for (var i = 0; i < array.length; ++i) - obj[array[i].name] = array[i].toJSON(toJSONOptions); - return obj; -} - -Namespace.arrayToJSON = arrayToJSON; - -/** - * Tests if the specified id is reserved. - * @param {Array.|undefined} reserved Array of reserved ranges and names - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Namespace.isReservedId = function isReservedId(reserved, id) { - if (reserved) - for (var i = 0; i < reserved.length; ++i) - if (typeof reserved[i] !== "string" && reserved[i][0] <= id && reserved[i][1] > id) - return true; - return false; -}; - -/** - * Tests if the specified name is reserved. - * @param {Array.|undefined} reserved Array of reserved ranges and names - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Namespace.isReservedName = function isReservedName(reserved, name) { - if (reserved) - for (var i = 0; i < reserved.length; ++i) - if (reserved[i] === name) - return true; - return false; -}; - -/** - * Not an actual constructor. Use {@link Namespace} instead. - * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions. - * @exports NamespaceBase - * @extends ReflectionObject - * @abstract - * @constructor - * @param {string} name Namespace name - * @param {Object.} [options] Declared options - * @see {@link Namespace} - */ -function Namespace(name, options) { - ReflectionObject.call(this, name, options); - - /** - * Nested objects by name. - * @type {Object.|undefined} - */ - this.nested = undefined; // toJSON - - /** - * Cached nested objects as an array. - * @type {ReflectionObject[]|null} - * @private - */ - this._nestedArray = null; -} - -function clearCache(namespace) { - namespace._nestedArray = null; - return namespace; -} - -/** - * Nested objects of this namespace as an array for iteration. - * @name NamespaceBase#nestedArray - * @type {ReflectionObject[]} - * @readonly - */ -Object.defineProperty(Namespace.prototype, "nestedArray", { - get: function() { - return this._nestedArray || (this._nestedArray = util.toArray(this.nested)); - } -}); - -/** - * Namespace descriptor. - * @interface INamespace - * @property {Object.} [options] Namespace options - * @property {Object.} [nested] Nested object descriptors - */ - -/** - * Any extension field descriptor. - * @typedef AnyExtensionField - * @type {IExtensionField|IExtensionMapField} - */ - -/** - * Any nested object descriptor. - * @typedef AnyNestedObject - * @type {IEnum|IType|IService|AnyExtensionField|INamespace} - */ -// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place) - -/** - * Converts this namespace to a namespace descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {INamespace} Namespace descriptor - */ -Namespace.prototype.toJSON = function toJSON(toJSONOptions) { - return util.toObject([ - "options" , this.options, - "nested" , arrayToJSON(this.nestedArray, toJSONOptions) - ]); -}; - -/** - * Adds nested objects to this namespace from nested object descriptors. - * @param {Object.} nestedJson Any nested object descriptors - * @returns {Namespace} `this` - */ -Namespace.prototype.addJSON = function addJSON(nestedJson) { - var ns = this; - /* istanbul ignore else */ - if (nestedJson) { - for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) { - nested = nestedJson[names[i]]; - ns.add( // most to least likely - ( nested.fields !== undefined - ? Type.fromJSON - : nested.values !== undefined - ? Enum.fromJSON - : nested.methods !== undefined - ? Service.fromJSON - : nested.id !== undefined - ? Field.fromJSON - : Namespace.fromJSON )(names[i], nested) - ); - } - } - return this; -}; - -/** - * Gets the nested object of the specified name. - * @param {string} name Nested object name - * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist - */ -Namespace.prototype.get = function get(name) { - return this.nested && this.nested[name] - || null; -}; - -/** - * Gets the values of the nested {@link Enum|enum} of the specified name. - * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`. - * @param {string} name Nested enum name - * @returns {Object.} Enum values - * @throws {Error} If there is no such enum - */ -Namespace.prototype.getEnum = function getEnum(name) { - if (this.nested && this.nested[name] instanceof Enum) - return this.nested[name].values; - throw Error("no such enum: " + name); -}; - -/** - * Adds a nested object to this namespace. - * @param {ReflectionObject} object Nested object to add - * @returns {Namespace} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a nested object with this name - */ -Namespace.prototype.add = function add(object) { - - if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace)) - throw TypeError("object must be a valid nested object"); - - if (!this.nested) - this.nested = {}; - else { - var prev = this.get(object.name); - if (prev) { - if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) { - // replace plain namespace but keep existing nested elements and options - var nested = prev.nestedArray; - for (var i = 0; i < nested.length; ++i) - object.add(nested[i]); - this.remove(prev); - if (!this.nested) - this.nested = {}; - object.setOptions(prev.options, true); - - } else - throw Error("duplicate name '" + object.name + "' in " + this); - } - } - this.nested[object.name] = object; - object.onAdd(this); - return clearCache(this); -}; - -/** - * Removes a nested object from this namespace. - * @param {ReflectionObject} object Nested object to remove - * @returns {Namespace} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `object` is not a member of this namespace - */ -Namespace.prototype.remove = function remove(object) { - - if (!(object instanceof ReflectionObject)) - throw TypeError("object must be a ReflectionObject"); - if (object.parent !== this) - throw Error(object + " is not a member of " + this); - - delete this.nested[object.name]; - if (!Object.keys(this.nested).length) - this.nested = undefined; - - object.onRemove(this); - return clearCache(this); -}; - -/** - * Defines additial namespaces within this one if not yet existing. - * @param {string|string[]} path Path to create - * @param {*} [json] Nested types to create from JSON - * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty - */ -Namespace.prototype.define = function define(path, json) { - - if (util.isString(path)) - path = path.split("."); - else if (!Array.isArray(path)) - throw TypeError("illegal path"); - if (path && path.length && path[0] === "") - throw Error("path must be relative"); - - var ptr = this; - while (path.length > 0) { - var part = path.shift(); - if (ptr.nested && ptr.nested[part]) { - ptr = ptr.nested[part]; - if (!(ptr instanceof Namespace)) - throw Error("path conflicts with non-namespace objects"); - } else - ptr.add(ptr = new Namespace(part)); - } - if (json) - ptr.addJSON(json); - return ptr; -}; - -/** - * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost. - * @returns {Namespace} `this` - */ -Namespace.prototype.resolveAll = function resolveAll() { - var nested = this.nestedArray, i = 0; - while (i < nested.length) - if (nested[i] instanceof Namespace) - nested[i++].resolveAll(); - else - nested[i++].resolve(); - return this.resolve(); -}; - -/** - * Recursively looks up the reflection object matching the specified path in the scope of this namespace. - * @param {string|string[]} path Path to look up - * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc. - * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked - * @returns {ReflectionObject|null} Looked up object or `null` if none could be found - */ -Namespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) { - - /* istanbul ignore next */ - if (typeof filterTypes === "boolean") { - parentAlreadyChecked = filterTypes; - filterTypes = undefined; - } else if (filterTypes && !Array.isArray(filterTypes)) - filterTypes = [ filterTypes ]; - - if (util.isString(path) && path.length) { - if (path === ".") - return this.root; - path = path.split("."); - } else if (!path.length) - return this; - - // Start at root if path is absolute - if (path[0] === "") - return this.root.lookup(path.slice(1), filterTypes); - - // Test if the first part matches any nested object, and if so, traverse if path contains more - var found = this.get(path[0]); - if (found) { - if (path.length === 1) { - if (!filterTypes || filterTypes.indexOf(found.constructor) > -1) - return found; - } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true))) - return found; - - // Otherwise try each nested namespace - } else - for (var i = 0; i < this.nestedArray.length; ++i) - if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true))) - return found; - - // If there hasn't been a match, try again at the parent - if (this.parent === null || parentAlreadyChecked) - return null; - return this.parent.lookup(path, filterTypes); -}; - -/** - * Looks up the reflection object at the specified path, relative to this namespace. - * @name NamespaceBase#lookup - * @function - * @param {string|string[]} path Path to look up - * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked - * @returns {ReflectionObject|null} Looked up object or `null` if none could be found - * @variation 2 - */ -// lookup(path: string, [parentAlreadyChecked: boolean]) - -/** - * Looks up the {@link Type|type} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Type} Looked up type - * @throws {Error} If `path` does not point to a type - */ -Namespace.prototype.lookupType = function lookupType(path) { - var found = this.lookup(path, [ Type ]); - if (!found) - throw Error("no such type: " + path); - return found; -}; - -/** - * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Enum} Looked up enum - * @throws {Error} If `path` does not point to an enum - */ -Namespace.prototype.lookupEnum = function lookupEnum(path) { - var found = this.lookup(path, [ Enum ]); - if (!found) - throw Error("no such Enum '" + path + "' in " + this); - return found; -}; - -/** - * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Type} Looked up type or enum - * @throws {Error} If `path` does not point to a type or enum - */ -Namespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) { - var found = this.lookup(path, [ Type, Enum ]); - if (!found) - throw Error("no such Type or Enum '" + path + "' in " + this); - return found; -}; - -/** - * Looks up the {@link Service|service} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Service} Looked up service - * @throws {Error} If `path` does not point to a service - */ -Namespace.prototype.lookupService = function lookupService(path) { - var found = this.lookup(path, [ Service ]); - if (!found) - throw Error("no such Service '" + path + "' in " + this); - return found; -}; - -// Sets up cyclic dependencies (called in index-light) -Namespace._configure = function(Type_, Service_, Enum_) { - Type = Type_; - Service = Service_; - Enum = Enum_; -}; - -},{"16":16,"24":24,"37":37}],24:[function(require,module,exports){ -"use strict"; -module.exports = ReflectionObject; - -ReflectionObject.className = "ReflectionObject"; - -var util = require(37); - -var Root; // cyclic - -/** - * Constructs a new reflection object instance. - * @classdesc Base class of all reflection objects. - * @constructor - * @param {string} name Object name - * @param {Object.} [options] Declared options - * @abstract - */ -function ReflectionObject(name, options) { - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - if (options && !util.isObject(options)) - throw TypeError("options must be an object"); - - /** - * Options. - * @type {Object.|undefined} - */ - this.options = options; // toJSON - - /** - * Unique name within its namespace. - * @type {string} - */ - this.name = name; - - /** - * Parent namespace. - * @type {Namespace|null} - */ - this.parent = null; - - /** - * Whether already resolved or not. - * @type {boolean} - */ - this.resolved = false; - - /** - * Comment text, if any. - * @type {string|null} - */ - this.comment = null; - - /** - * Defining file name. - * @type {string|null} - */ - this.filename = null; -} - -Object.defineProperties(ReflectionObject.prototype, { - - /** - * Reference to the root namespace. - * @name ReflectionObject#root - * @type {Root} - * @readonly - */ - root: { - get: function() { - var ptr = this; - while (ptr.parent !== null) - ptr = ptr.parent; - return ptr; - } - }, - - /** - * Full name including leading dot. - * @name ReflectionObject#fullName - * @type {string} - * @readonly - */ - fullName: { - get: function() { - var path = [ this.name ], - ptr = this.parent; - while (ptr) { - path.unshift(ptr.name); - ptr = ptr.parent; - } - return path.join("."); - } - } -}); - -/** - * Converts this reflection object to its descriptor representation. - * @returns {Object.} Descriptor - * @abstract - */ -ReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() { - throw Error(); // not implemented, shouldn't happen -}; - -/** - * Called when this object is added to a parent. - * @param {ReflectionObject} parent Parent added to - * @returns {undefined} - */ -ReflectionObject.prototype.onAdd = function onAdd(parent) { - if (this.parent && this.parent !== parent) - this.parent.remove(this); - this.parent = parent; - this.resolved = false; - var root = parent.root; - if (root instanceof Root) - root._handleAdd(this); -}; - -/** - * Called when this object is removed from a parent. - * @param {ReflectionObject} parent Parent removed from - * @returns {undefined} - */ -ReflectionObject.prototype.onRemove = function onRemove(parent) { - var root = parent.root; - if (root instanceof Root) - root._handleRemove(this); - this.parent = null; - this.resolved = false; -}; - -/** - * Resolves this objects type references. - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.resolve = function resolve() { - if (this.resolved) - return this; - if (this.root instanceof Root) - this.resolved = true; // only if part of a root - return this; -}; - -/** - * Gets an option value. - * @param {string} name Option name - * @returns {*} Option value or `undefined` if not set - */ -ReflectionObject.prototype.getOption = function getOption(name) { - if (this.options) - return this.options[name]; - return undefined; -}; - -/** - * Sets an option. - * @param {string} name Option name - * @param {*} value Option value - * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) { - if (!ifNotSet || !this.options || this.options[name] === undefined) - (this.options || (this.options = {}))[name] = value; - return this; -}; - -/** - * Sets multiple options. - * @param {Object.} options Options to set - * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) { - if (options) - for (var keys = Object.keys(options), i = 0; i < keys.length; ++i) - this.setOption(keys[i], options[keys[i]], ifNotSet); - return this; -}; - -/** - * Converts this instance to its string representation. - * @returns {string} Class name[, space, full name] - */ -ReflectionObject.prototype.toString = function toString() { - var className = this.constructor.className, - fullName = this.fullName; - if (fullName.length) - return className + " " + fullName; - return className; -}; - -// Sets up cyclic dependencies (called in index-light) -ReflectionObject._configure = function(Root_) { - Root = Root_; -}; - -},{"37":37}],25:[function(require,module,exports){ -"use strict"; -module.exports = OneOf; - -// extends ReflectionObject -var ReflectionObject = require(24); -((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = "OneOf"; - -var Field = require(16), - util = require(37); - -/** - * Constructs a new oneof instance. - * @classdesc Reflected oneof. - * @extends ReflectionObject - * @constructor - * @param {string} name Oneof name - * @param {string[]|Object.} [fieldNames] Field names - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function OneOf(name, fieldNames, options, comment) { - if (!Array.isArray(fieldNames)) { - options = fieldNames; - fieldNames = undefined; - } - ReflectionObject.call(this, name, options); - - /* istanbul ignore if */ - if (!(fieldNames === undefined || Array.isArray(fieldNames))) - throw TypeError("fieldNames must be an Array"); - - /** - * Field names that belong to this oneof. - * @type {string[]} - */ - this.oneof = fieldNames || []; // toJSON, marker - - /** - * Fields that belong to this oneof as an array for iteration. - * @type {Field[]} - * @readonly - */ - this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent - - /** - * Comment for this field. - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Oneof descriptor. - * @interface IOneOf - * @property {Array.} oneof Oneof field names - * @property {Object.} [options] Oneof options - */ - -/** - * Constructs a oneof from a oneof descriptor. - * @param {string} name Oneof name - * @param {IOneOf} json Oneof descriptor - * @returns {OneOf} Created oneof - * @throws {TypeError} If arguments are invalid - */ -OneOf.fromJSON = function fromJSON(name, json) { - return new OneOf(name, json.oneof, json.options, json.comment); -}; - -/** - * Converts this oneof to a oneof descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IOneOf} Oneof descriptor - */ -OneOf.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , this.options, - "oneof" , this.oneof, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Adds the fields of the specified oneof to the parent if not already done so. - * @param {OneOf} oneof The oneof - * @returns {undefined} - * @inner - * @ignore - */ -function addFieldsToParent(oneof) { - if (oneof.parent) - for (var i = 0; i < oneof.fieldsArray.length; ++i) - if (!oneof.fieldsArray[i].parent) - oneof.parent.add(oneof.fieldsArray[i]); -} - -/** - * Adds a field to this oneof and removes it from its current parent, if any. - * @param {Field} field Field to add - * @returns {OneOf} `this` - */ -OneOf.prototype.add = function add(field) { - - /* istanbul ignore if */ - if (!(field instanceof Field)) - throw TypeError("field must be a Field"); - - if (field.parent && field.parent !== this.parent) - field.parent.remove(field); - this.oneof.push(field.name); - this.fieldsArray.push(field); - field.partOf = this; // field.parent remains null - addFieldsToParent(this); - return this; -}; - -/** - * Removes a field from this oneof and puts it back to the oneof's parent. - * @param {Field} field Field to remove - * @returns {OneOf} `this` - */ -OneOf.prototype.remove = function remove(field) { - - /* istanbul ignore if */ - if (!(field instanceof Field)) - throw TypeError("field must be a Field"); - - var index = this.fieldsArray.indexOf(field); - - /* istanbul ignore if */ - if (index < 0) - throw Error(field + " is not a member of " + this); - - this.fieldsArray.splice(index, 1); - index = this.oneof.indexOf(field.name); - - /* istanbul ignore else */ - if (index > -1) // theoretical - this.oneof.splice(index, 1); - - field.partOf = null; - return this; -}; - -/** - * @override - */ -OneOf.prototype.onAdd = function onAdd(parent) { - ReflectionObject.prototype.onAdd.call(this, parent); - var self = this; - // Collect present fields - for (var i = 0; i < this.oneof.length; ++i) { - var field = parent.get(this.oneof[i]); - if (field && !field.partOf) { - field.partOf = self; - self.fieldsArray.push(field); - } - } - // Add not yet present fields - addFieldsToParent(this); -}; - -/** - * @override - */ -OneOf.prototype.onRemove = function onRemove(parent) { - for (var i = 0, field; i < this.fieldsArray.length; ++i) - if ((field = this.fieldsArray[i]).parent) - field.parent.remove(field); - ReflectionObject.prototype.onRemove.call(this, parent); -}; - -/** - * Decorator function as returned by {@link OneOf.d} (TypeScript). - * @typedef OneOfDecorator - * @type {function} - * @param {Object} prototype Target prototype - * @param {string} oneofName OneOf name - * @returns {undefined} - */ - -/** - * OneOf decorator (TypeScript). - * @function - * @param {...string} fieldNames Field names - * @returns {OneOfDecorator} Decorator function - * @template T extends string - */ -OneOf.d = function decorateOneOf() { - var fieldNames = new Array(arguments.length), - index = 0; - while (index < arguments.length) - fieldNames[index] = arguments[index++]; - return function oneOfDecorator(prototype, oneofName) { - util.decorateType(prototype.constructor) - .add(new OneOf(oneofName, fieldNames)); - Object.defineProperty(prototype, oneofName, { - get: util.oneOfGetter(fieldNames), - set: util.oneOfSetter(fieldNames) - }); - }; -}; - -},{"16":16,"24":24,"37":37}],26:[function(require,module,exports){ -"use strict"; -module.exports = parse; - -parse.filename = null; -parse.defaults = { keepCase: false }; - -var tokenize = require(34), - Root = require(29), - Type = require(35), - Field = require(16), - MapField = require(20), - OneOf = require(25), - Enum = require(15), - Service = require(33), - Method = require(22), - types = require(36), - util = require(37); - -var base10Re = /^[1-9][0-9]*$/, - base10NegRe = /^-?[1-9][0-9]*$/, - base16Re = /^0[x][0-9a-fA-F]+$/, - base16NegRe = /^-?0[x][0-9a-fA-F]+$/, - base8Re = /^0[0-7]+$/, - base8NegRe = /^-?0[0-7]+$/, - numberRe = /^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/, - nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/, - typeRefRe = /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/, - fqTypeRefRe = /^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/; - -/** - * Result object returned from {@link parse}. - * @interface IParserResult - * @property {string|undefined} package Package name, if declared - * @property {string[]|undefined} imports Imports, if any - * @property {string[]|undefined} weakImports Weak imports, if any - * @property {string|undefined} syntax Syntax, if specified (either `"proto2"` or `"proto3"`) - * @property {Root} root Populated root instance - */ - -/** - * Options modifying the behavior of {@link parse}. - * @interface IParseOptions - * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case - * @property {boolean} [alternateCommentMode=false] Recognize double-slash comments in addition to doc-block comments. - */ - -/** - * Options modifying the behavior of JSON serialization. - * @interface IToJSONOptions - * @property {boolean} [keepComments=false] Serializes comments. - */ - -/** - * Parses the given .proto source and returns an object with the parsed contents. - * @param {string} source Source contents - * @param {Root} root Root to populate - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {IParserResult} Parser result - * @property {string} filename=null Currently processing file name for error reporting, if known - * @property {IParseOptions} defaults Default {@link IParseOptions} - */ -function parse(source, root, options) { - /* eslint-disable callback-return */ - if (!(root instanceof Root)) { - options = root; - root = new Root(); - } - if (!options) - options = parse.defaults; - - var tn = tokenize(source, options.alternateCommentMode || false), - next = tn.next, - push = tn.push, - peek = tn.peek, - skip = tn.skip, - cmnt = tn.cmnt; - - var head = true, - pkg, - imports, - weakImports, - syntax, - isProto3 = false; - - var ptr = root; - - var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase; - - /* istanbul ignore next */ - function illegal(token, name, insideTryCatch) { - var filename = parse.filename; - if (!insideTryCatch) - parse.filename = null; - return Error("illegal " + (name || "token") + " '" + token + "' (" + (filename ? filename + ", " : "") + "line " + tn.line + ")"); - } - - function readString() { - var values = [], - token; - do { - /* istanbul ignore if */ - if ((token = next()) !== "\"" && token !== "'") - throw illegal(token); - - values.push(next()); - skip(token); - token = peek(); - } while (token === "\"" || token === "'"); - return values.join(""); - } - - function readValue(acceptTypeRef) { - var token = next(); - switch (token) { - case "'": - case "\"": - push(token); - return readString(); - case "true": case "TRUE": - return true; - case "false": case "FALSE": - return false; - } - try { - return parseNumber(token, /* insideTryCatch */ true); - } catch (e) { - - /* istanbul ignore else */ - if (acceptTypeRef && typeRefRe.test(token)) - return token; - - /* istanbul ignore next */ - throw illegal(token, "value"); - } - } - - function readRanges(target, acceptStrings) { - var token, start; - do { - if (acceptStrings && ((token = peek()) === "\"" || token === "'")) - target.push(readString()); - else - target.push([ start = parseId(next()), skip("to", true) ? parseId(next()) : start ]); - } while (skip(",", true)); - skip(";"); - } - - function parseNumber(token, insideTryCatch) { - var sign = 1; - if (token.charAt(0) === "-") { - sign = -1; - token = token.substring(1); - } - switch (token) { - case "inf": case "INF": case "Inf": - return sign * Infinity; - case "nan": case "NAN": case "Nan": case "NaN": - return NaN; - case "0": - return 0; - } - if (base10Re.test(token)) - return sign * parseInt(token, 10); - if (base16Re.test(token)) - return sign * parseInt(token, 16); - if (base8Re.test(token)) - return sign * parseInt(token, 8); - - /* istanbul ignore else */ - if (numberRe.test(token)) - return sign * parseFloat(token); - - /* istanbul ignore next */ - throw illegal(token, "number", insideTryCatch); - } - - function parseId(token, acceptNegative) { - switch (token) { - case "max": case "MAX": case "Max": - return 536870911; - case "0": - return 0; - } - - /* istanbul ignore if */ - if (!acceptNegative && token.charAt(0) === "-") - throw illegal(token, "id"); - - if (base10NegRe.test(token)) - return parseInt(token, 10); - if (base16NegRe.test(token)) - return parseInt(token, 16); - - /* istanbul ignore else */ - if (base8NegRe.test(token)) - return parseInt(token, 8); - - /* istanbul ignore next */ - throw illegal(token, "id"); - } - - function parsePackage() { - - /* istanbul ignore if */ - if (pkg !== undefined) - throw illegal("package"); - - pkg = next(); - - /* istanbul ignore if */ - if (!typeRefRe.test(pkg)) - throw illegal(pkg, "name"); - - ptr = ptr.define(pkg); - skip(";"); - } - - function parseImport() { - var token = peek(); - var whichImports; - switch (token) { - case "weak": - whichImports = weakImports || (weakImports = []); - next(); - break; - case "public": - next(); - // eslint-disable-line no-fallthrough - default: - whichImports = imports || (imports = []); - break; - } - token = readString(); - skip(";"); - whichImports.push(token); - } - - function parseSyntax() { - skip("="); - syntax = readString(); - isProto3 = syntax === "proto3"; - - /* istanbul ignore if */ - if (!isProto3 && syntax !== "proto2") - throw illegal(syntax, "syntax"); - - skip(";"); - } - - function parseCommon(parent, token) { - switch (token) { - - case "option": - parseOption(parent, token); - skip(";"); - return true; - - case "message": - parseType(parent, token); - return true; - - case "enum": - parseEnum(parent, token); - return true; - - case "service": - parseService(parent, token); - return true; - - case "extend": - parseExtension(parent, token); - return true; - } - return false; - } - - function ifBlock(obj, fnIf, fnElse) { - var trailingLine = tn.line; - if (obj) { - if(typeof obj.comment !== "string") { - obj.comment = cmnt(); // try block-type comment - } - obj.filename = parse.filename; - } - if (skip("{", true)) { - var token; - while ((token = next()) !== "}") - fnIf(token); - skip(";", true); - } else { - if (fnElse) - fnElse(); - skip(";"); - if (obj && typeof obj.comment !== "string") - obj.comment = cmnt(trailingLine); // try line-type comment if no block - } - } - - function parseType(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "type name"); - - var type = new Type(token); - ifBlock(type, function parseType_block(token) { - if (parseCommon(type, token)) - return; - - switch (token) { - - case "map": - parseMapField(type, token); - break; - - case "required": - case "optional": - case "repeated": - parseField(type, token); - break; - - case "oneof": - parseOneOf(type, token); - break; - - case "extensions": - readRanges(type.extensions || (type.extensions = [])); - break; - - case "reserved": - readRanges(type.reserved || (type.reserved = []), true); - break; - - default: - /* istanbul ignore if */ - if (!isProto3 || !typeRefRe.test(token)) - throw illegal(token); - - push(token); - parseField(type, "optional"); - break; - } - }); - parent.add(type); - } - - function parseField(parent, rule, extend) { - var type = next(); - if (type === "group") { - parseGroup(parent, rule); - return; - } - - /* istanbul ignore if */ - if (!typeRefRe.test(type)) - throw illegal(type, "type"); - - var name = next(); - - /* istanbul ignore if */ - if (!nameRe.test(name)) - throw illegal(name, "name"); - - name = applyCase(name); - skip("="); - - var field = new Field(name, parseId(next()), type, rule, extend); - ifBlock(field, function parseField_block(token) { - - /* istanbul ignore else */ - if (token === "option") { - parseOption(field, token); - skip(";"); - } else - throw illegal(token); - - }, function parseField_line() { - parseInlineOptions(field); - }); - parent.add(field); - - // JSON defaults to packed=true if not set so we have to set packed=false explicity when - // parsing proto2 descriptors without the option, where applicable. This must be done for - // all known packable types and anything that could be an enum (= is not a basic type). - if (!isProto3 && field.repeated && (types.packed[type] !== undefined || types.basic[type] === undefined)) - field.setOption("packed", false, /* ifNotSet */ true); - } - - function parseGroup(parent, rule) { - var name = next(); - - /* istanbul ignore if */ - if (!nameRe.test(name)) - throw illegal(name, "name"); - - var fieldName = util.lcFirst(name); - if (name === fieldName) - name = util.ucFirst(name); - skip("="); - var id = parseId(next()); - var type = new Type(name); - type.group = true; - var field = new Field(fieldName, id, name, rule); - field.filename = parse.filename; - ifBlock(type, function parseGroup_block(token) { - switch (token) { - - case "option": - parseOption(type, token); - skip(";"); - break; - - case "required": - case "optional": - case "repeated": - parseField(type, token); - break; - - /* istanbul ignore next */ - default: - throw illegal(token); // there are no groups with proto3 semantics - } - }); - parent.add(type) - .add(field); - } - - function parseMapField(parent) { - skip("<"); - var keyType = next(); - - /* istanbul ignore if */ - if (types.mapKey[keyType] === undefined) - throw illegal(keyType, "type"); - - skip(","); - var valueType = next(); - - /* istanbul ignore if */ - if (!typeRefRe.test(valueType)) - throw illegal(valueType, "type"); - - skip(">"); - var name = next(); - - /* istanbul ignore if */ - if (!nameRe.test(name)) - throw illegal(name, "name"); - - skip("="); - var field = new MapField(applyCase(name), parseId(next()), keyType, valueType); - ifBlock(field, function parseMapField_block(token) { - - /* istanbul ignore else */ - if (token === "option") { - parseOption(field, token); - skip(";"); - } else - throw illegal(token); - - }, function parseMapField_line() { - parseInlineOptions(field); - }); - parent.add(field); - } - - function parseOneOf(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "name"); - - var oneof = new OneOf(applyCase(token)); - ifBlock(oneof, function parseOneOf_block(token) { - if (token === "option") { - parseOption(oneof, token); - skip(";"); - } else { - push(token); - parseField(oneof, "optional"); - } - }); - parent.add(oneof); - } - - function parseEnum(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "name"); - - var enm = new Enum(token); - ifBlock(enm, function parseEnum_block(token) { - switch(token) { - case "option": - parseOption(enm, token); - skip(";"); - break; - - case "reserved": - readRanges(enm.reserved || (enm.reserved = []), true); - break; - - default: - parseEnumValue(enm, token); - } - }); - parent.add(enm); - } - - function parseEnumValue(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token)) - throw illegal(token, "name"); - - skip("="); - var value = parseId(next(), true), - dummy = {}; - ifBlock(dummy, function parseEnumValue_block(token) { - - /* istanbul ignore else */ - if (token === "option") { - parseOption(dummy, token); // skip - skip(";"); - } else - throw illegal(token); - - }, function parseEnumValue_line() { - parseInlineOptions(dummy); // skip - }); - parent.add(token, value, dummy.comment); - } - - function parseOption(parent, token) { - var isCustom = skip("(", true); - - /* istanbul ignore if */ - if (!typeRefRe.test(token = next())) - throw illegal(token, "name"); - - var name = token; - if (isCustom) { - skip(")"); - name = "(" + name + ")"; - token = peek(); - if (fqTypeRefRe.test(token)) { - name += token; - next(); - } - } - skip("="); - parseOptionValue(parent, name); - } - - function parseOptionValue(parent, name) { - if (skip("{", true)) { // { a: "foo" b { c: "bar" } } - do { - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "name"); - - if (peek() === "{") - parseOptionValue(parent, name + "." + token); - else { - skip(":"); - if (peek() === "{") - parseOptionValue(parent, name + "." + token); - else - setOption(parent, name + "." + token, readValue(true)); - } - skip(",", true); - } while (!skip("}", true)); - } else - setOption(parent, name, readValue(true)); - // Does not enforce a delimiter to be universal - } - - function setOption(parent, name, value) { - if (parent.setOption) - parent.setOption(name, value); - } - - function parseInlineOptions(parent) { - if (skip("[", true)) { - do { - parseOption(parent, "option"); - } while (skip(",", true)); - skip("]"); - } - return parent; - } - - function parseService(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "service name"); - - var service = new Service(token); - ifBlock(service, function parseService_block(token) { - if (parseCommon(service, token)) - return; - - /* istanbul ignore else */ - if (token === "rpc") - parseMethod(service, token); - else - throw illegal(token); - }); - parent.add(service); - } - - function parseMethod(parent, token) { - // Get the comment of the preceding line now (if one exists) in case the - // method is defined across multiple lines. - var commentText = cmnt(); - - var type = token; - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "name"); - - var name = token, - requestType, requestStream, - responseType, responseStream; - - skip("("); - if (skip("stream", true)) - requestStream = true; - - /* istanbul ignore if */ - if (!typeRefRe.test(token = next())) - throw illegal(token); - - requestType = token; - skip(")"); skip("returns"); skip("("); - if (skip("stream", true)) - responseStream = true; - - /* istanbul ignore if */ - if (!typeRefRe.test(token = next())) - throw illegal(token); - - responseType = token; - skip(")"); - - var method = new Method(name, type, requestType, responseType, requestStream, responseStream); - method.comment = commentText; - ifBlock(method, function parseMethod_block(token) { - - /* istanbul ignore else */ - if (token === "option") { - parseOption(method, token); - skip(";"); - } else - throw illegal(token); - - }); - parent.add(method); - } - - function parseExtension(parent, token) { - - /* istanbul ignore if */ - if (!typeRefRe.test(token = next())) - throw illegal(token, "reference"); - - var reference = token; - ifBlock(null, function parseExtension_block(token) { - switch (token) { - - case "required": - case "repeated": - case "optional": - parseField(parent, token, reference); - break; - - default: - /* istanbul ignore if */ - if (!isProto3 || !typeRefRe.test(token)) - throw illegal(token); - push(token); - parseField(parent, "optional", reference); - break; - } - }); - } - - var token; - while ((token = next()) !== null) { - switch (token) { - - case "package": - - /* istanbul ignore if */ - if (!head) - throw illegal(token); - - parsePackage(); - break; - - case "import": - - /* istanbul ignore if */ - if (!head) - throw illegal(token); - - parseImport(); - break; - - case "syntax": - - /* istanbul ignore if */ - if (!head) - throw illegal(token); - - parseSyntax(); - break; - - case "option": - - parseOption(ptr, token); - skip(";"); - break; - - default: - - /* istanbul ignore else */ - if (parseCommon(ptr, token)) { - head = false; - continue; - } - - /* istanbul ignore next */ - throw illegal(token); - } - } - - parse.filename = null; - return { - "package" : pkg, - "imports" : imports, - weakImports : weakImports, - syntax : syntax, - root : root - }; -} - -/** - * Parses the given .proto source and returns an object with the parsed contents. - * @name parse - * @function - * @param {string} source Source contents - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {IParserResult} Parser result - * @property {string} filename=null Currently processing file name for error reporting, if known - * @property {IParseOptions} defaults Default {@link IParseOptions} - * @variation 2 - */ - -},{"15":15,"16":16,"20":20,"22":22,"25":25,"29":29,"33":33,"34":34,"35":35,"36":36,"37":37}],27:[function(require,module,exports){ -"use strict"; -module.exports = Reader; - -var util = require(39); - -var BufferReader; // cyclic - -var LongBits = util.LongBits, - utf8 = util.utf8; - -/* istanbul ignore next */ -function indexOutOfRange(reader, writeLength) { - return RangeError("index out of range: " + reader.pos + " + " + (writeLength || 1) + " > " + reader.len); -} - -/** - * Constructs a new reader instance using the specified buffer. - * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`. - * @constructor - * @param {Uint8Array} buffer Buffer to read from - */ -function Reader(buffer) { - - /** - * Read buffer. - * @type {Uint8Array} - */ - this.buf = buffer; - - /** - * Read buffer position. - * @type {number} - */ - this.pos = 0; - - /** - * Read buffer length. - * @type {number} - */ - this.len = buffer.length; -} - -var create_array = typeof Uint8Array !== "undefined" - ? function create_typed_array(buffer) { - if (buffer instanceof Uint8Array || Array.isArray(buffer)) - return new Reader(buffer); - throw Error("illegal buffer"); - } - /* istanbul ignore next */ - : function create_array(buffer) { - if (Array.isArray(buffer)) - return new Reader(buffer); - throw Error("illegal buffer"); - }; - -/** - * Creates a new reader using the specified buffer. - * @function - * @param {Uint8Array|Buffer} buffer Buffer to read from - * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} - * @throws {Error} If `buffer` is not a valid buffer - */ -Reader.create = util.Buffer - ? function create_buffer_setup(buffer) { - return (Reader.create = function create_buffer(buffer) { - return util.Buffer.isBuffer(buffer) - ? new BufferReader(buffer) - /* istanbul ignore next */ - : create_array(buffer); - })(buffer); - } - /* istanbul ignore next */ - : create_array; - -Reader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice; - -/** - * Reads a varint as an unsigned 32 bit value. - * @function - * @returns {number} Value read - */ -Reader.prototype.uint32 = (function read_uint32_setup() { - var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!) - return function read_uint32() { - value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value; - - /* istanbul ignore if */ - if ((this.pos += 5) > this.len) { - this.pos = this.len; - throw indexOutOfRange(this, 10); - } - return value; - }; -})(); - -/** - * Reads a varint as a signed 32 bit value. - * @returns {number} Value read - */ -Reader.prototype.int32 = function read_int32() { - return this.uint32() | 0; -}; - -/** - * Reads a zig-zag encoded varint as a signed 32 bit value. - * @returns {number} Value read - */ -Reader.prototype.sint32 = function read_sint32() { - var value = this.uint32(); - return value >>> 1 ^ -(value & 1) | 0; -}; - -/* eslint-disable no-invalid-this */ - -function readLongVarint() { - // tends to deopt with local vars for octet etc. - var bits = new LongBits(0, 0); - var i = 0; - if (this.len - this.pos > 4) { // fast route (lo) - for (; i < 4; ++i) { - // 1st..4th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - // 5th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0; - bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - i = 0; - } else { - for (; i < 3; ++i) { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - // 1st..3th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - // 4th - bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0; - return bits; - } - if (this.len - this.pos > 4) { // fast route (hi) - for (; i < 5; ++i) { - // 6th..10th - bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - } else { - for (; i < 5; ++i) { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - // 6th..10th - bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - } - /* istanbul ignore next */ - throw Error("invalid varint encoding"); -} - -/* eslint-enable no-invalid-this */ - -/** - * Reads a varint as a signed 64 bit value. - * @name Reader#int64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a varint as an unsigned 64 bit value. - * @name Reader#uint64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a zig-zag encoded varint as a signed 64 bit value. - * @name Reader#sint64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a varint as a boolean. - * @returns {boolean} Value read - */ -Reader.prototype.bool = function read_bool() { - return this.uint32() !== 0; -}; - -function readFixed32_end(buf, end) { // note that this uses `end`, not `pos` - return (buf[end - 4] - | buf[end - 3] << 8 - | buf[end - 2] << 16 - | buf[end - 1] << 24) >>> 0; -} - -/** - * Reads fixed 32 bits as an unsigned 32 bit integer. - * @returns {number} Value read - */ -Reader.prototype.fixed32 = function read_fixed32() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - return readFixed32_end(this.buf, this.pos += 4); -}; - -/** - * Reads fixed 32 bits as a signed 32 bit integer. - * @returns {number} Value read - */ -Reader.prototype.sfixed32 = function read_sfixed32() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - return readFixed32_end(this.buf, this.pos += 4) | 0; -}; - -/* eslint-disable no-invalid-this */ - -function readFixed64(/* this: Reader */) { - - /* istanbul ignore if */ - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 8); - - return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4)); -} - -/* eslint-enable no-invalid-this */ - -/** - * Reads fixed 64 bits. - * @name Reader#fixed64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads zig-zag encoded fixed 64 bits. - * @name Reader#sfixed64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a float (32 bit) as a number. - * @function - * @returns {number} Value read - */ -Reader.prototype.float = function read_float() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - var value = util.float.readFloatLE(this.buf, this.pos); - this.pos += 4; - return value; -}; - -/** - * Reads a double (64 bit float) as a number. - * @function - * @returns {number} Value read - */ -Reader.prototype.double = function read_double() { - - /* istanbul ignore if */ - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 4); - - var value = util.float.readDoubleLE(this.buf, this.pos); - this.pos += 8; - return value; -}; - -/** - * Reads a sequence of bytes preceeded by its length as a varint. - * @returns {Uint8Array} Value read - */ -Reader.prototype.bytes = function read_bytes() { - var length = this.uint32(), - start = this.pos, - end = this.pos + length; - - /* istanbul ignore if */ - if (end > this.len) - throw indexOutOfRange(this, length); - - this.pos += length; - if (Array.isArray(this.buf)) // plain array - return this.buf.slice(start, end); - return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1 - ? new this.buf.constructor(0) - : this._slice.call(this.buf, start, end); -}; - -/** - * Reads a string preceeded by its byte length as a varint. - * @returns {string} Value read - */ -Reader.prototype.string = function read_string() { - var bytes = this.bytes(); - return utf8.read(bytes, 0, bytes.length); -}; - -/** - * Skips the specified number of bytes if specified, otherwise skips a varint. - * @param {number} [length] Length if known, otherwise a varint is assumed - * @returns {Reader} `this` - */ -Reader.prototype.skip = function skip(length) { - if (typeof length === "number") { - /* istanbul ignore if */ - if (this.pos + length > this.len) - throw indexOutOfRange(this, length); - this.pos += length; - } else { - do { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - } while (this.buf[this.pos++] & 128); - } - return this; -}; - -/** - * Skips the next element of the specified wire type. - * @param {number} wireType Wire type received - * @returns {Reader} `this` - */ -Reader.prototype.skipType = function(wireType) { - switch (wireType) { - case 0: - this.skip(); - break; - case 1: - this.skip(8); - break; - case 2: - this.skip(this.uint32()); - break; - case 3: - while ((wireType = this.uint32() & 7) !== 4) { - this.skipType(wireType); - } - break; - case 5: - this.skip(4); - break; - - /* istanbul ignore next */ - default: - throw Error("invalid wire type " + wireType + " at offset " + this.pos); - } - return this; -}; - -Reader._configure = function(BufferReader_) { - BufferReader = BufferReader_; - - var fn = util.Long ? "toLong" : /* istanbul ignore next */ "toNumber"; - util.merge(Reader.prototype, { - - int64: function read_int64() { - return readLongVarint.call(this)[fn](false); - }, - - uint64: function read_uint64() { - return readLongVarint.call(this)[fn](true); - }, - - sint64: function read_sint64() { - return readLongVarint.call(this).zzDecode()[fn](false); - }, - - fixed64: function read_fixed64() { - return readFixed64.call(this)[fn](true); - }, - - sfixed64: function read_sfixed64() { - return readFixed64.call(this)[fn](false); - } - - }); -}; - -},{"39":39}],28:[function(require,module,exports){ -"use strict"; -module.exports = BufferReader; - -// extends Reader -var Reader = require(27); -(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader; - -var util = require(39); - -/** - * Constructs a new buffer reader instance. - * @classdesc Wire format reader using node buffers. - * @extends Reader - * @constructor - * @param {Buffer} buffer Buffer to read from - */ -function BufferReader(buffer) { - Reader.call(this, buffer); - - /** - * Read buffer. - * @name BufferReader#buf - * @type {Buffer} - */ -} - -/* istanbul ignore else */ -if (util.Buffer) - BufferReader.prototype._slice = util.Buffer.prototype.slice; - -/** - * @override - */ -BufferReader.prototype.string = function read_string_buffer() { - var len = this.uint32(); // modifies pos - return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len)); -}; - -/** - * Reads a sequence of bytes preceeded by its length as a varint. - * @name BufferReader#bytes - * @function - * @returns {Buffer} Value read - */ - -},{"27":27,"39":39}],29:[function(require,module,exports){ -"use strict"; -module.exports = Root; - -// extends Namespace -var Namespace = require(23); -((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = "Root"; - -var Field = require(16), - Enum = require(15), - OneOf = require(25), - util = require(37); - -var Type, // cyclic - parse, // might be excluded - common; // " - -/** - * Constructs a new root namespace instance. - * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together. - * @extends NamespaceBase - * @constructor - * @param {Object.} [options] Top level options - */ -function Root(options) { - Namespace.call(this, "", options); - - /** - * Deferred extension fields. - * @type {Field[]} - */ - this.deferred = []; - - /** - * Resolved file names of loaded files. - * @type {string[]} - */ - this.files = []; -} - -/** - * Loads a namespace descriptor into a root namespace. - * @param {INamespace} json Nameespace descriptor - * @param {Root} [root] Root namespace, defaults to create a new one if omitted - * @returns {Root} Root namespace - */ -Root.fromJSON = function fromJSON(json, root) { - if (!root) - root = new Root(); - if (json.options) - root.setOptions(json.options); - return root.addJSON(json.nested); -}; - -/** - * Resolves the path of an imported file, relative to the importing origin. - * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories. - * @function - * @param {string} origin The file name of the importing file - * @param {string} target The file name being imported - * @returns {string|null} Resolved path to `target` or `null` to skip the file - */ -Root.prototype.resolvePath = util.path.resolve; - -// A symbol-like function to safely signal synchronous loading -/* istanbul ignore next */ -function SYNC() {} // eslint-disable-line no-empty-function - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback. - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} options Parse options - * @param {LoadCallback} callback Callback function - * @returns {undefined} - */ -Root.prototype.load = function load(filename, options, callback) { - if (typeof options === "function") { - callback = options; - options = undefined; - } - var self = this; - if (!callback) - return util.asPromise(load, self, filename, options); - - var sync = callback === SYNC; // undocumented - - // Finishes loading by calling the callback (exactly once) - function finish(err, root) { - /* istanbul ignore if */ - if (!callback) - return; - var cb = callback; - callback = null; - if (sync) - throw err; - cb(err, root); - } - - // Bundled definition existence checking - function getBundledFileName(filename) { - var idx = filename.lastIndexOf("google/protobuf/"); - if (idx > -1) { - var altname = filename.substring(idx); - if (altname in common) return altname; - } - return null; - } - - // Processes a single file - function process(filename, source) { - try { - if (util.isString(source) && source.charAt(0) === "{") - source = JSON.parse(source); - if (!util.isString(source)) - self.setOptions(source.options).addJSON(source.nested); - else { - parse.filename = filename; - var parsed = parse(source, self, options), - resolved, - i = 0; - if (parsed.imports) - for (; i < parsed.imports.length; ++i) - if (resolved = (getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))) - fetch(resolved); - if (parsed.weakImports) - for (i = 0; i < parsed.weakImports.length; ++i) - if (resolved = (getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))) - fetch(resolved, true); - } - } catch (err) { - finish(err); - } - if (!sync && !queued) - finish(null, self); // only once anyway - } - - // Fetches a single file - function fetch(filename, weak) { - - // Skip if already loaded / attempted - if (self.files.indexOf(filename) > -1) - return; - self.files.push(filename); - - // Shortcut bundled definitions - if (filename in common) { - if (sync) - process(filename, common[filename]); - else { - ++queued; - setTimeout(function() { - --queued; - process(filename, common[filename]); - }); - } - return; - } - - // Otherwise fetch from disk or network - if (sync) { - var source; - try { - source = util.fs.readFileSync(filename).toString("utf8"); - } catch (err) { - if (!weak) - finish(err); - return; - } - process(filename, source); - } else { - ++queued; - util.fetch(filename, function(err, source) { - --queued; - /* istanbul ignore if */ - if (!callback) - return; // terminated meanwhile - if (err) { - /* istanbul ignore else */ - if (!weak) - finish(err); - else if (!queued) // can't be covered reliably - finish(null, self); - return; - } - process(filename, source); - }); - } - } - var queued = 0; - - // Assembling the root namespace doesn't require working type - // references anymore, so we can load everything in parallel - if (util.isString(filename)) - filename = [ filename ]; - for (var i = 0, resolved; i < filename.length; ++i) - if (resolved = self.resolvePath("", filename[i])) - fetch(resolved); - - if (sync) - return self; - if (!queued) - finish(null, self); - return undefined; -}; -// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback. - * @function Root#load - * @param {string|string[]} filename Names of one or multiple files to load - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @variation 2 - */ -// function load(filename:string, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise. - * @function Root#load - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {Promise} Promise - * @variation 3 - */ -// function load(filename:string, [options:IParseOptions]):Promise - -/** - * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only). - * @function Root#loadSync - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {Root} Root namespace - * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid - */ -Root.prototype.loadSync = function loadSync(filename, options) { - if (!util.isNode) - throw Error("not supported"); - return this.load(filename, options, SYNC); -}; - -/** - * @override - */ -Root.prototype.resolveAll = function resolveAll() { - if (this.deferred.length) - throw Error("unresolvable extensions: " + this.deferred.map(function(field) { - return "'extend " + field.extend + "' in " + field.parent.fullName; - }).join(", ")); - return Namespace.prototype.resolveAll.call(this); -}; - -// only uppercased (and thus conflict-free) children are exposed, see below -var exposeRe = /^[A-Z]/; - -/** - * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type. - * @param {Root} root Root instance - * @param {Field} field Declaring extension field witin the declaring type - * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise - * @inner - * @ignore - */ -function tryHandleExtension(root, field) { - var extendedType = field.parent.lookup(field.extend); - if (extendedType) { - var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options); - sisterField.declaringField = field; - field.extensionField = sisterField; - extendedType.add(sisterField); - return true; - } - return false; -} - -/** - * Called when any object is added to this root or its sub-namespaces. - * @param {ReflectionObject} object Object added - * @returns {undefined} - * @private - */ -Root.prototype._handleAdd = function _handleAdd(object) { - if (object instanceof Field) { - - if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField) - if (!tryHandleExtension(this, object)) - this.deferred.push(object); - - } else if (object instanceof Enum) { - - if (exposeRe.test(object.name)) - object.parent[object.name] = object.values; // expose enum values as property of its parent - - } else if (!(object instanceof OneOf)) /* everything else is a namespace */ { - - if (object instanceof Type) // Try to handle any deferred extensions - for (var i = 0; i < this.deferred.length;) - if (tryHandleExtension(this, this.deferred[i])) - this.deferred.splice(i, 1); - else - ++i; - for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace - this._handleAdd(object._nestedArray[j]); - if (exposeRe.test(object.name)) - object.parent[object.name] = object; // expose namespace as property of its parent - } - - // The above also adds uppercased (and thus conflict-free) nested types, services and enums as - // properties of namespaces just like static code does. This allows using a .d.ts generated for - // a static module with reflection-based solutions where the condition is met. -}; - -/** - * Called when any object is removed from this root or its sub-namespaces. - * @param {ReflectionObject} object Object removed - * @returns {undefined} - * @private - */ -Root.prototype._handleRemove = function _handleRemove(object) { - if (object instanceof Field) { - - if (/* an extension field */ object.extend !== undefined) { - if (/* already handled */ object.extensionField) { // remove its sister field - object.extensionField.parent.remove(object.extensionField); - object.extensionField = null; - } else { // cancel the extension - var index = this.deferred.indexOf(object); - /* istanbul ignore else */ - if (index > -1) - this.deferred.splice(index, 1); - } - } - - } else if (object instanceof Enum) { - - if (exposeRe.test(object.name)) - delete object.parent[object.name]; // unexpose enum values - - } else if (object instanceof Namespace) { - - for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace - this._handleRemove(object._nestedArray[i]); - - if (exposeRe.test(object.name)) - delete object.parent[object.name]; // unexpose namespaces - - } -}; - -// Sets up cyclic dependencies (called in index-light) -Root._configure = function(Type_, parse_, common_) { - Type = Type_; - parse = parse_; - common = common_; -}; - -},{"15":15,"16":16,"23":23,"25":25,"37":37}],30:[function(require,module,exports){ -"use strict"; -module.exports = {}; - -/** - * Named roots. - * This is where pbjs stores generated structures (the option `-r, --root` specifies a name). - * Can also be used manually to make roots available accross modules. - * @name roots - * @type {Object.} - * @example - * // pbjs -r myroot -o compiled.js ... - * - * // in another module: - * require("./compiled.js"); - * - * // in any subsequent module: - * var root = protobuf.roots["myroot"]; - */ - -},{}],31:[function(require,module,exports){ -"use strict"; - -/** - * Streaming RPC helpers. - * @namespace - */ -var rpc = exports; - -/** - * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets. - * @typedef RPCImpl - * @type {function} - * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called - * @param {Uint8Array} requestData Request data - * @param {RPCImplCallback} callback Callback function - * @returns {undefined} - * @example - * function rpcImpl(method, requestData, callback) { - * if (protobuf.util.lcFirst(method.name) !== "myMethod") // compatible with static code - * throw Error("no such method"); - * asynchronouslyObtainAResponse(requestData, function(err, responseData) { - * callback(err, responseData); - * }); - * } - */ - -/** - * Node-style callback as used by {@link RPCImpl}. - * @typedef RPCImplCallback - * @type {function} - * @param {Error|null} error Error, if any, otherwise `null` - * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error - * @returns {undefined} - */ - -rpc.Service = require(32); - -},{"32":32}],32:[function(require,module,exports){ -"use strict"; -module.exports = Service; - -var util = require(39); - -// Extends EventEmitter -(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service; - -/** - * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}. - * - * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`. - * @typedef rpc.ServiceMethodCallback - * @template TRes extends Message - * @type {function} - * @param {Error|null} error Error, if any - * @param {TRes} [response] Response message - * @returns {undefined} - */ - -/** - * A service method part of a {@link rpc.Service} as created by {@link Service.create}. - * @typedef rpc.ServiceMethod - * @template TReq extends Message - * @template TRes extends Message - * @type {function} - * @param {TReq|Properties} request Request message or plain object - * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message - * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined` - */ - -/** - * Constructs a new RPC service instance. - * @classdesc An RPC service as returned by {@link Service#create}. - * @exports rpc.Service - * @extends util.EventEmitter - * @constructor - * @param {RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - */ -function Service(rpcImpl, requestDelimited, responseDelimited) { - - if (typeof rpcImpl !== "function") - throw TypeError("rpcImpl must be a function"); - - util.EventEmitter.call(this); - - /** - * RPC implementation. Becomes `null` once the service is ended. - * @type {RPCImpl|null} - */ - this.rpcImpl = rpcImpl; - - /** - * Whether requests are length-delimited. - * @type {boolean} - */ - this.requestDelimited = Boolean(requestDelimited); - - /** - * Whether responses are length-delimited. - * @type {boolean} - */ - this.responseDelimited = Boolean(responseDelimited); -} - -/** - * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}. - * @param {Method|rpc.ServiceMethod} method Reflected or static method - * @param {Constructor} requestCtor Request constructor - * @param {Constructor} responseCtor Response constructor - * @param {TReq|Properties} request Request message or plain object - * @param {rpc.ServiceMethodCallback} callback Service callback - * @returns {undefined} - * @template TReq extends Message - * @template TRes extends Message - */ -Service.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) { - - if (!request) - throw TypeError("request must be specified"); - - var self = this; - if (!callback) - return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request); - - if (!self.rpcImpl) { - setTimeout(function() { callback(Error("already ended")); }, 0); - return undefined; - } - - try { - return self.rpcImpl( - method, - requestCtor[self.requestDelimited ? "encodeDelimited" : "encode"](request).finish(), - function rpcCallback(err, response) { - - if (err) { - self.emit("error", err, method); - return callback(err); - } - - if (response === null) { - self.end(/* endedByRPC */ true); - return undefined; - } - - if (!(response instanceof responseCtor)) { - try { - response = responseCtor[self.responseDelimited ? "decodeDelimited" : "decode"](response); - } catch (err) { - self.emit("error", err, method); - return callback(err); - } - } - - self.emit("data", response, method); - return callback(null, response); - } - ); - } catch (err) { - self.emit("error", err, method); - setTimeout(function() { callback(err); }, 0); - return undefined; - } -}; - -/** - * Ends this service and emits the `end` event. - * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation. - * @returns {rpc.Service} `this` - */ -Service.prototype.end = function end(endedByRPC) { - if (this.rpcImpl) { - if (!endedByRPC) // signal end to rpcImpl - this.rpcImpl(null, null, null); - this.rpcImpl = null; - this.emit("end").off(); - } - return this; -}; - -},{"39":39}],33:[function(require,module,exports){ -"use strict"; -module.exports = Service; - -// extends Namespace -var Namespace = require(23); -((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = "Service"; - -var Method = require(22), - util = require(37), - rpc = require(31); - -/** - * Constructs a new service instance. - * @classdesc Reflected service. - * @extends NamespaceBase - * @constructor - * @param {string} name Service name - * @param {Object.} [options] Service options - * @throws {TypeError} If arguments are invalid - */ -function Service(name, options) { - Namespace.call(this, name, options); - - /** - * Service methods. - * @type {Object.} - */ - this.methods = {}; // toJSON, marker - - /** - * Cached methods as an array. - * @type {Method[]|null} - * @private - */ - this._methodsArray = null; -} - -/** - * Service descriptor. - * @interface IService - * @extends INamespace - * @property {Object.} methods Method descriptors - */ - -/** - * Constructs a service from a service descriptor. - * @param {string} name Service name - * @param {IService} json Service descriptor - * @returns {Service} Created service - * @throws {TypeError} If arguments are invalid - */ -Service.fromJSON = function fromJSON(name, json) { - var service = new Service(name, json.options); - /* istanbul ignore else */ - if (json.methods) - for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i) - service.add(Method.fromJSON(names[i], json.methods[names[i]])); - if (json.nested) - service.addJSON(json.nested); - service.comment = json.comment; - return service; -}; - -/** - * Converts this service to a service descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IService} Service descriptor - */ -Service.prototype.toJSON = function toJSON(toJSONOptions) { - var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions); - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , inherited && inherited.options || undefined, - "methods" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {}, - "nested" , inherited && inherited.nested || undefined, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Methods of this service as an array for iteration. - * @name Service#methodsArray - * @type {Method[]} - * @readonly - */ -Object.defineProperty(Service.prototype, "methodsArray", { - get: function() { - return this._methodsArray || (this._methodsArray = util.toArray(this.methods)); - } -}); - -function clearCache(service) { - service._methodsArray = null; - return service; -} - -/** - * @override - */ -Service.prototype.get = function get(name) { - return this.methods[name] - || Namespace.prototype.get.call(this, name); -}; - -/** - * @override - */ -Service.prototype.resolveAll = function resolveAll() { - var methods = this.methodsArray; - for (var i = 0; i < methods.length; ++i) - methods[i].resolve(); - return Namespace.prototype.resolve.call(this); -}; - -/** - * @override - */ -Service.prototype.add = function add(object) { - - /* istanbul ignore if */ - if (this.get(object.name)) - throw Error("duplicate name '" + object.name + "' in " + this); - - if (object instanceof Method) { - this.methods[object.name] = object; - object.parent = this; - return clearCache(this); - } - return Namespace.prototype.add.call(this, object); -}; - -/** - * @override - */ -Service.prototype.remove = function remove(object) { - if (object instanceof Method) { - - /* istanbul ignore if */ - if (this.methods[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.methods[object.name]; - object.parent = null; - return clearCache(this); - } - return Namespace.prototype.remove.call(this, object); -}; - -/** - * Creates a runtime service using the specified rpc implementation. - * @param {RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed. - */ -Service.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) { - var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited); - for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) { - var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\w_]/g, ""); - rpcService[methodName] = util.codegen(["r","c"], util.isReserved(methodName) ? methodName + "_" : methodName)("return this.rpcCall(m,q,s,r,c)")({ - m: method, - q: method.resolvedRequestType.ctor, - s: method.resolvedResponseType.ctor - }); - } - return rpcService; -}; - -},{"22":22,"23":23,"31":31,"37":37}],34:[function(require,module,exports){ -"use strict"; -module.exports = tokenize; - -var delimRe = /[\s{}=;:[\],'"()<>]/g, - stringDoubleRe = /(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g, - stringSingleRe = /(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g; - -var setCommentRe = /^ *[*/]+ */, - setCommentAltRe = /^\s*\*?\/*/, - setCommentSplitRe = /\n/g, - whitespaceRe = /\s/, - unescapeRe = /\\(.?)/g; - -var unescapeMap = { - "0": "\0", - "r": "\r", - "n": "\n", - "t": "\t" -}; - -/** - * Unescapes a string. - * @param {string} str String to unescape - * @returns {string} Unescaped string - * @property {Object.} map Special characters map - * @memberof tokenize - */ -function unescape(str) { - return str.replace(unescapeRe, function($0, $1) { - switch ($1) { - case "\\": - case "": - return $1; - default: - return unescapeMap[$1] || ""; - } - }); -} - -tokenize.unescape = unescape; - -/** - * Gets the next token and advances. - * @typedef TokenizerHandleNext - * @type {function} - * @returns {string|null} Next token or `null` on eof - */ - -/** - * Peeks for the next token. - * @typedef TokenizerHandlePeek - * @type {function} - * @returns {string|null} Next token or `null` on eof - */ - -/** - * Pushes a token back to the stack. - * @typedef TokenizerHandlePush - * @type {function} - * @param {string} token Token - * @returns {undefined} - */ - -/** - * Skips the next token. - * @typedef TokenizerHandleSkip - * @type {function} - * @param {string} expected Expected token - * @param {boolean} [optional=false] If optional - * @returns {boolean} Whether the token matched - * @throws {Error} If the token didn't match and is not optional - */ - -/** - * Gets the comment on the previous line or, alternatively, the line comment on the specified line. - * @typedef TokenizerHandleCmnt - * @type {function} - * @param {number} [line] Line number - * @returns {string|null} Comment text or `null` if none - */ - -/** - * Handle object returned from {@link tokenize}. - * @interface ITokenizerHandle - * @property {TokenizerHandleNext} next Gets the next token and advances (`null` on eof) - * @property {TokenizerHandlePeek} peek Peeks for the next token (`null` on eof) - * @property {TokenizerHandlePush} push Pushes a token back to the stack - * @property {TokenizerHandleSkip} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws - * @property {TokenizerHandleCmnt} cmnt Gets the comment on the previous line or the line comment on the specified line, if any - * @property {number} line Current line number - */ - -/** - * Tokenizes the given .proto source and returns an object with useful utility functions. - * @param {string} source Source contents - * @param {boolean} alternateCommentMode Whether we should activate alternate comment parsing mode. - * @returns {ITokenizerHandle} Tokenizer handle - */ -function tokenize(source, alternateCommentMode) { - /* eslint-disable callback-return */ - source = source.toString(); - - var offset = 0, - length = source.length, - line = 1, - commentType = null, - commentText = null, - commentLine = 0, - commentLineEmpty = false; - - var stack = []; - - var stringDelim = null; - - /* istanbul ignore next */ - /** - * Creates an error for illegal syntax. - * @param {string} subject Subject - * @returns {Error} Error created - * @inner - */ - function illegal(subject) { - return Error("illegal " + subject + " (line " + line + ")"); - } - - /** - * Reads a string till its end. - * @returns {string} String read - * @inner - */ - function readString() { - var re = stringDelim === "'" ? stringSingleRe : stringDoubleRe; - re.lastIndex = offset - 1; - var match = re.exec(source); - if (!match) - throw illegal("string"); - offset = re.lastIndex; - push(stringDelim); - stringDelim = null; - return unescape(match[1]); - } - - /** - * Gets the character at `pos` within the source. - * @param {number} pos Position - * @returns {string} Character - * @inner - */ - function charAt(pos) { - return source.charAt(pos); - } - - /** - * Sets the current comment text. - * @param {number} start Start offset - * @param {number} end End offset - * @returns {undefined} - * @inner - */ - function setComment(start, end) { - commentType = source.charAt(start++); - commentLine = line; - commentLineEmpty = false; - var lookback; - if (alternateCommentMode) { - lookback = 2; // alternate comment parsing: "//" or "/*" - } else { - lookback = 3; // "///" or "/**" - } - var commentOffset = start - lookback, - c; - do { - if (--commentOffset < 0 || - (c = source.charAt(commentOffset)) === "\n") { - commentLineEmpty = true; - break; - } - } while (c === " " || c === "\t"); - var lines = source - .substring(start, end) - .split(setCommentSplitRe); - for (var i = 0; i < lines.length; ++i) - lines[i] = lines[i] - .replace(alternateCommentMode ? setCommentAltRe : setCommentRe, "") - .trim(); - commentText = lines - .join("\n") - .trim(); - } - - function isDoubleSlashCommentLine(startOffset) { - var endOffset = findEndOfLine(startOffset); - - // see if remaining line matches comment pattern - var lineText = source.substring(startOffset, endOffset); - // look for 1 or 2 slashes since startOffset would already point past - // the first slash that started the comment. - var isComment = /^\s*\/{1,2}/.test(lineText); - return isComment; - } - - function findEndOfLine(cursor) { - // find end of cursor's line - var endOffset = cursor; - while (endOffset < length && charAt(endOffset) !== "\n") { - endOffset++; - } - return endOffset; - } - - /** - * Obtains the next token. - * @returns {string|null} Next token or `null` on eof - * @inner - */ - function next() { - if (stack.length > 0) - return stack.shift(); - if (stringDelim) - return readString(); - var repeat, - prev, - curr, - start, - isDoc; - do { - if (offset === length) - return null; - repeat = false; - while (whitespaceRe.test(curr = charAt(offset))) { - if (curr === "\n") - ++line; - if (++offset === length) - return null; - } - - if (charAt(offset) === "/") { - if (++offset === length) { - throw illegal("comment"); - } - if (charAt(offset) === "/") { // Line - if (!alternateCommentMode) { - // check for triple-slash comment - isDoc = charAt(start = offset + 1) === "/"; - - while (charAt(++offset) !== "\n") { - if (offset === length) { - return null; - } - } - ++offset; - if (isDoc) { - setComment(start, offset - 1); - } - ++line; - repeat = true; - } else { - // check for double-slash comments, consolidating consecutive lines - start = offset; - isDoc = false; - if (isDoubleSlashCommentLine(offset)) { - isDoc = true; - do { - offset = findEndOfLine(offset); - if (offset === length) { - break; - } - offset++; - } while (isDoubleSlashCommentLine(offset)); - } else { - offset = Math.min(length, findEndOfLine(offset) + 1); - } - if (isDoc) { - setComment(start, offset); - } - line++; - repeat = true; - } - } else if ((curr = charAt(offset)) === "*") { /* Block */ - // check for /** (regular comment mode) or /* (alternate comment mode) - start = offset + 1; - isDoc = alternateCommentMode || charAt(start) === "*"; - do { - if (curr === "\n") { - ++line; - } - if (++offset === length) { - throw illegal("comment"); - } - prev = curr; - curr = charAt(offset); - } while (prev !== "*" || curr !== "/"); - ++offset; - if (isDoc) { - setComment(start, offset - 2); - } - repeat = true; - } else { - return "/"; - } - } - } while (repeat); - - // offset !== length if we got here - - var end = offset; - delimRe.lastIndex = 0; - var delim = delimRe.test(charAt(end++)); - if (!delim) - while (end < length && !delimRe.test(charAt(end))) - ++end; - var token = source.substring(offset, offset = end); - if (token === "\"" || token === "'") - stringDelim = token; - return token; - } - - /** - * Pushes a token back to the stack. - * @param {string} token Token - * @returns {undefined} - * @inner - */ - function push(token) { - stack.push(token); - } - - /** - * Peeks for the next token. - * @returns {string|null} Token or `null` on eof - * @inner - */ - function peek() { - if (!stack.length) { - var token = next(); - if (token === null) - return null; - push(token); - } - return stack[0]; - } - - /** - * Skips a token. - * @param {string} expected Expected token - * @param {boolean} [optional=false] Whether the token is optional - * @returns {boolean} `true` when skipped, `false` if not - * @throws {Error} When a required token is not present - * @inner - */ - function skip(expected, optional) { - var actual = peek(), - equals = actual === expected; - if (equals) { - next(); - return true; - } - if (!optional) - throw illegal("token '" + actual + "', '" + expected + "' expected"); - return false; - } - - /** - * Gets a comment. - * @param {number} [trailingLine] Line number if looking for a trailing comment - * @returns {string|null} Comment text - * @inner - */ - function cmnt(trailingLine) { - var ret = null; - if (trailingLine === undefined) { - if (commentLine === line - 1 && (alternateCommentMode || commentType === "*" || commentLineEmpty)) { - ret = commentText; - } - } else { - /* istanbul ignore else */ - if (commentLine < trailingLine) { - peek(); - } - if (commentLine === trailingLine && !commentLineEmpty && (alternateCommentMode || commentType === "/")) { - ret = commentText; - } - } - return ret; - } - - return Object.defineProperty({ - next: next, - peek: peek, - push: push, - skip: skip, - cmnt: cmnt - }, "line", { - get: function() { return line; } - }); - /* eslint-enable callback-return */ -} - -},{}],35:[function(require,module,exports){ -"use strict"; -module.exports = Type; - -// extends Namespace -var Namespace = require(23); -((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = "Type"; - -var Enum = require(15), - OneOf = require(25), - Field = require(16), - MapField = require(20), - Service = require(33), - Message = require(21), - Reader = require(27), - Writer = require(42), - util = require(37), - encoder = require(14), - decoder = require(13), - verifier = require(40), - converter = require(12), - wrappers = require(41); - -/** - * Constructs a new reflected message type instance. - * @classdesc Reflected message type. - * @extends NamespaceBase - * @constructor - * @param {string} name Message name - * @param {Object.} [options] Declared options - */ -function Type(name, options) { - Namespace.call(this, name, options); - - /** - * Message fields. - * @type {Object.} - */ - this.fields = {}; // toJSON, marker - - /** - * Oneofs declared within this namespace, if any. - * @type {Object.} - */ - this.oneofs = undefined; // toJSON - - /** - * Extension ranges, if any. - * @type {number[][]} - */ - this.extensions = undefined; // toJSON - - /** - * Reserved ranges, if any. - * @type {Array.} - */ - this.reserved = undefined; // toJSON - - /*? - * Whether this type is a legacy group. - * @type {boolean|undefined} - */ - this.group = undefined; // toJSON - - /** - * Cached fields by id. - * @type {Object.|null} - * @private - */ - this._fieldsById = null; - - /** - * Cached fields as an array. - * @type {Field[]|null} - * @private - */ - this._fieldsArray = null; - - /** - * Cached oneofs as an array. - * @type {OneOf[]|null} - * @private - */ - this._oneofsArray = null; - - /** - * Cached constructor. - * @type {Constructor<{}>} - * @private - */ - this._ctor = null; -} - -Object.defineProperties(Type.prototype, { - - /** - * Message fields by id. - * @name Type#fieldsById - * @type {Object.} - * @readonly - */ - fieldsById: { - get: function() { - - /* istanbul ignore if */ - if (this._fieldsById) - return this._fieldsById; - - this._fieldsById = {}; - for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) { - var field = this.fields[names[i]], - id = field.id; - - /* istanbul ignore if */ - if (this._fieldsById[id]) - throw Error("duplicate id " + id + " in " + this); - - this._fieldsById[id] = field; - } - return this._fieldsById; - } - }, - - /** - * Fields of this message as an array for iteration. - * @name Type#fieldsArray - * @type {Field[]} - * @readonly - */ - fieldsArray: { - get: function() { - return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields)); - } - }, - - /** - * Oneofs of this message as an array for iteration. - * @name Type#oneofsArray - * @type {OneOf[]} - * @readonly - */ - oneofsArray: { - get: function() { - return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs)); - } - }, - - /** - * The registered constructor, if any registered, otherwise a generic constructor. - * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor. - * @name Type#ctor - * @type {Constructor<{}>} - */ - ctor: { - get: function() { - return this._ctor || (this.ctor = Type.generateConstructor(this)()); - }, - set: function(ctor) { - - // Ensure proper prototype - var prototype = ctor.prototype; - if (!(prototype instanceof Message)) { - (ctor.prototype = new Message()).constructor = ctor; - util.merge(ctor.prototype, prototype); - } - - // Classes and messages reference their reflected type - ctor.$type = ctor.prototype.$type = this; - - // Mix in static methods - util.merge(ctor, Message, true); - - this._ctor = ctor; - - // Messages have non-enumerable default values on their prototype - var i = 0; - for (; i < /* initializes */ this.fieldsArray.length; ++i) - this._fieldsArray[i].resolve(); // ensures a proper value - - // Messages have non-enumerable getters and setters for each virtual oneof field - var ctorProperties = {}; - for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i) - ctorProperties[this._oneofsArray[i].resolve().name] = { - get: util.oneOfGetter(this._oneofsArray[i].oneof), - set: util.oneOfSetter(this._oneofsArray[i].oneof) - }; - if (i) - Object.defineProperties(ctor.prototype, ctorProperties); - } - } -}); - -/** - * Generates a constructor function for the specified type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -Type.generateConstructor = function generateConstructor(mtype) { - /* eslint-disable no-unexpected-multiline */ - var gen = util.codegen(["p"], mtype.name); - // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype - for (var i = 0, field; i < mtype.fieldsArray.length; ++i) - if ((field = mtype._fieldsArray[i]).map) gen - ("this%s={}", util.safeProp(field.name)); - else if (field.repeated) gen - ("this%s=[]", util.safeProp(field.name)); - return gen - ("if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors - * @property {Object.} fields Field descriptors - * @property {number[][]} [extensions] Extension ranges - * @property {number[][]} [reserved] Reserved ranges - * @property {boolean} [group=false] Whether a legacy group or not - */ - -/** - * Creates a message type from a message type descriptor. - * @param {string} name Message name - * @param {IType} json Message type descriptor - * @returns {Type} Created message type - */ -Type.fromJSON = function fromJSON(name, json) { - var type = new Type(name, json.options); - type.extensions = json.extensions; - type.reserved = json.reserved; - var names = Object.keys(json.fields), - i = 0; - for (; i < names.length; ++i) - type.add( - ( typeof json.fields[names[i]].keyType !== "undefined" - ? MapField.fromJSON - : Field.fromJSON )(names[i], json.fields[names[i]]) - ); - if (json.oneofs) - for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i) - type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]])); - if (json.nested) - for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) { - var nested = json.nested[names[i]]; - type.add( // most to least likely - ( nested.id !== undefined - ? Field.fromJSON - : nested.fields !== undefined - ? Type.fromJSON - : nested.values !== undefined - ? Enum.fromJSON - : nested.methods !== undefined - ? Service.fromJSON - : Namespace.fromJSON )(names[i], nested) - ); - } - if (json.extensions && json.extensions.length) - type.extensions = json.extensions; - if (json.reserved && json.reserved.length) - type.reserved = json.reserved; - if (json.group) - type.group = true; - if (json.comment) - type.comment = json.comment; - return type; -}; - -/** - * Converts this message type to a message type descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IType} Message type descriptor - */ -Type.prototype.toJSON = function toJSON(toJSONOptions) { - var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions); - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , inherited && inherited.options || undefined, - "oneofs" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions), - "fields" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {}, - "extensions" , this.extensions && this.extensions.length ? this.extensions : undefined, - "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined, - "group" , this.group || undefined, - "nested" , inherited && inherited.nested || undefined, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -Type.prototype.resolveAll = function resolveAll() { - var fields = this.fieldsArray, i = 0; - while (i < fields.length) - fields[i++].resolve(); - var oneofs = this.oneofsArray; i = 0; - while (i < oneofs.length) - oneofs[i++].resolve(); - return Namespace.prototype.resolveAll.call(this); -}; - -/** - * @override - */ -Type.prototype.get = function get(name) { - return this.fields[name] - || this.oneofs && this.oneofs[name] - || this.nested && this.nested[name] - || null; -}; - -/** - * Adds a nested object to this type. - * @param {ReflectionObject} object Nested object to add - * @returns {Type} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id - */ -Type.prototype.add = function add(object) { - - if (this.get(object.name)) - throw Error("duplicate name '" + object.name + "' in " + this); - - if (object instanceof Field && object.extend === undefined) { - // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects. - // The root object takes care of adding distinct sister-fields to the respective extended - // type instead. - - // avoids calling the getter if not absolutely necessary because it's called quite frequently - if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id]) - throw Error("duplicate id " + object.id + " in " + this); - if (this.isReservedId(object.id)) - throw Error("id " + object.id + " is reserved in " + this); - if (this.isReservedName(object.name)) - throw Error("name '" + object.name + "' is reserved in " + this); - - if (object.parent) - object.parent.remove(object); - this.fields[object.name] = object; - object.message = this; - object.onAdd(this); - return clearCache(this); - } - if (object instanceof OneOf) { - if (!this.oneofs) - this.oneofs = {}; - this.oneofs[object.name] = object; - object.onAdd(this); - return clearCache(this); - } - return Namespace.prototype.add.call(this, object); -}; - -/** - * Removes a nested object from this type. - * @param {ReflectionObject} object Nested object to remove - * @returns {Type} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `object` is not a member of this type - */ -Type.prototype.remove = function remove(object) { - if (object instanceof Field && object.extend === undefined) { - // See Type#add for the reason why extension fields are excluded here. - - /* istanbul ignore if */ - if (!this.fields || this.fields[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.fields[object.name]; - object.parent = null; - object.onRemove(this); - return clearCache(this); - } - if (object instanceof OneOf) { - - /* istanbul ignore if */ - if (!this.oneofs || this.oneofs[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.oneofs[object.name]; - object.parent = null; - object.onRemove(this); - return clearCache(this); - } - return Namespace.prototype.remove.call(this, object); -}; - -/** - * Tests if the specified id is reserved. - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Type.prototype.isReservedId = function isReservedId(id) { - return Namespace.isReservedId(this.reserved, id); -}; - -/** - * Tests if the specified name is reserved. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Type.prototype.isReservedName = function isReservedName(name) { - return Namespace.isReservedName(this.reserved, name); -}; - -/** - * Creates a new message of this type using the specified properties. - * @param {Object.} [properties] Properties to set - * @returns {Message<{}>} Message instance - */ -Type.prototype.create = function create(properties) { - return new this.ctor(properties); -}; - -/** - * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}. - * @returns {Type} `this` - */ -Type.prototype.setup = function setup() { - // Sets up everything at once so that the prototype chain does not have to be re-evaluated - // multiple times (V8, soft-deopt prototype-check). - - var fullName = this.fullName, - types = []; - for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i) - types.push(this._fieldsArray[i].resolve().resolvedType); - - // Replace setup methods with type-specific generated functions - this.encode = encoder(this)({ - Writer : Writer, - types : types, - util : util - }); - this.decode = decoder(this)({ - Reader : Reader, - types : types, - util : util - }); - this.verify = verifier(this)({ - types : types, - util : util - }); - this.fromObject = converter.fromObject(this)({ - types : types, - util : util - }); - this.toObject = converter.toObject(this)({ - types : types, - util : util - }); - - // Inject custom wrappers for common types - var wrapper = wrappers[fullName]; - if (wrapper) { - var originalThis = Object.create(this); - // if (wrapper.fromObject) { - originalThis.fromObject = this.fromObject; - this.fromObject = wrapper.fromObject.bind(originalThis); - // } - // if (wrapper.toObject) { - originalThis.toObject = this.toObject; - this.toObject = wrapper.toObject.bind(originalThis); - // } - } - - return this; -}; - -/** - * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages. - * @param {Message<{}>|Object.} message Message instance or plain object - * @param {Writer} [writer] Writer to encode to - * @returns {Writer} writer - */ -Type.prototype.encode = function encode_setup(message, writer) { - return this.setup().encode(message, writer); // overrides this method -}; - -/** - * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages. - * @param {Message<{}>|Object.} message Message instance or plain object - * @param {Writer} [writer] Writer to encode to - * @returns {Writer} writer - */ -Type.prototype.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); -}; - -/** - * Decodes a message of this type. - * @param {Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Length of the message, if known beforehand - * @returns {Message<{}>} Decoded message - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {util.ProtocolError<{}>} If required fields are missing - */ -Type.prototype.decode = function decode_setup(reader, length) { - return this.setup().decode(reader, length); // overrides this method -}; - -/** - * Decodes a message of this type preceeded by its byte length as a varint. - * @param {Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {Message<{}>} Decoded message - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {util.ProtocolError} If required fields are missing - */ -Type.prototype.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof Reader)) - reader = Reader.create(reader); - return this.decode(reader, reader.uint32()); -}; - -/** - * Verifies that field values are valid and that required fields are present. - * @param {Object.} message Plain object to verify - * @returns {null|string} `null` if valid, otherwise the reason why it is not - */ -Type.prototype.verify = function verify_setup(message) { - return this.setup().verify(message); // overrides this method -}; - -/** - * Creates a new message of this type from a plain object. Also converts values to their respective internal types. - * @param {Object.} object Plain object to convert - * @returns {Message<{}>} Message instance - */ -Type.prototype.fromObject = function fromObject(object) { - return this.setup().fromObject(object); -}; - -/** - * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}. - * @interface IConversionOptions - * @property {Function} [longs] Long conversion type. - * Valid values are `String` and `Number` (the global types). - * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library. - * @property {Function} [enums] Enum value conversion type. - * Only valid value is `String` (the global type). - * Defaults to copy the present value, which is the numeric id. - * @property {Function} [bytes] Bytes value conversion type. - * Valid values are `Array` and (a base64 encoded) `String` (the global types). - * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser. - * @property {boolean} [defaults=false] Also sets default values on the resulting object - * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false` - * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false` - * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any - * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings - */ - -/** - * Creates a plain object from a message of this type. Also converts values to other types if specified. - * @param {Message<{}>} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ -Type.prototype.toObject = function toObject(message, options) { - return this.setup().toObject(message, options); -}; - -/** - * Decorator function as returned by {@link Type.d} (TypeScript). - * @typedef TypeDecorator - * @type {function} - * @param {Constructor} target Target constructor - * @returns {undefined} - * @template T extends Message - */ - -/** - * Type decorator (TypeScript). - * @param {string} [typeName] Type name, defaults to the constructor's name - * @returns {TypeDecorator} Decorator function - * @template T extends Message - */ -Type.d = function decorateType(typeName) { - return function typeDecorator(target) { - util.decorateType(target, typeName); - }; -}; - -},{"12":12,"13":13,"14":14,"15":15,"16":16,"20":20,"21":21,"23":23,"25":25,"27":27,"33":33,"37":37,"40":40,"41":41,"42":42}],36:[function(require,module,exports){ -"use strict"; - -/** - * Common type constants. - * @namespace - */ -var types = exports; - -var util = require(37); - -var s = [ - "double", // 0 - "float", // 1 - "int32", // 2 - "uint32", // 3 - "sint32", // 4 - "fixed32", // 5 - "sfixed32", // 6 - "int64", // 7 - "uint64", // 8 - "sint64", // 9 - "fixed64", // 10 - "sfixed64", // 11 - "bool", // 12 - "string", // 13 - "bytes" // 14 -]; - -function bake(values, offset) { - var i = 0, o = {}; - offset |= 0; - while (i < values.length) o[s[i + offset]] = values[i++]; - return o; -} - -/** - * Basic type wire types. - * @type {Object.} - * @const - * @property {number} double=1 Fixed64 wire type - * @property {number} float=5 Fixed32 wire type - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - * @property {number} string=2 Ldelim wire type - * @property {number} bytes=2 Ldelim wire type - */ -types.basic = bake([ - /* double */ 1, - /* float */ 5, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0, - /* string */ 2, - /* bytes */ 2 -]); - -/** - * Basic type defaults. - * @type {Object.} - * @const - * @property {number} double=0 Double default - * @property {number} float=0 Float default - * @property {number} int32=0 Int32 default - * @property {number} uint32=0 Uint32 default - * @property {number} sint32=0 Sint32 default - * @property {number} fixed32=0 Fixed32 default - * @property {number} sfixed32=0 Sfixed32 default - * @property {number} int64=0 Int64 default - * @property {number} uint64=0 Uint64 default - * @property {number} sint64=0 Sint32 default - * @property {number} fixed64=0 Fixed64 default - * @property {number} sfixed64=0 Sfixed64 default - * @property {boolean} bool=false Bool default - * @property {string} string="" String default - * @property {Array.} bytes=Array(0) Bytes default - * @property {null} message=null Message default - */ -types.defaults = bake([ - /* double */ 0, - /* float */ 0, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 0, - /* sfixed32 */ 0, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 0, - /* sfixed64 */ 0, - /* bool */ false, - /* string */ "", - /* bytes */ util.emptyArray, - /* message */ null -]); - -/** - * Basic long type wire types. - * @type {Object.} - * @const - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - */ -types.long = bake([ - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1 -], 7); - -/** - * Allowed types for map keys with their associated wire type. - * @type {Object.} - * @const - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - * @property {number} string=2 Ldelim wire type - */ -types.mapKey = bake([ - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0, - /* string */ 2 -], 2); - -/** - * Allowed types for packed repeated fields with their associated wire type. - * @type {Object.} - * @const - * @property {number} double=1 Fixed64 wire type - * @property {number} float=5 Fixed32 wire type - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - */ -types.packed = bake([ - /* double */ 1, - /* float */ 5, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0 -]); - -},{"37":37}],37:[function(require,module,exports){ -"use strict"; - -/** - * Various utility functions. - * @namespace - */ -var util = module.exports = require(39); - -var roots = require(30); - -var Type, // cyclic - Enum; - -util.codegen = require(3); -util.fetch = require(5); -util.path = require(8); - -/** - * Node's fs module if available. - * @type {Object.} - */ -util.fs = util.inquire("fs"); - -/** - * Converts an object's values to an array. - * @param {Object.} object Object to convert - * @returns {Array.<*>} Converted array - */ -util.toArray = function toArray(object) { - if (object) { - var keys = Object.keys(object), - array = new Array(keys.length), - index = 0; - while (index < keys.length) - array[index] = object[keys[index++]]; - return array; - } - return []; -}; - -/** - * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values. - * @param {Array.<*>} array Array to convert - * @returns {Object.} Converted object - */ -util.toObject = function toObject(array) { - var object = {}, - index = 0; - while (index < array.length) { - var key = array[index++], - val = array[index++]; - if (val !== undefined) - object[key] = val; - } - return object; -}; - -var safePropBackslashRe = /\\/g, - safePropQuoteRe = /"/g; - -/** - * Tests whether the specified name is a reserved word in JS. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -util.isReserved = function isReserved(name) { - return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name); -}; - -/** - * Returns a safe property accessor for the specified property name. - * @param {string} prop Property name - * @returns {string} Safe accessor - */ -util.safeProp = function safeProp(prop) { - if (!/^[$\w_]+$/.test(prop) || util.isReserved(prop)) - return "[\"" + prop.replace(safePropBackslashRe, "\\\\").replace(safePropQuoteRe, "\\\"") + "\"]"; - return "." + prop; -}; - -/** - * Converts the first character of a string to upper case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.ucFirst = function ucFirst(str) { - return str.charAt(0).toUpperCase() + str.substring(1); -}; - -var camelCaseRe = /_([a-z])/g; - -/** - * Converts a string to camel case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.camelCase = function camelCase(str) { - return str.substring(0, 1) - + str.substring(1) - .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); }); -}; - -/** - * Compares reflected fields by id. - * @param {Field} a First field - * @param {Field} b Second field - * @returns {number} Comparison value - */ -util.compareFieldsById = function compareFieldsById(a, b) { - return a.id - b.id; -}; - -/** - * Decorator helper for types (TypeScript). - * @param {Constructor} ctor Constructor function - * @param {string} [typeName] Type name, defaults to the constructor's name - * @returns {Type} Reflected type - * @template T extends Message - * @property {Root} root Decorators root - */ -util.decorateType = function decorateType(ctor, typeName) { - - /* istanbul ignore if */ - if (ctor.$type) { - if (typeName && ctor.$type.name !== typeName) { - util.decorateRoot.remove(ctor.$type); - ctor.$type.name = typeName; - util.decorateRoot.add(ctor.$type); - } - return ctor.$type; - } - - /* istanbul ignore next */ - if (!Type) - Type = require(35); - - var type = new Type(typeName || ctor.name); - util.decorateRoot.add(type); - type.ctor = ctor; // sets up .encode, .decode etc. - Object.defineProperty(ctor, "$type", { value: type, enumerable: false }); - Object.defineProperty(ctor.prototype, "$type", { value: type, enumerable: false }); - return type; -}; - -var decorateEnumIndex = 0; - -/** - * Decorator helper for enums (TypeScript). - * @param {Object} object Enum object - * @returns {Enum} Reflected enum - */ -util.decorateEnum = function decorateEnum(object) { - - /* istanbul ignore if */ - if (object.$type) - return object.$type; - - /* istanbul ignore next */ - if (!Enum) - Enum = require(15); - - var enm = new Enum("Enum" + decorateEnumIndex++, object); - util.decorateRoot.add(enm); - Object.defineProperty(object, "$type", { value: enm, enumerable: false }); - return enm; -}; - -/** - * Decorator root (TypeScript). - * @name util.decorateRoot - * @type {Root} - * @readonly - */ -Object.defineProperty(util, "decorateRoot", { - get: function() { - return roots["decorated"] || (roots["decorated"] = new (require(29))()); - } -}); - -},{"15":15,"29":29,"3":3,"30":30,"35":35,"39":39,"5":5,"8":8}],38:[function(require,module,exports){ -"use strict"; -module.exports = LongBits; - -var util = require(39); - -/** - * Constructs new long bits. - * @classdesc Helper class for working with the low and high bits of a 64 bit value. - * @memberof util - * @constructor - * @param {number} lo Low 32 bits, unsigned - * @param {number} hi High 32 bits, unsigned - */ -function LongBits(lo, hi) { - - // note that the casts below are theoretically unnecessary as of today, but older statically - // generated converter code might still call the ctor with signed 32bits. kept for compat. - - /** - * Low bits. - * @type {number} - */ - this.lo = lo >>> 0; - - /** - * High bits. - * @type {number} - */ - this.hi = hi >>> 0; -} - -/** - * Zero bits. - * @memberof util.LongBits - * @type {util.LongBits} - */ -var zero = LongBits.zero = new LongBits(0, 0); - -zero.toNumber = function() { return 0; }; -zero.zzEncode = zero.zzDecode = function() { return this; }; -zero.length = function() { return 1; }; - -/** - * Zero hash. - * @memberof util.LongBits - * @type {string} - */ -var zeroHash = LongBits.zeroHash = "\0\0\0\0\0\0\0\0"; - -/** - * Constructs new long bits from the specified number. - * @param {number} value Value - * @returns {util.LongBits} Instance - */ -LongBits.fromNumber = function fromNumber(value) { - if (value === 0) - return zero; - var sign = value < 0; - if (sign) - value = -value; - var lo = value >>> 0, - hi = (value - lo) / 4294967296 >>> 0; - if (sign) { - hi = ~hi >>> 0; - lo = ~lo >>> 0; - if (++lo > 4294967295) { - lo = 0; - if (++hi > 4294967295) - hi = 0; - } - } - return new LongBits(lo, hi); -}; - -/** - * Constructs new long bits from a number, long or string. - * @param {Long|number|string} value Value - * @returns {util.LongBits} Instance - */ -LongBits.from = function from(value) { - if (typeof value === "number") - return LongBits.fromNumber(value); - if (util.isString(value)) { - /* istanbul ignore else */ - if (util.Long) - value = util.Long.fromString(value); - else - return LongBits.fromNumber(parseInt(value, 10)); - } - return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero; -}; - -/** - * Converts this long bits to a possibly unsafe JavaScript number. - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {number} Possibly unsafe number - */ -LongBits.prototype.toNumber = function toNumber(unsigned) { - if (!unsigned && this.hi >>> 31) { - var lo = ~this.lo + 1 >>> 0, - hi = ~this.hi >>> 0; - if (!lo) - hi = hi + 1 >>> 0; - return -(lo + hi * 4294967296); - } - return this.lo + this.hi * 4294967296; -}; - -/** - * Converts this long bits to a long. - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {Long} Long - */ -LongBits.prototype.toLong = function toLong(unsigned) { - return util.Long - ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned)) - /* istanbul ignore next */ - : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) }; -}; - -var charCodeAt = String.prototype.charCodeAt; - -/** - * Constructs new long bits from the specified 8 characters long hash. - * @param {string} hash Hash - * @returns {util.LongBits} Bits - */ -LongBits.fromHash = function fromHash(hash) { - if (hash === zeroHash) - return zero; - return new LongBits( - ( charCodeAt.call(hash, 0) - | charCodeAt.call(hash, 1) << 8 - | charCodeAt.call(hash, 2) << 16 - | charCodeAt.call(hash, 3) << 24) >>> 0 - , - ( charCodeAt.call(hash, 4) - | charCodeAt.call(hash, 5) << 8 - | charCodeAt.call(hash, 6) << 16 - | charCodeAt.call(hash, 7) << 24) >>> 0 - ); -}; - -/** - * Converts this long bits to a 8 characters long hash. - * @returns {string} Hash - */ -LongBits.prototype.toHash = function toHash() { - return String.fromCharCode( - this.lo & 255, - this.lo >>> 8 & 255, - this.lo >>> 16 & 255, - this.lo >>> 24 , - this.hi & 255, - this.hi >>> 8 & 255, - this.hi >>> 16 & 255, - this.hi >>> 24 - ); -}; - -/** - * Zig-zag encodes this long bits. - * @returns {util.LongBits} `this` - */ -LongBits.prototype.zzEncode = function zzEncode() { - var mask = this.hi >> 31; - this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0; - this.lo = ( this.lo << 1 ^ mask) >>> 0; - return this; -}; - -/** - * Zig-zag decodes this long bits. - * @returns {util.LongBits} `this` - */ -LongBits.prototype.zzDecode = function zzDecode() { - var mask = -(this.lo & 1); - this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0; - this.hi = ( this.hi >>> 1 ^ mask) >>> 0; - return this; -}; - -/** - * Calculates the length of this longbits when encoded as a varint. - * @returns {number} Length - */ -LongBits.prototype.length = function length() { - var part0 = this.lo, - part1 = (this.lo >>> 28 | this.hi << 4) >>> 0, - part2 = this.hi >>> 24; - return part2 === 0 - ? part1 === 0 - ? part0 < 16384 - ? part0 < 128 ? 1 : 2 - : part0 < 2097152 ? 3 : 4 - : part1 < 16384 - ? part1 < 128 ? 5 : 6 - : part1 < 2097152 ? 7 : 8 - : part2 < 128 ? 9 : 10; -}; - -},{"39":39}],39:[function(require,module,exports){ -"use strict"; -var util = exports; - -// used to return a Promise where callback is omitted -util.asPromise = require(1); - -// converts to / from base64 encoded strings -util.base64 = require(2); - -// base class of rpc.Service -util.EventEmitter = require(4); - -// float handling accross browsers -util.float = require(6); - -// requires modules optionally and hides the call from bundlers -util.inquire = require(7); - -// converts to / from utf8 encoded strings -util.utf8 = require(10); - -// provides a node-like buffer pool in the browser -util.pool = require(9); - -// utility to work with the low and high bits of a 64 bit value -util.LongBits = require(38); - -// global object reference -util.global = typeof window !== "undefined" && window - || typeof global !== "undefined" && global - || typeof self !== "undefined" && self - || this; // eslint-disable-line no-invalid-this - -/** - * An immuable empty array. - * @memberof util - * @type {Array.<*>} - * @const - */ -util.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes - -/** - * An immutable empty object. - * @type {Object} - * @const - */ -util.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes - -/** - * Whether running within node or not. - * @memberof util - * @type {boolean} - * @const - */ -util.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node); - -/** - * Tests if the specified value is an integer. - * @function - * @param {*} value Value to test - * @returns {boolean} `true` if the value is an integer - */ -util.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) { - return typeof value === "number" && isFinite(value) && Math.floor(value) === value; -}; - -/** - * Tests if the specified value is a string. - * @param {*} value Value to test - * @returns {boolean} `true` if the value is a string - */ -util.isString = function isString(value) { - return typeof value === "string" || value instanceof String; -}; - -/** - * Tests if the specified value is a non-null object. - * @param {*} value Value to test - * @returns {boolean} `true` if the value is a non-null object - */ -util.isObject = function isObject(value) { - return value && typeof value === "object"; -}; - -/** - * Checks if a property on a message is considered to be present. - * This is an alias of {@link util.isSet}. - * @function - * @param {Object} obj Plain object or message instance - * @param {string} prop Property name - * @returns {boolean} `true` if considered to be present, otherwise `false` - */ -util.isset = - -/** - * Checks if a property on a message is considered to be present. - * @param {Object} obj Plain object or message instance - * @param {string} prop Property name - * @returns {boolean} `true` if considered to be present, otherwise `false` - */ -util.isSet = function isSet(obj, prop) { - var value = obj[prop]; - if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins - return typeof value !== "object" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0; - return false; -}; - -/** - * Any compatible Buffer instance. - * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings. - * @interface Buffer - * @extends Uint8Array - */ - -/** - * Node's Buffer class if available. - * @type {Constructor} - */ -util.Buffer = (function() { - try { - var Buffer = util.inquire("buffer").Buffer; - // refuse to use non-node buffers if not explicitly assigned (perf reasons): - return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null; - } catch (e) { - /* istanbul ignore next */ - return null; - } -})(); - -// Internal alias of or polyfull for Buffer.from. -util._Buffer_from = null; - -// Internal alias of or polyfill for Buffer.allocUnsafe. -util._Buffer_allocUnsafe = null; - -/** - * Creates a new buffer of whatever type supported by the environment. - * @param {number|number[]} [sizeOrArray=0] Buffer size or number array - * @returns {Uint8Array|Buffer} Buffer - */ -util.newBuffer = function newBuffer(sizeOrArray) { - /* istanbul ignore next */ - return typeof sizeOrArray === "number" - ? util.Buffer - ? util._Buffer_allocUnsafe(sizeOrArray) - : new util.Array(sizeOrArray) - : util.Buffer - ? util._Buffer_from(sizeOrArray) - : typeof Uint8Array === "undefined" - ? sizeOrArray - : new Uint8Array(sizeOrArray); -}; - -/** - * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`. - * @type {Constructor} - */ -util.Array = typeof Uint8Array !== "undefined" ? Uint8Array /* istanbul ignore next */ : Array; - -/** - * Long.js's Long class if available. - * @type {Constructor} - */ -util.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long - || /* istanbul ignore next */ util.global.Long - || util.inquire("long"); - -/** - * Regular expression used to verify 2 bit (`bool`) map keys. - * @type {RegExp} - * @const - */ -util.key2Re = /^true|false|0|1$/; - -/** - * Regular expression used to verify 32 bit (`int32` etc.) map keys. - * @type {RegExp} - * @const - */ -util.key32Re = /^-?(?:0|[1-9][0-9]*)$/; - -/** - * Regular expression used to verify 64 bit (`int64` etc.) map keys. - * @type {RegExp} - * @const - */ -util.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/; - -/** - * Converts a number or long to an 8 characters long hash string. - * @param {Long|number} value Value to convert - * @returns {string} Hash - */ -util.longToHash = function longToHash(value) { - return value - ? util.LongBits.from(value).toHash() - : util.LongBits.zeroHash; -}; - -/** - * Converts an 8 characters long hash string to a long or number. - * @param {string} hash Hash - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {Long|number} Original value - */ -util.longFromHash = function longFromHash(hash, unsigned) { - var bits = util.LongBits.fromHash(hash); - if (util.Long) - return util.Long.fromBits(bits.lo, bits.hi, unsigned); - return bits.toNumber(Boolean(unsigned)); -}; - -/** - * Merges the properties of the source object into the destination object. - * @memberof util - * @param {Object.} dst Destination object - * @param {Object.} src Source object - * @param {boolean} [ifNotSet=false] Merges only if the key is not already set - * @returns {Object.} Destination object - */ -function merge(dst, src, ifNotSet) { // used by converters - for (var keys = Object.keys(src), i = 0; i < keys.length; ++i) - if (dst[keys[i]] === undefined || !ifNotSet) - dst[keys[i]] = src[keys[i]]; - return dst; -} - -util.merge = merge; - -/** - * Converts the first character of a string to lower case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.lcFirst = function lcFirst(str) { - return str.charAt(0).toLowerCase() + str.substring(1); -}; - -/** - * Creates a custom error constructor. - * @memberof util - * @param {string} name Error name - * @returns {Constructor} Custom error constructor - */ -function newError(name) { - - function CustomError(message, properties) { - - if (!(this instanceof CustomError)) - return new CustomError(message, properties); - - // Error.call(this, message); - // ^ just returns a new error instance because the ctor can be called as a function - - Object.defineProperty(this, "message", { get: function() { return message; } }); - - /* istanbul ignore next */ - if (Error.captureStackTrace) // node - Error.captureStackTrace(this, CustomError); - else - Object.defineProperty(this, "stack", { value: (new Error()).stack || "" }); - - if (properties) - merge(this, properties); - } - - (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError; - - Object.defineProperty(CustomError.prototype, "name", { get: function() { return name; } }); - - CustomError.prototype.toString = function toString() { - return this.name + ": " + this.message; - }; - - return CustomError; -} - -util.newError = newError; - -/** - * Constructs a new protocol error. - * @classdesc Error subclass indicating a protocol specifc error. - * @memberof util - * @extends Error - * @template T extends Message - * @constructor - * @param {string} message Error message - * @param {Object.} [properties] Additional properties - * @example - * try { - * MyMessage.decode(someBuffer); // throws if required fields are missing - * } catch (e) { - * if (e instanceof ProtocolError && e.instance) - * console.log("decoded so far: " + JSON.stringify(e.instance)); - * } - */ -util.ProtocolError = newError("ProtocolError"); - -/** - * So far decoded message instance. - * @name util.ProtocolError#instance - * @type {Message} - */ - -/** - * A OneOf getter as returned by {@link util.oneOfGetter}. - * @typedef OneOfGetter - * @type {function} - * @returns {string|undefined} Set field name, if any - */ - -/** - * Builds a getter for a oneof's present field name. - * @param {string[]} fieldNames Field names - * @returns {OneOfGetter} Unbound getter - */ -util.oneOfGetter = function getOneOf(fieldNames) { - var fieldMap = {}; - for (var i = 0; i < fieldNames.length; ++i) - fieldMap[fieldNames[i]] = 1; - - /** - * @returns {string|undefined} Set field name, if any - * @this Object - * @ignore - */ - return function() { // eslint-disable-line consistent-return - for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i) - if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null) - return keys[i]; - }; -}; - -/** - * A OneOf setter as returned by {@link util.oneOfSetter}. - * @typedef OneOfSetter - * @type {function} - * @param {string|undefined} value Field name - * @returns {undefined} - */ - -/** - * Builds a setter for a oneof's present field name. - * @param {string[]} fieldNames Field names - * @returns {OneOfSetter} Unbound setter - */ -util.oneOfSetter = function setOneOf(fieldNames) { - - /** - * @param {string} name Field name - * @returns {undefined} - * @this Object - * @ignore - */ - return function(name) { - for (var i = 0; i < fieldNames.length; ++i) - if (fieldNames[i] !== name) - delete this[fieldNames[i]]; - }; -}; - -/** - * Default conversion options used for {@link Message#toJSON} implementations. - * - * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely: - * - * - Longs become strings - * - Enums become string keys - * - Bytes become base64 encoded strings - * - (Sub-)Messages become plain objects - * - Maps become plain objects with all string keys - * - Repeated fields become arrays - * - NaN and Infinity for float and double fields become strings - * - * @type {IConversionOptions} - * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json - */ -util.toJSONOptions = { - longs: String, - enums: String, - bytes: String, - json: true -}; - -// Sets up buffer utility according to the environment (called in index-minimal) -util._configure = function() { - var Buffer = util.Buffer; - /* istanbul ignore if */ - if (!Buffer) { - util._Buffer_from = util._Buffer_allocUnsafe = null; - return; - } - // because node 4.x buffers are incompatible & immutable - // see: https://github.com/dcodeIO/protobuf.js/pull/665 - util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from || - /* istanbul ignore next */ - function Buffer_from(value, encoding) { - return new Buffer(value, encoding); - }; - util._Buffer_allocUnsafe = Buffer.allocUnsafe || - /* istanbul ignore next */ - function Buffer_allocUnsafe(size) { - return new Buffer(size); - }; -}; - -},{"1":1,"10":10,"2":2,"38":38,"4":4,"6":6,"7":7,"9":9}],40:[function(require,module,exports){ -"use strict"; -module.exports = verifier; - -var Enum = require(15), - util = require(37); - -function invalid(field, expected) { - return field.name + ": " + expected + (field.repeated && expected !== "array" ? "[]" : field.map && expected !== "object" ? "{k:"+field.keyType+"}" : "") + " expected"; -} - -/** - * Generates a partial value verifier. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {number} fieldIndex Field index - * @param {string} ref Variable reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genVerifyValue(gen, field, fieldIndex, ref) { - /* eslint-disable no-unexpected-multiline */ - if (field.resolvedType) { - if (field.resolvedType instanceof Enum) { gen - ("switch(%s){", ref) - ("default:") - ("return%j", invalid(field, "enum value")); - for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen - ("case %i:", field.resolvedType.values[keys[j]]); - gen - ("break") - ("}"); - } else { - gen - ("{") - ("var e=types[%i].verify(%s);", fieldIndex, ref) - ("if(e)") - ("return%j+e", field.name + ".") - ("}"); - } - } else { - switch (field.type) { - case "int32": - case "uint32": - case "sint32": - case "fixed32": - case "sfixed32": gen - ("if(!util.isInteger(%s))", ref) - ("return%j", invalid(field, "integer")); - break; - case "int64": - case "uint64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))", ref, ref, ref, ref) - ("return%j", invalid(field, "integer|Long")); - break; - case "float": - case "double": gen - ("if(typeof %s!==\"number\")", ref) - ("return%j", invalid(field, "number")); - break; - case "bool": gen - ("if(typeof %s!==\"boolean\")", ref) - ("return%j", invalid(field, "boolean")); - break; - case "string": gen - ("if(!util.isString(%s))", ref) - ("return%j", invalid(field, "string")); - break; - case "bytes": gen - ("if(!(%s&&typeof %s.length===\"number\"||util.isString(%s)))", ref, ref, ref) - ("return%j", invalid(field, "buffer")); - break; - } - } - return gen; - /* eslint-enable no-unexpected-multiline */ -} - -/** - * Generates a partial key verifier. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {string} ref Variable reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genVerifyKey(gen, field, ref) { - /* eslint-disable no-unexpected-multiline */ - switch (field.keyType) { - case "int32": - case "uint32": - case "sint32": - case "fixed32": - case "sfixed32": gen - ("if(!util.key32Re.test(%s))", ref) - ("return%j", invalid(field, "integer key")); - break; - case "int64": - case "uint64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(!util.key64Re.test(%s))", ref) // see comment above: x is ok, d is not - ("return%j", invalid(field, "integer|Long key")); - break; - case "bool": gen - ("if(!util.key2Re.test(%s))", ref) - ("return%j", invalid(field, "boolean key")); - break; - } - return gen; - /* eslint-enable no-unexpected-multiline */ -} - -/** - * Generates a verifier specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -function verifier(mtype) { - /* eslint-disable no-unexpected-multiline */ - - var gen = util.codegen(["m"], mtype.name + "$verify") - ("if(typeof m!==\"object\"||m===null)") - ("return%j", "object expected"); - var oneofs = mtype.oneofsArray, - seenFirstField = {}; - if (oneofs.length) gen - ("var p={}"); - - for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) { - var field = mtype._fieldsArray[i].resolve(), - ref = "m" + util.safeProp(field.name); - - if (field.optional) gen - ("if(%s!=null&&m.hasOwnProperty(%j)){", ref, field.name); // !== undefined && !== null - - // map fields - if (field.map) { gen - ("if(!util.isObject(%s))", ref) - ("return%j", invalid(field, "object")) - ("var k=Object.keys(%s)", ref) - ("for(var i=0;i} - * @const - */ -var wrappers = exports; - -var Message = require(21); - -/** - * From object converter part of an {@link IWrapper}. - * @typedef WrapperFromObjectConverter - * @type {function} - * @param {Object.} object Plain object - * @returns {Message<{}>} Message instance - * @this Type - */ - -/** - * To object converter part of an {@link IWrapper}. - * @typedef WrapperToObjectConverter - * @type {function} - * @param {Message<{}>} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - * @this Type - */ - -/** - * Common type wrapper part of {@link wrappers}. - * @interface IWrapper - * @property {WrapperFromObjectConverter} [fromObject] From object converter - * @property {WrapperToObjectConverter} [toObject] To object converter - */ - -// Custom wrapper for Any -wrappers[".google.protobuf.Any"] = { - - fromObject: function(object) { - - // unwrap value type if mapped - if (object && object["@type"]) { - var type = this.lookup(object["@type"]); - /* istanbul ignore else */ - if (type) { - // type_url does not accept leading "." - var type_url = object["@type"].charAt(0) === "." ? - object["@type"].substr(1) : object["@type"]; - // type_url prefix is optional, but path seperator is required - return this.create({ - type_url: "/" + type_url, - value: type.encode(type.fromObject(object)).finish() - }); - } - } - - return this.fromObject(object); - }, - - toObject: function(message, options) { - - // decode value if requested and unmapped - if (options && options.json && message.type_url && message.value) { - // Only use fully qualified type name after the last '/' - var name = message.type_url.substring(message.type_url.lastIndexOf("/") + 1); - var type = this.lookup(name); - /* istanbul ignore else */ - if (type) - message = type.decode(message.value); - } - - // wrap value if unmapped - if (!(message instanceof this.ctor) && message instanceof Message) { - var object = message.$type.toObject(message, options); - object["@type"] = message.$type.fullName; - return object; - } - - return this.toObject(message, options); - } -}; - -},{"21":21}],42:[function(require,module,exports){ -"use strict"; -module.exports = Writer; - -var util = require(39); - -var BufferWriter; // cyclic - -var LongBits = util.LongBits, - base64 = util.base64, - utf8 = util.utf8; - -/** - * Constructs a new writer operation instance. - * @classdesc Scheduled writer operation. - * @constructor - * @param {function(*, Uint8Array, number)} fn Function to call - * @param {number} len Value byte length - * @param {*} val Value to write - * @ignore - */ -function Op(fn, len, val) { - - /** - * Function to call. - * @type {function(Uint8Array, number, *)} - */ - this.fn = fn; - - /** - * Value byte length. - * @type {number} - */ - this.len = len; - - /** - * Next operation. - * @type {Writer.Op|undefined} - */ - this.next = undefined; - - /** - * Value to write. - * @type {*} - */ - this.val = val; // type varies -} - -/* istanbul ignore next */ -function noop() {} // eslint-disable-line no-empty-function - -/** - * Constructs a new writer state instance. - * @classdesc Copied writer state. - * @memberof Writer - * @constructor - * @param {Writer} writer Writer to copy state from - * @ignore - */ -function State(writer) { - - /** - * Current head. - * @type {Writer.Op} - */ - this.head = writer.head; - - /** - * Current tail. - * @type {Writer.Op} - */ - this.tail = writer.tail; - - /** - * Current buffer length. - * @type {number} - */ - this.len = writer.len; - - /** - * Next state. - * @type {State|null} - */ - this.next = writer.states; -} - -/** - * Constructs a new writer instance. - * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`. - * @constructor - */ -function Writer() { - - /** - * Current length. - * @type {number} - */ - this.len = 0; - - /** - * Operations head. - * @type {Object} - */ - this.head = new Op(noop, 0, 0); - - /** - * Operations tail - * @type {Object} - */ - this.tail = this.head; - - /** - * Linked forked states. - * @type {Object|null} - */ - this.states = null; - - // When a value is written, the writer calculates its byte length and puts it into a linked - // list of operations to perform when finish() is called. This both allows us to allocate - // buffers of the exact required size and reduces the amount of work we have to do compared - // to first calculating over objects and then encoding over objects. In our case, the encoding - // part is just a linked list walk calling operations with already prepared values. -} - -/** - * Creates a new writer. - * @function - * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} - */ -Writer.create = util.Buffer - ? function create_buffer_setup() { - return (Writer.create = function create_buffer() { - return new BufferWriter(); - })(); - } - /* istanbul ignore next */ - : function create_array() { - return new Writer(); - }; - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Uint8Array} Buffer - */ -Writer.alloc = function alloc(size) { - return new util.Array(size); -}; - -// Use Uint8Array buffer pool in the browser, just like node does with buffers -/* istanbul ignore else */ -if (util.Array !== Array) - Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray); - -/** - * Pushes a new operation to the queue. - * @param {function(Uint8Array, number, *)} fn Function to call - * @param {number} len Value byte length - * @param {number} val Value to write - * @returns {Writer} `this` - * @private - */ -Writer.prototype._push = function push(fn, len, val) { - this.tail = this.tail.next = new Op(fn, len, val); - this.len += len; - return this; -}; - -function writeByte(val, buf, pos) { - buf[pos] = val & 255; -} - -function writeVarint32(val, buf, pos) { - while (val > 127) { - buf[pos++] = val & 127 | 128; - val >>>= 7; - } - buf[pos] = val; -} - -/** - * Constructs a new varint writer operation instance. - * @classdesc Scheduled varint writer operation. - * @extends Op - * @constructor - * @param {number} len Value byte length - * @param {number} val Value to write - * @ignore - */ -function VarintOp(len, val) { - this.len = len; - this.next = undefined; - this.val = val; -} - -VarintOp.prototype = Object.create(Op.prototype); -VarintOp.prototype.fn = writeVarint32; - -/** - * Writes an unsigned 32 bit value as a varint. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.uint32 = function write_uint32(value) { - // here, the call to this.push has been inlined and a varint specific Op subclass is used. - // uint32 is by far the most frequently used operation and benefits significantly from this. - this.len += (this.tail = this.tail.next = new VarintOp( - (value = value >>> 0) - < 128 ? 1 - : value < 16384 ? 2 - : value < 2097152 ? 3 - : value < 268435456 ? 4 - : 5, - value)).len; - return this; -}; - -/** - * Writes a signed 32 bit value as a varint. - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.int32 = function write_int32(value) { - return value < 0 - ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec - : this.uint32(value); -}; - -/** - * Writes a 32 bit value as a varint, zig-zag encoded. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.sint32 = function write_sint32(value) { - return this.uint32((value << 1 ^ value >> 31) >>> 0); -}; - -function writeVarint64(val, buf, pos) { - while (val.hi) { - buf[pos++] = val.lo & 127 | 128; - val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0; - val.hi >>>= 7; - } - while (val.lo > 127) { - buf[pos++] = val.lo & 127 | 128; - val.lo = val.lo >>> 7; - } - buf[pos++] = val.lo; -} - -/** - * Writes an unsigned 64 bit value as a varint. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.uint64 = function write_uint64(value) { - var bits = LongBits.from(value); - return this._push(writeVarint64, bits.length(), bits); -}; - -/** - * Writes a signed 64 bit value as a varint. - * @function - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.int64 = Writer.prototype.uint64; - -/** - * Writes a signed 64 bit value as a varint, zig-zag encoded. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.sint64 = function write_sint64(value) { - var bits = LongBits.from(value).zzEncode(); - return this._push(writeVarint64, bits.length(), bits); -}; - -/** - * Writes a boolish value as a varint. - * @param {boolean} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.bool = function write_bool(value) { - return this._push(writeByte, 1, value ? 1 : 0); -}; - -function writeFixed32(val, buf, pos) { - buf[pos ] = val & 255; - buf[pos + 1] = val >>> 8 & 255; - buf[pos + 2] = val >>> 16 & 255; - buf[pos + 3] = val >>> 24; -} - -/** - * Writes an unsigned 32 bit value as fixed 32 bits. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.fixed32 = function write_fixed32(value) { - return this._push(writeFixed32, 4, value >>> 0); -}; - -/** - * Writes a signed 32 bit value as fixed 32 bits. - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.sfixed32 = Writer.prototype.fixed32; - -/** - * Writes an unsigned 64 bit value as fixed 64 bits. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.fixed64 = function write_fixed64(value) { - var bits = LongBits.from(value); - return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi); -}; - -/** - * Writes a signed 64 bit value as fixed 64 bits. - * @function - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.sfixed64 = Writer.prototype.fixed64; - -/** - * Writes a float (32 bit). - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.float = function write_float(value) { - return this._push(util.float.writeFloatLE, 4, value); -}; - -/** - * Writes a double (64 bit float). - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.double = function write_double(value) { - return this._push(util.float.writeDoubleLE, 8, value); -}; - -var writeBytes = util.Array.prototype.set - ? function writeBytes_set(val, buf, pos) { - buf.set(val, pos); // also works for plain array values - } - /* istanbul ignore next */ - : function writeBytes_for(val, buf, pos) { - for (var i = 0; i < val.length; ++i) - buf[pos + i] = val[i]; - }; - -/** - * Writes a sequence of bytes. - * @param {Uint8Array|string} value Buffer or base64 encoded string to write - * @returns {Writer} `this` - */ -Writer.prototype.bytes = function write_bytes(value) { - var len = value.length >>> 0; - if (!len) - return this._push(writeByte, 1, 0); - if (util.isString(value)) { - var buf = Writer.alloc(len = base64.length(value)); - base64.decode(value, buf, 0); - value = buf; - } - return this.uint32(len)._push(writeBytes, len, value); -}; - -/** - * Writes a string. - * @param {string} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.string = function write_string(value) { - var len = utf8.length(value); - return len - ? this.uint32(len)._push(utf8.write, len, value) - : this._push(writeByte, 1, 0); -}; - -/** - * Forks this writer's state by pushing it to a stack. - * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state. - * @returns {Writer} `this` - */ -Writer.prototype.fork = function fork() { - this.states = new State(this); - this.head = this.tail = new Op(noop, 0, 0); - this.len = 0; - return this; -}; - -/** - * Resets this instance to the last state. - * @returns {Writer} `this` - */ -Writer.prototype.reset = function reset() { - if (this.states) { - this.head = this.states.head; - this.tail = this.states.tail; - this.len = this.states.len; - this.states = this.states.next; - } else { - this.head = this.tail = new Op(noop, 0, 0); - this.len = 0; - } - return this; -}; - -/** - * Resets to the last state and appends the fork state's current write length as a varint followed by its operations. - * @returns {Writer} `this` - */ -Writer.prototype.ldelim = function ldelim() { - var head = this.head, - tail = this.tail, - len = this.len; - this.reset().uint32(len); - if (len) { - this.tail.next = head.next; // skip noop - this.tail = tail; - this.len += len; - } - return this; -}; - -/** - * Finishes the write operation. - * @returns {Uint8Array} Finished buffer - */ -Writer.prototype.finish = function finish() { - var head = this.head.next, // skip noop - buf = this.constructor.alloc(this.len), - pos = 0; - while (head) { - head.fn(head.val, buf, pos); - pos += head.len; - head = head.next; - } - // this.head = this.tail = null; - return buf; -}; - -Writer._configure = function(BufferWriter_) { - BufferWriter = BufferWriter_; -}; - -},{"39":39}],43:[function(require,module,exports){ -"use strict"; -module.exports = BufferWriter; - -// extends Writer -var Writer = require(42); -(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter; - -var util = require(39); - -var Buffer = util.Buffer; - -/** - * Constructs a new buffer writer instance. - * @classdesc Wire format writer using node buffers. - * @extends Writer - * @constructor - */ -function BufferWriter() { - Writer.call(this); -} - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Buffer} Buffer - */ -BufferWriter.alloc = function alloc_buffer(size) { - return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size); -}; - -var writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === "set" - ? function writeBytesBuffer_set(val, buf, pos) { - buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited) - // also works for plain array values - } - /* istanbul ignore next */ - : function writeBytesBuffer_copy(val, buf, pos) { - if (val.copy) // Buffer values - val.copy(buf, pos, 0, val.length); - else for (var i = 0; i < val.length;) // plain array values - buf[pos++] = val[i++]; - }; - -/** - * @override - */ -BufferWriter.prototype.bytes = function write_bytes_buffer(value) { - if (util.isString(value)) - value = util._Buffer_from(value, "base64"); - var len = value.length >>> 0; - this.uint32(len); - if (len) - this._push(writeBytesBuffer, len, value); - return this; -}; - -function writeStringBuffer(val, buf, pos) { - if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions) - util.utf8.write(val, buf, pos); - else - buf.utf8Write(val, pos); -} - -/** - * @override - */ -BufferWriter.prototype.string = function write_string_buffer(value) { - var len = Buffer.byteLength(value); - this.uint32(len); - if (len) - this._push(writeStringBuffer, len, value); - return this; -}; - - -/** - * Finishes the write operation. - * @name BufferWriter#finish - * @function - * @returns {Buffer} Finished buffer - */ - -},{"39":39,"42":42}]},{},[19]) - -})(); -//# sourceMappingURL=protobuf.js.map diff --git a/gateway/node_modules/@apollo/protobufjs/dist/protobuf.js.map b/gateway/node_modules/@apollo/protobufjs/dist/protobuf.js.map deleted file mode 100644 index 7a9537f..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/protobuf.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["lib/prelude.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/codegen/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/fetch/index.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/inquire/index.js","../node_modules/@protobufjs/path/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/@protobufjs/utf8/index.js","../src/common.js","../src/converter.js","../src/decoder.js","../src/encoder.js","../src/enum.js","../src/field.js","../src/index-light.js","../src/index-minimal.js","../src/index","../src/mapfield.js","../src/message.js","../src/method.js","../src/namespace.js","../src/object.js","../src/oneof.js","../src/parse.js","../src/reader.js","../src/reader_buffer.js","../src/root.js","../src/roots.js","../src/rpc.js","../src/rpc/service.js","../src/service.js","../src/tokenize.js","../src/type.js","../src/types.js","../src/util.js","../src/util/longbits.js","../src/util/minimal.js","../src/verifier.js","../src/wrappers.js","../src/writer.js","../src/writer_buffer.js"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function prelude(modules, cache, entries) {\n\n // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS\n // sources through a conflict-free require shim and is again wrapped within an iife that\n // provides a minification-friendly `undefined` var plus a global \"use strict\" directive\n // so that minification can remove the directives of each module.\n\n function $require(name) {\n var $module = cache[name];\n if (!$module)\n modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports);\n return $module.exports;\n }\n\n var protobuf = $require(entries[0]);\n\n // Expose globally\n protobuf.util.global.protobuf = protobuf;\n\n // Be nice to AMD\n if (typeof define === \"function\" && define.amd)\n define([\"long\"], function(Long) {\n if (Long && Long.isLong) {\n protobuf.util.Long = Long;\n protobuf.configure();\n }\n return protobuf;\n });\n\n // Be nice to CommonJS\n if (typeof module === \"object\" && module && module.exports)\n module.exports = protobuf;\n\n})/* end of prelude */","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n /* istanbul ignore if */\r\n if (typeof functionParams === \"string\") {\r\n functionName = functionParams;\r\n functionParams = undefined;\r\n }\r\n\r\n var body = [];\r\n\r\n /**\r\n * Appends code to the function's body or finishes generation.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n * @param {...*} [formatParams] Format parameters\r\n * @returns {Codegen|Function} Itself or the generated function if finished\r\n * @throws {Error} If format parameter counts do not match\r\n */\r\n\r\n function Codegen(formatStringOrScope) {\r\n // note that explicit array handling below makes this ~50% faster\r\n\r\n // finish the function\r\n if (typeof formatStringOrScope !== \"string\") {\r\n var source = toString();\r\n if (codegen.verbose)\r\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n source = \"return \" + source;\r\n if (formatStringOrScope) {\r\n var scopeKeys = Object.keys(formatStringOrScope),\r\n scopeParams = new Array(scopeKeys.length + 1),\r\n scopeValues = new Array(scopeKeys.length),\r\n scopeOffset = 0;\r\n while (scopeOffset < scopeKeys.length) {\r\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n }\r\n scopeParams[scopeOffset] = source;\r\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n }\r\n return Function(source)(); // eslint-disable-line no-new-func\r\n }\r\n\r\n // otherwise append to body\r\n var formatParams = new Array(arguments.length - 1),\r\n formatOffset = 0;\r\n while (formatOffset < formatParams.length)\r\n formatParams[formatOffset] = arguments[++formatOffset];\r\n formatOffset = 0;\r\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n var value = formatParams[formatOffset++];\r\n switch ($1) {\r\n case \"d\": case \"f\": return String(Number(value));\r\n case \"i\": return String(Math.floor(value));\r\n case \"j\": return JSON.stringify(value);\r\n case \"s\": return String(value);\r\n }\r\n return \"%\";\r\n });\r\n if (formatOffset !== formatParams.length)\r\n throw Error(\"parameter count mismatch\");\r\n body.push(formatStringOrScope);\r\n return Codegen;\r\n }\r\n\r\n function toString(functionNameOverride) {\r\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\r\n }\r\n\r\n Codegen.toString = toString;\r\n return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @typedef FetchOptions\r\n * @type {Object}\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {FetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n } else if (!options)\r\n options = {};\r\n\r\n if (!callback)\r\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n if (!options.xhr && fs && fs.readFile)\r\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch.xhr(filename, options, callback)\r\n : err\r\n ? callback(err)\r\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n });\r\n\r\n // use the XHR version otherwise.\r\n return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchOptions} [options] Fetch options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n if (xhr.readyState !== 4)\r\n return undefined;\r\n\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n if (xhr.status !== 0 && xhr.status !== 200)\r\n return callback(Error(\"status \" + xhr.status));\r\n\r\n // if binary data is expected, make sure that some sort of array is returned, even if\r\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n if (options.binary) {\r\n var buffer = xhr.response;\r\n if (!buffer) {\r\n buffer = [];\r\n for (var i = 0; i < xhr.responseText.length; ++i)\r\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n }\r\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n }\r\n return callback(null, xhr.responseText);\r\n };\r\n\r\n if (options.binary) {\r\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n if (\"overrideMimeType\" in xhr)\r\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n xhr.responseType = \"arraybuffer\";\r\n }\r\n\r\n xhr.open(\"GET\", filename);\r\n xhr.send();\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0 && parts[i - 1] !== \"..\")\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\nmodule.exports = common;\n\nvar commonRe = /\\/|\\./;\n\n/**\n * Provides common type definitions.\n * Can also be used to provide additional google types or your own custom types.\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\n * @returns {undefined}\n * @property {INamespace} google/protobuf/any.proto Any\n * @property {INamespace} google/protobuf/duration.proto Duration\n * @property {INamespace} google/protobuf/empty.proto Empty\n * @property {INamespace} google/protobuf/field_mask.proto FieldMask\n * @property {INamespace} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\n * @property {INamespace} google/protobuf/timestamp.proto Timestamp\n * @property {INamespace} google/protobuf/wrappers.proto Wrappers\n * @example\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\n * protobuf.common(\"descriptor\", descriptorJson);\n *\n * // manually provides a custom definition (uses my.foo namespace)\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\n */\nfunction common(name, json) {\n if (!commonRe.test(name)) {\n name = \"google/protobuf/\" + name + \".proto\";\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\n }\n common[name] = json;\n}\n\n// Not provided because of limited use (feel free to discuss or to provide yourself):\n//\n// google/protobuf/descriptor.proto\n// google/protobuf/source_context.proto\n// google/protobuf/type.proto\n//\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\n// the repository or package within the google/protobuf directory.\n\ncommon(\"any\", {\n\n /**\n * Properties of a google.protobuf.Any message.\n * @interface IAny\n * @type {Object}\n * @property {string} [typeUrl]\n * @property {Uint8Array} [bytes]\n * @memberof common\n */\n Any: {\n fields: {\n type_url: {\n type: \"string\",\n id: 1\n },\n value: {\n type: \"bytes\",\n id: 2\n }\n }\n }\n});\n\nvar timeType;\n\ncommon(\"duration\", {\n\n /**\n * Properties of a google.protobuf.Duration message.\n * @interface IDuration\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Duration: timeType = {\n fields: {\n seconds: {\n type: \"int64\",\n id: 1\n },\n nanos: {\n type: \"int32\",\n id: 2\n }\n }\n }\n});\n\ncommon(\"timestamp\", {\n\n /**\n * Properties of a google.protobuf.Timestamp message.\n * @interface ITimestamp\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Timestamp: timeType\n});\n\ncommon(\"empty\", {\n\n /**\n * Properties of a google.protobuf.Empty message.\n * @interface IEmpty\n * @memberof common\n */\n Empty: {\n fields: {}\n }\n});\n\ncommon(\"struct\", {\n\n /**\n * Properties of a google.protobuf.Struct message.\n * @interface IStruct\n * @type {Object}\n * @property {Object.} [fields]\n * @memberof common\n */\n Struct: {\n fields: {\n fields: {\n keyType: \"string\",\n type: \"Value\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Value message.\n * @interface IValue\n * @type {Object}\n * @property {string} [kind]\n * @property {0} [nullValue]\n * @property {number} [numberValue]\n * @property {string} [stringValue]\n * @property {boolean} [boolValue]\n * @property {IStruct} [structValue]\n * @property {IListValue} [listValue]\n * @memberof common\n */\n Value: {\n oneofs: {\n kind: {\n oneof: [\n \"nullValue\",\n \"numberValue\",\n \"stringValue\",\n \"boolValue\",\n \"structValue\",\n \"listValue\"\n ]\n }\n },\n fields: {\n nullValue: {\n type: \"NullValue\",\n id: 1\n },\n numberValue: {\n type: \"double\",\n id: 2\n },\n stringValue: {\n type: \"string\",\n id: 3\n },\n boolValue: {\n type: \"bool\",\n id: 4\n },\n structValue: {\n type: \"Struct\",\n id: 5\n },\n listValue: {\n type: \"ListValue\",\n id: 6\n }\n }\n },\n\n NullValue: {\n values: {\n NULL_VALUE: 0\n }\n },\n\n /**\n * Properties of a google.protobuf.ListValue message.\n * @interface IListValue\n * @type {Object}\n * @property {Array.} [values]\n * @memberof common\n */\n ListValue: {\n fields: {\n values: {\n rule: \"repeated\",\n type: \"Value\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"wrappers\", {\n\n /**\n * Properties of a google.protobuf.DoubleValue message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n DoubleValue: {\n fields: {\n value: {\n type: \"double\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.FloatValue message.\n * @interface IFloatValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FloatValue: {\n fields: {\n value: {\n type: \"float\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int64Value message.\n * @interface IInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n Int64Value: {\n fields: {\n value: {\n type: \"int64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt64Value message.\n * @interface IUInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n UInt64Value: {\n fields: {\n value: {\n type: \"uint64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int32Value message.\n * @interface IInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n Int32Value: {\n fields: {\n value: {\n type: \"int32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt32Value message.\n * @interface IUInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n UInt32Value: {\n fields: {\n value: {\n type: \"uint32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BoolValue message.\n * @interface IBoolValue\n * @type {Object}\n * @property {boolean} [value]\n * @memberof common\n */\n BoolValue: {\n fields: {\n value: {\n type: \"bool\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.StringValue message.\n * @interface IStringValue\n * @type {Object}\n * @property {string} [value]\n * @memberof common\n */\n StringValue: {\n fields: {\n value: {\n type: \"string\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BytesValue message.\n * @interface IBytesValue\n * @type {Object}\n * @property {Uint8Array} [value]\n * @memberof common\n */\n BytesValue: {\n fields: {\n value: {\n type: \"bytes\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"field_mask\", {\n\n /**\n * Properties of a google.protobuf.FieldMask message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FieldMask: {\n fields: {\n paths: {\n rule: \"repeated\",\n type: \"string\",\n id: 1\n }\n }\n }\n});\n\n/**\n * Gets the root definition of the specified common proto file.\n *\n * Bundled definitions are:\n * - google/protobuf/any.proto\n * - google/protobuf/duration.proto\n * - google/protobuf/empty.proto\n * - google/protobuf/field_mask.proto\n * - google/protobuf/struct.proto\n * - google/protobuf/timestamp.proto\n * - google/protobuf/wrappers.proto\n *\n * @param {string} file Proto file name\n * @returns {INamespace|null} Root definition or `null` if not defined\n */\ncommon.get = function get(file) {\n return common[file] || null;\n};\n","\"use strict\";\n/**\n * Runtime message from/to plain object converters.\n * @namespace\n */\nvar converter = exports;\n\nvar Enum = require(15),\n util = require(37);\n\n/**\n * Generates a partial value fromObject conveter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop, ref) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (ref === undefined) {\n ref = \"d\" + prop;\n }\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref);\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\n (\"default:\");\n gen\n (\"case%j:\", keys[i])\n (\"case %i:\", values[keys[i]])\n (\"m%s=%j\", prop, values[keys[i]])\n (\"break\");\n } gen\n (\"}\");\n } else gen\n (\"if(typeof %s!==\\\"object\\\")\", ref)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s=types[%i].fromObject(%s)\", prop, fieldIndex, ref);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"m%s=Number(%s)\", prop, ref); // also catches \"NaN\", \"Infinity\"\n break;\n case \"uint32\":\n case \"fixed32\": gen\n (\"m%s=%s>>>0\", prop, ref);\n break;\n case \"int32\":\n case \"sint32\":\n case \"sfixed32\": gen\n (\"m%s=%s|0\", prop, ref);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(util.Long)\")\n (\"(m%s=util.Long.fromValue(%s)).unsigned=%j\", prop, ref, isUnsigned)\n (\"else if(typeof %s===\\\"string\\\")\", ref)\n (\"m%s=parseInt(%s,10)\", prop, ref)\n (\"else if(typeof %s===\\\"number\\\")\", ref)\n (\"m%s=%s\", prop, ref)\n (\"else if(typeof %s===\\\"object\\\")\", ref)\n (\"m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)\", prop, ref, ref, isUnsigned ? \"true\" : \"\");\n break;\n case \"bytes\": gen\n (\"if(typeof %s===\\\"string\\\")\", ref)\n (\"util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)\", ref, prop, ref)\n (\"else if(%s.length)\", ref)\n (\"m%s=%s\", prop, ref);\n break;\n case \"string\": gen\n (\"m%s=String(%s)\", prop, ref);\n break;\n case \"bool\": gen\n (\"m%s=Boolean(%s)\", prop, ref);\n break;\n /* default: gen\n (\"m%s=%s\", prop, ref);\n break; */\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a plain object to runtime message converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.fromObject = function fromObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray;\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\n (\"if(d instanceof this.ctor)\")\n (\"return d\");\n if (!fields.length) return gen\n (\"return new this.ctor\");\n gen\n (\"var m=new this.ctor\");\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n prop = util.safeProp(field.name);\n\n // Map fields\n if (field.map) { gen\n (\"if(d%s){\", prop)\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s={}\", prop)\n (\"for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\n break;\n case \"bytes\": gen\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\n break;\n default: gen\n (\"d%s=m%s\", prop, prop);\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a runtime message to plain object converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.toObject = function toObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\n if (!fields.length)\n return util.codegen()(\"return {}\");\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\n (\"if(!o)\")\n (\"o={}\")\n (\"var d={}\");\n\n var repeatedFields = [],\n mapFields = [],\n normalFields = [],\n i = 0;\n for (; i < fields.length; ++i)\n if (!fields[i].partOf)\n ( fields[i].resolve().repeated ? repeatedFields\n : fields[i].map ? mapFields\n : normalFields).push(fields[i]);\n\n if (repeatedFields.length) { gen\n (\"if(o.arrays||o.defaults){\");\n for (i = 0; i < repeatedFields.length; ++i) gen\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\n gen\n (\"}\");\n }\n\n if (mapFields.length) { gen\n (\"if(o.objects||o.defaults){\");\n for (i = 0; i < mapFields.length; ++i) gen\n (\"d%s={}\", util.safeProp(mapFields[i].name));\n gen\n (\"}\");\n }\n\n if (normalFields.length) { gen\n (\"if(o.defaults){\");\n for (i = 0; i < normalFields.length; ++i) {\n var field = normalFields[i],\n prop = util.safeProp(field.name);\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\n else if (field.long) gen\n (\"if(util.Long){\")\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\n (\"}else\")\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\n else if (field.bytes) {\n var arrayDefault = \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\";\n gen\n (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\n (\"else{\")\n (\"d%s=%s\", prop, arrayDefault)\n (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\n (\"}\");\n } else gen\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\n } gen\n (\"}\");\n }\n var hasKs2 = false;\n for (i = 0; i < fields.length; ++i) {\n var field = fields[i],\n index = mtype._fieldsArray.indexOf(field),\n prop = util.safeProp(field.name);\n if (field.map) {\n if (!hasKs2) { hasKs2 = true; gen\n (\"var ks2\");\n } gen\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\n (\"d%s={}\", prop)\n (\"for(var j=0;j>>3){\");\n\n var i = 0;\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n ref = \"m\" + util.safeProp(field.name); gen\n (\"case %i:\", field.id);\n\n // Map fields\n if (field.map) { gen\n (\"r.skip().pos++\") // assumes id 1 + key wireType\n (\"if(%s===util.emptyObject)\", ref)\n (\"%s={}\", ref)\n (\"k=r.%s()\", field.keyType)\n (\"r.pos++\"); // assumes id 2 + value wireType\n if (types.long[field.keyType] !== undefined) {\n if (types.basic[type] === undefined) gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\n } else {\n if (types.basic[type] === undefined) gen\n (\"%s[k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[k]=r.%s()\", ref, type);\n }\n\n // Repeated fields\n } else if (field.repeated) { gen\n\n (\"if(!(%s&&%s.length))\", ref, ref)\n (\"%s=[]\", ref);\n\n // Packable (always check for forward and backward compatiblity)\n if (types.packed[type] !== undefined) gen\n (\"if((t&7)===2){\")\n (\"var c2=r.uint32()+r.pos\")\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\n}\n\n/**\n * Generates an encoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction encoder(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\n (\"if(!w)\")\n (\"w=Writer.create()\");\n\n var i, ref;\n\n // \"when a message is serialized its known fields should be written sequentially by field number\"\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\n\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n index = mtype._fieldsArray.indexOf(field),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n wireType = types.basic[type];\n ref = \"m\" + util.safeProp(field.name);\n\n // Map fields\n if (field.map) {\n gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j)){\", ref, field.name) // !== undefined && !== null\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\n if (wireType === undefined) gen\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\n else gen\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\n gen\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) {\n var arrayRef = ref;\n if (field.useToArray()) {\n arrayRef = \"array\" + field.id;\n gen(\"var %s\", arrayRef);\n gen(\"if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }\",\n ref, ref, arrayRef, ref, arrayRef, ref);\n }\n gen(\"if(%s!=null&&%s.length){\", arrayRef, arrayRef); // !== undefined && !== null\n // Packed repeated\n if (field.packed && types.packed[type] !== undefined) { gen\n\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\n (\"for(var i=0;i<%s.length;++i)\", arrayRef)\n (\"w.%s(%s[i])\", type, arrayRef)\n (\"w.ldelim()\");\n\n // Non-packed\n } else { gen\n\n (\"for(var i=0;i<%s.length;++i)\", arrayRef);\n if (wireType === undefined)\n genTypePartial(gen, field, index, arrayRef + \"[i]\");\n else gen\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, arrayRef);\n\n } gen\n (\"}\");\n\n // Non-repeated\n } else {\n if (field.optional) gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j))\", ref, field.name); // !== undefined && !== null\n\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref);\n else gen\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n }\n }\n\n return gen\n (\"return w\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n","\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(23),\n util = require(37);\n\n/**\n * Constructs a new enum instance.\n * @classdesc Reflected enum.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {Object.} [values] Enum values as an object, by name\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this enum\n * @param {Object.} [comments] The value comments for this enum\n */\nfunction Enum(name, values, options, comment, comments) {\n ReflectionObject.call(this, name, options);\n\n if (values && typeof values !== \"object\")\n throw TypeError(\"values must be an object\");\n\n /**\n * Enum values by id.\n * @type {Object.}\n */\n this.valuesById = {};\n\n /**\n * Enum values by name.\n * @type {Object.}\n */\n this.values = Object.create(this.valuesById); // toJSON, marker\n\n /**\n * Enum comment text.\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Value comment texts, if any.\n * @type {Object.}\n */\n this.comments = comments || {};\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\n // compatible enum. This is used by pbts to write actual enum definitions that work for\n // static and reflection code alike instead of emitting generic object definitions.\n\n if (values)\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\n if (typeof values[keys[i]] === \"number\") // use forward entries only\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\n}\n\n/**\n * Enum descriptor.\n * @interface IEnum\n * @property {Object.} values Enum values\n * @property {Object.} [options] Enum options\n */\n\n/**\n * Constructs an enum from an enum descriptor.\n * @param {string} name Enum name\n * @param {IEnum} json Enum descriptor\n * @returns {Enum} Created enum\n * @throws {TypeError} If arguments are invalid\n */\nEnum.fromJSON = function fromJSON(name, json) {\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\n enm.reserved = json.reserved;\n return enm;\n};\n\n/**\n * Converts this enum to an enum descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IEnum} Enum descriptor\n */\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"values\" , this.values,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"comment\" , keepComments ? this.comment : undefined,\n \"comments\" , keepComments ? this.comments : undefined\n ]);\n};\n\n/**\n * Adds a value to this enum.\n * @param {string} name Value name\n * @param {number} id Value id\n * @param {string} [comment] Comment, if any\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a value with this name or id\n */\nEnum.prototype.add = function add(name, id, comment) {\n // utilized by the parser but not by .fromJSON\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (!util.isInteger(id))\n throw TypeError(\"id must be an integer\");\n\n if (this.values[name] !== undefined)\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\n\n if (this.isReservedId(id))\n throw Error(\"id \" + id + \" is reserved in \" + this);\n\n if (this.isReservedName(name))\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\n\n if (this.valuesById[id] !== undefined) {\n if (!(this.options && this.options.allow_alias))\n throw Error(\"duplicate id \" + id + \" in \" + this);\n this.values[name] = id;\n } else\n this.valuesById[this.values[name] = id] = name;\n\n this.comments[name] = comment || null;\n return this;\n};\n\n/**\n * Removes a value from this enum\n * @param {string} name Value name\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `name` is not a name of this enum\n */\nEnum.prototype.remove = function remove(name) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n var val = this.values[name];\n if (val == null)\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\n\n delete this.valuesById[val];\n delete this.values[name];\n delete this.comments[name];\n\n return this;\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n","\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum = require(15),\n types = require(36),\n util = require(37);\n\nvar Type; // cyclic\n\nvar ruleRe = /^required|optional|repeated$/;\n\n/**\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\n * @name Field\n * @classdesc Reflected message field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a field from a field descriptor.\n * @param {string} name Field name\n * @param {IField} json Field descriptor\n * @returns {Field} Created field\n * @throws {TypeError} If arguments are invalid\n */\nField.fromJSON = function fromJSON(name, json) {\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n};\n\n/**\n * Not an actual constructor. Use {@link Field} instead.\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports FieldBase\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction Field(name, id, type, rule, extend, options, comment) {\n\n if (util.isObject(rule)) {\n comment = extend;\n options = rule;\n rule = extend = undefined;\n } else if (util.isObject(extend)) {\n comment = options;\n options = extend;\n extend = undefined;\n }\n\n ReflectionObject.call(this, name, options);\n\n if (!util.isInteger(id) || id < 0)\n throw TypeError(\"id must be a non-negative integer\");\n\n if (!util.isString(type))\n throw TypeError(\"type must be a string\");\n\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\n throw TypeError(\"rule must be a string rule\");\n\n if (extend !== undefined && !util.isString(extend))\n throw TypeError(\"extend must be a string\");\n\n /**\n * Field rule, if any.\n * @type {string|undefined}\n */\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\n\n /**\n * Field type.\n * @type {string}\n */\n this.type = type; // toJSON\n\n /**\n * Unique field id.\n * @type {number}\n */\n this.id = id; // toJSON, marker\n\n /**\n * Extended type if different from parent.\n * @type {string|undefined}\n */\n this.extend = extend || undefined; // toJSON\n\n /**\n * Whether this field is required.\n * @type {boolean}\n */\n this.required = rule === \"required\";\n\n /**\n * Whether this field is optional.\n * @type {boolean}\n */\n this.optional = !this.required;\n\n /**\n * Whether this field is repeated.\n * @type {boolean}\n */\n this.repeated = rule === \"repeated\";\n\n /**\n * Whether this field is a map or not.\n * @type {boolean}\n */\n this.map = false;\n\n /**\n * Message this field belongs to.\n * @type {Type|null}\n */\n this.message = null;\n\n /**\n * OneOf this field belongs to, if any,\n * @type {OneOf|null}\n */\n this.partOf = null;\n\n /**\n * The field type's default value.\n * @type {*}\n */\n this.typeDefault = null;\n\n /**\n * The field's default value on prototypes.\n * @type {*}\n */\n this.defaultValue = null;\n\n /**\n * Whether this field's value should be treated as a long.\n * @type {boolean}\n */\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\n\n /**\n * Whether this field's value is a buffer.\n * @type {boolean}\n */\n this.bytes = type === \"bytes\";\n\n /**\n * Resolved type if not a basic type.\n * @type {Type|Enum|null}\n */\n this.resolvedType = null;\n\n /**\n * Sister-field within the extended type if a declaring extension field.\n * @type {Field|null}\n */\n this.extensionField = null;\n\n /**\n * Sister-field within the declaring namespace if an extended field.\n * @type {Field|null}\n */\n this.declaringField = null;\n\n /**\n * Internally remembers whether this field is packed.\n * @type {boolean|null}\n * @private\n */\n this._packed = null;\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n get: function() {\n // defaults to packed=true if not explicity set to false\n if (this._packed === null)\n this._packed = this.getOption(\"packed\") !== false;\n return this._packed;\n }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (name === \"packed\") // clear cached before setting\n this._packed = null;\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\n};\n\n/**\n * Field descriptor.\n * @interface IField\n * @property {string} [rule=\"optional\"] Field rule\n * @property {string} type Field type\n * @property {number} id Field id\n * @property {Object.} [options] Field options\n */\n\n/**\n * Extension field descriptor.\n * @interface IExtensionField\n * @extends IField\n * @property {string} extend Extended type\n */\n\n/**\n * Converts this field to a field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IField} Field descriptor\n */\nField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Resolves this field's type references.\n * @returns {Field} `this`\n * @throws {Error} If any reference cannot be resolved\n */\nField.prototype.resolve = function resolve() {\n\n if (this.resolved)\n return this;\n\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\n if (this.resolvedType instanceof Type)\n this.typeDefault = null;\n else // instanceof Enum\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\n }\n\n // use explicitly set default value if present\n if (this.options && this.options[\"default\"] != null) {\n this.typeDefault = this.options[\"default\"];\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\n this.typeDefault = this.resolvedType.values[this.typeDefault];\n }\n\n // remove unnecessary options\n if (this.options) {\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\n delete this.options.packed;\n if (!Object.keys(this.options).length)\n this.options = undefined;\n }\n\n // convert to internal data type if necesssary\n if (this.long) {\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\n\n /* istanbul ignore else */\n if (Object.freeze)\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\n\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\n var buf;\n if (util.base64.test(this.typeDefault))\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\n else\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\n this.typeDefault = buf;\n }\n\n // take special care of maps and repeated fields\n if (this.map)\n this.defaultValue = util.emptyObject;\n else if (this.repeated)\n this.defaultValue = util.emptyArray;\n else\n this.defaultValue = this.typeDefault;\n\n // ensure proper value on prototype\n if (this.parent instanceof Type)\n this.parent.ctor.prototype[this.name] = this.defaultValue;\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\nField.prototype.useToArray = function useToArray() {\n return !!this.getOption(\"(js_use_toArray)\");\n};\n\n/**\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\n * @typedef FieldDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} fieldName Field name\n * @returns {undefined}\n */\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @param {T} [defaultValue] Default value\n * @returns {FieldDecorator} Decorator function\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\n */\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\n\n // submessage: decorate the submessage and use its name as the type\n if (typeof fieldType === \"function\")\n fieldType = util.decorateType(fieldType).name;\n\n // enum reference: create a reflected copy of the enum and keep reuseing it\n else if (fieldType && typeof fieldType === \"object\")\n fieldType = util.decorateEnum(fieldType).name;\n\n return function fieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\n };\n};\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {Constructor|string} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @returns {FieldDecorator} Decorator function\n * @template T extends Message\n * @variation 2\n */\n// like Field.d but without a default value\n\n// Sets up cyclic dependencies (called in index-light)\nField._configure = function configure(Type_) {\n Type = Type_;\n};\n","\"use strict\";\nvar protobuf = module.exports = require(18);\n\nprotobuf.build = \"light\";\n\n/**\n * A node-style callback as used by {@link load} and {@link Root#load}.\n * @typedef LoadCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Root} [root] Root, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n */\nfunction load(filename, root, callback) {\n if (typeof root === \"function\") {\n callback = root;\n root = new protobuf.Root();\n } else if (!root)\n root = new protobuf.Root();\n return root.load(filename, callback);\n}\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Promise} Promise\n * @see {@link Root#load}\n * @variation 3\n */\n// function load(filename:string, [root:Root]):Promise\n\nprotobuf.load = load;\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n * @see {@link Root#loadSync}\n */\nfunction loadSync(filename, root) {\n if (!root)\n root = new protobuf.Root();\n return root.loadSync(filename);\n}\n\nprotobuf.loadSync = loadSync;\n\n// Serialization\nprotobuf.encoder = require(14);\nprotobuf.decoder = require(13);\nprotobuf.verifier = require(40);\nprotobuf.converter = require(12);\n\n// Reflection\nprotobuf.ReflectionObject = require(24);\nprotobuf.Namespace = require(23);\nprotobuf.Root = require(29);\nprotobuf.Enum = require(15);\nprotobuf.Type = require(35);\nprotobuf.Field = require(16);\nprotobuf.OneOf = require(25);\nprotobuf.MapField = require(20);\nprotobuf.Service = require(33);\nprotobuf.Method = require(22);\n\n// Runtime\nprotobuf.Message = require(21);\nprotobuf.wrappers = require(41);\n\n// Utility\nprotobuf.types = require(36);\nprotobuf.util = require(37);\n\n// Set up possibly cyclic reflection dependencies\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(42);\nprotobuf.BufferWriter = require(43);\nprotobuf.Reader = require(27);\nprotobuf.BufferReader = require(28);\n\n// Utility\nprotobuf.util = require(39);\nprotobuf.rpc = require(31);\nprotobuf.roots = require(30);\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.Reader._configure(protobuf.BufferReader);\n protobuf.util._configure();\n}\n\n// Set up buffer utility according to the environment\nprotobuf.Writer._configure(protobuf.BufferWriter);\nconfigure();\n","\"use strict\";\nvar protobuf = module.exports = require(17);\n\nprotobuf.build = \"full\";\n\n// Parser\nprotobuf.tokenize = require(34);\nprotobuf.parse = require(26);\nprotobuf.common = require(11);\n\n// Configure parser\nprotobuf.Root._configure(protobuf.Type, protobuf.parse, protobuf.common);\n","\"use strict\";\nmodule.exports = MapField;\n\n// extends Field\nvar Field = require(16);\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\n\nvar types = require(36),\n util = require(37);\n\n/**\n * Constructs a new map field instance.\n * @classdesc Reflected map field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} keyType Key type\n * @param {string} type Value type\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction MapField(name, id, keyType, type, options, comment) {\n Field.call(this, name, id, type, undefined, undefined, options, comment);\n\n /* istanbul ignore if */\n if (!util.isString(keyType))\n throw TypeError(\"keyType must be a string\");\n\n /**\n * Key type.\n * @type {string}\n */\n this.keyType = keyType; // toJSON, marker\n\n /**\n * Resolved key type if not a basic type.\n * @type {ReflectionObject|null}\n */\n this.resolvedKeyType = null;\n\n // Overrides Field#map\n this.map = true;\n}\n\n/**\n * Map field descriptor.\n * @interface IMapField\n * @extends {IField}\n * @property {string} keyType Key type\n */\n\n/**\n * Extension map field descriptor.\n * @interface IExtensionMapField\n * @extends IMapField\n * @property {string} extend Extended type\n */\n\n/**\n * Constructs a map field from a map field descriptor.\n * @param {string} name Field name\n * @param {IMapField} json Map field descriptor\n * @returns {MapField} Created map field\n * @throws {TypeError} If arguments are invalid\n */\nMapField.fromJSON = function fromJSON(name, json) {\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\n};\n\n/**\n * Converts this map field to a map field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMapField} Map field descriptor\n */\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"keyType\" , this.keyType,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMapField.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\n if (types.mapKey[this.keyType] === undefined)\n throw Error(\"invalid key type: \" + this.keyType);\n\n return Field.prototype.resolve.call(this);\n};\n\n/**\n * Map field decorator (TypeScript).\n * @name MapField.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\n * @returns {FieldDecorator} Decorator function\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\n */\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\n\n // submessage value: decorate the submessage and use its name as the type\n if (typeof fieldValueType === \"function\")\n fieldValueType = util.decorateType(fieldValueType).name;\n\n // enum reference value: create a reflected copy of the enum and keep reuseing it\n else if (fieldValueType && typeof fieldValueType === \"object\")\n fieldValueType = util.decorateEnum(fieldValueType).name;\n\n return function mapFieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\n };\n};\n","\"use strict\";\nmodule.exports = Message;\n\nvar util = require(39);\n\n/**\n * Constructs a new message instance.\n * @classdesc Abstract runtime message.\n * @constructor\n * @param {Properties} [properties] Properties to set\n * @template T extends object = object\n */\nfunction Message(properties) {\n // not used internally\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n this[keys[i]] = properties[keys[i]];\n}\n\n/**\n * Reference to the reflected type.\n * @name Message.$type\n * @type {Type}\n * @readonly\n */\n\n/**\n * Reference to the reflected type.\n * @name Message#$type\n * @type {Type}\n * @readonly\n */\n\n/*eslint-disable valid-jsdoc*/\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.create = function create(properties) {\n return this.$type.create(properties);\n};\n\n/**\n * Encodes a message of this type.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encode = function encode(message, writer) {\n return this.$type.encode(message, writer);\n};\n\n/**\n * Encodes a message of this type preceeded by its length as a varint.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.$type.encodeDelimited(message, writer);\n};\n\n/**\n * Decodes a message of this type.\n * @name Message.decode\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decode = function decode(reader) {\n return this.$type.decode(reader);\n};\n\n/**\n * Decodes a message of this type preceeded by its length as a varint.\n * @name Message.decodeDelimited\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decodeDelimited = function decodeDelimited(reader) {\n return this.$type.decodeDelimited(reader);\n};\n\n/**\n * Verifies a message of this type.\n * @name Message.verify\n * @function\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\nMessage.verify = function verify(message) {\n return this.$type.verify(message);\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object\n * @returns {T} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.fromObject = function fromObject(object) {\n return this.$type.fromObject(object);\n};\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {T} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @template T extends Message\n * @this Constructor\n */\nMessage.toObject = function toObject(message, options) {\n return this.$type.toObject(message, options);\n};\n\n/**\n * Converts this message to JSON.\n * @returns {Object.} JSON object\n */\nMessage.prototype.toJSON = function toJSON() {\n return this.$type.toObject(this, util.toJSONOptions);\n};\n\n/*eslint-enable valid-jsdoc*/","\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(37);\n\n/**\n * Constructs a new service method instance.\n * @classdesc Reflected service method.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Method name\n * @param {string|undefined} type Method type, usually `\"rpc\"`\n * @param {string} requestType Request message type\n * @param {string} responseType Response message type\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this method\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment) {\n\n /* istanbul ignore next */\n if (util.isObject(requestStream)) {\n options = requestStream;\n requestStream = responseStream = undefined;\n } else if (util.isObject(responseStream)) {\n options = responseStream;\n responseStream = undefined;\n }\n\n /* istanbul ignore if */\n if (!(type === undefined || util.isString(type)))\n throw TypeError(\"type must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(requestType))\n throw TypeError(\"requestType must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(responseType))\n throw TypeError(\"responseType must be a string\");\n\n ReflectionObject.call(this, name, options);\n\n /**\n * Method type.\n * @type {string}\n */\n this.type = type || \"rpc\"; // toJSON\n\n /**\n * Request type.\n * @type {string}\n */\n this.requestType = requestType; // toJSON, marker\n\n /**\n * Whether requests are streamed or not.\n * @type {boolean|undefined}\n */\n this.requestStream = requestStream ? true : undefined; // toJSON\n\n /**\n * Response type.\n * @type {string}\n */\n this.responseType = responseType; // toJSON\n\n /**\n * Whether responses are streamed or not.\n * @type {boolean|undefined}\n */\n this.responseStream = responseStream ? true : undefined; // toJSON\n\n /**\n * Resolved request type.\n * @type {Type|null}\n */\n this.resolvedRequestType = null;\n\n /**\n * Resolved response type.\n * @type {Type|null}\n */\n this.resolvedResponseType = null;\n\n /**\n * Comment for this method\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Method descriptor.\n * @interface IMethod\n * @property {string} [type=\"rpc\"] Method type\n * @property {string} requestType Request type\n * @property {string} responseType Response type\n * @property {boolean} [requestStream=false] Whether requests are streamed\n * @property {boolean} [responseStream=false] Whether responses are streamed\n * @property {Object.} [options] Method options\n */\n\n/**\n * Constructs a method from a method descriptor.\n * @param {string} name Method name\n * @param {IMethod} json Method descriptor\n * @returns {Method} Created method\n * @throws {TypeError} If arguments are invalid\n */\nMethod.fromJSON = function fromJSON(name, json) {\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment);\n};\n\n/**\n * Converts this method to a method descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMethod} Method descriptor\n */\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\n \"requestType\" , this.requestType,\n \"requestStream\" , this.requestStream,\n \"responseType\" , this.responseType,\n \"responseStream\" , this.responseStream,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMethod.prototype.resolve = function resolve() {\n\n /* istanbul ignore if */\n if (this.resolved)\n return this;\n\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n","\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Field = require(16),\n util = require(37);\n\nvar Type, // cyclic\n Service,\n Enum;\n\n/**\n * Constructs a new namespace instance.\n * @name Namespace\n * @classdesc Reflected namespace.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a namespace from JSON.\n * @memberof Namespace\n * @function\n * @param {string} name Namespace name\n * @param {Object.} json JSON object\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json) {\n return new Namespace(name, json.options).addJSON(json.nested);\n};\n\n/**\n * Converts an array of reflection objects to JSON.\n * @memberof Namespace\n * @param {ReflectionObject[]} array Object array\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\n */\nfunction arrayToJSON(array, toJSONOptions) {\n if (!(array && array.length))\n return undefined;\n var obj = {};\n for (var i = 0; i < array.length; ++i)\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\n return obj;\n}\n\nNamespace.arrayToJSON = arrayToJSON;\n\n/**\n * Tests if the specified id is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedId = function isReservedId(reserved, id) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] > id)\n return true;\n return false;\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedName = function isReservedName(reserved, name) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (reserved[i] === name)\n return true;\n return false;\n};\n\n/**\n * Not an actual constructor. Use {@link Namespace} instead.\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports NamespaceBase\n * @extends ReflectionObject\n * @abstract\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n * @see {@link Namespace}\n */\nfunction Namespace(name, options) {\n ReflectionObject.call(this, name, options);\n\n /**\n * Nested objects by name.\n * @type {Object.|undefined}\n */\n this.nested = undefined; // toJSON\n\n /**\n * Cached nested objects as an array.\n * @type {ReflectionObject[]|null}\n * @private\n */\n this._nestedArray = null;\n}\n\nfunction clearCache(namespace) {\n namespace._nestedArray = null;\n return namespace;\n}\n\n/**\n * Nested objects of this namespace as an array for iteration.\n * @name NamespaceBase#nestedArray\n * @type {ReflectionObject[]}\n * @readonly\n */\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\n get: function() {\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\n }\n});\n\n/**\n * Namespace descriptor.\n * @interface INamespace\n * @property {Object.} [options] Namespace options\n * @property {Object.} [nested] Nested object descriptors\n */\n\n/**\n * Any extension field descriptor.\n * @typedef AnyExtensionField\n * @type {IExtensionField|IExtensionMapField}\n */\n\n/**\n * Any nested object descriptor.\n * @typedef AnyNestedObject\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace}\n */\n// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place)\n\n/**\n * Converts this namespace to a namespace descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {INamespace} Namespace descriptor\n */\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\n return util.toObject([\n \"options\" , this.options,\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\n ]);\n};\n\n/**\n * Adds nested objects to this namespace from nested object descriptors.\n * @param {Object.} nestedJson Any nested object descriptors\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\n var ns = this;\n /* istanbul ignore else */\n if (nestedJson) {\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\n nested = nestedJson[names[i]];\n ns.add( // most to least likely\n ( nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : nested.id !== undefined\n ? Field.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n }\n return this;\n};\n\n/**\n * Gets the nested object of the specified name.\n * @param {string} name Nested object name\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\n */\nNamespace.prototype.get = function get(name) {\n return this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Gets the values of the nested {@link Enum|enum} of the specified name.\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\n * @param {string} name Nested enum name\n * @returns {Object.} Enum values\n * @throws {Error} If there is no such enum\n */\nNamespace.prototype.getEnum = function getEnum(name) {\n if (this.nested && this.nested[name] instanceof Enum)\n return this.nested[name].values;\n throw Error(\"no such enum: \" + name);\n};\n\n/**\n * Adds a nested object to this namespace.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name\n */\nNamespace.prototype.add = function add(object) {\n\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\n throw TypeError(\"object must be a valid nested object\");\n\n if (!this.nested)\n this.nested = {};\n else {\n var prev = this.get(object.name);\n if (prev) {\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\n // replace plain namespace but keep existing nested elements and options\n var nested = prev.nestedArray;\n for (var i = 0; i < nested.length; ++i)\n object.add(nested[i]);\n this.remove(prev);\n if (!this.nested)\n this.nested = {};\n object.setOptions(prev.options, true);\n\n } else\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n }\n }\n this.nested[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n};\n\n/**\n * Removes a nested object from this namespace.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this namespace\n */\nNamespace.prototype.remove = function remove(object) {\n\n if (!(object instanceof ReflectionObject))\n throw TypeError(\"object must be a ReflectionObject\");\n if (object.parent !== this)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.nested[object.name];\n if (!Object.keys(this.nested).length)\n this.nested = undefined;\n\n object.onRemove(this);\n return clearCache(this);\n};\n\n/**\n * Defines additial namespaces within this one if not yet existing.\n * @param {string|string[]} path Path to create\n * @param {*} [json] Nested types to create from JSON\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\n */\nNamespace.prototype.define = function define(path, json) {\n\n if (util.isString(path))\n path = path.split(\".\");\n else if (!Array.isArray(path))\n throw TypeError(\"illegal path\");\n if (path && path.length && path[0] === \"\")\n throw Error(\"path must be relative\");\n\n var ptr = this;\n while (path.length > 0) {\n var part = path.shift();\n if (ptr.nested && ptr.nested[part]) {\n ptr = ptr.nested[part];\n if (!(ptr instanceof Namespace))\n throw Error(\"path conflicts with non-namespace objects\");\n } else\n ptr.add(ptr = new Namespace(part));\n }\n if (json)\n ptr.addJSON(json);\n return ptr;\n};\n\n/**\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\n * @returns {Namespace} `this`\n */\nNamespace.prototype.resolveAll = function resolveAll() {\n var nested = this.nestedArray, i = 0;\n while (i < nested.length)\n if (nested[i] instanceof Namespace)\n nested[i++].resolveAll();\n else\n nested[i++].resolve();\n return this.resolve();\n};\n\n/**\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\n * @param {string|string[]} path Path to look up\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n */\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\n\n /* istanbul ignore next */\n if (typeof filterTypes === \"boolean\") {\n parentAlreadyChecked = filterTypes;\n filterTypes = undefined;\n } else if (filterTypes && !Array.isArray(filterTypes))\n filterTypes = [ filterTypes ];\n\n if (util.isString(path) && path.length) {\n if (path === \".\")\n return this.root;\n path = path.split(\".\");\n } else if (!path.length)\n return this;\n\n // Start at root if path is absolute\n if (path[0] === \"\")\n return this.root.lookup(path.slice(1), filterTypes);\n\n // Test if the first part matches any nested object, and if so, traverse if path contains more\n var found = this.get(path[0]);\n if (found) {\n if (path.length === 1) {\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\n return found;\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\n return found;\n\n // Otherwise try each nested namespace\n } else\n for (var i = 0; i < this.nestedArray.length; ++i)\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\n return found;\n\n // If there hasn't been a match, try again at the parent\n if (this.parent === null || parentAlreadyChecked)\n return null;\n return this.parent.lookup(path, filterTypes);\n};\n\n/**\n * Looks up the reflection object at the specified path, relative to this namespace.\n * @name NamespaceBase#lookup\n * @function\n * @param {string|string[]} path Path to look up\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @variation 2\n */\n// lookup(path: string, [parentAlreadyChecked: boolean])\n\n/**\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type\n * @throws {Error} If `path` does not point to a type\n */\nNamespace.prototype.lookupType = function lookupType(path) {\n var found = this.lookup(path, [ Type ]);\n if (!found)\n throw Error(\"no such type: \" + path);\n return found;\n};\n\n/**\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Enum} Looked up enum\n * @throws {Error} If `path` does not point to an enum\n */\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\n var found = this.lookup(path, [ Enum ]);\n if (!found)\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type or enum\n * @throws {Error} If `path` does not point to a type or enum\n */\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\n var found = this.lookup(path, [ Type, Enum ]);\n if (!found)\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Service} Looked up service\n * @throws {Error} If `path` does not point to a service\n */\nNamespace.prototype.lookupService = function lookupService(path) {\n var found = this.lookup(path, [ Service ]);\n if (!found)\n throw Error(\"no such Service '\" + path + \"' in \" + this);\n return found;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nNamespace._configure = function(Type_, Service_, Enum_) {\n Type = Type_;\n Service = Service_;\n Enum = Enum_;\n};\n","\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nvar util = require(37);\n\nvar Root; // cyclic\n\n/**\n * Constructs a new reflection object instance.\n * @classdesc Base class of all reflection objects.\n * @constructor\n * @param {string} name Object name\n * @param {Object.} [options] Declared options\n * @abstract\n */\nfunction ReflectionObject(name, options) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (options && !util.isObject(options))\n throw TypeError(\"options must be an object\");\n\n /**\n * Options.\n * @type {Object.|undefined}\n */\n this.options = options; // toJSON\n\n /**\n * Unique name within its namespace.\n * @type {string}\n */\n this.name = name;\n\n /**\n * Parent namespace.\n * @type {Namespace|null}\n */\n this.parent = null;\n\n /**\n * Whether already resolved or not.\n * @type {boolean}\n */\n this.resolved = false;\n\n /**\n * Comment text, if any.\n * @type {string|null}\n */\n this.comment = null;\n\n /**\n * Defining file name.\n * @type {string|null}\n */\n this.filename = null;\n}\n\nObject.defineProperties(ReflectionObject.prototype, {\n\n /**\n * Reference to the root namespace.\n * @name ReflectionObject#root\n * @type {Root}\n * @readonly\n */\n root: {\n get: function() {\n var ptr = this;\n while (ptr.parent !== null)\n ptr = ptr.parent;\n return ptr;\n }\n },\n\n /**\n * Full name including leading dot.\n * @name ReflectionObject#fullName\n * @type {string}\n * @readonly\n */\n fullName: {\n get: function() {\n var path = [ this.name ],\n ptr = this.parent;\n while (ptr) {\n path.unshift(ptr.name);\n ptr = ptr.parent;\n }\n return path.join(\".\");\n }\n }\n});\n\n/**\n * Converts this reflection object to its descriptor representation.\n * @returns {Object.} Descriptor\n * @abstract\n */\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\n throw Error(); // not implemented, shouldn't happen\n};\n\n/**\n * Called when this object is added to a parent.\n * @param {ReflectionObject} parent Parent added to\n * @returns {undefined}\n */\nReflectionObject.prototype.onAdd = function onAdd(parent) {\n if (this.parent && this.parent !== parent)\n this.parent.remove(this);\n this.parent = parent;\n this.resolved = false;\n var root = parent.root;\n if (root instanceof Root)\n root._handleAdd(this);\n};\n\n/**\n * Called when this object is removed from a parent.\n * @param {ReflectionObject} parent Parent removed from\n * @returns {undefined}\n */\nReflectionObject.prototype.onRemove = function onRemove(parent) {\n var root = parent.root;\n if (root instanceof Root)\n root._handleRemove(this);\n this.parent = null;\n this.resolved = false;\n};\n\n/**\n * Resolves this objects type references.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n if (this.root instanceof Root)\n this.resolved = true; // only if part of a root\n return this;\n};\n\n/**\n * Gets an option value.\n * @param {string} name Option name\n * @returns {*} Option value or `undefined` if not set\n */\nReflectionObject.prototype.getOption = function getOption(name) {\n if (this.options)\n return this.options[name];\n return undefined;\n};\n\n/**\n * Sets an option.\n * @param {string} name Option name\n * @param {*} value Option value\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (!ifNotSet || !this.options || this.options[name] === undefined)\n (this.options || (this.options = {}))[name] = value;\n return this;\n};\n\n/**\n * Sets multiple options.\n * @param {Object.} options Options to set\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\n if (options)\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\n this.setOption(keys[i], options[keys[i]], ifNotSet);\n return this;\n};\n\n/**\n * Converts this instance to its string representation.\n * @returns {string} Class name[, space, full name]\n */\nReflectionObject.prototype.toString = function toString() {\n var className = this.constructor.className,\n fullName = this.fullName;\n if (fullName.length)\n return className + \" \" + fullName;\n return className;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nReflectionObject._configure = function(Root_) {\n Root = Root_;\n};\n","\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(16),\n util = require(37);\n\n/**\n * Constructs a new oneof instance.\n * @classdesc Reflected oneof.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Oneof name\n * @param {string[]|Object.} [fieldNames] Field names\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction OneOf(name, fieldNames, options, comment) {\n if (!Array.isArray(fieldNames)) {\n options = fieldNames;\n fieldNames = undefined;\n }\n ReflectionObject.call(this, name, options);\n\n /* istanbul ignore if */\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\n throw TypeError(\"fieldNames must be an Array\");\n\n /**\n * Field names that belong to this oneof.\n * @type {string[]}\n */\n this.oneof = fieldNames || []; // toJSON, marker\n\n /**\n * Fields that belong to this oneof as an array for iteration.\n * @type {Field[]}\n * @readonly\n */\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Oneof descriptor.\n * @interface IOneOf\n * @property {Array.} oneof Oneof field names\n * @property {Object.} [options] Oneof options\n */\n\n/**\n * Constructs a oneof from a oneof descriptor.\n * @param {string} name Oneof name\n * @param {IOneOf} json Oneof descriptor\n * @returns {OneOf} Created oneof\n * @throws {TypeError} If arguments are invalid\n */\nOneOf.fromJSON = function fromJSON(name, json) {\n return new OneOf(name, json.oneof, json.options, json.comment);\n};\n\n/**\n * Converts this oneof to a oneof descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IOneOf} Oneof descriptor\n */\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"oneof\" , this.oneof,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Adds the fields of the specified oneof to the parent if not already done so.\n * @param {OneOf} oneof The oneof\n * @returns {undefined}\n * @inner\n * @ignore\n */\nfunction addFieldsToParent(oneof) {\n if (oneof.parent)\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\n if (!oneof.fieldsArray[i].parent)\n oneof.parent.add(oneof.fieldsArray[i]);\n}\n\n/**\n * Adds a field to this oneof and removes it from its current parent, if any.\n * @param {Field} field Field to add\n * @returns {OneOf} `this`\n */\nOneOf.prototype.add = function add(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n if (field.parent && field.parent !== this.parent)\n field.parent.remove(field);\n this.oneof.push(field.name);\n this.fieldsArray.push(field);\n field.partOf = this; // field.parent remains null\n addFieldsToParent(this);\n return this;\n};\n\n/**\n * Removes a field from this oneof and puts it back to the oneof's parent.\n * @param {Field} field Field to remove\n * @returns {OneOf} `this`\n */\nOneOf.prototype.remove = function remove(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n var index = this.fieldsArray.indexOf(field);\n\n /* istanbul ignore if */\n if (index < 0)\n throw Error(field + \" is not a member of \" + this);\n\n this.fieldsArray.splice(index, 1);\n index = this.oneof.indexOf(field.name);\n\n /* istanbul ignore else */\n if (index > -1) // theoretical\n this.oneof.splice(index, 1);\n\n field.partOf = null;\n return this;\n};\n\n/**\n * @override\n */\nOneOf.prototype.onAdd = function onAdd(parent) {\n ReflectionObject.prototype.onAdd.call(this, parent);\n var self = this;\n // Collect present fields\n for (var i = 0; i < this.oneof.length; ++i) {\n var field = parent.get(this.oneof[i]);\n if (field && !field.partOf) {\n field.partOf = self;\n self.fieldsArray.push(field);\n }\n }\n // Add not yet present fields\n addFieldsToParent(this);\n};\n\n/**\n * @override\n */\nOneOf.prototype.onRemove = function onRemove(parent) {\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\n if ((field = this.fieldsArray[i]).parent)\n field.parent.remove(field);\n ReflectionObject.prototype.onRemove.call(this, parent);\n};\n\n/**\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\n * @typedef OneOfDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} oneofName OneOf name\n * @returns {undefined}\n */\n\n/**\n * OneOf decorator (TypeScript).\n * @function\n * @param {...string} fieldNames Field names\n * @returns {OneOfDecorator} Decorator function\n * @template T extends string\n */\nOneOf.d = function decorateOneOf() {\n var fieldNames = new Array(arguments.length),\n index = 0;\n while (index < arguments.length)\n fieldNames[index] = arguments[index++];\n return function oneOfDecorator(prototype, oneofName) {\n util.decorateType(prototype.constructor)\n .add(new OneOf(oneofName, fieldNames));\n Object.defineProperty(prototype, oneofName, {\n get: util.oneOfGetter(fieldNames),\n set: util.oneOfSetter(fieldNames)\n });\n };\n};\n","\"use strict\";\nmodule.exports = parse;\n\nparse.filename = null;\nparse.defaults = { keepCase: false };\n\nvar tokenize = require(34),\n Root = require(29),\n Type = require(35),\n Field = require(16),\n MapField = require(20),\n OneOf = require(25),\n Enum = require(15),\n Service = require(33),\n Method = require(22),\n types = require(36),\n util = require(37);\n\nvar base10Re = /^[1-9][0-9]*$/,\n base10NegRe = /^-?[1-9][0-9]*$/,\n base16Re = /^0[x][0-9a-fA-F]+$/,\n base16NegRe = /^-?0[x][0-9a-fA-F]+$/,\n base8Re = /^0[0-7]+$/,\n base8NegRe = /^-?0[0-7]+$/,\n numberRe = /^(?![eE])[0-9]*(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,\n nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/,\n typeRefRe = /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,\n fqTypeRefRe = /^(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;\n\n/**\n * Result object returned from {@link parse}.\n * @interface IParserResult\n * @property {string|undefined} package Package name, if declared\n * @property {string[]|undefined} imports Imports, if any\n * @property {string[]|undefined} weakImports Weak imports, if any\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\n * @property {Root} root Populated root instance\n */\n\n/**\n * Options modifying the behavior of {@link parse}.\n * @interface IParseOptions\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\n * @property {boolean} [alternateCommentMode=false] Recognize double-slash comments in addition to doc-block comments.\n */\n\n/**\n * Options modifying the behavior of JSON serialization.\n * @interface IToJSONOptions\n * @property {boolean} [keepComments=false] Serializes comments.\n */\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @param {string} source Source contents\n * @param {Root} root Root to populate\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n */\nfunction parse(source, root, options) {\n /* eslint-disable callback-return */\n if (!(root instanceof Root)) {\n options = root;\n root = new Root();\n }\n if (!options)\n options = parse.defaults;\n\n var tn = tokenize(source, options.alternateCommentMode || false),\n next = tn.next,\n push = tn.push,\n peek = tn.peek,\n skip = tn.skip,\n cmnt = tn.cmnt;\n\n var head = true,\n pkg,\n imports,\n weakImports,\n syntax,\n isProto3 = false;\n\n var ptr = root;\n\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\n\n /* istanbul ignore next */\n function illegal(token, name, insideTryCatch) {\n var filename = parse.filename;\n if (!insideTryCatch)\n parse.filename = null;\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line + \")\");\n }\n\n function readString() {\n var values = [],\n token;\n do {\n /* istanbul ignore if */\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\n throw illegal(token);\n\n values.push(next());\n skip(token);\n token = peek();\n } while (token === \"\\\"\" || token === \"'\");\n return values.join(\"\");\n }\n\n function readValue(acceptTypeRef) {\n var token = next();\n switch (token) {\n case \"'\":\n case \"\\\"\":\n push(token);\n return readString();\n case \"true\": case \"TRUE\":\n return true;\n case \"false\": case \"FALSE\":\n return false;\n }\n try {\n return parseNumber(token, /* insideTryCatch */ true);\n } catch (e) {\n\n /* istanbul ignore else */\n if (acceptTypeRef && typeRefRe.test(token))\n return token;\n\n /* istanbul ignore next */\n throw illegal(token, \"value\");\n }\n }\n\n function readRanges(target, acceptStrings) {\n var token, start;\n do {\n if (acceptStrings && ((token = peek()) === \"\\\"\" || token === \"'\"))\n target.push(readString());\n else\n target.push([ start = parseId(next()), skip(\"to\", true) ? parseId(next()) : start ]);\n } while (skip(\",\", true));\n skip(\";\");\n }\n\n function parseNumber(token, insideTryCatch) {\n var sign = 1;\n if (token.charAt(0) === \"-\") {\n sign = -1;\n token = token.substring(1);\n }\n switch (token) {\n case \"inf\": case \"INF\": case \"Inf\":\n return sign * Infinity;\n case \"nan\": case \"NAN\": case \"Nan\": case \"NaN\":\n return NaN;\n case \"0\":\n return 0;\n }\n if (base10Re.test(token))\n return sign * parseInt(token, 10);\n if (base16Re.test(token))\n return sign * parseInt(token, 16);\n if (base8Re.test(token))\n return sign * parseInt(token, 8);\n\n /* istanbul ignore else */\n if (numberRe.test(token))\n return sign * parseFloat(token);\n\n /* istanbul ignore next */\n throw illegal(token, \"number\", insideTryCatch);\n }\n\n function parseId(token, acceptNegative) {\n switch (token) {\n case \"max\": case \"MAX\": case \"Max\":\n return 536870911;\n case \"0\":\n return 0;\n }\n\n /* istanbul ignore if */\n if (!acceptNegative && token.charAt(0) === \"-\")\n throw illegal(token, \"id\");\n\n if (base10NegRe.test(token))\n return parseInt(token, 10);\n if (base16NegRe.test(token))\n return parseInt(token, 16);\n\n /* istanbul ignore else */\n if (base8NegRe.test(token))\n return parseInt(token, 8);\n\n /* istanbul ignore next */\n throw illegal(token, \"id\");\n }\n\n function parsePackage() {\n\n /* istanbul ignore if */\n if (pkg !== undefined)\n throw illegal(\"package\");\n\n pkg = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(pkg))\n throw illegal(pkg, \"name\");\n\n ptr = ptr.define(pkg);\n skip(\";\");\n }\n\n function parseImport() {\n var token = peek();\n var whichImports;\n switch (token) {\n case \"weak\":\n whichImports = weakImports || (weakImports = []);\n next();\n break;\n case \"public\":\n next();\n // eslint-disable-line no-fallthrough\n default:\n whichImports = imports || (imports = []);\n break;\n }\n token = readString();\n skip(\";\");\n whichImports.push(token);\n }\n\n function parseSyntax() {\n skip(\"=\");\n syntax = readString();\n isProto3 = syntax === \"proto3\";\n\n /* istanbul ignore if */\n if (!isProto3 && syntax !== \"proto2\")\n throw illegal(syntax, \"syntax\");\n\n skip(\";\");\n }\n\n function parseCommon(parent, token) {\n switch (token) {\n\n case \"option\":\n parseOption(parent, token);\n skip(\";\");\n return true;\n\n case \"message\":\n parseType(parent, token);\n return true;\n\n case \"enum\":\n parseEnum(parent, token);\n return true;\n\n case \"service\":\n parseService(parent, token);\n return true;\n\n case \"extend\":\n parseExtension(parent, token);\n return true;\n }\n return false;\n }\n\n function ifBlock(obj, fnIf, fnElse) {\n var trailingLine = tn.line;\n if (obj) {\n if(typeof obj.comment !== \"string\") {\n obj.comment = cmnt(); // try block-type comment\n }\n obj.filename = parse.filename;\n }\n if (skip(\"{\", true)) {\n var token;\n while ((token = next()) !== \"}\")\n fnIf(token);\n skip(\";\", true);\n } else {\n if (fnElse)\n fnElse();\n skip(\";\");\n if (obj && typeof obj.comment !== \"string\")\n obj.comment = cmnt(trailingLine); // try line-type comment if no block\n }\n }\n\n function parseType(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"type name\");\n\n var type = new Type(token);\n ifBlock(type, function parseType_block(token) {\n if (parseCommon(type, token))\n return;\n\n switch (token) {\n\n case \"map\":\n parseMapField(type, token);\n break;\n\n case \"required\":\n case \"optional\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n case \"oneof\":\n parseOneOf(type, token);\n break;\n\n case \"extensions\":\n readRanges(type.extensions || (type.extensions = []));\n break;\n\n case \"reserved\":\n readRanges(type.reserved || (type.reserved = []), true);\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n\n push(token);\n parseField(type, \"optional\");\n break;\n }\n });\n parent.add(type);\n }\n\n function parseField(parent, rule, extend) {\n var type = next();\n if (type === \"group\") {\n parseGroup(parent, rule);\n return;\n }\n\n /* istanbul ignore if */\n if (!typeRefRe.test(type))\n throw illegal(type, \"type\");\n\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n name = applyCase(name);\n skip(\"=\");\n\n var field = new Field(name, parseId(next()), type, rule, extend);\n ifBlock(field, function parseField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseField_line() {\n parseInlineOptions(field);\n });\n parent.add(field);\n\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\n // parsing proto2 descriptors without the option, where applicable. This must be done for\n // all known packable types and anything that could be an enum (= is not a basic type).\n if (!isProto3 && field.repeated && (types.packed[type] !== undefined || types.basic[type] === undefined))\n field.setOption(\"packed\", false, /* ifNotSet */ true);\n }\n\n function parseGroup(parent, rule) {\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n var fieldName = util.lcFirst(name);\n if (name === fieldName)\n name = util.ucFirst(name);\n skip(\"=\");\n var id = parseId(next());\n var type = new Type(name);\n type.group = true;\n var field = new Field(fieldName, id, name, rule);\n field.filename = parse.filename;\n ifBlock(type, function parseGroup_block(token) {\n switch (token) {\n\n case \"option\":\n parseOption(type, token);\n skip(\";\");\n break;\n\n case \"required\":\n case \"optional\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n /* istanbul ignore next */\n default:\n throw illegal(token); // there are no groups with proto3 semantics\n }\n });\n parent.add(type)\n .add(field);\n }\n\n function parseMapField(parent) {\n skip(\"<\");\n var keyType = next();\n\n /* istanbul ignore if */\n if (types.mapKey[keyType] === undefined)\n throw illegal(keyType, \"type\");\n\n skip(\",\");\n var valueType = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(valueType))\n throw illegal(valueType, \"type\");\n\n skip(\">\");\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n skip(\"=\");\n var field = new MapField(applyCase(name), parseId(next()), keyType, valueType);\n ifBlock(field, function parseMapField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseMapField_line() {\n parseInlineOptions(field);\n });\n parent.add(field);\n }\n\n function parseOneOf(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var oneof = new OneOf(applyCase(token));\n ifBlock(oneof, function parseOneOf_block(token) {\n if (token === \"option\") {\n parseOption(oneof, token);\n skip(\";\");\n } else {\n push(token);\n parseField(oneof, \"optional\");\n }\n });\n parent.add(oneof);\n }\n\n function parseEnum(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var enm = new Enum(token);\n ifBlock(enm, function parseEnum_block(token) {\n switch(token) {\n case \"option\":\n parseOption(enm, token);\n skip(\";\");\n break;\n\n case \"reserved\":\n readRanges(enm.reserved || (enm.reserved = []), true);\n break;\n\n default:\n parseEnumValue(enm, token);\n }\n });\n parent.add(enm);\n }\n\n function parseEnumValue(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token))\n throw illegal(token, \"name\");\n\n skip(\"=\");\n var value = parseId(next(), true),\n dummy = {};\n ifBlock(dummy, function parseEnumValue_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(dummy, token); // skip\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseEnumValue_line() {\n parseInlineOptions(dummy); // skip\n });\n parent.add(token, value, dummy.comment);\n }\n\n function parseOption(parent, token) {\n var isCustom = skip(\"(\", true);\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token;\n if (isCustom) {\n skip(\")\");\n name = \"(\" + name + \")\";\n token = peek();\n if (fqTypeRefRe.test(token)) {\n name += token;\n next();\n }\n }\n skip(\"=\");\n parseOptionValue(parent, name);\n }\n\n function parseOptionValue(parent, name) {\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\n do {\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n if (peek() === \"{\")\n parseOptionValue(parent, name + \".\" + token);\n else {\n skip(\":\");\n if (peek() === \"{\")\n parseOptionValue(parent, name + \".\" + token);\n else\n setOption(parent, name + \".\" + token, readValue(true));\n }\n skip(\",\", true);\n } while (!skip(\"}\", true));\n } else\n setOption(parent, name, readValue(true));\n // Does not enforce a delimiter to be universal\n }\n\n function setOption(parent, name, value) {\n if (parent.setOption)\n parent.setOption(name, value);\n }\n\n function parseInlineOptions(parent) {\n if (skip(\"[\", true)) {\n do {\n parseOption(parent, \"option\");\n } while (skip(\",\", true));\n skip(\"]\");\n }\n return parent;\n }\n\n function parseService(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"service name\");\n\n var service = new Service(token);\n ifBlock(service, function parseService_block(token) {\n if (parseCommon(service, token))\n return;\n\n /* istanbul ignore else */\n if (token === \"rpc\")\n parseMethod(service, token);\n else\n throw illegal(token);\n });\n parent.add(service);\n }\n\n function parseMethod(parent, token) {\n // Get the comment of the preceding line now (if one exists) in case the\n // method is defined across multiple lines.\n var commentText = cmnt();\n\n var type = token;\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token,\n requestType, requestStream,\n responseType, responseStream;\n\n skip(\"(\");\n if (skip(\"stream\", true))\n requestStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n requestType = token;\n skip(\")\"); skip(\"returns\"); skip(\"(\");\n if (skip(\"stream\", true))\n responseStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n responseType = token;\n skip(\")\");\n\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\n method.comment = commentText;\n ifBlock(method, function parseMethod_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(method, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n });\n parent.add(method);\n }\n\n function parseExtension(parent, token) {\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"reference\");\n\n var reference = token;\n ifBlock(null, function parseExtension_block(token) {\n switch (token) {\n\n case \"required\":\n case \"repeated\":\n case \"optional\":\n parseField(parent, token, reference);\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n push(token);\n parseField(parent, \"optional\", reference);\n break;\n }\n });\n }\n\n var token;\n while ((token = next()) !== null) {\n switch (token) {\n\n case \"package\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parsePackage();\n break;\n\n case \"import\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseImport();\n break;\n\n case \"syntax\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseSyntax();\n break;\n\n case \"option\":\n\n parseOption(ptr, token);\n skip(\";\");\n break;\n\n default:\n\n /* istanbul ignore else */\n if (parseCommon(ptr, token)) {\n head = false;\n continue;\n }\n\n /* istanbul ignore next */\n throw illegal(token);\n }\n }\n\n parse.filename = null;\n return {\n \"package\" : pkg,\n \"imports\" : imports,\n weakImports : weakImports,\n syntax : syntax,\n root : root\n };\n}\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @name parse\n * @function\n * @param {string} source Source contents\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n * @variation 2\n */\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(39);\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(27);\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(39);\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\n/* istanbul ignore else */\nif (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n","\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(23);\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field = require(16),\n Enum = require(15),\n OneOf = require(25),\n util = require(37);\n\nvar Type, // cyclic\n parse, // might be excluded\n common; // \"\n\n/**\n * Constructs a new root namespace instance.\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\n * @extends NamespaceBase\n * @constructor\n * @param {Object.} [options] Top level options\n */\nfunction Root(options) {\n Namespace.call(this, \"\", options);\n\n /**\n * Deferred extension fields.\n * @type {Field[]}\n */\n this.deferred = [];\n\n /**\n * Resolved file names of loaded files.\n * @type {string[]}\n */\n this.files = [];\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Nameespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root) {\n if (!root)\n root = new Root();\n if (json.options)\n root.setOptions(json.options);\n return root.addJSON(json.nested);\n};\n\n/**\n * Resolves the path of an imported file, relative to the importing origin.\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\n * @function\n * @param {string} origin The file name of the importing file\n * @param {string} target The file name being imported\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\n */\nRoot.prototype.resolvePath = util.path.resolve;\n\n// A symbol-like function to safely signal synchronous loading\n/* istanbul ignore next */\nfunction SYNC() {} // eslint-disable-line no-empty-function\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} options Parse options\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.load = function load(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = undefined;\n }\n var self = this;\n if (!callback)\n return util.asPromise(load, self, filename, options);\n\n var sync = callback === SYNC; // undocumented\n\n // Finishes loading by calling the callback (exactly once)\n function finish(err, root) {\n /* istanbul ignore if */\n if (!callback)\n return;\n var cb = callback;\n callback = null;\n if (sync)\n throw err;\n cb(err, root);\n }\n\t\n // Bundled definition existence checking\n function getBundledFileName(filename) {\n var idx = filename.lastIndexOf(\"google/protobuf/\");\n if (idx > -1) {\n var altname = filename.substring(idx);\n if (altname in common) return altname; \n }\n return null;\n }\n\n // Processes a single file\n function process(filename, source) {\n try {\n if (util.isString(source) && source.charAt(0) === \"{\")\n source = JSON.parse(source);\n if (!util.isString(source))\n self.setOptions(source.options).addJSON(source.nested);\n else {\n parse.filename = filename;\n var parsed = parse(source, self, options),\n resolved,\n i = 0;\n if (parsed.imports)\n for (; i < parsed.imports.length; ++i)\n if (resolved = (getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i])))\n fetch(resolved);\n if (parsed.weakImports)\n for (i = 0; i < parsed.weakImports.length; ++i)\n if (resolved = (getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i])))\n fetch(resolved, true);\n }\n } catch (err) {\n finish(err);\n }\n if (!sync && !queued)\n finish(null, self); // only once anyway\n }\n\n // Fetches a single file\n function fetch(filename, weak) {\n\n // Skip if already loaded / attempted\n if (self.files.indexOf(filename) > -1)\n return;\n self.files.push(filename);\n\n // Shortcut bundled definitions\n if (filename in common) {\n if (sync)\n process(filename, common[filename]);\n else {\n ++queued;\n setTimeout(function() {\n --queued;\n process(filename, common[filename]);\n });\n }\n return;\n }\n\n // Otherwise fetch from disk or network\n if (sync) {\n var source;\n try {\n source = util.fs.readFileSync(filename).toString(\"utf8\");\n } catch (err) {\n if (!weak)\n finish(err);\n return;\n }\n process(filename, source);\n } else {\n ++queued;\n util.fetch(filename, function(err, source) {\n --queued;\n /* istanbul ignore if */\n if (!callback)\n return; // terminated meanwhile\n if (err) {\n /* istanbul ignore else */\n if (!weak)\n finish(err);\n else if (!queued) // can't be covered reliably\n finish(null, self);\n return;\n }\n process(filename, source);\n });\n }\n }\n var queued = 0;\n\n // Assembling the root namespace doesn't require working type\n // references anymore, so we can load everything in parallel\n if (util.isString(filename))\n filename = [ filename ];\n for (var i = 0, resolved; i < filename.length; ++i)\n if (resolved = self.resolvePath(\"\", filename[i]))\n fetch(resolved);\n\n if (sync)\n return self;\n if (!queued)\n finish(null, self);\n return undefined;\n};\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Promise} Promise\n * @variation 3\n */\n// function load(filename:string, [options:IParseOptions]):Promise\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\n * @function Root#loadSync\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n */\nRoot.prototype.loadSync = function loadSync(filename, options) {\n if (!util.isNode)\n throw Error(\"not supported\");\n return this.load(filename, options, SYNC);\n};\n\n/**\n * @override\n */\nRoot.prototype.resolveAll = function resolveAll() {\n if (this.deferred.length)\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\n }).join(\", \"));\n return Namespace.prototype.resolveAll.call(this);\n};\n\n// only uppercased (and thus conflict-free) children are exposed, see below\nvar exposeRe = /^[A-Z]/;\n\n/**\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\n * @param {Root} root Root instance\n * @param {Field} field Declaring extension field witin the declaring type\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\n * @inner\n * @ignore\n */\nfunction tryHandleExtension(root, field) {\n var extendedType = field.parent.lookup(field.extend);\n if (extendedType) {\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\n sisterField.declaringField = field;\n field.extensionField = sisterField;\n extendedType.add(sisterField);\n return true;\n }\n return false;\n}\n\n/**\n * Called when any object is added to this root or its sub-namespaces.\n * @param {ReflectionObject} object Object added\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleAdd = function _handleAdd(object) {\n if (object instanceof Field) {\n\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\n if (!tryHandleExtension(this, object))\n this.deferred.push(object);\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n object.parent[object.name] = object.values; // expose enum values as property of its parent\n\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\n\n if (object instanceof Type) // Try to handle any deferred extensions\n for (var i = 0; i < this.deferred.length;)\n if (tryHandleExtension(this, this.deferred[i]))\n this.deferred.splice(i, 1);\n else\n ++i;\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\n this._handleAdd(object._nestedArray[j]);\n if (exposeRe.test(object.name))\n object.parent[object.name] = object; // expose namespace as property of its parent\n }\n\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\n // a static module with reflection-based solutions where the condition is met.\n};\n\n/**\n * Called when any object is removed from this root or its sub-namespaces.\n * @param {ReflectionObject} object Object removed\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleRemove = function _handleRemove(object) {\n if (object instanceof Field) {\n\n if (/* an extension field */ object.extend !== undefined) {\n if (/* already handled */ object.extensionField) { // remove its sister field\n object.extensionField.parent.remove(object.extensionField);\n object.extensionField = null;\n } else { // cancel the extension\n var index = this.deferred.indexOf(object);\n /* istanbul ignore else */\n if (index > -1)\n this.deferred.splice(index, 1);\n }\n }\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose enum values\n\n } else if (object instanceof Namespace) {\n\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\n this._handleRemove(object._nestedArray[i]);\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose namespaces\n\n }\n};\n\n// Sets up cyclic dependencies (called in index-light)\nRoot._configure = function(Type_, parse_, common_) {\n Type = Type_;\n parse = parse_;\n common = common_;\n};\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(32);\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(39);\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(23);\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(22),\n util = require(37),\n rpc = require(31);\n\n/**\n * Constructs a new service instance.\n * @classdesc Reflected service.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Service name\n * @param {Object.} [options] Service options\n * @throws {TypeError} If arguments are invalid\n */\nfunction Service(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Service methods.\n * @type {Object.}\n */\n this.methods = {}; // toJSON, marker\n\n /**\n * Cached methods as an array.\n * @type {Method[]|null}\n * @private\n */\n this._methodsArray = null;\n}\n\n/**\n * Service descriptor.\n * @interface IService\n * @extends INamespace\n * @property {Object.} methods Method descriptors\n */\n\n/**\n * Constructs a service from a service descriptor.\n * @param {string} name Service name\n * @param {IService} json Service descriptor\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json) {\n var service = new Service(name, json.options);\n /* istanbul ignore else */\n if (json.methods)\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\n if (json.nested)\n service.addJSON(json.nested);\n service.comment = json.comment;\n return service;\n};\n\n/**\n * Converts this service to a service descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IService} Service descriptor\n */\nService.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Methods of this service as an array for iteration.\n * @name Service#methodsArray\n * @type {Method[]}\n * @readonly\n */\nObject.defineProperty(Service.prototype, \"methodsArray\", {\n get: function() {\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\n }\n});\n\nfunction clearCache(service) {\n service._methodsArray = null;\n return service;\n}\n\n/**\n * @override\n */\nService.prototype.get = function get(name) {\n return this.methods[name]\n || Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n var methods = this.methodsArray;\n for (var i = 0; i < methods.length; ++i)\n methods[i].resolve();\n return Namespace.prototype.resolve.call(this);\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\n\n /* istanbul ignore if */\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Method) {\n this.methods[object.name] = object;\n object.parent = this;\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * @override\n */\nService.prototype.remove = function remove(object) {\n if (object instanceof Method) {\n\n /* istanbul ignore if */\n if (this.methods[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.methods[object.name];\n object.parent = null;\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Creates a runtime service using the specified rpc implementation.\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\n */\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\n m: method,\n q: method.resolvedRequestType.ctor,\n s: method.resolvedResponseType.ctor\n });\n }\n return rpcService;\n};\n","\"use strict\";\nmodule.exports = tokenize;\n\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\n\nvar setCommentRe = /^ *[*/]+ */,\n setCommentAltRe = /^\\s*\\*?\\/*/,\n setCommentSplitRe = /\\n/g,\n whitespaceRe = /\\s/,\n unescapeRe = /\\\\(.?)/g;\n\nvar unescapeMap = {\n \"0\": \"\\0\",\n \"r\": \"\\r\",\n \"n\": \"\\n\",\n \"t\": \"\\t\"\n};\n\n/**\n * Unescapes a string.\n * @param {string} str String to unescape\n * @returns {string} Unescaped string\n * @property {Object.} map Special characters map\n * @memberof tokenize\n */\nfunction unescape(str) {\n return str.replace(unescapeRe, function($0, $1) {\n switch ($1) {\n case \"\\\\\":\n case \"\":\n return $1;\n default:\n return unescapeMap[$1] || \"\";\n }\n });\n}\n\ntokenize.unescape = unescape;\n\n/**\n * Gets the next token and advances.\n * @typedef TokenizerHandleNext\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Peeks for the next token.\n * @typedef TokenizerHandlePeek\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Pushes a token back to the stack.\n * @typedef TokenizerHandlePush\n * @type {function}\n * @param {string} token Token\n * @returns {undefined}\n */\n\n/**\n * Skips the next token.\n * @typedef TokenizerHandleSkip\n * @type {function}\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] If optional\n * @returns {boolean} Whether the token matched\n * @throws {Error} If the token didn't match and is not optional\n */\n\n/**\n * Gets the comment on the previous line or, alternatively, the line comment on the specified line.\n * @typedef TokenizerHandleCmnt\n * @type {function}\n * @param {number} [line] Line number\n * @returns {string|null} Comment text or `null` if none\n */\n\n/**\n * Handle object returned from {@link tokenize}.\n * @interface ITokenizerHandle\n * @property {TokenizerHandleNext} next Gets the next token and advances (`null` on eof)\n * @property {TokenizerHandlePeek} peek Peeks for the next token (`null` on eof)\n * @property {TokenizerHandlePush} push Pushes a token back to the stack\n * @property {TokenizerHandleSkip} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\n * @property {TokenizerHandleCmnt} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\n * @property {number} line Current line number\n */\n\n/**\n * Tokenizes the given .proto source and returns an object with useful utility functions.\n * @param {string} source Source contents\n * @param {boolean} alternateCommentMode Whether we should activate alternate comment parsing mode.\n * @returns {ITokenizerHandle} Tokenizer handle\n */\nfunction tokenize(source, alternateCommentMode) {\n /* eslint-disable callback-return */\n source = source.toString();\n\n var offset = 0,\n length = source.length,\n line = 1,\n commentType = null,\n commentText = null,\n commentLine = 0,\n commentLineEmpty = false;\n\n var stack = [];\n\n var stringDelim = null;\n\n /* istanbul ignore next */\n /**\n * Creates an error for illegal syntax.\n * @param {string} subject Subject\n * @returns {Error} Error created\n * @inner\n */\n function illegal(subject) {\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\n }\n\n /**\n * Reads a string till its end.\n * @returns {string} String read\n * @inner\n */\n function readString() {\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\n re.lastIndex = offset - 1;\n var match = re.exec(source);\n if (!match)\n throw illegal(\"string\");\n offset = re.lastIndex;\n push(stringDelim);\n stringDelim = null;\n return unescape(match[1]);\n }\n\n /**\n * Gets the character at `pos` within the source.\n * @param {number} pos Position\n * @returns {string} Character\n * @inner\n */\n function charAt(pos) {\n return source.charAt(pos);\n }\n\n /**\n * Sets the current comment text.\n * @param {number} start Start offset\n * @param {number} end End offset\n * @returns {undefined}\n * @inner\n */\n function setComment(start, end) {\n commentType = source.charAt(start++);\n commentLine = line;\n commentLineEmpty = false;\n var lookback;\n if (alternateCommentMode) {\n lookback = 2; // alternate comment parsing: \"//\" or \"/*\"\n } else {\n lookback = 3; // \"///\" or \"/**\"\n }\n var commentOffset = start - lookback,\n c;\n do {\n if (--commentOffset < 0 ||\n (c = source.charAt(commentOffset)) === \"\\n\") {\n commentLineEmpty = true;\n break;\n }\n } while (c === \" \" || c === \"\\t\");\n var lines = source\n .substring(start, end)\n .split(setCommentSplitRe);\n for (var i = 0; i < lines.length; ++i)\n lines[i] = lines[i]\n .replace(alternateCommentMode ? setCommentAltRe : setCommentRe, \"\")\n .trim();\n commentText = lines\n .join(\"\\n\")\n .trim();\n }\n\n function isDoubleSlashCommentLine(startOffset) {\n var endOffset = findEndOfLine(startOffset);\n\n // see if remaining line matches comment pattern\n var lineText = source.substring(startOffset, endOffset);\n // look for 1 or 2 slashes since startOffset would already point past\n // the first slash that started the comment.\n var isComment = /^\\s*\\/{1,2}/.test(lineText);\n return isComment;\n }\n\n function findEndOfLine(cursor) {\n // find end of cursor's line\n var endOffset = cursor;\n while (endOffset < length && charAt(endOffset) !== \"\\n\") {\n endOffset++;\n }\n return endOffset;\n }\n\n /**\n * Obtains the next token.\n * @returns {string|null} Next token or `null` on eof\n * @inner\n */\n function next() {\n if (stack.length > 0)\n return stack.shift();\n if (stringDelim)\n return readString();\n var repeat,\n prev,\n curr,\n start,\n isDoc;\n do {\n if (offset === length)\n return null;\n repeat = false;\n while (whitespaceRe.test(curr = charAt(offset))) {\n if (curr === \"\\n\")\n ++line;\n if (++offset === length)\n return null;\n }\n\n if (charAt(offset) === \"/\") {\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n if (charAt(offset) === \"/\") { // Line\n if (!alternateCommentMode) {\n // check for triple-slash comment\n isDoc = charAt(start = offset + 1) === \"/\";\n\n while (charAt(++offset) !== \"\\n\") {\n if (offset === length) {\n return null;\n }\n }\n ++offset;\n if (isDoc) {\n setComment(start, offset - 1);\n }\n ++line;\n repeat = true;\n } else {\n // check for double-slash comments, consolidating consecutive lines\n start = offset;\n isDoc = false;\n if (isDoubleSlashCommentLine(offset)) {\n isDoc = true;\n do {\n offset = findEndOfLine(offset);\n if (offset === length) {\n break;\n }\n offset++;\n } while (isDoubleSlashCommentLine(offset));\n } else {\n offset = Math.min(length, findEndOfLine(offset) + 1);\n }\n if (isDoc) {\n setComment(start, offset);\n }\n line++;\n repeat = true;\n }\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\n // check for /** (regular comment mode) or /* (alternate comment mode)\n start = offset + 1;\n isDoc = alternateCommentMode || charAt(start) === \"*\";\n do {\n if (curr === \"\\n\") {\n ++line;\n }\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n prev = curr;\n curr = charAt(offset);\n } while (prev !== \"*\" || curr !== \"/\");\n ++offset;\n if (isDoc) {\n setComment(start, offset - 2);\n }\n repeat = true;\n } else {\n return \"/\";\n }\n }\n } while (repeat);\n\n // offset !== length if we got here\n\n var end = offset;\n delimRe.lastIndex = 0;\n var delim = delimRe.test(charAt(end++));\n if (!delim)\n while (end < length && !delimRe.test(charAt(end)))\n ++end;\n var token = source.substring(offset, offset = end);\n if (token === \"\\\"\" || token === \"'\")\n stringDelim = token;\n return token;\n }\n\n /**\n * Pushes a token back to the stack.\n * @param {string} token Token\n * @returns {undefined}\n * @inner\n */\n function push(token) {\n stack.push(token);\n }\n\n /**\n * Peeks for the next token.\n * @returns {string|null} Token or `null` on eof\n * @inner\n */\n function peek() {\n if (!stack.length) {\n var token = next();\n if (token === null)\n return null;\n push(token);\n }\n return stack[0];\n }\n\n /**\n * Skips a token.\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] Whether the token is optional\n * @returns {boolean} `true` when skipped, `false` if not\n * @throws {Error} When a required token is not present\n * @inner\n */\n function skip(expected, optional) {\n var actual = peek(),\n equals = actual === expected;\n if (equals) {\n next();\n return true;\n }\n if (!optional)\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\n return false;\n }\n\n /**\n * Gets a comment.\n * @param {number} [trailingLine] Line number if looking for a trailing comment\n * @returns {string|null} Comment text\n * @inner\n */\n function cmnt(trailingLine) {\n var ret = null;\n if (trailingLine === undefined) {\n if (commentLine === line - 1 && (alternateCommentMode || commentType === \"*\" || commentLineEmpty)) {\n ret = commentText;\n }\n } else {\n /* istanbul ignore else */\n if (commentLine < trailingLine) {\n peek();\n }\n if (commentLine === trailingLine && !commentLineEmpty && (alternateCommentMode || commentType === \"/\")) {\n ret = commentText;\n }\n }\n return ret;\n }\n\n return Object.defineProperty({\n next: next,\n peek: peek,\n push: push,\n skip: skip,\n cmnt: cmnt\n }, \"line\", {\n get: function() { return line; }\n });\n /* eslint-enable callback-return */\n}\n","\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(23);\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum = require(15),\n OneOf = require(25),\n Field = require(16),\n MapField = require(20),\n Service = require(33),\n Message = require(21),\n Reader = require(27),\n Writer = require(42),\n util = require(37),\n encoder = require(14),\n decoder = require(13),\n verifier = require(40),\n converter = require(12),\n wrappers = require(41);\n\n/**\n * Constructs a new reflected message type instance.\n * @classdesc Reflected message type.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Message name\n * @param {Object.} [options] Declared options\n */\nfunction Type(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Message fields.\n * @type {Object.}\n */\n this.fields = {}; // toJSON, marker\n\n /**\n * Oneofs declared within this namespace, if any.\n * @type {Object.}\n */\n this.oneofs = undefined; // toJSON\n\n /**\n * Extension ranges, if any.\n * @type {number[][]}\n */\n this.extensions = undefined; // toJSON\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n /*?\n * Whether this type is a legacy group.\n * @type {boolean|undefined}\n */\n this.group = undefined; // toJSON\n\n /**\n * Cached fields by id.\n * @type {Object.|null}\n * @private\n */\n this._fieldsById = null;\n\n /**\n * Cached fields as an array.\n * @type {Field[]|null}\n * @private\n */\n this._fieldsArray = null;\n\n /**\n * Cached oneofs as an array.\n * @type {OneOf[]|null}\n * @private\n */\n this._oneofsArray = null;\n\n /**\n * Cached constructor.\n * @type {Constructor<{}>}\n * @private\n */\n this._ctor = null;\n}\n\nObject.defineProperties(Type.prototype, {\n\n /**\n * Message fields by id.\n * @name Type#fieldsById\n * @type {Object.}\n * @readonly\n */\n fieldsById: {\n get: function() {\n\n /* istanbul ignore if */\n if (this._fieldsById)\n return this._fieldsById;\n\n this._fieldsById = {};\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\n var field = this.fields[names[i]],\n id = field.id;\n\n /* istanbul ignore if */\n if (this._fieldsById[id])\n throw Error(\"duplicate id \" + id + \" in \" + this);\n\n this._fieldsById[id] = field;\n }\n return this._fieldsById;\n }\n },\n\n /**\n * Fields of this message as an array for iteration.\n * @name Type#fieldsArray\n * @type {Field[]}\n * @readonly\n */\n fieldsArray: {\n get: function() {\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\n }\n },\n\n /**\n * Oneofs of this message as an array for iteration.\n * @name Type#oneofsArray\n * @type {OneOf[]}\n * @readonly\n */\n oneofsArray: {\n get: function() {\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\n }\n },\n\n /**\n * The registered constructor, if any registered, otherwise a generic constructor.\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\n * @name Type#ctor\n * @type {Constructor<{}>}\n */\n ctor: {\n get: function() {\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\n },\n set: function(ctor) {\n\n // Ensure proper prototype\n var prototype = ctor.prototype;\n if (!(prototype instanceof Message)) {\n (ctor.prototype = new Message()).constructor = ctor;\n util.merge(ctor.prototype, prototype);\n }\n\n // Classes and messages reference their reflected type\n ctor.$type = ctor.prototype.$type = this;\n\n // Mix in static methods\n util.merge(ctor, Message, true);\n\n this._ctor = ctor;\n\n // Messages have non-enumerable default values on their prototype\n var i = 0;\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\n this._fieldsArray[i].resolve(); // ensures a proper value\n\n // Messages have non-enumerable getters and setters for each virtual oneof field\n var ctorProperties = {};\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\n ctorProperties[this._oneofsArray[i].resolve().name] = {\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\n };\n if (i)\n Object.defineProperties(ctor.prototype, ctorProperties);\n }\n }\n});\n\n/**\n * Generates a constructor function for the specified type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nType.generateConstructor = function generateConstructor(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"p\"], mtype.name);\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\n if ((field = mtype._fieldsArray[i]).map) gen\n (\"this%s={}\", util.safeProp(field.name));\n else if (field.repeated) gen\n (\"this%s=[]\", util.safeProp(field.name));\n return gen\n (\"if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors\n * @property {Object.} fields Field descriptors\n * @property {number[][]} [extensions] Extension ranges\n * @property {number[][]} [reserved] Reserved ranges\n * @property {boolean} [group=false] Whether a legacy group or not\n */\n\n/**\n * Creates a message type from a message type descriptor.\n * @param {string} name Message name\n * @param {IType} json Message type descriptor\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json) {\n var type = new Type(name, json.options);\n type.extensions = json.extensions;\n type.reserved = json.reserved;\n var names = Object.keys(json.fields),\n i = 0;\n for (; i < names.length; ++i)\n type.add(\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\n ? MapField.fromJSON\n : Field.fromJSON )(names[i], json.fields[names[i]])\n );\n if (json.oneofs)\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\n if (json.nested)\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\n var nested = json.nested[names[i]];\n type.add( // most to least likely\n ( nested.id !== undefined\n ? Field.fromJSON\n : nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n if (json.extensions && json.extensions.length)\n type.extensions = json.extensions;\n if (json.reserved && json.reserved.length)\n type.reserved = json.reserved;\n if (json.group)\n type.group = true;\n if (json.comment)\n type.comment = json.comment;\n return type;\n};\n\n/**\n * Converts this message type to a message type descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IType} Message type descriptor\n */\nType.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"group\" , this.group || undefined,\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nType.prototype.resolveAll = function resolveAll() {\n var fields = this.fieldsArray, i = 0;\n while (i < fields.length)\n fields[i++].resolve();\n var oneofs = this.oneofsArray; i = 0;\n while (i < oneofs.length)\n oneofs[i++].resolve();\n return Namespace.prototype.resolveAll.call(this);\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n return this.fields[name]\n || this.oneofs && this.oneofs[name]\n || this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Adds a nested object to this type.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\n */\nType.prototype.add = function add(object) {\n\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Field && object.extend === undefined) {\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\n // The root object takes care of adding distinct sister-fields to the respective extended\n // type instead.\n\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\n if (this.isReservedId(object.id))\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\n if (this.isReservedName(object.name))\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n\n if (object.parent)\n object.parent.remove(object);\n this.fields[object.name] = object;\n object.message = this;\n object.onAdd(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n if (!this.oneofs)\n this.oneofs = {};\n this.oneofs[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * Removes a nested object from this type.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this type\n */\nType.prototype.remove = function remove(object) {\n if (object instanceof Field && object.extend === undefined) {\n // See Type#add for the reason why extension fields are excluded here.\n\n /* istanbul ignore if */\n if (!this.fields || this.fields[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.fields[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n\n /* istanbul ignore if */\n if (!this.oneofs || this.oneofs[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.oneofs[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message<{}>} Message instance\n */\nType.prototype.create = function create(properties) {\n return new this.ctor(properties);\n};\n\n/**\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\n * @returns {Type} `this`\n */\nType.prototype.setup = function setup() {\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\n // multiple times (V8, soft-deopt prototype-check).\n\n var fullName = this.fullName,\n types = [];\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\n types.push(this._fieldsArray[i].resolve().resolvedType);\n\n // Replace setup methods with type-specific generated functions\n this.encode = encoder(this)({\n Writer : Writer,\n types : types,\n util : util\n });\n this.decode = decoder(this)({\n Reader : Reader,\n types : types,\n util : util\n });\n this.verify = verifier(this)({\n types : types,\n util : util\n });\n this.fromObject = converter.fromObject(this)({\n types : types,\n util : util\n });\n this.toObject = converter.toObject(this)({\n types : types,\n util : util\n });\n\n // Inject custom wrappers for common types\n var wrapper = wrappers[fullName];\n if (wrapper) {\n var originalThis = Object.create(this);\n // if (wrapper.fromObject) {\n originalThis.fromObject = this.fromObject;\n this.fromObject = wrapper.fromObject.bind(originalThis);\n // }\n // if (wrapper.toObject) {\n originalThis.toObject = this.toObject;\n this.toObject = wrapper.toObject.bind(originalThis);\n // }\n }\n\n return this;\n};\n\n/**\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encode = function encode_setup(message, writer) {\n return this.setup().encode(message, writer); // overrides this method\n};\n\n/**\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\n};\n\n/**\n * Decodes a message of this type.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Length of the message, if known beforehand\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError<{}>} If required fields are missing\n */\nType.prototype.decode = function decode_setup(reader, length) {\n return this.setup().decode(reader, length); // overrides this method\n};\n\n/**\n * Decodes a message of this type preceeded by its byte length as a varint.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError} If required fields are missing\n */\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof Reader))\n reader = Reader.create(reader);\n return this.decode(reader, reader.uint32());\n};\n\n/**\n * Verifies that field values are valid and that required fields are present.\n * @param {Object.} message Plain object to verify\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message) {\n return this.setup().verify(message); // overrides this method\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object to convert\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object) {\n return this.setup().fromObject(object);\n};\n\n/**\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\n * @interface IConversionOptions\n * @property {Function} [longs] Long conversion type.\n * Valid values are `String` and `Number` (the global types).\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\n * @property {Function} [enums] Enum value conversion type.\n * Only valid value is `String` (the global type).\n * Defaults to copy the present value, which is the numeric id.\n * @property {Function} [bytes] Bytes value conversion type.\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\n */\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\nType.prototype.toObject = function toObject(message, options) {\n return this.setup().toObject(message, options);\n};\n\n/**\n * Decorator function as returned by {@link Type.d} (TypeScript).\n * @typedef TypeDecorator\n * @type {function}\n * @param {Constructor} target Target constructor\n * @returns {undefined}\n * @template T extends Message\n */\n\n/**\n * Type decorator (TypeScript).\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {TypeDecorator} Decorator function\n * @template T extends Message\n */\nType.d = function decorateType(typeName) {\n return function typeDecorator(target) {\n util.decorateType(target, typeName);\n };\n};\n","\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(37);\n\nvar s = [\n \"double\", // 0\n \"float\", // 1\n \"int32\", // 2\n \"uint32\", // 3\n \"sint32\", // 4\n \"fixed32\", // 5\n \"sfixed32\", // 6\n \"int64\", // 7\n \"uint64\", // 8\n \"sint64\", // 9\n \"fixed64\", // 10\n \"sfixed64\", // 11\n \"bool\", // 12\n \"string\", // 13\n \"bytes\" // 14\n];\n\nfunction bake(values, offset) {\n var i = 0, o = {};\n offset |= 0;\n while (i < values.length) o[s[i + offset]] = values[i++];\n return o;\n}\n\n/**\n * Basic type wire types.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n * @property {number} bytes=2 Ldelim wire type\n */\ntypes.basic = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2,\n /* bytes */ 2\n]);\n\n/**\n * Basic type defaults.\n * @type {Object.}\n * @const\n * @property {number} double=0 Double default\n * @property {number} float=0 Float default\n * @property {number} int32=0 Int32 default\n * @property {number} uint32=0 Uint32 default\n * @property {number} sint32=0 Sint32 default\n * @property {number} fixed32=0 Fixed32 default\n * @property {number} sfixed32=0 Sfixed32 default\n * @property {number} int64=0 Int64 default\n * @property {number} uint64=0 Uint64 default\n * @property {number} sint64=0 Sint32 default\n * @property {number} fixed64=0 Fixed64 default\n * @property {number} sfixed64=0 Sfixed64 default\n * @property {boolean} bool=false Bool default\n * @property {string} string=\"\" String default\n * @property {Array.} bytes=Array(0) Bytes default\n * @property {null} message=null Message default\n */\ntypes.defaults = bake([\n /* double */ 0,\n /* float */ 0,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 0,\n /* sfixed32 */ 0,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 0,\n /* sfixed64 */ 0,\n /* bool */ false,\n /* string */ \"\",\n /* bytes */ util.emptyArray,\n /* message */ null\n]);\n\n/**\n * Basic long type wire types.\n * @type {Object.}\n * @const\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n */\ntypes.long = bake([\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1\n], 7);\n\n/**\n * Allowed types for map keys with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n */\ntypes.mapKey = bake([\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2\n], 2);\n\n/**\n * Allowed types for packed repeated fields with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n */\ntypes.packed = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0\n]);\n","\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(39);\n\nvar roots = require(30);\n\nvar Type, // cyclic\n Enum;\n\nutil.codegen = require(3);\nutil.fetch = require(5);\nutil.path = require(8);\n\n/**\n * Node's fs module if available.\n * @type {Object.}\n */\nutil.fs = util.inquire(\"fs\");\n\n/**\n * Converts an object's values to an array.\n * @param {Object.} object Object to convert\n * @returns {Array.<*>} Converted array\n */\nutil.toArray = function toArray(object) {\n if (object) {\n var keys = Object.keys(object),\n array = new Array(keys.length),\n index = 0;\n while (index < keys.length)\n array[index] = object[keys[index++]];\n return array;\n }\n return [];\n};\n\n/**\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\n * @param {Array.<*>} array Array to convert\n * @returns {Object.} Converted object\n */\nutil.toObject = function toObject(array) {\n var object = {},\n index = 0;\n while (index < array.length) {\n var key = array[index++],\n val = array[index++];\n if (val !== undefined)\n object[key] = val;\n }\n return object;\n};\n\nvar safePropBackslashRe = /\\\\/g,\n safePropQuoteRe = /\"/g;\n\n/**\n * Tests whether the specified name is a reserved word in JS.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nutil.isReserved = function isReserved(name) {\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\n};\n\n/**\n * Returns a safe property accessor for the specified property name.\n * @param {string} prop Property name\n * @returns {string} Safe accessor\n */\nutil.safeProp = function safeProp(prop) {\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\n return \".\" + prop;\n};\n\n/**\n * Converts the first character of a string to upper case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.ucFirst = function ucFirst(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar camelCaseRe = /_([a-z])/g;\n\n/**\n * Converts a string to camel case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.camelCase = function camelCase(str) {\n return str.substring(0, 1)\n + str.substring(1)\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\n};\n\n/**\n * Compares reflected fields by id.\n * @param {Field} a First field\n * @param {Field} b Second field\n * @returns {number} Comparison value\n */\nutil.compareFieldsById = function compareFieldsById(a, b) {\n return a.id - b.id;\n};\n\n/**\n * Decorator helper for types (TypeScript).\n * @param {Constructor} ctor Constructor function\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {Type} Reflected type\n * @template T extends Message\n * @property {Root} root Decorators root\n */\nutil.decorateType = function decorateType(ctor, typeName) {\n\n /* istanbul ignore if */\n if (ctor.$type) {\n if (typeName && ctor.$type.name !== typeName) {\n util.decorateRoot.remove(ctor.$type);\n ctor.$type.name = typeName;\n util.decorateRoot.add(ctor.$type);\n }\n return ctor.$type;\n }\n\n /* istanbul ignore next */\n if (!Type)\n Type = require(35);\n\n var type = new Type(typeName || ctor.name);\n util.decorateRoot.add(type);\n type.ctor = ctor; // sets up .encode, .decode etc.\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\n return type;\n};\n\nvar decorateEnumIndex = 0;\n\n/**\n * Decorator helper for enums (TypeScript).\n * @param {Object} object Enum object\n * @returns {Enum} Reflected enum\n */\nutil.decorateEnum = function decorateEnum(object) {\n\n /* istanbul ignore if */\n if (object.$type)\n return object.$type;\n\n /* istanbul ignore next */\n if (!Enum)\n Enum = require(15);\n\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\n util.decorateRoot.add(enm);\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\n return enm;\n};\n\n/**\n * Decorator root (TypeScript).\n * @name util.decorateRoot\n * @type {Root}\n * @readonly\n */\nObject.defineProperty(util, \"decorateRoot\", {\n get: function() {\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(29))());\n }\n});\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(39);\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(1);\n\n// converts to / from base64 encoded strings\nutil.base64 = require(2);\n\n// base class of rpc.Service\nutil.EventEmitter = require(4);\n\n// float handling accross browsers\nutil.float = require(6);\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(7);\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(10);\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(9);\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(38);\n\n// global object reference\nutil.global = typeof window !== \"undefined\" && window\n || typeof global !== \"undefined\" && global\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n * @const\n */\nutil.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node);\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: (new Error()).stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = verifier;\n\nvar Enum = require(15),\n util = require(37);\n\nfunction invalid(field, expected) {\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\n}\n\n/**\n * Generates a partial value verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\n /* eslint-disable no-unexpected-multiline */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref)\n (\"default:\")\n (\"return%j\", invalid(field, \"enum value\"));\n for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen\n (\"case %i:\", field.resolvedType.values[keys[j]]);\n gen\n (\"break\")\n (\"}\");\n } else {\n gen\n (\"{\")\n (\"var e=types[%i].verify(%s);\", fieldIndex, ref)\n (\"if(e)\")\n (\"return%j+e\", field.name + \".\")\n (\"}\");\n }\n } else {\n switch (field.type) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.isInteger(%s))\", ref)\n (\"return%j\", invalid(field, \"integer\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\n (\"return%j\", invalid(field, \"integer|Long\"));\n break;\n case \"float\":\n case \"double\": gen\n (\"if(typeof %s!==\\\"number\\\")\", ref)\n (\"return%j\", invalid(field, \"number\"));\n break;\n case \"bool\": gen\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\n (\"return%j\", invalid(field, \"boolean\"));\n break;\n case \"string\": gen\n (\"if(!util.isString(%s))\", ref)\n (\"return%j\", invalid(field, \"string\"));\n break;\n case \"bytes\": gen\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\n (\"return%j\", invalid(field, \"buffer\"));\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a partial key verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyKey(gen, field, ref) {\n /* eslint-disable no-unexpected-multiline */\n switch (field.keyType) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.key32Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"integer key\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.key64Re.test(%s))\", ref) // see comment above: x is ok, d is not\n (\"return%j\", invalid(field, \"integer|Long key\"));\n break;\n case \"bool\": gen\n (\"if(!util.key2Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"boolean key\"));\n break;\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a verifier specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction verifier(mtype) {\n /* eslint-disable no-unexpected-multiline */\n\n var gen = util.codegen([\"m\"], mtype.name + \"$verify\")\n (\"if(typeof m!==\\\"object\\\"||m===null)\")\n (\"return%j\", \"object expected\");\n var oneofs = mtype.oneofsArray,\n seenFirstField = {};\n if (oneofs.length) gen\n (\"var p={}\");\n\n for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n ref = \"m\" + util.safeProp(field.name);\n\n if (field.optional) gen\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name); // !== undefined && !== null\n\n // map fields\n if (field.map) { gen\n (\"if(!util.isObject(%s))\", ref)\n (\"return%j\", invalid(field, \"object\"))\n (\"var k=Object.keys(%s)\", ref)\n (\"for(var i=0;i}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(21);\n\n/**\n * From object converter part of an {@link IWrapper}.\n * @typedef WrapperFromObjectConverter\n * @type {function}\n * @param {Object.} object Plain object\n * @returns {Message<{}>} Message instance\n * @this Type\n */\n\n/**\n * To object converter part of an {@link IWrapper}.\n * @typedef WrapperToObjectConverter\n * @type {function}\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @this Type\n */\n\n/**\n * Common type wrapper part of {@link wrappers}.\n * @interface IWrapper\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\n * @property {WrapperToObjectConverter} [toObject] To object converter\n */\n\n// Custom wrapper for Any\nwrappers[\".google.protobuf.Any\"] = {\n\n fromObject: function(object) {\n\n // unwrap value type if mapped\n if (object && object[\"@type\"]) {\n var type = this.lookup(object[\"@type\"]);\n /* istanbul ignore else */\n if (type) {\n // type_url does not accept leading \".\"\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\n object[\"@type\"].substr(1) : object[\"@type\"];\n // type_url prefix is optional, but path seperator is required\n return this.create({\n type_url: \"/\" + type_url,\n value: type.encode(type.fromObject(object)).finish()\n });\n }\n }\n\n return this.fromObject(object);\n },\n\n toObject: function(message, options) {\n\n // decode value if requested and unmapped\n if (options && options.json && message.type_url && message.value) {\n // Only use fully qualified type name after the last '/'\n var name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type)\n message = type.decode(message.value);\n }\n\n // wrap value if unmapped\n if (!(message instanceof this.ctor) && message instanceof Message) {\n var object = message.$type.toObject(message, options);\n object[\"@type\"] = message.$type.fullName;\n return object;\n }\n\n return this.toObject(message, options);\n }\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(39);\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(42);\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(39);\n\nvar Buffer = util.Buffer;\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\nBufferWriter.alloc = function alloc_buffer(size) {\n return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size);\n};\n\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else\n buf.utf8Write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/dist/protobuf.min.js b/gateway/node_modules/@apollo/protobufjs/dist/protobuf.min.js deleted file mode 100644 index 01f5e87..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/protobuf.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * protobuf.js v1.0.5 (c) 2016, daniel wirtz - * compiled fri, 14 aug 2020 05:32:50 utc - * licensed under the bsd-3-clause license - * see: https://github.com/apollographql/protobuf.js for details - */ -!function(tt){"use strict";var r,e,t,i;r={1:[function(t,i){i.exports=function(t,i){var n=Array(arguments.length-1),s=0,r=2,u=!0;for(;r>2],r=(3&f)<<4,o=1;break;case 1:s[u++]=h[r|f>>4],r=(15&f)<<2,o=2;break;case 2:s[u++]=h[r|f>>6],s[u++]=h[63&f],o=0}8191>4,r=o,s=2;break;case 2:i[n++]=(15&r)<<4|(60&o)>>2,r=o,s=3;break;case 3:i[n++]=(3&r)<<6|o,s=0}}if(1===s)throw Error(a);return n-e},r.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}},{}],3:[function(t,i){function c(i,n){"string"==typeof i&&(n=i,i=tt);var f=[];function h(t){if("string"!=typeof t){var i=a();if(c.verbose&&console.log("codegen: "+i),i="return "+i,t){for(var n=Object.keys(t),r=Array(n.length+1),e=Array(n.length),s=0;s>>0,n,r);else if(i<11754943508222875e-54)t((e<<31|Math.round(i/1401298464324817e-60))>>>0,n,r);else{var s=Math.floor(Math.log(i)/Math.LN2);t((e<<31|s+127<<23|8388607&Math.round(i*Math.pow(2,-s)*8388608))>>>0,n,r)}}function i(t,i,n){var r=t(i,n),e=2*(r>>31)+1,s=r>>>23&255,u=8388607&r;return 255===s?u?NaN:e*(1/0):0===s?1401298464324817e-60*e*u:e*Math.pow(2,s-150)*(u+8388608)}o.writeFloatLE=t.bind(null,r),o.writeFloatBE=t.bind(null,e),o.readFloatLE=i.bind(null,s),o.readFloatBE=i.bind(null,u)}(),"undefined"!=typeof Float64Array?function(){var r=new Float64Array([-0]),e=new Uint8Array(r.buffer),t=128===e[7];function i(t,i,n){r[0]=t,i[n]=e[0],i[n+1]=e[1],i[n+2]=e[2],i[n+3]=e[3],i[n+4]=e[4],i[n+5]=e[5],i[n+6]=e[6],i[n+7]=e[7]}function n(t,i,n){r[0]=t,i[n]=e[7],i[n+1]=e[6],i[n+2]=e[5],i[n+3]=e[4],i[n+4]=e[3],i[n+5]=e[2],i[n+6]=e[1],i[n+7]=e[0]}function s(t,i){return e[0]=t[i],e[1]=t[i+1],e[2]=t[i+2],e[3]=t[i+3],e[4]=t[i+4],e[5]=t[i+5],e[6]=t[i+6],e[7]=t[i+7],r[0]}function u(t,i){return e[7]=t[i],e[6]=t[i+1],e[5]=t[i+2],e[4]=t[i+3],e[3]=t[i+4],e[2]=t[i+5],e[1]=t[i+6],e[0]=t[i+7],r[0]}o.writeDoubleLE=t?i:n,o.writeDoubleBE=t?n:i,o.readDoubleLE=t?s:u,o.readDoubleBE=t?u:s}():function(){function t(t,i,n,r,e,s){var u=r<0?1:0;if(u&&(r=-r),0===r)t(0,e,s+i),t(0<1/r?0:2147483648,e,s+n);else if(isNaN(r))t(0,e,s+i),t(2146959360,e,s+n);else if(17976931348623157e292>>0,e,s+n);else{var o;if(r<22250738585072014e-324)t((o=r/5e-324)>>>0,e,s+i),t((u<<31|o/4294967296)>>>0,e,s+n);else{var f=Math.floor(Math.log(r)/Math.LN2);1024===f&&(f=1023),t(4503599627370496*(o=r*Math.pow(2,-f))>>>0,e,s+i),t((u<<31|f+1023<<20|1048576*o&1048575)>>>0,e,s+n)}}}function i(t,i,n,r,e){var s=t(r,e+i),u=t(r,e+n),o=2*(u>>31)+1,f=u>>>20&2047,h=4294967296*(1048575&u)+s;return 2047===f?h?NaN:o*(1/0):0===f?5e-324*o*h:o*Math.pow(2,f-1075)*(h+4503599627370496)}o.writeDoubleLE=t.bind(null,r,0,4),o.writeDoubleBE=t.bind(null,e,4,0),o.readDoubleLE=i.bind(null,s,0,4),o.readDoubleBE=i.bind(null,u,4,0)}(),o}function r(t,i,n){i[n]=255&t,i[n+1]=t>>>8&255,i[n+2]=t>>>16&255,i[n+3]=t>>>24}function e(t,i,n){i[n]=t>>>24,i[n+1]=t>>>16&255,i[n+2]=t>>>8&255,i[n+3]=255&t}function s(t,i){return(t[i]|t[i+1]<<8|t[i+2]<<16|t[i+3]<<24)>>>0}function u(t,i){return(t[i]<<24|t[i+1]<<16|t[i+2]<<8|t[i+3])>>>0}i.exports=n(n)},{}],7:[function(t,i,n){function r(t){try{var i=eval("require")(t);if(i&&(i.length||Object.keys(i).length))return i}catch(t){}return null}i.exports=r},{}],8:[function(t,i,n){var r=n,s=r.isAbsolute=function(t){return/^(?:\/|\w+:)/.test(t)},e=r.normalize=function(t){var i=(t=t.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),n=s(t),r="";n&&(r=i.shift()+"/");for(var e=0;e>>1,u=null,o=e;return function(t){if(t<1||s>10),s[u++]=56320+(1023&r)):s[u++]=(15&r)<<12|(63&t[i++])<<6|63&t[i++],8191>6|192:(55296==(64512&r)&&56320==(64512&(e=t.charCodeAt(u+1)))?(r=65536+((1023&r)<<10)+(1023&e),++u,i[n++]=r>>18|240,i[n++]=r>>12&63|128):i[n++]=r>>12|224,i[n++]=r>>6&63|128),i[n++]=63&r|128);return n-s}},{}],11:[function(t,i){i.exports=e;var n,r=/\/|\./;function e(t,i){r.test(t)||(t="google/protobuf/"+t+".proto",i={nested:{google:{nested:{protobuf:{nested:i}}}}}),e[t]=i}e("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}}),e("duration",{Duration:n={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),e("timestamp",{Timestamp:n}),e("empty",{Empty:{fields:{}}}),e("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),e("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}}),e("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}}),e.get=function(t){return e[t]||null}},{}],12:[function(t,i,n){var r=n,l=t(15),v=t(37);function o(t,i,n,r,e){if(e===tt&&(e="d"+r),i.resolvedType)if(i.resolvedType instanceof l){t("switch(%s){",e);for(var s=i.resolvedType.values,u=Object.keys(s),o=0;o>>0",r,e);break;case"int32":case"sint32":case"sfixed32":t("m%s=%s|0",r,e);break;case"uint64":f=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":t("if(util.Long)")("(m%s=util.Long.fromValue(%s)).unsigned=%j",r,e,f)('else if(typeof %s==="string")',e)("m%s=parseInt(%s,10)",r,e)('else if(typeof %s==="number")',e)("m%s=%s",r,e)('else if(typeof %s==="object")',e)("m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)",r,e,e,f?"true":"");break;case"bytes":t('if(typeof %s==="string")',e)("util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)",e,r,e)("else if(%s.length)",e)("m%s=%s",r,e);break;case"string":t("m%s=String(%s)",r,e);break;case"bool":t("m%s=Boolean(%s)",r,e)}}return t}function d(t,i,n,r){if(i.resolvedType)i.resolvedType instanceof l?t("d%s=o.enums===String?types[%i].values[m%s]:m%s",r,n,r,r):t("d%s=types[%i].toObject(m%s,o)",r,n,r);else{var e=!1;switch(i.type){case"double":case"float":t("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",r,r,r,r);break;case"uint64":e=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":t('if(typeof m%s==="number")',r)("d%s=o.longs===String?String(m%s):m%s",r,r,r)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",r,r,r,r,e?"true":"",r);break;case"bytes":t("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",r,r,r,r,r);break;default:t("d%s=m%s",r,r)}}return t}r.fromObject=function(t){var i=t.fieldsArray,n=v.codegen(["d"],t.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!i.length)return n("return new this.ctor");n("var m=new this.ctor");for(var r=0;r>>3){");for(var n=0;n>>0,8|c.mapKey[s.keyType],s.keyType),f===tt?n("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",u,i):n(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|f,o,i),n("}")("}");else if(s.repeated){var h=i;s.useToArray()&&(h="array"+s.id,n("var %s",h),n("if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }",i,i,h,i,h,i)),n("if(%s!=null&&%s.length){",h,h),s.packed&&c.packed[o]!==tt?n("w.uint32(%i).fork()",(s.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",h)("w.%s(%s[i])",o,h)("w.ldelim()"):(n("for(var i=0;i<%s.length;++i)",h),f===tt?v(n,s,u,h+"[i]"):n("w.uint32(%i).%s(%s[i])",(s.id<<3|f)>>>0,o,h)),n("}")}else s.optional&&n("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",i,s.name),f===tt?v(n,s,u,i):n("w.uint32(%i).%s(%s)",(s.id<<3|f)>>>0,o,i)}return n("return w")};var a=t(15),c=t(36),l=t(37);function v(t,i,n,r){return i.resolvedType.group?t("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",n,r,(i.id<<3|3)>>>0,(i.id<<3|4)>>>0):t("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",n,r,(i.id<<3|2)>>>0)}},{15:15,36:36,37:37}],15:[function(t,i){i.exports=e;var o=t(24);((e.prototype=Object.create(o.prototype)).constructor=e).className="Enum";var n=t(23),r=t(37);function e(t,i,n,r,e){if(o.call(this,t,n),i&&"object"!=typeof i)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=r,this.comments=e||{},this.reserved=tt,i)for(var s=Object.keys(i),u=0;ui)return!0;return!1},h.isReservedName=function(t,i){if(t)for(var n=0;n");var r=a();if(!G.test(r))throw b(r,"name");l("=");var e=new _(w(r),k(a()),i,n);S(e,function(t){if("option"!==t)throw b(t);N(e,t),l(";")},function(){$(e)}),t.add(e)}(n);break;case"required":case"optional":case"repeated":T(n,t);break;case"oneof":!function(t,i){if(!G.test(i=a()))throw b(i,"name");var n=new U(w(i));S(n,function(t){"option"===t?(N(n,t),l(";")):(h(t),T(n,"optional"))}),t.add(n)}(n,t);break;case"extensions":j(n.extensions||(n.extensions=[]));break;case"reserved":j(n.reserved||(n.reserved=[]),!0);break;default:if(!p||!K.test(t))throw b(t);h(t),T(n,"optional")}}),t.add(n)}(t,i),!0;case"enum":return function(t,i){if(!G.test(i=a()))throw b(i,"name");var n=new q(i);S(n,function(t){switch(t){case"option":N(n,t),l(";");break;case"reserved":j(n.reserved||(n.reserved=[]),!0);break;default:!function(t,i){if(!G.test(i))throw b(i,"name");l("=");var n=k(a(),!0),r={};S(r,function(t){if("option"!==t)throw b(t);N(r,t),l(";")},function(){$(r)}),t.add(i,n,r.comment)}(n,t)}}),t.add(n)}(t,i),!0;case"service":return function(t,i){if(!G.test(i=a()))throw b(i,"service name");var n=new R(i);S(n,function(t){if(!x(n,t)){if("rpc"!==t)throw b(t);!function(t,i){var n=v(),r=i;if(!G.test(i=a()))throw b(i,"name");var e,s,u,o,f=i;l("("),l("stream",!0)&&(s=!0);if(!K.test(i=a()))throw b(i);e=i,l(")"),l("returns"),l("("),l("stream",!0)&&(o=!0);if(!K.test(i=a()))throw b(i);u=i,l(")");var h=new z(f,r,e,u,s,o);h.comment=n,S(h,function(t){if("option"!==t)throw b(t);N(h,t),l(";")}),t.add(h)}(n,t)}}),t.add(n)}(t,i),!0;case"extend":return function(i,t){if(!K.test(t=a()))throw b(t,"reference");var n=t;S(null,function(t){switch(t){case"required":case"repeated":case"optional":T(i,t,n);break;default:if(!p||!K.test(t))throw b(t);h(t),T(i,"optional",n)}})}(t,i),!0}return!1}function S(t,i,n){var r=f.line;if(t&&("string"!=typeof t.comment&&(t.comment=v()),t.filename=Y.filename),l("{",!0)){for(var e;"}"!==(e=a());)i(e);l(";",!0)}else n&&n(),l(";"),t&&"string"!=typeof t.comment&&(t.comment=v(r))}function T(t,i,n){var r=a();if("group"!==r){if(!K.test(r))throw b(r,"type");var e=a();if(!G.test(e))throw b(e,"name");e=w(e),l("=");var s=new L(e,k(a()),r,i,n);S(s,function(t){if("option"!==t)throw b(t);N(s,t),l(";")},function(){$(s)}),t.add(s),p||!s.repeated||Z.packed[r]===tt&&Z.basic[r]!==tt||s.setOption("packed",!1,!0)}else!function(t,i){var n=a();if(!G.test(n))throw b(n,"name");var r=B.lcFirst(n);n===r&&(n=B.ucFirst(n));l("=");var e=k(a()),s=new F(n);s.group=!0;var u=new L(r,e,n,i);u.filename=Y.filename,S(s,function(t){switch(t){case"option":N(s,t),l(";");break;case"required":case"optional":case"repeated":T(s,t);break;default:throw b(t)}}),t.add(s).add(u)}(t,i)}function N(t,i){var n=l("(",!0);if(!K.test(i=a()))throw b(i,"name");var r=i;n&&(l(")"),r="("+r+")",i=c(),Q.test(i)&&(r+=i,a())),l("="),function t(i,n){if(l("{",!0))do{if(!G.test(o=a()))throw b(o,"name");"{"===c()?t(i,n+"."+o):(l(":"),"{"===c()?t(i,n+"."+o):V(i,n+"."+o,g(!0))),l(",",!0)}while(!l("}",!0));else V(i,n,g(!0))}(t,r)}function V(t,i,n){t.setOption&&t.setOption(i,n)}function $(t){if(l("[",!0)){for(;N(t,"option"),l(",",!0););l("]")}return t}for(;null!==(o=a());)switch(o){case"package":if(!d)throw b(o);O();break;case"import":if(!d)throw b(o);E();break;case"syntax":if(!d)throw b(o);A();break;case"option":N(y,o),l(";");break;default:if(x(y,o)){d=!1;continue}throw b(o)}return Y.filename=null,{package:r,imports:e,weakImports:s,syntax:u,root:i}}},{15:15,16:16,20:20,22:22,25:25,29:29,33:33,34:34,35:35,36:36,37:37}],27:[function(t,i){i.exports=o;var n,r=t(39),e=r.LongBits,s=r.utf8;function u(t,i){return RangeError("index out of range: "+t.pos+" + "+(i||1)+" > "+t.len)}function o(t){this.buf=t,this.pos=0,this.len=t.length}var f,h="undefined"!=typeof Uint8Array?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new o(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new o(t);throw Error("illegal buffer")};function a(){var t=new e(0,0),i=0;if(!(4=this.len)throw u(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*i)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(127&this.buf[this.pos++])<<7*i)>>>0,t}for(;i<4;++i)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*i)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t;if(i=0,4>>0,this.buf[this.pos++]<128)return t}else for(;i<5;++i){if(this.pos>=this.len)throw u(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*i+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function c(t,i){return(t[i-4]|t[i-3]<<8|t[i-2]<<16|t[i-1]<<24)>>>0}function l(){if(this.pos+8>this.len)throw u(this,8);return new e(c(this.buf,this.pos+=4),c(this.buf,this.pos+=4))}o.create=r.Buffer?function(t){return(o.create=function(t){return r.Buffer.isBuffer(t)?new n(t):h(t)})(t)}:h,o.prototype.c=r.Array.prototype.subarray||r.Array.prototype.slice,o.prototype.uint32=(f=4294967295,function(){if(f=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return f;if(f=(f|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return f;if((this.pos+=5)>this.len)throw this.pos=this.len,u(this,10);return f}),o.prototype.int32=function(){return 0|this.uint32()},o.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},o.prototype.bool=function(){return 0!==this.uint32()},o.prototype.fixed32=function(){if(this.pos+4>this.len)throw u(this,4);return c(this.buf,this.pos+=4)},o.prototype.sfixed32=function(){if(this.pos+4>this.len)throw u(this,4);return 0|c(this.buf,this.pos+=4)},o.prototype.float=function(){if(this.pos+4>this.len)throw u(this,4);var t=r.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},o.prototype.double=function(){if(this.pos+8>this.len)throw u(this,4);var t=r.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},o.prototype.bytes=function(){var t=this.uint32(),i=this.pos,n=this.pos+t;if(n>this.len)throw u(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(i,n):i===n?new this.buf.constructor(0):this.c.call(this.buf,i,n)},o.prototype.string=function(){var t=this.bytes();return s.read(t,0,t.length)},o.prototype.skip=function(t){if("number"==typeof t){if(this.pos+t>this.len)throw u(this,t);this.pos+=t}else do{if(this.pos>=this.len)throw u(this)}while(128&this.buf[this.pos++]);return this},o.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(t=7&this.uint32());)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this},o.o=function(t){n=t;var i=r.Long?"toLong":"toNumber";r.merge(o.prototype,{int64:function(){return a.call(this)[i](!1)},uint64:function(){return a.call(this)[i](!0)},sint64:function(){return a.call(this).zzDecode()[i](!1)},fixed64:function(){return l.call(this)[i](!0)},sfixed64:function(){return l.call(this)[i](!1)}})}},{39:39}],28:[function(t,i){i.exports=e;var n=t(27);(e.prototype=Object.create(n.prototype)).constructor=e;var r=t(39);function e(t){n.call(this,t)}r.Buffer&&(e.prototype.c=r.Buffer.prototype.slice),e.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len))}},{27:27,39:39}],29:[function(t,i){i.exports=n;var r=t(23);((n.prototype=Object.create(r.prototype)).constructor=n).className="Root";var e,v,d,s=t(16),u=t(15),o=t(25),p=t(37);function n(t){r.call(this,"",t),this.deferred=[],this.files=[]}function y(){}n.fromJSON=function(t,i){return i||(i=new n),t.options&&i.setOptions(t.options),i.addJSON(t.nested)},n.prototype.resolvePath=p.path.resolve,n.prototype.load=function t(i,s,e){"function"==typeof s&&(e=s,s=tt);var u=this;if(!e)return p.asPromise(t,u,i,s);var o=e===y;function f(t,i){if(e){var n=e;if(e=null,o)throw t;n(t,i)}}function h(t){var i=t.lastIndexOf("google/protobuf/");if(-1]/g,E=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,A=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,x=/^ *[*/]+ */,S=/^\s*\*?\/*/,T=/\n/g,N=/\s/,n=/\\(.?)/g,r={0:"\0",r:"\r",n:"\n",t:"\t"};function V(t){return t.replace(n,function(t,i){switch(i){case"\\":case"":return i;default:return r[i]||""}})}function e(o,f){o=o.toString();var h=0,a=o.length,c=1,u=null,l=null,v=0,d=!1,p=[],y=null;function w(t){return Error("illegal "+t+" (line "+c+")")}function b(t){return o.charAt(t)}function m(t,i){u=o.charAt(t++),v=c,d=!1;var n,r=t-(f?2:3);do{if(--r<0||"\n"===(n=o.charAt(r))){d=!0;break}}while(" "===n||"\t"===n);for(var e=o.substring(t,i).split(T),s=0;s>>0,this.hi=i>>>0}var s=e.zero=new e(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1};var r=e.zeroHash="\0\0\0\0\0\0\0\0";e.fromNumber=function(t){if(0===t)return s;var i=t<0;i&&(t=-t);var n=t>>>0,r=(t-n)/4294967296>>>0;return i&&(r=~r>>>0,n=~n>>>0,4294967295<++n&&(n=0,4294967295<++r&&(r=0))),new e(n,r)},e.from=function(t){if("number"==typeof t)return e.fromNumber(t);if(n.isString(t)){if(!n.Long)return e.fromNumber(parseInt(t,10));t=n.Long.fromString(t)}return t.low||t.high?new e(t.low>>>0,t.high>>>0):s},e.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var i=1+~this.lo>>>0,n=~this.hi>>>0;return i||(n=n+1>>>0),-(i+4294967296*n)}return this.lo+4294967296*this.hi},e.prototype.toLong=function(t){return n.Long?new n.Long(0|this.lo,0|this.hi,!!t):{low:0|this.lo,high:0|this.hi,unsigned:!!t}};var u=String.prototype.charCodeAt;e.fromHash=function(t){return t===r?s:new e((u.call(t,0)|u.call(t,1)<<8|u.call(t,2)<<16|u.call(t,3)<<24)>>>0,(u.call(t,4)|u.call(t,5)<<8|u.call(t,6)<<16|u.call(t,7)<<24)>>>0)},e.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},e.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},e.prototype.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},e.prototype.length=function(){var t=this.lo,i=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===i?t<16384?t<128?1:2:t<2097152?3:4:i<16384?i<128?5:6:i<2097152?7:8:n<128?9:10}},{39:39}],39:[function(t,i,n){var r=n;function e(t,i,n){for(var r=Object.keys(i),e=0;e>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;127>>7;i[n++]=t.lo}function d(t,i,n){i[n]=255&t,i[n+1]=t>>>8&255,i[n+2]=t>>>16&255,i[n+3]=t>>>24}a.create=r.Buffer?function(){return(a.create=function(){return new n})()}:function(){return new a},a.alloc=function(t){return new r.Array(t)},r.Array!==Array&&(a.alloc=r.pool(a.alloc,r.Array.prototype.subarray)),a.prototype.g=function(t,i,n){return this.tail=this.tail.next=new o(t,i,n),this.len+=i,this},(l.prototype=Object.create(o.prototype)).fn=function(t,i,n){for(;127>>=7;i[n]=t},a.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new l((t>>>=0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},a.prototype.int32=function(t){return t<0?this.g(v,10,e.fromNumber(t)):this.uint32(t)},a.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},a.prototype.int64=a.prototype.uint64=function(t){var i=e.from(t);return this.g(v,i.length(),i)},a.prototype.sint64=function(t){var i=e.from(t).zzEncode();return this.g(v,i.length(),i)},a.prototype.bool=function(t){return this.g(c,1,t?1:0)},a.prototype.sfixed32=a.prototype.fixed32=function(t){return this.g(d,4,t>>>0)},a.prototype.sfixed64=a.prototype.fixed64=function(t){var i=e.from(t);return this.g(d,4,i.lo).g(d,4,i.hi)},a.prototype.float=function(t){return this.g(r.float.writeFloatLE,4,t)},a.prototype.double=function(t){return this.g(r.float.writeDoubleLE,8,t)};var p=r.Array.prototype.set?function(t,i,n){i.set(t,n)}:function(t,i,n){for(var r=0;r>>0;if(!i)return this.g(c,1,0);if(r.isString(t)){var n=a.alloc(i=s.length(t));s.decode(t,n,0),t=n}return this.uint32(i).g(p,i,t)},a.prototype.string=function(t){var i=u.length(t);return i?this.uint32(i).g(u.write,i,t):this.g(c,1,0)},a.prototype.fork=function(){return this.states=new h(this),this.head=this.tail=new o(f,0,0),this.len=0,this},a.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new o(f,0,0),this.len=0),this},a.prototype.ldelim=function(){var t=this.head,i=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=i,this.len+=n),this},a.prototype.finish=function(){for(var t=this.head.next,i=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,i,n),n+=t.len,t=t.next;return i},a.o=function(t){n=t}},{39:39}],43:[function(t,i){i.exports=s;var n=t(42);(s.prototype=Object.create(n.prototype)).constructor=s;var r=t(39),e=r.Buffer;function s(){n.call(this)}s.alloc=function(t){return(s.alloc=r.b)(t)};var u=e&&e.prototype instanceof Uint8Array&&"set"===e.prototype.set.name?function(t,i,n){i.set(t,n)}:function(t,i,n){if(t.copy)t.copy(i,n,0,t.length);else for(var r=0;r>>0;return this.uint32(i),i&&this.g(u,i,t),this},s.prototype.string=function(t){var i=e.byteLength(t);return this.uint32(i),i&&this.g(o,i,t),this}},{39:39,42:42}]},e={},t=[19],i=function t(i){var n=e[i];return n||r[i][0].call(n=e[i]={exports:{}},t,n,n.exports),n.exports}(t[0]),i.util.global.protobuf=i,"function"==typeof define&&define.amd&&define(["long"],function(t){return t&&t.isLong&&(i.util.Long=t,i.configure()),i}),"object"==typeof module&&module&&module.exports&&(module.exports=i)}(); -//# sourceMappingURL=protobuf.min.js.map diff --git a/gateway/node_modules/@apollo/protobufjs/dist/protobuf.min.js.map b/gateway/node_modules/@apollo/protobufjs/dist/protobuf.min.js.map deleted file mode 100644 index a65c673..0000000 --- a/gateway/node_modules/@apollo/protobufjs/dist/protobuf.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["lib/prelude.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/codegen/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/fetch/index.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/inquire/index.js","../node_modules/@protobufjs/path/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/@protobufjs/utf8/index.js","../src/common.js","../src/converter.js","../src/decoder.js","../src/encoder.js","../src/enum.js","../src/field.js","../src/index-light.js","../src/index-minimal.js","../src/index","../src/mapfield.js","../src/message.js","../src/method.js","../src/namespace.js","../src/object.js","../src/oneof.js","../src/parse.js","../src/reader.js","../src/reader_buffer.js","../src/root.js","../src/roots.js","../src/rpc.js","../src/rpc/service.js","../src/service.js","../src/tokenize.js","../src/type.js","../src/types.js","../src/util.js","../src/util/longbits.js","../src/util/minimal.js","../src/verifier.js","../src/wrappers.js","../src/writer.js","../src/writer_buffer.js"],"names":["undefined","modules","cache","entries","protobuf","1","require","module","exports","fn","ctx","params","Array","arguments","length","offset","index","pending","Promise","resolve","reject","err","apply","base64","string","p","n","charAt","Math","ceil","b64","s64","i","encode","buffer","start","end","t","parts","chunk","j","b","push","String","fromCharCode","slice","join","invalidEncoding","decode","c","charCodeAt","Error","test","codegen","functionParams","functionName","body","Codegen","formatStringOrScope","source","toString","verbose","console","log","scopeKeys","Object","keys","scopeParams","scopeValues","scopeOffset","Function","formatParams","formatOffset","replace","$0","$1","value","floor","JSON","stringify","functionNameOverride","EventEmitter","this","_listeners","prototype","on","evt","off","listeners","splice","emit","args","fetch","asPromise","fs","inquire","filename","options","callback","xhr","readFile","contents","XMLHttpRequest","binary","onreadystatechange","readyState","status","response","responseText","Uint8Array","overrideMimeType","responseType","open","send","factory","Float32Array","f32","f8b","le","writeFloat_f32_cpy","val","buf","pos","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatLE","writeFloatBE","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","isNaN","round","exponent","LN2","pow","readFloat_ieee754","readUint","uint","mantissa","NaN","Infinity","bind","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","lo","hi","moduleName","mod","eval","e","path","isAbsolute","normalize","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","alloc","size","SIZE","MAX","slab","call","utf8","len","read","write","c1","c2","common","timeType","commonRe","name","json","nested","google","Any","fields","type_url","type","id","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","kind","oneof","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","values","NULL_VALUE","ListValue","rule","DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue","FieldMask","paths","get","file","converter","Enum","util","genValuePartial_fromObject","gen","field","fieldIndex","prop","ref","resolvedType","repeated","typeDefault","fullName","isUnsigned","genValuePartial_toObject","fromObject","mtype","fieldsArray","safeProp","map","arrayRef","useToArray","toObject","sort","compareFieldsById","repeatedFields","mapFields","normalFields","partOf","valuesById","long","low","high","unsigned","toNumber","bytes","arrayDefault","hasKs2","_fieldsArray","indexOf","filter","group","types","basic","packed","rfield","required","wireType","mapKey","genTypePartial","optional","ReflectionObject","create","constructor","className","Namespace","comment","comments","TypeError","reserved","fromJSON","enm","toJSON","toJSONOptions","keepComments","add","isString","isInteger","isReservedId","isReservedName","allow_alias","remove","Field","Type","ruleRe","extend","isObject","toLowerCase","message","defaultValue","Long","extensionField","declaringField","_packed","defineProperty","getOption","setOption","ifNotSet","resolved","defaults","parent","lookupTypeOrEnum","fromNumber","freeze","newBuffer","emptyObject","emptyArray","ctor","d","fieldId","fieldType","fieldRule","decorateType","decorateEnum","fieldName","default","_configure","Type_","build","load","root","Root","loadSync","encoder","decoder","verifier","OneOf","MapField","Service","Method","Message","wrappers","configure","Reader","BufferReader","Writer","BufferWriter","rpc","roots","tokenize","parse","resolvedKeyType","fieldKeyType","fieldValueType","properties","$type","writer","encodeDelimited","reader","decodeDelimited","verify","object","requestType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","lookupType","arrayToJSON","array","obj","_nestedArray","clearCache","namespace","addJSON","toArray","nestedArray","nestedJson","names","methods","getEnum","prev","setOptions","onAdd","onRemove","define","isArray","ptr","part","resolveAll","lookup","filterTypes","parentAlreadyChecked","found","lookupEnum","lookupService","Service_","Enum_","defineProperties","unshift","_handleAdd","_handleRemove","Root_","fieldNames","addFieldsToParent","oneofName","oneOfGetter","set","oneOfSetter","keepCase","base10Re","base10NegRe","base16Re","base16NegRe","base8Re","base8NegRe","numberRe","nameRe","typeRefRe","fqTypeRefRe","pkg","imports","weakImports","syntax","token","tn","alternateCommentMode","next","peek","skip","cmnt","head","isProto3","applyCase","camelCase","illegal","insideTryCatch","line","readString","readValue","acceptTypeRef","substring","parseInt","parseFloat","parseNumber","readRanges","target","acceptStrings","parseId","acceptNegative","parsePackage","parseImport","whichImports","parseSyntax","parseCommon","parseOption","ifBlock","valueType","parseInlineOptions","parseMapField","parseField","parseOneOf","extensions","parseType","dummy","parseEnumValue","parseEnum","service","commentText","method","parseMethod","parseService","reference","parseExtension","fnIf","fnElse","trailingLine","lcFirst","ucFirst","parseGroup","isCustom","parseOptionValue","package","LongBits","indexOutOfRange","writeLength","RangeError","create_array","readLongVarint","bits","readFixed32_end","readFixed64","Buffer","isBuffer","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","float","double","skipType","BufferReader_","merge","int64","uint64","sint64","zzDecode","fixed64","sfixed64","utf8Slice","min","deferred","files","SYNC","resolvePath","self","sync","finish","cb","getBundledFileName","idx","lastIndexOf","altname","process","parsed","queued","weak","setTimeout","readFileSync","isNode","exposeRe","tryHandleExtension","extendedType","sisterField","parse_","common_","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","endedByRPC","_methodsArray","inherited","methodsArray","rpcService","methodName","isReserved","m","q","s","delimRe","stringDoubleRe","stringSingleRe","setCommentRe","setCommentAltRe","setCommentSplitRe","whitespaceRe","unescapeRe","unescapeMap","0","r","unescape","str","commentType","commentLine","commentLineEmpty","stack","stringDelim","subject","setComment","commentOffset","lines","trim","isDoubleSlashCommentLine","startOffset","endOffset","findEndOfLine","lineText","cursor","re","lastIndex","match","exec","repeat","curr","isDoc","expected","actual","ret","_fieldsById","_oneofsArray","_ctor","fieldsById","oneofsArray","generateConstructor","ctorProperties","setup","wrapper","originalThis","fork","ldelim","typeName","bake","o","key","safePropBackslashRe","safePropQuoteRe","toUpperCase","camelCaseRe","a","decorateRoot","enumerable","decorateEnumIndex","zero","zzEncode","zeroHash","from","fromString","toLong","fromHash","hash","toHash","mask","part0","part1","part2","dst","src","newError","CustomError","captureStackTrace","pool","global","window","versions","node","Number","isFinite","isset","isSet","hasOwnProperty","utf8Write","_Buffer_from","_Buffer_allocUnsafe","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","fromBits","ProtocolError","fieldMap","longs","enums","encoding","allocUnsafe","seenFirstField","invalid","genVerifyKey","genVerifyValue","oneofProp","substr","Op","noop","State","tail","states","writeByte","VarintOp","writeVarint64","writeFixed32","_push","writeBytes","reset","BufferWriter_","writeBytesBuffer","copy","writeStringBuffer","byteLength","$require","$module","amd","isLong"],"mappings":";;;;;;CAAA,SAAAA,IAAA,aAAA,IAAAC,EAAAC,EAAAC,EAcAC,EAdAH,EAiCA,CAAAI,EAAA,CAAA,SAAAC,EAAAC,GChCAA,EAAAC,QAmBA,SAAAC,EAAAC,GACA,IAAAC,EAAAC,MAAAC,UAAAC,OAAA,GACAC,EAAA,EACAC,EAAA,EACAC,GAAA,EACA,KAAAD,EAAAH,UAAAC,QACAH,EAAAI,KAAAF,UAAAG,KACA,OAAA,IAAAE,QAAA,SAAAC,EAAAC,GACAT,EAAAI,GAAA,SAAAM,GACA,GAAAJ,EAEA,GADAA,GAAA,EACAI,EACAD,EAAAC,OACA,CAGA,IAFA,IAAAV,EAAAC,MAAAC,UAAAC,OAAA,GACAC,EAAA,EACAA,EAAAJ,EAAAG,QACAH,EAAAI,KAAAF,UAAAE,GACAI,EAAAG,MAAA,KAAAX,KAIA,IACAF,EAAAa,MAAAZ,GAAA,KAAAC,GACA,MAAAU,GACAJ,IACAA,GAAA,EACAG,EAAAC,gCCxCA,IAAAE,EAAAf,EAOAe,EAAAT,OAAA,SAAAU,GACA,IAAAC,EAAAD,EAAAV,OACA,IAAAW,EACA,OAAA,EAEA,IADA,IAAAC,EAAA,EACA,IAAAD,EAAA,GAAA,MAAAD,EAAAG,OAAAF,MACAC,EACA,OAAAE,KAAAC,KAAA,EAAAL,EAAAV,QAAA,EAAAY,GAUA,IANA,IAAAI,EAAAlB,MAAA,IAGAmB,EAAAnB,MAAA,KAGAoB,EAAA,EAAAA,EAAA,IACAD,EAAAD,EAAAE,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,EAAAA,EAAA,GAAA,IAAAA,IASAT,EAAAU,OAAA,SAAAC,EAAAC,EAAAC,GAMA,IALA,IAIAC,EAJAC,EAAA,KACAC,EAAA,GACAP,EAAA,EACAQ,EAAA,EAEAL,EAAAC,GAAA,CACA,IAAAK,EAAAP,EAAAC,KACA,OAAAK,GACA,KAAA,EACAD,EAAAP,KAAAF,EAAAW,GAAA,GACAJ,GAAA,EAAAI,IAAA,EACAD,EAAA,EACA,MACA,KAAA,EACAD,EAAAP,KAAAF,EAAAO,EAAAI,GAAA,GACAJ,GAAA,GAAAI,IAAA,EACAD,EAAA,EACA,MACA,KAAA,EACAD,EAAAP,KAAAF,EAAAO,EAAAI,GAAA,GACAF,EAAAP,KAAAF,EAAA,GAAAW,GACAD,EAAA,EAGA,KAAAR,KACAM,IAAAA,EAAA,KAAAI,KAAAC,OAAAC,aAAAtB,MAAAqB,OAAAJ,IACAP,EAAA,GASA,OANAQ,IACAD,EAAAP,KAAAF,EAAAO,GACAE,EAAAP,KAAA,GACA,IAAAQ,IACAD,EAAAP,KAAA,KAEAM,GACAN,GACAM,EAAAI,KAAAC,OAAAC,aAAAtB,MAAAqB,OAAAJ,EAAAM,MAAA,EAAAb,KACAM,EAAAQ,KAAA,KAEAH,OAAAC,aAAAtB,MAAAqB,OAAAJ,EAAAM,MAAA,EAAAb,KAGA,IAAAe,EAAA,mBAUAxB,EAAAyB,OAAA,SAAAxB,EAAAU,EAAAnB,GAIA,IAHA,IAEAsB,EAFAF,EAAApB,EACAyB,EAAA,EAEAR,EAAA,EAAAA,EAAAR,EAAAV,QAAA,CACA,IAAAmC,EAAAzB,EAAA0B,WAAAlB,KACA,GAAA,KAAAiB,GAAA,EAAAT,EACA,MACA,IAAAS,EAAAlB,EAAAkB,MAAAjD,GACA,MAAAmD,MAAAJ,GACA,OAAAP,GACA,KAAA,EACAH,EAAAY,EACAT,EAAA,EACA,MACA,KAAA,EACAN,EAAAnB,KAAAsB,GAAA,GAAA,GAAAY,IAAA,EACAZ,EAAAY,EACAT,EAAA,EACA,MACA,KAAA,EACAN,EAAAnB,MAAA,GAAAsB,IAAA,GAAA,GAAAY,IAAA,EACAZ,EAAAY,EACAT,EAAA,EACA,MACA,KAAA,EACAN,EAAAnB,MAAA,EAAAsB,IAAA,EAAAY,EACAT,EAAA,GAIA,GAAA,IAAAA,EACA,MAAAW,MAAAJ,GACA,OAAAhC,EAAAoB,GAQAZ,EAAA6B,KAAA,SAAA5B,GACA,MAAA,mEAAA4B,KAAA5B,0BC/HA,SAAA6B,EAAAC,EAAAC,GAGA,iBAAAD,IACAC,EAAAD,EACAA,EAAAtD,IAGA,IAAAwD,EAAA,GAYA,SAAAC,EAAAC,GAIA,GAAA,iBAAAA,EAAA,CACA,IAAAC,EAAAC,IAIA,GAHAP,EAAAQ,SACAC,QAAAC,IAAA,YAAAJ,GACAA,EAAA,UAAAA,EACAD,EAAA,CAKA,IAJA,IAAAM,EAAAC,OAAAC,KAAAR,GACAS,EAAAvD,MAAAoD,EAAAlD,OAAA,GACAsD,EAAAxD,MAAAoD,EAAAlD,QACAuD,EAAA,EACAA,EAAAL,EAAAlD,QACAqD,EAAAE,GAAAL,EAAAK,GACAD,EAAAC,GAAAX,EAAAM,EAAAK,MAGA,OADAF,EAAAE,GAAAV,EACAW,SAAAhD,MAAA,KAAA6C,GAAA7C,MAAA,KAAA8C,GAEA,OAAAE,SAAAX,EAAAW,GAMA,IAFA,IAAAC,EAAA3D,MAAAC,UAAAC,OAAA,GACA0D,EAAA,EACAA,EAAAD,EAAAzD,QACAyD,EAAAC,GAAA3D,YAAA2D,GAYA,GAXAA,EAAA,EACAd,EAAAA,EAAAe,QAAA,eAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAL,EAAAC,KACA,OAAAG,GACA,IAAA,IAAA,IAAA,IAAA,OAAAC,EAAAjC,GACA,IAAA,IAAA,OAAAf,KAAAiD,MAAAD,GAAAjC,GACA,IAAA,IAAA,OAAAmC,KAAAC,UAAAH,GACA,IAAA,IAAA,OAAAA,EAAAjC,GAEA,MAAA,MAEA6B,IAAAD,EAAAzD,OACA,MAAAqC,MAAA,4BAEA,OADAK,EAAAd,KAAAgB,GACAD,EAGA,SAAAG,EAAAoB,GACA,MAAA,aAAAA,GAAAzB,GAAA,IAAA,KAAAD,GAAAA,EAAAR,KAAA,MAAA,IAAA,SAAAU,EAAAV,KAAA,QAAA,MAIA,OADAW,EAAAG,SAAAA,EACAH,GAhFAlD,EAAAC,QAAA6C,GAiGAQ,SAAA,wBCzFA,SAAAoB,IAOAC,KAAAC,EAAA,IAfA5E,EAAAC,QAAAyE,GAyBAG,UAAAC,GAAA,SAAAC,EAAA7E,EAAAC,GAKA,OAJAwE,KAAAC,EAAAG,KAAAJ,KAAAC,EAAAG,GAAA,KAAA5C,KAAA,CACAjC,GAAAA,EACAC,IAAAA,GAAAwE,OAEAA,MASAD,EAAAG,UAAAG,IAAA,SAAAD,EAAA7E,GACA,GAAA6E,IAAAtF,GACAkF,KAAAC,EAAA,QAEA,GAAA1E,IAAAT,GACAkF,KAAAC,EAAAG,GAAA,QAGA,IADA,IAAAE,EAAAN,KAAAC,EAAAG,GACAtD,EAAA,EAAAA,EAAAwD,EAAA1E,QACA0E,EAAAxD,GAAAvB,KAAAA,EACA+E,EAAAC,OAAAzD,EAAA,KAEAA,EAGA,OAAAkD,MASAD,EAAAG,UAAAM,KAAA,SAAAJ,GACA,IAAAE,EAAAN,KAAAC,EAAAG,GACA,GAAAE,EAAA,CAGA,IAFA,IAAAG,EAAA,GACA3D,EAAA,EACAA,EAAAnB,UAAAC,QACA6E,EAAAjD,KAAA7B,UAAAmB,MACA,IAAAA,EAAA,EAAAA,EAAAwD,EAAA1E,QACA0E,EAAAxD,GAAAvB,GAAAa,MAAAkE,EAAAxD,KAAAtB,IAAAiF,GAEA,OAAAT,4BCzEA3E,EAAAC,QAAAoF,EAEA,IAAAC,EAAAvF,EAAA,GAGAwF,EAFAxF,EAAA,EAEAyF,CAAA,MA2BA,SAAAH,EAAAI,EAAAC,EAAAC,GAOA,MANA,mBAAAD,GACAC,EAAAD,EACAA,EAAA,IACAA,IACAA,EAAA,IAEAC,GAIAD,EAAAE,KAAAL,GAAAA,EAAAM,SACAN,EAAAM,SAAAJ,EAAA,SAAA3E,EAAAgF,GACA,OAAAhF,GAAA,oBAAAiF,eACAV,EAAAO,IAAAH,EAAAC,EAAAC,GACA7E,EACA6E,EAAA7E,GACA6E,EAAA,KAAAD,EAAAM,OAAAF,EAAAA,EAAAzC,SAAA,WAIAgC,EAAAO,IAAAH,EAAAC,EAAAC,GAbAL,EAAAD,EAAAV,KAAAc,EAAAC,GAqCAL,EAAAO,IAAA,SAAAH,EAAAC,EAAAC,GACA,IAAAC,EAAA,IAAAG,eACAH,EAAAK,mBAAA,WAEA,GAAA,IAAAL,EAAAM,WACA,OAAAzG,GAKA,GAAA,IAAAmG,EAAAO,QAAA,MAAAP,EAAAO,OACA,OAAAR,EAAA/C,MAAA,UAAAgD,EAAAO,SAIA,GAAAT,EAAAM,OAAA,CACA,IAAArE,EAAAiE,EAAAQ,SACA,IAAAzE,EAAA,CACAA,EAAA,GACA,IAAA,IAAAF,EAAA,EAAAA,EAAAmE,EAAAS,aAAA9F,SAAAkB,EACAE,EAAAQ,KAAA,IAAAyD,EAAAS,aAAA1D,WAAAlB,IAEA,OAAAkE,EAAA,KAAA,oBAAAW,WAAA,IAAAA,WAAA3E,GAAAA,GAEA,OAAAgE,EAAA,KAAAC,EAAAS,eAGAX,EAAAM,SAEA,qBAAAJ,GACAA,EAAAW,iBAAA,sCACAX,EAAAY,aAAA,eAGAZ,EAAAa,KAAA,MAAAhB,GACAG,EAAAc,qCC1BA,SAAAC,EAAA1G,GAwNA,MArNA,oBAAA2G,aAAA,WAEA,IAAAC,EAAA,IAAAD,aAAA,EAAA,IACAE,EAAA,IAAAR,WAAAO,EAAAlF,QACAoF,EAAA,MAAAD,EAAA,GAEA,SAAAE,EAAAC,EAAAC,EAAAC,GACAN,EAAA,GAAAI,EACAC,EAAAC,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GAGA,SAAAM,EAAAH,EAAAC,EAAAC,GACAN,EAAA,GAAAI,EACAC,EAAAC,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GAQA,SAAAO,EAAAH,EAAAC,GAKA,OAJAL,EAAA,GAAAI,EAAAC,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAN,EAAA,GAGA,SAAAS,EAAAJ,EAAAC,GAKA,OAJAL,EAAA,GAAAI,EAAAC,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAN,EAAA,GAjBA5G,EAAAsH,aAAAR,EAAAC,EAAAI,EAEAnH,EAAAuH,aAAAT,EAAAK,EAAAJ,EAmBA/G,EAAAwH,YAAAV,EAAAM,EAAAC,EAEArH,EAAAyH,YAAAX,EAAAO,EAAAD,EA9CA,GAiDA,WAEA,SAAAM,EAAAC,EAAAX,EAAAC,EAAAC,GACA,IAAAU,EAAAZ,EAAA,EAAA,EAAA,EAGA,GAFAY,IACAZ,GAAAA,GACA,IAAAA,EACAW,EAAA,EAAA,EAAAX,EAAA,EAAA,WAAAC,EAAAC,QACA,GAAAW,MAAAb,GACAW,EAAA,WAAAV,EAAAC,QACA,GAAA,qBAAAF,EACAW,GAAAC,GAAA,GAAA,cAAA,EAAAX,EAAAC,QACA,GAAAF,EAAA,sBACAW,GAAAC,GAAA,GAAAxG,KAAA0G,MAAAd,EAAA,yBAAA,EAAAC,EAAAC,OACA,CACA,IAAAa,EAAA3G,KAAAiD,MAAAjD,KAAAmC,IAAAyD,GAAA5F,KAAA4G,KAEAL,GAAAC,GAAA,GAAAG,EAAA,KAAA,GADA,QAAA3G,KAAA0G,MAAAd,EAAA5F,KAAA6G,IAAA,GAAAF,GAAA,YACA,EAAAd,EAAAC,IAOA,SAAAgB,EAAAC,EAAAlB,EAAAC,GACA,IAAAkB,EAAAD,EAAAlB,EAAAC,GACAU,EAAA,GAAAQ,GAAA,IAAA,EACAL,EAAAK,IAAA,GAAA,IACAC,EAAA,QAAAD,EACA,OAAA,MAAAL,EACAM,EACAC,IACAV,GAAAW,EAAAA,GACA,IAAAR,EACA,qBAAAH,EAAAS,EACAT,EAAAxG,KAAA6G,IAAA,EAAAF,EAAA,MAAAM,EAAA,SAdArI,EAAAsH,aAAAI,EAAAc,KAAA,KAAAC,GACAzI,EAAAuH,aAAAG,EAAAc,KAAA,KAAAE,GAgBA1I,EAAAwH,YAAAU,EAAAM,KAAA,KAAAG,GACA3I,EAAAyH,YAAAS,EAAAM,KAAA,KAAAI,GAvCA,GA4CA,oBAAAC,aAAA,WAEA,IAAAC,EAAA,IAAAD,aAAA,EAAA,IACAhC,EAAA,IAAAR,WAAAyC,EAAApH,QACAoF,EAAA,MAAAD,EAAA,GAEA,SAAAkC,EAAA/B,EAAAC,EAAAC,GACA4B,EAAA,GAAA9B,EACAC,EAAAC,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GAGA,SAAAmC,EAAAhC,EAAAC,EAAAC,GACA4B,EAAA,GAAA9B,EACAC,EAAAC,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GACAI,EAAAC,EAAA,GAAAL,EAAA,GAQA,SAAAoC,EAAAhC,EAAAC,GASA,OARAL,EAAA,GAAAI,EAAAC,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACA4B,EAAA,GAGA,SAAAI,EAAAjC,EAAAC,GASA,OARAL,EAAA,GAAAI,EAAAC,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACAL,EAAA,GAAAI,EAAAC,EAAA,GACA4B,EAAA,GAzBA9I,EAAAmJ,cAAArC,EAAAiC,EAAAC,EAEAhJ,EAAAoJ,cAAAtC,EAAAkC,EAAAD,EA2BA/I,EAAAqJ,aAAAvC,EAAAmC,EAAAC,EAEAlJ,EAAAsJ,aAAAxC,EAAAoC,EAAAD,EA9DA,GAiEA,WAEA,SAAAM,EAAA5B,EAAA6B,EAAAC,EAAAzC,EAAAC,EAAAC,GACA,IAAAU,EAAAZ,EAAA,EAAA,EAAA,EAGA,GAFAY,IACAZ,GAAAA,GACA,IAAAA,EACAW,EAAA,EAAAV,EAAAC,EAAAsC,GACA7B,EAAA,EAAA,EAAAX,EAAA,EAAA,WAAAC,EAAAC,EAAAuC,QACA,GAAA5B,MAAAb,GACAW,EAAA,EAAAV,EAAAC,EAAAsC,GACA7B,EAAA,WAAAV,EAAAC,EAAAuC,QACA,GAAA,sBAAAzC,EACAW,EAAA,EAAAV,EAAAC,EAAAsC,GACA7B,GAAAC,GAAA,GAAA,cAAA,EAAAX,EAAAC,EAAAuC,OACA,CACA,IAAApB,EACA,GAAArB,EAAA,uBAEAW,GADAU,EAAArB,EAAA,UACA,EAAAC,EAAAC,EAAAsC,GACA7B,GAAAC,GAAA,GAAAS,EAAA,cAAA,EAAApB,EAAAC,EAAAuC,OACA,CACA,IAAA1B,EAAA3G,KAAAiD,MAAAjD,KAAAmC,IAAAyD,GAAA5F,KAAA4G,KACA,OAAAD,IACAA,EAAA,MAEAJ,EAAA,kBADAU,EAAArB,EAAA5F,KAAA6G,IAAA,GAAAF,MACA,EAAAd,EAAAC,EAAAsC,GACA7B,GAAAC,GAAA,GAAAG,EAAA,MAAA,GAAA,QAAAM,EAAA,WAAA,EAAApB,EAAAC,EAAAuC,KAQA,SAAAC,EAAAvB,EAAAqB,EAAAC,EAAAxC,EAAAC,GACA,IAAAyC,EAAAxB,EAAAlB,EAAAC,EAAAsC,GACAI,EAAAzB,EAAAlB,EAAAC,EAAAuC,GACA7B,EAAA,GAAAgC,GAAA,IAAA,EACA7B,EAAA6B,IAAA,GAAA,KACAvB,EAAA,YAAA,QAAAuB,GAAAD,EACA,OAAA,OAAA5B,EACAM,EACAC,IACAV,GAAAW,EAAAA,GACA,IAAAR,EACA,OAAAH,EAAAS,EACAT,EAAAxG,KAAA6G,IAAA,EAAAF,EAAA,OAAAM,EAAA,kBAfArI,EAAAmJ,cAAAI,EAAAf,KAAA,KAAAC,EAAA,EAAA,GACAzI,EAAAoJ,cAAAG,EAAAf,KAAA,KAAAE,EAAA,EAAA,GAiBA1I,EAAAqJ,aAAAK,EAAAlB,KAAA,KAAAG,EAAA,EAAA,GACA3I,EAAAsJ,aAAAI,EAAAlB,KAAA,KAAAI,EAAA,EAAA,GAnDA,GAuDA5I,EAKA,SAAAyI,EAAAzB,EAAAC,EAAAC,GACAD,EAAAC,GAAA,IAAAF,EACAC,EAAAC,EAAA,GAAAF,IAAA,EAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,GAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,GAGA,SAAA0B,EAAA1B,EAAAC,EAAAC,GACAD,EAAAC,GAAAF,IAAA,GACAC,EAAAC,EAAA,GAAAF,IAAA,GAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,EAAA,IACAC,EAAAC,EAAA,GAAA,IAAAF,EAGA,SAAA2B,EAAA1B,EAAAC,GACA,OAAAD,EAAAC,GACAD,EAAAC,EAAA,IAAA,EACAD,EAAAC,EAAA,IAAA,GACAD,EAAAC,EAAA,IAAA,MAAA,EAGA,SAAA0B,EAAA3B,EAAAC,GACA,OAAAD,EAAAC,IAAA,GACAD,EAAAC,EAAA,IAAA,GACAD,EAAAC,EAAA,IAAA,EACAD,EAAAC,EAAA,MAAA,EA3UAnH,EAAAC,QAAA0G,EAAAA,2BCOA,SAAAnB,EAAAsE,GACA,IACA,IAAAC,EAAAC,KAAA,UAAAA,CAAAF,GACA,GAAAC,IAAAA,EAAAxJ,QAAAmD,OAAAC,KAAAoG,GAAAxJ,QACA,OAAAwJ,EACA,MAAAE,IACA,OAAA,KAdAjK,EAAAC,QAAAuF,0BCMA,IAAA0E,EAAAjK,EAEAkK,EAMAD,EAAAC,WAAA,SAAAD,GACA,MAAA,eAAArH,KAAAqH,IAGAE,EAMAF,EAAAE,UAAA,SAAAF,GAGA,IAAAnI,GAFAmI,EAAAA,EAAAhG,QAAA,MAAA,KACAA,QAAA,UAAA,MACAmG,MAAA,KACAC,EAAAH,EAAAD,GACAK,EAAA,GACAD,IACAC,EAAAxI,EAAAyI,QAAA,KACA,IAAA,IAAA/I,EAAA,EAAAA,EAAAM,EAAAxB,QACA,OAAAwB,EAAAN,GACA,EAAAA,GAAA,OAAAM,EAAAN,EAAA,GACAM,EAAAmD,SAAAzD,EAAA,GACA6I,EACAvI,EAAAmD,OAAAzD,EAAA,KAEAA,EACA,MAAAM,EAAAN,GACAM,EAAAmD,OAAAzD,EAAA,KAEAA,EAEA,OAAA8I,EAAAxI,EAAAQ,KAAA,MAUA2H,EAAAtJ,QAAA,SAAA6J,EAAAC,EAAAC,GAGA,OAFAA,IACAD,EAAAN,EAAAM,IACAP,EAAAO,GACAA,GACAC,IACAF,EAAAL,EAAAK,KACAA,EAAAA,EAAAvG,QAAA,iBAAA,KAAA3D,OAAA6J,EAAAK,EAAA,IAAAC,GAAAA,0BC9DA1K,EAAAC,QA6BA,SAAA2K,EAAAtI,EAAAuI,GACA,IAAAC,EAAAD,GAAA,KACAE,EAAAD,IAAA,EACAE,EAAA,KACAxK,EAAAsK,EACA,OAAA,SAAAD,GACA,GAAAA,EAAA,GAAAE,EAAAF,EACA,OAAAD,EAAAC,GACAC,EAAAtK,EAAAqK,IACAG,EAAAJ,EAAAE,GACAtK,EAAA,GAEA,IAAA0G,EAAA5E,EAAA2I,KAAAD,EAAAxK,EAAAA,GAAAqK,GAGA,OAFA,EAAArK,IACAA,EAAA,GAAA,EAAAA,IACA0G,6BCtCA,IAAAgE,EAAAjL,EAOAiL,EAAA3K,OAAA,SAAAU,GAGA,IAFA,IAAAkK,EAAA,EACAzI,EAAA,EACAjB,EAAA,EAAAA,EAAAR,EAAAV,SAAAkB,GACAiB,EAAAzB,EAAA0B,WAAAlB,IACA,IACA0J,GAAA,EACAzI,EAAA,KACAyI,GAAA,EACA,QAAA,MAAAzI,IAAA,QAAA,MAAAzB,EAAA0B,WAAAlB,EAAA,OACAA,EACA0J,GAAA,GAEAA,GAAA,EAEA,OAAAA,GAUAD,EAAAE,KAAA,SAAAzJ,EAAAC,EAAAC,GAEA,GADAA,EAAAD,EACA,EACA,MAAA,GAKA,IAJA,IAGAE,EAHAC,EAAA,KACAC,EAAA,GACAP,EAAA,EAEAG,EAAAC,IACAC,EAAAH,EAAAC,MACA,IACAI,EAAAP,KAAAK,EACA,IAAAA,GAAAA,EAAA,IACAE,EAAAP,MAAA,GAAAK,IAAA,EAAA,GAAAH,EAAAC,KACA,IAAAE,GAAAA,EAAA,KACAA,IAAA,EAAAA,IAAA,IAAA,GAAAH,EAAAC,OAAA,IAAA,GAAAD,EAAAC,OAAA,EAAA,GAAAD,EAAAC,MAAA,MACAI,EAAAP,KAAA,OAAAK,GAAA,IACAE,EAAAP,KAAA,OAAA,KAAAK,IAEAE,EAAAP,MAAA,GAAAK,IAAA,IAAA,GAAAH,EAAAC,OAAA,EAAA,GAAAD,EAAAC,KACA,KAAAH,KACAM,IAAAA,EAAA,KAAAI,KAAAC,OAAAC,aAAAtB,MAAAqB,OAAAJ,IACAP,EAAA,GAGA,OAAAM,GACAN,GACAM,EAAAI,KAAAC,OAAAC,aAAAtB,MAAAqB,OAAAJ,EAAAM,MAAA,EAAAb,KACAM,EAAAQ,KAAA,KAEAH,OAAAC,aAAAtB,MAAAqB,OAAAJ,EAAAM,MAAA,EAAAb,KAUAyJ,EAAAG,MAAA,SAAApK,EAAAU,EAAAnB,GAIA,IAHA,IACA8K,EACAC,EAFA3J,EAAApB,EAGAiB,EAAA,EAAAA,EAAAR,EAAAV,SAAAkB,GACA6J,EAAArK,EAAA0B,WAAAlB,IACA,IACAE,EAAAnB,KAAA8K,GACAA,EAAA,KACA3J,EAAAnB,KAAA8K,GAAA,EAAA,KAEA,QAAA,MAAAA,IAAA,QAAA,OAAAC,EAAAtK,EAAA0B,WAAAlB,EAAA,MACA6J,EAAA,QAAA,KAAAA,IAAA,KAAA,KAAAC,KACA9J,EACAE,EAAAnB,KAAA8K,GAAA,GAAA,IACA3J,EAAAnB,KAAA8K,GAAA,GAAA,GAAA,KAIA3J,EAAAnB,KAAA8K,GAAA,GAAA,IAHA3J,EAAAnB,KAAA8K,GAAA,EAAA,GAAA,KANA3J,EAAAnB,KAAA,GAAA8K,EAAA,KAcA,OAAA9K,EAAAoB,0BCtGA5B,EAAAC,QAAAuL,EAEA,IA+DAC,EA/DAC,EAAA,QAsBA,SAAAF,EAAAG,EAAAC,GACAF,EAAA7I,KAAA8I,KACAA,EAAA,mBAAAA,EAAA,SACAC,EAAA,CAAAC,OAAA,CAAAC,OAAA,CAAAD,OAAA,CAAAhM,SAAA,CAAAgM,OAAAD,QAEAJ,EAAAG,GAAAC,EAYAJ,EAAA,MAAA,CAUAO,IAAA,CACAC,OAAA,CACAC,SAAA,CACAC,KAAA,SACAC,GAAA,GAEA9H,MAAA,CACA6H,KAAA,QACAC,GAAA,OAQAX,EAAA,WAAA,CAUAY,SAAAX,EAAA,CACAO,OAAA,CACAK,QAAA,CACAH,KAAA,QACAC,GAAA,GAEAG,MAAA,CACAJ,KAAA,QACAC,GAAA,OAMAX,EAAA,YAAA,CAUAe,UAAAd,IAGAD,EAAA,QAAA,CAOAgB,MAAA,CACAR,OAAA,MAIAR,EAAA,SAAA,CASAiB,OAAA,CACAT,OAAA,CACAA,OAAA,CACAU,QAAA,SACAR,KAAA,QACAC,GAAA,KAkBAQ,MAAA,CACAC,OAAA,CACAC,KAAA,CACAC,MAAA,CACA,YACA,cACA,cACA,YACA,cACA,eAIAd,OAAA,CACAe,UAAA,CACAb,KAAA,YACAC,GAAA,GAEAa,YAAA,CACAd,KAAA,SACAC,GAAA,GAEAc,YAAA,CACAf,KAAA,SACAC,GAAA,GAEAe,UAAA,CACAhB,KAAA,OACAC,GAAA,GAEAgB,YAAA,CACAjB,KAAA,SACAC,GAAA,GAEAiB,UAAA,CACAlB,KAAA,YACAC,GAAA,KAKAkB,UAAA,CACAC,OAAA,CACAC,WAAA,IAWAC,UAAA,CACAxB,OAAA,CACAsB,OAAA,CACAG,KAAA,WACAvB,KAAA,QACAC,GAAA,OAMAX,EAAA,WAAA,CASAkC,YAAA,CACA1B,OAAA,CACA3H,MAAA,CACA6H,KAAA,SACAC,GAAA,KAYAwB,WAAA,CACA3B,OAAA,CACA3H,MAAA,CACA6H,KAAA,QACAC,GAAA,KAYAyB,WAAA,CACA5B,OAAA,CACA3H,MAAA,CACA6H,KAAA,QACAC,GAAA,KAYA0B,YAAA,CACA7B,OAAA,CACA3H,MAAA,CACA6H,KAAA,SACAC,GAAA,KAYA2B,WAAA,CACA9B,OAAA,CACA3H,MAAA,CACA6H,KAAA,QACAC,GAAA,KAYA4B,YAAA,CACA/B,OAAA,CACA3H,MAAA,CACA6H,KAAA,SACAC,GAAA,KAYA6B,UAAA,CACAhC,OAAA,CACA3H,MAAA,CACA6H,KAAA,OACAC,GAAA,KAYA8B,YAAA,CACAjC,OAAA,CACA3H,MAAA,CACA6H,KAAA,SACAC,GAAA,KAYA+B,WAAA,CACAlC,OAAA,CACA3H,MAAA,CACA6H,KAAA,QACAC,GAAA,OAMAX,EAAA,aAAA,CASA2C,UAAA,CACAnC,OAAA,CACAoC,MAAA,CACAX,KAAA,WACAvB,KAAA,SACAC,GAAA,OAqBAX,EAAA6C,IAAA,SAAAC,GACA,OAAA9C,EAAA8C,IAAA,+BCxYA,IAAAC,EAAAtO,EAEAuO,EAAAzO,EAAA,IACA0O,EAAA1O,EAAA,IAWA,SAAA2O,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAKA,GAHAA,IAAAtP,KACAsP,EAAA,IAAAD,GAEAF,EAAAI,aACA,GAAAJ,EAAAI,wBAAAR,EAAA,CAAAG,EACA,cAAAI,GACA,IAAA,IAAAzB,EAAAsB,EAAAI,aAAA1B,OAAA3J,EAAAD,OAAAC,KAAA2J,GAAA7L,EAAA,EAAAA,EAAAkC,EAAApD,SAAAkB,EACAmN,EAAAK,UAAA3B,EAAA3J,EAAAlC,MAAAmN,EAAAM,aAAAP,EACA,YACAA,EACA,UAAAhL,EAAAlC,GADAkN,CAEA,WAAArB,EAAA3J,EAAAlC,IAFAkN,CAGA,SAAAG,EAAAxB,EAAA3J,EAAAlC,IAHAkN,CAIA,SACAA,EACA,UACAA,EACA,2BAAAI,EADAJ,CAEA,sBAAAC,EAAAO,SAAA,oBAFAR,CAGA,+BAAAG,EAAAD,EAAAE,OACA,CACA,IAAAK,GAAA,EACA,OAAAR,EAAA1C,MACA,IAAA,SACA,IAAA,QAAAyC,EACA,iBAAAG,EAAAC,GACA,MACA,IAAA,SACA,IAAA,UAAAJ,EACA,aAAAG,EAAAC,GACA,MACA,IAAA,QACA,IAAA,SACA,IAAA,WAAAJ,EACA,WAAAG,EAAAC,GACA,MACA,IAAA,SACAK,GAAA,EAEA,IAAA,QACA,IAAA,SACA,IAAA,UACA,IAAA,WAAAT,EACA,gBADAA,CAEA,4CAAAG,EAAAC,EAAAK,EAFAT,CAGA,gCAAAI,EAHAJ,CAIA,sBAAAG,EAAAC,EAJAJ,CAKA,gCAAAI,EALAJ,CAMA,SAAAG,EAAAC,EANAJ,CAOA,gCAAAI,EAPAJ,CAQA,6DAAAG,EAAAC,EAAAA,EAAAK,EAAA,OAAA,IACA,MACA,IAAA,QAAAT,EACA,2BAAAI,EADAJ,CAEA,sEAAAI,EAAAD,EAAAC,EAFAJ,CAGA,qBAAAI,EAHAJ,CAIA,SAAAG,EAAAC,GACA,MACA,IAAA,SAAAJ,EACA,iBAAAG,EAAAC,GACA,MACA,IAAA,OAAAJ,EACA,kBAAAG,EAAAC,IAOA,OAAAJ,EA2EA,SAAAU,EAAAV,EAAAC,EAAAC,EAAAC,GAEA,GAAAF,EAAAI,aACAJ,EAAAI,wBAAAR,EAAAG,EACA,iDAAAG,EAAAD,EAAAC,EAAAA,GACAH,EACA,gCAAAG,EAAAD,EAAAC,OACA,CACA,IAAAM,GAAA,EACA,OAAAR,EAAA1C,MACA,IAAA,SACA,IAAA,QAAAyC,EACA,6CAAAG,EAAAA,EAAAA,EAAAA,GACA,MACA,IAAA,SACAM,GAAA,EAEA,IAAA,QACA,IAAA,SACA,IAAA,UACA,IAAA,WAAAT,EACA,4BAAAG,EADAH,CAEA,uCAAAG,EAAAA,EAAAA,EAFAH,CAGA,OAHAA,CAIA,4IAAAG,EAAAA,EAAAA,EAAAA,EAAAM,EAAA,OAAA,GAAAN,GACA,MACA,IAAA,QAAAH,EACA,gHAAAG,EAAAA,EAAAA,EAAAA,EAAAA,GACA,MACA,QAAAH,EACA,UAAAG,EAAAA,IAIA,OAAAH,EApGAJ,EAAAe,WAAA,SAAAC,GAEA,IAAAvD,EAAAuD,EAAAC,YACAb,EAAAF,EAAA3L,QAAA,CAAA,KAAAyM,EAAA5D,KAAA,cAAA8C,CACA,6BADAA,CAEA,YACA,IAAAzC,EAAAzL,OAAA,OAAAoO,EACA,wBACAA,EACA,uBACA,IAAA,IAAAlN,EAAA,EAAAA,EAAAuK,EAAAzL,SAAAkB,EAAA,CACA,IAAAmN,EAAA5C,EAAAvK,GAAAb,UACAkO,EAAAL,EAAAgB,SAAAb,EAAAjD,MAGA,GAAAiD,EAAAc,IAAAf,EACA,WAAAG,EADAH,CAEA,4BAAAG,EAFAH,CAGA,sBAAAC,EAAAO,SAAA,oBAHAR,CAIA,SAAAG,EAJAH,CAKA,oDAAAG,GACAJ,EAAAC,EAAAC,EAAAnN,EAAAqN,EAAA,UAAAJ,CACA,IADAA,CAEA,UAGA,GAAAE,EAAAK,SAAA,CACAN,EAAA,WAAAG,GACA,IAAAa,EAAA,IAAAb,EACAF,EAAAgB,eAEAjB,EAAA,SADAgB,EAAA,QAAAf,EAAAzC,IAEAwC,EAAA,uEACAG,EAAAA,EAAAa,EAAAb,EAAAa,EAAAb,IAEAH,EACA,yBAAAgB,EADAhB,CAEA,sBAAAC,EAAAO,SAAA,mBAFAR,CAGA,SAAAG,EAHAH,CAIA,gCAAAgB,GACAjB,EAAAC,EAAAC,EAAAnN,EAAAqN,EAAA,MAAAa,EAAA,MAAAjB,CACA,IADAA,CAEA,UAIAE,EAAAI,wBAAAR,GAAAG,EACA,iBAAAG,GACAJ,EAAAC,EAAAC,EAAAnN,EAAAqN,GACAF,EAAAI,wBAAAR,GAAAG,EACA,KAEA,OAAAA,EACA,aAwDAJ,EAAAsB,SAAA,SAAAN,GAEA,IAAAvD,EAAAuD,EAAAC,YAAAlN,QAAAwN,KAAArB,EAAAsB,mBACA,IAAA/D,EAAAzL,OACA,OAAAkO,EAAA3L,SAAA2L,CAAA,aAUA,IATA,IAAAE,EAAAF,EAAA3L,QAAA,CAAA,IAAA,KAAAyM,EAAA5D,KAAA,YAAA8C,CACA,SADAA,CAEA,OAFAA,CAGA,YAEAuB,EAAA,GACAC,EAAA,GACAC,EAAA,GACAzO,EAAA,EACAA,EAAAuK,EAAAzL,SAAAkB,EACAuK,EAAAvK,GAAA0O,SACAnE,EAAAvK,GAAAb,UAAAqO,SAAAe,EACAhE,EAAAvK,GAAAiO,IAAAO,EACAC,GAAA/N,KAAA6J,EAAAvK,IAEA,GAAAuO,EAAAzP,OAAA,CAEA,IAFAoO,EACA,6BACAlN,EAAA,EAAAA,EAAAuO,EAAAzP,SAAAkB,EAAAkN,EACA,SAAAF,EAAAgB,SAAAO,EAAAvO,GAAAkK,OACAgD,EACA,KAGA,GAAAsB,EAAA1P,OAAA,CAEA,IAFAoO,EACA,8BACAlN,EAAA,EAAAA,EAAAwO,EAAA1P,SAAAkB,EAAAkN,EACA,SAAAF,EAAAgB,SAAAQ,EAAAxO,GAAAkK,OACAgD,EACA,KAGA,GAAAuB,EAAA3P,OAAA,CAEA,IAFAoO,EACA,mBACAlN,EAAA,EAAAA,EAAAyO,EAAA3P,SAAAkB,EAAA,CACA,IAAAmN,EAAAsB,EAAAzO,GACAqN,EAAAL,EAAAgB,SAAAb,EAAAjD,MACA,GAAAiD,EAAAI,wBAAAR,EAAAG,EACA,6BAAAG,EAAAF,EAAAI,aAAAoB,WAAAxB,EAAAM,aAAAN,EAAAM,kBACA,GAAAN,EAAAyB,KAAA1B,EACA,iBADAA,CAEA,gCAAAC,EAAAM,YAAAoB,IAAA1B,EAAAM,YAAAqB,KAAA3B,EAAAM,YAAAsB,SAFA7B,CAGA,oEAAAG,EAHAH,CAIA,QAJAA,CAKA,6BAAAG,EAAAF,EAAAM,YAAA7L,WAAAuL,EAAAM,YAAAuB,iBACA,GAAA7B,EAAA8B,MAAA,CACA,IAAAC,EAAA,IAAAtQ,MAAAwE,UAAAvC,MAAA2I,KAAA2D,EAAAM,aAAA3M,KAAA,KAAA,IACAoM,EACA,6BAAAG,EAAA1M,OAAAC,aAAAtB,MAAAqB,OAAAwM,EAAAM,aADAP,CAEA,QAFAA,CAGA,SAAAG,EAAA6B,EAHAhC,CAIA,6CAAAG,EAAAA,EAJAH,CAKA,UACAA,EACA,SAAAG,EAAAF,EAAAM,aACAP,EACA,KAEA,IAAAiC,GAAA,EACA,IAAAnP,EAAA,EAAAA,EAAAuK,EAAAzL,SAAAkB,EAAA,CACAmN,EAAA5C,EAAAvK,GAAA,IACAhB,EAAA8O,EAAAsB,EAAAC,QAAAlC,GACAE,EAAAL,EAAAgB,SAAAb,EAAAjD,MACAiD,EAAAc,KACAkB,IAAAA,GAAA,EAAAjC,EACA,YACAA,EACA,0CAAAG,EAAAA,EADAH,CAEA,SAAAG,EAFAH,CAGA,kCACAU,EAAAV,EAAAC,EAAAnO,EAAAqO,EAAA,WAAAO,CACA,MACAT,EAAAK,UAAAN,EACA,uBAAAG,EAAAA,EADAH,CAEA,SAAAG,EAFAH,CAGA,iCAAAG,GACAO,EAAAV,EAAAC,EAAAnO,EAAAqO,EAAA,MAAAO,CACA,OACAV,EACA,uCAAAG,EAAAF,EAAAjD,MACA0D,EAAAV,EAAAC,EAAAnO,EAAAqO,GACAF,EAAAuB,QAAAxB,EACA,eADAA,CAEA,SAAAF,EAAAgB,SAAAb,EAAAuB,OAAAxE,MAAAiD,EAAAjD,OAEAgD,EACA,KAEA,OAAAA,EACA,+CC5SA3O,EAAAC,QAeA,SAAAsP,GAEA,IAAAZ,EAAAF,EAAA3L,QAAA,CAAA,IAAA,KAAAyM,EAAA5D,KAAA,UAAA8C,CACA,6BADAA,CAEA,qBAFAA,CAGA,qDAAAc,EAAAC,YAAAuB,OAAA,SAAAnC,GAAA,OAAAA,EAAAc,MAAAnP,OAAA,KAAA,IAHAkO,CAIA,kBAJAA,CAKA,oBACAc,EAAAyB,OAAArC,EACA,gBADAA,CAEA,SACAA,EACA,kBAGA,IADA,IAAAlN,EAAA,EACAA,EAAA8N,EAAAC,YAAAjP,SAAAkB,EAAA,CACA,IAAAmN,EAAAW,EAAAsB,EAAApP,GAAAb,UACAsL,EAAA0C,EAAAI,wBAAAR,EAAA,QAAAI,EAAA1C,KACA6C,EAAA,IAAAN,EAAAgB,SAAAb,EAAAjD,MAAAgD,EACA,WAAAC,EAAAzC,IAGAyC,EAAAc,KAAAf,EACA,iBADAA,CAEA,4BAAAI,EAFAJ,CAGA,QAAAI,EAHAJ,CAIA,WAAAC,EAAAlC,QAJAiC,CAKA,WACAsC,EAAAZ,KAAAzB,EAAAlC,WAAAjN,GACAwR,EAAAC,MAAAhF,KAAAzM,GAAAkP,EACA,8EAAAI,EAAAtN,GACAkN,EACA,sDAAAI,EAAA7C,GAEA+E,EAAAC,MAAAhF,KAAAzM,GAAAkP,EACA,uCAAAI,EAAAtN,GACAkN,EACA,eAAAI,EAAA7C,IAIA0C,EAAAK,UAAAN,EAEA,uBAAAI,EAAAA,EAFAJ,CAGA,QAAAI,GAGAkC,EAAAE,OAAAjF,KAAAzM,IAAAkP,EACA,iBADAA,CAEA,0BAFAA,CAGA,kBAHAA,CAIA,kBAAAI,EAAA7C,EAJAyC,CAKA,SAGAsC,EAAAC,MAAAhF,KAAAzM,GAAAkP,EAAAC,EAAAI,aAAAgC,MACA,+BACA,0CAAAjC,EAAAtN,GACAkN,EACA,kBAAAI,EAAA7C,IAGA+E,EAAAC,MAAAhF,KAAAzM,GAAAkP,EAAAC,EAAAI,aAAAgC,MACA,yBACA,oCAAAjC,EAAAtN,GACAkN,EACA,YAAAI,EAAA7C,GACAyC,EACA,SAWA,IATAA,EACA,WADAA,CAEA,kBAFAA,CAGA,QAHAA,CAKA,IALAA,CAMA,KAGAlN,EAAA,EAAAA,EAAA8N,EAAAsB,EAAAtQ,SAAAkB,EAAA,CACA,IAAA2P,EAAA7B,EAAAsB,EAAApP,GACA2P,EAAAC,UAAA1C,EACA,4BAAAyC,EAAAzF,KADAgD,CAEA,4CA3FA,qBA2FAyC,EA3FAzF,KAAA,KA8FA,OAAAgD,EACA,aApGA,IAAAH,EAAAzO,EAAA,IACAkR,EAAAlR,EAAA,IACA0O,EAAA1O,EAAA,4CCJAC,EAAAC,QA0BA,SAAAsP,GAWA,IATA,IAIAR,EAJAJ,EAAAF,EAAA3L,QAAA,CAAA,IAAA,KAAAyM,EAAA5D,KAAA,UAAA8C,CACA,SADAA,CAEA,qBAKAzC,EAAAuD,EAAAC,YAAAlN,QAAAwN,KAAArB,EAAAsB,mBAEAtO,EAAA,EAAAA,EAAAuK,EAAAzL,SAAAkB,EAAA,CACA,IAAAmN,EAAA5C,EAAAvK,GAAAb,UACAH,EAAA8O,EAAAsB,EAAAC,QAAAlC,GACA1C,EAAA0C,EAAAI,wBAAAR,EAAA,QAAAI,EAAA1C,KACAoF,EAAAL,EAAAC,MAAAhF,GAIA,GAHA6C,EAAA,IAAAN,EAAAgB,SAAAb,EAAAjD,MAGAiD,EAAAc,IACAf,EACA,kDAAAI,EAAAH,EAAAjD,KADAgD,CAEA,mDAAAI,EAFAJ,CAGA,4CAAAC,EAAAzC,IAAA,EAAA,KAAA,EAAA,EAAA8E,EAAAM,OAAA3C,EAAAlC,SAAAkC,EAAAlC,SACA4E,IAAA7R,GAAAkP,EACA,oEAAAlO,EAAAsO,GACAJ,EACA,qCAAA,GAAA2C,EAAApF,EAAA6C,GACAJ,EACA,IADAA,CAEA,UAGA,GAAAC,EAAAK,SAAA,CACA,IAAAU,EAAAZ,EACAH,EAAAgB,eACAD,EAAA,QAAAf,EAAAzC,GACAwC,EAAA,SAAAgB,GACAhB,EAAA,mEACAI,EAAAA,EAAAY,EAAAZ,EAAAY,EAAAZ,IAEAJ,EAAA,2BAAAgB,EAAAA,GAEAf,EAAAuC,QAAAF,EAAAE,OAAAjF,KAAAzM,GAAAkP,EAEA,uBAAAC,EAAAzC,IAAA,EAAA,KAAA,EAFAwC,CAGA,+BAAAgB,EAHAhB,CAIA,cAAAzC,EAAAyD,EAJAhB,CAKA,eAGAA,EAEA,+BAAAgB,GACA2B,IAAA7R,GACA+R,EAAA7C,EAAAC,EAAAnO,EAAAkP,EAAA,OACAhB,EACA,0BAAAC,EAAAzC,IAAA,EAAAmF,KAAA,EAAApF,EAAAyD,IAEAhB,EACA,UAIAC,EAAA6C,UAAA9C,EACA,iDAAAI,EAAAH,EAAAjD,MAEA2F,IAAA7R,GACA+R,EAAA7C,EAAAC,EAAAnO,EAAAsO,GACAJ,EACA,uBAAAC,EAAAzC,IAAA,EAAAmF,KAAA,EAAApF,EAAA6C,GAKA,OAAAJ,EACA,aApGA,IAAAH,EAAAzO,EAAA,IACAkR,EAAAlR,EAAA,IACA0O,EAAA1O,EAAA,IAWA,SAAAyR,EAAA7C,EAAAC,EAAAC,EAAAE,GACA,OAAAH,EAAAI,aAAAgC,MACArC,EAAA,+CAAAE,EAAAE,GAAAH,EAAAzC,IAAA,EAAA,KAAA,GAAAyC,EAAAzC,IAAA,EAAA,KAAA,GACAwC,EAAA,oDAAAE,EAAAE,GAAAH,EAAAzC,IAAA,EAAA,KAAA,4CClBAnM,EAAAC,QAAAuO,EAGA,IAAAkD,EAAA3R,EAAA,MACAyO,EAAA3J,UAAAnB,OAAAiO,OAAAD,EAAA7M,YAAA+M,YAAApD,GAAAqD,UAAA,OAEA,IAAAC,EAAA/R,EAAA,IACA0O,EAAA1O,EAAA,IAaA,SAAAyO,EAAA7C,EAAA2B,EAAA5H,EAAAqM,EAAAC,GAGA,GAFAN,EAAAzG,KAAAtG,KAAAgH,EAAAjG,GAEA4H,GAAA,iBAAAA,EACA,MAAA2E,UAAA,4BAoCA,GA9BAtN,KAAAyL,WAAA,GAMAzL,KAAA2I,OAAA5J,OAAAiO,OAAAhN,KAAAyL,YAMAzL,KAAAoN,QAAAA,EAMApN,KAAAqN,SAAAA,GAAA,GAMArN,KAAAuN,SAAAzS,GAMA6N,EACA,IAAA,IAAA3J,EAAAD,OAAAC,KAAA2J,GAAA7L,EAAA,EAAAA,EAAAkC,EAAApD,SAAAkB,EACA,iBAAA6L,EAAA3J,EAAAlC,MACAkD,KAAAyL,WAAAzL,KAAA2I,OAAA3J,EAAAlC,IAAA6L,EAAA3J,EAAAlC,KAAAkC,EAAAlC,IAiBA+M,EAAA2D,SAAA,SAAAxG,EAAAC,GACA,IAAAwG,EAAA,IAAA5D,EAAA7C,EAAAC,EAAA0B,OAAA1B,EAAAlG,QAAAkG,EAAAmG,QAAAnG,EAAAoG,UAEA,OADAI,EAAAF,SAAAtG,EAAAsG,SACAE,GAQA5D,EAAA3J,UAAAwN,OAAA,SAAAC,GACA,IAAAC,IAAAD,KAAAA,EAAAC,aACA,OAAA9D,EAAAoB,SAAA,CACA,UAAAlL,KAAAe,QACA,SAAAf,KAAA2I,OACA,WAAA3I,KAAAuN,UAAAvN,KAAAuN,SAAA3R,OAAAoE,KAAAuN,SAAAzS,GACA,UAAA8S,EAAA5N,KAAAoN,QAAAtS,GACA,WAAA8S,EAAA5N,KAAAqN,SAAAvS,MAaA+O,EAAA3J,UAAA2N,IAAA,SAAA7G,EAAAQ,EAAA4F,GAGA,IAAAtD,EAAAgE,SAAA9G,GACA,MAAAsG,UAAA,yBAEA,IAAAxD,EAAAiE,UAAAvG,GACA,MAAA8F,UAAA,yBAEA,GAAAtN,KAAA2I,OAAA3B,KAAAlM,GACA,MAAAmD,MAAA,mBAAA+I,EAAA,QAAAhH,MAEA,GAAAA,KAAAgO,aAAAxG,GACA,MAAAvJ,MAAA,MAAAuJ,EAAA,mBAAAxH,MAEA,GAAAA,KAAAiO,eAAAjH,GACA,MAAA/I,MAAA,SAAA+I,EAAA,oBAAAhH,MAEA,GAAAA,KAAAyL,WAAAjE,KAAA1M,GAAA,CACA,IAAAkF,KAAAe,UAAAf,KAAAe,QAAAmN,YACA,MAAAjQ,MAAA,gBAAAuJ,EAAA,OAAAxH,MACAA,KAAA2I,OAAA3B,GAAAQ,OAEAxH,KAAAyL,WAAAzL,KAAA2I,OAAA3B,GAAAQ,GAAAR,EAGA,OADAhH,KAAAqN,SAAArG,GAAAoG,GAAA,KACApN,MAUA6J,EAAA3J,UAAAiO,OAAA,SAAAnH,GAEA,IAAA8C,EAAAgE,SAAA9G,GACA,MAAAsG,UAAA,yBAEA,IAAAhL,EAAAtC,KAAA2I,OAAA3B,GACA,GAAA,MAAA1E,EACA,MAAArE,MAAA,SAAA+I,EAAA,uBAAAhH,MAMA,cAJAA,KAAAyL,WAAAnJ,UACAtC,KAAA2I,OAAA3B,UACAhH,KAAAqN,SAAArG,GAEAhH,MAQA6J,EAAA3J,UAAA8N,aAAA,SAAAxG,GACA,OAAA2F,EAAAa,aAAAhO,KAAAuN,SAAA/F,IAQAqC,EAAA3J,UAAA+N,eAAA,SAAAjH,GACA,OAAAmG,EAAAc,eAAAjO,KAAAuN,SAAAvG,4CClLA3L,EAAAC,QAAA8S,EAGA,IAAArB,EAAA3R,EAAA,MACAgT,EAAAlO,UAAAnB,OAAAiO,OAAAD,EAAA7M,YAAA+M,YAAAmB,GAAAlB,UAAA,QAEA,IAIAmB,EAJAxE,EAAAzO,EAAA,IACAkR,EAAAlR,EAAA,IACA0O,EAAA1O,EAAA,IAIAkT,EAAA,+BAyCA,SAAAF,EAAApH,EAAAQ,EAAAD,EAAAuB,EAAAyF,EAAAxN,EAAAqM,GAcA,GAZAtD,EAAA0E,SAAA1F,IACAsE,EAAAmB,EACAxN,EAAA+H,EACAA,EAAAyF,EAAAzT,IACAgP,EAAA0E,SAAAD,KACAnB,EAAArM,EACAA,EAAAwN,EACAA,EAAAzT,IAGAiS,EAAAzG,KAAAtG,KAAAgH,EAAAjG,IAEA+I,EAAAiE,UAAAvG,IAAAA,EAAA,EACA,MAAA8F,UAAA,qCAEA,IAAAxD,EAAAgE,SAAAvG,GACA,MAAA+F,UAAA,yBAEA,GAAAxE,IAAAhO,KAAAwT,EAAApQ,KAAA4K,EAAAA,EAAApK,WAAA+P,eACA,MAAAnB,UAAA,8BAEA,GAAAiB,IAAAzT,KAAAgP,EAAAgE,SAAAS,GACA,MAAAjB,UAAA,2BAMAtN,KAAA8I,KAAAA,GAAA,aAAAA,EAAAA,EAAAhO,GAMAkF,KAAAuH,KAAAA,EAMAvH,KAAAwH,GAAAA,EAMAxH,KAAAuO,OAAAA,GAAAzT,GAMAkF,KAAA0M,SAAA,aAAA5D,EAMA9I,KAAA8M,UAAA9M,KAAA0M,SAMA1M,KAAAsK,SAAA,aAAAxB,EAMA9I,KAAA+K,KAAA,EAMA/K,KAAA0O,QAAA,KAMA1O,KAAAwL,OAAA,KAMAxL,KAAAuK,YAAA,KAMAvK,KAAA2O,aAAA,KAMA3O,KAAA0L,OAAA5B,EAAA8E,MAAAtC,EAAAZ,KAAAnE,KAAAzM,GAMAkF,KAAA+L,MAAA,UAAAxE,EAMAvH,KAAAqK,aAAA,KAMArK,KAAA6O,eAAA,KAMA7O,KAAA8O,eAAA,KAOA9O,KAAA+O,EAAA,KAMA/O,KAAAoN,QAAAA,EA7JAgB,EAAAZ,SAAA,SAAAxG,EAAAC,GACA,OAAA,IAAAmH,EAAApH,EAAAC,EAAAO,GAAAP,EAAAM,KAAAN,EAAA6B,KAAA7B,EAAAsH,OAAAtH,EAAAlG,QAAAkG,EAAAmG,UAqKArO,OAAAiQ,eAAAZ,EAAAlO,UAAA,SAAA,CACAwJ,IAAA,WAIA,OAFA,OAAA1J,KAAA+O,IACA/O,KAAA+O,GAAA,IAAA/O,KAAAiP,UAAA,WACAjP,KAAA+O,KAOAX,EAAAlO,UAAAgP,UAAA,SAAAlI,EAAAtH,EAAAyP,GAGA,MAFA,WAAAnI,IACAhH,KAAA+O,EAAA,MACAhC,EAAA7M,UAAAgP,UAAA5I,KAAAtG,KAAAgH,EAAAtH,EAAAyP,IAwBAf,EAAAlO,UAAAwN,OAAA,SAAAC,GACA,IAAAC,IAAAD,KAAAA,EAAAC,aACA,OAAA9D,EAAAoB,SAAA,CACA,OAAA,aAAAlL,KAAA8I,MAAA9I,KAAA8I,MAAAhO,GACA,OAAAkF,KAAAuH,KACA,KAAAvH,KAAAwH,GACA,SAAAxH,KAAAuO,OACA,UAAAvO,KAAAe,QACA,UAAA6M,EAAA5N,KAAAoN,QAAAtS,MASAsT,EAAAlO,UAAAjE,QAAA,WAEA,GAAA+D,KAAAoP,SACA,OAAApP,KA0BA,IAxBAA,KAAAuK,YAAA+B,EAAA+C,SAAArP,KAAAuH,SAAAzM,KACAkF,KAAAqK,cAAArK,KAAA8O,eAAA9O,KAAA8O,eAAAQ,OAAAtP,KAAAsP,QAAAC,iBAAAvP,KAAAuH,MACAvH,KAAAqK,wBAAAgE,EACArO,KAAAuK,YAAA,KAEAvK,KAAAuK,YAAAvK,KAAAqK,aAAA1B,OAAA5J,OAAAC,KAAAgB,KAAAqK,aAAA1B,QAAA,KAIA3I,KAAAe,SAAA,MAAAf,KAAAe,QAAA,UACAf,KAAAuK,YAAAvK,KAAAe,QAAA,QACAf,KAAAqK,wBAAAR,GAAA,iBAAA7J,KAAAuK,cACAvK,KAAAuK,YAAAvK,KAAAqK,aAAA1B,OAAA3I,KAAAuK,eAIAvK,KAAAe,WACA,IAAAf,KAAAe,QAAAyL,SAAAxM,KAAAe,QAAAyL,SAAA1R,KAAAkF,KAAAqK,cAAArK,KAAAqK,wBAAAR,WACA7J,KAAAe,QAAAyL,OACAzN,OAAAC,KAAAgB,KAAAe,SAAAnF,SACAoE,KAAAe,QAAAjG,KAIAkF,KAAA0L,KACA1L,KAAAuK,YAAAT,EAAA8E,KAAAY,WAAAxP,KAAAuK,YAAA,MAAAvK,KAAAuH,KAAA9K,OAAA,IAGAsC,OAAA0Q,QACA1Q,OAAA0Q,OAAAzP,KAAAuK,kBAEA,GAAAvK,KAAA+L,OAAA,iBAAA/L,KAAAuK,YAAA,CACA,IAAAhI,EACAuH,EAAAzN,OAAA6B,KAAA8B,KAAAuK,aACAT,EAAAzN,OAAAyB,OAAAkC,KAAAuK,YAAAhI,EAAAuH,EAAA4F,UAAA5F,EAAAzN,OAAAT,OAAAoE,KAAAuK,cAAA,GAEAT,EAAAvD,KAAAG,MAAA1G,KAAAuK,YAAAhI,EAAAuH,EAAA4F,UAAA5F,EAAAvD,KAAA3K,OAAAoE,KAAAuK,cAAA,GACAvK,KAAAuK,YAAAhI,EAeA,OAXAvC,KAAA+K,IACA/K,KAAA2O,aAAA7E,EAAA6F,YACA3P,KAAAsK,SACAtK,KAAA2O,aAAA7E,EAAA8F,WAEA5P,KAAA2O,aAAA3O,KAAAuK,YAGAvK,KAAAsP,kBAAAjB,IACArO,KAAAsP,OAAAO,KAAA3P,UAAAF,KAAAgH,MAAAhH,KAAA2O,cAEA5B,EAAA7M,UAAAjE,QAAAqK,KAAAtG,OAGAoO,EAAAlO,UAAA+K,WAAA,WACA,QAAAjL,KAAAiP,UAAA,qBAuBAb,EAAA0B,EAAA,SAAAC,EAAAC,EAAAC,EAAAtB,GAUA,MAPA,mBAAAqB,EACAA,EAAAlG,EAAAoG,aAAAF,GAAAhJ,KAGAgJ,GAAA,iBAAAA,IACAA,EAAAlG,EAAAqG,aAAAH,GAAAhJ,MAEA,SAAA9G,EAAAkQ,GACAtG,EAAAoG,aAAAhQ,EAAA+M,aACAY,IAAA,IAAAO,EAAAgC,EAAAL,EAAAC,EAAAC,EAAA,CAAAI,QAAA1B,OAkBAP,EAAAkC,EAAA,SAAAC,GACAlC,EAAAkC,iDCpXA,IAAArV,EAAAG,EAAAC,QAAAF,EAAA,IAEAF,EAAAsV,MAAA,QAoDAtV,EAAAuV,KAjCA,SAAA3P,EAAA4P,EAAA1P,GAMA,MALA,mBAAA0P,GACA1P,EAAA0P,EACAA,EAAA,IAAAxV,EAAAyV,MACAD,IACAA,EAAA,IAAAxV,EAAAyV,MACAD,EAAAD,KAAA3P,EAAAE,IA2CA9F,EAAA0V,SANA,SAAA9P,EAAA4P,GAGA,OAFAA,IACAA,EAAA,IAAAxV,EAAAyV,MACAD,EAAAE,SAAA9P,IAMA5F,EAAA2V,QAAAzV,EAAA,IACAF,EAAA4V,QAAA1V,EAAA,IACAF,EAAA6V,SAAA3V,EAAA,IACAF,EAAA0O,UAAAxO,EAAA,IAGAF,EAAA6R,iBAAA3R,EAAA,IACAF,EAAAiS,UAAA/R,EAAA,IACAF,EAAAyV,KAAAvV,EAAA,IACAF,EAAA2O,KAAAzO,EAAA,IACAF,EAAAmT,KAAAjT,EAAA,IACAF,EAAAkT,MAAAhT,EAAA,IACAF,EAAA8V,MAAA5V,EAAA,IACAF,EAAA+V,SAAA7V,EAAA,IACAF,EAAAgW,QAAA9V,EAAA,IACAF,EAAAiW,OAAA/V,EAAA,IAGAF,EAAAkW,QAAAhW,EAAA,IACAF,EAAAmW,SAAAjW,EAAA,IAGAF,EAAAoR,MAAAlR,EAAA,IACAF,EAAA4O,KAAA1O,EAAA,IAGAF,EAAA6R,iBAAAuD,EAAApV,EAAAyV,MACAzV,EAAAiS,UAAAmD,EAAApV,EAAAmT,KAAAnT,EAAAgW,QAAAhW,EAAA2O,MACA3O,EAAAyV,KAAAL,EAAApV,EAAAmT,MACAnT,EAAAkT,MAAAkC,EAAApV,EAAAmT,gJCtGA,IAAAnT,EAAAI,EA2BA,SAAAgW,IACApW,EAAAqW,OAAAjB,EAAApV,EAAAsW,cACAtW,EAAA4O,KAAAwG,IArBApV,EAAAsV,MAAA,UAGAtV,EAAAuW,OAAArW,EAAA,IACAF,EAAAwW,aAAAtW,EAAA,IACAF,EAAAqW,OAAAnW,EAAA,IACAF,EAAAsW,aAAApW,EAAA,IAGAF,EAAA4O,KAAA1O,EAAA,IACAF,EAAAyW,IAAAvW,EAAA,IACAF,EAAA0W,MAAAxW,EAAA,IACAF,EAAAoW,UAAAA,EAaApW,EAAAuW,OAAAnB,EAAApV,EAAAwW,cACAJ,oEClCA,IAAApW,EAAAG,EAAAC,QAAAF,EAAA,IAEAF,EAAAsV,MAAA,OAGAtV,EAAA2W,SAAAzW,EAAA,IACAF,EAAA4W,MAAA1W,EAAA,IACAF,EAAA2L,OAAAzL,EAAA,IAGAF,EAAAyV,KAAAL,EAAApV,EAAAmT,KAAAnT,EAAA4W,MAAA5W,EAAA2L,sDCVAxL,EAAAC,QAAA2V,EAGA,IAAA7C,EAAAhT,EAAA,MACA6V,EAAA/Q,UAAAnB,OAAAiO,OAAAoB,EAAAlO,YAAA+M,YAAAgE,GAAA/D,UAAA,WAEA,IAAAZ,EAAAlR,EAAA,IACA0O,EAAA1O,EAAA,IAcA,SAAA6V,EAAAjK,EAAAQ,EAAAO,EAAAR,EAAAxG,EAAAqM,GAIA,GAHAgB,EAAA9H,KAAAtG,KAAAgH,EAAAQ,EAAAD,EAAAzM,GAAAA,GAAAiG,EAAAqM,IAGAtD,EAAAgE,SAAA/F,GACA,MAAAuF,UAAA,4BAMAtN,KAAA+H,QAAAA,EAMA/H,KAAA+R,gBAAA,KAGA/R,KAAA+K,KAAA,EAwBAkG,EAAAzD,SAAA,SAAAxG,EAAAC,GACA,OAAA,IAAAgK,EAAAjK,EAAAC,EAAAO,GAAAP,EAAAc,QAAAd,EAAAM,KAAAN,EAAAlG,QAAAkG,EAAAmG,UAQA6D,EAAA/Q,UAAAwN,OAAA,SAAAC,GACA,IAAAC,IAAAD,KAAAA,EAAAC,aACA,OAAA9D,EAAAoB,SAAA,CACA,UAAAlL,KAAA+H,QACA,OAAA/H,KAAAuH,KACA,KAAAvH,KAAAwH,GACA,SAAAxH,KAAAuO,OACA,UAAAvO,KAAAe,QACA,UAAA6M,EAAA5N,KAAAoN,QAAAtS,MAOAmW,EAAA/Q,UAAAjE,QAAA,WACA,GAAA+D,KAAAoP,SACA,OAAApP,KAGA,GAAAsM,EAAAM,OAAA5M,KAAA+H,WAAAjN,GACA,MAAAmD,MAAA,qBAAA+B,KAAA+H,SAEA,OAAAqG,EAAAlO,UAAAjE,QAAAqK,KAAAtG,OAaAiR,EAAAnB,EAAA,SAAAC,EAAAiC,EAAAC,GAUA,MAPA,mBAAAA,EACAA,EAAAnI,EAAAoG,aAAA+B,GAAAjL,KAGAiL,GAAA,iBAAAA,IACAA,EAAAnI,EAAAqG,aAAA8B,GAAAjL,MAEA,SAAA9G,EAAAkQ,GACAtG,EAAAoG,aAAAhQ,EAAA+M,aACAY,IAAA,IAAAoD,EAAAb,EAAAL,EAAAiC,EAAAC,8CC1HA5W,EAAAC,QAAA8V,EAEA,IAAAtH,EAAA1O,EAAA,IASA,SAAAgW,EAAAc,GAEA,GAAAA,EACA,IAAA,IAAAlT,EAAAD,OAAAC,KAAAkT,GAAApV,EAAA,EAAAA,EAAAkC,EAAApD,SAAAkB,EACAkD,KAAAhB,EAAAlC,IAAAoV,EAAAlT,EAAAlC,IA0BAsU,EAAApE,OAAA,SAAAkF,GACA,OAAAlS,KAAAmS,MAAAnF,OAAAkF,IAWAd,EAAArU,OAAA,SAAA2R,EAAA0D,GACA,OAAApS,KAAAmS,MAAApV,OAAA2R,EAAA0D,IAWAhB,EAAAiB,gBAAA,SAAA3D,EAAA0D,GACA,OAAApS,KAAAmS,MAAAE,gBAAA3D,EAAA0D,IAYAhB,EAAAtT,OAAA,SAAAwU,GACA,OAAAtS,KAAAmS,MAAArU,OAAAwU,IAYAlB,EAAAmB,gBAAA,SAAAD,GACA,OAAAtS,KAAAmS,MAAAI,gBAAAD,IAUAlB,EAAAoB,OAAA,SAAA9D,GACA,OAAA1O,KAAAmS,MAAAK,OAAA9D,IAUA0C,EAAAzG,WAAA,SAAA8H,GACA,OAAAzS,KAAAmS,MAAAxH,WAAA8H,IAWArB,EAAAlG,SAAA,SAAAwD,EAAA3N,GACA,OAAAf,KAAAmS,MAAAjH,SAAAwD,EAAA3N,IAOAqQ,EAAAlR,UAAAwN,OAAA,WACA,OAAA1N,KAAAmS,MAAAjH,SAAAlL,KAAA8J,EAAA6D,4CCtIAtS,EAAAC,QAAA6V,EAGA,IAAApE,EAAA3R,EAAA,MACA+V,EAAAjR,UAAAnB,OAAAiO,OAAAD,EAAA7M,YAAA+M,YAAAkE,GAAAjE,UAAA,SAEA,IAAApD,EAAA1O,EAAA,IAgBA,SAAA+V,EAAAnK,EAAAO,EAAAmL,EAAA7Q,EAAA8Q,EAAAC,EAAA7R,EAAAqM,GAYA,GATAtD,EAAA0E,SAAAmE,IACA5R,EAAA4R,EACAA,EAAAC,EAAA9X,IACAgP,EAAA0E,SAAAoE,KACA7R,EAAA6R,EACAA,EAAA9X,IAIAyM,IAAAzM,KAAAgP,EAAAgE,SAAAvG,GACA,MAAA+F,UAAA,yBAGA,IAAAxD,EAAAgE,SAAA4E,GACA,MAAApF,UAAA,gCAGA,IAAAxD,EAAAgE,SAAAjM,GACA,MAAAyL,UAAA,iCAEAP,EAAAzG,KAAAtG,KAAAgH,EAAAjG,GAMAf,KAAAuH,KAAAA,GAAA,MAMAvH,KAAA0S,YAAAA,EAMA1S,KAAA2S,gBAAAA,GAAA7X,GAMAkF,KAAA6B,aAAAA,EAMA7B,KAAA4S,iBAAAA,GAAA9X,GAMAkF,KAAA6S,oBAAA,KAMA7S,KAAA8S,qBAAA,KAMA9S,KAAAoN,QAAAA,EAqBA+D,EAAA3D,SAAA,SAAAxG,EAAAC,GACA,OAAA,IAAAkK,EAAAnK,EAAAC,EAAAM,KAAAN,EAAAyL,YAAAzL,EAAApF,aAAAoF,EAAA0L,cAAA1L,EAAA2L,eAAA3L,EAAAlG,QAAAkG,EAAAmG,UAQA+D,EAAAjR,UAAAwN,OAAA,SAAAC,GACA,IAAAC,IAAAD,KAAAA,EAAAC,aACA,OAAA9D,EAAAoB,SAAA,CACA,OAAA,QAAAlL,KAAAuH,MAAAvH,KAAAuH,MAAAzM,GACA,cAAAkF,KAAA0S,YACA,gBAAA1S,KAAA2S,cACA,eAAA3S,KAAA6B,aACA,iBAAA7B,KAAA4S,eACA,UAAA5S,KAAAe,QACA,UAAA6M,EAAA5N,KAAAoN,QAAAtS,MAOAqW,EAAAjR,UAAAjE,QAAA,WAGA,OAAA+D,KAAAoP,SACApP,MAEAA,KAAA6S,oBAAA7S,KAAAsP,OAAAyD,WAAA/S,KAAA0S,aACA1S,KAAA8S,qBAAA9S,KAAAsP,OAAAyD,WAAA/S,KAAA6B,cAEAkL,EAAA7M,UAAAjE,QAAAqK,KAAAtG,0CCpJA3E,EAAAC,QAAA6R,EAGA,IAAAJ,EAAA3R,EAAA,MACA+R,EAAAjN,UAAAnB,OAAAiO,OAAAD,EAAA7M,YAAA+M,YAAAE,GAAAD,UAAA,YAEA,IAGAmB,EACA6C,EACArH,EALAuE,EAAAhT,EAAA,IACA0O,EAAA1O,EAAA,IAoCA,SAAA4X,EAAAC,EAAAtF,GACA,IAAAsF,IAAAA,EAAArX,OACA,OAAAd,GAEA,IADA,IAAAoY,EAAA,GACApW,EAAA,EAAAA,EAAAmW,EAAArX,SAAAkB,EACAoW,EAAAD,EAAAnW,GAAAkK,MAAAiM,EAAAnW,GAAA4Q,OAAAC,GACA,OAAAuF,EA4CA,SAAA/F,EAAAnG,EAAAjG,GACAgM,EAAAzG,KAAAtG,KAAAgH,EAAAjG,GAMAf,KAAAkH,OAAApM,GAOAkF,KAAAmT,EAAA,KAGA,SAAAC,EAAAC,GAEA,OADAA,EAAAF,EAAA,KACAE,EAhFAlG,EAAAK,SAAA,SAAAxG,EAAAC,GACA,OAAA,IAAAkG,EAAAnG,EAAAC,EAAAlG,SAAAuS,QAAArM,EAAAC,SAmBAiG,EAAA6F,YAAAA,EAQA7F,EAAAa,aAAA,SAAAT,EAAA/F,GACA,GAAA+F,EACA,IAAA,IAAAzQ,EAAA,EAAAA,EAAAyQ,EAAA3R,SAAAkB,EACA,GAAA,iBAAAyQ,EAAAzQ,IAAAyQ,EAAAzQ,GAAA,IAAA0K,GAAA+F,EAAAzQ,GAAA,GAAA0K,EACA,OAAA,EACA,OAAA,GASA2F,EAAAc,eAAA,SAAAV,EAAAvG,GACA,GAAAuG,EACA,IAAA,IAAAzQ,EAAA,EAAAA,EAAAyQ,EAAA3R,SAAAkB,EACA,GAAAyQ,EAAAzQ,KAAAkK,EACA,OAAA,EACA,OAAA,GA0CAjI,OAAAiQ,eAAA7B,EAAAjN,UAAA,cAAA,CACAwJ,IAAA,WACA,OAAA1J,KAAAmT,IAAAnT,KAAAmT,EAAArJ,EAAAyJ,QAAAvT,KAAAkH,YA6BAiG,EAAAjN,UAAAwN,OAAA,SAAAC,GACA,OAAA7D,EAAAoB,SAAA,CACA,UAAAlL,KAAAe,QACA,SAAAiS,EAAAhT,KAAAwT,YAAA7F,MASAR,EAAAjN,UAAAoT,QAAA,SAAAG,GAGA,GAAAA,EACA,IAAA,IAAAvM,EAAAwM,EAAA3U,OAAAC,KAAAyU,GAAA3W,EAAA,EAAAA,EAAA4W,EAAA9X,SAAAkB,EACAoK,EAAAuM,EAAAC,EAAA5W,IAJAkD,KAKA6N,KACA3G,EAAAG,SAAAvM,GACAuT,EAAAb,SACAtG,EAAAyB,SAAA7N,GACA+O,EAAA2D,SACAtG,EAAAyM,UAAA7Y,GACAoW,EAAA1D,SACAtG,EAAAM,KAAA1M,GACAsT,EAAAZ,SACAL,EAAAK,UAAAkG,EAAA5W,GAAAoK,IAIA,OAAAlH,MAQAmN,EAAAjN,UAAAwJ,IAAA,SAAA1C,GACA,OAAAhH,KAAAkH,QAAAlH,KAAAkH,OAAAF,IACA,MAUAmG,EAAAjN,UAAA0T,QAAA,SAAA5M,GACA,GAAAhH,KAAAkH,QAAAlH,KAAAkH,OAAAF,aAAA6C,EACA,OAAA7J,KAAAkH,OAAAF,GAAA2B,OACA,MAAA1K,MAAA,iBAAA+I,IAUAmG,EAAAjN,UAAA2N,IAAA,SAAA4E,GAEA,KAAAA,aAAArE,GAAAqE,EAAAlE,SAAAzT,IAAA2X,aAAApE,GAAAoE,aAAA5I,GAAA4I,aAAAvB,GAAAuB,aAAAtF,GACA,MAAAG,UAAA,wCAEA,GAAAtN,KAAAkH,OAEA,CACA,IAAA2M,EAAA7T,KAAA0J,IAAA+I,EAAAzL,MACA,GAAA6M,EAAA,CACA,KAAAA,aAAA1G,GAAAsF,aAAAtF,IAAA0G,aAAAxF,GAAAwF,aAAA3C,EAWA,MAAAjT,MAAA,mBAAAwU,EAAAzL,KAAA,QAAAhH,MARA,IADA,IAAAkH,EAAA2M,EAAAL,YACA1W,EAAA,EAAAA,EAAAoK,EAAAtL,SAAAkB,EACA2V,EAAA5E,IAAA3G,EAAApK,IACAkD,KAAAmO,OAAA0F,GACA7T,KAAAkH,SACAlH,KAAAkH,OAAA,IACAuL,EAAAqB,WAAAD,EAAA9S,SAAA,SAZAf,KAAAkH,OAAA,GAoBA,OAFAlH,KAAAkH,OAAAuL,EAAAzL,MAAAyL,GACAsB,MAAA/T,MACAoT,EAAApT,OAUAmN,EAAAjN,UAAAiO,OAAA,SAAAsE,GAEA,KAAAA,aAAA1F,GACA,MAAAO,UAAA,qCACA,GAAAmF,EAAAnD,SAAAtP,KACA,MAAA/B,MAAAwU,EAAA,uBAAAzS,MAOA,cALAA,KAAAkH,OAAAuL,EAAAzL,MACAjI,OAAAC,KAAAgB,KAAAkH,QAAAtL,SACAoE,KAAAkH,OAAApM,IAEA2X,EAAAuB,SAAAhU,MACAoT,EAAApT,OASAmN,EAAAjN,UAAA+T,OAAA,SAAA1O,EAAA0B,GAEA,GAAA6C,EAAAgE,SAAAvI,GACAA,EAAAA,EAAAG,MAAA,UACA,IAAAhK,MAAAwY,QAAA3O,GACA,MAAA+H,UAAA,gBACA,GAAA/H,GAAAA,EAAA3J,QAAA,KAAA2J,EAAA,GACA,MAAAtH,MAAA,yBAGA,IADA,IAAAkW,EAAAnU,KACA,EAAAuF,EAAA3J,QAAA,CACA,IAAAwY,EAAA7O,EAAAM,QACA,GAAAsO,EAAAjN,QAAAiN,EAAAjN,OAAAkN,IAEA,MADAD,EAAAA,EAAAjN,OAAAkN,cACAjH,GACA,MAAAlP,MAAA,kDAEAkW,EAAAtG,IAAAsG,EAAA,IAAAhH,EAAAiH,IAIA,OAFAnN,GACAkN,EAAAb,QAAArM,GACAkN,GAOAhH,EAAAjN,UAAAmU,WAAA,WAEA,IADA,IAAAnN,EAAAlH,KAAAwT,YAAA1W,EAAA,EACAA,EAAAoK,EAAAtL,QACAsL,EAAApK,aAAAqQ,EACAjG,EAAApK,KAAAuX,aAEAnN,EAAApK,KAAAb,UACA,OAAA+D,KAAA/D,WAUAkR,EAAAjN,UAAAoU,OAAA,SAAA/O,EAAAgP,EAAAC,GASA,GANA,kBAAAD,GACAC,EAAAD,EACAA,EAAAzZ,IACAyZ,IAAA7Y,MAAAwY,QAAAK,KACAA,EAAA,CAAAA,IAEAzK,EAAAgE,SAAAvI,IAAAA,EAAA3J,OAAA,CACA,GAAA,MAAA2J,EACA,OAAAvF,KAAA0Q,KACAnL,EAAAA,EAAAG,MAAA,UACA,IAAAH,EAAA3J,OACA,OAAAoE,KAGA,GAAA,KAAAuF,EAAA,GACA,OAAAvF,KAAA0Q,KAAA4D,OAAA/O,EAAA5H,MAAA,GAAA4W,GAGA,IAAAE,EAAAzU,KAAA0J,IAAAnE,EAAA,IACA,GAAAkP,GACA,GAAA,IAAAlP,EAAA3J,QACA,IAAA2Y,IAAA,EAAAA,EAAApI,QAAAsI,EAAAxH,aACA,OAAAwH,OACA,GAAAA,aAAAtH,IAAAsH,EAAAA,EAAAH,OAAA/O,EAAA5H,MAAA,GAAA4W,GAAA,IACA,OAAAE,OAIA,IAAA,IAAA3X,EAAA,EAAAA,EAAAkD,KAAAwT,YAAA5X,SAAAkB,EACA,GAAAkD,KAAAmT,EAAArW,aAAAqQ,IAAAsH,EAAAzU,KAAAmT,EAAArW,GAAAwX,OAAA/O,EAAAgP,GAAA,IACA,OAAAE,EAGA,OAAA,OAAAzU,KAAAsP,QAAAkF,EACA,KACAxU,KAAAsP,OAAAgF,OAAA/O,EAAAgP,IAqBApH,EAAAjN,UAAA6S,WAAA,SAAAxN,GACA,IAAAkP,EAAAzU,KAAAsU,OAAA/O,EAAA,CAAA8I,IACA,IAAAoG,EACA,MAAAxW,MAAA,iBAAAsH,GACA,OAAAkP,GAUAtH,EAAAjN,UAAAwU,WAAA,SAAAnP,GACA,IAAAkP,EAAAzU,KAAAsU,OAAA/O,EAAA,CAAAsE,IACA,IAAA4K,EACA,MAAAxW,MAAA,iBAAAsH,EAAA,QAAAvF,MACA,OAAAyU,GAUAtH,EAAAjN,UAAAqP,iBAAA,SAAAhK,GACA,IAAAkP,EAAAzU,KAAAsU,OAAA/O,EAAA,CAAA8I,EAAAxE,IACA,IAAA4K,EACA,MAAAxW,MAAA,yBAAAsH,EAAA,QAAAvF,MACA,OAAAyU,GAUAtH,EAAAjN,UAAAyU,cAAA,SAAApP,GACA,IAAAkP,EAAAzU,KAAAsU,OAAA/O,EAAA,CAAA2L,IACA,IAAAuD,EACA,MAAAxW,MAAA,oBAAAsH,EAAA,QAAAvF,MACA,OAAAyU,GAIAtH,EAAAmD,EAAA,SAAAC,EAAAqE,EAAAC,GACAxG,EAAAkC,EACAW,EAAA0D,EACA/K,EAAAgL,4CC9aAxZ,EAAAC,QAAAyR,GAEAG,UAAA,mBAEA,IAEAyD,EAFA7G,EAAA1O,EAAA,IAYA,SAAA2R,EAAA/F,EAAAjG,GAEA,IAAA+I,EAAAgE,SAAA9G,GACA,MAAAsG,UAAA,yBAEA,GAAAvM,IAAA+I,EAAA0E,SAAAzN,GACA,MAAAuM,UAAA,6BAMAtN,KAAAe,QAAAA,EAMAf,KAAAgH,KAAAA,EAMAhH,KAAAsP,OAAA,KAMAtP,KAAAoP,UAAA,EAMApP,KAAAoN,QAAA,KAMApN,KAAAc,SAAA,KAGA/B,OAAA+V,iBAAA/H,EAAA7M,UAAA,CAQAwQ,KAAA,CACAhH,IAAA,WAEA,IADA,IAAAyK,EAAAnU,KACA,OAAAmU,EAAA7E,QACA6E,EAAAA,EAAA7E,OACA,OAAA6E,IAUA3J,SAAA,CACAd,IAAA,WAGA,IAFA,IAAAnE,EAAA,CAAAvF,KAAAgH,MACAmN,EAAAnU,KAAAsP,OACA6E,GACA5O,EAAAwP,QAAAZ,EAAAnN,MACAmN,EAAAA,EAAA7E,OAEA,OAAA/J,EAAA3H,KAAA,SAUAmP,EAAA7M,UAAAwN,OAAA,WACA,MAAAzP,SAQA8O,EAAA7M,UAAA6T,MAAA,SAAAzE,GACAtP,KAAAsP,QAAAtP,KAAAsP,SAAAA,GACAtP,KAAAsP,OAAAnB,OAAAnO,MACAA,KAAAsP,OAAAA,EACAtP,KAAAoP,UAAA,EACA,IAAAsB,EAAApB,EAAAoB,KACAA,aAAAC,GACAD,EAAAsE,EAAAhV,OAQA+M,EAAA7M,UAAA8T,SAAA,SAAA1E,GACA,IAAAoB,EAAApB,EAAAoB,KACAA,aAAAC,GACAD,EAAAuE,EAAAjV,MACAA,KAAAsP,OAAA,KACAtP,KAAAoP,UAAA,GAOArC,EAAA7M,UAAAjE,QAAA,WACA,OAAA+D,KAAAoP,UAEApP,KAAA0Q,gBAAAC,IACA3Q,KAAAoP,UAAA,GAFApP,MAWA+M,EAAA7M,UAAA+O,UAAA,SAAAjI,GACA,OAAAhH,KAAAe,QACAf,KAAAe,QAAAiG,GACAlM,IAUAiS,EAAA7M,UAAAgP,UAAA,SAAAlI,EAAAtH,EAAAyP,GAGA,OAFAA,GAAAnP,KAAAe,SAAAf,KAAAe,QAAAiG,KAAAlM,MACAkF,KAAAe,UAAAf,KAAAe,QAAA,KAAAiG,GAAAtH,GACAM,MASA+M,EAAA7M,UAAA4T,WAAA,SAAA/S,EAAAoO,GACA,GAAApO,EACA,IAAA,IAAA/B,EAAAD,OAAAC,KAAA+B,GAAAjE,EAAA,EAAAA,EAAAkC,EAAApD,SAAAkB,EACAkD,KAAAkP,UAAAlQ,EAAAlC,GAAAiE,EAAA/B,EAAAlC,IAAAqS,GACA,OAAAnP,MAOA+M,EAAA7M,UAAAxB,SAAA,WACA,IAAAwO,EAAAlN,KAAAiN,YAAAC,UACA1C,EAAAxK,KAAAwK,SACA,OAAAA,EAAA5O,OACAsR,EAAA,IAAA1C,EACA0C,GAIAH,EAAAuD,EAAA,SAAA4E,GACAvE,EAAAuE,+BCrMA7Z,EAAAC,QAAA0V,EAGA,IAAAjE,EAAA3R,EAAA,MACA4V,EAAA9Q,UAAAnB,OAAAiO,OAAAD,EAAA7M,YAAA+M,YAAA+D,GAAA9D,UAAA,QAEA,IAAAkB,EAAAhT,EAAA,IACA0O,EAAA1O,EAAA,IAYA,SAAA4V,EAAAhK,EAAAmO,EAAApU,EAAAqM,GAQA,GAPA1R,MAAAwY,QAAAiB,KACApU,EAAAoU,EACAA,EAAAra,IAEAiS,EAAAzG,KAAAtG,KAAAgH,EAAAjG,GAGAoU,IAAAra,KAAAY,MAAAwY,QAAAiB,GACA,MAAA7H,UAAA,+BAMAtN,KAAAmI,MAAAgN,GAAA,GAOAnV,KAAA6K,YAAA,GAMA7K,KAAAoN,QAAAA,EA0CA,SAAAgI,EAAAjN,GACA,GAAAA,EAAAmH,OACA,IAAA,IAAAxS,EAAA,EAAAA,EAAAqL,EAAA0C,YAAAjP,SAAAkB,EACAqL,EAAA0C,YAAA/N,GAAAwS,QACAnH,EAAAmH,OAAAzB,IAAA1F,EAAA0C,YAAA/N,IA7BAkU,EAAAxD,SAAA,SAAAxG,EAAAC,GACA,OAAA,IAAA+J,EAAAhK,EAAAC,EAAAkB,MAAAlB,EAAAlG,QAAAkG,EAAAmG,UAQA4D,EAAA9Q,UAAAwN,OAAA,SAAAC,GACA,IAAAC,IAAAD,KAAAA,EAAAC,aACA,OAAA9D,EAAAoB,SAAA,CACA,UAAAlL,KAAAe,QACA,QAAAf,KAAAmI,MACA,UAAAyF,EAAA5N,KAAAoN,QAAAtS,MAuBAkW,EAAA9Q,UAAA2N,IAAA,SAAA5D,GAGA,KAAAA,aAAAmE,GACA,MAAAd,UAAA,yBAQA,OANArD,EAAAqF,QAAArF,EAAAqF,SAAAtP,KAAAsP,QACArF,EAAAqF,OAAAnB,OAAAlE,GACAjK,KAAAmI,MAAA3K,KAAAyM,EAAAjD,MACAhH,KAAA6K,YAAArN,KAAAyM,GAEAmL,EADAnL,EAAAuB,OAAAxL,MAEAA,MAQAgR,EAAA9Q,UAAAiO,OAAA,SAAAlE,GAGA,KAAAA,aAAAmE,GACA,MAAAd,UAAA,yBAEA,IAAAxR,EAAAkE,KAAA6K,YAAAsB,QAAAlC,GAGA,GAAAnO,EAAA,EACA,MAAAmC,MAAAgM,EAAA,uBAAAjK,MAUA,OARAA,KAAA6K,YAAAtK,OAAAzE,EAAA,IAIA,GAHAA,EAAAkE,KAAAmI,MAAAgE,QAAAlC,EAAAjD,QAIAhH,KAAAmI,MAAA5H,OAAAzE,EAAA,GAEAmO,EAAAuB,OAAA,KACAxL,MAMAgR,EAAA9Q,UAAA6T,MAAA,SAAAzE,GACAvC,EAAA7M,UAAA6T,MAAAzN,KAAAtG,KAAAsP,GAGA,IAFA,IAEAxS,EAAA,EAAAA,EAAAkD,KAAAmI,MAAAvM,SAAAkB,EAAA,CACA,IAAAmN,EAAAqF,EAAA5F,IAAA1J,KAAAmI,MAAArL,IACAmN,IAAAA,EAAAuB,SACAvB,EAAAuB,OALAxL,MAMA6K,YAAArN,KAAAyM,GAIAmL,EAAApV,OAMAgR,EAAA9Q,UAAA8T,SAAA,SAAA1E,GACA,IAAA,IAAArF,EAAAnN,EAAA,EAAAA,EAAAkD,KAAA6K,YAAAjP,SAAAkB,GACAmN,EAAAjK,KAAA6K,YAAA/N,IAAAwS,QACArF,EAAAqF,OAAAnB,OAAAlE,GACA8C,EAAA7M,UAAA8T,SAAA1N,KAAAtG,KAAAsP,IAmBA0B,EAAAlB,EAAA,WAGA,IAFA,IAAAqF,EAAAzZ,MAAAC,UAAAC,QACAE,EAAA,EACAA,EAAAH,UAAAC,QACAuZ,EAAArZ,GAAAH,UAAAG,KACA,OAAA,SAAAoE,EAAAmV,GACAvL,EAAAoG,aAAAhQ,EAAA+M,aACAY,IAAA,IAAAmD,EAAAqE,EAAAF,IACApW,OAAAiQ,eAAA9O,EAAAmV,EAAA,CACA3L,IAAAI,EAAAwL,YAAAH,GACAI,IAAAzL,EAAA0L,YAAAL,gDCtMA9Z,EAAAC,QAAAwW,GAEAhR,SAAA,KACAgR,EAAAzC,SAAA,CAAAoG,UAAA,GAEA,IAAA5D,EAAAzW,EAAA,IACAuV,EAAAvV,EAAA,IACAiT,EAAAjT,EAAA,IACAgT,EAAAhT,EAAA,IACA6V,EAAA7V,EAAA,IACA4V,EAAA5V,EAAA,IACAyO,EAAAzO,EAAA,IACA8V,EAAA9V,EAAA,IACA+V,EAAA/V,EAAA,IACAkR,EAAAlR,EAAA,IACA0O,EAAA1O,EAAA,IAEAsa,EAAA,gBACAC,EAAA,kBACAC,EAAA,qBACAC,EAAA,uBACAC,EAAA,YACAC,EAAA,cACAC,EAAA,oDACAC,EAAA,2BACAC,EAAA,+DACAC,EAAA,kCAkCA,SAAArE,EAAArT,EAAAiS,EAAA3P,GAEA2P,aAAAC,IACA5P,EAAA2P,EACAA,EAAA,IAAAC,GAEA5P,IACAA,EAAA+Q,EAAAzC,UAEA,IAQA+G,EACAC,EACAC,EACAC,EAimBAC,EA5mBAC,EAAA5E,EAAApT,EAAAsC,EAAA2V,uBAAA,GACAC,EAAAF,EAAAE,KACAnZ,EAAAiZ,EAAAjZ,KACAoZ,EAAAH,EAAAG,KACAC,EAAAJ,EAAAI,KACAC,EAAAL,EAAAK,KAEAC,GAAA,EAKAC,GAAA,EAEA7C,EAAAzD,EAEAuG,EAAAlW,EAAA0U,SAAA,SAAAzO,GAAA,OAAAA,GAAA8C,EAAAoN,UAGA,SAAAC,EAAAX,EAAAxP,EAAAoQ,GACA,IAAAtW,EAAAgR,EAAAhR,SAGA,OAFAsW,IACAtF,EAAAhR,SAAA,MACA7C,MAAA,YAAA+I,GAAA,SAAA,KAAAwP,EAAA,OAAA1V,EAAAA,EAAA,KAAA,IAAA,QAAA2V,EAAAY,KAAA,KAGA,SAAAC,IACA,IACAd,EADA7N,EAAA,GAEA,EAAA,CAEA,GAAA,OAAA6N,EAAAG,MAAA,MAAAH,EACA,MAAAW,EAAAX,GAEA7N,EAAAnL,KAAAmZ,KACAE,EAAAL,GACAA,EAAAI,UACA,MAAAJ,GAAA,MAAAA,GACA,OAAA7N,EAAA/K,KAAA,IAGA,SAAA2Z,EAAAC,GACA,IAAAhB,EAAAG,IACA,OAAAH,GACA,IAAA,IACA,IAAA,IAEA,OADAhZ,EAAAgZ,GACAc,IACA,IAAA,OAAA,IAAA,OACA,OAAA,EACA,IAAA,QAAA,IAAA,QACA,OAAA,EAEA,IACA,OAuBA,SAAAd,EAAAY,GACA,IAAAlU,EAAA,EACA,MAAAsT,EAAA/Z,OAAA,KACAyG,GAAA,EACAsT,EAAAA,EAAAiB,UAAA,IAEA,OAAAjB,GACA,IAAA,MAAA,IAAA,MAAA,IAAA,MACA,OAAAtT,GAAAW,EAAAA,GACA,IAAA,MAAA,IAAA,MAAA,IAAA,MAAA,IAAA,MACA,OAAAD,IACA,IAAA,IACA,OAAA,EAEA,GAAA8R,EAAAxX,KAAAsY,GACA,OAAAtT,EAAAwU,SAAAlB,EAAA,IACA,GAAAZ,EAAA1X,KAAAsY,GACA,OAAAtT,EAAAwU,SAAAlB,EAAA,IACA,GAAAV,EAAA5X,KAAAsY,GACA,OAAAtT,EAAAwU,SAAAlB,EAAA,GAGA,GAAAR,EAAA9X,KAAAsY,GACA,OAAAtT,EAAAyU,WAAAnB,GAGA,MAAAW,EAAAX,EAAA,SAAAY,GAjDAQ,CAAApB,GAAA,GACA,MAAAlR,GAGA,GAAAkS,GAAAtB,EAAAhY,KAAAsY,GACA,OAAAA,EAGA,MAAAW,EAAAX,EAAA,UAIA,SAAAqB,EAAAC,EAAAC,GAEA,IADA,IAAAvB,EAAAvZ,GAEA8a,GAAA,OAAAvB,EAAAI,MAAA,MAAAJ,EAGAsB,EAAAta,KAAA,CAAAP,EAAA+a,EAAArB,KAAAE,EAAA,MAAA,GAAAmB,EAAArB,KAAA1Z,IAFA6a,EAAAta,KAAA8Z,KAGAT,EAAA,KAAA,KACAA,EAAA,KAgCA,SAAAmB,EAAAxB,EAAAyB,GACA,OAAAzB,GACA,IAAA,MAAA,IAAA,MAAA,IAAA,MACA,OAAA,UACA,IAAA,IACA,OAAA,EAIA,IAAAyB,GAAA,MAAAzB,EAAA/Z,OAAA,GACA,MAAA0a,EAAAX,EAAA,MAEA,GAAAb,EAAAzX,KAAAsY,GACA,OAAAkB,SAAAlB,EAAA,IACA,GAAAX,EAAA3X,KAAAsY,GACA,OAAAkB,SAAAlB,EAAA,IAGA,GAAAT,EAAA7X,KAAAsY,GACA,OAAAkB,SAAAlB,EAAA,GAGA,MAAAW,EAAAX,EAAA,MAGA,SAAA0B,IAGA,GAAA9B,IAAAtb,GACA,MAAAqc,EAAA,WAKA,GAHAf,EAAAO,KAGAT,EAAAhY,KAAAkY,GACA,MAAAe,EAAAf,EAAA,QAEAjC,EAAAA,EAAAF,OAAAmC,GACAS,EAAA,KAGA,SAAAsB,IACA,IACAC,EADA5B,EAAAI,IAEA,OAAAJ,GACA,IAAA,OACA4B,EAAA9B,IAAAA,EAAA,IACAK,IACA,MACA,IAAA,SACAA,IAEA,QACAyB,EAAA/B,IAAAA,EAAA,IAGAG,EAAAc,IACAT,EAAA,KACAuB,EAAA5a,KAAAgZ,GAGA,SAAA6B,IAMA,GALAxB,EAAA,KACAN,EAAAe,MACAN,EAAA,WAAAT,IAGA,WAAAA,EACA,MAAAY,EAAAZ,EAAA,UAEAM,EAAA,KAGA,SAAAyB,EAAAhJ,EAAAkH,GACA,OAAAA,GAEA,IAAA,SAGA,OAFA+B,EAAAjJ,EAAAkH,GACAK,EAAA,MACA,EAEA,IAAA,UAEA,OAuCA,SAAAvH,EAAAkH,GAGA,IAAAP,EAAA/X,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,EAAA,aAEA,IAAAjP,EAAA,IAAA8G,EAAAmI,GACAgC,EAAAjR,EAAA,SAAAiP,GACA,IAAA8B,EAAA/Q,EAAAiP,GAGA,OAAAA,GAEA,IAAA,OAoHA,SAAAlH,GACAuH,EAAA,KACA,IAAA9O,EAAA4O,IAGA,GAAArK,EAAAM,OAAA7E,KAAAjN,GACA,MAAAqc,EAAApP,EAAA,QAEA8O,EAAA,KACA,IAAA4B,EAAA9B,IAGA,IAAAT,EAAAhY,KAAAua,GACA,MAAAtB,EAAAsB,EAAA,QAEA5B,EAAA,KACA,IAAA7P,EAAA2P,IAGA,IAAAV,EAAA/X,KAAA8I,GACA,MAAAmQ,EAAAnQ,EAAA,QAEA6P,EAAA,KACA,IAAA5M,EAAA,IAAAgH,EAAAgG,EAAAjQ,GAAAgR,EAAArB,KAAA5O,EAAA0Q,GACAD,EAAAvO,EAAA,SAAAuM,GAGA,GAAA,WAAAA,EAIA,MAAAW,EAAAX,GAHA+B,EAAAtO,EAAAuM,GACAK,EAAA,MAIA,WACA6B,EAAAzO,KAEAqF,EAAAzB,IAAA5D,GAvJA0O,CAAApR,GACA,MAEA,IAAA,WACA,IAAA,WACA,IAAA,WACAqR,EAAArR,EAAAiP,GACA,MAEA,IAAA,SAiJA,SAAAlH,EAAAkH,GAGA,IAAAP,EAAA/X,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,EAAA,QAEA,IAAArO,EAAA,IAAA6I,EAAAiG,EAAAT,IACAgC,EAAArQ,EAAA,SAAAqO,GACA,WAAAA,GACA+B,EAAApQ,EAAAqO,GACAK,EAAA,OAEArZ,EAAAgZ,GACAoC,EAAAzQ,EAAA,eAGAmH,EAAAzB,IAAA1F,GAhKA0Q,CAAAtR,EAAAiP,GACA,MAEA,IAAA,aACAqB,EAAAtQ,EAAAuR,aAAAvR,EAAAuR,WAAA,KACA,MAEA,IAAA,WACAjB,EAAAtQ,EAAAgG,WAAAhG,EAAAgG,SAAA,KAAA,GACA,MAEA,QAEA,IAAAyJ,IAAAd,EAAAhY,KAAAsY,GACA,MAAAW,EAAAX,GAEAhZ,EAAAgZ,GACAoC,EAAArR,EAAA,eAIA+H,EAAAzB,IAAAtG,GArFAwR,CAAAzJ,EAAAkH,IACA,EAEA,IAAA,OAEA,OA8NA,SAAAlH,EAAAkH,GAGA,IAAAP,EAAA/X,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,EAAA,QAEA,IAAA/I,EAAA,IAAA5D,EAAA2M,GACAgC,EAAA/K,EAAA,SAAA+I,GACA,OAAAA,GACA,IAAA,SACA+B,EAAA9K,EAAA+I,GACAK,EAAA,KACA,MAEA,IAAA,WACAgB,EAAApK,EAAAF,WAAAE,EAAAF,SAAA,KAAA,GACA,MAEA,SAOA,SAAA+B,EAAAkH,GAGA,IAAAP,EAAA/X,KAAAsY,GACA,MAAAW,EAAAX,EAAA,QAEAK,EAAA,KACA,IAAAnX,EAAAsY,EAAArB,KAAA,GACAqC,EAAA,GACAR,EAAAQ,EAAA,SAAAxC,GAGA,GAAA,WAAAA,EAIA,MAAAW,EAAAX,GAHA+B,EAAAS,EAAAxC,GACAK,EAAA,MAIA,WACA6B,EAAAM,KAEA1J,EAAAzB,IAAA2I,EAAA9W,EAAAsZ,EAAA5L,SA3BA6L,CAAAxL,EAAA+I,MAGAlH,EAAAzB,IAAAJ,GArPAyL,CAAA5J,EAAAkH,IACA,EAEA,IAAA,UAEA,OAsUA,SAAAlH,EAAAkH,GAGA,IAAAP,EAAA/X,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,EAAA,gBAEA,IAAA2C,EAAA,IAAAjI,EAAAsF,GACAgC,EAAAW,EAAA,SAAA3C,GACA,IAAA8B,EAAAa,EAAA3C,GAAA,CAIA,GAAA,QAAAA,EAGA,MAAAW,EAAAX,IAKA,SAAAlH,EAAAkH,GAGA,IAAA4C,EAAAtC,IAEAvP,EAAAiP,EAGA,IAAAP,EAAA/X,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,EAAA,QAEA,IACA9D,EAAAC,EACA9Q,EAAA+Q,EAFA5L,EAAAwP,EAIAK,EAAA,KACAA,EAAA,UAAA,KACAlE,GAAA,GAGA,IAAAuD,EAAAhY,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,GAEA9D,EAAA8D,EACAK,EAAA,KAAAA,EAAA,WAAAA,EAAA,KACAA,EAAA,UAAA,KACAjE,GAAA,GAGA,IAAAsD,EAAAhY,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,GAEA3U,EAAA2U,EACAK,EAAA,KAEA,IAAAwC,EAAA,IAAAlI,EAAAnK,EAAAO,EAAAmL,EAAA7Q,EAAA8Q,EAAAC,GACAyG,EAAAjM,QAAAgM,EACAZ,EAAAa,EAAA,SAAA7C,GAGA,GAAA,WAAAA,EAIA,MAAAW,EAAAX,GAHA+B,EAAAc,EAAA7C,GACAK,EAAA,OAKAvH,EAAAzB,IAAAwL,GAtDAC,CAAAH,EAAA3C,MAIAlH,EAAAzB,IAAAsL,GAxVAI,CAAAjK,EAAAkH,IACA,EAEA,IAAA,SAEA,OAwYA,SAAAlH,EAAAkH,GAGA,IAAAN,EAAAhY,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,EAAA,aAEA,IAAAgD,EAAAhD,EACAgC,EAAA,KAAA,SAAAhC,GACA,OAAAA,GAEA,IAAA,WACA,IAAA,WACA,IAAA,WACAoC,EAAAtJ,EAAAkH,EAAAgD,GACA,MAEA,QAEA,IAAAxC,IAAAd,EAAAhY,KAAAsY,GACA,MAAAW,EAAAX,GACAhZ,EAAAgZ,GACAoC,EAAAtJ,EAAA,WAAAkK,MA9ZAC,CAAAnK,EAAAkH,IACA,EAEA,OAAA,EAGA,SAAAgC,EAAAtF,EAAAwG,EAAAC,GACA,IAAAC,EAAAnD,EAAAY,KAOA,GANAnE,IACA,iBAAAA,EAAA9F,UACA8F,EAAA9F,QAAA0J,KAEA5D,EAAApS,SAAAgR,EAAAhR,UAEA+V,EAAA,KAAA,GAAA,CAEA,IADA,IAAAL,EACA,OAAAA,EAAAG,MACA+C,EAAAlD,GACAK,EAAA,KAAA,QAEA8C,GACAA,IACA9C,EAAA,KACA3D,GAAA,iBAAAA,EAAA9F,UACA8F,EAAA9F,QAAA0J,EAAA8C,IAoDA,SAAAhB,EAAAtJ,EAAAxG,EAAAyF,GACA,IAAAhH,EAAAoP,IACA,GAAA,UAAApP,EAAA,CAMA,IAAA2O,EAAAhY,KAAAqJ,GACA,MAAA4P,EAAA5P,EAAA,QAEA,IAAAP,EAAA2P,IAGA,IAAAV,EAAA/X,KAAA8I,GACA,MAAAmQ,EAAAnQ,EAAA,QAEAA,EAAAiQ,EAAAjQ,GACA6P,EAAA,KAEA,IAAA5M,EAAA,IAAAmE,EAAApH,EAAAgR,EAAArB,KAAApP,EAAAuB,EAAAyF,GACAiK,EAAAvO,EAAA,SAAAuM,GAGA,GAAA,WAAAA,EAIA,MAAAW,EAAAX,GAHA+B,EAAAtO,EAAAuM,GACAK,EAAA,MAIA,WACA6B,EAAAzO,KAEAqF,EAAAzB,IAAA5D,GAKA+M,IAAA/M,EAAAK,UAAAgC,EAAAE,OAAAjF,KAAAzM,IAAAwR,EAAAC,MAAAhF,KAAAzM,IACAmP,EAAAiF,UAAA,UAAA,GAAA,QAGA,SAAAI,EAAAxG,GACA,IAAA9B,EAAA2P,IAGA,IAAAV,EAAA/X,KAAA8I,GACA,MAAAmQ,EAAAnQ,EAAA,QAEA,IAAAoJ,EAAAtG,EAAA+P,QAAA7S,GACAA,IAAAoJ,IACApJ,EAAA8C,EAAAgQ,QAAA9S,IACA6P,EAAA,KACA,IAAArP,EAAAwQ,EAAArB,KACApP,EAAA,IAAA8G,EAAArH,GACAO,EAAA8E,OAAA,EACA,IAAApC,EAAA,IAAAmE,EAAAgC,EAAA5I,EAAAR,EAAA8B,GACAmB,EAAAnJ,SAAAgR,EAAAhR,SACA0X,EAAAjR,EAAA,SAAAiP,GACA,OAAAA,GAEA,IAAA,SACA+B,EAAAhR,EAAAiP,GACAK,EAAA,KACA,MAEA,IAAA,WACA,IAAA,WACA,IAAA,WACA+B,EAAArR,EAAAiP,GACA,MAGA,QACA,MAAAW,EAAAX,MAGAlH,EAAAzB,IAAAtG,GACAsG,IAAA5D,GA3EA8P,CAAAzK,EAAAxG,GAyLA,SAAAyP,EAAAjJ,EAAAkH,GACA,IAAAwD,EAAAnD,EAAA,KAAA,GAGA,IAAAX,EAAAhY,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,EAAA,QAEA,IAAAxP,EAAAwP,EACAwD,IACAnD,EAAA,KACA7P,EAAA,IAAAA,EAAA,IACAwP,EAAAI,IACAT,EAAAjY,KAAAsY,KACAxP,GAAAwP,EACAG,MAGAE,EAAA,KAIA,SAAAoD,EAAA3K,EAAAtI,GACA,GAAA6P,EAAA,KAAA,GACA,EAAA,CAEA,IAAAZ,EAAA/X,KAAAsY,EAAAG,KACA,MAAAQ,EAAAX,EAAA,QAEA,MAAAI,IACAqD,EAAA3K,EAAAtI,EAAA,IAAAwP,IAEAK,EAAA,KACA,MAAAD,IACAqD,EAAA3K,EAAAtI,EAAA,IAAAwP,GAEAtH,EAAAI,EAAAtI,EAAA,IAAAwP,EAAAe,GAAA,KAEAV,EAAA,KAAA,UACAA,EAAA,KAAA,SAEA3H,EAAAI,EAAAtI,EAAAuQ,GAAA,IAtBA0C,CAAA3K,EAAAtI,GA0BA,SAAAkI,EAAAI,EAAAtI,EAAAtH,GACA4P,EAAAJ,WACAI,EAAAJ,UAAAlI,EAAAtH,GAGA,SAAAgZ,EAAApJ,GACA,GAAAuH,EAAA,KAAA,GAAA,CACA,KACA0B,EAAAjJ,EAAA,UACAuH,EAAA,KAAA,KACAA,EAAA,KAEA,OAAAvH,EAqGA,KAAA,QAAAkH,EAAAG,MACA,OAAAH,GAEA,IAAA,UAGA,IAAAO,EACA,MAAAI,EAAAX,GAEA0B,IACA,MAEA,IAAA,SAGA,IAAAnB,EACA,MAAAI,EAAAX,GAEA2B,IACA,MAEA,IAAA,SAGA,IAAApB,EACA,MAAAI,EAAAX,GAEA6B,IACA,MAEA,IAAA,SAEAE,EAAApE,EAAAqC,GACAK,EAAA,KACA,MAEA,QAGA,GAAAyB,EAAAnE,EAAAqC,GAAA,CACAO,GAAA,EACA,SAIA,MAAAI,EAAAX,GAKA,OADA1E,EAAAhR,SAAA,KACA,CACAoZ,QAAA9D,EACAC,QAAAA,EACAC,YAAAA,EACAC,OAAAA,EACA7F,KAAAA,4FCzuBArV,EAAAC,QAAAiW,EAEA,IAEAC,EAFA1H,EAAA1O,EAAA,IAIA+e,EAAArQ,EAAAqQ,SACA5T,EAAAuD,EAAAvD,KAGA,SAAA6T,EAAA9H,EAAA+H,GACA,OAAAC,WAAA,uBAAAhI,EAAA9P,IAAA,OAAA6X,GAAA,GAAA,MAAA/H,EAAA9L,KASA,SAAA+K,EAAAvU,GAMAgD,KAAAuC,IAAAvF,EAMAgD,KAAAwC,IAAA,EAMAxC,KAAAwG,IAAAxJ,EAAApB,OAGA,IAwCA8D,EAxCA6a,EAAA,oBAAA5Y,WACA,SAAA3E,GACA,GAAAA,aAAA2E,YAAAjG,MAAAwY,QAAAlX,GACA,OAAA,IAAAuU,EAAAvU,GACA,MAAAiB,MAAA,mBAGA,SAAAjB,GACA,GAAAtB,MAAAwY,QAAAlX,GACA,OAAA,IAAAuU,EAAAvU,GACA,MAAAiB,MAAA,mBAkEA,SAAAuc,IAEA,IAAAC,EAAA,IAAAN,EAAA,EAAA,GACArd,EAAA,EACA,KAAA,EAAAkD,KAAAwG,IAAAxG,KAAAwC,KAaA,CACA,KAAA1F,EAAA,IAAAA,EAAA,CAEA,GAAAkD,KAAAwC,KAAAxC,KAAAwG,IACA,MAAA4T,EAAApa,MAGA,GADAya,EAAAxV,IAAAwV,EAAAxV,IAAA,IAAAjF,KAAAuC,IAAAvC,KAAAwC,OAAA,EAAA1F,KAAA,EACAkD,KAAAuC,IAAAvC,KAAAwC,OAAA,IACA,OAAAiY,EAIA,OADAA,EAAAxV,IAAAwV,EAAAxV,IAAA,IAAAjF,KAAAuC,IAAAvC,KAAAwC,SAAA,EAAA1F,KAAA,EACA2d,EAxBA,KAAA3d,EAAA,IAAAA,EAGA,GADA2d,EAAAxV,IAAAwV,EAAAxV,IAAA,IAAAjF,KAAAuC,IAAAvC,KAAAwC,OAAA,EAAA1F,KAAA,EACAkD,KAAAuC,IAAAvC,KAAAwC,OAAA,IACA,OAAAiY,EAKA,GAFAA,EAAAxV,IAAAwV,EAAAxV,IAAA,IAAAjF,KAAAuC,IAAAvC,KAAAwC,OAAA,MAAA,EACAiY,EAAAvV,IAAAuV,EAAAvV,IAAA,IAAAlF,KAAAuC,IAAAvC,KAAAwC,OAAA,KAAA,EACAxC,KAAAuC,IAAAvC,KAAAwC,OAAA,IACA,OAAAiY,EAgBA,GAfA3d,EAAA,EAeA,EAAAkD,KAAAwG,IAAAxG,KAAAwC,KACA,KAAA1F,EAAA,IAAAA,EAGA,GADA2d,EAAAvV,IAAAuV,EAAAvV,IAAA,IAAAlF,KAAAuC,IAAAvC,KAAAwC,OAAA,EAAA1F,EAAA,KAAA,EACAkD,KAAAuC,IAAAvC,KAAAwC,OAAA,IACA,OAAAiY,OAGA,KAAA3d,EAAA,IAAAA,EAAA,CAEA,GAAAkD,KAAAwC,KAAAxC,KAAAwG,IACA,MAAA4T,EAAApa,MAGA,GADAya,EAAAvV,IAAAuV,EAAAvV,IAAA,IAAAlF,KAAAuC,IAAAvC,KAAAwC,OAAA,EAAA1F,EAAA,KAAA,EACAkD,KAAAuC,IAAAvC,KAAAwC,OAAA,IACA,OAAAiY,EAIA,MAAAxc,MAAA,2BAkCA,SAAAyc,EAAAnY,EAAArF,GACA,OAAAqF,EAAArF,EAAA,GACAqF,EAAArF,EAAA,IAAA,EACAqF,EAAArF,EAAA,IAAA,GACAqF,EAAArF,EAAA,IAAA,MAAA,EA+BA,SAAAyd,IAGA,GAAA3a,KAAAwC,IAAA,EAAAxC,KAAAwG,IACA,MAAA4T,EAAApa,KAAA,GAEA,OAAA,IAAAma,EAAAO,EAAA1a,KAAAuC,IAAAvC,KAAAwC,KAAA,GAAAkY,EAAA1a,KAAAuC,IAAAvC,KAAAwC,KAAA,IArLA+O,EAAAvE,OAAAlD,EAAA8Q,OACA,SAAA5d,GACA,OAAAuU,EAAAvE,OAAA,SAAAhQ,GACA,OAAA8M,EAAA8Q,OAAAC,SAAA7d,GACA,IAAAwU,EAAAxU,GAEAud,EAAAvd,KACAA,IAGAud,EAEAhJ,EAAArR,UAAA4a,EAAAhR,EAAApO,MAAAwE,UAAA6a,UAAAjR,EAAApO,MAAAwE,UAAAvC,MAOA4T,EAAArR,UAAA8a,QACAtb,EAAA,WACA,WACA,GAAAA,GAAA,IAAAM,KAAAuC,IAAAvC,KAAAwC,QAAA,EAAAxC,KAAAuC,IAAAvC,KAAAwC,OAAA,IAAA,OAAA9C,EACA,GAAAA,GAAAA,GAAA,IAAAM,KAAAuC,IAAAvC,KAAAwC,OAAA,KAAA,EAAAxC,KAAAuC,IAAAvC,KAAAwC,OAAA,IAAA,OAAA9C,EACA,GAAAA,GAAAA,GAAA,IAAAM,KAAAuC,IAAAvC,KAAAwC,OAAA,MAAA,EAAAxC,KAAAuC,IAAAvC,KAAAwC,OAAA,IAAA,OAAA9C,EACA,GAAAA,GAAAA,GAAA,IAAAM,KAAAuC,IAAAvC,KAAAwC,OAAA,MAAA,EAAAxC,KAAAuC,IAAAvC,KAAAwC,OAAA,IAAA,OAAA9C,EACA,GAAAA,GAAAA,GAAA,GAAAM,KAAAuC,IAAAvC,KAAAwC,OAAA,MAAA,EAAAxC,KAAAuC,IAAAvC,KAAAwC,OAAA,IAAA,OAAA9C,EAGA,IAAAM,KAAAwC,KAAA,GAAAxC,KAAAwG,IAEA,MADAxG,KAAAwC,IAAAxC,KAAAwG,IACA4T,EAAApa,KAAA,IAEA,OAAAN,IAQA6R,EAAArR,UAAA+a,MAAA,WACA,OAAA,EAAAjb,KAAAgb,UAOAzJ,EAAArR,UAAAgb,OAAA,WACA,IAAAxb,EAAAM,KAAAgb,SACA,OAAAtb,IAAA,IAAA,EAAAA,GAAA,GAqFA6R,EAAArR,UAAAib,KAAA,WACA,OAAA,IAAAnb,KAAAgb,UAcAzJ,EAAArR,UAAAkb,QAAA,WAGA,GAAApb,KAAAwC,IAAA,EAAAxC,KAAAwG,IACA,MAAA4T,EAAApa,KAAA,GAEA,OAAA0a,EAAA1a,KAAAuC,IAAAvC,KAAAwC,KAAA,IAOA+O,EAAArR,UAAAmb,SAAA,WAGA,GAAArb,KAAAwC,IAAA,EAAAxC,KAAAwG,IACA,MAAA4T,EAAApa,KAAA,GAEA,OAAA,EAAA0a,EAAA1a,KAAAuC,IAAAvC,KAAAwC,KAAA,IAmCA+O,EAAArR,UAAAob,MAAA,WAGA,GAAAtb,KAAAwC,IAAA,EAAAxC,KAAAwG,IACA,MAAA4T,EAAApa,KAAA,GAEA,IAAAN,EAAAoK,EAAAwR,MAAAxY,YAAA9C,KAAAuC,IAAAvC,KAAAwC,KAEA,OADAxC,KAAAwC,KAAA,EACA9C,GAQA6R,EAAArR,UAAAqb,OAAA,WAGA,GAAAvb,KAAAwC,IAAA,EAAAxC,KAAAwG,IACA,MAAA4T,EAAApa,KAAA,GAEA,IAAAN,EAAAoK,EAAAwR,MAAA3W,aAAA3E,KAAAuC,IAAAvC,KAAAwC,KAEA,OADAxC,KAAAwC,KAAA,EACA9C,GAOA6R,EAAArR,UAAA6L,MAAA,WACA,IAAAnQ,EAAAoE,KAAAgb,SACA/d,EAAA+C,KAAAwC,IACAtF,EAAA8C,KAAAwC,IAAA5G,EAGA,GAAAsB,EAAA8C,KAAAwG,IACA,MAAA4T,EAAApa,KAAApE,GAGA,OADAoE,KAAAwC,KAAA5G,EACAF,MAAAwY,QAAAlU,KAAAuC,KACAvC,KAAAuC,IAAA5E,MAAAV,EAAAC,GACAD,IAAAC,EACA,IAAA8C,KAAAuC,IAAA0K,YAAA,GACAjN,KAAA8a,EAAAxU,KAAAtG,KAAAuC,IAAAtF,EAAAC,IAOAqU,EAAArR,UAAA5D,OAAA,WACA,IAAAyP,EAAA/L,KAAA+L,QACA,OAAAxF,EAAAE,KAAAsF,EAAA,EAAAA,EAAAnQ,SAQA2V,EAAArR,UAAA2W,KAAA,SAAAjb,GACA,GAAA,iBAAAA,EAAA,CAEA,GAAAoE,KAAAwC,IAAA5G,EAAAoE,KAAAwG,IACA,MAAA4T,EAAApa,KAAApE,GACAoE,KAAAwC,KAAA5G,OAEA,GAEA,GAAAoE,KAAAwC,KAAAxC,KAAAwG,IACA,MAAA4T,EAAApa,YACA,IAAAA,KAAAuC,IAAAvC,KAAAwC,QAEA,OAAAxC,MAQAuR,EAAArR,UAAAsb,SAAA,SAAA7O,GACA,OAAAA,GACA,KAAA,EACA3M,KAAA6W,OACA,MACA,KAAA,EACA7W,KAAA6W,KAAA,GACA,MACA,KAAA,EACA7W,KAAA6W,KAAA7W,KAAAgb,UACA,MACA,KAAA,EACA,KAAA,IAAArO,EAAA,EAAA3M,KAAAgb,WACAhb,KAAAwb,SAAA7O,GAEA,MACA,KAAA,EACA3M,KAAA6W,KAAA,GACA,MAGA,QACA,MAAA5Y,MAAA,qBAAA0O,EAAA,cAAA3M,KAAAwC,KAEA,OAAAxC,MAGAuR,EAAAjB,EAAA,SAAAmL,GACAjK,EAAAiK,EAEA,IAAAlgB,EAAAuO,EAAA8E,KAAA,SAAA,WACA9E,EAAA4R,MAAAnK,EAAArR,UAAA,CAEAyb,MAAA,WACA,OAAAnB,EAAAlU,KAAAtG,MAAAzE,IAAA,IAGAqgB,OAAA,WACA,OAAApB,EAAAlU,KAAAtG,MAAAzE,IAAA,IAGAsgB,OAAA,WACA,OAAArB,EAAAlU,KAAAtG,MAAA8b,WAAAvgB,IAAA,IAGAwgB,QAAA,WACA,OAAApB,EAAArU,KAAAtG,MAAAzE,IAAA,IAGAygB,SAAA,WACA,OAAArB,EAAArU,KAAAtG,MAAAzE,IAAA,mCC/YAF,EAAAC,QAAAkW,EAGA,IAAAD,EAAAnW,EAAA,KACAoW,EAAAtR,UAAAnB,OAAAiO,OAAAuE,EAAArR,YAAA+M,YAAAuE,EAEA,IAAA1H,EAAA1O,EAAA,IASA,SAAAoW,EAAAxU,GACAuU,EAAAjL,KAAAtG,KAAAhD,GAUA8M,EAAA8Q,SACApJ,EAAAtR,UAAA4a,EAAAhR,EAAA8Q,OAAA1a,UAAAvC,OAKA6T,EAAAtR,UAAA5D,OAAA,WACA,IAAAkK,EAAAxG,KAAAgb,SACA,OAAAhb,KAAAuC,IAAA0Z,UAAAjc,KAAAwC,IAAAxC,KAAAwC,IAAA9F,KAAAwf,IAAAlc,KAAAwC,IAAAgE,EAAAxG,KAAAwG,yCClCAnL,EAAAC,QAAAqV,EAGA,IAAAxD,EAAA/R,EAAA,MACAuV,EAAAzQ,UAAAnB,OAAAiO,OAAAG,EAAAjN,YAAA+M,YAAA0D,GAAAzD,UAAA,OAEA,IAKAmB,EACAyD,EACAjL,EAPAuH,EAAAhT,EAAA,IACAyO,EAAAzO,EAAA,IACA4V,EAAA5V,EAAA,IACA0O,EAAA1O,EAAA,IAaA,SAAAuV,EAAA5P,GACAoM,EAAA7G,KAAAtG,KAAA,GAAAe,GAMAf,KAAAmc,SAAA,GAMAnc,KAAAoc,MAAA,GA6BA,SAAAC,KApBA1L,EAAAnD,SAAA,SAAAvG,EAAAyJ,GAKA,OAJAA,IACAA,EAAA,IAAAC,GACA1J,EAAAlG,SACA2P,EAAAoD,WAAA7M,EAAAlG,SACA2P,EAAA4C,QAAArM,EAAAC,SAWAyJ,EAAAzQ,UAAAoc,YAAAxS,EAAAvE,KAAAtJ,QAaA0U,EAAAzQ,UAAAuQ,KAAA,SAAAA,EAAA3P,EAAAC,EAAAC,GACA,mBAAAD,IACAC,EAAAD,EACAA,EAAAjG,IAEA,IAAAyhB,EAAAvc,KACA,IAAAgB,EACA,OAAA8I,EAAAnJ,UAAA8P,EAAA8L,EAAAzb,EAAAC,GAEA,IAAAyb,EAAAxb,IAAAqb,EAGA,SAAAI,EAAAtgB,EAAAuU,GAEA,GAAA1P,EAAA,CAEA,IAAA0b,EAAA1b,EAEA,GADAA,EAAA,KACAwb,EACA,MAAArgB,EACAugB,EAAAvgB,EAAAuU,IAIA,SAAAiM,EAAA7b,GACA,IAAA8b,EAAA9b,EAAA+b,YAAA,oBACA,IAAA,EAAAD,EAAA,CACA,IAAAE,EAAAhc,EAAA2W,UAAAmF,GACA,GAAAE,KAAAjW,EAAA,OAAAiW,EAEA,OAAA,KAIA,SAAAC,EAAAjc,EAAArC,GACA,IAGA,GAFAqL,EAAAgE,SAAArP,IAAA,MAAAA,EAAAhC,OAAA,KACAgC,EAAAmB,KAAAkS,MAAArT,IACAqL,EAAAgE,SAAArP,GAEA,CACAqT,EAAAhR,SAAAA,EACA,IACAsO,EADA4N,EAAAlL,EAAArT,EAAA8d,EAAAxb,GAEAjE,EAAA,EACA,GAAAkgB,EAAA3G,QACA,KAAAvZ,EAAAkgB,EAAA3G,QAAAza,SAAAkB,GACAsS,EAAAuN,EAAAK,EAAA3G,QAAAvZ,KAAAyf,EAAAD,YAAAxb,EAAAkc,EAAA3G,QAAAvZ,MACA4D,EAAA0O,GACA,GAAA4N,EAAA1G,YACA,IAAAxZ,EAAA,EAAAA,EAAAkgB,EAAA1G,YAAA1a,SAAAkB,GACAsS,EAAAuN,EAAAK,EAAA1G,YAAAxZ,KAAAyf,EAAAD,YAAAxb,EAAAkc,EAAA1G,YAAAxZ,MACA4D,EAAA0O,GAAA,QAbAmN,EAAAzI,WAAArV,EAAAsC,SAAAuS,QAAA7U,EAAAyI,QAeA,MAAA/K,GACAsgB,EAAAtgB,GAEAqgB,GAAAS,GACAR,EAAA,KAAAF,GAIA,SAAA7b,EAAAI,EAAAoc,GAGA,MAAA,EAAAX,EAAAH,MAAAjQ,QAAArL,IAKA,GAHAyb,EAAAH,MAAA5e,KAAAsD,GAGAA,KAAA+F,EACA2V,EACAO,EAAAjc,EAAA+F,EAAA/F,OAEAmc,EACAE,WAAA,aACAF,EACAF,EAAAjc,EAAA+F,EAAA/F,YAOA,GAAA0b,EAAA,CACA,IAAA/d,EACA,IACAA,EAAAqL,EAAAlJ,GAAAwc,aAAAtc,GAAApC,SAAA,QACA,MAAAvC,GAGA,YAFA+gB,GACAT,EAAAtgB,IAGA4gB,EAAAjc,EAAArC,SAEAwe,EACAnT,EAAApJ,MAAAI,EAAA,SAAA3E,EAAAsC,KACAwe,EAEAjc,IAEA7E,EAEA+gB,EAEAD,GACAR,EAAA,KAAAF,GAFAE,EAAAtgB,GAKA4gB,EAAAjc,EAAArC,MAIA,IAAAwe,EAAA,EAIAnT,EAAAgE,SAAAhN,KACAA,EAAA,CAAAA,IACA,IAAA,IAAAsO,EAAAtS,EAAA,EAAAA,EAAAgE,EAAAlF,SAAAkB,GACAsS,EAAAmN,EAAAD,YAAA,GAAAxb,EAAAhE,MACA4D,EAAA0O,GAEA,OAAAoN,EACAD,GACAU,GACAR,EAAA,KAAAF,GACAzhB,KAgCA6V,EAAAzQ,UAAA0Q,SAAA,SAAA9P,EAAAC,GACA,IAAA+I,EAAAuT,OACA,MAAApf,MAAA,iBACA,OAAA+B,KAAAyQ,KAAA3P,EAAAC,EAAAsb,IAMA1L,EAAAzQ,UAAAmU,WAAA,WACA,GAAArU,KAAAmc,SAAAvgB,OACA,MAAAqC,MAAA,4BAAA+B,KAAAmc,SAAApR,IAAA,SAAAd,GACA,MAAA,WAAAA,EAAAsE,OAAA,QAAAtE,EAAAqF,OAAA9E,WACA5M,KAAA,OACA,OAAAuP,EAAAjN,UAAAmU,WAAA/N,KAAAtG,OAIA,IAAAsd,EAAA,SAUA,SAAAC,EAAA7M,EAAAzG,GACA,IAAAuT,EAAAvT,EAAAqF,OAAAgF,OAAArK,EAAAsE,QACA,GAAAiP,EAAA,CACA,IAAAC,EAAA,IAAArP,EAAAnE,EAAAO,SAAAP,EAAAzC,GAAAyC,EAAA1C,KAAA0C,EAAAnB,KAAAhO,GAAAmP,EAAAlJ,SAIA,OAHA0c,EAAA3O,eAAA7E,GACA4E,eAAA4O,EACAD,EAAA3P,IAAA4P,IACA,EAEA,OAAA,EASA9M,EAAAzQ,UAAA8U,EAAA,SAAAvC,GACA,GAAAA,aAAArE,EAEAqE,EAAAlE,SAAAzT,IAAA2X,EAAA5D,gBACA0O,EAAAvd,EAAAyS,IACAzS,KAAAmc,SAAA3e,KAAAiV,QAEA,GAAAA,aAAA5I,EAEAyT,EAAApf,KAAAuU,EAAAzL,QACAyL,EAAAnD,OAAAmD,EAAAzL,MAAAyL,EAAA9J,aAEA,KAAA8J,aAAAzB,GAAA,CAEA,GAAAyB,aAAApE,EACA,IAAA,IAAAvR,EAAA,EAAAA,EAAAkD,KAAAmc,SAAAvgB,QACA2hB,EAAAvd,EAAAA,KAAAmc,SAAArf,IACAkD,KAAAmc,SAAA5b,OAAAzD,EAAA,KAEAA,EACA,IAAA,IAAAQ,EAAA,EAAAA,EAAAmV,EAAAe,YAAA5X,SAAA0B,EACA0C,KAAAgV,EAAAvC,EAAAU,EAAA7V,IACAggB,EAAApf,KAAAuU,EAAAzL,QACAyL,EAAAnD,OAAAmD,EAAAzL,MAAAyL,KAcA9B,EAAAzQ,UAAA+U,EAAA,SAAAxC,GACA,GAAAA,aAAArE,GAEA,GAAAqE,EAAAlE,SAAAzT,GACA,GAAA2X,EAAA5D,eACA4D,EAAA5D,eAAAS,OAAAnB,OAAAsE,EAAA5D,gBACA4D,EAAA5D,eAAA,SACA,CACA,IAAA/S,EAAAkE,KAAAmc,SAAAhQ,QAAAsG,IAEA,EAAA3W,GACAkE,KAAAmc,SAAA5b,OAAAzE,EAAA,SAIA,GAAA2W,aAAA5I,EAEAyT,EAAApf,KAAAuU,EAAAzL,cACAyL,EAAAnD,OAAAmD,EAAAzL,WAEA,GAAAyL,aAAAtF,EAAA,CAEA,IAAA,IAAArQ,EAAA,EAAAA,EAAA2V,EAAAe,YAAA5X,SAAAkB,EACAkD,KAAAiV,EAAAxC,EAAAU,EAAArW,IAEAwgB,EAAApf,KAAAuU,EAAAzL,cACAyL,EAAAnD,OAAAmD,EAAAzL,QAMA2J,EAAAL,EAAA,SAAAC,EAAAmN,EAAAC,GACAtP,EAAAkC,EACAuB,EAAA4L,EACA7W,EAAA8W,uDC9VAtiB,EAAAC,QAAA,4BCKAA,EA6BA4V,QAAA9V,EAAA,gCClCAC,EAAAC,QAAA4V,EAEA,IAAApH,EAAA1O,EAAA,IAsCA,SAAA8V,EAAA0M,EAAAC,EAAAC,GAEA,GAAA,mBAAAF,EACA,MAAAtQ,UAAA,8BAEAxD,EAAA/J,aAAAuG,KAAAtG,MAMAA,KAAA4d,QAAAA,EAMA5d,KAAA6d,mBAAAA,EAMA7d,KAAA8d,oBAAAA,IA1DA5M,EAAAhR,UAAAnB,OAAAiO,OAAAlD,EAAA/J,aAAAG,YAAA+M,YAAAiE,GAwEAhR,UAAA6d,QAAA,SAAAA,EAAA1E,EAAA2E,EAAAC,EAAAC,EAAAld,GAEA,IAAAkd,EACA,MAAA5Q,UAAA,6BAEA,IAAAiP,EAAAvc,KACA,IAAAgB,EACA,OAAA8I,EAAAnJ,UAAAod,EAAAxB,EAAAlD,EAAA2E,EAAAC,EAAAC,GAEA,IAAA3B,EAAAqB,QAEA,OADAT,WAAA,WAAAnc,EAAA/C,MAAA,mBAAA,GACAnD,GAGA,IACA,OAAAyhB,EAAAqB,QACAvE,EACA2E,EAAAzB,EAAAsB,iBAAA,kBAAA,UAAAK,GAAAzB,SACA,SAAAtgB,EAAAsF,GAEA,GAAAtF,EAEA,OADAogB,EAAA/b,KAAA,QAAArE,EAAAkd,GACArY,EAAA7E,GAGA,GAAA,OAAAsF,EAEA,OADA8a,EAAArf,KAAA,GACApC,GAGA,KAAA2G,aAAAwc,GACA,IACAxc,EAAAwc,EAAA1B,EAAAuB,kBAAA,kBAAA,UAAArc,GACA,MAAAtF,GAEA,OADAogB,EAAA/b,KAAA,QAAArE,EAAAkd,GACArY,EAAA7E,GAKA,OADAogB,EAAA/b,KAAA,OAAAiB,EAAA4X,GACArY,EAAA,KAAAS,KAGA,MAAAtF,GAGA,OAFAogB,EAAA/b,KAAA,QAAArE,EAAAkd,GACA8D,WAAA,WAAAnc,EAAA7E,IAAA,GACArB,KASAoW,EAAAhR,UAAAhD,IAAA,SAAAihB,GAOA,OANAne,KAAA4d,UACAO,GACAne,KAAA4d,QAAA,KAAA,KAAA,MACA5d,KAAA4d,QAAA,KACA5d,KAAAQ,KAAA,OAAAH,OAEAL,kCC3IA3E,EAAAC,QAAA4V,EAGA,IAAA/D,EAAA/R,EAAA,MACA8V,EAAAhR,UAAAnB,OAAAiO,OAAAG,EAAAjN,YAAA+M,YAAAiE,GAAAhE,UAAA,UAEA,IAAAiE,EAAA/V,EAAA,IACA0O,EAAA1O,EAAA,IACAuW,EAAAvW,EAAA,IAWA,SAAA8V,EAAAlK,EAAAjG,GACAoM,EAAA7G,KAAAtG,KAAAgH,EAAAjG,GAMAf,KAAA2T,QAAA,GAOA3T,KAAAoe,EAAA,KAyDA,SAAAhL,EAAA+F,GAEA,OADAA,EAAAiF,EAAA,KACAjF,EA1CAjI,EAAA1D,SAAA,SAAAxG,EAAAC,GACA,IAAAkS,EAAA,IAAAjI,EAAAlK,EAAAC,EAAAlG,SAEA,GAAAkG,EAAA0M,QACA,IAAA,IAAAD,EAAA3U,OAAAC,KAAAiI,EAAA0M,SAAA7W,EAAA,EAAAA,EAAA4W,EAAA9X,SAAAkB,EACAqc,EAAAtL,IAAAsD,EAAA3D,SAAAkG,EAAA5W,GAAAmK,EAAA0M,QAAAD,EAAA5W,MAIA,OAHAmK,EAAAC,QACAiS,EAAA7F,QAAArM,EAAAC,QACAiS,EAAA/L,QAAAnG,EAAAmG,QACA+L,GAQAjI,EAAAhR,UAAAwN,OAAA,SAAAC,GACA,IAAA0Q,EAAAlR,EAAAjN,UAAAwN,OAAApH,KAAAtG,KAAA2N,GACAC,IAAAD,KAAAA,EAAAC,aACA,OAAA9D,EAAAoB,SAAA,CACA,UAAAmT,GAAAA,EAAAtd,SAAAjG,GACA,UAAAqS,EAAA6F,YAAAhT,KAAAse,aAAA3Q,IAAA,GACA,SAAA0Q,GAAAA,EAAAnX,QAAApM,GACA,UAAA8S,EAAA5N,KAAAoN,QAAAtS,MAUAiE,OAAAiQ,eAAAkC,EAAAhR,UAAA,eAAA,CACAwJ,IAAA,WACA,OAAA1J,KAAAoe,IAAApe,KAAAoe,EAAAtU,EAAAyJ,QAAAvT,KAAA2T,aAYAzC,EAAAhR,UAAAwJ,IAAA,SAAA1C,GACA,OAAAhH,KAAA2T,QAAA3M,IACAmG,EAAAjN,UAAAwJ,IAAApD,KAAAtG,KAAAgH,IAMAkK,EAAAhR,UAAAmU,WAAA,WAEA,IADA,IAAAV,EAAA3T,KAAAse,aACAxhB,EAAA,EAAAA,EAAA6W,EAAA/X,SAAAkB,EACA6W,EAAA7W,GAAAb,UACA,OAAAkR,EAAAjN,UAAAjE,QAAAqK,KAAAtG,OAMAkR,EAAAhR,UAAA2N,IAAA,SAAA4E,GAGA,GAAAzS,KAAA0J,IAAA+I,EAAAzL,MACA,MAAA/I,MAAA,mBAAAwU,EAAAzL,KAAA,QAAAhH,MAEA,OAAAyS,aAAAtB,EAGAiC,GAFApT,KAAA2T,QAAAlB,EAAAzL,MAAAyL,GACAnD,OAAAtP,MAGAmN,EAAAjN,UAAA2N,IAAAvH,KAAAtG,KAAAyS,IAMAvB,EAAAhR,UAAAiO,OAAA,SAAAsE,GACA,GAAAA,aAAAtB,EAAA,CAGA,GAAAnR,KAAA2T,QAAAlB,EAAAzL,QAAAyL,EACA,MAAAxU,MAAAwU,EAAA,uBAAAzS,MAIA,cAFAA,KAAA2T,QAAAlB,EAAAzL,MACAyL,EAAAnD,OAAA,KACA8D,EAAApT,MAEA,OAAAmN,EAAAjN,UAAAiO,OAAA7H,KAAAtG,KAAAyS,IAUAvB,EAAAhR,UAAA8M,OAAA,SAAA4Q,EAAAC,EAAAC,GAEA,IADA,IACAzE,EADAkF,EAAA,IAAA5M,EAAAT,QAAA0M,EAAAC,EAAAC,GACAhhB,EAAA,EAAAA,EAAAkD,KAAAse,aAAA1iB,SAAAkB,EAAA,CACA,IAAA0hB,EAAA1U,EAAA+P,SAAAR,EAAArZ,KAAAoe,EAAAthB,IAAAb,UAAA+K,MAAAzH,QAAA,WAAA,IACAgf,EAAAC,GAAA1U,EAAA3L,QAAA,CAAA,IAAA,KAAA2L,EAAA2U,WAAAD,GAAAA,EAAA,IAAAA,EAAA1U,CAAA,iCAAAA,CAAA,CACA4U,EAAArF,EACAsF,EAAAtF,EAAAxG,oBAAAhD,KACA+O,EAAAvF,EAAAvG,qBAAAjD,OAGA,OAAA0O,iDCpKAljB,EAAAC,QAAAuW,EAEA,IAAAgN,EAAA,uBACAC,EAAA,kCACAC,EAAA,kCAEAC,EAAA,aACAC,EAAA,aACAC,EAAA,MACAC,EAAA,KACAC,EAAA,UAEAC,EAAA,CACAC,EAAA,KACAC,EAAA,KACA/iB,EAAA,KACAW,EAAA,MAUA,SAAAqiB,EAAAC,GACA,OAAAA,EAAAlgB,QAAA6f,EAAA,SAAA5f,EAAAC,GACA,OAAAA,GACA,IAAA,KACA,IAAA,GACA,OAAAA,EACA,QACA,OAAA4f,EAAA5f,IAAA,MAgEA,SAAAoS,EAAApT,EAAAiY,GAEAjY,EAAAA,EAAAC,WAEA,IAAA7C,EAAA,EACAD,EAAA6C,EAAA7C,OACAyb,EAAA,EACAqI,EAAA,KACAtG,EAAA,KACAuG,EAAA,EACAC,GAAA,EAEAC,EAAA,GAEAC,EAAA,KASA,SAAA3I,EAAA4I,GACA,OAAA9hB,MAAA,WAAA8hB,EAAA,UAAA1I,EAAA,KA0BA,SAAA5a,EAAA+F,GACA,OAAA/D,EAAAhC,OAAA+F,GAUA,SAAAwd,EAAA/iB,EAAAC,GACAwiB,EAAAjhB,EAAAhC,OAAAQ,KACA0iB,EAAAtI,EACAuI,GAAA,EAOA,IACA7hB,EADAkiB,EAAAhjB,GALAyZ,EACA,EAEA,GAIA,GACA,KAAAuJ,EAAA,GACA,QAAAliB,EAAAU,EAAAhC,OAAAwjB,IAAA,CACAL,GAAA,EACA,aAEA,MAAA7hB,GAAA,OAAAA,GAIA,IAHA,IAAAmiB,EAAAzhB,EACAgZ,UAAAxa,EAAAC,GACAwI,MAAAwZ,GACApiB,EAAA,EAAAA,EAAAojB,EAAAtkB,SAAAkB,EACAojB,EAAApjB,GAAAojB,EAAApjB,GACAyC,QAAAmX,EAAAuI,EAAAD,EAAA,IACAmB,OACA/G,EAAA8G,EACAtiB,KAAA,MACAuiB,OAGA,SAAAC,EAAAC,GACA,IAAAC,EAAAC,EAAAF,GAGAG,EAAA/hB,EAAAgZ,UAAA4I,EAAAC,GAIA,MADA,cAAApiB,KAAAsiB,GAIA,SAAAD,EAAAE,GAGA,IADA,IAAAH,EAAAG,EACAH,EAAA1kB,GAAA,OAAAa,EAAA6jB,IACAA,IAEA,OAAAA,EAQA,SAAA3J,IACA,GAAA,EAAAkJ,EAAAjkB,OACA,OAAAikB,EAAAha,QACA,GAAAia,EACA,OAzFA,WACA,IAAAY,EAAA,MAAAZ,EAAAf,EAAAD,EACA4B,EAAAC,UAAA9kB,EAAA,EACA,IAAA+kB,EAAAF,EAAAG,KAAApiB,GACA,IAAAmiB,EACA,MAAAzJ,EAAA,UAIA,OAHAtb,EAAA6kB,EAAAC,UACAnjB,EAAAsiB,GACAA,EAAA,KACAN,EAAAoB,EAAA,IAgFAtJ,GACA,IAAAwJ,EACAjN,EACAkN,EACA9jB,EACA+jB,EACA,EAAA,CACA,GAAAnlB,IAAAD,EACA,OAAA,KAEA,IADAklB,GAAA,EACA3B,EAAAjhB,KAAA6iB,EAAAtkB,EAAAZ,KAGA,GAFA,OAAAklB,KACA1J,IACAxb,IAAAD,EACA,OAAA,KAGA,GAAA,MAAAa,EAAAZ,GAAA,CACA,KAAAA,IAAAD,EACA,MAAAub,EAAA,WAEA,GAAA,MAAA1a,EAAAZ,GACA,GAAA6a,EAeA,CAIA,GADAsK,GAAA,EACAZ,EAFAnjB,EAAApB,GAEA,CACAmlB,GAAA,EACA,EAAA,CAEA,IADAnlB,EAAA0kB,EAAA1kB,MACAD,EACA,MAEAC,UACAukB,EAAAvkB,SAEAA,EAAAa,KAAAwf,IAAAtgB,EAAA2kB,EAAA1kB,GAAA,GAEAmlB,GACAhB,EAAA/iB,EAAApB,GAEAwb,IACAyJ,GAAA,MAnCA,CAIA,IAFAE,EAAA,MAAAvkB,EAAAQ,EAAApB,EAAA,GAEA,OAAAY,IAAAZ,IACA,GAAAA,IAAAD,EACA,OAAA,OAGAC,EACAmlB,GACAhB,EAAA/iB,EAAApB,EAAA,KAEAwb,EACAyJ,GAAA,MAuBA,CAAA,GAAA,OAAAC,EAAAtkB,EAAAZ,IAoBA,MAAA,IAlBAoB,EAAApB,EAAA,EACAmlB,EAAAtK,GAAA,MAAAja,EAAAQ,GACA,EAAA,CAIA,GAHA,OAAA8jB,KACA1J,IAEAxb,IAAAD,EACA,MAAAub,EAAA,WAEAtD,EAAAkN,EACAA,EAAAtkB,EAAAZ,SACA,MAAAgY,GAAA,MAAAkN,KACAllB,EACAmlB,GACAhB,EAAA/iB,EAAApB,EAAA,GAEAilB,GAAA,UAKAA,GAIA,IAAA5jB,EAAArB,EAGA,GAFAgjB,EAAA8B,UAAA,GACA9B,EAAA3gB,KAAAzB,EAAAS,MAEA,KAAAA,EAAAtB,IAAAijB,EAAA3gB,KAAAzB,EAAAS,OACAA,EACA,IAAAsZ,EAAA/X,EAAAgZ,UAAA5b,EAAAA,EAAAqB,GAGA,MAFA,MAAAsZ,GAAA,MAAAA,IACAsJ,EAAAtJ,GACAA,EASA,SAAAhZ,EAAAgZ,GACAqJ,EAAAriB,KAAAgZ,GAQA,SAAAI,IACA,IAAAiJ,EAAAjkB,OAAA,CACA,IAAA4a,EAAAG,IACA,GAAA,OAAAH,EACA,OAAA,KACAhZ,EAAAgZ,GAEA,OAAAqJ,EAAA,GA+CA,OAAA9gB,OAAAiQ,eAAA,CACA2H,KAAAA,EACAC,KAAAA,EACApZ,KAAAA,EACAqZ,KAxCA,SAAAoK,EAAAnU,GACA,IAAAoU,EAAAtK,IAEA,GADAsK,IAAAD,EAGA,OADAtK,KACA,EAEA,IAAA7J,EACA,MAAAqK,EAAA,UAAA+J,EAAA,OAAAD,EAAA,cACA,OAAA,GAgCAnK,KAvBA,SAAA8C,GACA,IAAAuH,EAAA,KAcA,OAbAvH,IAAA9e,GACA6kB,IAAAtI,EAAA,IAAAX,GAAA,MAAAgJ,GAAAE,KACAuB,EAAA/H,IAIAuG,EAAA/F,GACAhD,IAEA+I,IAAA/F,GAAAgG,IAAAlJ,GAAA,MAAAgJ,IACAyB,EAAA/H,IAGA+H,IASA,OAAA,CACAzX,IAAA,WAAA,OAAA2N,KAlWAxF,EAAA2N,SAAAA,yBCtCAnkB,EAAAC,QAAA+S,EAGA,IAAAlB,EAAA/R,EAAA,MACAiT,EAAAnO,UAAAnB,OAAAiO,OAAAG,EAAAjN,YAAA+M,YAAAoB,GAAAnB,UAAA,OAEA,IAAArD,EAAAzO,EAAA,IACA4V,EAAA5V,EAAA,IACAgT,EAAAhT,EAAA,IACA6V,EAAA7V,EAAA,IACA8V,EAAA9V,EAAA,IACAgW,EAAAhW,EAAA,IACAmW,EAAAnW,EAAA,IACAqW,EAAArW,EAAA,IACA0O,EAAA1O,EAAA,IACAyV,EAAAzV,EAAA,IACA0V,EAAA1V,EAAA,IACA2V,EAAA3V,EAAA,IACAwO,EAAAxO,EAAA,IACAiW,EAAAjW,EAAA,IAUA,SAAAiT,EAAArH,EAAAjG,GACAoM,EAAA7G,KAAAtG,KAAAgH,EAAAjG,GAMAf,KAAAqH,OAAA,GAMArH,KAAAiI,OAAAnN,GAMAkF,KAAA8Y,WAAAhe,GAMAkF,KAAAuN,SAAAzS,GAMAkF,KAAAqM,MAAAvR,GAOAkF,KAAAohB,EAAA,KAOAphB,KAAAkM,EAAA,KAOAlM,KAAAqhB,EAAA,KAOArhB,KAAAshB,EAAA,KA0HA,SAAAlO,EAAA7L,GAKA,OAJAA,EAAA6Z,EAAA7Z,EAAA2E,EAAA3E,EAAA8Z,EAAA,YACA9Z,EAAAxK,cACAwK,EAAAzJ,cACAyJ,EAAAiL,OACAjL,EA5HAxI,OAAA+V,iBAAAzG,EAAAnO,UAAA,CAQAqhB,WAAA,CACA7X,IAAA,WAGA,GAAA1J,KAAAohB,EACA,OAAAphB,KAAAohB,EAEAphB,KAAAohB,EAAA,GACA,IAAA,IAAA1N,EAAA3U,OAAAC,KAAAgB,KAAAqH,QAAAvK,EAAA,EAAAA,EAAA4W,EAAA9X,SAAAkB,EAAA,CACA,IAAAmN,EAAAjK,KAAAqH,OAAAqM,EAAA5W,IACA0K,EAAAyC,EAAAzC,GAGA,GAAAxH,KAAAohB,EAAA5Z,GACA,MAAAvJ,MAAA,gBAAAuJ,EAAA,OAAAxH,MAEAA,KAAAohB,EAAA5Z,GAAAyC,EAEA,OAAAjK,KAAAohB,IAUAvW,YAAA,CACAnB,IAAA,WACA,OAAA1J,KAAAkM,IAAAlM,KAAAkM,EAAApC,EAAAyJ,QAAAvT,KAAAqH,WAUAma,YAAA,CACA9X,IAAA,WACA,OAAA1J,KAAAqhB,IAAArhB,KAAAqhB,EAAAvX,EAAAyJ,QAAAvT,KAAAiI,WAUA4H,KAAA,CACAnG,IAAA,WACA,OAAA1J,KAAAshB,IAAAthB,KAAA6P,KAAAxB,EAAAoT,oBAAAzhB,KAAAqO,KAEAkH,IAAA,SAAA1F,GAGA,IAAA3P,EAAA2P,EAAA3P,UACAA,aAAAkR,KACAvB,EAAA3P,UAAA,IAAAkR,GAAAnE,YAAA4C,EACA/F,EAAA4R,MAAA7L,EAAA3P,UAAAA,IAIA2P,EAAAsC,MAAAtC,EAAA3P,UAAAiS,MAAAnS,KAGA8J,EAAA4R,MAAA7L,EAAAuB,GAAA,GAEApR,KAAAshB,EAAAzR,EAIA,IADA,IAAA/S,EAAA,EACAA,EAAAkD,KAAA6K,YAAAjP,SAAAkB,EACAkD,KAAAkM,EAAApP,GAAAb,UAGA,IAAAylB,EAAA,GACA,IAAA5kB,EAAA,EAAAA,EAAAkD,KAAAwhB,YAAA5lB,SAAAkB,EACA4kB,EAAA1hB,KAAAqhB,EAAAvkB,GAAAb,UAAA+K,MAAA,CACA0C,IAAAI,EAAAwL,YAAAtV,KAAAqhB,EAAAvkB,GAAAqL,OACAoN,IAAAzL,EAAA0L,YAAAxV,KAAAqhB,EAAAvkB,GAAAqL,QAEArL,GACAiC,OAAA+V,iBAAAjF,EAAA3P,UAAAwhB,OAUArT,EAAAoT,oBAAA,SAAA7W,GAIA,IAFA,IAEAX,EAFAD,EAAAF,EAAA3L,QAAA,CAAA,KAAAyM,EAAA5D,MAEAlK,EAAA,EAAAA,EAAA8N,EAAAC,YAAAjP,SAAAkB,GACAmN,EAAAW,EAAAsB,EAAApP,IAAAiO,IAAAf,EACA,YAAAF,EAAAgB,SAAAb,EAAAjD,OACAiD,EAAAK,UAAAN,EACA,YAAAF,EAAAgB,SAAAb,EAAAjD,OACA,OAAAgD,EACA,wEADAA,CAEA,yBA6BAqE,EAAAb,SAAA,SAAAxG,EAAAC,GACA,IAAAM,EAAA,IAAA8G,EAAArH,EAAAC,EAAAlG,SACAwG,EAAAuR,WAAA7R,EAAA6R,WACAvR,EAAAgG,SAAAtG,EAAAsG,SAGA,IAFA,IAAAmG,EAAA3U,OAAAC,KAAAiI,EAAAI,QACAvK,EAAA,EACAA,EAAA4W,EAAA9X,SAAAkB,EACAyK,EAAAsG,UACA,IAAA5G,EAAAI,OAAAqM,EAAA5W,IAAAiL,QACAkJ,EAAAzD,SACAY,EAAAZ,UAAAkG,EAAA5W,GAAAmK,EAAAI,OAAAqM,EAAA5W,MAEA,GAAAmK,EAAAgB,OACA,IAAAyL,EAAA3U,OAAAC,KAAAiI,EAAAgB,QAAAnL,EAAA,EAAAA,EAAA4W,EAAA9X,SAAAkB,EACAyK,EAAAsG,IAAAmD,EAAAxD,SAAAkG,EAAA5W,GAAAmK,EAAAgB,OAAAyL,EAAA5W,MACA,GAAAmK,EAAAC,OACA,IAAAwM,EAAA3U,OAAAC,KAAAiI,EAAAC,QAAApK,EAAA,EAAAA,EAAA4W,EAAA9X,SAAAkB,EAAA,CACA,IAAAoK,EAAAD,EAAAC,OAAAwM,EAAA5W,IACAyK,EAAAsG,KACA3G,EAAAM,KAAA1M,GACAsT,EAAAZ,SACAtG,EAAAG,SAAAvM,GACAuT,EAAAb,SACAtG,EAAAyB,SAAA7N,GACA+O,EAAA2D,SACAtG,EAAAyM,UAAA7Y,GACAoW,EAAA1D,SACAL,EAAAK,UAAAkG,EAAA5W,GAAAoK,IAWA,OARAD,EAAA6R,YAAA7R,EAAA6R,WAAAld,SACA2L,EAAAuR,WAAA7R,EAAA6R,YACA7R,EAAAsG,UAAAtG,EAAAsG,SAAA3R,SACA2L,EAAAgG,SAAAtG,EAAAsG,UACAtG,EAAAoF,QACA9E,EAAA8E,OAAA,GACApF,EAAAmG,UACA7F,EAAA6F,QAAAnG,EAAAmG,SACA7F,GAQA8G,EAAAnO,UAAAwN,OAAA,SAAAC,GACA,IAAA0Q,EAAAlR,EAAAjN,UAAAwN,OAAApH,KAAAtG,KAAA2N,GACAC,IAAAD,KAAAA,EAAAC,aACA,OAAA9D,EAAAoB,SAAA,CACA,UAAAmT,GAAAA,EAAAtd,SAAAjG,GACA,SAAAqS,EAAA6F,YAAAhT,KAAAwhB,YAAA7T,GACA,SAAAR,EAAA6F,YAAAhT,KAAA6K,YAAAuB,OAAA,SAAA8G,GAAA,OAAAA,EAAApE,iBAAAnB,IAAA,GACA,aAAA3N,KAAA8Y,YAAA9Y,KAAA8Y,WAAAld,OAAAoE,KAAA8Y,WAAAhe,GACA,WAAAkF,KAAAuN,UAAAvN,KAAAuN,SAAA3R,OAAAoE,KAAAuN,SAAAzS,GACA,QAAAkF,KAAAqM,OAAAvR,GACA,SAAAujB,GAAAA,EAAAnX,QAAApM,GACA,UAAA8S,EAAA5N,KAAAoN,QAAAtS,MAOAuT,EAAAnO,UAAAmU,WAAA,WAEA,IADA,IAAAhN,EAAArH,KAAA6K,YAAA/N,EAAA,EACAA,EAAAuK,EAAAzL,QACAyL,EAAAvK,KAAAb,UACA,IAAAgM,EAAAjI,KAAAwhB,YACA,IADA1kB,EAAA,EACAA,EAAAmL,EAAArM,QACAqM,EAAAnL,KAAAb,UACA,OAAAkR,EAAAjN,UAAAmU,WAAA/N,KAAAtG,OAMAqO,EAAAnO,UAAAwJ,IAAA,SAAA1C,GACA,OAAAhH,KAAAqH,OAAAL,IACAhH,KAAAiI,QAAAjI,KAAAiI,OAAAjB,IACAhH,KAAAkH,QAAAlH,KAAAkH,OAAAF,IACA,MAUAqH,EAAAnO,UAAA2N,IAAA,SAAA4E,GAEA,GAAAzS,KAAA0J,IAAA+I,EAAAzL,MACA,MAAA/I,MAAA,mBAAAwU,EAAAzL,KAAA,QAAAhH,MAEA,GAAAyS,aAAArE,GAAAqE,EAAAlE,SAAAzT,GAAA,CAMA,GAAAkF,KAAAohB,EAAAphB,KAAAohB,EAAA3O,EAAAjL,IAAAxH,KAAAuhB,WAAA9O,EAAAjL,IACA,MAAAvJ,MAAA,gBAAAwU,EAAAjL,GAAA,OAAAxH,MACA,GAAAA,KAAAgO,aAAAyE,EAAAjL,IACA,MAAAvJ,MAAA,MAAAwU,EAAAjL,GAAA,mBAAAxH,MACA,GAAAA,KAAAiO,eAAAwE,EAAAzL,MACA,MAAA/I,MAAA,SAAAwU,EAAAzL,KAAA,oBAAAhH,MAOA,OALAyS,EAAAnD,QACAmD,EAAAnD,OAAAnB,OAAAsE,IACAzS,KAAAqH,OAAAoL,EAAAzL,MAAAyL,GACA/D,QAAA1O,KACAyS,EAAAsB,MAAA/T,MACAoT,EAAApT,MAEA,OAAAyS,aAAAzB,GACAhR,KAAAiI,SACAjI,KAAAiI,OAAA,KACAjI,KAAAiI,OAAAwK,EAAAzL,MAAAyL,GACAsB,MAAA/T,MACAoT,EAAApT,OAEAmN,EAAAjN,UAAA2N,IAAAvH,KAAAtG,KAAAyS,IAUApE,EAAAnO,UAAAiO,OAAA,SAAAsE,GACA,GAAAA,aAAArE,GAAAqE,EAAAlE,SAAAzT,GAAA,CAIA,IAAAkF,KAAAqH,QAAArH,KAAAqH,OAAAoL,EAAAzL,QAAAyL,EACA,MAAAxU,MAAAwU,EAAA,uBAAAzS,MAKA,cAHAA,KAAAqH,OAAAoL,EAAAzL,MACAyL,EAAAnD,OAAA,KACAmD,EAAAuB,SAAAhU,MACAoT,EAAApT,MAEA,GAAAyS,aAAAzB,EAAA,CAGA,IAAAhR,KAAAiI,QAAAjI,KAAAiI,OAAAwK,EAAAzL,QAAAyL,EACA,MAAAxU,MAAAwU,EAAA,uBAAAzS,MAKA,cAHAA,KAAAiI,OAAAwK,EAAAzL,MACAyL,EAAAnD,OAAA,KACAmD,EAAAuB,SAAAhU,MACAoT,EAAApT,MAEA,OAAAmN,EAAAjN,UAAAiO,OAAA7H,KAAAtG,KAAAyS,IAQApE,EAAAnO,UAAA8N,aAAA,SAAAxG,GACA,OAAA2F,EAAAa,aAAAhO,KAAAuN,SAAA/F,IAQA6G,EAAAnO,UAAA+N,eAAA,SAAAjH,GACA,OAAAmG,EAAAc,eAAAjO,KAAAuN,SAAAvG,IAQAqH,EAAAnO,UAAA8M,OAAA,SAAAkF,GACA,OAAA,IAAAlS,KAAA6P,KAAAqC,IAOA7D,EAAAnO,UAAAyhB,MAAA,WAMA,IAFA,IAAAnX,EAAAxK,KAAAwK,SACA8B,EAAA,GACAxP,EAAA,EAAAA,EAAAkD,KAAA6K,YAAAjP,SAAAkB,EACAwP,EAAA9O,KAAAwC,KAAAkM,EAAApP,GAAAb,UAAAoO,cAGArK,KAAAjD,OAAA8T,EAAA7Q,KAAA6Q,CAAA,CACAY,OAAAA,EACAnF,MAAAA,EACAxC,KAAAA,IAEA9J,KAAAlC,OAAAgT,EAAA9Q,KAAA8Q,CAAA,CACAS,OAAAA,EACAjF,MAAAA,EACAxC,KAAAA,IAEA9J,KAAAwS,OAAAzB,EAAA/Q,KAAA+Q,CAAA,CACAzE,MAAAA,EACAxC,KAAAA,IAEA9J,KAAA2K,WAAAf,EAAAe,WAAA3K,KAAA4J,CAAA,CACA0C,MAAAA,EACAxC,KAAAA,IAEA9J,KAAAkL,SAAAtB,EAAAsB,SAAAlL,KAAA4J,CAAA,CACA0C,MAAAA,EACAxC,KAAAA,IAIA,IAAA8X,EAAAvQ,EAAA7G,GACA,GAAAoX,EAAA,CACA,IAAAC,EAAA9iB,OAAAiO,OAAAhN,MAEA6hB,EAAAlX,WAAA3K,KAAA2K,WACA3K,KAAA2K,WAAAiX,EAAAjX,WAAA7G,KAAA+d,GAGAA,EAAA3W,SAAAlL,KAAAkL,SACAlL,KAAAkL,SAAA0W,EAAA1W,SAAApH,KAAA+d,GAIA,OAAA7hB,MASAqO,EAAAnO,UAAAnD,OAAA,SAAA2R,EAAA0D,GACA,OAAApS,KAAA2hB,QAAA5kB,OAAA2R,EAAA0D,IASA/D,EAAAnO,UAAAmS,gBAAA,SAAA3D,EAAA0D,GACA,OAAApS,KAAAjD,OAAA2R,EAAA0D,GAAAA,EAAA5L,IAAA4L,EAAA0P,OAAA1P,GAAA2P,UAWA1T,EAAAnO,UAAApC,OAAA,SAAAwU,EAAA1W,GACA,OAAAoE,KAAA2hB,QAAA7jB,OAAAwU,EAAA1W,IAUAyS,EAAAnO,UAAAqS,gBAAA,SAAAD,GAGA,OAFAA,aAAAf,IACAe,EAAAf,EAAAvE,OAAAsF,IACAtS,KAAAlC,OAAAwU,EAAAA,EAAA0I,WAQA3M,EAAAnO,UAAAsS,OAAA,SAAA9D,GACA,OAAA1O,KAAA2hB,QAAAnP,OAAA9D,IAQAL,EAAAnO,UAAAyK,WAAA,SAAA8H,GACA,OAAAzS,KAAA2hB,QAAAhX,WAAA8H,IA4BApE,EAAAnO,UAAAgL,SAAA,SAAAwD,EAAA3N,GACA,OAAAf,KAAA2hB,QAAAzW,SAAAwD,EAAA3N,IAkBAsN,EAAAyB,EAAA,SAAAkS,GACA,OAAA,SAAAlK,GACAhO,EAAAoG,aAAA4H,EAAAkK,uHCpkBA,IAAA1V,EAAAhR,EAEAwO,EAAA1O,EAAA,IAEAwjB,EAAA,CACA,SACA,QACA,QACA,SACA,SACA,UACA,WACA,QACA,SACA,SACA,UACA,WACA,OACA,SACA,SAGA,SAAAqD,EAAAtZ,EAAA9M,GACA,IAAAiB,EAAA,EAAAolB,EAAA,GAEA,IADArmB,GAAA,EACAiB,EAAA6L,EAAA/M,QAAAsmB,EAAAtD,EAAA9hB,EAAAjB,IAAA8M,EAAA7L,KACA,OAAAolB,EAuBA5V,EAAAC,MAAA0V,EAAA,CACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAwBA3V,EAAA+C,SAAA4S,EAAA,CACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACAnY,EAAA8F,WACA,OAaAtD,EAAAZ,KAAAuW,EAAA,CACA,EACA,EACA,EACA,EACA,GACA,GAmBA3V,EAAAM,OAAAqV,EAAA,CACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GAoBA3V,EAAAE,OAAAyV,EAAA,CACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,gCC5LA,IAIA5T,EACAxE,EALAC,EAAAzO,EAAAC,QAAAF,EAAA,IAEAwW,EAAAxW,EAAA,IAKA0O,EAAA3L,QAAA/C,EAAA,GACA0O,EAAApJ,MAAAtF,EAAA,GACA0O,EAAAvE,KAAAnK,EAAA,GAMA0O,EAAAlJ,GAAAkJ,EAAAjJ,QAAA,MAOAiJ,EAAAyJ,QAAA,SAAAd,GACA,GAAAA,EAAA,CAIA,IAHA,IAAAzT,EAAAD,OAAAC,KAAAyT,GACAQ,EAAAvX,MAAAsD,EAAApD,QACAE,EAAA,EACAA,EAAAkD,EAAApD,QACAqX,EAAAnX,GAAA2W,EAAAzT,EAAAlD,MACA,OAAAmX,EAEA,MAAA,IAQAnJ,EAAAoB,SAAA,SAAA+H,GAGA,IAFA,IAAAR,EAAA,GACA3W,EAAA,EACAA,EAAAmX,EAAArX,QAAA,CACA,IAAAumB,EAAAlP,EAAAnX,KACAwG,EAAA2Q,EAAAnX,KACAwG,IAAAxH,KACA2X,EAAA0P,GAAA7f,GAEA,OAAAmQ,GAGA,IAAA2P,EAAA,MACAC,EAAA,KAOAvY,EAAA2U,WAAA,SAAAzX,GACA,MAAA,uTAAA9I,KAAA8I,IAQA8C,EAAAgB,SAAA,SAAAX,GACA,OAAA,YAAAjM,KAAAiM,IAAAL,EAAA2U,WAAAtU,GACA,KAAAA,EAAA5K,QAAA6iB,EAAA,QAAA7iB,QAAA8iB,EAAA,OAAA,KACA,IAAAlY,GAQAL,EAAAgQ,QAAA,SAAA2F,GACA,OAAAA,EAAAhjB,OAAA,GAAA6lB,cAAA7C,EAAAhI,UAAA,IAGA,IAAA8K,EAAA,YAOAzY,EAAAoN,UAAA,SAAAuI,GACA,OAAAA,EAAAhI,UAAA,EAAA,GACAgI,EAAAhI,UAAA,GACAlY,QAAAgjB,EAAA,SAAA/iB,EAAAC,GAAA,OAAAA,EAAA6iB,iBASAxY,EAAAsB,kBAAA,SAAAoX,EAAAjlB,GACA,OAAAilB,EAAAhb,GAAAjK,EAAAiK,IAWAsC,EAAAoG,aAAA,SAAAL,EAAAmS,GAGA,GAAAnS,EAAAsC,MAMA,OALA6P,GAAAnS,EAAAsC,MAAAnL,OAAAgb,IACAlY,EAAA2Y,aAAAtU,OAAA0B,EAAAsC,OACAtC,EAAAsC,MAAAnL,KAAAgb,EACAlY,EAAA2Y,aAAA5U,IAAAgC,EAAAsC,QAEAtC,EAAAsC,MAIA9D,IACAA,EAAAjT,EAAA,KAEA,IAAAmM,EAAA,IAAA8G,EAAA2T,GAAAnS,EAAA7I,MAKA,OAJA8C,EAAA2Y,aAAA5U,IAAAtG,GACAA,EAAAsI,KAAAA,EACA9Q,OAAAiQ,eAAAa,EAAA,QAAA,CAAAnQ,MAAA6H,EAAAmb,YAAA,IACA3jB,OAAAiQ,eAAAa,EAAA3P,UAAA,QAAA,CAAAR,MAAA6H,EAAAmb,YAAA,IACAnb,GAGA,IAAAob,EAAA,EAOA7Y,EAAAqG,aAAA,SAAAsC,GAGA,GAAAA,EAAAN,MACA,OAAAM,EAAAN,MAGAtI,IACAA,EAAAzO,EAAA,KAEA,IAAAqS,EAAA,IAAA5D,EAAA,OAAA8Y,IAAAlQ,GAGA,OAFA3I,EAAA2Y,aAAA5U,IAAAJ,GACA1O,OAAAiQ,eAAAyD,EAAA,QAAA,CAAA/S,MAAA+N,EAAAiV,YAAA,IACAjV,GASA1O,OAAAiQ,eAAAlF,EAAA,eAAA,CACAJ,IAAA,WACA,OAAAkI,EAAA,YAAAA,EAAA,UAAA,IAAAxW,EAAA,yEC9KAC,EAAAC,QAAA6e,EAEA,IAAArQ,EAAA1O,EAAA,IAUA,SAAA+e,EAAAlV,EAAAC,GASAlF,KAAAiF,GAAAA,IAAA,EAMAjF,KAAAkF,GAAAA,IAAA,EAQA,IAAA0d,EAAAzI,EAAAyI,KAAA,IAAAzI,EAAA,EAAA,GAEAyI,EAAA9W,SAAA,WAAA,OAAA,GACA8W,EAAAC,SAAAD,EAAA9G,SAAA,WAAA,OAAA9b,MACA4iB,EAAAhnB,OAAA,WAAA,OAAA,GAOA,IAAAknB,EAAA3I,EAAA2I,SAAA,mBAOA3I,EAAA3K,WAAA,SAAA9P,GACA,GAAA,IAAAA,EACA,OAAAkjB,EACA,IAAA1f,EAAAxD,EAAA,EACAwD,IACAxD,GAAAA,GACA,IAAAuF,EAAAvF,IAAA,EACAwF,GAAAxF,EAAAuF,GAAA,aAAA,EAUA,OATA/B,IACAgC,GAAAA,IAAA,EACAD,GAAAA,IAAA,EACA,aAAAA,IACAA,EAAA,EACA,aAAAC,IACAA,EAAA,KAGA,IAAAiV,EAAAlV,EAAAC,IAQAiV,EAAA4I,KAAA,SAAArjB,GACA,GAAA,iBAAAA,EACA,OAAAya,EAAA3K,WAAA9P,GACA,GAAAoK,EAAAgE,SAAApO,GAAA,CAEA,IAAAoK,EAAA8E,KAGA,OAAAuL,EAAA3K,WAAAkI,SAAAhY,EAAA,KAFAA,EAAAoK,EAAA8E,KAAAoU,WAAAtjB,GAIA,OAAAA,EAAAiM,KAAAjM,EAAAkM,KAAA,IAAAuO,EAAAza,EAAAiM,MAAA,EAAAjM,EAAAkM,OAAA,GAAAgX,GAQAzI,EAAAja,UAAA4L,SAAA,SAAAD,GACA,IAAAA,GAAA7L,KAAAkF,KAAA,GAAA,CACA,IAAAD,EAAA,GAAAjF,KAAAiF,KAAA,EACAC,GAAAlF,KAAAkF,KAAA,EAGA,OAFAD,IACAC,EAAAA,EAAA,IAAA,KACAD,EAAA,WAAAC,GAEA,OAAAlF,KAAAiF,GAAA,WAAAjF,KAAAkF,IAQAiV,EAAAja,UAAA+iB,OAAA,SAAApX,GACA,OAAA/B,EAAA8E,KACA,IAAA9E,EAAA8E,KAAA,EAAA5O,KAAAiF,GAAA,EAAAjF,KAAAkF,KAAA2G,GAEA,CAAAF,IAAA,EAAA3L,KAAAiF,GAAA2G,KAAA,EAAA5L,KAAAkF,GAAA2G,WAAAA,IAGA,IAAA7N,EAAAP,OAAAyC,UAAAlC,WAOAmc,EAAA+I,SAAA,SAAAC,GACA,OAAAA,IAAAL,EACAF,EACA,IAAAzI,GACAnc,EAAAsI,KAAA6c,EAAA,GACAnlB,EAAAsI,KAAA6c,EAAA,IAAA,EACAnlB,EAAAsI,KAAA6c,EAAA,IAAA,GACAnlB,EAAAsI,KAAA6c,EAAA,IAAA,MAAA,GAEAnlB,EAAAsI,KAAA6c,EAAA,GACAnlB,EAAAsI,KAAA6c,EAAA,IAAA,EACAnlB,EAAAsI,KAAA6c,EAAA,IAAA,GACAnlB,EAAAsI,KAAA6c,EAAA,IAAA,MAAA,IAQAhJ,EAAAja,UAAAkjB,OAAA,WACA,OAAA3lB,OAAAC,aACA,IAAAsC,KAAAiF,GACAjF,KAAAiF,KAAA,EAAA,IACAjF,KAAAiF,KAAA,GAAA,IACAjF,KAAAiF,KAAA,GACA,IAAAjF,KAAAkF,GACAlF,KAAAkF,KAAA,EAAA,IACAlF,KAAAkF,KAAA,GAAA,IACAlF,KAAAkF,KAAA,KAQAiV,EAAAja,UAAA2iB,SAAA,WACA,IAAAQ,EAAArjB,KAAAkF,IAAA,GAGA,OAFAlF,KAAAkF,KAAAlF,KAAAkF,IAAA,EAAAlF,KAAAiF,KAAA,IAAAoe,KAAA,EACArjB,KAAAiF,IAAAjF,KAAAiF,IAAA,EAAAoe,KAAA,EACArjB,MAOAma,EAAAja,UAAA4b,SAAA,WACA,IAAAuH,IAAA,EAAArjB,KAAAiF,IAGA,OAFAjF,KAAAiF,KAAAjF,KAAAiF,KAAA,EAAAjF,KAAAkF,IAAA,IAAAme,KAAA,EACArjB,KAAAkF,IAAAlF,KAAAkF,KAAA,EAAAme,KAAA,EACArjB,MAOAma,EAAAja,UAAAtE,OAAA,WACA,IAAA0nB,EAAAtjB,KAAAiF,GACAse,GAAAvjB,KAAAiF,KAAA,GAAAjF,KAAAkF,IAAA,KAAA,EACAse,EAAAxjB,KAAAkF,KAAA,GACA,OAAA,IAAAse,EACA,IAAAD,EACAD,EAAA,MACAA,EAAA,IAAA,EAAA,EACAA,EAAA,QAAA,EAAA,EACAC,EAAA,MACAA,EAAA,IAAA,EAAA,EACAA,EAAA,QAAA,EAAA,EACAC,EAAA,IAAA,EAAA,kCCrMA,IAAA1Z,EAAAxO,EA2NA,SAAAogB,EAAA+H,EAAAC,EAAAvU,GACA,IAAA,IAAAnQ,EAAAD,OAAAC,KAAA0kB,GAAA5mB,EAAA,EAAAA,EAAAkC,EAAApD,SAAAkB,EACA2mB,EAAAzkB,EAAAlC,MAAAhC,IAAAqU,IACAsU,EAAAzkB,EAAAlC,IAAA4mB,EAAA1kB,EAAAlC,KACA,OAAA2mB,EAoBA,SAAAE,EAAA3c,GAEA,SAAA4c,EAAAlV,EAAAwD,GAEA,KAAAlS,gBAAA4jB,GACA,OAAA,IAAAA,EAAAlV,EAAAwD,GAKAnT,OAAAiQ,eAAAhP,KAAA,UAAA,CAAA0J,IAAA,WAAA,OAAAgF,KAGAzQ,MAAA4lB,kBACA5lB,MAAA4lB,kBAAA7jB,KAAA4jB,GAEA7kB,OAAAiQ,eAAAhP,KAAA,QAAA,CAAAN,MAAAzB,QAAA4hB,OAAA,KAEA3N,GACAwJ,EAAA1b,KAAAkS,GAWA,OARA0R,EAAA1jB,UAAAnB,OAAAiO,OAAA/O,MAAAiC,YAAA+M,YAAA2W,EAEA7kB,OAAAiQ,eAAA4U,EAAA1jB,UAAA,OAAA,CAAAwJ,IAAA,WAAA,OAAA1C,KAEA4c,EAAA1jB,UAAAxB,SAAA,WACA,OAAAsB,KAAAgH,KAAA,KAAAhH,KAAA0O,SAGAkV,EA9QA9Z,EAAAnJ,UAAAvF,EAAA,GAGA0O,EAAAzN,OAAAjB,EAAA,GAGA0O,EAAA/J,aAAA3E,EAAA,GAGA0O,EAAAwR,MAAAlgB,EAAA,GAGA0O,EAAAjJ,QAAAzF,EAAA,GAGA0O,EAAAvD,KAAAnL,EAAA,IAGA0O,EAAAga,KAAA1oB,EAAA,GAGA0O,EAAAqQ,SAAA/e,EAAA,IAGA0O,EAAAia,OAAA,oBAAAC,QAAAA,QACA,oBAAAD,QAAAA,QACA,oBAAAxH,MAAAA,MACAvc,KAQA8J,EAAA8F,WAAA7Q,OAAA0Q,OAAA1Q,OAAA0Q,OAAA,IAAA,GAOA3F,EAAA6F,YAAA5Q,OAAA0Q,OAAA1Q,OAAA0Q,OAAA,IAAA,GAQA3F,EAAAuT,UAAAvT,EAAAia,OAAAhH,SAAAjT,EAAAia,OAAAhH,QAAAkH,UAAAna,EAAAia,OAAAhH,QAAAkH,SAAAC,MAQApa,EAAAiE,UAAAoW,OAAApW,WAAA,SAAArO,GACA,MAAA,iBAAAA,GAAA0kB,SAAA1kB,IAAAhD,KAAAiD,MAAAD,KAAAA,GAQAoK,EAAAgE,SAAA,SAAApO,GACA,MAAA,iBAAAA,GAAAA,aAAAjC,QAQAqM,EAAA0E,SAAA,SAAA9O,GACA,OAAAA,GAAA,iBAAAA,GAWAoK,EAAAua,MAQAva,EAAAwa,MAAA,SAAApR,EAAA/I,GACA,IAAAzK,EAAAwT,EAAA/I,GACA,QAAA,MAAAzK,IAAAwT,EAAAqR,eAAApa,MACA,iBAAAzK,GAAA,GAAAhE,MAAAwY,QAAAxU,GAAAA,EAAA9D,OAAAmD,OAAAC,KAAAU,GAAA9D,UAeAkO,EAAA8Q,OAAA,WACA,IACA,IAAAA,EAAA9Q,EAAAjJ,QAAA,UAAA+Z,OAEA,OAAAA,EAAA1a,UAAAskB,UAAA5J,EAAA,KACA,MAAAtV,GAEA,OAAA,MAPA,GAYAwE,EAAA2a,EAAA,KAGA3a,EAAA4a,EAAA,KAOA5a,EAAA4F,UAAA,SAAAiV,GAEA,MAAA,iBAAAA,EACA7a,EAAA8Q,OACA9Q,EAAA4a,EAAAC,GACA,IAAA7a,EAAApO,MAAAipB,GACA7a,EAAA8Q,OACA9Q,EAAA2a,EAAAE,GACA,oBAAAhjB,WACAgjB,EACA,IAAAhjB,WAAAgjB,IAOA7a,EAAApO,MAAA,oBAAAiG,WAAAA,WAAAjG,MAMAoO,EAAA8E,KAAA9E,EAAAia,OAAAa,SAAA9a,EAAAia,OAAAa,QAAAhW,MACA9E,EAAAia,OAAAnV,MACA9E,EAAAjJ,QAAA,QAOAiJ,EAAA+a,OAAA,mBAOA/a,EAAAgb,QAAA,wBAOAhb,EAAAib,QAAA,6CAOAjb,EAAAkb,WAAA,SAAAtlB,GACA,OAAAA,EACAoK,EAAAqQ,SAAA4I,KAAArjB,GAAA0jB,SACAtZ,EAAAqQ,SAAA2I,UASAhZ,EAAAmb,aAAA,SAAA9B,EAAAtX,GACA,IAAA4O,EAAA3Q,EAAAqQ,SAAA+I,SAAAC,GACA,OAAArZ,EAAA8E,KACA9E,EAAA8E,KAAAsW,SAAAzK,EAAAxV,GAAAwV,EAAAvV,GAAA2G,GACA4O,EAAA3O,WAAAD,IAkBA/B,EAAA4R,MAAAA,EAOA5R,EAAA+P,QAAA,SAAA4F,GACA,OAAAA,EAAAhjB,OAAA,GAAAgS,cAAAgR,EAAAhI,UAAA,IA0CA3N,EAAA6Z,SAAAA,EAmBA7Z,EAAAqb,cAAAxB,EAAA,iBAoBA7Z,EAAAwL,YAAA,SAAAH,GAEA,IADA,IAAAiQ,EAAA,GACAtoB,EAAA,EAAAA,EAAAqY,EAAAvZ,SAAAkB,EACAsoB,EAAAjQ,EAAArY,IAAA,EAOA,OAAA,WACA,IAAA,IAAAkC,EAAAD,OAAAC,KAAAgB,MAAAlD,EAAAkC,EAAApD,OAAA,GAAA,EAAAkB,IAAAA,EACA,GAAA,IAAAsoB,EAAApmB,EAAAlC,KAAAkD,KAAAhB,EAAAlC,MAAAhC,IAAA,OAAAkF,KAAAhB,EAAAlC,IACA,OAAAkC,EAAAlC,KAiBAgN,EAAA0L,YAAA,SAAAL,GAQA,OAAA,SAAAnO,GACA,IAAA,IAAAlK,EAAA,EAAAA,EAAAqY,EAAAvZ,SAAAkB,EACAqY,EAAArY,KAAAkK,UACAhH,KAAAmV,EAAArY,MAoBAgN,EAAA6D,cAAA,CACA0X,MAAA5nB,OACA6nB,MAAA7nB,OACAsO,MAAAtO,OACAwJ,MAAA,GAIA6C,EAAAwG,EAAA,WACA,IAAAsK,EAAA9Q,EAAA8Q,OAEAA,GAMA9Q,EAAA2a,EAAA7J,EAAAmI,OAAAphB,WAAAohB,MAAAnI,EAAAmI,MAEA,SAAArjB,EAAA6lB,GACA,OAAA,IAAA3K,EAAAlb,EAAA6lB,IAEAzb,EAAA4a,EAAA9J,EAAA4K,aAEA,SAAAtf,GACA,OAAA,IAAA0U,EAAA1U,KAbA4D,EAAA2a,EAAA3a,EAAA4a,EAAA,gECpYArpB,EAAAC,QAwHA,SAAAsP,GAGA,IAAAZ,EAAAF,EAAA3L,QAAA,CAAA,KAAAyM,EAAA5D,KAAA,UAAA8C,CACA,oCADAA,CAEA,WAAA,mBACA7B,EAAA2C,EAAA4W,YACAiE,EAAA,GACAxd,EAAArM,QAAAoO,EACA,YAEA,IAAA,IAAAlN,EAAA,EAAAA,EAAA8N,EAAAC,YAAAjP,SAAAkB,EAAA,CACA,IAAAmN,EAAAW,EAAAsB,EAAApP,GAAAb,UACAmO,EAAA,IAAAN,EAAAgB,SAAAb,EAAAjD,MAMA,GAJAiD,EAAA6C,UAAA9C,EACA,sCAAAI,EAAAH,EAAAjD,MAGAiD,EAAAc,IAAAf,EACA,yBAAAI,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,UAFAD,CAGA,wBAAAI,EAHAJ,CAIA,gCACA2b,EAAA3b,EAAAC,EAAA,QACA2b,EAAA5b,EAAAC,EAAAnN,EAAAsN,EAAA,SAAAwb,CACA,UAGA,GAAA3b,EAAAK,SAAA,CACA,IAAAU,EAAAZ,EACAH,EAAAgB,eACAD,EAAA,QAAAf,EAAAzC,GACAwC,EAAA,SAAAgB,GACAhB,EAAA,mEACAI,EAAAA,EAAAY,EAAAZ,EAAAY,EAAAZ,IAEAJ,EACA,yBAAAgB,EADAhB,CAEA,WAAA0b,EAAAzb,EAAA,SAFAD,CAGA,gCAAAgB,GACA4a,EAAA5b,EAAAC,EAAAnN,EAAAkO,EAAA,MAAA4a,CACA,SAGA,CACA,GAAA3b,EAAAuB,OAAA,CACA,IAAAqa,EAAA/b,EAAAgB,SAAAb,EAAAuB,OAAAxE,MACA,IAAAye,EAAAxb,EAAAuB,OAAAxE,OAAAgD,EACA,cAAA6b,EADA7b,CAEA,WAAAC,EAAAuB,OAAAxE,KAAA,qBACAye,EAAAxb,EAAAuB,OAAAxE,MAAA,EACAgD,EACA,QAAA6b,GAEAD,EAAA5b,EAAAC,EAAAnN,EAAAsN,GAEAH,EAAA6C,UAAA9C,EACA,KAEA,OAAAA,EACA,gBAnLA,IAAAH,EAAAzO,EAAA,IACA0O,EAAA1O,EAAA,IAEA,SAAAsqB,EAAAzb,EAAAgX,GACA,OAAAhX,EAAAjD,KAAA,KAAAia,GAAAhX,EAAAK,UAAA,UAAA2W,EAAA,KAAAhX,EAAAc,KAAA,WAAAkW,EAAA,MAAAhX,EAAAlC,QAAA,IAAA,IAAA,YAYA,SAAA6d,EAAA5b,EAAAC,EAAAC,EAAAE,GAEA,GAAAH,EAAAI,aACA,GAAAJ,EAAAI,wBAAAR,EAAA,CAAAG,EACA,cAAAI,EADAJ,CAEA,WAFAA,CAGA,WAAA0b,EAAAzb,EAAA,eACA,IAAA,IAAAjL,EAAAD,OAAAC,KAAAiL,EAAAI,aAAA1B,QAAArL,EAAA,EAAAA,EAAA0B,EAAApD,SAAA0B,EAAA0M,EACA,WAAAC,EAAAI,aAAA1B,OAAA3J,EAAA1B,KACA0M,EACA,QADAA,CAEA,UAEAA,EACA,IADAA,CAEA,8BAAAE,EAAAE,EAFAJ,CAGA,QAHAA,CAIA,aAAAC,EAAAjD,KAAA,IAJAgD,CAKA,UAGA,OAAAC,EAAA1C,MACA,IAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,UACA,IAAA,WAAAyC,EACA,0BAAAI,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,YACA,MACA,IAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,UACA,IAAA,WAAAD,EACA,kFAAAI,EAAAA,EAAAA,EAAAA,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,iBACA,MACA,IAAA,QACA,IAAA,SAAAD,EACA,2BAAAI,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,WACA,MACA,IAAA,OAAAD,EACA,4BAAAI,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,YACA,MACA,IAAA,SAAAD,EACA,yBAAAI,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,WACA,MACA,IAAA,QAAAD,EACA,4DAAAI,EAAAA,EAAAA,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,WAIA,OAAAD,EAYA,SAAA2b,EAAA3b,EAAAC,EAAAG,GAEA,OAAAH,EAAAlC,SACA,IAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,UACA,IAAA,WAAAiC,EACA,6BAAAI,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,gBACA,MACA,IAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,UACA,IAAA,WAAAD,EACA,6BAAAI,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,qBACA,MACA,IAAA,OAAAD,EACA,4BAAAI,EADAJ,CAEA,WAAA0b,EAAAzb,EAAA,gBAGA,OAAAD,uCCzGA,IAAAqH,EAAA/V,EAEA8V,EAAAhW,EAAA,IA6BAiW,EAAA,wBAAA,CAEA1G,WAAA,SAAA8H,GAGA,GAAAA,GAAAA,EAAA,SAAA,CACA,IAAAlL,EAAAvH,KAAAsU,OAAA7B,EAAA,UAEA,GAAAlL,EAAA,CAEA,IAAAD,EAAA,MAAAmL,EAAA,SAAAhW,OAAA,GACAgW,EAAA,SAAAqT,OAAA,GAAArT,EAAA,SAEA,OAAAzS,KAAAgN,OAAA,CACA1F,SAAA,IAAAA,EACA5H,MAAA6H,EAAAxK,OAAAwK,EAAAoD,WAAA8H,IAAAgK,YAKA,OAAAzc,KAAA2K,WAAA8H,IAGAvH,SAAA,SAAAwD,EAAA3N,GAGA,GAAAA,GAAAA,EAAAkG,MAAAyH,EAAApH,UAAAoH,EAAAhP,MAAA,CAEA,IAAAsH,EAAA0H,EAAApH,SAAAmQ,UAAA/I,EAAApH,SAAAuV,YAAA,KAAA,GACAtV,EAAAvH,KAAAsU,OAAAtN,GAEAO,IACAmH,EAAAnH,EAAAzJ,OAAA4Q,EAAAhP,QAIA,KAAAgP,aAAA1O,KAAA6P,OAAAnB,aAAA0C,EAAA,CACA,IAAAqB,EAAA/D,EAAAyD,MAAAjH,SAAAwD,EAAA3N,GAEA,OADA0R,EAAA,SAAA/D,EAAAyD,MAAA3H,SACAiI,EAGA,OAAAzS,KAAAkL,SAAAwD,EAAA3N,iCC/EA1F,EAAAC,QAAAmW,EAEA,IAEAC,EAFA5H,EAAA1O,EAAA,IAIA+e,EAAArQ,EAAAqQ,SACA9d,EAAAyN,EAAAzN,OACAkK,EAAAuD,EAAAvD,KAWA,SAAAwf,EAAAxqB,EAAAiL,EAAAlE,GAMAtC,KAAAzE,GAAAA,EAMAyE,KAAAwG,IAAAA,EAMAxG,KAAA2W,KAAA7b,GAMAkF,KAAAsC,IAAAA,EAIA,SAAA0jB,KAUA,SAAAC,EAAA7T,GAMApS,KAAA+W,KAAA3E,EAAA2E,KAMA/W,KAAAkmB,KAAA9T,EAAA8T,KAMAlmB,KAAAwG,IAAA4L,EAAA5L,IAMAxG,KAAA2W,KAAAvE,EAAA+T,OAQA,SAAA1U,IAMAzR,KAAAwG,IAAA,EAMAxG,KAAA+W,KAAA,IAAAgP,EAAAC,EAAA,EAAA,GAMAhmB,KAAAkmB,KAAAlmB,KAAA+W,KAMA/W,KAAAmmB,OAAA,KAqDA,SAAAC,EAAA9jB,EAAAC,EAAAC,GACAD,EAAAC,GAAA,IAAAF,EAoBA,SAAA+jB,EAAA7f,EAAAlE,GACAtC,KAAAwG,IAAAA,EACAxG,KAAA2W,KAAA7b,GACAkF,KAAAsC,IAAAA,EA8CA,SAAAgkB,EAAAhkB,EAAAC,EAAAC,GACA,KAAAF,EAAA4C,IACA3C,EAAAC,KAAA,IAAAF,EAAA2C,GAAA,IACA3C,EAAA2C,IAAA3C,EAAA2C,KAAA,EAAA3C,EAAA4C,IAAA,MAAA,EACA5C,EAAA4C,MAAA,EAEA,KAAA,IAAA5C,EAAA2C,IACA1C,EAAAC,KAAA,IAAAF,EAAA2C,GAAA,IACA3C,EAAA2C,GAAA3C,EAAA2C,KAAA,EAEA1C,EAAAC,KAAAF,EAAA2C,GA2CA,SAAAshB,EAAAjkB,EAAAC,EAAAC,GACAD,EAAAC,GAAA,IAAAF,EACAC,EAAAC,EAAA,GAAAF,IAAA,EAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,GAAA,IACAC,EAAAC,EAAA,GAAAF,IAAA,GAtKAmP,EAAAzE,OAAAlD,EAAA8Q,OACA,WACA,OAAAnJ,EAAAzE,OAAA,WACA,OAAA,IAAA0E,OAIA,WACA,OAAA,IAAAD,GAQAA,EAAAxL,MAAA,SAAAC,GACA,OAAA,IAAA4D,EAAApO,MAAAwK,IAKA4D,EAAApO,QAAAA,QACA+V,EAAAxL,MAAA6D,EAAAga,KAAArS,EAAAxL,MAAA6D,EAAApO,MAAAwE,UAAA6a,WAUAtJ,EAAAvR,UAAAsmB,EAAA,SAAAjrB,EAAAiL,EAAAlE,GAGA,OAFAtC,KAAAkmB,KAAAlmB,KAAAkmB,KAAAvP,KAAA,IAAAoP,EAAAxqB,EAAAiL,EAAAlE,GACAtC,KAAAwG,KAAAA,EACAxG,OA8BAqmB,EAAAnmB,UAAAnB,OAAAiO,OAAA+Y,EAAA7lB,YACA3E,GAxBA,SAAA+G,EAAAC,EAAAC,GACA,KAAA,IAAAF,GACAC,EAAAC,KAAA,IAAAF,EAAA,IACAA,KAAA,EAEAC,EAAAC,GAAAF,GA0BAmP,EAAAvR,UAAA8a,OAAA,SAAAtb,GAWA,OARAM,KAAAwG,MAAAxG,KAAAkmB,KAAAlmB,KAAAkmB,KAAAvP,KAAA,IAAA0P,GACA3mB,KAAA,GACA,IAAA,EACAA,EAAA,MAAA,EACAA,EAAA,QAAA,EACAA,EAAA,UAAA,EACA,EACAA,IAAA8G,IACAxG,MASAyR,EAAAvR,UAAA+a,MAAA,SAAAvb,GACA,OAAAA,EAAA,EACAM,KAAAwmB,EAAAF,EAAA,GAAAnM,EAAA3K,WAAA9P,IACAM,KAAAgb,OAAAtb,IAQA+R,EAAAvR,UAAAgb,OAAA,SAAAxb,GACA,OAAAM,KAAAgb,QAAAtb,GAAA,EAAAA,GAAA,MAAA,IAkCA+R,EAAAvR,UAAAyb,MAZAlK,EAAAvR,UAAA0b,OAAA,SAAAlc,GACA,IAAA+a,EAAAN,EAAA4I,KAAArjB,GACA,OAAAM,KAAAwmB,EAAAF,EAAA7L,EAAA7e,SAAA6e,IAkBAhJ,EAAAvR,UAAA2b,OAAA,SAAAnc,GACA,IAAA+a,EAAAN,EAAA4I,KAAArjB,GAAAmjB,WACA,OAAA7iB,KAAAwmB,EAAAF,EAAA7L,EAAA7e,SAAA6e,IAQAhJ,EAAAvR,UAAAib,KAAA,SAAAzb,GACA,OAAAM,KAAAwmB,EAAAJ,EAAA,EAAA1mB,EAAA,EAAA,IAyBA+R,EAAAvR,UAAAmb,SAVA5J,EAAAvR,UAAAkb,QAAA,SAAA1b,GACA,OAAAM,KAAAwmB,EAAAD,EAAA,EAAA7mB,IAAA,IA6BA+R,EAAAvR,UAAA8b,SAZAvK,EAAAvR,UAAA6b,QAAA,SAAArc,GACA,IAAA+a,EAAAN,EAAA4I,KAAArjB,GACA,OAAAM,KAAAwmB,EAAAD,EAAA,EAAA9L,EAAAxV,IAAAuhB,EAAAD,EAAA,EAAA9L,EAAAvV,KAkBAuM,EAAAvR,UAAAob,MAAA,SAAA5b,GACA,OAAAM,KAAAwmB,EAAA1c,EAAAwR,MAAA1Y,aAAA,EAAAlD,IASA+R,EAAAvR,UAAAqb,OAAA,SAAA7b,GACA,OAAAM,KAAAwmB,EAAA1c,EAAAwR,MAAA7W,cAAA,EAAA/E,IAGA,IAAA+mB,EAAA3c,EAAApO,MAAAwE,UAAAqV,IACA,SAAAjT,EAAAC,EAAAC,GACAD,EAAAgT,IAAAjT,EAAAE,IAGA,SAAAF,EAAAC,EAAAC,GACA,IAAA,IAAA1F,EAAA,EAAAA,EAAAwF,EAAA1G,SAAAkB,EACAyF,EAAAC,EAAA1F,GAAAwF,EAAAxF,IAQA2U,EAAAvR,UAAA6L,MAAA,SAAArM,GACA,IAAA8G,EAAA9G,EAAA9D,SAAA,EACA,IAAA4K,EACA,OAAAxG,KAAAwmB,EAAAJ,EAAA,EAAA,GACA,GAAAtc,EAAAgE,SAAApO,GAAA,CACA,IAAA6C,EAAAkP,EAAAxL,MAAAO,EAAAnK,EAAAT,OAAA8D,IACArD,EAAAyB,OAAA4B,EAAA6C,EAAA,GACA7C,EAAA6C,EAEA,OAAAvC,KAAAgb,OAAAxU,GAAAggB,EAAAC,EAAAjgB,EAAA9G,IAQA+R,EAAAvR,UAAA5D,OAAA,SAAAoD,GACA,IAAA8G,EAAAD,EAAA3K,OAAA8D,GACA,OAAA8G,EACAxG,KAAAgb,OAAAxU,GAAAggB,EAAAjgB,EAAAG,MAAAF,EAAA9G,GACAM,KAAAwmB,EAAAJ,EAAA,EAAA,IAQA3U,EAAAvR,UAAA4hB,KAAA,WAIA,OAHA9hB,KAAAmmB,OAAA,IAAAF,EAAAjmB,MACAA,KAAA+W,KAAA/W,KAAAkmB,KAAA,IAAAH,EAAAC,EAAA,EAAA,GACAhmB,KAAAwG,IAAA,EACAxG,MAOAyR,EAAAvR,UAAAwmB,MAAA,WAUA,OATA1mB,KAAAmmB,QACAnmB,KAAA+W,KAAA/W,KAAAmmB,OAAApP,KACA/W,KAAAkmB,KAAAlmB,KAAAmmB,OAAAD,KACAlmB,KAAAwG,IAAAxG,KAAAmmB,OAAA3f,IACAxG,KAAAmmB,OAAAnmB,KAAAmmB,OAAAxP,OAEA3W,KAAA+W,KAAA/W,KAAAkmB,KAAA,IAAAH,EAAAC,EAAA,EAAA,GACAhmB,KAAAwG,IAAA,GAEAxG,MAOAyR,EAAAvR,UAAA6hB,OAAA,WACA,IAAAhL,EAAA/W,KAAA+W,KACAmP,EAAAlmB,KAAAkmB,KACA1f,EAAAxG,KAAAwG,IAOA,OANAxG,KAAA0mB,QAAA1L,OAAAxU,GACAA,IACAxG,KAAAkmB,KAAAvP,KAAAI,EAAAJ,KACA3W,KAAAkmB,KAAAA,EACAlmB,KAAAwG,KAAAA,GAEAxG,MAOAyR,EAAAvR,UAAAuc,OAAA,WAIA,IAHA,IAAA1F,EAAA/W,KAAA+W,KAAAJ,KACApU,EAAAvC,KAAAiN,YAAAhH,MAAAjG,KAAAwG,KACAhE,EAAA,EACAuU,GACAA,EAAAxb,GAAAwb,EAAAzU,IAAAC,EAAAC,GACAA,GAAAuU,EAAAvQ,IACAuQ,EAAAA,EAAAJ,KAGA,OAAApU,GAGAkP,EAAAnB,EAAA,SAAAqW,GACAjV,EAAAiV,+BCxcAtrB,EAAAC,QAAAoW,EAGA,IAAAD,EAAArW,EAAA,KACAsW,EAAAxR,UAAAnB,OAAAiO,OAAAyE,EAAAvR,YAAA+M,YAAAyE,EAEA,IAAA5H,EAAA1O,EAAA,IAEAwf,EAAA9Q,EAAA8Q,OAQA,SAAAlJ,IACAD,EAAAnL,KAAAtG,MAQA0R,EAAAzL,MAAA,SAAAC,GACA,OAAAwL,EAAAzL,MAAA6D,EAAA4a,GAAAxe,IAGA,IAAA0gB,EAAAhM,GAAAA,EAAA1a,qBAAAyB,YAAA,QAAAiZ,EAAA1a,UAAAqV,IAAAvO,KACA,SAAA1E,EAAAC,EAAAC,GACAD,EAAAgT,IAAAjT,EAAAE,IAIA,SAAAF,EAAAC,EAAAC,GACA,GAAAF,EAAAukB,KACAvkB,EAAAukB,KAAAtkB,EAAAC,EAAA,EAAAF,EAAA1G,aACA,IAAA,IAAAkB,EAAA,EAAAA,EAAAwF,EAAA1G,QACA2G,EAAAC,KAAAF,EAAAxF,MAgBA,SAAAgqB,EAAAxkB,EAAAC,EAAAC,GACAF,EAAA1G,OAAA,GACAkO,EAAAvD,KAAAG,MAAApE,EAAAC,EAAAC,GAEAD,EAAAiiB,UAAAliB,EAAAE,GAdAkP,EAAAxR,UAAA6L,MAAA,SAAArM,GACAoK,EAAAgE,SAAApO,KACAA,EAAAoK,EAAA2a,EAAA/kB,EAAA,WACA,IAAA8G,EAAA9G,EAAA9D,SAAA,EAIA,OAHAoE,KAAAgb,OAAAxU,GACAA,GACAxG,KAAAwmB,EAAAI,EAAApgB,EAAA9G,GACAM,MAaA0R,EAAAxR,UAAA5D,OAAA,SAAAoD,GACA,IAAA8G,EAAAoU,EAAAmM,WAAArnB,GAIA,OAHAM,KAAAgb,OAAAxU,GACAA,GACAxG,KAAAwmB,EAAAM,EAAAtgB,EAAA9G,GACAM,uB3CvEAhF,KAAAC,OAcAC,EAPA,SAAA8rB,EAAAhgB,GACA,IAAAigB,EAAAjsB,EAAAgM,GAGA,OAFAigB,GACAlsB,EAAAiM,GAAA,GAAAV,KAAA2gB,EAAAjsB,EAAAgM,GAAA,CAAA1L,QAAA,IAAA0rB,EAAAC,EAAAA,EAAA3rB,SACA2rB,EAAA3rB,QAGA0rB,CAAA/rB,EAAA,IAGAC,EAAA4O,KAAAia,OAAA7oB,SAAAA,EAGA,mBAAA+Y,QAAAA,OAAAiT,KACAjT,OAAA,CAAA,QAAA,SAAArF,GAKA,OAJAA,GAAAA,EAAAuY,SACAjsB,EAAA4O,KAAA8E,KAAAA,EACA1T,EAAAoW,aAEApW,IAIA,iBAAAG,QAAAA,QAAAA,OAAAC,UACAD,OAAAC,QAAAJ,GA/BA","file":"protobuf.min.js","sourcesContent":["(function prelude(modules, cache, entries) {\n\n // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS\n // sources through a conflict-free require shim and is again wrapped within an iife that\n // provides a minification-friendly `undefined` var plus a global \"use strict\" directive\n // so that minification can remove the directives of each module.\n\n function $require(name) {\n var $module = cache[name];\n if (!$module)\n modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports);\n return $module.exports;\n }\n\n var protobuf = $require(entries[0]);\n\n // Expose globally\n protobuf.util.global.protobuf = protobuf;\n\n // Be nice to AMD\n if (typeof define === \"function\" && define.amd)\n define([\"long\"], function(Long) {\n if (Long && Long.isLong) {\n protobuf.util.Long = Long;\n protobuf.configure();\n }\n return protobuf;\n });\n\n // Be nice to CommonJS\n if (typeof module === \"object\" && module && module.exports)\n module.exports = protobuf;\n\n})/* end of prelude */","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n /* istanbul ignore if */\r\n if (typeof functionParams === \"string\") {\r\n functionName = functionParams;\r\n functionParams = undefined;\r\n }\r\n\r\n var body = [];\r\n\r\n /**\r\n * Appends code to the function's body or finishes generation.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n * @param {...*} [formatParams] Format parameters\r\n * @returns {Codegen|Function} Itself or the generated function if finished\r\n * @throws {Error} If format parameter counts do not match\r\n */\r\n\r\n function Codegen(formatStringOrScope) {\r\n // note that explicit array handling below makes this ~50% faster\r\n\r\n // finish the function\r\n if (typeof formatStringOrScope !== \"string\") {\r\n var source = toString();\r\n if (codegen.verbose)\r\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n source = \"return \" + source;\r\n if (formatStringOrScope) {\r\n var scopeKeys = Object.keys(formatStringOrScope),\r\n scopeParams = new Array(scopeKeys.length + 1),\r\n scopeValues = new Array(scopeKeys.length),\r\n scopeOffset = 0;\r\n while (scopeOffset < scopeKeys.length) {\r\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n }\r\n scopeParams[scopeOffset] = source;\r\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n }\r\n return Function(source)(); // eslint-disable-line no-new-func\r\n }\r\n\r\n // otherwise append to body\r\n var formatParams = new Array(arguments.length - 1),\r\n formatOffset = 0;\r\n while (formatOffset < formatParams.length)\r\n formatParams[formatOffset] = arguments[++formatOffset];\r\n formatOffset = 0;\r\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n var value = formatParams[formatOffset++];\r\n switch ($1) {\r\n case \"d\": case \"f\": return String(Number(value));\r\n case \"i\": return String(Math.floor(value));\r\n case \"j\": return JSON.stringify(value);\r\n case \"s\": return String(value);\r\n }\r\n return \"%\";\r\n });\r\n if (formatOffset !== formatParams.length)\r\n throw Error(\"parameter count mismatch\");\r\n body.push(formatStringOrScope);\r\n return Codegen;\r\n }\r\n\r\n function toString(functionNameOverride) {\r\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\r\n }\r\n\r\n Codegen.toString = toString;\r\n return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @typedef FetchOptions\r\n * @type {Object}\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {FetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n } else if (!options)\r\n options = {};\r\n\r\n if (!callback)\r\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n if (!options.xhr && fs && fs.readFile)\r\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch.xhr(filename, options, callback)\r\n : err\r\n ? callback(err)\r\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n });\r\n\r\n // use the XHR version otherwise.\r\n return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchOptions} [options] Fetch options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n if (xhr.readyState !== 4)\r\n return undefined;\r\n\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n if (xhr.status !== 0 && xhr.status !== 200)\r\n return callback(Error(\"status \" + xhr.status));\r\n\r\n // if binary data is expected, make sure that some sort of array is returned, even if\r\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n if (options.binary) {\r\n var buffer = xhr.response;\r\n if (!buffer) {\r\n buffer = [];\r\n for (var i = 0; i < xhr.responseText.length; ++i)\r\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n }\r\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n }\r\n return callback(null, xhr.responseText);\r\n };\r\n\r\n if (options.binary) {\r\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n if (\"overrideMimeType\" in xhr)\r\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n xhr.responseType = \"arraybuffer\";\r\n }\r\n\r\n xhr.open(\"GET\", filename);\r\n xhr.send();\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0 && parts[i - 1] !== \"..\")\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\nmodule.exports = common;\n\nvar commonRe = /\\/|\\./;\n\n/**\n * Provides common type definitions.\n * Can also be used to provide additional google types or your own custom types.\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\n * @returns {undefined}\n * @property {INamespace} google/protobuf/any.proto Any\n * @property {INamespace} google/protobuf/duration.proto Duration\n * @property {INamespace} google/protobuf/empty.proto Empty\n * @property {INamespace} google/protobuf/field_mask.proto FieldMask\n * @property {INamespace} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\n * @property {INamespace} google/protobuf/timestamp.proto Timestamp\n * @property {INamespace} google/protobuf/wrappers.proto Wrappers\n * @example\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\n * protobuf.common(\"descriptor\", descriptorJson);\n *\n * // manually provides a custom definition (uses my.foo namespace)\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\n */\nfunction common(name, json) {\n if (!commonRe.test(name)) {\n name = \"google/protobuf/\" + name + \".proto\";\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\n }\n common[name] = json;\n}\n\n// Not provided because of limited use (feel free to discuss or to provide yourself):\n//\n// google/protobuf/descriptor.proto\n// google/protobuf/source_context.proto\n// google/protobuf/type.proto\n//\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\n// the repository or package within the google/protobuf directory.\n\ncommon(\"any\", {\n\n /**\n * Properties of a google.protobuf.Any message.\n * @interface IAny\n * @type {Object}\n * @property {string} [typeUrl]\n * @property {Uint8Array} [bytes]\n * @memberof common\n */\n Any: {\n fields: {\n type_url: {\n type: \"string\",\n id: 1\n },\n value: {\n type: \"bytes\",\n id: 2\n }\n }\n }\n});\n\nvar timeType;\n\ncommon(\"duration\", {\n\n /**\n * Properties of a google.protobuf.Duration message.\n * @interface IDuration\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Duration: timeType = {\n fields: {\n seconds: {\n type: \"int64\",\n id: 1\n },\n nanos: {\n type: \"int32\",\n id: 2\n }\n }\n }\n});\n\ncommon(\"timestamp\", {\n\n /**\n * Properties of a google.protobuf.Timestamp message.\n * @interface ITimestamp\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Timestamp: timeType\n});\n\ncommon(\"empty\", {\n\n /**\n * Properties of a google.protobuf.Empty message.\n * @interface IEmpty\n * @memberof common\n */\n Empty: {\n fields: {}\n }\n});\n\ncommon(\"struct\", {\n\n /**\n * Properties of a google.protobuf.Struct message.\n * @interface IStruct\n * @type {Object}\n * @property {Object.} [fields]\n * @memberof common\n */\n Struct: {\n fields: {\n fields: {\n keyType: \"string\",\n type: \"Value\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Value message.\n * @interface IValue\n * @type {Object}\n * @property {string} [kind]\n * @property {0} [nullValue]\n * @property {number} [numberValue]\n * @property {string} [stringValue]\n * @property {boolean} [boolValue]\n * @property {IStruct} [structValue]\n * @property {IListValue} [listValue]\n * @memberof common\n */\n Value: {\n oneofs: {\n kind: {\n oneof: [\n \"nullValue\",\n \"numberValue\",\n \"stringValue\",\n \"boolValue\",\n \"structValue\",\n \"listValue\"\n ]\n }\n },\n fields: {\n nullValue: {\n type: \"NullValue\",\n id: 1\n },\n numberValue: {\n type: \"double\",\n id: 2\n },\n stringValue: {\n type: \"string\",\n id: 3\n },\n boolValue: {\n type: \"bool\",\n id: 4\n },\n structValue: {\n type: \"Struct\",\n id: 5\n },\n listValue: {\n type: \"ListValue\",\n id: 6\n }\n }\n },\n\n NullValue: {\n values: {\n NULL_VALUE: 0\n }\n },\n\n /**\n * Properties of a google.protobuf.ListValue message.\n * @interface IListValue\n * @type {Object}\n * @property {Array.} [values]\n * @memberof common\n */\n ListValue: {\n fields: {\n values: {\n rule: \"repeated\",\n type: \"Value\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"wrappers\", {\n\n /**\n * Properties of a google.protobuf.DoubleValue message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n DoubleValue: {\n fields: {\n value: {\n type: \"double\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.FloatValue message.\n * @interface IFloatValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FloatValue: {\n fields: {\n value: {\n type: \"float\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int64Value message.\n * @interface IInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n Int64Value: {\n fields: {\n value: {\n type: \"int64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt64Value message.\n * @interface IUInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n UInt64Value: {\n fields: {\n value: {\n type: \"uint64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int32Value message.\n * @interface IInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n Int32Value: {\n fields: {\n value: {\n type: \"int32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt32Value message.\n * @interface IUInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n UInt32Value: {\n fields: {\n value: {\n type: \"uint32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BoolValue message.\n * @interface IBoolValue\n * @type {Object}\n * @property {boolean} [value]\n * @memberof common\n */\n BoolValue: {\n fields: {\n value: {\n type: \"bool\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.StringValue message.\n * @interface IStringValue\n * @type {Object}\n * @property {string} [value]\n * @memberof common\n */\n StringValue: {\n fields: {\n value: {\n type: \"string\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BytesValue message.\n * @interface IBytesValue\n * @type {Object}\n * @property {Uint8Array} [value]\n * @memberof common\n */\n BytesValue: {\n fields: {\n value: {\n type: \"bytes\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"field_mask\", {\n\n /**\n * Properties of a google.protobuf.FieldMask message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FieldMask: {\n fields: {\n paths: {\n rule: \"repeated\",\n type: \"string\",\n id: 1\n }\n }\n }\n});\n\n/**\n * Gets the root definition of the specified common proto file.\n *\n * Bundled definitions are:\n * - google/protobuf/any.proto\n * - google/protobuf/duration.proto\n * - google/protobuf/empty.proto\n * - google/protobuf/field_mask.proto\n * - google/protobuf/struct.proto\n * - google/protobuf/timestamp.proto\n * - google/protobuf/wrappers.proto\n *\n * @param {string} file Proto file name\n * @returns {INamespace|null} Root definition or `null` if not defined\n */\ncommon.get = function get(file) {\n return common[file] || null;\n};\n","\"use strict\";\n/**\n * Runtime message from/to plain object converters.\n * @namespace\n */\nvar converter = exports;\n\nvar Enum = require(15),\n util = require(37);\n\n/**\n * Generates a partial value fromObject conveter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop, ref) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (ref === undefined) {\n ref = \"d\" + prop;\n }\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref);\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\n (\"default:\");\n gen\n (\"case%j:\", keys[i])\n (\"case %i:\", values[keys[i]])\n (\"m%s=%j\", prop, values[keys[i]])\n (\"break\");\n } gen\n (\"}\");\n } else gen\n (\"if(typeof %s!==\\\"object\\\")\", ref)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s=types[%i].fromObject(%s)\", prop, fieldIndex, ref);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"m%s=Number(%s)\", prop, ref); // also catches \"NaN\", \"Infinity\"\n break;\n case \"uint32\":\n case \"fixed32\": gen\n (\"m%s=%s>>>0\", prop, ref);\n break;\n case \"int32\":\n case \"sint32\":\n case \"sfixed32\": gen\n (\"m%s=%s|0\", prop, ref);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(util.Long)\")\n (\"(m%s=util.Long.fromValue(%s)).unsigned=%j\", prop, ref, isUnsigned)\n (\"else if(typeof %s===\\\"string\\\")\", ref)\n (\"m%s=parseInt(%s,10)\", prop, ref)\n (\"else if(typeof %s===\\\"number\\\")\", ref)\n (\"m%s=%s\", prop, ref)\n (\"else if(typeof %s===\\\"object\\\")\", ref)\n (\"m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)\", prop, ref, ref, isUnsigned ? \"true\" : \"\");\n break;\n case \"bytes\": gen\n (\"if(typeof %s===\\\"string\\\")\", ref)\n (\"util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)\", ref, prop, ref)\n (\"else if(%s.length)\", ref)\n (\"m%s=%s\", prop, ref);\n break;\n case \"string\": gen\n (\"m%s=String(%s)\", prop, ref);\n break;\n case \"bool\": gen\n (\"m%s=Boolean(%s)\", prop, ref);\n break;\n /* default: gen\n (\"m%s=%s\", prop, ref);\n break; */\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a plain object to runtime message converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.fromObject = function fromObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray;\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\n (\"if(d instanceof this.ctor)\")\n (\"return d\");\n if (!fields.length) return gen\n (\"return new this.ctor\");\n gen\n (\"var m=new this.ctor\");\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n prop = util.safeProp(field.name);\n\n // Map fields\n if (field.map) { gen\n (\"if(d%s){\", prop)\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s={}\", prop)\n (\"for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\n break;\n case \"bytes\": gen\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\n break;\n default: gen\n (\"d%s=m%s\", prop, prop);\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a runtime message to plain object converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.toObject = function toObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\n if (!fields.length)\n return util.codegen()(\"return {}\");\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\n (\"if(!o)\")\n (\"o={}\")\n (\"var d={}\");\n\n var repeatedFields = [],\n mapFields = [],\n normalFields = [],\n i = 0;\n for (; i < fields.length; ++i)\n if (!fields[i].partOf)\n ( fields[i].resolve().repeated ? repeatedFields\n : fields[i].map ? mapFields\n : normalFields).push(fields[i]);\n\n if (repeatedFields.length) { gen\n (\"if(o.arrays||o.defaults){\");\n for (i = 0; i < repeatedFields.length; ++i) gen\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\n gen\n (\"}\");\n }\n\n if (mapFields.length) { gen\n (\"if(o.objects||o.defaults){\");\n for (i = 0; i < mapFields.length; ++i) gen\n (\"d%s={}\", util.safeProp(mapFields[i].name));\n gen\n (\"}\");\n }\n\n if (normalFields.length) { gen\n (\"if(o.defaults){\");\n for (i = 0; i < normalFields.length; ++i) {\n var field = normalFields[i],\n prop = util.safeProp(field.name);\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\n else if (field.long) gen\n (\"if(util.Long){\")\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\n (\"}else\")\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\n else if (field.bytes) {\n var arrayDefault = \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\";\n gen\n (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\n (\"else{\")\n (\"d%s=%s\", prop, arrayDefault)\n (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\n (\"}\");\n } else gen\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\n } gen\n (\"}\");\n }\n var hasKs2 = false;\n for (i = 0; i < fields.length; ++i) {\n var field = fields[i],\n index = mtype._fieldsArray.indexOf(field),\n prop = util.safeProp(field.name);\n if (field.map) {\n if (!hasKs2) { hasKs2 = true; gen\n (\"var ks2\");\n } gen\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\n (\"d%s={}\", prop)\n (\"for(var j=0;j>>3){\");\n\n var i = 0;\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n ref = \"m\" + util.safeProp(field.name); gen\n (\"case %i:\", field.id);\n\n // Map fields\n if (field.map) { gen\n (\"r.skip().pos++\") // assumes id 1 + key wireType\n (\"if(%s===util.emptyObject)\", ref)\n (\"%s={}\", ref)\n (\"k=r.%s()\", field.keyType)\n (\"r.pos++\"); // assumes id 2 + value wireType\n if (types.long[field.keyType] !== undefined) {\n if (types.basic[type] === undefined) gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\n } else {\n if (types.basic[type] === undefined) gen\n (\"%s[k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[k]=r.%s()\", ref, type);\n }\n\n // Repeated fields\n } else if (field.repeated) { gen\n\n (\"if(!(%s&&%s.length))\", ref, ref)\n (\"%s=[]\", ref);\n\n // Packable (always check for forward and backward compatiblity)\n if (types.packed[type] !== undefined) gen\n (\"if((t&7)===2){\")\n (\"var c2=r.uint32()+r.pos\")\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\n}\n\n/**\n * Generates an encoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction encoder(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\n (\"if(!w)\")\n (\"w=Writer.create()\");\n\n var i, ref;\n\n // \"when a message is serialized its known fields should be written sequentially by field number\"\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\n\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n index = mtype._fieldsArray.indexOf(field),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n wireType = types.basic[type];\n ref = \"m\" + util.safeProp(field.name);\n\n // Map fields\n if (field.map) {\n gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j)){\", ref, field.name) // !== undefined && !== null\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\n if (wireType === undefined) gen\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\n else gen\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\n gen\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) {\n var arrayRef = ref;\n if (field.useToArray()) {\n arrayRef = \"array\" + field.id;\n gen(\"var %s\", arrayRef);\n gen(\"if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }\",\n ref, ref, arrayRef, ref, arrayRef, ref);\n }\n gen(\"if(%s!=null&&%s.length){\", arrayRef, arrayRef); // !== undefined && !== null\n // Packed repeated\n if (field.packed && types.packed[type] !== undefined) { gen\n\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\n (\"for(var i=0;i<%s.length;++i)\", arrayRef)\n (\"w.%s(%s[i])\", type, arrayRef)\n (\"w.ldelim()\");\n\n // Non-packed\n } else { gen\n\n (\"for(var i=0;i<%s.length;++i)\", arrayRef);\n if (wireType === undefined)\n genTypePartial(gen, field, index, arrayRef + \"[i]\");\n else gen\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, arrayRef);\n\n } gen\n (\"}\");\n\n // Non-repeated\n } else {\n if (field.optional) gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j))\", ref, field.name); // !== undefined && !== null\n\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref);\n else gen\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n }\n }\n\n return gen\n (\"return w\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n","\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(23),\n util = require(37);\n\n/**\n * Constructs a new enum instance.\n * @classdesc Reflected enum.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {Object.} [values] Enum values as an object, by name\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this enum\n * @param {Object.} [comments] The value comments for this enum\n */\nfunction Enum(name, values, options, comment, comments) {\n ReflectionObject.call(this, name, options);\n\n if (values && typeof values !== \"object\")\n throw TypeError(\"values must be an object\");\n\n /**\n * Enum values by id.\n * @type {Object.}\n */\n this.valuesById = {};\n\n /**\n * Enum values by name.\n * @type {Object.}\n */\n this.values = Object.create(this.valuesById); // toJSON, marker\n\n /**\n * Enum comment text.\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Value comment texts, if any.\n * @type {Object.}\n */\n this.comments = comments || {};\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\n // compatible enum. This is used by pbts to write actual enum definitions that work for\n // static and reflection code alike instead of emitting generic object definitions.\n\n if (values)\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\n if (typeof values[keys[i]] === \"number\") // use forward entries only\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\n}\n\n/**\n * Enum descriptor.\n * @interface IEnum\n * @property {Object.} values Enum values\n * @property {Object.} [options] Enum options\n */\n\n/**\n * Constructs an enum from an enum descriptor.\n * @param {string} name Enum name\n * @param {IEnum} json Enum descriptor\n * @returns {Enum} Created enum\n * @throws {TypeError} If arguments are invalid\n */\nEnum.fromJSON = function fromJSON(name, json) {\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\n enm.reserved = json.reserved;\n return enm;\n};\n\n/**\n * Converts this enum to an enum descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IEnum} Enum descriptor\n */\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"values\" , this.values,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"comment\" , keepComments ? this.comment : undefined,\n \"comments\" , keepComments ? this.comments : undefined\n ]);\n};\n\n/**\n * Adds a value to this enum.\n * @param {string} name Value name\n * @param {number} id Value id\n * @param {string} [comment] Comment, if any\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a value with this name or id\n */\nEnum.prototype.add = function add(name, id, comment) {\n // utilized by the parser but not by .fromJSON\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (!util.isInteger(id))\n throw TypeError(\"id must be an integer\");\n\n if (this.values[name] !== undefined)\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\n\n if (this.isReservedId(id))\n throw Error(\"id \" + id + \" is reserved in \" + this);\n\n if (this.isReservedName(name))\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\n\n if (this.valuesById[id] !== undefined) {\n if (!(this.options && this.options.allow_alias))\n throw Error(\"duplicate id \" + id + \" in \" + this);\n this.values[name] = id;\n } else\n this.valuesById[this.values[name] = id] = name;\n\n this.comments[name] = comment || null;\n return this;\n};\n\n/**\n * Removes a value from this enum\n * @param {string} name Value name\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `name` is not a name of this enum\n */\nEnum.prototype.remove = function remove(name) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n var val = this.values[name];\n if (val == null)\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\n\n delete this.valuesById[val];\n delete this.values[name];\n delete this.comments[name];\n\n return this;\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n","\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum = require(15),\n types = require(36),\n util = require(37);\n\nvar Type; // cyclic\n\nvar ruleRe = /^required|optional|repeated$/;\n\n/**\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\n * @name Field\n * @classdesc Reflected message field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a field from a field descriptor.\n * @param {string} name Field name\n * @param {IField} json Field descriptor\n * @returns {Field} Created field\n * @throws {TypeError} If arguments are invalid\n */\nField.fromJSON = function fromJSON(name, json) {\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n};\n\n/**\n * Not an actual constructor. Use {@link Field} instead.\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports FieldBase\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction Field(name, id, type, rule, extend, options, comment) {\n\n if (util.isObject(rule)) {\n comment = extend;\n options = rule;\n rule = extend = undefined;\n } else if (util.isObject(extend)) {\n comment = options;\n options = extend;\n extend = undefined;\n }\n\n ReflectionObject.call(this, name, options);\n\n if (!util.isInteger(id) || id < 0)\n throw TypeError(\"id must be a non-negative integer\");\n\n if (!util.isString(type))\n throw TypeError(\"type must be a string\");\n\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\n throw TypeError(\"rule must be a string rule\");\n\n if (extend !== undefined && !util.isString(extend))\n throw TypeError(\"extend must be a string\");\n\n /**\n * Field rule, if any.\n * @type {string|undefined}\n */\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\n\n /**\n * Field type.\n * @type {string}\n */\n this.type = type; // toJSON\n\n /**\n * Unique field id.\n * @type {number}\n */\n this.id = id; // toJSON, marker\n\n /**\n * Extended type if different from parent.\n * @type {string|undefined}\n */\n this.extend = extend || undefined; // toJSON\n\n /**\n * Whether this field is required.\n * @type {boolean}\n */\n this.required = rule === \"required\";\n\n /**\n * Whether this field is optional.\n * @type {boolean}\n */\n this.optional = !this.required;\n\n /**\n * Whether this field is repeated.\n * @type {boolean}\n */\n this.repeated = rule === \"repeated\";\n\n /**\n * Whether this field is a map or not.\n * @type {boolean}\n */\n this.map = false;\n\n /**\n * Message this field belongs to.\n * @type {Type|null}\n */\n this.message = null;\n\n /**\n * OneOf this field belongs to, if any,\n * @type {OneOf|null}\n */\n this.partOf = null;\n\n /**\n * The field type's default value.\n * @type {*}\n */\n this.typeDefault = null;\n\n /**\n * The field's default value on prototypes.\n * @type {*}\n */\n this.defaultValue = null;\n\n /**\n * Whether this field's value should be treated as a long.\n * @type {boolean}\n */\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\n\n /**\n * Whether this field's value is a buffer.\n * @type {boolean}\n */\n this.bytes = type === \"bytes\";\n\n /**\n * Resolved type if not a basic type.\n * @type {Type|Enum|null}\n */\n this.resolvedType = null;\n\n /**\n * Sister-field within the extended type if a declaring extension field.\n * @type {Field|null}\n */\n this.extensionField = null;\n\n /**\n * Sister-field within the declaring namespace if an extended field.\n * @type {Field|null}\n */\n this.declaringField = null;\n\n /**\n * Internally remembers whether this field is packed.\n * @type {boolean|null}\n * @private\n */\n this._packed = null;\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n get: function() {\n // defaults to packed=true if not explicity set to false\n if (this._packed === null)\n this._packed = this.getOption(\"packed\") !== false;\n return this._packed;\n }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (name === \"packed\") // clear cached before setting\n this._packed = null;\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\n};\n\n/**\n * Field descriptor.\n * @interface IField\n * @property {string} [rule=\"optional\"] Field rule\n * @property {string} type Field type\n * @property {number} id Field id\n * @property {Object.} [options] Field options\n */\n\n/**\n * Extension field descriptor.\n * @interface IExtensionField\n * @extends IField\n * @property {string} extend Extended type\n */\n\n/**\n * Converts this field to a field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IField} Field descriptor\n */\nField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Resolves this field's type references.\n * @returns {Field} `this`\n * @throws {Error} If any reference cannot be resolved\n */\nField.prototype.resolve = function resolve() {\n\n if (this.resolved)\n return this;\n\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\n if (this.resolvedType instanceof Type)\n this.typeDefault = null;\n else // instanceof Enum\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\n }\n\n // use explicitly set default value if present\n if (this.options && this.options[\"default\"] != null) {\n this.typeDefault = this.options[\"default\"];\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\n this.typeDefault = this.resolvedType.values[this.typeDefault];\n }\n\n // remove unnecessary options\n if (this.options) {\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\n delete this.options.packed;\n if (!Object.keys(this.options).length)\n this.options = undefined;\n }\n\n // convert to internal data type if necesssary\n if (this.long) {\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\n\n /* istanbul ignore else */\n if (Object.freeze)\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\n\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\n var buf;\n if (util.base64.test(this.typeDefault))\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\n else\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\n this.typeDefault = buf;\n }\n\n // take special care of maps and repeated fields\n if (this.map)\n this.defaultValue = util.emptyObject;\n else if (this.repeated)\n this.defaultValue = util.emptyArray;\n else\n this.defaultValue = this.typeDefault;\n\n // ensure proper value on prototype\n if (this.parent instanceof Type)\n this.parent.ctor.prototype[this.name] = this.defaultValue;\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\nField.prototype.useToArray = function useToArray() {\n return !!this.getOption(\"(js_use_toArray)\");\n};\n\n/**\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\n * @typedef FieldDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} fieldName Field name\n * @returns {undefined}\n */\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @param {T} [defaultValue] Default value\n * @returns {FieldDecorator} Decorator function\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\n */\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\n\n // submessage: decorate the submessage and use its name as the type\n if (typeof fieldType === \"function\")\n fieldType = util.decorateType(fieldType).name;\n\n // enum reference: create a reflected copy of the enum and keep reuseing it\n else if (fieldType && typeof fieldType === \"object\")\n fieldType = util.decorateEnum(fieldType).name;\n\n return function fieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\n };\n};\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {Constructor|string} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @returns {FieldDecorator} Decorator function\n * @template T extends Message\n * @variation 2\n */\n// like Field.d but without a default value\n\n// Sets up cyclic dependencies (called in index-light)\nField._configure = function configure(Type_) {\n Type = Type_;\n};\n","\"use strict\";\nvar protobuf = module.exports = require(18);\n\nprotobuf.build = \"light\";\n\n/**\n * A node-style callback as used by {@link load} and {@link Root#load}.\n * @typedef LoadCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Root} [root] Root, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n */\nfunction load(filename, root, callback) {\n if (typeof root === \"function\") {\n callback = root;\n root = new protobuf.Root();\n } else if (!root)\n root = new protobuf.Root();\n return root.load(filename, callback);\n}\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Promise} Promise\n * @see {@link Root#load}\n * @variation 3\n */\n// function load(filename:string, [root:Root]):Promise\n\nprotobuf.load = load;\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n * @see {@link Root#loadSync}\n */\nfunction loadSync(filename, root) {\n if (!root)\n root = new protobuf.Root();\n return root.loadSync(filename);\n}\n\nprotobuf.loadSync = loadSync;\n\n// Serialization\nprotobuf.encoder = require(14);\nprotobuf.decoder = require(13);\nprotobuf.verifier = require(40);\nprotobuf.converter = require(12);\n\n// Reflection\nprotobuf.ReflectionObject = require(24);\nprotobuf.Namespace = require(23);\nprotobuf.Root = require(29);\nprotobuf.Enum = require(15);\nprotobuf.Type = require(35);\nprotobuf.Field = require(16);\nprotobuf.OneOf = require(25);\nprotobuf.MapField = require(20);\nprotobuf.Service = require(33);\nprotobuf.Method = require(22);\n\n// Runtime\nprotobuf.Message = require(21);\nprotobuf.wrappers = require(41);\n\n// Utility\nprotobuf.types = require(36);\nprotobuf.util = require(37);\n\n// Set up possibly cyclic reflection dependencies\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(42);\nprotobuf.BufferWriter = require(43);\nprotobuf.Reader = require(27);\nprotobuf.BufferReader = require(28);\n\n// Utility\nprotobuf.util = require(39);\nprotobuf.rpc = require(31);\nprotobuf.roots = require(30);\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.Reader._configure(protobuf.BufferReader);\n protobuf.util._configure();\n}\n\n// Set up buffer utility according to the environment\nprotobuf.Writer._configure(protobuf.BufferWriter);\nconfigure();\n","\"use strict\";\nvar protobuf = module.exports = require(17);\n\nprotobuf.build = \"full\";\n\n// Parser\nprotobuf.tokenize = require(34);\nprotobuf.parse = require(26);\nprotobuf.common = require(11);\n\n// Configure parser\nprotobuf.Root._configure(protobuf.Type, protobuf.parse, protobuf.common);\n","\"use strict\";\nmodule.exports = MapField;\n\n// extends Field\nvar Field = require(16);\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\n\nvar types = require(36),\n util = require(37);\n\n/**\n * Constructs a new map field instance.\n * @classdesc Reflected map field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} keyType Key type\n * @param {string} type Value type\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction MapField(name, id, keyType, type, options, comment) {\n Field.call(this, name, id, type, undefined, undefined, options, comment);\n\n /* istanbul ignore if */\n if (!util.isString(keyType))\n throw TypeError(\"keyType must be a string\");\n\n /**\n * Key type.\n * @type {string}\n */\n this.keyType = keyType; // toJSON, marker\n\n /**\n * Resolved key type if not a basic type.\n * @type {ReflectionObject|null}\n */\n this.resolvedKeyType = null;\n\n // Overrides Field#map\n this.map = true;\n}\n\n/**\n * Map field descriptor.\n * @interface IMapField\n * @extends {IField}\n * @property {string} keyType Key type\n */\n\n/**\n * Extension map field descriptor.\n * @interface IExtensionMapField\n * @extends IMapField\n * @property {string} extend Extended type\n */\n\n/**\n * Constructs a map field from a map field descriptor.\n * @param {string} name Field name\n * @param {IMapField} json Map field descriptor\n * @returns {MapField} Created map field\n * @throws {TypeError} If arguments are invalid\n */\nMapField.fromJSON = function fromJSON(name, json) {\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\n};\n\n/**\n * Converts this map field to a map field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMapField} Map field descriptor\n */\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"keyType\" , this.keyType,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMapField.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\n if (types.mapKey[this.keyType] === undefined)\n throw Error(\"invalid key type: \" + this.keyType);\n\n return Field.prototype.resolve.call(this);\n};\n\n/**\n * Map field decorator (TypeScript).\n * @name MapField.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\n * @returns {FieldDecorator} Decorator function\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\n */\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\n\n // submessage value: decorate the submessage and use its name as the type\n if (typeof fieldValueType === \"function\")\n fieldValueType = util.decorateType(fieldValueType).name;\n\n // enum reference value: create a reflected copy of the enum and keep reuseing it\n else if (fieldValueType && typeof fieldValueType === \"object\")\n fieldValueType = util.decorateEnum(fieldValueType).name;\n\n return function mapFieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\n };\n};\n","\"use strict\";\nmodule.exports = Message;\n\nvar util = require(39);\n\n/**\n * Constructs a new message instance.\n * @classdesc Abstract runtime message.\n * @constructor\n * @param {Properties} [properties] Properties to set\n * @template T extends object = object\n */\nfunction Message(properties) {\n // not used internally\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n this[keys[i]] = properties[keys[i]];\n}\n\n/**\n * Reference to the reflected type.\n * @name Message.$type\n * @type {Type}\n * @readonly\n */\n\n/**\n * Reference to the reflected type.\n * @name Message#$type\n * @type {Type}\n * @readonly\n */\n\n/*eslint-disable valid-jsdoc*/\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.create = function create(properties) {\n return this.$type.create(properties);\n};\n\n/**\n * Encodes a message of this type.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encode = function encode(message, writer) {\n return this.$type.encode(message, writer);\n};\n\n/**\n * Encodes a message of this type preceeded by its length as a varint.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.$type.encodeDelimited(message, writer);\n};\n\n/**\n * Decodes a message of this type.\n * @name Message.decode\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decode = function decode(reader) {\n return this.$type.decode(reader);\n};\n\n/**\n * Decodes a message of this type preceeded by its length as a varint.\n * @name Message.decodeDelimited\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decodeDelimited = function decodeDelimited(reader) {\n return this.$type.decodeDelimited(reader);\n};\n\n/**\n * Verifies a message of this type.\n * @name Message.verify\n * @function\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\nMessage.verify = function verify(message) {\n return this.$type.verify(message);\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object\n * @returns {T} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.fromObject = function fromObject(object) {\n return this.$type.fromObject(object);\n};\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {T} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @template T extends Message\n * @this Constructor\n */\nMessage.toObject = function toObject(message, options) {\n return this.$type.toObject(message, options);\n};\n\n/**\n * Converts this message to JSON.\n * @returns {Object.} JSON object\n */\nMessage.prototype.toJSON = function toJSON() {\n return this.$type.toObject(this, util.toJSONOptions);\n};\n\n/*eslint-enable valid-jsdoc*/","\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(37);\n\n/**\n * Constructs a new service method instance.\n * @classdesc Reflected service method.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Method name\n * @param {string|undefined} type Method type, usually `\"rpc\"`\n * @param {string} requestType Request message type\n * @param {string} responseType Response message type\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this method\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment) {\n\n /* istanbul ignore next */\n if (util.isObject(requestStream)) {\n options = requestStream;\n requestStream = responseStream = undefined;\n } else if (util.isObject(responseStream)) {\n options = responseStream;\n responseStream = undefined;\n }\n\n /* istanbul ignore if */\n if (!(type === undefined || util.isString(type)))\n throw TypeError(\"type must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(requestType))\n throw TypeError(\"requestType must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(responseType))\n throw TypeError(\"responseType must be a string\");\n\n ReflectionObject.call(this, name, options);\n\n /**\n * Method type.\n * @type {string}\n */\n this.type = type || \"rpc\"; // toJSON\n\n /**\n * Request type.\n * @type {string}\n */\n this.requestType = requestType; // toJSON, marker\n\n /**\n * Whether requests are streamed or not.\n * @type {boolean|undefined}\n */\n this.requestStream = requestStream ? true : undefined; // toJSON\n\n /**\n * Response type.\n * @type {string}\n */\n this.responseType = responseType; // toJSON\n\n /**\n * Whether responses are streamed or not.\n * @type {boolean|undefined}\n */\n this.responseStream = responseStream ? true : undefined; // toJSON\n\n /**\n * Resolved request type.\n * @type {Type|null}\n */\n this.resolvedRequestType = null;\n\n /**\n * Resolved response type.\n * @type {Type|null}\n */\n this.resolvedResponseType = null;\n\n /**\n * Comment for this method\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Method descriptor.\n * @interface IMethod\n * @property {string} [type=\"rpc\"] Method type\n * @property {string} requestType Request type\n * @property {string} responseType Response type\n * @property {boolean} [requestStream=false] Whether requests are streamed\n * @property {boolean} [responseStream=false] Whether responses are streamed\n * @property {Object.} [options] Method options\n */\n\n/**\n * Constructs a method from a method descriptor.\n * @param {string} name Method name\n * @param {IMethod} json Method descriptor\n * @returns {Method} Created method\n * @throws {TypeError} If arguments are invalid\n */\nMethod.fromJSON = function fromJSON(name, json) {\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment);\n};\n\n/**\n * Converts this method to a method descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMethod} Method descriptor\n */\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\n \"requestType\" , this.requestType,\n \"requestStream\" , this.requestStream,\n \"responseType\" , this.responseType,\n \"responseStream\" , this.responseStream,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMethod.prototype.resolve = function resolve() {\n\n /* istanbul ignore if */\n if (this.resolved)\n return this;\n\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n","\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Field = require(16),\n util = require(37);\n\nvar Type, // cyclic\n Service,\n Enum;\n\n/**\n * Constructs a new namespace instance.\n * @name Namespace\n * @classdesc Reflected namespace.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a namespace from JSON.\n * @memberof Namespace\n * @function\n * @param {string} name Namespace name\n * @param {Object.} json JSON object\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json) {\n return new Namespace(name, json.options).addJSON(json.nested);\n};\n\n/**\n * Converts an array of reflection objects to JSON.\n * @memberof Namespace\n * @param {ReflectionObject[]} array Object array\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\n */\nfunction arrayToJSON(array, toJSONOptions) {\n if (!(array && array.length))\n return undefined;\n var obj = {};\n for (var i = 0; i < array.length; ++i)\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\n return obj;\n}\n\nNamespace.arrayToJSON = arrayToJSON;\n\n/**\n * Tests if the specified id is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedId = function isReservedId(reserved, id) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] > id)\n return true;\n return false;\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedName = function isReservedName(reserved, name) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (reserved[i] === name)\n return true;\n return false;\n};\n\n/**\n * Not an actual constructor. Use {@link Namespace} instead.\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports NamespaceBase\n * @extends ReflectionObject\n * @abstract\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n * @see {@link Namespace}\n */\nfunction Namespace(name, options) {\n ReflectionObject.call(this, name, options);\n\n /**\n * Nested objects by name.\n * @type {Object.|undefined}\n */\n this.nested = undefined; // toJSON\n\n /**\n * Cached nested objects as an array.\n * @type {ReflectionObject[]|null}\n * @private\n */\n this._nestedArray = null;\n}\n\nfunction clearCache(namespace) {\n namespace._nestedArray = null;\n return namespace;\n}\n\n/**\n * Nested objects of this namespace as an array for iteration.\n * @name NamespaceBase#nestedArray\n * @type {ReflectionObject[]}\n * @readonly\n */\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\n get: function() {\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\n }\n});\n\n/**\n * Namespace descriptor.\n * @interface INamespace\n * @property {Object.} [options] Namespace options\n * @property {Object.} [nested] Nested object descriptors\n */\n\n/**\n * Any extension field descriptor.\n * @typedef AnyExtensionField\n * @type {IExtensionField|IExtensionMapField}\n */\n\n/**\n * Any nested object descriptor.\n * @typedef AnyNestedObject\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace}\n */\n// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place)\n\n/**\n * Converts this namespace to a namespace descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {INamespace} Namespace descriptor\n */\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\n return util.toObject([\n \"options\" , this.options,\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\n ]);\n};\n\n/**\n * Adds nested objects to this namespace from nested object descriptors.\n * @param {Object.} nestedJson Any nested object descriptors\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\n var ns = this;\n /* istanbul ignore else */\n if (nestedJson) {\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\n nested = nestedJson[names[i]];\n ns.add( // most to least likely\n ( nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : nested.id !== undefined\n ? Field.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n }\n return this;\n};\n\n/**\n * Gets the nested object of the specified name.\n * @param {string} name Nested object name\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\n */\nNamespace.prototype.get = function get(name) {\n return this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Gets the values of the nested {@link Enum|enum} of the specified name.\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\n * @param {string} name Nested enum name\n * @returns {Object.} Enum values\n * @throws {Error} If there is no such enum\n */\nNamespace.prototype.getEnum = function getEnum(name) {\n if (this.nested && this.nested[name] instanceof Enum)\n return this.nested[name].values;\n throw Error(\"no such enum: \" + name);\n};\n\n/**\n * Adds a nested object to this namespace.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name\n */\nNamespace.prototype.add = function add(object) {\n\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\n throw TypeError(\"object must be a valid nested object\");\n\n if (!this.nested)\n this.nested = {};\n else {\n var prev = this.get(object.name);\n if (prev) {\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\n // replace plain namespace but keep existing nested elements and options\n var nested = prev.nestedArray;\n for (var i = 0; i < nested.length; ++i)\n object.add(nested[i]);\n this.remove(prev);\n if (!this.nested)\n this.nested = {};\n object.setOptions(prev.options, true);\n\n } else\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n }\n }\n this.nested[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n};\n\n/**\n * Removes a nested object from this namespace.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this namespace\n */\nNamespace.prototype.remove = function remove(object) {\n\n if (!(object instanceof ReflectionObject))\n throw TypeError(\"object must be a ReflectionObject\");\n if (object.parent !== this)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.nested[object.name];\n if (!Object.keys(this.nested).length)\n this.nested = undefined;\n\n object.onRemove(this);\n return clearCache(this);\n};\n\n/**\n * Defines additial namespaces within this one if not yet existing.\n * @param {string|string[]} path Path to create\n * @param {*} [json] Nested types to create from JSON\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\n */\nNamespace.prototype.define = function define(path, json) {\n\n if (util.isString(path))\n path = path.split(\".\");\n else if (!Array.isArray(path))\n throw TypeError(\"illegal path\");\n if (path && path.length && path[0] === \"\")\n throw Error(\"path must be relative\");\n\n var ptr = this;\n while (path.length > 0) {\n var part = path.shift();\n if (ptr.nested && ptr.nested[part]) {\n ptr = ptr.nested[part];\n if (!(ptr instanceof Namespace))\n throw Error(\"path conflicts with non-namespace objects\");\n } else\n ptr.add(ptr = new Namespace(part));\n }\n if (json)\n ptr.addJSON(json);\n return ptr;\n};\n\n/**\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\n * @returns {Namespace} `this`\n */\nNamespace.prototype.resolveAll = function resolveAll() {\n var nested = this.nestedArray, i = 0;\n while (i < nested.length)\n if (nested[i] instanceof Namespace)\n nested[i++].resolveAll();\n else\n nested[i++].resolve();\n return this.resolve();\n};\n\n/**\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\n * @param {string|string[]} path Path to look up\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n */\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\n\n /* istanbul ignore next */\n if (typeof filterTypes === \"boolean\") {\n parentAlreadyChecked = filterTypes;\n filterTypes = undefined;\n } else if (filterTypes && !Array.isArray(filterTypes))\n filterTypes = [ filterTypes ];\n\n if (util.isString(path) && path.length) {\n if (path === \".\")\n return this.root;\n path = path.split(\".\");\n } else if (!path.length)\n return this;\n\n // Start at root if path is absolute\n if (path[0] === \"\")\n return this.root.lookup(path.slice(1), filterTypes);\n\n // Test if the first part matches any nested object, and if so, traverse if path contains more\n var found = this.get(path[0]);\n if (found) {\n if (path.length === 1) {\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\n return found;\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\n return found;\n\n // Otherwise try each nested namespace\n } else\n for (var i = 0; i < this.nestedArray.length; ++i)\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\n return found;\n\n // If there hasn't been a match, try again at the parent\n if (this.parent === null || parentAlreadyChecked)\n return null;\n return this.parent.lookup(path, filterTypes);\n};\n\n/**\n * Looks up the reflection object at the specified path, relative to this namespace.\n * @name NamespaceBase#lookup\n * @function\n * @param {string|string[]} path Path to look up\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @variation 2\n */\n// lookup(path: string, [parentAlreadyChecked: boolean])\n\n/**\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type\n * @throws {Error} If `path` does not point to a type\n */\nNamespace.prototype.lookupType = function lookupType(path) {\n var found = this.lookup(path, [ Type ]);\n if (!found)\n throw Error(\"no such type: \" + path);\n return found;\n};\n\n/**\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Enum} Looked up enum\n * @throws {Error} If `path` does not point to an enum\n */\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\n var found = this.lookup(path, [ Enum ]);\n if (!found)\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type or enum\n * @throws {Error} If `path` does not point to a type or enum\n */\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\n var found = this.lookup(path, [ Type, Enum ]);\n if (!found)\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Service} Looked up service\n * @throws {Error} If `path` does not point to a service\n */\nNamespace.prototype.lookupService = function lookupService(path) {\n var found = this.lookup(path, [ Service ]);\n if (!found)\n throw Error(\"no such Service '\" + path + \"' in \" + this);\n return found;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nNamespace._configure = function(Type_, Service_, Enum_) {\n Type = Type_;\n Service = Service_;\n Enum = Enum_;\n};\n","\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nvar util = require(37);\n\nvar Root; // cyclic\n\n/**\n * Constructs a new reflection object instance.\n * @classdesc Base class of all reflection objects.\n * @constructor\n * @param {string} name Object name\n * @param {Object.} [options] Declared options\n * @abstract\n */\nfunction ReflectionObject(name, options) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (options && !util.isObject(options))\n throw TypeError(\"options must be an object\");\n\n /**\n * Options.\n * @type {Object.|undefined}\n */\n this.options = options; // toJSON\n\n /**\n * Unique name within its namespace.\n * @type {string}\n */\n this.name = name;\n\n /**\n * Parent namespace.\n * @type {Namespace|null}\n */\n this.parent = null;\n\n /**\n * Whether already resolved or not.\n * @type {boolean}\n */\n this.resolved = false;\n\n /**\n * Comment text, if any.\n * @type {string|null}\n */\n this.comment = null;\n\n /**\n * Defining file name.\n * @type {string|null}\n */\n this.filename = null;\n}\n\nObject.defineProperties(ReflectionObject.prototype, {\n\n /**\n * Reference to the root namespace.\n * @name ReflectionObject#root\n * @type {Root}\n * @readonly\n */\n root: {\n get: function() {\n var ptr = this;\n while (ptr.parent !== null)\n ptr = ptr.parent;\n return ptr;\n }\n },\n\n /**\n * Full name including leading dot.\n * @name ReflectionObject#fullName\n * @type {string}\n * @readonly\n */\n fullName: {\n get: function() {\n var path = [ this.name ],\n ptr = this.parent;\n while (ptr) {\n path.unshift(ptr.name);\n ptr = ptr.parent;\n }\n return path.join(\".\");\n }\n }\n});\n\n/**\n * Converts this reflection object to its descriptor representation.\n * @returns {Object.} Descriptor\n * @abstract\n */\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\n throw Error(); // not implemented, shouldn't happen\n};\n\n/**\n * Called when this object is added to a parent.\n * @param {ReflectionObject} parent Parent added to\n * @returns {undefined}\n */\nReflectionObject.prototype.onAdd = function onAdd(parent) {\n if (this.parent && this.parent !== parent)\n this.parent.remove(this);\n this.parent = parent;\n this.resolved = false;\n var root = parent.root;\n if (root instanceof Root)\n root._handleAdd(this);\n};\n\n/**\n * Called when this object is removed from a parent.\n * @param {ReflectionObject} parent Parent removed from\n * @returns {undefined}\n */\nReflectionObject.prototype.onRemove = function onRemove(parent) {\n var root = parent.root;\n if (root instanceof Root)\n root._handleRemove(this);\n this.parent = null;\n this.resolved = false;\n};\n\n/**\n * Resolves this objects type references.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n if (this.root instanceof Root)\n this.resolved = true; // only if part of a root\n return this;\n};\n\n/**\n * Gets an option value.\n * @param {string} name Option name\n * @returns {*} Option value or `undefined` if not set\n */\nReflectionObject.prototype.getOption = function getOption(name) {\n if (this.options)\n return this.options[name];\n return undefined;\n};\n\n/**\n * Sets an option.\n * @param {string} name Option name\n * @param {*} value Option value\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (!ifNotSet || !this.options || this.options[name] === undefined)\n (this.options || (this.options = {}))[name] = value;\n return this;\n};\n\n/**\n * Sets multiple options.\n * @param {Object.} options Options to set\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\n if (options)\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\n this.setOption(keys[i], options[keys[i]], ifNotSet);\n return this;\n};\n\n/**\n * Converts this instance to its string representation.\n * @returns {string} Class name[, space, full name]\n */\nReflectionObject.prototype.toString = function toString() {\n var className = this.constructor.className,\n fullName = this.fullName;\n if (fullName.length)\n return className + \" \" + fullName;\n return className;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nReflectionObject._configure = function(Root_) {\n Root = Root_;\n};\n","\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(16),\n util = require(37);\n\n/**\n * Constructs a new oneof instance.\n * @classdesc Reflected oneof.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Oneof name\n * @param {string[]|Object.} [fieldNames] Field names\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction OneOf(name, fieldNames, options, comment) {\n if (!Array.isArray(fieldNames)) {\n options = fieldNames;\n fieldNames = undefined;\n }\n ReflectionObject.call(this, name, options);\n\n /* istanbul ignore if */\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\n throw TypeError(\"fieldNames must be an Array\");\n\n /**\n * Field names that belong to this oneof.\n * @type {string[]}\n */\n this.oneof = fieldNames || []; // toJSON, marker\n\n /**\n * Fields that belong to this oneof as an array for iteration.\n * @type {Field[]}\n * @readonly\n */\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Oneof descriptor.\n * @interface IOneOf\n * @property {Array.} oneof Oneof field names\n * @property {Object.} [options] Oneof options\n */\n\n/**\n * Constructs a oneof from a oneof descriptor.\n * @param {string} name Oneof name\n * @param {IOneOf} json Oneof descriptor\n * @returns {OneOf} Created oneof\n * @throws {TypeError} If arguments are invalid\n */\nOneOf.fromJSON = function fromJSON(name, json) {\n return new OneOf(name, json.oneof, json.options, json.comment);\n};\n\n/**\n * Converts this oneof to a oneof descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IOneOf} Oneof descriptor\n */\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"oneof\" , this.oneof,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Adds the fields of the specified oneof to the parent if not already done so.\n * @param {OneOf} oneof The oneof\n * @returns {undefined}\n * @inner\n * @ignore\n */\nfunction addFieldsToParent(oneof) {\n if (oneof.parent)\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\n if (!oneof.fieldsArray[i].parent)\n oneof.parent.add(oneof.fieldsArray[i]);\n}\n\n/**\n * Adds a field to this oneof and removes it from its current parent, if any.\n * @param {Field} field Field to add\n * @returns {OneOf} `this`\n */\nOneOf.prototype.add = function add(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n if (field.parent && field.parent !== this.parent)\n field.parent.remove(field);\n this.oneof.push(field.name);\n this.fieldsArray.push(field);\n field.partOf = this; // field.parent remains null\n addFieldsToParent(this);\n return this;\n};\n\n/**\n * Removes a field from this oneof and puts it back to the oneof's parent.\n * @param {Field} field Field to remove\n * @returns {OneOf} `this`\n */\nOneOf.prototype.remove = function remove(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n var index = this.fieldsArray.indexOf(field);\n\n /* istanbul ignore if */\n if (index < 0)\n throw Error(field + \" is not a member of \" + this);\n\n this.fieldsArray.splice(index, 1);\n index = this.oneof.indexOf(field.name);\n\n /* istanbul ignore else */\n if (index > -1) // theoretical\n this.oneof.splice(index, 1);\n\n field.partOf = null;\n return this;\n};\n\n/**\n * @override\n */\nOneOf.prototype.onAdd = function onAdd(parent) {\n ReflectionObject.prototype.onAdd.call(this, parent);\n var self = this;\n // Collect present fields\n for (var i = 0; i < this.oneof.length; ++i) {\n var field = parent.get(this.oneof[i]);\n if (field && !field.partOf) {\n field.partOf = self;\n self.fieldsArray.push(field);\n }\n }\n // Add not yet present fields\n addFieldsToParent(this);\n};\n\n/**\n * @override\n */\nOneOf.prototype.onRemove = function onRemove(parent) {\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\n if ((field = this.fieldsArray[i]).parent)\n field.parent.remove(field);\n ReflectionObject.prototype.onRemove.call(this, parent);\n};\n\n/**\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\n * @typedef OneOfDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} oneofName OneOf name\n * @returns {undefined}\n */\n\n/**\n * OneOf decorator (TypeScript).\n * @function\n * @param {...string} fieldNames Field names\n * @returns {OneOfDecorator} Decorator function\n * @template T extends string\n */\nOneOf.d = function decorateOneOf() {\n var fieldNames = new Array(arguments.length),\n index = 0;\n while (index < arguments.length)\n fieldNames[index] = arguments[index++];\n return function oneOfDecorator(prototype, oneofName) {\n util.decorateType(prototype.constructor)\n .add(new OneOf(oneofName, fieldNames));\n Object.defineProperty(prototype, oneofName, {\n get: util.oneOfGetter(fieldNames),\n set: util.oneOfSetter(fieldNames)\n });\n };\n};\n","\"use strict\";\nmodule.exports = parse;\n\nparse.filename = null;\nparse.defaults = { keepCase: false };\n\nvar tokenize = require(34),\n Root = require(29),\n Type = require(35),\n Field = require(16),\n MapField = require(20),\n OneOf = require(25),\n Enum = require(15),\n Service = require(33),\n Method = require(22),\n types = require(36),\n util = require(37);\n\nvar base10Re = /^[1-9][0-9]*$/,\n base10NegRe = /^-?[1-9][0-9]*$/,\n base16Re = /^0[x][0-9a-fA-F]+$/,\n base16NegRe = /^-?0[x][0-9a-fA-F]+$/,\n base8Re = /^0[0-7]+$/,\n base8NegRe = /^-?0[0-7]+$/,\n numberRe = /^(?![eE])[0-9]*(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,\n nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/,\n typeRefRe = /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,\n fqTypeRefRe = /^(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;\n\n/**\n * Result object returned from {@link parse}.\n * @interface IParserResult\n * @property {string|undefined} package Package name, if declared\n * @property {string[]|undefined} imports Imports, if any\n * @property {string[]|undefined} weakImports Weak imports, if any\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\n * @property {Root} root Populated root instance\n */\n\n/**\n * Options modifying the behavior of {@link parse}.\n * @interface IParseOptions\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\n * @property {boolean} [alternateCommentMode=false] Recognize double-slash comments in addition to doc-block comments.\n */\n\n/**\n * Options modifying the behavior of JSON serialization.\n * @interface IToJSONOptions\n * @property {boolean} [keepComments=false] Serializes comments.\n */\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @param {string} source Source contents\n * @param {Root} root Root to populate\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n */\nfunction parse(source, root, options) {\n /* eslint-disable callback-return */\n if (!(root instanceof Root)) {\n options = root;\n root = new Root();\n }\n if (!options)\n options = parse.defaults;\n\n var tn = tokenize(source, options.alternateCommentMode || false),\n next = tn.next,\n push = tn.push,\n peek = tn.peek,\n skip = tn.skip,\n cmnt = tn.cmnt;\n\n var head = true,\n pkg,\n imports,\n weakImports,\n syntax,\n isProto3 = false;\n\n var ptr = root;\n\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\n\n /* istanbul ignore next */\n function illegal(token, name, insideTryCatch) {\n var filename = parse.filename;\n if (!insideTryCatch)\n parse.filename = null;\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line + \")\");\n }\n\n function readString() {\n var values = [],\n token;\n do {\n /* istanbul ignore if */\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\n throw illegal(token);\n\n values.push(next());\n skip(token);\n token = peek();\n } while (token === \"\\\"\" || token === \"'\");\n return values.join(\"\");\n }\n\n function readValue(acceptTypeRef) {\n var token = next();\n switch (token) {\n case \"'\":\n case \"\\\"\":\n push(token);\n return readString();\n case \"true\": case \"TRUE\":\n return true;\n case \"false\": case \"FALSE\":\n return false;\n }\n try {\n return parseNumber(token, /* insideTryCatch */ true);\n } catch (e) {\n\n /* istanbul ignore else */\n if (acceptTypeRef && typeRefRe.test(token))\n return token;\n\n /* istanbul ignore next */\n throw illegal(token, \"value\");\n }\n }\n\n function readRanges(target, acceptStrings) {\n var token, start;\n do {\n if (acceptStrings && ((token = peek()) === \"\\\"\" || token === \"'\"))\n target.push(readString());\n else\n target.push([ start = parseId(next()), skip(\"to\", true) ? parseId(next()) : start ]);\n } while (skip(\",\", true));\n skip(\";\");\n }\n\n function parseNumber(token, insideTryCatch) {\n var sign = 1;\n if (token.charAt(0) === \"-\") {\n sign = -1;\n token = token.substring(1);\n }\n switch (token) {\n case \"inf\": case \"INF\": case \"Inf\":\n return sign * Infinity;\n case \"nan\": case \"NAN\": case \"Nan\": case \"NaN\":\n return NaN;\n case \"0\":\n return 0;\n }\n if (base10Re.test(token))\n return sign * parseInt(token, 10);\n if (base16Re.test(token))\n return sign * parseInt(token, 16);\n if (base8Re.test(token))\n return sign * parseInt(token, 8);\n\n /* istanbul ignore else */\n if (numberRe.test(token))\n return sign * parseFloat(token);\n\n /* istanbul ignore next */\n throw illegal(token, \"number\", insideTryCatch);\n }\n\n function parseId(token, acceptNegative) {\n switch (token) {\n case \"max\": case \"MAX\": case \"Max\":\n return 536870911;\n case \"0\":\n return 0;\n }\n\n /* istanbul ignore if */\n if (!acceptNegative && token.charAt(0) === \"-\")\n throw illegal(token, \"id\");\n\n if (base10NegRe.test(token))\n return parseInt(token, 10);\n if (base16NegRe.test(token))\n return parseInt(token, 16);\n\n /* istanbul ignore else */\n if (base8NegRe.test(token))\n return parseInt(token, 8);\n\n /* istanbul ignore next */\n throw illegal(token, \"id\");\n }\n\n function parsePackage() {\n\n /* istanbul ignore if */\n if (pkg !== undefined)\n throw illegal(\"package\");\n\n pkg = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(pkg))\n throw illegal(pkg, \"name\");\n\n ptr = ptr.define(pkg);\n skip(\";\");\n }\n\n function parseImport() {\n var token = peek();\n var whichImports;\n switch (token) {\n case \"weak\":\n whichImports = weakImports || (weakImports = []);\n next();\n break;\n case \"public\":\n next();\n // eslint-disable-line no-fallthrough\n default:\n whichImports = imports || (imports = []);\n break;\n }\n token = readString();\n skip(\";\");\n whichImports.push(token);\n }\n\n function parseSyntax() {\n skip(\"=\");\n syntax = readString();\n isProto3 = syntax === \"proto3\";\n\n /* istanbul ignore if */\n if (!isProto3 && syntax !== \"proto2\")\n throw illegal(syntax, \"syntax\");\n\n skip(\";\");\n }\n\n function parseCommon(parent, token) {\n switch (token) {\n\n case \"option\":\n parseOption(parent, token);\n skip(\";\");\n return true;\n\n case \"message\":\n parseType(parent, token);\n return true;\n\n case \"enum\":\n parseEnum(parent, token);\n return true;\n\n case \"service\":\n parseService(parent, token);\n return true;\n\n case \"extend\":\n parseExtension(parent, token);\n return true;\n }\n return false;\n }\n\n function ifBlock(obj, fnIf, fnElse) {\n var trailingLine = tn.line;\n if (obj) {\n if(typeof obj.comment !== \"string\") {\n obj.comment = cmnt(); // try block-type comment\n }\n obj.filename = parse.filename;\n }\n if (skip(\"{\", true)) {\n var token;\n while ((token = next()) !== \"}\")\n fnIf(token);\n skip(\";\", true);\n } else {\n if (fnElse)\n fnElse();\n skip(\";\");\n if (obj && typeof obj.comment !== \"string\")\n obj.comment = cmnt(trailingLine); // try line-type comment if no block\n }\n }\n\n function parseType(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"type name\");\n\n var type = new Type(token);\n ifBlock(type, function parseType_block(token) {\n if (parseCommon(type, token))\n return;\n\n switch (token) {\n\n case \"map\":\n parseMapField(type, token);\n break;\n\n case \"required\":\n case \"optional\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n case \"oneof\":\n parseOneOf(type, token);\n break;\n\n case \"extensions\":\n readRanges(type.extensions || (type.extensions = []));\n break;\n\n case \"reserved\":\n readRanges(type.reserved || (type.reserved = []), true);\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n\n push(token);\n parseField(type, \"optional\");\n break;\n }\n });\n parent.add(type);\n }\n\n function parseField(parent, rule, extend) {\n var type = next();\n if (type === \"group\") {\n parseGroup(parent, rule);\n return;\n }\n\n /* istanbul ignore if */\n if (!typeRefRe.test(type))\n throw illegal(type, \"type\");\n\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n name = applyCase(name);\n skip(\"=\");\n\n var field = new Field(name, parseId(next()), type, rule, extend);\n ifBlock(field, function parseField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseField_line() {\n parseInlineOptions(field);\n });\n parent.add(field);\n\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\n // parsing proto2 descriptors without the option, where applicable. This must be done for\n // all known packable types and anything that could be an enum (= is not a basic type).\n if (!isProto3 && field.repeated && (types.packed[type] !== undefined || types.basic[type] === undefined))\n field.setOption(\"packed\", false, /* ifNotSet */ true);\n }\n\n function parseGroup(parent, rule) {\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n var fieldName = util.lcFirst(name);\n if (name === fieldName)\n name = util.ucFirst(name);\n skip(\"=\");\n var id = parseId(next());\n var type = new Type(name);\n type.group = true;\n var field = new Field(fieldName, id, name, rule);\n field.filename = parse.filename;\n ifBlock(type, function parseGroup_block(token) {\n switch (token) {\n\n case \"option\":\n parseOption(type, token);\n skip(\";\");\n break;\n\n case \"required\":\n case \"optional\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n /* istanbul ignore next */\n default:\n throw illegal(token); // there are no groups with proto3 semantics\n }\n });\n parent.add(type)\n .add(field);\n }\n\n function parseMapField(parent) {\n skip(\"<\");\n var keyType = next();\n\n /* istanbul ignore if */\n if (types.mapKey[keyType] === undefined)\n throw illegal(keyType, \"type\");\n\n skip(\",\");\n var valueType = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(valueType))\n throw illegal(valueType, \"type\");\n\n skip(\">\");\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n skip(\"=\");\n var field = new MapField(applyCase(name), parseId(next()), keyType, valueType);\n ifBlock(field, function parseMapField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseMapField_line() {\n parseInlineOptions(field);\n });\n parent.add(field);\n }\n\n function parseOneOf(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var oneof = new OneOf(applyCase(token));\n ifBlock(oneof, function parseOneOf_block(token) {\n if (token === \"option\") {\n parseOption(oneof, token);\n skip(\";\");\n } else {\n push(token);\n parseField(oneof, \"optional\");\n }\n });\n parent.add(oneof);\n }\n\n function parseEnum(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var enm = new Enum(token);\n ifBlock(enm, function parseEnum_block(token) {\n switch(token) {\n case \"option\":\n parseOption(enm, token);\n skip(\";\");\n break;\n\n case \"reserved\":\n readRanges(enm.reserved || (enm.reserved = []), true);\n break;\n\n default:\n parseEnumValue(enm, token);\n }\n });\n parent.add(enm);\n }\n\n function parseEnumValue(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token))\n throw illegal(token, \"name\");\n\n skip(\"=\");\n var value = parseId(next(), true),\n dummy = {};\n ifBlock(dummy, function parseEnumValue_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(dummy, token); // skip\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseEnumValue_line() {\n parseInlineOptions(dummy); // skip\n });\n parent.add(token, value, dummy.comment);\n }\n\n function parseOption(parent, token) {\n var isCustom = skip(\"(\", true);\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token;\n if (isCustom) {\n skip(\")\");\n name = \"(\" + name + \")\";\n token = peek();\n if (fqTypeRefRe.test(token)) {\n name += token;\n next();\n }\n }\n skip(\"=\");\n parseOptionValue(parent, name);\n }\n\n function parseOptionValue(parent, name) {\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\n do {\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n if (peek() === \"{\")\n parseOptionValue(parent, name + \".\" + token);\n else {\n skip(\":\");\n if (peek() === \"{\")\n parseOptionValue(parent, name + \".\" + token);\n else\n setOption(parent, name + \".\" + token, readValue(true));\n }\n skip(\",\", true);\n } while (!skip(\"}\", true));\n } else\n setOption(parent, name, readValue(true));\n // Does not enforce a delimiter to be universal\n }\n\n function setOption(parent, name, value) {\n if (parent.setOption)\n parent.setOption(name, value);\n }\n\n function parseInlineOptions(parent) {\n if (skip(\"[\", true)) {\n do {\n parseOption(parent, \"option\");\n } while (skip(\",\", true));\n skip(\"]\");\n }\n return parent;\n }\n\n function parseService(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"service name\");\n\n var service = new Service(token);\n ifBlock(service, function parseService_block(token) {\n if (parseCommon(service, token))\n return;\n\n /* istanbul ignore else */\n if (token === \"rpc\")\n parseMethod(service, token);\n else\n throw illegal(token);\n });\n parent.add(service);\n }\n\n function parseMethod(parent, token) {\n // Get the comment of the preceding line now (if one exists) in case the\n // method is defined across multiple lines.\n var commentText = cmnt();\n\n var type = token;\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token,\n requestType, requestStream,\n responseType, responseStream;\n\n skip(\"(\");\n if (skip(\"stream\", true))\n requestStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n requestType = token;\n skip(\")\"); skip(\"returns\"); skip(\"(\");\n if (skip(\"stream\", true))\n responseStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n responseType = token;\n skip(\")\");\n\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\n method.comment = commentText;\n ifBlock(method, function parseMethod_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(method, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n });\n parent.add(method);\n }\n\n function parseExtension(parent, token) {\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"reference\");\n\n var reference = token;\n ifBlock(null, function parseExtension_block(token) {\n switch (token) {\n\n case \"required\":\n case \"repeated\":\n case \"optional\":\n parseField(parent, token, reference);\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n push(token);\n parseField(parent, \"optional\", reference);\n break;\n }\n });\n }\n\n var token;\n while ((token = next()) !== null) {\n switch (token) {\n\n case \"package\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parsePackage();\n break;\n\n case \"import\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseImport();\n break;\n\n case \"syntax\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseSyntax();\n break;\n\n case \"option\":\n\n parseOption(ptr, token);\n skip(\";\");\n break;\n\n default:\n\n /* istanbul ignore else */\n if (parseCommon(ptr, token)) {\n head = false;\n continue;\n }\n\n /* istanbul ignore next */\n throw illegal(token);\n }\n }\n\n parse.filename = null;\n return {\n \"package\" : pkg,\n \"imports\" : imports,\n weakImports : weakImports,\n syntax : syntax,\n root : root\n };\n}\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @name parse\n * @function\n * @param {string} source Source contents\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n * @variation 2\n */\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(39);\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(27);\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(39);\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\n/* istanbul ignore else */\nif (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n","\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(23);\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field = require(16),\n Enum = require(15),\n OneOf = require(25),\n util = require(37);\n\nvar Type, // cyclic\n parse, // might be excluded\n common; // \"\n\n/**\n * Constructs a new root namespace instance.\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\n * @extends NamespaceBase\n * @constructor\n * @param {Object.} [options] Top level options\n */\nfunction Root(options) {\n Namespace.call(this, \"\", options);\n\n /**\n * Deferred extension fields.\n * @type {Field[]}\n */\n this.deferred = [];\n\n /**\n * Resolved file names of loaded files.\n * @type {string[]}\n */\n this.files = [];\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Nameespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root) {\n if (!root)\n root = new Root();\n if (json.options)\n root.setOptions(json.options);\n return root.addJSON(json.nested);\n};\n\n/**\n * Resolves the path of an imported file, relative to the importing origin.\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\n * @function\n * @param {string} origin The file name of the importing file\n * @param {string} target The file name being imported\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\n */\nRoot.prototype.resolvePath = util.path.resolve;\n\n// A symbol-like function to safely signal synchronous loading\n/* istanbul ignore next */\nfunction SYNC() {} // eslint-disable-line no-empty-function\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} options Parse options\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.load = function load(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = undefined;\n }\n var self = this;\n if (!callback)\n return util.asPromise(load, self, filename, options);\n\n var sync = callback === SYNC; // undocumented\n\n // Finishes loading by calling the callback (exactly once)\n function finish(err, root) {\n /* istanbul ignore if */\n if (!callback)\n return;\n var cb = callback;\n callback = null;\n if (sync)\n throw err;\n cb(err, root);\n }\n\t\n // Bundled definition existence checking\n function getBundledFileName(filename) {\n var idx = filename.lastIndexOf(\"google/protobuf/\");\n if (idx > -1) {\n var altname = filename.substring(idx);\n if (altname in common) return altname; \n }\n return null;\n }\n\n // Processes a single file\n function process(filename, source) {\n try {\n if (util.isString(source) && source.charAt(0) === \"{\")\n source = JSON.parse(source);\n if (!util.isString(source))\n self.setOptions(source.options).addJSON(source.nested);\n else {\n parse.filename = filename;\n var parsed = parse(source, self, options),\n resolved,\n i = 0;\n if (parsed.imports)\n for (; i < parsed.imports.length; ++i)\n if (resolved = (getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i])))\n fetch(resolved);\n if (parsed.weakImports)\n for (i = 0; i < parsed.weakImports.length; ++i)\n if (resolved = (getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i])))\n fetch(resolved, true);\n }\n } catch (err) {\n finish(err);\n }\n if (!sync && !queued)\n finish(null, self); // only once anyway\n }\n\n // Fetches a single file\n function fetch(filename, weak) {\n\n // Skip if already loaded / attempted\n if (self.files.indexOf(filename) > -1)\n return;\n self.files.push(filename);\n\n // Shortcut bundled definitions\n if (filename in common) {\n if (sync)\n process(filename, common[filename]);\n else {\n ++queued;\n setTimeout(function() {\n --queued;\n process(filename, common[filename]);\n });\n }\n return;\n }\n\n // Otherwise fetch from disk or network\n if (sync) {\n var source;\n try {\n source = util.fs.readFileSync(filename).toString(\"utf8\");\n } catch (err) {\n if (!weak)\n finish(err);\n return;\n }\n process(filename, source);\n } else {\n ++queued;\n util.fetch(filename, function(err, source) {\n --queued;\n /* istanbul ignore if */\n if (!callback)\n return; // terminated meanwhile\n if (err) {\n /* istanbul ignore else */\n if (!weak)\n finish(err);\n else if (!queued) // can't be covered reliably\n finish(null, self);\n return;\n }\n process(filename, source);\n });\n }\n }\n var queued = 0;\n\n // Assembling the root namespace doesn't require working type\n // references anymore, so we can load everything in parallel\n if (util.isString(filename))\n filename = [ filename ];\n for (var i = 0, resolved; i < filename.length; ++i)\n if (resolved = self.resolvePath(\"\", filename[i]))\n fetch(resolved);\n\n if (sync)\n return self;\n if (!queued)\n finish(null, self);\n return undefined;\n};\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Promise} Promise\n * @variation 3\n */\n// function load(filename:string, [options:IParseOptions]):Promise\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\n * @function Root#loadSync\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n */\nRoot.prototype.loadSync = function loadSync(filename, options) {\n if (!util.isNode)\n throw Error(\"not supported\");\n return this.load(filename, options, SYNC);\n};\n\n/**\n * @override\n */\nRoot.prototype.resolveAll = function resolveAll() {\n if (this.deferred.length)\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\n }).join(\", \"));\n return Namespace.prototype.resolveAll.call(this);\n};\n\n// only uppercased (and thus conflict-free) children are exposed, see below\nvar exposeRe = /^[A-Z]/;\n\n/**\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\n * @param {Root} root Root instance\n * @param {Field} field Declaring extension field witin the declaring type\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\n * @inner\n * @ignore\n */\nfunction tryHandleExtension(root, field) {\n var extendedType = field.parent.lookup(field.extend);\n if (extendedType) {\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\n sisterField.declaringField = field;\n field.extensionField = sisterField;\n extendedType.add(sisterField);\n return true;\n }\n return false;\n}\n\n/**\n * Called when any object is added to this root or its sub-namespaces.\n * @param {ReflectionObject} object Object added\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleAdd = function _handleAdd(object) {\n if (object instanceof Field) {\n\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\n if (!tryHandleExtension(this, object))\n this.deferred.push(object);\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n object.parent[object.name] = object.values; // expose enum values as property of its parent\n\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\n\n if (object instanceof Type) // Try to handle any deferred extensions\n for (var i = 0; i < this.deferred.length;)\n if (tryHandleExtension(this, this.deferred[i]))\n this.deferred.splice(i, 1);\n else\n ++i;\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\n this._handleAdd(object._nestedArray[j]);\n if (exposeRe.test(object.name))\n object.parent[object.name] = object; // expose namespace as property of its parent\n }\n\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\n // a static module with reflection-based solutions where the condition is met.\n};\n\n/**\n * Called when any object is removed from this root or its sub-namespaces.\n * @param {ReflectionObject} object Object removed\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleRemove = function _handleRemove(object) {\n if (object instanceof Field) {\n\n if (/* an extension field */ object.extend !== undefined) {\n if (/* already handled */ object.extensionField) { // remove its sister field\n object.extensionField.parent.remove(object.extensionField);\n object.extensionField = null;\n } else { // cancel the extension\n var index = this.deferred.indexOf(object);\n /* istanbul ignore else */\n if (index > -1)\n this.deferred.splice(index, 1);\n }\n }\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose enum values\n\n } else if (object instanceof Namespace) {\n\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\n this._handleRemove(object._nestedArray[i]);\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose namespaces\n\n }\n};\n\n// Sets up cyclic dependencies (called in index-light)\nRoot._configure = function(Type_, parse_, common_) {\n Type = Type_;\n parse = parse_;\n common = common_;\n};\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(32);\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(39);\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(23);\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(22),\n util = require(37),\n rpc = require(31);\n\n/**\n * Constructs a new service instance.\n * @classdesc Reflected service.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Service name\n * @param {Object.} [options] Service options\n * @throws {TypeError} If arguments are invalid\n */\nfunction Service(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Service methods.\n * @type {Object.}\n */\n this.methods = {}; // toJSON, marker\n\n /**\n * Cached methods as an array.\n * @type {Method[]|null}\n * @private\n */\n this._methodsArray = null;\n}\n\n/**\n * Service descriptor.\n * @interface IService\n * @extends INamespace\n * @property {Object.} methods Method descriptors\n */\n\n/**\n * Constructs a service from a service descriptor.\n * @param {string} name Service name\n * @param {IService} json Service descriptor\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json) {\n var service = new Service(name, json.options);\n /* istanbul ignore else */\n if (json.methods)\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\n if (json.nested)\n service.addJSON(json.nested);\n service.comment = json.comment;\n return service;\n};\n\n/**\n * Converts this service to a service descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IService} Service descriptor\n */\nService.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Methods of this service as an array for iteration.\n * @name Service#methodsArray\n * @type {Method[]}\n * @readonly\n */\nObject.defineProperty(Service.prototype, \"methodsArray\", {\n get: function() {\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\n }\n});\n\nfunction clearCache(service) {\n service._methodsArray = null;\n return service;\n}\n\n/**\n * @override\n */\nService.prototype.get = function get(name) {\n return this.methods[name]\n || Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n var methods = this.methodsArray;\n for (var i = 0; i < methods.length; ++i)\n methods[i].resolve();\n return Namespace.prototype.resolve.call(this);\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\n\n /* istanbul ignore if */\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Method) {\n this.methods[object.name] = object;\n object.parent = this;\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * @override\n */\nService.prototype.remove = function remove(object) {\n if (object instanceof Method) {\n\n /* istanbul ignore if */\n if (this.methods[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.methods[object.name];\n object.parent = null;\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Creates a runtime service using the specified rpc implementation.\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\n */\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\n m: method,\n q: method.resolvedRequestType.ctor,\n s: method.resolvedResponseType.ctor\n });\n }\n return rpcService;\n};\n","\"use strict\";\nmodule.exports = tokenize;\n\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\n\nvar setCommentRe = /^ *[*/]+ */,\n setCommentAltRe = /^\\s*\\*?\\/*/,\n setCommentSplitRe = /\\n/g,\n whitespaceRe = /\\s/,\n unescapeRe = /\\\\(.?)/g;\n\nvar unescapeMap = {\n \"0\": \"\\0\",\n \"r\": \"\\r\",\n \"n\": \"\\n\",\n \"t\": \"\\t\"\n};\n\n/**\n * Unescapes a string.\n * @param {string} str String to unescape\n * @returns {string} Unescaped string\n * @property {Object.} map Special characters map\n * @memberof tokenize\n */\nfunction unescape(str) {\n return str.replace(unescapeRe, function($0, $1) {\n switch ($1) {\n case \"\\\\\":\n case \"\":\n return $1;\n default:\n return unescapeMap[$1] || \"\";\n }\n });\n}\n\ntokenize.unescape = unescape;\n\n/**\n * Gets the next token and advances.\n * @typedef TokenizerHandleNext\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Peeks for the next token.\n * @typedef TokenizerHandlePeek\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Pushes a token back to the stack.\n * @typedef TokenizerHandlePush\n * @type {function}\n * @param {string} token Token\n * @returns {undefined}\n */\n\n/**\n * Skips the next token.\n * @typedef TokenizerHandleSkip\n * @type {function}\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] If optional\n * @returns {boolean} Whether the token matched\n * @throws {Error} If the token didn't match and is not optional\n */\n\n/**\n * Gets the comment on the previous line or, alternatively, the line comment on the specified line.\n * @typedef TokenizerHandleCmnt\n * @type {function}\n * @param {number} [line] Line number\n * @returns {string|null} Comment text or `null` if none\n */\n\n/**\n * Handle object returned from {@link tokenize}.\n * @interface ITokenizerHandle\n * @property {TokenizerHandleNext} next Gets the next token and advances (`null` on eof)\n * @property {TokenizerHandlePeek} peek Peeks for the next token (`null` on eof)\n * @property {TokenizerHandlePush} push Pushes a token back to the stack\n * @property {TokenizerHandleSkip} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\n * @property {TokenizerHandleCmnt} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\n * @property {number} line Current line number\n */\n\n/**\n * Tokenizes the given .proto source and returns an object with useful utility functions.\n * @param {string} source Source contents\n * @param {boolean} alternateCommentMode Whether we should activate alternate comment parsing mode.\n * @returns {ITokenizerHandle} Tokenizer handle\n */\nfunction tokenize(source, alternateCommentMode) {\n /* eslint-disable callback-return */\n source = source.toString();\n\n var offset = 0,\n length = source.length,\n line = 1,\n commentType = null,\n commentText = null,\n commentLine = 0,\n commentLineEmpty = false;\n\n var stack = [];\n\n var stringDelim = null;\n\n /* istanbul ignore next */\n /**\n * Creates an error for illegal syntax.\n * @param {string} subject Subject\n * @returns {Error} Error created\n * @inner\n */\n function illegal(subject) {\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\n }\n\n /**\n * Reads a string till its end.\n * @returns {string} String read\n * @inner\n */\n function readString() {\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\n re.lastIndex = offset - 1;\n var match = re.exec(source);\n if (!match)\n throw illegal(\"string\");\n offset = re.lastIndex;\n push(stringDelim);\n stringDelim = null;\n return unescape(match[1]);\n }\n\n /**\n * Gets the character at `pos` within the source.\n * @param {number} pos Position\n * @returns {string} Character\n * @inner\n */\n function charAt(pos) {\n return source.charAt(pos);\n }\n\n /**\n * Sets the current comment text.\n * @param {number} start Start offset\n * @param {number} end End offset\n * @returns {undefined}\n * @inner\n */\n function setComment(start, end) {\n commentType = source.charAt(start++);\n commentLine = line;\n commentLineEmpty = false;\n var lookback;\n if (alternateCommentMode) {\n lookback = 2; // alternate comment parsing: \"//\" or \"/*\"\n } else {\n lookback = 3; // \"///\" or \"/**\"\n }\n var commentOffset = start - lookback,\n c;\n do {\n if (--commentOffset < 0 ||\n (c = source.charAt(commentOffset)) === \"\\n\") {\n commentLineEmpty = true;\n break;\n }\n } while (c === \" \" || c === \"\\t\");\n var lines = source\n .substring(start, end)\n .split(setCommentSplitRe);\n for (var i = 0; i < lines.length; ++i)\n lines[i] = lines[i]\n .replace(alternateCommentMode ? setCommentAltRe : setCommentRe, \"\")\n .trim();\n commentText = lines\n .join(\"\\n\")\n .trim();\n }\n\n function isDoubleSlashCommentLine(startOffset) {\n var endOffset = findEndOfLine(startOffset);\n\n // see if remaining line matches comment pattern\n var lineText = source.substring(startOffset, endOffset);\n // look for 1 or 2 slashes since startOffset would already point past\n // the first slash that started the comment.\n var isComment = /^\\s*\\/{1,2}/.test(lineText);\n return isComment;\n }\n\n function findEndOfLine(cursor) {\n // find end of cursor's line\n var endOffset = cursor;\n while (endOffset < length && charAt(endOffset) !== \"\\n\") {\n endOffset++;\n }\n return endOffset;\n }\n\n /**\n * Obtains the next token.\n * @returns {string|null} Next token or `null` on eof\n * @inner\n */\n function next() {\n if (stack.length > 0)\n return stack.shift();\n if (stringDelim)\n return readString();\n var repeat,\n prev,\n curr,\n start,\n isDoc;\n do {\n if (offset === length)\n return null;\n repeat = false;\n while (whitespaceRe.test(curr = charAt(offset))) {\n if (curr === \"\\n\")\n ++line;\n if (++offset === length)\n return null;\n }\n\n if (charAt(offset) === \"/\") {\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n if (charAt(offset) === \"/\") { // Line\n if (!alternateCommentMode) {\n // check for triple-slash comment\n isDoc = charAt(start = offset + 1) === \"/\";\n\n while (charAt(++offset) !== \"\\n\") {\n if (offset === length) {\n return null;\n }\n }\n ++offset;\n if (isDoc) {\n setComment(start, offset - 1);\n }\n ++line;\n repeat = true;\n } else {\n // check for double-slash comments, consolidating consecutive lines\n start = offset;\n isDoc = false;\n if (isDoubleSlashCommentLine(offset)) {\n isDoc = true;\n do {\n offset = findEndOfLine(offset);\n if (offset === length) {\n break;\n }\n offset++;\n } while (isDoubleSlashCommentLine(offset));\n } else {\n offset = Math.min(length, findEndOfLine(offset) + 1);\n }\n if (isDoc) {\n setComment(start, offset);\n }\n line++;\n repeat = true;\n }\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\n // check for /** (regular comment mode) or /* (alternate comment mode)\n start = offset + 1;\n isDoc = alternateCommentMode || charAt(start) === \"*\";\n do {\n if (curr === \"\\n\") {\n ++line;\n }\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n prev = curr;\n curr = charAt(offset);\n } while (prev !== \"*\" || curr !== \"/\");\n ++offset;\n if (isDoc) {\n setComment(start, offset - 2);\n }\n repeat = true;\n } else {\n return \"/\";\n }\n }\n } while (repeat);\n\n // offset !== length if we got here\n\n var end = offset;\n delimRe.lastIndex = 0;\n var delim = delimRe.test(charAt(end++));\n if (!delim)\n while (end < length && !delimRe.test(charAt(end)))\n ++end;\n var token = source.substring(offset, offset = end);\n if (token === \"\\\"\" || token === \"'\")\n stringDelim = token;\n return token;\n }\n\n /**\n * Pushes a token back to the stack.\n * @param {string} token Token\n * @returns {undefined}\n * @inner\n */\n function push(token) {\n stack.push(token);\n }\n\n /**\n * Peeks for the next token.\n * @returns {string|null} Token or `null` on eof\n * @inner\n */\n function peek() {\n if (!stack.length) {\n var token = next();\n if (token === null)\n return null;\n push(token);\n }\n return stack[0];\n }\n\n /**\n * Skips a token.\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] Whether the token is optional\n * @returns {boolean} `true` when skipped, `false` if not\n * @throws {Error} When a required token is not present\n * @inner\n */\n function skip(expected, optional) {\n var actual = peek(),\n equals = actual === expected;\n if (equals) {\n next();\n return true;\n }\n if (!optional)\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\n return false;\n }\n\n /**\n * Gets a comment.\n * @param {number} [trailingLine] Line number if looking for a trailing comment\n * @returns {string|null} Comment text\n * @inner\n */\n function cmnt(trailingLine) {\n var ret = null;\n if (trailingLine === undefined) {\n if (commentLine === line - 1 && (alternateCommentMode || commentType === \"*\" || commentLineEmpty)) {\n ret = commentText;\n }\n } else {\n /* istanbul ignore else */\n if (commentLine < trailingLine) {\n peek();\n }\n if (commentLine === trailingLine && !commentLineEmpty && (alternateCommentMode || commentType === \"/\")) {\n ret = commentText;\n }\n }\n return ret;\n }\n\n return Object.defineProperty({\n next: next,\n peek: peek,\n push: push,\n skip: skip,\n cmnt: cmnt\n }, \"line\", {\n get: function() { return line; }\n });\n /* eslint-enable callback-return */\n}\n","\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(23);\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum = require(15),\n OneOf = require(25),\n Field = require(16),\n MapField = require(20),\n Service = require(33),\n Message = require(21),\n Reader = require(27),\n Writer = require(42),\n util = require(37),\n encoder = require(14),\n decoder = require(13),\n verifier = require(40),\n converter = require(12),\n wrappers = require(41);\n\n/**\n * Constructs a new reflected message type instance.\n * @classdesc Reflected message type.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Message name\n * @param {Object.} [options] Declared options\n */\nfunction Type(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Message fields.\n * @type {Object.}\n */\n this.fields = {}; // toJSON, marker\n\n /**\n * Oneofs declared within this namespace, if any.\n * @type {Object.}\n */\n this.oneofs = undefined; // toJSON\n\n /**\n * Extension ranges, if any.\n * @type {number[][]}\n */\n this.extensions = undefined; // toJSON\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n /*?\n * Whether this type is a legacy group.\n * @type {boolean|undefined}\n */\n this.group = undefined; // toJSON\n\n /**\n * Cached fields by id.\n * @type {Object.|null}\n * @private\n */\n this._fieldsById = null;\n\n /**\n * Cached fields as an array.\n * @type {Field[]|null}\n * @private\n */\n this._fieldsArray = null;\n\n /**\n * Cached oneofs as an array.\n * @type {OneOf[]|null}\n * @private\n */\n this._oneofsArray = null;\n\n /**\n * Cached constructor.\n * @type {Constructor<{}>}\n * @private\n */\n this._ctor = null;\n}\n\nObject.defineProperties(Type.prototype, {\n\n /**\n * Message fields by id.\n * @name Type#fieldsById\n * @type {Object.}\n * @readonly\n */\n fieldsById: {\n get: function() {\n\n /* istanbul ignore if */\n if (this._fieldsById)\n return this._fieldsById;\n\n this._fieldsById = {};\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\n var field = this.fields[names[i]],\n id = field.id;\n\n /* istanbul ignore if */\n if (this._fieldsById[id])\n throw Error(\"duplicate id \" + id + \" in \" + this);\n\n this._fieldsById[id] = field;\n }\n return this._fieldsById;\n }\n },\n\n /**\n * Fields of this message as an array for iteration.\n * @name Type#fieldsArray\n * @type {Field[]}\n * @readonly\n */\n fieldsArray: {\n get: function() {\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\n }\n },\n\n /**\n * Oneofs of this message as an array for iteration.\n * @name Type#oneofsArray\n * @type {OneOf[]}\n * @readonly\n */\n oneofsArray: {\n get: function() {\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\n }\n },\n\n /**\n * The registered constructor, if any registered, otherwise a generic constructor.\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\n * @name Type#ctor\n * @type {Constructor<{}>}\n */\n ctor: {\n get: function() {\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\n },\n set: function(ctor) {\n\n // Ensure proper prototype\n var prototype = ctor.prototype;\n if (!(prototype instanceof Message)) {\n (ctor.prototype = new Message()).constructor = ctor;\n util.merge(ctor.prototype, prototype);\n }\n\n // Classes and messages reference their reflected type\n ctor.$type = ctor.prototype.$type = this;\n\n // Mix in static methods\n util.merge(ctor, Message, true);\n\n this._ctor = ctor;\n\n // Messages have non-enumerable default values on their prototype\n var i = 0;\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\n this._fieldsArray[i].resolve(); // ensures a proper value\n\n // Messages have non-enumerable getters and setters for each virtual oneof field\n var ctorProperties = {};\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\n ctorProperties[this._oneofsArray[i].resolve().name] = {\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\n };\n if (i)\n Object.defineProperties(ctor.prototype, ctorProperties);\n }\n }\n});\n\n/**\n * Generates a constructor function for the specified type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nType.generateConstructor = function generateConstructor(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"p\"], mtype.name);\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\n if ((field = mtype._fieldsArray[i]).map) gen\n (\"this%s={}\", util.safeProp(field.name));\n else if (field.repeated) gen\n (\"this%s=[]\", util.safeProp(field.name));\n return gen\n (\"if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors\n * @property {Object.} fields Field descriptors\n * @property {number[][]} [extensions] Extension ranges\n * @property {number[][]} [reserved] Reserved ranges\n * @property {boolean} [group=false] Whether a legacy group or not\n */\n\n/**\n * Creates a message type from a message type descriptor.\n * @param {string} name Message name\n * @param {IType} json Message type descriptor\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json) {\n var type = new Type(name, json.options);\n type.extensions = json.extensions;\n type.reserved = json.reserved;\n var names = Object.keys(json.fields),\n i = 0;\n for (; i < names.length; ++i)\n type.add(\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\n ? MapField.fromJSON\n : Field.fromJSON )(names[i], json.fields[names[i]])\n );\n if (json.oneofs)\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\n if (json.nested)\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\n var nested = json.nested[names[i]];\n type.add( // most to least likely\n ( nested.id !== undefined\n ? Field.fromJSON\n : nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n if (json.extensions && json.extensions.length)\n type.extensions = json.extensions;\n if (json.reserved && json.reserved.length)\n type.reserved = json.reserved;\n if (json.group)\n type.group = true;\n if (json.comment)\n type.comment = json.comment;\n return type;\n};\n\n/**\n * Converts this message type to a message type descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IType} Message type descriptor\n */\nType.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"group\" , this.group || undefined,\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nType.prototype.resolveAll = function resolveAll() {\n var fields = this.fieldsArray, i = 0;\n while (i < fields.length)\n fields[i++].resolve();\n var oneofs = this.oneofsArray; i = 0;\n while (i < oneofs.length)\n oneofs[i++].resolve();\n return Namespace.prototype.resolveAll.call(this);\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n return this.fields[name]\n || this.oneofs && this.oneofs[name]\n || this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Adds a nested object to this type.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\n */\nType.prototype.add = function add(object) {\n\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Field && object.extend === undefined) {\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\n // The root object takes care of adding distinct sister-fields to the respective extended\n // type instead.\n\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\n if (this.isReservedId(object.id))\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\n if (this.isReservedName(object.name))\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n\n if (object.parent)\n object.parent.remove(object);\n this.fields[object.name] = object;\n object.message = this;\n object.onAdd(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n if (!this.oneofs)\n this.oneofs = {};\n this.oneofs[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * Removes a nested object from this type.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this type\n */\nType.prototype.remove = function remove(object) {\n if (object instanceof Field && object.extend === undefined) {\n // See Type#add for the reason why extension fields are excluded here.\n\n /* istanbul ignore if */\n if (!this.fields || this.fields[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.fields[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n\n /* istanbul ignore if */\n if (!this.oneofs || this.oneofs[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.oneofs[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message<{}>} Message instance\n */\nType.prototype.create = function create(properties) {\n return new this.ctor(properties);\n};\n\n/**\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\n * @returns {Type} `this`\n */\nType.prototype.setup = function setup() {\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\n // multiple times (V8, soft-deopt prototype-check).\n\n var fullName = this.fullName,\n types = [];\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\n types.push(this._fieldsArray[i].resolve().resolvedType);\n\n // Replace setup methods with type-specific generated functions\n this.encode = encoder(this)({\n Writer : Writer,\n types : types,\n util : util\n });\n this.decode = decoder(this)({\n Reader : Reader,\n types : types,\n util : util\n });\n this.verify = verifier(this)({\n types : types,\n util : util\n });\n this.fromObject = converter.fromObject(this)({\n types : types,\n util : util\n });\n this.toObject = converter.toObject(this)({\n types : types,\n util : util\n });\n\n // Inject custom wrappers for common types\n var wrapper = wrappers[fullName];\n if (wrapper) {\n var originalThis = Object.create(this);\n // if (wrapper.fromObject) {\n originalThis.fromObject = this.fromObject;\n this.fromObject = wrapper.fromObject.bind(originalThis);\n // }\n // if (wrapper.toObject) {\n originalThis.toObject = this.toObject;\n this.toObject = wrapper.toObject.bind(originalThis);\n // }\n }\n\n return this;\n};\n\n/**\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encode = function encode_setup(message, writer) {\n return this.setup().encode(message, writer); // overrides this method\n};\n\n/**\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\n};\n\n/**\n * Decodes a message of this type.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Length of the message, if known beforehand\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError<{}>} If required fields are missing\n */\nType.prototype.decode = function decode_setup(reader, length) {\n return this.setup().decode(reader, length); // overrides this method\n};\n\n/**\n * Decodes a message of this type preceeded by its byte length as a varint.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError} If required fields are missing\n */\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof Reader))\n reader = Reader.create(reader);\n return this.decode(reader, reader.uint32());\n};\n\n/**\n * Verifies that field values are valid and that required fields are present.\n * @param {Object.} message Plain object to verify\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message) {\n return this.setup().verify(message); // overrides this method\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object to convert\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object) {\n return this.setup().fromObject(object);\n};\n\n/**\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\n * @interface IConversionOptions\n * @property {Function} [longs] Long conversion type.\n * Valid values are `String` and `Number` (the global types).\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\n * @property {Function} [enums] Enum value conversion type.\n * Only valid value is `String` (the global type).\n * Defaults to copy the present value, which is the numeric id.\n * @property {Function} [bytes] Bytes value conversion type.\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\n */\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\nType.prototype.toObject = function toObject(message, options) {\n return this.setup().toObject(message, options);\n};\n\n/**\n * Decorator function as returned by {@link Type.d} (TypeScript).\n * @typedef TypeDecorator\n * @type {function}\n * @param {Constructor} target Target constructor\n * @returns {undefined}\n * @template T extends Message\n */\n\n/**\n * Type decorator (TypeScript).\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {TypeDecorator} Decorator function\n * @template T extends Message\n */\nType.d = function decorateType(typeName) {\n return function typeDecorator(target) {\n util.decorateType(target, typeName);\n };\n};\n","\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(37);\n\nvar s = [\n \"double\", // 0\n \"float\", // 1\n \"int32\", // 2\n \"uint32\", // 3\n \"sint32\", // 4\n \"fixed32\", // 5\n \"sfixed32\", // 6\n \"int64\", // 7\n \"uint64\", // 8\n \"sint64\", // 9\n \"fixed64\", // 10\n \"sfixed64\", // 11\n \"bool\", // 12\n \"string\", // 13\n \"bytes\" // 14\n];\n\nfunction bake(values, offset) {\n var i = 0, o = {};\n offset |= 0;\n while (i < values.length) o[s[i + offset]] = values[i++];\n return o;\n}\n\n/**\n * Basic type wire types.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n * @property {number} bytes=2 Ldelim wire type\n */\ntypes.basic = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2,\n /* bytes */ 2\n]);\n\n/**\n * Basic type defaults.\n * @type {Object.}\n * @const\n * @property {number} double=0 Double default\n * @property {number} float=0 Float default\n * @property {number} int32=0 Int32 default\n * @property {number} uint32=0 Uint32 default\n * @property {number} sint32=0 Sint32 default\n * @property {number} fixed32=0 Fixed32 default\n * @property {number} sfixed32=0 Sfixed32 default\n * @property {number} int64=0 Int64 default\n * @property {number} uint64=0 Uint64 default\n * @property {number} sint64=0 Sint32 default\n * @property {number} fixed64=0 Fixed64 default\n * @property {number} sfixed64=0 Sfixed64 default\n * @property {boolean} bool=false Bool default\n * @property {string} string=\"\" String default\n * @property {Array.} bytes=Array(0) Bytes default\n * @property {null} message=null Message default\n */\ntypes.defaults = bake([\n /* double */ 0,\n /* float */ 0,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 0,\n /* sfixed32 */ 0,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 0,\n /* sfixed64 */ 0,\n /* bool */ false,\n /* string */ \"\",\n /* bytes */ util.emptyArray,\n /* message */ null\n]);\n\n/**\n * Basic long type wire types.\n * @type {Object.}\n * @const\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n */\ntypes.long = bake([\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1\n], 7);\n\n/**\n * Allowed types for map keys with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n */\ntypes.mapKey = bake([\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2\n], 2);\n\n/**\n * Allowed types for packed repeated fields with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n */\ntypes.packed = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0\n]);\n","\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(39);\n\nvar roots = require(30);\n\nvar Type, // cyclic\n Enum;\n\nutil.codegen = require(3);\nutil.fetch = require(5);\nutil.path = require(8);\n\n/**\n * Node's fs module if available.\n * @type {Object.}\n */\nutil.fs = util.inquire(\"fs\");\n\n/**\n * Converts an object's values to an array.\n * @param {Object.} object Object to convert\n * @returns {Array.<*>} Converted array\n */\nutil.toArray = function toArray(object) {\n if (object) {\n var keys = Object.keys(object),\n array = new Array(keys.length),\n index = 0;\n while (index < keys.length)\n array[index] = object[keys[index++]];\n return array;\n }\n return [];\n};\n\n/**\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\n * @param {Array.<*>} array Array to convert\n * @returns {Object.} Converted object\n */\nutil.toObject = function toObject(array) {\n var object = {},\n index = 0;\n while (index < array.length) {\n var key = array[index++],\n val = array[index++];\n if (val !== undefined)\n object[key] = val;\n }\n return object;\n};\n\nvar safePropBackslashRe = /\\\\/g,\n safePropQuoteRe = /\"/g;\n\n/**\n * Tests whether the specified name is a reserved word in JS.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nutil.isReserved = function isReserved(name) {\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\n};\n\n/**\n * Returns a safe property accessor for the specified property name.\n * @param {string} prop Property name\n * @returns {string} Safe accessor\n */\nutil.safeProp = function safeProp(prop) {\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\n return \".\" + prop;\n};\n\n/**\n * Converts the first character of a string to upper case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.ucFirst = function ucFirst(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar camelCaseRe = /_([a-z])/g;\n\n/**\n * Converts a string to camel case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.camelCase = function camelCase(str) {\n return str.substring(0, 1)\n + str.substring(1)\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\n};\n\n/**\n * Compares reflected fields by id.\n * @param {Field} a First field\n * @param {Field} b Second field\n * @returns {number} Comparison value\n */\nutil.compareFieldsById = function compareFieldsById(a, b) {\n return a.id - b.id;\n};\n\n/**\n * Decorator helper for types (TypeScript).\n * @param {Constructor} ctor Constructor function\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {Type} Reflected type\n * @template T extends Message\n * @property {Root} root Decorators root\n */\nutil.decorateType = function decorateType(ctor, typeName) {\n\n /* istanbul ignore if */\n if (ctor.$type) {\n if (typeName && ctor.$type.name !== typeName) {\n util.decorateRoot.remove(ctor.$type);\n ctor.$type.name = typeName;\n util.decorateRoot.add(ctor.$type);\n }\n return ctor.$type;\n }\n\n /* istanbul ignore next */\n if (!Type)\n Type = require(35);\n\n var type = new Type(typeName || ctor.name);\n util.decorateRoot.add(type);\n type.ctor = ctor; // sets up .encode, .decode etc.\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\n return type;\n};\n\nvar decorateEnumIndex = 0;\n\n/**\n * Decorator helper for enums (TypeScript).\n * @param {Object} object Enum object\n * @returns {Enum} Reflected enum\n */\nutil.decorateEnum = function decorateEnum(object) {\n\n /* istanbul ignore if */\n if (object.$type)\n return object.$type;\n\n /* istanbul ignore next */\n if (!Enum)\n Enum = require(15);\n\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\n util.decorateRoot.add(enm);\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\n return enm;\n};\n\n/**\n * Decorator root (TypeScript).\n * @name util.decorateRoot\n * @type {Root}\n * @readonly\n */\nObject.defineProperty(util, \"decorateRoot\", {\n get: function() {\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(29))());\n }\n});\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(39);\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(1);\n\n// converts to / from base64 encoded strings\nutil.base64 = require(2);\n\n// base class of rpc.Service\nutil.EventEmitter = require(4);\n\n// float handling accross browsers\nutil.float = require(6);\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(7);\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(10);\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(9);\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(38);\n\n// global object reference\nutil.global = typeof window !== \"undefined\" && window\n || typeof global !== \"undefined\" && global\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n * @const\n */\nutil.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node);\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: (new Error()).stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = verifier;\n\nvar Enum = require(15),\n util = require(37);\n\nfunction invalid(field, expected) {\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\n}\n\n/**\n * Generates a partial value verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\n /* eslint-disable no-unexpected-multiline */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref)\n (\"default:\")\n (\"return%j\", invalid(field, \"enum value\"));\n for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen\n (\"case %i:\", field.resolvedType.values[keys[j]]);\n gen\n (\"break\")\n (\"}\");\n } else {\n gen\n (\"{\")\n (\"var e=types[%i].verify(%s);\", fieldIndex, ref)\n (\"if(e)\")\n (\"return%j+e\", field.name + \".\")\n (\"}\");\n }\n } else {\n switch (field.type) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.isInteger(%s))\", ref)\n (\"return%j\", invalid(field, \"integer\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\n (\"return%j\", invalid(field, \"integer|Long\"));\n break;\n case \"float\":\n case \"double\": gen\n (\"if(typeof %s!==\\\"number\\\")\", ref)\n (\"return%j\", invalid(field, \"number\"));\n break;\n case \"bool\": gen\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\n (\"return%j\", invalid(field, \"boolean\"));\n break;\n case \"string\": gen\n (\"if(!util.isString(%s))\", ref)\n (\"return%j\", invalid(field, \"string\"));\n break;\n case \"bytes\": gen\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\n (\"return%j\", invalid(field, \"buffer\"));\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a partial key verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyKey(gen, field, ref) {\n /* eslint-disable no-unexpected-multiline */\n switch (field.keyType) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.key32Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"integer key\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.key64Re.test(%s))\", ref) // see comment above: x is ok, d is not\n (\"return%j\", invalid(field, \"integer|Long key\"));\n break;\n case \"bool\": gen\n (\"if(!util.key2Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"boolean key\"));\n break;\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a verifier specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction verifier(mtype) {\n /* eslint-disable no-unexpected-multiline */\n\n var gen = util.codegen([\"m\"], mtype.name + \"$verify\")\n (\"if(typeof m!==\\\"object\\\"||m===null)\")\n (\"return%j\", \"object expected\");\n var oneofs = mtype.oneofsArray,\n seenFirstField = {};\n if (oneofs.length) gen\n (\"var p={}\");\n\n for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n ref = \"m\" + util.safeProp(field.name);\n\n if (field.optional) gen\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name); // !== undefined && !== null\n\n // map fields\n if (field.map) { gen\n (\"if(!util.isObject(%s))\", ref)\n (\"return%j\", invalid(field, \"object\"))\n (\"var k=Object.keys(%s)\", ref)\n (\"for(var i=0;i}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(21);\n\n/**\n * From object converter part of an {@link IWrapper}.\n * @typedef WrapperFromObjectConverter\n * @type {function}\n * @param {Object.} object Plain object\n * @returns {Message<{}>} Message instance\n * @this Type\n */\n\n/**\n * To object converter part of an {@link IWrapper}.\n * @typedef WrapperToObjectConverter\n * @type {function}\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @this Type\n */\n\n/**\n * Common type wrapper part of {@link wrappers}.\n * @interface IWrapper\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\n * @property {WrapperToObjectConverter} [toObject] To object converter\n */\n\n// Custom wrapper for Any\nwrappers[\".google.protobuf.Any\"] = {\n\n fromObject: function(object) {\n\n // unwrap value type if mapped\n if (object && object[\"@type\"]) {\n var type = this.lookup(object[\"@type\"]);\n /* istanbul ignore else */\n if (type) {\n // type_url does not accept leading \".\"\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\n object[\"@type\"].substr(1) : object[\"@type\"];\n // type_url prefix is optional, but path seperator is required\n return this.create({\n type_url: \"/\" + type_url,\n value: type.encode(type.fromObject(object)).finish()\n });\n }\n }\n\n return this.fromObject(object);\n },\n\n toObject: function(message, options) {\n\n // decode value if requested and unmapped\n if (options && options.json && message.type_url && message.value) {\n // Only use fully qualified type name after the last '/'\n var name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type)\n message = type.decode(message.value);\n }\n\n // wrap value if unmapped\n if (!(message instanceof this.ctor) && message instanceof Message) {\n var object = message.$type.toObject(message, options);\n object[\"@type\"] = message.$type.fullName;\n return object;\n }\n\n return this.toObject(message, options);\n }\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(39);\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(42);\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(39);\n\nvar Buffer = util.Buffer;\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\nBufferWriter.alloc = function alloc_buffer(size) {\n return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size);\n};\n\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else\n buf.utf8Write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/ext/debug/README.md b/gateway/node_modules/@apollo/protobufjs/ext/debug/README.md deleted file mode 100644 index a48517e..0000000 --- a/gateway/node_modules/@apollo/protobufjs/ext/debug/README.md +++ /dev/null @@ -1,4 +0,0 @@ -protobufjs/ext/debug -========================= - -Experimental debugging extension. diff --git a/gateway/node_modules/@apollo/protobufjs/ext/debug/index.js b/gateway/node_modules/@apollo/protobufjs/ext/debug/index.js deleted file mode 100644 index 2b79766..0000000 --- a/gateway/node_modules/@apollo/protobufjs/ext/debug/index.js +++ /dev/null @@ -1,71 +0,0 @@ -"use strict"; -var protobuf = require("../.."); - -/** - * Debugging utility functions. Only present in debug builds. - * @namespace - */ -var debug = protobuf.debug = module.exports = {}; - -var codegen = protobuf.util.codegen; - -var debugFnRe = /function ([^(]+)\(([^)]*)\) {/g; - -// Counts number of calls to any generated function -function codegen_debug() { - codegen_debug.supported = codegen.supported; - codegen_debug.verbose = codegen.verbose; - var gen = codegen.apply(null, Array.prototype.slice.call(arguments)); - gen.str = (function(str) { return function str_debug() { - return str.apply(null, Array.prototype.slice.call(arguments)).replace(debugFnRe, "function $1($2) {\n\t$1.calls=($1.calls|0)+1"); - };})(gen.str); - return gen; -} - -/** - * Returns a list of unused types within the specified root. - * @param {NamespaceBase} ns Namespace to search - * @returns {Type[]} Unused types - */ -debug.unusedTypes = function unusedTypes(ns) { - - /* istanbul ignore if */ - if (!(ns instanceof protobuf.Namespace)) - throw TypeError("ns must be a Namespace"); - - /* istanbul ignore if */ - if (!ns.nested) - return []; - - var unused = []; - for (var names = Object.keys(ns.nested), i = 0; i < names.length; ++i) { - var nested = ns.nested[names[i]]; - if (nested instanceof protobuf.Type) { - var calls = (nested.encode.calls|0) - + (nested.decode.calls|0) - + (nested.verify.calls|0) - + (nested.toObject.calls|0) - + (nested.fromObject.calls|0); - if (!calls) - unused.push(nested); - } else if (nested instanceof protobuf.Namespace) - Array.prototype.push.apply(unused, unusedTypes(nested)); - } - return unused; -}; - -/** - * Enables debugging extensions. - * @returns {undefined} - */ -debug.enable = function enable() { - protobuf.util.codegen = codegen_debug; -}; - -/** - * Disables debugging extensions. - * @returns {undefined} - */ -debug.disable = function disable() { - protobuf.util.codegen = codegen; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/ext/descriptor/README.md b/gateway/node_modules/@apollo/protobufjs/ext/descriptor/README.md deleted file mode 100644 index d95da83..0000000 --- a/gateway/node_modules/@apollo/protobufjs/ext/descriptor/README.md +++ /dev/null @@ -1,72 +0,0 @@ -protobufjs/ext/descriptor -========================= - -Experimental extension for interoperability with [descriptor.proto](https://github.com/google/protobuf/blob/master/src/google/protobuf/descriptor.proto) types. - -Usage ------ - -```js -var protobuf = require("@apollo/protobufjs"), // requires the full library - descriptor = require("@apollo/protobufjs/ext/descriptor"); - -var root = ...; - -// convert any existing root instance to the corresponding descriptor type -var descriptorMsg = root.toDescriptor("proto2"); -// ^ returns a FileDescriptorSet message, see table below - -// encode to a descriptor buffer -var buffer = descriptor.FileDescriptorSet.encode(descriptorMsg).finish(); - -// decode from a descriptor buffer -var decodedDescriptor = descriptor.FileDescriptorSet.decode(buffer); - -// convert any existing descriptor to a root instance -root = protobuf.Root.fromDescriptor(decodedDescriptor); -// ^ expects a FileDescriptorSet message or buffer, see table below - -// and start all over again -``` - -API ---- - -The extension adds `.fromDescriptor(descriptor[, syntax])` and `#toDescriptor([syntax])` methods to reflection objects and exports the `.google.protobuf` namespace of the internally used `Root` instance containing the following types present in descriptor.proto: - -| Descriptor type | protobuf.js type | Remarks -|-------------------------------|------------------|--------- -| **FileDescriptorSet** | Root | -| FileDescriptorProto | | dependencies are not supported -| FileOptions | | -| FileOptionsOptimizeMode | | -| SourceCodeInfo | | not supported -| SourceCodeInfoLocation | | -| GeneratedCodeInfo | | not supported -| GeneratedCodeInfoAnnotation | | -| **DescriptorProto** | Type | -| MessageOptions | | -| DescriptorProtoExtensionRange | | -| DescriptorProtoReservedRange | | -| **FieldDescriptorProto** | Field | -| FieldDescriptorProtoLabel | | -| FieldDescriptorProtoType | | -| FieldOptions | | -| FieldOptionsCType | | -| FieldOptionsJSType | | -| **OneofDescriptorProto** | OneOf | -| OneofOptions | | -| **EnumDescriptorProto** | Enum | -| EnumOptions | | -| EnumValueDescriptorProto | | -| EnumValueOptions | | not supported -| **ServiceDescriptorProto** | Service | -| ServiceOptions | | -| **MethodDescriptorProto** | Method | -| MethodOptions | | -| UninterpretedOption | | not supported -| UninterpretedOptionNamePart | | - -Note that not all features of descriptor.proto translate perfectly to a protobuf.js root instance. A root instance has only limited knowlege of packages or individual files for example, which is then compensated by guessing and generating fictional file names. - -When using TypeScript, the respective interface types can be used to reference specific message instances (i.e. `protobuf.Message`). diff --git a/gateway/node_modules/@apollo/protobufjs/ext/descriptor/index.d.ts b/gateway/node_modules/@apollo/protobufjs/ext/descriptor/index.d.ts deleted file mode 100644 index 3389833..0000000 --- a/gateway/node_modules/@apollo/protobufjs/ext/descriptor/index.d.ts +++ /dev/null @@ -1,193 +0,0 @@ -import * as Long from "long"; - -import * as $protobuf from "../.."; -export const FileDescriptorSet: $protobuf.Type; - -export const FileDescriptorProto: $protobuf.Type; - -export const DescriptorProto: $protobuf.Type & { - ExtensionRange: $protobuf.Type, - ReservedRange: $protobuf.Type -}; - -export const FieldDescriptorProto: $protobuf.Type & { - Label: $protobuf.Enum, - Type: $protobuf.Enum -}; - -export const OneofDescriptorProto: $protobuf.Type; - -export const EnumDescriptorProto: $protobuf.Type; - -export const ServiceDescriptorProto: $protobuf.Type; - -export const EnumValueDescriptorProto: $protobuf.Type; - -export const MethodDescriptorProto: $protobuf.Type; - -export const FileOptions: $protobuf.Type & { - OptimizeMode: $protobuf.Enum -}; - -export const MessageOptions: $protobuf.Type; - -export const FieldOptions: $protobuf.Type & { - CType: $protobuf.Enum, - JSType: $protobuf.Enum -}; - -export const OneofOptions: $protobuf.Type; - -export const EnumOptions: $protobuf.Type; - -export const EnumValueOptions: $protobuf.Type; - -export const ServiceOptions: $protobuf.Type; - -export const MethodOptions: $protobuf.Type; - -export const UninterpretedOption: $protobuf.Type & { - NamePart: $protobuf.Type -}; - -export const SourceCodeInfo: $protobuf.Type & { - Location: $protobuf.Type -}; - -export const GeneratedCodeInfo: $protobuf.Type & { - Annotation: $protobuf.Type -}; - -export interface IFileDescriptorSet { - file: IFileDescriptorProto[]; -} - -export interface IFileDescriptorProto { - name?: string; - package?: string; - dependency?: any; - publicDependency?: any; - weakDependency?: any; - messageType?: IDescriptorProto[]; - enumType?: IEnumDescriptorProto[]; - service?: IServiceDescriptorProto[]; - extension?: IFieldDescriptorProto[]; - options?: IFileOptions; - sourceCodeInfo?: any; - syntax?: string; -} - -export interface IFileOptions { - javaPackage?: string; - javaOuterClassname?: string; - javaMultipleFiles?: boolean; - javaGenerateEqualsAndHash?: boolean; - javaStringCheckUtf8?: boolean; - optimizeFor?: IFileOptionsOptimizeMode; - goPackage?: string; - ccGenericServices?: boolean; - javaGenericServices?: boolean; - pyGenericServices?: boolean; - deprecated?: boolean; - ccEnableArenas?: boolean; - objcClassPrefix?: string; - csharpNamespace?: string; -} - -type IFileOptionsOptimizeMode = number; - -export interface IDescriptorProto { - name?: string; - field?: IFieldDescriptorProto[]; - extension?: IFieldDescriptorProto[]; - nestedType?: IDescriptorProto[]; - enumType?: IEnumDescriptorProto[]; - extensionRange?: IDescriptorProtoExtensionRange[]; - oneofDecl?: IOneofDescriptorProto[]; - options?: IMessageOptions; - reservedRange?: IDescriptorProtoReservedRange[]; - reservedName?: string[]; -} - -export interface IMessageOptions { - mapEntry?: boolean; -} - -export interface IDescriptorProtoExtensionRange { - start?: number; - end?: number; -} - -export interface IDescriptorProtoReservedRange { - start?: number; - end?: number; -} - -export interface IFieldDescriptorProto { - name?: string; - number?: number; - label?: IFieldDescriptorProtoLabel; - type?: IFieldDescriptorProtoType; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: any; - options?: IFieldOptions; -} - -type IFieldDescriptorProtoLabel = number; - -type IFieldDescriptorProtoType = number; - -export interface IFieldOptions { - packed?: boolean; - jstype?: IFieldOptionsJSType; -} - -type IFieldOptionsJSType = number; - -export interface IEnumDescriptorProto { - name?: string; - value?: IEnumValueDescriptorProto[]; - options?: IEnumOptions; -} - -export interface IEnumValueDescriptorProto { - name?: string; - number?: number; - options?: any; -} - -export interface IEnumOptions { - allowAlias?: boolean; - deprecated?: boolean; -} - -export interface IOneofDescriptorProto { - name?: string; - options?: any; -} - -export interface IServiceDescriptorProto { - name?: string; - method?: IMethodDescriptorProto[]; - options?: IServiceOptions; -} - -export interface IServiceOptions { - deprecated?: boolean; -} - -export interface IMethodDescriptorProto { - name?: string; - inputType?: string; - outputType?: string; - options?: IMethodOptions; - clientStreaming?: boolean; - serverStreaming?: boolean; -} - -export interface IMethodOptions { - deprecated?: boolean; -} diff --git a/gateway/node_modules/@apollo/protobufjs/ext/descriptor/index.js b/gateway/node_modules/@apollo/protobufjs/ext/descriptor/index.js deleted file mode 100644 index 6aafd2a..0000000 --- a/gateway/node_modules/@apollo/protobufjs/ext/descriptor/index.js +++ /dev/null @@ -1,1052 +0,0 @@ -"use strict"; -var $protobuf = require("../.."); -module.exports = exports = $protobuf.descriptor = $protobuf.Root.fromJSON(require("../../google/protobuf/descriptor.json")).lookup(".google.protobuf"); - -var Namespace = $protobuf.Namespace, - Root = $protobuf.Root, - Enum = $protobuf.Enum, - Type = $protobuf.Type, - Field = $protobuf.Field, - MapField = $protobuf.MapField, - OneOf = $protobuf.OneOf, - Service = $protobuf.Service, - Method = $protobuf.Method; - -// --- Root --- - -/** - * Properties of a FileDescriptorSet message. - * @interface IFileDescriptorSet - * @property {IFileDescriptorProto[]} file Files - */ - -/** - * Properties of a FileDescriptorProto message. - * @interface IFileDescriptorProto - * @property {string} [name] File name - * @property {string} [package] Package - * @property {*} [dependency] Not supported - * @property {*} [publicDependency] Not supported - * @property {*} [weakDependency] Not supported - * @property {IDescriptorProto[]} [messageType] Nested message types - * @property {IEnumDescriptorProto[]} [enumType] Nested enums - * @property {IServiceDescriptorProto[]} [service] Nested services - * @property {IFieldDescriptorProto[]} [extension] Nested extension fields - * @property {IFileOptions} [options] Options - * @property {*} [sourceCodeInfo] Not supported - * @property {string} [syntax="proto2"] Syntax - */ - -/** - * Properties of a FileOptions message. - * @interface IFileOptions - * @property {string} [javaPackage] - * @property {string} [javaOuterClassname] - * @property {boolean} [javaMultipleFiles] - * @property {boolean} [javaGenerateEqualsAndHash] - * @property {boolean} [javaStringCheckUtf8] - * @property {IFileOptionsOptimizeMode} [optimizeFor=1] - * @property {string} [goPackage] - * @property {boolean} [ccGenericServices] - * @property {boolean} [javaGenericServices] - * @property {boolean} [pyGenericServices] - * @property {boolean} [deprecated] - * @property {boolean} [ccEnableArenas] - * @property {string} [objcClassPrefix] - * @property {string} [csharpNamespace] - */ - -/** - * Values of he FileOptions.OptimizeMode enum. - * @typedef IFileOptionsOptimizeMode - * @type {number} - * @property {number} SPEED=1 - * @property {number} CODE_SIZE=2 - * @property {number} LITE_RUNTIME=3 - */ - -/** - * Creates a root from a descriptor set. - * @param {IFileDescriptorSet|Reader|Uint8Array} descriptor Descriptor - * @returns {Root} Root instance - */ -Root.fromDescriptor = function fromDescriptor(descriptor) { - - // Decode the descriptor message if specified as a buffer: - if (typeof descriptor.length === "number") - descriptor = exports.FileDescriptorSet.decode(descriptor); - - var root = new Root(); - - if (descriptor.file) { - var fileDescriptor, - filePackage; - for (var j = 0, i; j < descriptor.file.length; ++j) { - filePackage = root; - if ((fileDescriptor = descriptor.file[j])["package"] && fileDescriptor["package"].length) - filePackage = root.define(fileDescriptor["package"]); - if (fileDescriptor.name && fileDescriptor.name.length) - root.files.push(filePackage.filename = fileDescriptor.name); - if (fileDescriptor.messageType) - for (i = 0; i < fileDescriptor.messageType.length; ++i) - filePackage.add(Type.fromDescriptor(fileDescriptor.messageType[i], fileDescriptor.syntax)); - if (fileDescriptor.enumType) - for (i = 0; i < fileDescriptor.enumType.length; ++i) - filePackage.add(Enum.fromDescriptor(fileDescriptor.enumType[i])); - if (fileDescriptor.extension) - for (i = 0; i < fileDescriptor.extension.length; ++i) - filePackage.add(Field.fromDescriptor(fileDescriptor.extension[i])); - if (fileDescriptor.service) - for (i = 0; i < fileDescriptor.service.length; ++i) - filePackage.add(Service.fromDescriptor(fileDescriptor.service[i])); - var opts = fromDescriptorOptions(fileDescriptor.options, exports.FileOptions); - if (opts) { - var ks = Object.keys(opts); - for (i = 0; i < ks.length; ++i) - filePackage.setOption(ks[i], opts[ks[i]]); - } - } - } - - return root; -}; - -/** - * Converts a root to a descriptor set. - * @returns {Message} Descriptor - * @param {string} [syntax="proto2"] Syntax - */ -Root.prototype.toDescriptor = function toDescriptor(syntax) { - var set = exports.FileDescriptorSet.create(); - Root_toDescriptorRecursive(this, set.file, syntax); - return set; -}; - -// Traverses a namespace and assembles the descriptor set -function Root_toDescriptorRecursive(ns, files, syntax) { - - // Create a new file - var file = exports.FileDescriptorProto.create({ name: ns.filename || (ns.fullName.substring(1).replace(/\./g, "_") || "root") + ".proto" }); - if (syntax) - file.syntax = syntax; - if (!(ns instanceof Root)) - file["package"] = ns.fullName.substring(1); - - // Add nested types - for (var i = 0, nested; i < ns.nestedArray.length; ++i) - if ((nested = ns._nestedArray[i]) instanceof Type) - file.messageType.push(nested.toDescriptor(syntax)); - else if (nested instanceof Enum) - file.enumType.push(nested.toDescriptor()); - else if (nested instanceof Field) - file.extension.push(nested.toDescriptor(syntax)); - else if (nested instanceof Service) - file.service.push(nested.toDescriptor()); - else if (nested instanceof /* plain */ Namespace) - Root_toDescriptorRecursive(nested, files, syntax); // requires new file - - // Keep package-level options - file.options = toDescriptorOptions(ns.options, exports.FileOptions); - - // And keep the file only if there is at least one nested object - if (file.messageType.length + file.enumType.length + file.extension.length + file.service.length) - files.push(file); -} - -// --- Type --- - -/** - * Properties of a DescriptorProto message. - * @interface IDescriptorProto - * @property {string} [name] Message type name - * @property {IFieldDescriptorProto[]} [field] Fields - * @property {IFieldDescriptorProto[]} [extension] Extension fields - * @property {IDescriptorProto[]} [nestedType] Nested message types - * @property {IEnumDescriptorProto[]} [enumType] Nested enums - * @property {IDescriptorProtoExtensionRange[]} [extensionRange] Extension ranges - * @property {IOneofDescriptorProto[]} [oneofDecl] Oneofs - * @property {IMessageOptions} [options] Not supported - * @property {IDescriptorProtoReservedRange[]} [reservedRange] Reserved ranges - * @property {string[]} [reservedName] Reserved names - */ - -/** - * Properties of a MessageOptions message. - * @interface IMessageOptions - * @property {boolean} [mapEntry=false] Whether this message is a map entry - */ - -/** - * Properties of an ExtensionRange message. - * @interface IDescriptorProtoExtensionRange - * @property {number} [start] Start field id - * @property {number} [end] End field id - */ - -/** - * Properties of a ReservedRange message. - * @interface IDescriptorProtoReservedRange - * @property {number} [start] Start field id - * @property {number} [end] End field id - */ - -var unnamedMessageIndex = 0; - -/** - * Creates a type from a descriptor. - * @param {IDescriptorProto|Reader|Uint8Array} descriptor Descriptor - * @param {string} [syntax="proto2"] Syntax - * @returns {Type} Type instance - */ -Type.fromDescriptor = function fromDescriptor(descriptor, syntax) { - - // Decode the descriptor message if specified as a buffer: - if (typeof descriptor.length === "number") - descriptor = exports.DescriptorProto.decode(descriptor); - - // Create the message type - var type = new Type(descriptor.name.length ? descriptor.name : "Type" + unnamedMessageIndex++, fromDescriptorOptions(descriptor.options, exports.MessageOptions)), - i; - - /* Oneofs */ if (descriptor.oneofDecl) - for (i = 0; i < descriptor.oneofDecl.length; ++i) - type.add(OneOf.fromDescriptor(descriptor.oneofDecl[i])); - /* Fields */ if (descriptor.field) - for (i = 0; i < descriptor.field.length; ++i) { - var field = Field.fromDescriptor(descriptor.field[i], syntax); - type.add(field); - if (descriptor.field[i].hasOwnProperty("oneofIndex")) // eslint-disable-line no-prototype-builtins - type.oneofsArray[descriptor.field[i].oneofIndex].add(field); - } - /* Extension fields */ if (descriptor.extension) - for (i = 0; i < descriptor.extension.length; ++i) - type.add(Field.fromDescriptor(descriptor.extension[i], syntax)); - /* Nested types */ if (descriptor.nestedType) - for (i = 0; i < descriptor.nestedType.length; ++i) { - type.add(Type.fromDescriptor(descriptor.nestedType[i], syntax)); - if (descriptor.nestedType[i].options && descriptor.nestedType[i].options.mapEntry) - type.setOption("map_entry", true); - } - /* Nested enums */ if (descriptor.enumType) - for (i = 0; i < descriptor.enumType.length; ++i) - type.add(Enum.fromDescriptor(descriptor.enumType[i])); - /* Extension ranges */ if (descriptor.extensionRange && descriptor.extensionRange.length) { - type.extensions = []; - for (i = 0; i < descriptor.extensionRange.length; ++i) - type.extensions.push([ descriptor.extensionRange[i].start, descriptor.extensionRange[i].end ]); - } - /* Reserved... */ if (descriptor.reservedRange && descriptor.reservedRange.length || descriptor.reservedName && descriptor.reservedName.length) { - type.reserved = []; - /* Ranges */ if (descriptor.reservedRange) - for (i = 0; i < descriptor.reservedRange.length; ++i) - type.reserved.push([ descriptor.reservedRange[i].start, descriptor.reservedRange[i].end ]); - /* Names */ if (descriptor.reservedName) - for (i = 0; i < descriptor.reservedName.length; ++i) - type.reserved.push(descriptor.reservedName[i]); - } - - return type; -}; - -/** - * Converts a type to a descriptor. - * @returns {Message} Descriptor - * @param {string} [syntax="proto2"] Syntax - */ -Type.prototype.toDescriptor = function toDescriptor(syntax) { - var descriptor = exports.DescriptorProto.create({ name: this.name }), - i; - - /* Fields */ for (i = 0; i < this.fieldsArray.length; ++i) { - var fieldDescriptor; - descriptor.field.push(fieldDescriptor = this._fieldsArray[i].toDescriptor(syntax)); - if (this._fieldsArray[i] instanceof MapField) { // map fields are repeated FieldNameEntry - var keyType = toDescriptorType(this._fieldsArray[i].keyType, this._fieldsArray[i].resolvedKeyType), - valueType = toDescriptorType(this._fieldsArray[i].type, this._fieldsArray[i].resolvedType), - valueTypeName = valueType === /* type */ 11 || valueType === /* enum */ 14 - ? this._fieldsArray[i].resolvedType && shortname(this.parent, this._fieldsArray[i].resolvedType) || this._fieldsArray[i].type - : undefined; - descriptor.nestedType.push(exports.DescriptorProto.create({ - name: fieldDescriptor.typeName, - field: [ - exports.FieldDescriptorProto.create({ name: "key", number: 1, label: 1, type: keyType }), // can't reference a type or enum - exports.FieldDescriptorProto.create({ name: "value", number: 2, label: 1, type: valueType, typeName: valueTypeName }) - ], - options: exports.MessageOptions.create({ mapEntry: true }) - })); - } - } - /* Oneofs */ for (i = 0; i < this.oneofsArray.length; ++i) - descriptor.oneofDecl.push(this._oneofsArray[i].toDescriptor()); - /* Nested... */ for (i = 0; i < this.nestedArray.length; ++i) { - /* Extension fields */ if (this._nestedArray[i] instanceof Field) - descriptor.field.push(this._nestedArray[i].toDescriptor(syntax)); - /* Types */ else if (this._nestedArray[i] instanceof Type) - descriptor.nestedType.push(this._nestedArray[i].toDescriptor(syntax)); - /* Enums */ else if (this._nestedArray[i] instanceof Enum) - descriptor.enumType.push(this._nestedArray[i].toDescriptor()); - // plain nested namespaces become packages instead in Root#toDescriptor - } - /* Extension ranges */ if (this.extensions) - for (i = 0; i < this.extensions.length; ++i) - descriptor.extensionRange.push(exports.DescriptorProto.ExtensionRange.create({ start: this.extensions[i][0], end: this.extensions[i][1] })); - /* Reserved... */ if (this.reserved) - for (i = 0; i < this.reserved.length; ++i) - /* Names */ if (typeof this.reserved[i] === "string") - descriptor.reservedName.push(this.reserved[i]); - /* Ranges */ else - descriptor.reservedRange.push(exports.DescriptorProto.ReservedRange.create({ start: this.reserved[i][0], end: this.reserved[i][1] })); - - descriptor.options = toDescriptorOptions(this.options, exports.MessageOptions); - - return descriptor; -}; - -// --- Field --- - -/** - * Properties of a FieldDescriptorProto message. - * @interface IFieldDescriptorProto - * @property {string} [name] Field name - * @property {number} [number] Field id - * @property {IFieldDescriptorProtoLabel} [label] Field rule - * @property {IFieldDescriptorProtoType} [type] Field basic type - * @property {string} [typeName] Field type name - * @property {string} [extendee] Extended type name - * @property {string} [defaultValue] Literal default value - * @property {number} [oneofIndex] Oneof index if part of a oneof - * @property {*} [jsonName] Not supported - * @property {IFieldOptions} [options] Field options - */ - -/** - * Values of the FieldDescriptorProto.Label enum. - * @typedef IFieldDescriptorProtoLabel - * @type {number} - * @property {number} LABEL_OPTIONAL=1 - * @property {number} LABEL_REQUIRED=2 - * @property {number} LABEL_REPEATED=3 - */ - -/** - * Values of the FieldDescriptorProto.Type enum. - * @typedef IFieldDescriptorProtoType - * @type {number} - * @property {number} TYPE_DOUBLE=1 - * @property {number} TYPE_FLOAT=2 - * @property {number} TYPE_INT64=3 - * @property {number} TYPE_UINT64=4 - * @property {number} TYPE_INT32=5 - * @property {number} TYPE_FIXED64=6 - * @property {number} TYPE_FIXED32=7 - * @property {number} TYPE_BOOL=8 - * @property {number} TYPE_STRING=9 - * @property {number} TYPE_GROUP=10 - * @property {number} TYPE_MESSAGE=11 - * @property {number} TYPE_BYTES=12 - * @property {number} TYPE_UINT32=13 - * @property {number} TYPE_ENUM=14 - * @property {number} TYPE_SFIXED32=15 - * @property {number} TYPE_SFIXED64=16 - * @property {number} TYPE_SINT32=17 - * @property {number} TYPE_SINT64=18 - */ - -/** - * Properties of a FieldOptions message. - * @interface IFieldOptions - * @property {boolean} [packed] Whether packed or not (defaults to `false` for proto2 and `true` for proto3) - * @property {IFieldOptionsJSType} [jstype] JavaScript value type (not used by protobuf.js) - */ - -/** - * Values of the FieldOptions.JSType enum. - * @typedef IFieldOptionsJSType - * @type {number} - * @property {number} JS_NORMAL=0 - * @property {number} JS_STRING=1 - * @property {number} JS_NUMBER=2 - */ - -// copied here from parse.js -var numberRe = /^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/; - -/** - * Creates a field from a descriptor. - * @param {IFieldDescriptorProto|Reader|Uint8Array} descriptor Descriptor - * @param {string} [syntax="proto2"] Syntax - * @returns {Field} Field instance - */ -Field.fromDescriptor = function fromDescriptor(descriptor, syntax) { - - // Decode the descriptor message if specified as a buffer: - if (typeof descriptor.length === "number") - descriptor = exports.DescriptorProto.decode(descriptor); - - if (typeof descriptor.number !== "number") - throw Error("missing field id"); - - // Rewire field type - var fieldType; - if (descriptor.typeName && descriptor.typeName.length) - fieldType = descriptor.typeName; - else - fieldType = fromDescriptorType(descriptor.type); - - // Rewire field rule - var fieldRule; - switch (descriptor.label) { - // 0 is reserved for errors - case 1: fieldRule = undefined; break; - case 2: fieldRule = "required"; break; - case 3: fieldRule = "repeated"; break; - default: throw Error("illegal label: " + descriptor.label); - } - - var extendee = descriptor.extendee; - if (descriptor.extendee !== undefined) { - extendee = extendee.length ? extendee : undefined; - } - var field = new Field( - descriptor.name.length ? descriptor.name : "field" + descriptor.number, - descriptor.number, - fieldType, - fieldRule, - extendee - ); - - field.options = fromDescriptorOptions(descriptor.options, exports.FieldOptions); - - if (descriptor.defaultValue && descriptor.defaultValue.length) { - var defaultValue = descriptor.defaultValue; - switch (defaultValue) { - case "true": case "TRUE": - defaultValue = true; - break; - case "false": case "FALSE": - defaultValue = false; - break; - default: - var match = numberRe.exec(defaultValue); - if (match) - defaultValue = parseInt(defaultValue); // eslint-disable-line radix - break; - } - field.setOption("default", defaultValue); - } - - if (packableDescriptorType(descriptor.type)) { - if (syntax === "proto3") { // defaults to packed=true (internal preset is packed=true) - if (descriptor.options && !descriptor.options.packed) - field.setOption("packed", false); - } else if (!(descriptor.options && descriptor.options.packed)) // defaults to packed=false - field.setOption("packed", false); - } - - return field; -}; - -/** - * Converts a field to a descriptor. - * @returns {Message} Descriptor - * @param {string} [syntax="proto2"] Syntax - */ -Field.prototype.toDescriptor = function toDescriptor(syntax) { - var descriptor = exports.FieldDescriptorProto.create({ name: this.name, number: this.id }); - - if (this.map) { - - descriptor.type = 11; // message - descriptor.typeName = $protobuf.util.ucFirst(this.name); // fieldName -> FieldNameEntry (built in Type#toDescriptor) - descriptor.label = 3; // repeated - - } else { - - // Rewire field type - switch (descriptor.type = toDescriptorType(this.type, this.resolve().resolvedType)) { - case 10: // group - case 11: // type - case 14: // enum - descriptor.typeName = this.resolvedType ? shortname(this.parent, this.resolvedType) : this.type; - break; - } - - // Rewire field rule - switch (this.rule) { - case "repeated": descriptor.label = 3; break; - case "required": descriptor.label = 2; break; - default: descriptor.label = 1; break; - } - - } - - // Handle extension field - descriptor.extendee = this.extensionField ? this.extensionField.parent.fullName : this.extend; - - // Handle part of oneof - if (this.partOf) - if ((descriptor.oneofIndex = this.parent.oneofsArray.indexOf(this.partOf)) < 0) - throw Error("missing oneof"); - - if (this.options) { - descriptor.options = toDescriptorOptions(this.options, exports.FieldOptions); - if (this.options["default"] != null) - descriptor.defaultValue = String(this.options["default"]); - } - - if (syntax === "proto3") { // defaults to packed=true - if (!this.packed) - (descriptor.options || (descriptor.options = exports.FieldOptions.create())).packed = false; - } else if (this.packed) // defaults to packed=false - (descriptor.options || (descriptor.options = exports.FieldOptions.create())).packed = true; - - return descriptor; -}; - -// --- Enum --- - -/** - * Properties of an EnumDescriptorProto message. - * @interface IEnumDescriptorProto - * @property {string} [name] Enum name - * @property {IEnumValueDescriptorProto[]} [value] Enum values - * @property {IEnumOptions} [options] Enum options - */ - -/** - * Properties of an EnumValueDescriptorProto message. - * @interface IEnumValueDescriptorProto - * @property {string} [name] Name - * @property {number} [number] Value - * @property {*} [options] Not supported - */ - -/** - * Properties of an EnumOptions message. - * @interface IEnumOptions - * @property {boolean} [allowAlias] Whether aliases are allowed - * @property {boolean} [deprecated] - */ - -var unnamedEnumIndex = 0; - -/** - * Creates an enum from a descriptor. - * @param {IEnumDescriptorProto|Reader|Uint8Array} descriptor Descriptor - * @returns {Enum} Enum instance - */ -Enum.fromDescriptor = function fromDescriptor(descriptor) { - - // Decode the descriptor message if specified as a buffer: - if (typeof descriptor.length === "number") - descriptor = exports.EnumDescriptorProto.decode(descriptor); - - // Construct values object - var values = {}; - if (descriptor.value) - for (var i = 0; i < descriptor.value.length; ++i) { - var name = descriptor.value[i].name, - value = descriptor.value[i].number || 0; - values[name && name.length ? name : "NAME" + value] = value; - } - - return new Enum( - descriptor.name && descriptor.name.length ? descriptor.name : "Enum" + unnamedEnumIndex++, - values, - fromDescriptorOptions(descriptor.options, exports.EnumOptions) - ); -}; - -/** - * Converts an enum to a descriptor. - * @returns {Message} Descriptor - */ -Enum.prototype.toDescriptor = function toDescriptor() { - - // Values - var values = []; - for (var i = 0, ks = Object.keys(this.values); i < ks.length; ++i) - values.push(exports.EnumValueDescriptorProto.create({ name: ks[i], number: this.values[ks[i]] })); - - return exports.EnumDescriptorProto.create({ - name: this.name, - value: values, - options: toDescriptorOptions(this.options, exports.EnumOptions) - }); -}; - -// --- OneOf --- - -/** - * Properties of a OneofDescriptorProto message. - * @interface IOneofDescriptorProto - * @property {string} [name] Oneof name - * @property {*} [options] Not supported - */ - -var unnamedOneofIndex = 0; - -/** - * Creates a oneof from a descriptor. - * @param {IOneofDescriptorProto|Reader|Uint8Array} descriptor Descriptor - * @returns {OneOf} OneOf instance - */ -OneOf.fromDescriptor = function fromDescriptor(descriptor) { - - // Decode the descriptor message if specified as a buffer: - if (typeof descriptor.length === "number") - descriptor = exports.OneofDescriptorProto.decode(descriptor); - - return new OneOf( - // unnamedOneOfIndex is global, not per type, because we have no ref to a type here - descriptor.name && descriptor.name.length ? descriptor.name : "oneof" + unnamedOneofIndex++ - // fromDescriptorOptions(descriptor.options, exports.OneofOptions) - only uninterpreted_option - ); -}; - -/** - * Converts a oneof to a descriptor. - * @returns {Message} Descriptor - */ -OneOf.prototype.toDescriptor = function toDescriptor() { - return exports.OneofDescriptorProto.create({ - name: this.name - // options: toDescriptorOptions(this.options, exports.OneofOptions) - only uninterpreted_option - }); -}; - -// --- Service --- - -/** - * Properties of a ServiceDescriptorProto message. - * @interface IServiceDescriptorProto - * @property {string} [name] Service name - * @property {IMethodDescriptorProto[]} [method] Methods - * @property {IServiceOptions} [options] Options - */ - -/** - * Properties of a ServiceOptions message. - * @interface IServiceOptions - * @property {boolean} [deprecated] - */ - -var unnamedServiceIndex = 0; - -/** - * Creates a service from a descriptor. - * @param {IServiceDescriptorProto|Reader|Uint8Array} descriptor Descriptor - * @returns {Service} Service instance - */ -Service.fromDescriptor = function fromDescriptor(descriptor) { - - // Decode the descriptor message if specified as a buffer: - if (typeof descriptor.length === "number") - descriptor = exports.ServiceDescriptorProto.decode(descriptor); - - var service = new Service(descriptor.name && descriptor.name.length ? descriptor.name : "Service" + unnamedServiceIndex++, fromDescriptorOptions(descriptor.options, exports.ServiceOptions)); - if (descriptor.method) - for (var i = 0; i < descriptor.method.length; ++i) - service.add(Method.fromDescriptor(descriptor.method[i])); - - return service; -}; - -/** - * Converts a service to a descriptor. - * @returns {Message} Descriptor - */ -Service.prototype.toDescriptor = function toDescriptor() { - - // Methods - var methods = []; - for (var i = 0; i < this.methodsArray.length; ++i) - methods.push(this._methodsArray[i].toDescriptor()); - - return exports.ServiceDescriptorProto.create({ - name: this.name, - method: methods, - options: toDescriptorOptions(this.options, exports.ServiceOptions) - }); -}; - -// --- Method --- - -/** - * Properties of a MethodDescriptorProto message. - * @interface IMethodDescriptorProto - * @property {string} [name] Method name - * @property {string} [inputType] Request type name - * @property {string} [outputType] Response type name - * @property {IMethodOptions} [options] Not supported - * @property {boolean} [clientStreaming=false] Whether requests are streamed - * @property {boolean} [serverStreaming=false] Whether responses are streamed - */ - -/** - * Properties of a MethodOptions message. - * @interface IMethodOptions - * @property {boolean} [deprecated] - */ - -var unnamedMethodIndex = 0; - -/** - * Creates a method from a descriptor. - * @param {IMethodDescriptorProto|Reader|Uint8Array} descriptor Descriptor - * @returns {Method} Reflected method instance - */ -Method.fromDescriptor = function fromDescriptor(descriptor) { - - // Decode the descriptor message if specified as a buffer: - if (typeof descriptor.length === "number") - descriptor = exports.MethodDescriptorProto.decode(descriptor); - - return new Method( - // unnamedMethodIndex is global, not per service, because we have no ref to a service here - descriptor.name && descriptor.name.length ? descriptor.name : "Method" + unnamedMethodIndex++, - "rpc", - descriptor.inputType, - descriptor.outputType, - Boolean(descriptor.clientStreaming), - Boolean(descriptor.serverStreaming), - fromDescriptorOptions(descriptor.options, exports.MethodOptions) - ); -}; - -/** - * Converts a method to a descriptor. - * @returns {Message} Descriptor - */ -Method.prototype.toDescriptor = function toDescriptor() { - return exports.MethodDescriptorProto.create({ - name: this.name, - inputType: this.resolvedRequestType ? this.resolvedRequestType.fullName : this.requestType, - outputType: this.resolvedResponseType ? this.resolvedResponseType.fullName : this.responseType, - clientStreaming: this.requestStream, - serverStreaming: this.responseStream, - options: toDescriptorOptions(this.options, exports.MethodOptions) - }); -}; - -// --- utility --- - -// Converts a descriptor type to a protobuf.js basic type -function fromDescriptorType(type) { - switch (type) { - // 0 is reserved for errors - case 1: return "double"; - case 2: return "float"; - case 3: return "int64"; - case 4: return "uint64"; - case 5: return "int32"; - case 6: return "fixed64"; - case 7: return "fixed32"; - case 8: return "bool"; - case 9: return "string"; - case 12: return "bytes"; - case 13: return "uint32"; - case 15: return "sfixed32"; - case 16: return "sfixed64"; - case 17: return "sint32"; - case 18: return "sint64"; - } - throw Error("illegal type: " + type); -} - -// Tests if a descriptor type is packable -function packableDescriptorType(type) { - switch (type) { - case 1: // double - case 2: // float - case 3: // int64 - case 4: // uint64 - case 5: // int32 - case 6: // fixed64 - case 7: // fixed32 - case 8: // bool - case 13: // uint32 - case 14: // enum (!) - case 15: // sfixed32 - case 16: // sfixed64 - case 17: // sint32 - case 18: // sint64 - return true; - } - return false; -} - -// Converts a protobuf.js basic type to a descriptor type -function toDescriptorType(type, resolvedType) { - switch (type) { - // 0 is reserved for errors - case "double": return 1; - case "float": return 2; - case "int64": return 3; - case "uint64": return 4; - case "int32": return 5; - case "fixed64": return 6; - case "fixed32": return 7; - case "bool": return 8; - case "string": return 9; - case "bytes": return 12; - case "uint32": return 13; - case "sfixed32": return 15; - case "sfixed64": return 16; - case "sint32": return 17; - case "sint64": return 18; - } - if (resolvedType instanceof Enum) - return 14; - if (resolvedType instanceof Type) - return resolvedType.group ? 10 : 11; - throw Error("illegal type: " + type); -} - -// Converts descriptor options to an options object -function fromDescriptorOptions(options, type) { - if (!options) - return undefined; - var out = []; - for (var i = 0, field, key, val; i < type.fieldsArray.length; ++i) - if ((key = (field = type._fieldsArray[i]).name) !== "uninterpretedOption") - if (options.hasOwnProperty(key)) { // eslint-disable-line no-prototype-builtins - val = options[key]; - if (field.resolvedType instanceof Enum && typeof val === "number" && field.resolvedType.valuesById[val] !== undefined) - val = field.resolvedType.valuesById[val]; - out.push(underScore(key), val); - } - return out.length ? $protobuf.util.toObject(out) : undefined; -} - -// Converts an options object to descriptor options -function toDescriptorOptions(options, type) { - if (!options) - return undefined; - var out = []; - for (var i = 0, ks = Object.keys(options), key, val; i < ks.length; ++i) { - val = options[key = ks[i]]; - if (key === "default") - continue; - var field = type.fields[key]; - if (!field && !(field = type.fields[key = $protobuf.util.camelCase(key)])) - continue; - out.push(key, val); - } - return out.length ? type.fromObject($protobuf.util.toObject(out)) : undefined; -} - -// Calculates the shortest relative path from `from` to `to`. -function shortname(from, to) { - var fromPath = from.fullName.split("."), - toPath = to.fullName.split("."), - i = 0, - j = 0, - k = toPath.length - 1; - if (!(from instanceof Root) && to instanceof Namespace) - while (i < fromPath.length && j < k && fromPath[i] === toPath[j]) { - var other = to.lookup(fromPath[i++], true); - if (other !== null && other !== to) - break; - ++j; - } - else - for (; i < fromPath.length && j < k && fromPath[i] === toPath[j]; ++i, ++j); - return toPath.slice(j).join("."); -} - -// copied here from cli/targets/proto.js -function underScore(str) { - return str.substring(0,1) - + str.substring(1) - .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return "_" + $1.toLowerCase(); }); -} - -// --- exports --- - -/** - * Reflected file descriptor set. - * @name FileDescriptorSet - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected file descriptor proto. - * @name FileDescriptorProto - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected descriptor proto. - * @name DescriptorProto - * @type {Type} - * @property {Type} ExtensionRange - * @property {Type} ReservedRange - * @const - * @tstype $protobuf.Type & { - * ExtensionRange: $protobuf.Type, - * ReservedRange: $protobuf.Type - * } - */ - -/** - * Reflected field descriptor proto. - * @name FieldDescriptorProto - * @type {Type} - * @property {Enum} Label - * @property {Enum} Type - * @const - * @tstype $protobuf.Type & { - * Label: $protobuf.Enum, - * Type: $protobuf.Enum - * } - */ - -/** - * Reflected oneof descriptor proto. - * @name OneofDescriptorProto - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected enum descriptor proto. - * @name EnumDescriptorProto - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected service descriptor proto. - * @name ServiceDescriptorProto - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected enum value descriptor proto. - * @name EnumValueDescriptorProto - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected method descriptor proto. - * @name MethodDescriptorProto - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected file options. - * @name FileOptions - * @type {Type} - * @property {Enum} OptimizeMode - * @const - * @tstype $protobuf.Type & { - * OptimizeMode: $protobuf.Enum - * } - */ - -/** - * Reflected message options. - * @name MessageOptions - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected field options. - * @name FieldOptions - * @type {Type} - * @property {Enum} CType - * @property {Enum} JSType - * @const - * @tstype $protobuf.Type & { - * CType: $protobuf.Enum, - * JSType: $protobuf.Enum - * } - */ - -/** - * Reflected oneof options. - * @name OneofOptions - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected enum options. - * @name EnumOptions - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected enum value options. - * @name EnumValueOptions - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected service options. - * @name ServiceOptions - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected method options. - * @name MethodOptions - * @type {Type} - * @const - * @tstype $protobuf.Type - */ - -/** - * Reflected uninterpretet option. - * @name UninterpretedOption - * @type {Type} - * @property {Type} NamePart - * @const - * @tstype $protobuf.Type & { - * NamePart: $protobuf.Type - * } - */ - -/** - * Reflected source code info. - * @name SourceCodeInfo - * @type {Type} - * @property {Type} Location - * @const - * @tstype $protobuf.Type & { - * Location: $protobuf.Type - * } - */ - -/** - * Reflected generated code info. - * @name GeneratedCodeInfo - * @type {Type} - * @property {Type} Annotation - * @const - * @tstype $protobuf.Type & { - * Annotation: $protobuf.Type - * } - */ diff --git a/gateway/node_modules/@apollo/protobufjs/ext/descriptor/test.js b/gateway/node_modules/@apollo/protobufjs/ext/descriptor/test.js deleted file mode 100644 index ceb80f8..0000000 --- a/gateway/node_modules/@apollo/protobufjs/ext/descriptor/test.js +++ /dev/null @@ -1,54 +0,0 @@ -/*eslint-disable no-console*/ -"use strict"; -var protobuf = require("../../"), - descriptor = require("."); - -/* var proto = { - nested: { - Message: { - fields: { - foo: { - type: "string", - id: 1 - } - }, - nested: { - SubMessage: { - fields: {} - } - } - }, - Enum: { - values: { - ONE: 1, - TWO: 2 - } - } - } -}; */ - -// var root = protobuf.Root.fromJSON(proto).resolveAll(); -var root = protobuf.loadSync("tests/data/google/protobuf/descriptor.proto").resolveAll(); - -// console.log("Original proto", JSON.stringify(root, null, 2)); - -var msg = root.toDescriptor(); - -// console.log("\nDescriptor", JSON.stringify(msg.toObject(), null, 2)); - -var buf = descriptor.FileDescriptorSet.encode(msg).finish(); -var root2 = protobuf.Root.fromDescriptor(buf, "proto2").resolveAll(); - -// console.log("\nDecoded proto", JSON.stringify(root2, null, 2)); - -var diff = require("deep-diff").diff(root.toJSON(), root2.toJSON()); -if (diff) { - diff.forEach(function(diff) { - console.log(diff.kind + " @ " + diff.path.join(".")); - console.log("lhs:", typeof diff.lhs, diff.lhs); - console.log("rhs:", typeof diff.rhs, diff.rhs); - console.log(); - }); - process.exitCode = 1; -} else - console.log("no differences"); diff --git a/gateway/node_modules/@apollo/protobufjs/google/LICENSE b/gateway/node_modules/@apollo/protobufjs/google/LICENSE deleted file mode 100644 index 868bd40..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2014, Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gateway/node_modules/@apollo/protobufjs/google/README.md b/gateway/node_modules/@apollo/protobufjs/google/README.md deleted file mode 100644 index 09e3f23..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/README.md +++ /dev/null @@ -1 +0,0 @@ -This folder contains stripped and pre-parsed definitions of common Google types. These files are not used by protobuf.js directly but are here so you can use or include them where required. diff --git a/gateway/node_modules/@apollo/protobufjs/google/api/annotations.json b/gateway/node_modules/@apollo/protobufjs/google/api/annotations.json deleted file mode 100644 index 3f13a73..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/api/annotations.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "nested": { - "google": { - "nested": { - "api": { - "nested": { - "http": { - "type": "HttpRule", - "id": 72295728, - "extend": "google.protobuf.MethodOptions" - }, - "HttpRule": { - "oneofs": { - "pattern": { - "oneof": [ - "get", - "put", - "post", - "delete", - "patch", - "custom" - ] - } - }, - "fields": { - "get": { - "type": "string", - "id": 2 - }, - "put": { - "type": "string", - "id": 3 - }, - "post": { - "type": "string", - "id": 4 - }, - "delete": { - "type": "string", - "id": 5 - }, - "patch": { - "type": "string", - "id": 6 - }, - "custom": { - "type": "CustomHttpPattern", - "id": 8 - }, - "selector": { - "type": "string", - "id": 1 - }, - "body": { - "type": "string", - "id": 7 - }, - "additionalBindings": { - "rule": "repeated", - "type": "HttpRule", - "id": 11 - } - } - } - } - }, - "protobuf": { - "nested": { - "MethodOptions": { - "fields": {}, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - } - } - } - } - } - } -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/api/annotations.proto b/gateway/node_modules/@apollo/protobufjs/google/api/annotations.proto deleted file mode 100644 index 63a8eef..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/api/annotations.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - -package google.api; - -import "google/api/http.proto"; -import "google/protobuf/descriptor.proto"; - -extend google.protobuf.MethodOptions { - - HttpRule http = 72295728; -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/api/http.json b/gateway/node_modules/@apollo/protobufjs/google/api/http.json deleted file mode 100644 index e3a0f4f..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/api/http.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "nested": { - "google": { - "nested": { - "api": { - "nested": { - "Http": { - "fields": { - "rules": { - "rule": "repeated", - "type": "HttpRule", - "id": 1 - } - } - }, - "HttpRule": { - "oneofs": { - "pattern": { - "oneof": [ - "get", - "put", - "post", - "delete", - "patch", - "custom" - ] - } - }, - "fields": { - "get": { - "type": "string", - "id": 2 - }, - "put": { - "type": "string", - "id": 3 - }, - "post": { - "type": "string", - "id": 4 - }, - "delete": { - "type": "string", - "id": 5 - }, - "patch": { - "type": "string", - "id": 6 - }, - "custom": { - "type": "CustomHttpPattern", - "id": 8 - }, - "selector": { - "type": "string", - "id": 1 - }, - "body": { - "type": "string", - "id": 7 - }, - "additionalBindings": { - "rule": "repeated", - "type": "HttpRule", - "id": 11 - } - } - }, - "CustomHttpPattern": { - "fields": { - "kind": { - "type": "string", - "id": 1 - }, - "path": { - "type": "string", - "id": 2 - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/api/http.proto b/gateway/node_modules/@apollo/protobufjs/google/api/http.proto deleted file mode 100644 index e9a7e9d..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/api/http.proto +++ /dev/null @@ -1,31 +0,0 @@ -syntax = "proto3"; - -package google.api; - -message Http { - - repeated HttpRule rules = 1; -} - -message HttpRule { - - oneof pattern { - - string get = 2; - string put = 3; - string post = 4; - string delete = 5; - string patch = 6; - CustomHttpPattern custom = 8; - } - - string selector = 1; - string body = 7; - repeated HttpRule additional_bindings = 11; -} - -message CustomHttpPattern { - - string kind = 1; - string path = 2; -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/protobuf/api.json b/gateway/node_modules/@apollo/protobufjs/google/protobuf/api.json deleted file mode 100644 index 5460612..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/protobuf/api.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "nested": { - "google": { - "nested": { - "protobuf": { - "nested": { - "Api": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "methods": { - "rule": "repeated", - "type": "Method", - "id": 2 - }, - "options": { - "rule": "repeated", - "type": "Option", - "id": 3 - }, - "version": { - "type": "string", - "id": 4 - }, - "sourceContext": { - "type": "SourceContext", - "id": 5 - }, - "mixins": { - "rule": "repeated", - "type": "Mixin", - "id": 6 - }, - "syntax": { - "type": "Syntax", - "id": 7 - } - } - }, - "Method": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "requestTypeUrl": { - "type": "string", - "id": 2 - }, - "requestStreaming": { - "type": "bool", - "id": 3 - }, - "responseTypeUrl": { - "type": "string", - "id": 4 - }, - "responseStreaming": { - "type": "bool", - "id": 5 - }, - "options": { - "rule": "repeated", - "type": "Option", - "id": 6 - }, - "syntax": { - "type": "Syntax", - "id": 7 - } - } - }, - "Mixin": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "root": { - "type": "string", - "id": 2 - } - } - }, - "SourceContext": { - "fields": { - "fileName": { - "type": "string", - "id": 1 - } - } - }, - "Option": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "value": { - "type": "Any", - "id": 2 - } - } - }, - "Syntax": { - "values": { - "SYNTAX_PROTO2": 0, - "SYNTAX_PROTO3": 1 - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/protobuf/api.proto b/gateway/node_modules/@apollo/protobufjs/google/protobuf/api.proto deleted file mode 100644 index cf6ae3f..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/protobuf/api.proto +++ /dev/null @@ -1,34 +0,0 @@ -syntax = "proto3"; - -package google.protobuf; - -import "google/protobuf/source_context.proto"; -import "google/protobuf/type.proto"; - -message Api { - - string name = 1; - repeated Method methods = 2; - repeated Option options = 3; - string version = 4; - SourceContext source_context = 5; - repeated Mixin mixins = 6; - Syntax syntax = 7; -} - -message Method { - - string name = 1; - string request_type_url = 2; - bool request_streaming = 3; - string response_type_url = 4; - bool response_streaming = 5; - repeated Option options = 6; - Syntax syntax = 7; -} - -message Mixin { - - string name = 1; - string root = 2; -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/protobuf/descriptor.json b/gateway/node_modules/@apollo/protobufjs/google/protobuf/descriptor.json deleted file mode 100644 index f6c5c11..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/protobuf/descriptor.json +++ /dev/null @@ -1,739 +0,0 @@ -{ - "nested": { - "google": { - "nested": { - "protobuf": { - "nested": { - "FileDescriptorSet": { - "fields": { - "file": { - "rule": "repeated", - "type": "FileDescriptorProto", - "id": 1 - } - } - }, - "FileDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "package": { - "type": "string", - "id": 2 - }, - "dependency": { - "rule": "repeated", - "type": "string", - "id": 3 - }, - "publicDependency": { - "rule": "repeated", - "type": "int32", - "id": 10, - "options": { - "packed": false - } - }, - "weakDependency": { - "rule": "repeated", - "type": "int32", - "id": 11, - "options": { - "packed": false - } - }, - "messageType": { - "rule": "repeated", - "type": "DescriptorProto", - "id": 4 - }, - "enumType": { - "rule": "repeated", - "type": "EnumDescriptorProto", - "id": 5 - }, - "service": { - "rule": "repeated", - "type": "ServiceDescriptorProto", - "id": 6 - }, - "extension": { - "rule": "repeated", - "type": "FieldDescriptorProto", - "id": 7 - }, - "options": { - "type": "FileOptions", - "id": 8 - }, - "sourceCodeInfo": { - "type": "SourceCodeInfo", - "id": 9 - }, - "syntax": { - "type": "string", - "id": 12 - } - } - }, - "DescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "field": { - "rule": "repeated", - "type": "FieldDescriptorProto", - "id": 2 - }, - "extension": { - "rule": "repeated", - "type": "FieldDescriptorProto", - "id": 6 - }, - "nestedType": { - "rule": "repeated", - "type": "DescriptorProto", - "id": 3 - }, - "enumType": { - "rule": "repeated", - "type": "EnumDescriptorProto", - "id": 4 - }, - "extensionRange": { - "rule": "repeated", - "type": "ExtensionRange", - "id": 5 - }, - "oneofDecl": { - "rule": "repeated", - "type": "OneofDescriptorProto", - "id": 8 - }, - "options": { - "type": "MessageOptions", - "id": 7 - }, - "reservedRange": { - "rule": "repeated", - "type": "ReservedRange", - "id": 9 - }, - "reservedName": { - "rule": "repeated", - "type": "string", - "id": 10 - } - }, - "nested": { - "ExtensionRange": { - "fields": { - "start": { - "type": "int32", - "id": 1 - }, - "end": { - "type": "int32", - "id": 2 - } - } - }, - "ReservedRange": { - "fields": { - "start": { - "type": "int32", - "id": 1 - }, - "end": { - "type": "int32", - "id": 2 - } - } - } - } - }, - "FieldDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "number": { - "type": "int32", - "id": 3 - }, - "label": { - "type": "Label", - "id": 4 - }, - "type": { - "type": "Type", - "id": 5 - }, - "typeName": { - "type": "string", - "id": 6 - }, - "extendee": { - "type": "string", - "id": 2 - }, - "defaultValue": { - "type": "string", - "id": 7 - }, - "oneofIndex": { - "type": "int32", - "id": 9 - }, - "jsonName": { - "type": "string", - "id": 10 - }, - "options": { - "type": "FieldOptions", - "id": 8 - } - }, - "nested": { - "Type": { - "values": { - "TYPE_DOUBLE": 1, - "TYPE_FLOAT": 2, - "TYPE_INT64": 3, - "TYPE_UINT64": 4, - "TYPE_INT32": 5, - "TYPE_FIXED64": 6, - "TYPE_FIXED32": 7, - "TYPE_BOOL": 8, - "TYPE_STRING": 9, - "TYPE_GROUP": 10, - "TYPE_MESSAGE": 11, - "TYPE_BYTES": 12, - "TYPE_UINT32": 13, - "TYPE_ENUM": 14, - "TYPE_SFIXED32": 15, - "TYPE_SFIXED64": 16, - "TYPE_SINT32": 17, - "TYPE_SINT64": 18 - } - }, - "Label": { - "values": { - "LABEL_OPTIONAL": 1, - "LABEL_REQUIRED": 2, - "LABEL_REPEATED": 3 - } - } - } - }, - "OneofDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "options": { - "type": "OneofOptions", - "id": 2 - } - } - }, - "EnumDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "value": { - "rule": "repeated", - "type": "EnumValueDescriptorProto", - "id": 2 - }, - "options": { - "type": "EnumOptions", - "id": 3 - } - } - }, - "EnumValueDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "number": { - "type": "int32", - "id": 2 - }, - "options": { - "type": "EnumValueOptions", - "id": 3 - } - } - }, - "ServiceDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "method": { - "rule": "repeated", - "type": "MethodDescriptorProto", - "id": 2 - }, - "options": { - "type": "ServiceOptions", - "id": 3 - } - } - }, - "MethodDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "inputType": { - "type": "string", - "id": 2 - }, - "outputType": { - "type": "string", - "id": 3 - }, - "options": { - "type": "MethodOptions", - "id": 4 - }, - "clientStreaming": { - "type": "bool", - "id": 5 - }, - "serverStreaming": { - "type": "bool", - "id": 6 - } - } - }, - "FileOptions": { - "fields": { - "javaPackage": { - "type": "string", - "id": 1 - }, - "javaOuterClassname": { - "type": "string", - "id": 8 - }, - "javaMultipleFiles": { - "type": "bool", - "id": 10 - }, - "javaGenerateEqualsAndHash": { - "type": "bool", - "id": 20, - "options": { - "deprecated": true - } - }, - "javaStringCheckUtf8": { - "type": "bool", - "id": 27 - }, - "optimizeFor": { - "type": "OptimizeMode", - "id": 9, - "options": { - "default": "SPEED" - } - }, - "goPackage": { - "type": "string", - "id": 11 - }, - "ccGenericServices": { - "type": "bool", - "id": 16 - }, - "javaGenericServices": { - "type": "bool", - "id": 17 - }, - "pyGenericServices": { - "type": "bool", - "id": 18 - }, - "deprecated": { - "type": "bool", - "id": 23 - }, - "ccEnableArenas": { - "type": "bool", - "id": 31 - }, - "objcClassPrefix": { - "type": "string", - "id": 36 - }, - "csharpNamespace": { - "type": "string", - "id": 37 - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ], - "reserved": [ - [ - 38, - 38 - ] - ], - "nested": { - "OptimizeMode": { - "values": { - "SPEED": 1, - "CODE_SIZE": 2, - "LITE_RUNTIME": 3 - } - } - } - }, - "MessageOptions": { - "fields": { - "messageSetWireFormat": { - "type": "bool", - "id": 1 - }, - "noStandardDescriptorAccessor": { - "type": "bool", - "id": 2 - }, - "deprecated": { - "type": "bool", - "id": 3 - }, - "mapEntry": { - "type": "bool", - "id": 7 - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ], - "reserved": [ - [ - 8, - 8 - ] - ] - }, - "FieldOptions": { - "fields": { - "ctype": { - "type": "CType", - "id": 1, - "options": { - "default": "STRING" - } - }, - "packed": { - "type": "bool", - "id": 2 - }, - "jstype": { - "type": "JSType", - "id": 6, - "options": { - "default": "JS_NORMAL" - } - }, - "lazy": { - "type": "bool", - "id": 5 - }, - "deprecated": { - "type": "bool", - "id": 3 - }, - "weak": { - "type": "bool", - "id": 10 - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ], - "reserved": [ - [ - 4, - 4 - ] - ], - "nested": { - "CType": { - "values": { - "STRING": 0, - "CORD": 1, - "STRING_PIECE": 2 - } - }, - "JSType": { - "values": { - "JS_NORMAL": 0, - "JS_STRING": 1, - "JS_NUMBER": 2 - } - } - } - }, - "OneofOptions": { - "fields": { - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "EnumOptions": { - "fields": { - "allowAlias": { - "type": "bool", - "id": 2 - }, - "deprecated": { - "type": "bool", - "id": 3 - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "EnumValueOptions": { - "fields": { - "deprecated": { - "type": "bool", - "id": 1 - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "ServiceOptions": { - "fields": { - "deprecated": { - "type": "bool", - "id": 33 - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "MethodOptions": { - "fields": { - "deprecated": { - "type": "bool", - "id": 33 - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "UninterpretedOption": { - "fields": { - "name": { - "rule": "repeated", - "type": "NamePart", - "id": 2 - }, - "identifierValue": { - "type": "string", - "id": 3 - }, - "positiveIntValue": { - "type": "uint64", - "id": 4 - }, - "negativeIntValue": { - "type": "int64", - "id": 5 - }, - "doubleValue": { - "type": "double", - "id": 6 - }, - "stringValue": { - "type": "bytes", - "id": 7 - }, - "aggregateValue": { - "type": "string", - "id": 8 - } - }, - "nested": { - "NamePart": { - "fields": { - "namePart": { - "rule": "required", - "type": "string", - "id": 1 - }, - "isExtension": { - "rule": "required", - "type": "bool", - "id": 2 - } - } - } - } - }, - "SourceCodeInfo": { - "fields": { - "location": { - "rule": "repeated", - "type": "Location", - "id": 1 - } - }, - "nested": { - "Location": { - "fields": { - "path": { - "rule": "repeated", - "type": "int32", - "id": 1 - }, - "span": { - "rule": "repeated", - "type": "int32", - "id": 2 - }, - "leadingComments": { - "type": "string", - "id": 3 - }, - "trailingComments": { - "type": "string", - "id": 4 - }, - "leadingDetachedComments": { - "rule": "repeated", - "type": "string", - "id": 6 - } - } - } - } - }, - "GeneratedCodeInfo": { - "fields": { - "annotation": { - "rule": "repeated", - "type": "Annotation", - "id": 1 - } - }, - "nested": { - "Annotation": { - "fields": { - "path": { - "rule": "repeated", - "type": "int32", - "id": 1 - }, - "sourceFile": { - "type": "string", - "id": 2 - }, - "begin": { - "type": "int32", - "id": 3 - }, - "end": { - "type": "int32", - "id": 4 - } - } - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/protobuf/descriptor.proto b/gateway/node_modules/@apollo/protobufjs/google/protobuf/descriptor.proto deleted file mode 100644 index 3279492..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/protobuf/descriptor.proto +++ /dev/null @@ -1,286 +0,0 @@ -syntax = "proto2"; - -package google.protobuf; - -message FileDescriptorSet { - - repeated FileDescriptorProto file = 1; -} - -message FileDescriptorProto { - - optional string name = 1; - optional string package = 2; - repeated string dependency = 3; - repeated int32 public_dependency = 10; - repeated int32 weak_dependency = 11; - repeated DescriptorProto message_type = 4; - repeated EnumDescriptorProto enum_type = 5; - repeated ServiceDescriptorProto service = 6; - repeated FieldDescriptorProto extension = 7; - optional FileOptions options = 8; - optional SourceCodeInfo source_code_info = 9; - optional string syntax = 12; -} - -message DescriptorProto { - - optional string name = 1; - repeated FieldDescriptorProto field = 2; - repeated FieldDescriptorProto extension = 6; - repeated DescriptorProto nested_type = 3; - repeated EnumDescriptorProto enum_type = 4; - repeated ExtensionRange extension_range = 5; - repeated OneofDescriptorProto oneof_decl = 8; - optional MessageOptions options = 7; - repeated ReservedRange reserved_range = 9; - repeated string reserved_name = 10; - - message ExtensionRange { - - optional int32 start = 1; - optional int32 end = 2; - } - - message ReservedRange { - - optional int32 start = 1; - optional int32 end = 2; - } -} - -message FieldDescriptorProto { - - optional string name = 1; - optional int32 number = 3; - optional Label label = 4; - optional Type type = 5; - optional string type_name = 6; - optional string extendee = 2; - optional string default_value = 7; - optional int32 oneof_index = 9; - optional string json_name = 10; - optional FieldOptions options = 8; - - enum Type { - - TYPE_DOUBLE = 1; - TYPE_FLOAT = 2; - TYPE_INT64 = 3; - TYPE_UINT64 = 4; - TYPE_INT32 = 5; - TYPE_FIXED64 = 6; - TYPE_FIXED32 = 7; - TYPE_BOOL = 8; - TYPE_STRING = 9; - TYPE_GROUP = 10; - TYPE_MESSAGE = 11; - TYPE_BYTES = 12; - TYPE_UINT32 = 13; - TYPE_ENUM = 14; - TYPE_SFIXED32 = 15; - TYPE_SFIXED64 = 16; - TYPE_SINT32 = 17; - TYPE_SINT64 = 18; - } - - enum Label { - - LABEL_OPTIONAL = 1; - LABEL_REQUIRED = 2; - LABEL_REPEATED = 3; - } -} - -message OneofDescriptorProto { - - optional string name = 1; - optional OneofOptions options = 2; -} - -message EnumDescriptorProto { - - optional string name = 1; - repeated EnumValueDescriptorProto value = 2; - optional EnumOptions options = 3; -} - -message EnumValueDescriptorProto { - - optional string name = 1; - optional int32 number = 2; - optional EnumValueOptions options = 3; -} - -message ServiceDescriptorProto { - - optional string name = 1; - repeated MethodDescriptorProto method = 2; - optional ServiceOptions options = 3; -} - -message MethodDescriptorProto { - - optional string name = 1; - optional string input_type = 2; - optional string output_type = 3; - optional MethodOptions options = 4; - optional bool client_streaming = 5; - optional bool server_streaming = 6; -} - -message FileOptions { - - optional string java_package = 1; - optional string java_outer_classname = 8; - optional bool java_multiple_files = 10; - optional bool java_generate_equals_and_hash = 20 [deprecated=true]; - optional bool java_string_check_utf8 = 27; - optional OptimizeMode optimize_for = 9 [default=SPEED]; - optional string go_package = 11; - optional bool cc_generic_services = 16; - optional bool java_generic_services = 17; - optional bool py_generic_services = 18; - optional bool deprecated = 23; - optional bool cc_enable_arenas = 31; - optional string objc_class_prefix = 36; - optional string csharp_namespace = 37; - repeated UninterpretedOption uninterpreted_option = 999; - - enum OptimizeMode { - - SPEED = 1; - CODE_SIZE = 2; - LITE_RUNTIME = 3; - } - - extensions 1000 to max; - - reserved 38; -} - -message MessageOptions { - - optional bool message_set_wire_format = 1; - optional bool no_standard_descriptor_accessor = 2; - optional bool deprecated = 3; - optional bool map_entry = 7; - repeated UninterpretedOption uninterpreted_option = 999; - - extensions 1000 to max; - - reserved 8; -} - -message FieldOptions { - - optional CType ctype = 1 [default=STRING]; - optional bool packed = 2; - optional JSType jstype = 6 [default=JS_NORMAL]; - optional bool lazy = 5; - optional bool deprecated = 3; - optional bool weak = 10; - repeated UninterpretedOption uninterpreted_option = 999; - - enum CType { - - STRING = 0; - CORD = 1; - STRING_PIECE = 2; - } - - enum JSType { - - JS_NORMAL = 0; - JS_STRING = 1; - JS_NUMBER = 2; - } - - extensions 1000 to max; - - reserved 4; -} - -message OneofOptions { - - repeated UninterpretedOption uninterpreted_option = 999; - - extensions 1000 to max; -} - -message EnumOptions { - - optional bool allow_alias = 2; - optional bool deprecated = 3; - repeated UninterpretedOption uninterpreted_option = 999; - - extensions 1000 to max; -} - -message EnumValueOptions { - - optional bool deprecated = 1; - repeated UninterpretedOption uninterpreted_option = 999; - - extensions 1000 to max; -} - -message ServiceOptions { - - optional bool deprecated = 33; - repeated UninterpretedOption uninterpreted_option = 999; - - extensions 1000 to max; -} - -message MethodOptions { - - optional bool deprecated = 33; - repeated UninterpretedOption uninterpreted_option = 999; - - extensions 1000 to max; -} - -message UninterpretedOption { - - repeated NamePart name = 2; - optional string identifier_value = 3; - optional uint64 positive_int_value = 4; - optional int64 negative_int_value = 5; - optional double double_value = 6; - optional bytes string_value = 7; - optional string aggregate_value = 8; - - message NamePart { - - required string name_part = 1; - required bool is_extension = 2; - } -} - -message SourceCodeInfo { - - repeated Location location = 1; - - message Location { - - repeated int32 path = 1 [packed=true]; - repeated int32 span = 2 [packed=true]; - optional string leading_comments = 3; - optional string trailing_comments = 4; - repeated string leading_detached_comments = 6; - } -} - -message GeneratedCodeInfo { - - repeated Annotation annotation = 1; - - message Annotation { - - repeated int32 path = 1 [packed=true]; - optional string source_file = 2; - optional int32 begin = 3; - optional int32 end = 4; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/google/protobuf/source_context.json b/gateway/node_modules/@apollo/protobufjs/google/protobuf/source_context.json deleted file mode 100644 index 51adb63..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/protobuf/source_context.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "nested": { - "google": { - "nested": { - "protobuf": { - "nested": { - "SourceContext": { - "fields": { - "fileName": { - "type": "string", - "id": 1 - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/protobuf/source_context.proto b/gateway/node_modules/@apollo/protobufjs/google/protobuf/source_context.proto deleted file mode 100644 index 584d36c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/protobuf/source_context.proto +++ /dev/null @@ -1,7 +0,0 @@ -syntax = "proto3"; - -package google.protobuf; - -message SourceContext { - string file_name = 1; -} diff --git a/gateway/node_modules/@apollo/protobufjs/google/protobuf/type.json b/gateway/node_modules/@apollo/protobufjs/google/protobuf/type.json deleted file mode 100644 index fffa70d..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/protobuf/type.json +++ /dev/null @@ -1,202 +0,0 @@ -{ - "nested": { - "google": { - "nested": { - "protobuf": { - "nested": { - "Type": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "fields": { - "rule": "repeated", - "type": "Field", - "id": 2 - }, - "oneofs": { - "rule": "repeated", - "type": "string", - "id": 3 - }, - "options": { - "rule": "repeated", - "type": "Option", - "id": 4 - }, - "sourceContext": { - "type": "SourceContext", - "id": 5 - }, - "syntax": { - "type": "Syntax", - "id": 6 - } - } - }, - "Field": { - "fields": { - "kind": { - "type": "Kind", - "id": 1 - }, - "cardinality": { - "type": "Cardinality", - "id": 2 - }, - "number": { - "type": "int32", - "id": 3 - }, - "name": { - "type": "string", - "id": 4 - }, - "typeUrl": { - "type": "string", - "id": 6 - }, - "oneofIndex": { - "type": "int32", - "id": 7 - }, - "packed": { - "type": "bool", - "id": 8 - }, - "options": { - "rule": "repeated", - "type": "Option", - "id": 9 - }, - "jsonName": { - "type": "string", - "id": 10 - }, - "defaultValue": { - "type": "string", - "id": 11 - } - }, - "nested": { - "Kind": { - "values": { - "TYPE_UNKNOWN": 0, - "TYPE_DOUBLE": 1, - "TYPE_FLOAT": 2, - "TYPE_INT64": 3, - "TYPE_UINT64": 4, - "TYPE_INT32": 5, - "TYPE_FIXED64": 6, - "TYPE_FIXED32": 7, - "TYPE_BOOL": 8, - "TYPE_STRING": 9, - "TYPE_GROUP": 10, - "TYPE_MESSAGE": 11, - "TYPE_BYTES": 12, - "TYPE_UINT32": 13, - "TYPE_ENUM": 14, - "TYPE_SFIXED32": 15, - "TYPE_SFIXED64": 16, - "TYPE_SINT32": 17, - "TYPE_SINT64": 18 - } - }, - "Cardinality": { - "values": { - "CARDINALITY_UNKNOWN": 0, - "CARDINALITY_OPTIONAL": 1, - "CARDINALITY_REQUIRED": 2, - "CARDINALITY_REPEATED": 3 - } - } - } - }, - "Enum": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "enumvalue": { - "rule": "repeated", - "type": "EnumValue", - "id": 2 - }, - "options": { - "rule": "repeated", - "type": "Option", - "id": 3 - }, - "sourceContext": { - "type": "SourceContext", - "id": 4 - }, - "syntax": { - "type": "Syntax", - "id": 5 - } - } - }, - "EnumValue": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "number": { - "type": "int32", - "id": 2 - }, - "options": { - "rule": "repeated", - "type": "Option", - "id": 3 - } - } - }, - "Option": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "value": { - "type": "Any", - "id": 2 - } - } - }, - "Syntax": { - "values": { - "SYNTAX_PROTO2": 0, - "SYNTAX_PROTO3": 1 - } - }, - "Any": { - "fields": { - "type_url": { - "type": "string", - "id": 1 - }, - "value": { - "type": "bytes", - "id": 2 - } - } - }, - "SourceContext": { - "fields": { - "fileName": { - "type": "string", - "id": 1 - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/google/protobuf/type.proto b/gateway/node_modules/@apollo/protobufjs/google/protobuf/type.proto deleted file mode 100644 index 8ee445b..0000000 --- a/gateway/node_modules/@apollo/protobufjs/google/protobuf/type.proto +++ /dev/null @@ -1,89 +0,0 @@ -syntax = "proto3"; - -package google.protobuf; - -import "google/protobuf/any.proto"; -import "google/protobuf/source_context.proto"; - -message Type { - - string name = 1; - repeated Field fields = 2; - repeated string oneofs = 3; - repeated Option options = 4; - SourceContext source_context = 5; - Syntax syntax = 6; -} - -message Field { - - Kind kind = 1; - Cardinality cardinality = 2; - int32 number = 3; - string name = 4; - string type_url = 6; - int32 oneof_index = 7; - bool packed = 8; - repeated Option options = 9; - string json_name = 10; - string default_value = 11; - - enum Kind { - - TYPE_UNKNOWN = 0; - TYPE_DOUBLE = 1; - TYPE_FLOAT = 2; - TYPE_INT64 = 3; - TYPE_UINT64 = 4; - TYPE_INT32 = 5; - TYPE_FIXED64 = 6; - TYPE_FIXED32 = 7; - TYPE_BOOL = 8; - TYPE_STRING = 9; - TYPE_GROUP = 10; - TYPE_MESSAGE = 11; - TYPE_BYTES = 12; - TYPE_UINT32 = 13; - TYPE_ENUM = 14; - TYPE_SFIXED32 = 15; - TYPE_SFIXED64 = 16; - TYPE_SINT32 = 17; - TYPE_SINT64 = 18; - } - - enum Cardinality { - - CARDINALITY_UNKNOWN = 0; - CARDINALITY_OPTIONAL = 1; - CARDINALITY_REQUIRED = 2; - CARDINALITY_REPEATED = 3; - } -} - -message Enum { - - string name = 1; - repeated EnumValue enumvalue = 2; - repeated Option options = 3; - SourceContext source_context = 4; - Syntax syntax = 5; -} - -message EnumValue { - - string name = 1; - int32 number = 2; - repeated Option options = 3; -} - -message Option { - - string name = 1; - Any value = 2; -} - -enum Syntax { - - SYNTAX_PROTO2 = 0; - SYNTAX_PROTO3 = 1; -} diff --git a/gateway/node_modules/@apollo/protobufjs/index.d.ts b/gateway/node_modules/@apollo/protobufjs/index.d.ts deleted file mode 100644 index 17ac7a0..0000000 --- a/gateway/node_modules/@apollo/protobufjs/index.d.ts +++ /dev/null @@ -1,2685 +0,0 @@ -// DO NOT EDIT! This is a generated file. Edit the JSDoc in src/*.js instead and run 'npm run types'. - -import * as Long from "long"; - -export as namespace protobuf; - -/** - * Provides common type definitions. - * Can also be used to provide additional google types or your own custom types. - * @param name Short name as in `google/protobuf/[name].proto` or full file name - * @param json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition - */ -export function common(name: string, json: { [k: string]: any | undefined }): void; - -export namespace common { - - /** Properties of a google.protobuf.Any message. */ - interface IAny { - typeUrl?: string; - bytes?: Uint8Array; - } - - /** Properties of a google.protobuf.Duration message. */ - interface IDuration { - seconds?: (number|Long); - nanos?: number; - } - - /** Properties of a google.protobuf.Timestamp message. */ - interface ITimestamp { - seconds?: (number|Long); - nanos?: number; - } - - /** Properties of a google.protobuf.Empty message. */ - interface IEmpty { - } - - /** Properties of a google.protobuf.Struct message. */ - interface IStruct { - fields?: { [k: string]: IValue | undefined }; - } - - /** Properties of a google.protobuf.Value message. */ - interface IValue { - kind?: string; - nullValue?: 0; - numberValue?: number; - stringValue?: string; - boolValue?: boolean; - structValue?: IStruct; - listValue?: IListValue; - } - - /** Properties of a google.protobuf.ListValue message. */ - interface IListValue { - values?: IValue[]; - } - - /** Properties of a google.protobuf.DoubleValue message. */ - interface IDoubleValue { - value?: number; - } - - /** Properties of a google.protobuf.FloatValue message. */ - interface IFloatValue { - value?: number; - } - - /** Properties of a google.protobuf.Int64Value message. */ - interface IInt64Value { - value?: (number|Long); - } - - /** Properties of a google.protobuf.UInt64Value message. */ - interface IUInt64Value { - value?: (number|Long); - } - - /** Properties of a google.protobuf.Int32Value message. */ - interface IInt32Value { - value?: number; - } - - /** Properties of a google.protobuf.UInt32Value message. */ - interface IUInt32Value { - value?: number; - } - - /** Properties of a google.protobuf.BoolValue message. */ - interface IBoolValue { - value?: boolean; - } - - /** Properties of a google.protobuf.StringValue message. */ - interface IStringValue { - value?: string; - } - - /** Properties of a google.protobuf.BytesValue message. */ - interface IBytesValue { - value?: Uint8Array; - } - - /** - * Gets the root definition of the specified common proto file. - * - * Bundled definitions are: - * - google/protobuf/any.proto - * - google/protobuf/duration.proto - * - google/protobuf/empty.proto - * - google/protobuf/field_mask.proto - * - google/protobuf/struct.proto - * - google/protobuf/timestamp.proto - * - google/protobuf/wrappers.proto - * - * @param file Proto file name - * @returns Root definition or `null` if not defined - */ - function get(file: string): (INamespace|null); -} - -/** Runtime message from/to plain object converters. */ -export namespace converter { - - /** - * Generates a plain object to runtime message converter specific to the specified message type. - * @param mtype Message type - * @returns Codegen instance - */ - function fromObject(mtype: Type): Codegen; - - /** - * Generates a runtime message to plain object converter specific to the specified message type. - * @param mtype Message type - * @returns Codegen instance - */ - function toObject(mtype: Type): Codegen; -} - -/** - * Generates a decoder specific to the specified message type. - * @param mtype Message type - * @returns Codegen instance - */ -export function decoder(mtype: Type): Codegen; - -/** - * Generates an encoder specific to the specified message type. - * @param mtype Message type - * @returns Codegen instance - */ -export function encoder(mtype: Type): Codegen; - -/** Reflected enum. */ -export class Enum extends ReflectionObject { - - /** - * Constructs a new enum instance. - * @param name Unique name within its namespace - * @param [values] Enum values as an object, by name - * @param [options] Declared options - * @param [comment] The comment for this enum - * @param [comments] The value comments for this enum - */ - constructor(name: string, values?: { [k: string]: number | undefined }, options?: { [k: string]: any | undefined }, comment?: string, comments?: { [k: string]: string | undefined }); - - /** Enum values by id. */ - public valuesById: { [k: number]: string | undefined }; - - /** Enum values by name. */ - public values: { [k: string]: number | undefined }; - - /** Enum comment text. */ - public comment: (string|null); - - /** Value comment texts, if any. */ - public comments: { [k: string]: string | undefined }; - - /** Reserved ranges, if any. */ - public reserved: (number[]|string)[]; - - /** - * Constructs an enum from an enum descriptor. - * @param name Enum name - * @param json Enum descriptor - * @returns Created enum - * @throws {TypeError} If arguments are invalid - */ - public static fromJSON(name: string, json: IEnum): Enum; - - /** - * Converts this enum to an enum descriptor. - * @param [toJSONOptions] JSON conversion options - * @returns Enum descriptor - */ - public toJSON(toJSONOptions?: IToJSONOptions): IEnum; - - /** - * Adds a value to this enum. - * @param name Value name - * @param id Value id - * @param [comment] Comment, if any - * @returns `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a value with this name or id - */ - public add(name: string, id: number, comment?: string): Enum; - - /** - * Removes a value from this enum - * @param name Value name - * @returns `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `name` is not a name of this enum - */ - public remove(name: string): Enum; - - /** - * Tests if the specified id is reserved. - * @param id Id to test - * @returns `true` if reserved, otherwise `false` - */ - public isReservedId(id: number): boolean; - - /** - * Tests if the specified name is reserved. - * @param name Name to test - * @returns `true` if reserved, otherwise `false` - */ - public isReservedName(name: string): boolean; -} - -/** Enum descriptor. */ -export interface IEnum { - - /** Enum values */ - values: { [k: string]: number | undefined }; - - /** Enum options */ - options?: { [k: string]: any | undefined }; -} - -/** Reflected message field. */ -export class Field extends FieldBase { - - /** - * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class. - * @param name Unique name within its namespace - * @param id Unique id within its namespace - * @param type Value type - * @param [rule="optional"] Field rule - * @param [extend] Extended type if different from parent - * @param [options] Declared options - */ - constructor(name: string, id: number, type: string, rule?: (string|{ [k: string]: any | undefined }), extend?: (string|{ [k: string]: any | undefined }), options?: { [k: string]: any | undefined }); - - /** - * Constructs a field from a field descriptor. - * @param name Field name - * @param json Field descriptor - * @returns Created field - * @throws {TypeError} If arguments are invalid - */ - public static fromJSON(name: string, json: IField): Field; - - /** Determines whether this field is packed. Only relevant when repeated and working with proto2. */ - public readonly packed: boolean; - - /** - * Field decorator (TypeScript). - * @param fieldId Field id - * @param fieldType Field type - * @param [fieldRule="optional"] Field rule - * @param [defaultValue] Default value - * @returns Decorator function - */ - public static d(fieldId: number, fieldType: ("double"|"float"|"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"string"|"bool"|"bytes"|object), fieldRule?: ("optional"|"required"|"repeated"), defaultValue?: T): FieldDecorator; - - /** - * Field decorator (TypeScript). - * @param fieldId Field id - * @param fieldType Field type - * @param [fieldRule="optional"] Field rule - * @returns Decorator function - */ - public static d>(fieldId: number, fieldType: (Constructor|string), fieldRule?: ("optional"|"required"|"repeated")): FieldDecorator; -} - -/** Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions. */ -export class FieldBase extends ReflectionObject { - - /** - * Not an actual constructor. Use {@link Field} instead. - * @param name Unique name within its namespace - * @param id Unique id within its namespace - * @param type Value type - * @param [rule="optional"] Field rule - * @param [extend] Extended type if different from parent - * @param [options] Declared options - * @param [comment] Comment associated with this field - */ - constructor(name: string, id: number, type: string, rule?: (string|{ [k: string]: any | undefined }), extend?: (string|{ [k: string]: any | undefined }), options?: { [k: string]: any | undefined }, comment?: string); - - /** Field rule, if any. */ - public rule?: string; - - /** Field type. */ - public type: string; - - /** Unique field id. */ - public id: number; - - /** Extended type if different from parent. */ - public extend?: string; - - /** Whether this field is required. */ - public required: boolean; - - /** Whether this field is optional. */ - public optional: boolean; - - /** Whether this field is repeated. */ - public repeated: boolean; - - /** Whether this field is a map or not. */ - public map: boolean; - - /** Message this field belongs to. */ - public message: (Type|null); - - /** OneOf this field belongs to, if any, */ - public partOf: (OneOf|null); - - /** The field type's default value. */ - public typeDefault: any; - - /** The field's default value on prototypes. */ - public defaultValue: any; - - /** Whether this field's value should be treated as a long. */ - public long: boolean; - - /** Whether this field's value is a buffer. */ - public bytes: boolean; - - /** Resolved type if not a basic type. */ - public resolvedType: (Type|Enum|null); - - /** Sister-field within the extended type if a declaring extension field. */ - public extensionField: (Field|null); - - /** Sister-field within the declaring namespace if an extended field. */ - public declaringField: (Field|null); - - /** Comment for this field. */ - public comment: (string|null); - - /** - * Converts this field to a field descriptor. - * @param [toJSONOptions] JSON conversion options - * @returns Field descriptor - */ - public toJSON(toJSONOptions?: IToJSONOptions): IField; - - /** - * Resolves this field's type references. - * @returns `this` - * @throws {Error} If any reference cannot be resolved - */ - public resolve(): Field; -} - -/** Field descriptor. */ -export interface IField { - - /** Field rule */ - rule?: string; - - /** Field type */ - type: string; - - /** Field id */ - id: number; - - /** Field options */ - options?: { [k: string]: any | undefined }; -} - -/** Extension field descriptor. */ -export interface IExtensionField extends IField { - - /** Extended type */ - extend: string; -} - -/** - * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript). - * @param prototype Target prototype - * @param fieldName Field name - */ -type FieldDecorator = (prototype: object, fieldName: string) => void; - -/** - * A node-style callback as used by {@link load} and {@link Root#load}. - * @param error Error, if any, otherwise `null` - * @param [root] Root, if there hasn't been an error - */ -type LoadCallback = (error: (Error|null), root?: Root) => void; - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. - * @param filename One or multiple files to load - * @param root Root namespace, defaults to create a new one if omitted. - * @param callback Callback function - * @see {@link Root#load} - */ -export function load(filename: (string|string[]), root: Root, callback: LoadCallback): void; - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. - * @param filename One or multiple files to load - * @param callback Callback function - * @see {@link Root#load} - */ -export function load(filename: (string|string[]), callback: LoadCallback): void; - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise. - * @param filename One or multiple files to load - * @param [root] Root namespace, defaults to create a new one if omitted. - * @returns Promise - * @see {@link Root#load} - */ -export function load(filename: (string|string[]), root?: Root): Promise; - -/** - * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only). - * @param filename One or multiple files to load - * @param [root] Root namespace, defaults to create a new one if omitted. - * @returns Root namespace - * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid - * @see {@link Root#loadSync} - */ -export function loadSync(filename: (string|string[]), root?: Root): Root; - -/** Build type, one of `"full"`, `"light"` or `"minimal"`. */ -export const build: string; - -/** Reconfigures the library according to the environment. */ -export function configure(): void; - -/** Reflected map field. */ -export class MapField extends FieldBase { - - /** - * Constructs a new map field instance. - * @param name Unique name within its namespace - * @param id Unique id within its namespace - * @param keyType Key type - * @param type Value type - * @param [options] Declared options - * @param [comment] Comment associated with this field - */ - constructor(name: string, id: number, keyType: string, type: string, options?: { [k: string]: any | undefined }, comment?: string); - - /** Key type. */ - public keyType: string; - - /** Resolved key type if not a basic type. */ - public resolvedKeyType: (ReflectionObject|null); - - /** - * Constructs a map field from a map field descriptor. - * @param name Field name - * @param json Map field descriptor - * @returns Created map field - * @throws {TypeError} If arguments are invalid - */ - public static fromJSON(name: string, json: IMapField): MapField; - - /** - * Converts this map field to a map field descriptor. - * @param [toJSONOptions] JSON conversion options - * @returns Map field descriptor - */ - public toJSON(toJSONOptions?: IToJSONOptions): IMapField; - - /** - * Map field decorator (TypeScript). - * @param fieldId Field id - * @param fieldKeyType Field key type - * @param fieldValueType Field value type - * @returns Decorator function - */ - public static d }>(fieldId: number, fieldKeyType: ("int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"bool"|"string"), fieldValueType: ("double"|"float"|"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"bool"|"string"|"bytes"|object|Constructor<{}>)): FieldDecorator; -} - -/** Map field descriptor. */ -export interface IMapField extends IField { - - /** Key type */ - keyType: string; -} - -/** Extension map field descriptor. */ -export interface IExtensionMapField extends IMapField { - - /** Extended type */ - extend: string; -} - -/** Abstract runtime message. */ -export class Message { - - /** - * Constructs a new message instance. - * @param [properties] Properties to set - */ - constructor(properties?: Properties); - - /** Reference to the reflected type. */ - public static readonly $type: Type; - - /** Reference to the reflected type. */ - public readonly $type: Type; - - /** - * Creates a new message of this type using the specified properties. - * @param [properties] Properties to set - * @returns Message instance - */ - public static create>(this: Constructor, properties?: { [k: string]: any | undefined }): Message; - - /** - * Encodes a message of this type. - * @param message Message to encode - * @param [writer] Writer to use - * @returns Writer - */ - public static encode>(this: Constructor, message: (T|{ [k: string]: any | undefined }), writer?: Writer): Writer; - - /** - * Encodes a message of this type preceeded by its length as a varint. - * @param message Message to encode - * @param [writer] Writer to use - * @returns Writer - */ - public static encodeDelimited>(this: Constructor, message: (T|{ [k: string]: any | undefined }), writer?: Writer): Writer; - - /** - * Decodes a message of this type. - * @param reader Reader or buffer to decode - * @returns Decoded message - */ - public static decode>(this: Constructor, reader: (Reader|Uint8Array)): T; - - /** - * Decodes a message of this type preceeded by its length as a varint. - * @param reader Reader or buffer to decode - * @returns Decoded message - */ - public static decodeDelimited>(this: Constructor, reader: (Reader|Uint8Array)): T; - - /** - * Verifies a message of this type. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any | undefined }): (string|null); - - /** - * Creates a new message of this type from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Message instance - */ - public static fromObject>(this: Constructor, object: { [k: string]: any | undefined }): T; - - /** - * Creates a plain object from a message of this type. Also converts values to other types if specified. - * @param message Message instance - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject>(this: Constructor, message: T, options?: IConversionOptions): { [k: string]: any | undefined }; - - /** - * Converts this message to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any | undefined }; -} - -/** Reflected service method. */ -export class Method extends ReflectionObject { - - /** - * Constructs a new service method instance. - * @param name Method name - * @param type Method type, usually `"rpc"` - * @param requestType Request message type - * @param responseType Response message type - * @param [requestStream] Whether the request is streamed - * @param [responseStream] Whether the response is streamed - * @param [options] Declared options - * @param [comment] The comment for this method - */ - constructor(name: string, type: (string|undefined), requestType: string, responseType: string, requestStream?: (boolean|{ [k: string]: any | undefined }), responseStream?: (boolean|{ [k: string]: any | undefined }), options?: { [k: string]: any | undefined }, comment?: string); - - /** Method type. */ - public type: string; - - /** Request type. */ - public requestType: string; - - /** Whether requests are streamed or not. */ - public requestStream?: boolean; - - /** Response type. */ - public responseType: string; - - /** Whether responses are streamed or not. */ - public responseStream?: boolean; - - /** Resolved request type. */ - public resolvedRequestType: (Type|null); - - /** Resolved response type. */ - public resolvedResponseType: (Type|null); - - /** Comment for this method */ - public comment: (string|null); - - /** - * Constructs a method from a method descriptor. - * @param name Method name - * @param json Method descriptor - * @returns Created method - * @throws {TypeError} If arguments are invalid - */ - public static fromJSON(name: string, json: IMethod): Method; - - /** - * Converts this method to a method descriptor. - * @param [toJSONOptions] JSON conversion options - * @returns Method descriptor - */ - public toJSON(toJSONOptions?: IToJSONOptions): IMethod; -} - -/** Method descriptor. */ -export interface IMethod { - - /** Method type */ - type?: string; - - /** Request type */ - requestType: string; - - /** Response type */ - responseType: string; - - /** Whether requests are streamed */ - requestStream?: boolean; - - /** Whether responses are streamed */ - responseStream?: boolean; - - /** Method options */ - options?: { [k: string]: any | undefined }; -} - -/** Reflected namespace. */ -export class Namespace extends NamespaceBase { - - /** - * Constructs a new namespace instance. - * @param name Namespace name - * @param [options] Declared options - */ - constructor(name: string, options?: { [k: string]: any | undefined }); - - /** - * Constructs a namespace from JSON. - * @param name Namespace name - * @param json JSON object - * @returns Created namespace - * @throws {TypeError} If arguments are invalid - */ - public static fromJSON(name: string, json: { [k: string]: any | undefined }): Namespace; - - /** - * Converts an array of reflection objects to JSON. - * @param array Object array - * @param [toJSONOptions] JSON conversion options - * @returns JSON object or `undefined` when array is empty - */ - public static arrayToJSON(array: ReflectionObject[], toJSONOptions?: IToJSONOptions): ({ [k: string]: any | undefined }|undefined); - - /** - * Tests if the specified id is reserved. - * @param reserved Array of reserved ranges and names - * @param id Id to test - * @returns `true` if reserved, otherwise `false` - */ - public static isReservedId(reserved: ((number[]|string)[]|undefined), id: number): boolean; - - /** - * Tests if the specified name is reserved. - * @param reserved Array of reserved ranges and names - * @param name Name to test - * @returns `true` if reserved, otherwise `false` - */ - public static isReservedName(reserved: ((number[]|string)[]|undefined), name: string): boolean; -} - -/** Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions. */ -export abstract class NamespaceBase extends ReflectionObject { - - /** Nested objects by name. */ - public nested?: { [k: string]: ReflectionObject | undefined }; - - /** Nested objects of this namespace as an array for iteration. */ - public readonly nestedArray: ReflectionObject[]; - - /** - * Converts this namespace to a namespace descriptor. - * @param [toJSONOptions] JSON conversion options - * @returns Namespace descriptor - */ - public toJSON(toJSONOptions?: IToJSONOptions): INamespace; - - /** - * Adds nested objects to this namespace from nested object descriptors. - * @param nestedJson Any nested object descriptors - * @returns `this` - */ - public addJSON(nestedJson: { [k: string]: AnyNestedObject | undefined }): Namespace; - - /** - * Gets the nested object of the specified name. - * @param name Nested object name - * @returns The reflection object or `null` if it doesn't exist - */ - public get(name: string): (ReflectionObject|null); - - /** - * Gets the values of the nested {@link Enum|enum} of the specified name. - * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`. - * @param name Nested enum name - * @returns Enum values - * @throws {Error} If there is no such enum - */ - public getEnum(name: string): { [k: string]: number | undefined }; - - /** - * Adds a nested object to this namespace. - * @param object Nested object to add - * @returns `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a nested object with this name - */ - public add(object: ReflectionObject): Namespace; - - /** - * Removes a nested object from this namespace. - * @param object Nested object to remove - * @returns `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `object` is not a member of this namespace - */ - public remove(object: ReflectionObject): Namespace; - - /** - * Defines additial namespaces within this one if not yet existing. - * @param path Path to create - * @param [json] Nested types to create from JSON - * @returns Pointer to the last namespace created or `this` if path is empty - */ - public define(path: (string|string[]), json?: any): Namespace; - - /** - * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost. - * @returns `this` - */ - public resolveAll(): Namespace; - - /** - * Recursively looks up the reflection object matching the specified path in the scope of this namespace. - * @param path Path to look up - * @param filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc. - * @param [parentAlreadyChecked=false] If known, whether the parent has already been checked - * @returns Looked up object or `null` if none could be found - */ - public lookup(path: (string|string[]), filterTypes: (any|any[]), parentAlreadyChecked?: boolean): (ReflectionObject|null); - - /** - * Looks up the reflection object at the specified path, relative to this namespace. - * @param path Path to look up - * @param [parentAlreadyChecked=false] Whether the parent has already been checked - * @returns Looked up object or `null` if none could be found - */ - public lookup(path: (string|string[]), parentAlreadyChecked?: boolean): (ReflectionObject|null); - - /** - * Looks up the {@link Type|type} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param path Path to look up - * @returns Looked up type - * @throws {Error} If `path` does not point to a type - */ - public lookupType(path: (string|string[])): Type; - - /** - * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param path Path to look up - * @returns Looked up enum - * @throws {Error} If `path` does not point to an enum - */ - public lookupEnum(path: (string|string[])): Enum; - - /** - * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param path Path to look up - * @returns Looked up type or enum - * @throws {Error} If `path` does not point to a type or enum - */ - public lookupTypeOrEnum(path: (string|string[])): Type; - - /** - * Looks up the {@link Service|service} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param path Path to look up - * @returns Looked up service - * @throws {Error} If `path` does not point to a service - */ - public lookupService(path: (string|string[])): Service; -} - -/** Namespace descriptor. */ -export interface INamespace { - - /** Namespace options */ - options?: { [k: string]: any | undefined }; - - /** Nested object descriptors */ - nested?: { [k: string]: AnyNestedObject | undefined }; -} - -/** Any extension field descriptor. */ -type AnyExtensionField = (IExtensionField|IExtensionMapField); - -/** Any nested object descriptor. */ -type AnyNestedObject = (IEnum|IType|IService|AnyExtensionField|INamespace); - -/** Base class of all reflection objects. */ -export abstract class ReflectionObject { - - /** Options. */ - public options?: { [k: string]: any | undefined }; - - /** Unique name within its namespace. */ - public name: string; - - /** Parent namespace. */ - public parent: (Namespace|null); - - /** Whether already resolved or not. */ - public resolved: boolean; - - /** Comment text, if any. */ - public comment: (string|null); - - /** Defining file name. */ - public filename: (string|null); - - /** Reference to the root namespace. */ - public readonly root: Root; - - /** Full name including leading dot. */ - public readonly fullName: string; - - /** - * Converts this reflection object to its descriptor representation. - * @returns Descriptor - */ - public toJSON(): { [k: string]: any | undefined }; - - /** - * Called when this object is added to a parent. - * @param parent Parent added to - */ - public onAdd(parent: ReflectionObject): void; - - /** - * Called when this object is removed from a parent. - * @param parent Parent removed from - */ - public onRemove(parent: ReflectionObject): void; - - /** - * Resolves this objects type references. - * @returns `this` - */ - public resolve(): ReflectionObject; - - /** - * Gets an option value. - * @param name Option name - * @returns Option value or `undefined` if not set - */ - public getOption(name: string): any; - - /** - * Sets an option. - * @param name Option name - * @param value Option value - * @param [ifNotSet] Sets the option only if it isn't currently set - * @returns `this` - */ - public setOption(name: string, value: any, ifNotSet?: boolean): ReflectionObject; - - /** - * Sets multiple options. - * @param options Options to set - * @param [ifNotSet] Sets an option only if it isn't currently set - * @returns `this` - */ - public setOptions(options: { [k: string]: any | undefined }, ifNotSet?: boolean): ReflectionObject; - - /** - * Converts this instance to its string representation. - * @returns Class name[, space, full name] - */ - public toString(): string; -} - -/** Reflected oneof. */ -export class OneOf extends ReflectionObject { - - /** - * Constructs a new oneof instance. - * @param name Oneof name - * @param [fieldNames] Field names - * @param [options] Declared options - * @param [comment] Comment associated with this field - */ - constructor(name: string, fieldNames?: (string[]|{ [k: string]: any | undefined }), options?: { [k: string]: any | undefined }, comment?: string); - - /** Field names that belong to this oneof. */ - public oneof: string[]; - - /** Fields that belong to this oneof as an array for iteration. */ - public readonly fieldsArray: Field[]; - - /** Comment for this field. */ - public comment: (string|null); - - /** - * Constructs a oneof from a oneof descriptor. - * @param name Oneof name - * @param json Oneof descriptor - * @returns Created oneof - * @throws {TypeError} If arguments are invalid - */ - public static fromJSON(name: string, json: IOneOf): OneOf; - - /** - * Converts this oneof to a oneof descriptor. - * @param [toJSONOptions] JSON conversion options - * @returns Oneof descriptor - */ - public toJSON(toJSONOptions?: IToJSONOptions): IOneOf; - - /** - * Adds a field to this oneof and removes it from its current parent, if any. - * @param field Field to add - * @returns `this` - */ - public add(field: Field): OneOf; - - /** - * Removes a field from this oneof and puts it back to the oneof's parent. - * @param field Field to remove - * @returns `this` - */ - public remove(field: Field): OneOf; - - /** - * OneOf decorator (TypeScript). - * @param fieldNames Field names - * @returns Decorator function - */ - public static d(...fieldNames: string[]): OneOfDecorator; -} - -/** Oneof descriptor. */ -export interface IOneOf { - - /** Oneof field names */ - oneof: string[]; - - /** Oneof options */ - options?: { [k: string]: any | undefined }; -} - -/** - * Decorator function as returned by {@link OneOf.d} (TypeScript). - * @param prototype Target prototype - * @param oneofName OneOf name - */ -type OneOfDecorator = (prototype: object, oneofName: string) => void; - -/** - * Parses the given .proto source and returns an object with the parsed contents. - * @param source Source contents - * @param [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns Parser result - */ -export function parse(source: string, options?: IParseOptions): IParserResult; - -/** Result object returned from {@link parse}. */ -export interface IParserResult { - - /** Package name, if declared */ - package: (string|undefined); - - /** Imports, if any */ - imports: (string[]|undefined); - - /** Weak imports, if any */ - weakImports: (string[]|undefined); - - /** Syntax, if specified (either `"proto2"` or `"proto3"`) */ - syntax: (string|undefined); - - /** Populated root instance */ - root: Root; -} - -/** Options modifying the behavior of {@link parse}. */ -export interface IParseOptions { - - /** Keeps field casing instead of converting to camel case */ - keepCase?: boolean; - - /** Recognize double-slash comments in addition to doc-block comments. */ - alternateCommentMode?: boolean; -} - -/** Options modifying the behavior of JSON serialization. */ -export interface IToJSONOptions { - - /** Serializes comments. */ - keepComments?: boolean; -} - -/** - * Parses the given .proto source and returns an object with the parsed contents. - * @param source Source contents - * @param root Root to populate - * @param [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns Parser result - */ -export function parse(source: string, root: Root, options?: IParseOptions): IParserResult; - -/** Wire format reader using `Uint8Array` if available, otherwise `Array`. */ -export class Reader { - - /** - * Constructs a new reader instance using the specified buffer. - * @param buffer Buffer to read from - */ - constructor(buffer: Uint8Array); - - /** Read buffer. */ - public buf: Uint8Array; - - /** Read buffer position. */ - public pos: number; - - /** Read buffer length. */ - public len: number; - - /** - * Creates a new reader using the specified buffer. - * @param buffer Buffer to read from - * @returns A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} - * @throws {Error} If `buffer` is not a valid buffer - */ - public static create(buffer: (Uint8Array|Buffer)): (Reader|BufferReader); - - /** - * Reads a varint as an unsigned 32 bit value. - * @returns Value read - */ - public uint32(): number; - - /** - * Reads a varint as a signed 32 bit value. - * @returns Value read - */ - public int32(): number; - - /** - * Reads a zig-zag encoded varint as a signed 32 bit value. - * @returns Value read - */ - public sint32(): number; - - /** - * Reads a varint as a signed 64 bit value. - * @returns Value read - */ - public int64(): Long; - - /** - * Reads a varint as an unsigned 64 bit value. - * @returns Value read - */ - public uint64(): Long; - - /** - * Reads a zig-zag encoded varint as a signed 64 bit value. - * @returns Value read - */ - public sint64(): Long; - - /** - * Reads a varint as a boolean. - * @returns Value read - */ - public bool(): boolean; - - /** - * Reads fixed 32 bits as an unsigned 32 bit integer. - * @returns Value read - */ - public fixed32(): number; - - /** - * Reads fixed 32 bits as a signed 32 bit integer. - * @returns Value read - */ - public sfixed32(): number; - - /** - * Reads fixed 64 bits. - * @returns Value read - */ - public fixed64(): Long; - - /** - * Reads zig-zag encoded fixed 64 bits. - * @returns Value read - */ - public sfixed64(): Long; - - /** - * Reads a float (32 bit) as a number. - * @returns Value read - */ - public float(): number; - - /** - * Reads a double (64 bit float) as a number. - * @returns Value read - */ - public double(): number; - - /** - * Reads a sequence of bytes preceeded by its length as a varint. - * @returns Value read - */ - public bytes(): Uint8Array; - - /** - * Reads a string preceeded by its byte length as a varint. - * @returns Value read - */ - public string(): string; - - /** - * Skips the specified number of bytes if specified, otherwise skips a varint. - * @param [length] Length if known, otherwise a varint is assumed - * @returns `this` - */ - public skip(length?: number): Reader; - - /** - * Skips the next element of the specified wire type. - * @param wireType Wire type received - * @returns `this` - */ - public skipType(wireType: number): Reader; -} - -/** Wire format reader using node buffers. */ -export class BufferReader extends Reader { - - /** - * Constructs a new buffer reader instance. - * @param buffer Buffer to read from - */ - constructor(buffer: Buffer); - - /** - * Reads a sequence of bytes preceeded by its length as a varint. - * @returns Value read - */ - public bytes(): Buffer; -} - -/** Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together. */ -export class Root extends NamespaceBase { - - /** - * Constructs a new root namespace instance. - * @param [options] Top level options - */ - constructor(options?: { [k: string]: any | undefined }); - - /** Deferred extension fields. */ - public deferred: Field[]; - - /** Resolved file names of loaded files. */ - public files: string[]; - - /** - * Loads a namespace descriptor into a root namespace. - * @param json Nameespace descriptor - * @param [root] Root namespace, defaults to create a new one if omitted - * @returns Root namespace - */ - public static fromJSON(json: INamespace, root?: Root): Root; - - /** - * Resolves the path of an imported file, relative to the importing origin. - * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories. - * @param origin The file name of the importing file - * @param target The file name being imported - * @returns Resolved path to `target` or `null` to skip the file - */ - public resolvePath(origin: string, target: string): (string|null); - - /** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback. - * @param filename Names of one or multiple files to load - * @param options Parse options - * @param callback Callback function - */ - public load(filename: (string|string[]), options: IParseOptions, callback: LoadCallback): void; - - /** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback. - * @param filename Names of one or multiple files to load - * @param callback Callback function - */ - public load(filename: (string|string[]), callback: LoadCallback): void; - - /** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise. - * @param filename Names of one or multiple files to load - * @param [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns Promise - */ - public load(filename: (string|string[]), options?: IParseOptions): Promise; - - /** - * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only). - * @param filename Names of one or multiple files to load - * @param [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns Root namespace - * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid - */ - public loadSync(filename: (string|string[]), options?: IParseOptions): Root; -} - -/** - * Named roots. - * This is where pbjs stores generated structures (the option `-r, --root` specifies a name). - * Can also be used manually to make roots available accross modules. - */ -export let roots: { [k: string]: Root | undefined }; - -/** Streaming RPC helpers. */ -export namespace rpc { - - /** - * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}. - * - * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`. - * @param error Error, if any - * @param [response] Response message - */ - type ServiceMethodCallback> = (error: (Error|null), response?: TRes) => void; - - /** - * A service method part of a {@link rpc.Service} as created by {@link Service.create}. - * @param request Request message or plain object - * @param [callback] Node-style callback called with the error, if any, and the response message - * @returns Promise if `callback` has been omitted, otherwise `undefined` - */ - type ServiceMethod, TRes extends Message> = (request: (TReq|Properties), callback?: rpc.ServiceMethodCallback) => Promise>; - - /** An RPC service as returned by {@link Service#create}. */ - class Service extends util.EventEmitter { - - /** - * Constructs a new RPC service instance. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - */ - constructor(rpcImpl: RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); - - /** RPC implementation. Becomes `null` once the service is ended. */ - public rpcImpl: (RPCImpl|null); - - /** Whether requests are length-delimited. */ - public requestDelimited: boolean; - - /** Whether responses are length-delimited. */ - public responseDelimited: boolean; - - /** - * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}. - * @param method Reflected or static method - * @param requestCtor Request constructor - * @param responseCtor Response constructor - * @param request Request message or plain object - * @param callback Service callback - */ - public rpcCall, TRes extends Message>(method: (Method|rpc.ServiceMethod), requestCtor: Constructor, responseCtor: Constructor, request: (TReq|Properties), callback: rpc.ServiceMethodCallback): void; - - /** - * Ends this service and emits the `end` event. - * @param [endedByRPC=false] Whether the service has been ended by the RPC implementation. - * @returns `this` - */ - public end(endedByRPC?: boolean): rpc.Service; - } -} - -/** - * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets. - * @param method Reflected or static method being called - * @param requestData Request data - * @param callback Callback function - */ -type RPCImpl = (method: (Method|rpc.ServiceMethod, Message<{}>>), requestData: Uint8Array, callback: RPCImplCallback) => void; - -/** - * Node-style callback as used by {@link RPCImpl}. - * @param error Error, if any, otherwise `null` - * @param [response] Response data or `null` to signal end of stream, if there hasn't been an error - */ -type RPCImplCallback = (error: (Error|null), response?: (Uint8Array|null)) => void; - -/** Reflected service. */ -export class Service extends NamespaceBase { - - /** - * Constructs a new service instance. - * @param name Service name - * @param [options] Service options - * @throws {TypeError} If arguments are invalid - */ - constructor(name: string, options?: { [k: string]: any | undefined }); - - /** Service methods. */ - public methods: { [k: string]: Method | undefined }; - - /** - * Constructs a service from a service descriptor. - * @param name Service name - * @param json Service descriptor - * @returns Created service - * @throws {TypeError} If arguments are invalid - */ - public static fromJSON(name: string, json: IService): Service; - - /** - * Converts this service to a service descriptor. - * @param [toJSONOptions] JSON conversion options - * @returns Service descriptor - */ - public toJSON(toJSONOptions?: IToJSONOptions): IService; - - /** Methods of this service as an array for iteration. */ - public readonly methodsArray: Method[]; - - /** - * Creates a runtime service using the specified rpc implementation. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - * @returns RPC service. Useful where requests and/or responses are streamed. - */ - public create(rpcImpl: RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): rpc.Service; -} - -/** Service descriptor. */ -export interface IService extends INamespace { - - /** Method descriptors */ - methods: { [k: string]: IMethod | undefined }; -} - -/** - * Gets the next token and advances. - * @returns Next token or `null` on eof - */ -type TokenizerHandleNext = () => (string|null); - -/** - * Peeks for the next token. - * @returns Next token or `null` on eof - */ -type TokenizerHandlePeek = () => (string|null); - -/** - * Pushes a token back to the stack. - * @param token Token - */ -type TokenizerHandlePush = (token: string) => void; - -/** - * Skips the next token. - * @param expected Expected token - * @param [optional=false] If optional - * @returns Whether the token matched - * @throws {Error} If the token didn't match and is not optional - */ -type TokenizerHandleSkip = (expected: string, optional?: boolean) => boolean; - -/** - * Gets the comment on the previous line or, alternatively, the line comment on the specified line. - * @param [line] Line number - * @returns Comment text or `null` if none - */ -type TokenizerHandleCmnt = (line?: number) => (string|null); - -/** Handle object returned from {@link tokenize}. */ -export interface ITokenizerHandle { - - /** Gets the next token and advances (`null` on eof) */ - next: TokenizerHandleNext; - - /** Peeks for the next token (`null` on eof) */ - peek: TokenizerHandlePeek; - - /** Pushes a token back to the stack */ - push: TokenizerHandlePush; - - /** Skips a token, returns its presence and advances or, if non-optional and not present, throws */ - skip: TokenizerHandleSkip; - - /** Gets the comment on the previous line or the line comment on the specified line, if any */ - cmnt: TokenizerHandleCmnt; - - /** Current line number */ - line: number; -} - -/** - * Tokenizes the given .proto source and returns an object with useful utility functions. - * @param source Source contents - * @param alternateCommentMode Whether we should activate alternate comment parsing mode. - * @returns Tokenizer handle - */ -export function tokenize(source: string, alternateCommentMode: boolean): ITokenizerHandle; - -export namespace tokenize { - - /** - * Unescapes a string. - * @param str String to unescape - * @returns Unescaped string - */ - function unescape(str: string): string; -} - -/** Reflected message type. */ -export class Type extends NamespaceBase { - - /** - * Constructs a new reflected message type instance. - * @param name Message name - * @param [options] Declared options - */ - constructor(name: string, options?: { [k: string]: any | undefined }); - - /** Message fields. */ - public fields: { [k: string]: Field | undefined }; - - /** Oneofs declared within this namespace, if any. */ - public oneofs: { [k: string]: OneOf | undefined }; - - /** Extension ranges, if any. */ - public extensions: number[][]; - - /** Reserved ranges, if any. */ - public reserved: (number[]|string)[]; - - /** Message fields by id. */ - public readonly fieldsById: { [k: number]: Field | undefined }; - - /** Fields of this message as an array for iteration. */ - public readonly fieldsArray: Field[]; - - /** Oneofs of this message as an array for iteration. */ - public readonly oneofsArray: OneOf[]; - - /** - * The registered constructor, if any registered, otherwise a generic constructor. - * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor. - */ - public ctor: Constructor<{}>; - - /** - * Generates a constructor function for the specified type. - * @param mtype Message type - * @returns Codegen instance - */ - public static generateConstructor(mtype: Type): Codegen; - - /** - * Creates a message type from a message type descriptor. - * @param name Message name - * @param json Message type descriptor - * @returns Created message type - */ - public static fromJSON(name: string, json: IType): Type; - - /** - * Converts this message type to a message type descriptor. - * @param [toJSONOptions] JSON conversion options - * @returns Message type descriptor - */ - public toJSON(toJSONOptions?: IToJSONOptions): IType; - - /** - * Adds a nested object to this type. - * @param object Nested object to add - * @returns `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id - */ - public add(object: ReflectionObject): Type; - - /** - * Removes a nested object from this type. - * @param object Nested object to remove - * @returns `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `object` is not a member of this type - */ - public remove(object: ReflectionObject): Type; - - /** - * Tests if the specified id is reserved. - * @param id Id to test - * @returns `true` if reserved, otherwise `false` - */ - public isReservedId(id: number): boolean; - - /** - * Tests if the specified name is reserved. - * @param name Name to test - * @returns `true` if reserved, otherwise `false` - */ - public isReservedName(name: string): boolean; - - /** - * Creates a new message of this type using the specified properties. - * @param [properties] Properties to set - * @returns Message instance - */ - public create(properties?: { [k: string]: any | undefined }): Message<{}>; - - /** - * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}. - * @returns `this` - */ - public setup(): Type; - - /** - * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages. - * @param message Message instance or plain object - * @param [writer] Writer to encode to - * @returns writer - */ - public encode(message: (Message<{}>|{ [k: string]: any | undefined }), writer?: Writer): Writer; - - /** - * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages. - * @param message Message instance or plain object - * @param [writer] Writer to encode to - * @returns writer - */ - public encodeDelimited(message: (Message<{}>|{ [k: string]: any | undefined }), writer?: Writer): Writer; - - /** - * Decodes a message of this type. - * @param reader Reader or buffer to decode from - * @param [length] Length of the message, if known beforehand - * @returns Decoded message - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {util.ProtocolError<{}>} If required fields are missing - */ - public decode(reader: (Reader|Uint8Array), length?: number): Message<{}>; - - /** - * Decodes a message of this type preceeded by its byte length as a varint. - * @param reader Reader or buffer to decode from - * @returns Decoded message - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {util.ProtocolError} If required fields are missing - */ - public decodeDelimited(reader: (Reader|Uint8Array)): Message<{}>; - - /** - * Verifies that field values are valid and that required fields are present. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public verify(message: { [k: string]: any | undefined }): (null|string); - - /** - * Creates a new message of this type from a plain object. Also converts values to their respective internal types. - * @param object Plain object to convert - * @returns Message instance - */ - public fromObject(object: { [k: string]: any | undefined }): Message<{}>; - - /** - * Creates a plain object from a message of this type. Also converts values to other types if specified. - * @param message Message instance - * @param [options] Conversion options - * @returns Plain object - */ - public toObject(message: Message<{}>, options?: IConversionOptions): { [k: string]: any | undefined }; - - /** - * Type decorator (TypeScript). - * @param [typeName] Type name, defaults to the constructor's name - * @returns Decorator function - */ - public static d>(typeName?: string): TypeDecorator; -} - -/** Message type descriptor. */ -export interface IType extends INamespace { - - /** Oneof descriptors */ - oneofs?: { [k: string]: IOneOf | undefined }; - - /** Field descriptors */ - fields: { [k: string]: IField | undefined }; - - /** Extension ranges */ - extensions?: number[][]; - - /** Reserved ranges */ - reserved?: number[][]; - - /** Whether a legacy group or not */ - group?: boolean; -} - -/** Conversion options as used by {@link Type#toObject} and {@link Message.toObject}. */ -export interface IConversionOptions { - - /** - * Long conversion type. - * Valid values are `String` and `Number` (the global types). - * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library. - */ - longs?: Function; - - /** - * Enum value conversion type. - * Only valid value is `String` (the global type). - * Defaults to copy the present value, which is the numeric id. - */ - enums?: Function; - - /** - * Bytes value conversion type. - * Valid values are `Array` and (a base64 encoded) `String` (the global types). - * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser. - */ - bytes?: Function; - - /** Also sets default values on the resulting object */ - defaults?: boolean; - - /** Sets empty arrays for missing repeated fields even if `defaults=false` */ - arrays?: boolean; - - /** Sets empty objects for missing map fields even if `defaults=false` */ - objects?: boolean; - - /** Includes virtual oneof properties set to the present field's name, if any */ - oneofs?: boolean; - - /** Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings */ - json?: boolean; -} - -/** - * Decorator function as returned by {@link Type.d} (TypeScript). - * @param target Target constructor - */ -type TypeDecorator> = (target: Constructor) => void; - -/** Common type constants. */ -export namespace types { - - /** Basic type wire types. */ - const basic: { - "double": number, - "float": number, - "int32": number, - "uint32": number, - "sint32": number, - "fixed32": number, - "sfixed32": number, - "int64": number, - "uint64": number, - "sint64": number, - "fixed64": number, - "sfixed64": number, - "bool": number, - "string": number, - "bytes": number - }; - - /** Basic type defaults. */ - const defaults: { - "double": number, - "float": number, - "int32": number, - "uint32": number, - "sint32": number, - "fixed32": number, - "sfixed32": number, - "int64": number, - "uint64": number, - "sint64": number, - "fixed64": number, - "sfixed64": number, - "bool": boolean, - "string": string, - "bytes": number[], - "message": null - }; - - /** Basic long type wire types. */ - const long: { - "int64": number, - "uint64": number, - "sint64": number, - "fixed64": number, - "sfixed64": number - }; - - /** Allowed types for map keys with their associated wire type. */ - const mapKey: { - "int32": number, - "uint32": number, - "sint32": number, - "fixed32": number, - "sfixed32": number, - "int64": number, - "uint64": number, - "sint64": number, - "fixed64": number, - "sfixed64": number, - "bool": number, - "string": number - }; - - /** Allowed types for packed repeated fields with their associated wire type. */ - const packed: { - "double": number, - "float": number, - "int32": number, - "uint32": number, - "sint32": number, - "fixed32": number, - "sfixed32": number, - "int64": number, - "uint64": number, - "sint64": number, - "fixed64": number, - "sfixed64": number, - "bool": number - }; -} - -/** Constructor type. */ -export interface Constructor extends Function { - new(...params: any[]): T; prototype: T; -} - -/** Properties type. */ -type Properties = { [P in keyof T]?: T[P] }; - -/** Type that is convertible to array. */ -export interface ToArray { - toArray(): T[]; -} - -/** - * Any compatible Buffer instance. - * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings. - */ -export interface Buffer extends Uint8Array { -} - -/** - * A OneOf getter as returned by {@link util.oneOfGetter}. - * @returns Set field name, if any - */ -type OneOfGetter = () => (string|undefined); - -/** - * A OneOf setter as returned by {@link util.oneOfSetter}. - * @param value Field name - */ -type OneOfSetter = (value: (string|undefined)) => void; - -/** Various utility functions. */ -export namespace util { - - /** Helper class for working with the low and high bits of a 64 bit value. */ - class LongBits { - - /** - * Constructs new long bits. - * @param lo Low 32 bits, unsigned - * @param hi High 32 bits, unsigned - */ - constructor(lo: number, hi: number); - - /** Low bits. */ - public lo: number; - - /** High bits. */ - public hi: number; - - /** Zero bits. */ - public static zero: util.LongBits; - - /** Zero hash. */ - public static zeroHash: string; - - /** - * Constructs new long bits from the specified number. - * @param value Value - * @returns Instance - */ - public static fromNumber(value: number): util.LongBits; - - /** - * Constructs new long bits from a number, long or string. - * @param value Value - * @returns Instance - */ - public static from(value: (Long|number|string)): util.LongBits; - - /** - * Converts this long bits to a possibly unsafe JavaScript number. - * @param [unsigned=false] Whether unsigned or not - * @returns Possibly unsafe number - */ - public toNumber(unsigned?: boolean): number; - - /** - * Converts this long bits to a long. - * @param [unsigned=false] Whether unsigned or not - * @returns Long - */ - public toLong(unsigned?: boolean): Long; - - /** - * Constructs new long bits from the specified 8 characters long hash. - * @param hash Hash - * @returns Bits - */ - public static fromHash(hash: string): util.LongBits; - - /** - * Converts this long bits to a 8 characters long hash. - * @returns Hash - */ - public toHash(): string; - - /** - * Zig-zag encodes this long bits. - * @returns `this` - */ - public zzEncode(): util.LongBits; - - /** - * Zig-zag decodes this long bits. - * @returns `this` - */ - public zzDecode(): util.LongBits; - - /** - * Calculates the length of this longbits when encoded as a varint. - * @returns Length - */ - public length(): number; - } - - /** An immuable empty array. */ - const emptyArray: any[]; - - /** An immutable empty object. */ - const emptyObject: object; - - /** Whether running within node or not. */ - const isNode: boolean; - - /** - * Tests if the specified value is an integer. - * @param value Value to test - * @returns `true` if the value is an integer - */ - function isInteger(value: any): boolean; - - /** - * Tests if the specified value is a string. - * @param value Value to test - * @returns `true` if the value is a string - */ - function isString(value: any): boolean; - - /** - * Tests if the specified value is a non-null object. - * @param value Value to test - * @returns `true` if the value is a non-null object - */ - function isObject(value: any): boolean; - - /** - * Checks if a property on a message is considered to be present. - * This is an alias of {@link util.isSet}. - * @param obj Plain object or message instance - * @param prop Property name - * @returns `true` if considered to be present, otherwise `false` - */ - function isset(obj: object, prop: string): boolean; - - /** - * Checks if a property on a message is considered to be present. - * @param obj Plain object or message instance - * @param prop Property name - * @returns `true` if considered to be present, otherwise `false` - */ - function isSet(obj: object, prop: string): boolean; - - /** Node's Buffer class if available. */ - let Buffer: Constructor; - - /** - * Creates a new buffer of whatever type supported by the environment. - * @param [sizeOrArray=0] Buffer size or number array - * @returns Buffer - */ - function newBuffer(sizeOrArray?: (number|number[])): (Uint8Array|Buffer); - - /** Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`. */ - let Array: Constructor; - - /** Long.js's Long class if available. */ - let Long: Constructor; - - /** Regular expression used to verify 2 bit (`bool`) map keys. */ - const key2Re: RegExp; - - /** Regular expression used to verify 32 bit (`int32` etc.) map keys. */ - const key32Re: RegExp; - - /** Regular expression used to verify 64 bit (`int64` etc.) map keys. */ - const key64Re: RegExp; - - /** - * Converts a number or long to an 8 characters long hash string. - * @param value Value to convert - * @returns Hash - */ - function longToHash(value: (Long|number)): string; - - /** - * Converts an 8 characters long hash string to a long or number. - * @param hash Hash - * @param [unsigned=false] Whether unsigned or not - * @returns Original value - */ - function longFromHash(hash: string, unsigned?: boolean): (Long|number); - - /** - * Merges the properties of the source object into the destination object. - * @param dst Destination object - * @param src Source object - * @param [ifNotSet=false] Merges only if the key is not already set - * @returns Destination object - */ - function merge(dst: { [k: string]: any | undefined }, src: { [k: string]: any | undefined }, ifNotSet?: boolean): { [k: string]: any | undefined }; - - /** - * Converts the first character of a string to lower case. - * @param str String to convert - * @returns Converted string - */ - function lcFirst(str: string): string; - - /** - * Creates a custom error constructor. - * @param name Error name - * @returns Custom error constructor - */ - function newError(name: string): Constructor; - - /** Error subclass indicating a protocol specifc error. */ - class ProtocolError> extends Error { - - /** - * Constructs a new protocol error. - * @param message Error message - * @param [properties] Additional properties - */ - constructor(message: string, properties?: { [k: string]: any | undefined }); - - /** So far decoded message instance. */ - public instance: Message; - } - - /** - * Builds a getter for a oneof's present field name. - * @param fieldNames Field names - * @returns Unbound getter - */ - function oneOfGetter(fieldNames: string[]): OneOfGetter; - - /** - * Builds a setter for a oneof's present field name. - * @param fieldNames Field names - * @returns Unbound setter - */ - function oneOfSetter(fieldNames: string[]): OneOfSetter; - - /** - * Default conversion options used for {@link Message#toJSON} implementations. - * - * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely: - * - * - Longs become strings - * - Enums become string keys - * - Bytes become base64 encoded strings - * - (Sub-)Messages become plain objects - * - Maps become plain objects with all string keys - * - Repeated fields become arrays - * - NaN and Infinity for float and double fields become strings - * - * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json - */ - let toJSONOptions: IConversionOptions; - - /** Node's fs module if available. */ - let fs: { [k: string]: any | undefined }; - - /** - * Converts an object's values to an array. - * @param object Object to convert - * @returns Converted array - */ - function toArray(object: { [k: string]: any | undefined }): any[]; - - /** - * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values. - * @param array Array to convert - * @returns Converted object - */ - function toObject(array: any[]): { [k: string]: any | undefined }; - - /** - * Tests whether the specified name is a reserved word in JS. - * @param name Name to test - * @returns `true` if reserved, otherwise `false` - */ - function isReserved(name: string): boolean; - - /** - * Returns a safe property accessor for the specified property name. - * @param prop Property name - * @returns Safe accessor - */ - function safeProp(prop: string): string; - - /** - * Converts the first character of a string to upper case. - * @param str String to convert - * @returns Converted string - */ - function ucFirst(str: string): string; - - /** - * Converts a string to camel case. - * @param str String to convert - * @returns Converted string - */ - function camelCase(str: string): string; - - /** - * Compares reflected fields by id. - * @param a First field - * @param b Second field - * @returns Comparison value - */ - function compareFieldsById(a: Field, b: Field): number; - - /** - * Decorator helper for types (TypeScript). - * @param ctor Constructor function - * @param [typeName] Type name, defaults to the constructor's name - * @returns Reflected type - */ - function decorateType>(ctor: Constructor, typeName?: string): Type; - - /** - * Decorator helper for enums (TypeScript). - * @param object Enum object - * @returns Reflected enum - */ - function decorateEnum(object: object): Enum; - - /** Decorator root (TypeScript). */ - let decorateRoot: Root; - - /** - * Returns a promise from a node-style callback function. - * @param fn Function to call - * @param ctx Function context - * @param params Function arguments - * @returns Promisified function - */ - function asPromise(fn: asPromiseCallback, ctx: any, ...params: any[]): Promise; - - /** A minimal base64 implementation for number arrays. */ - namespace base64 { - - /** - * Calculates the byte length of a base64 encoded string. - * @param string Base64 encoded string - * @returns Byte length - */ - function length(string: string): number; - - /** - * Encodes a buffer to a base64 encoded string. - * @param buffer Source buffer - * @param start Source start - * @param end Source end - * @returns Base64 encoded string - */ - function encode(buffer: Uint8Array, start: number, end: number): string; - - /** - * Decodes a base64 encoded string to a buffer. - * @param string Source string - * @param buffer Destination buffer - * @param offset Destination offset - * @returns Number of bytes written - * @throws {Error} If encoding is invalid - */ - function decode(string: string, buffer: Uint8Array, offset: number): number; - - /** - * Tests if the specified string appears to be base64 encoded. - * @param string String to test - * @returns `true` if probably base64 encoded, otherwise false - */ - function test(string: string): boolean; - } - - /** - * Begins generating a function. - * @param functionParams Function parameter names - * @param [functionName] Function name if not anonymous - * @returns Appender that appends code to the function's body - */ - function codegen(functionParams: string[], functionName?: string): Codegen; - - namespace codegen { - - /** When set to `true`, codegen will log generated code to console. Useful for debugging. */ - let verbose: boolean; - } - - /** - * Begins generating a function. - * @param [functionName] Function name if not anonymous - * @returns Appender that appends code to the function's body - */ - function codegen(functionName?: string): Codegen; - - /** A minimal event emitter. */ - class EventEmitter { - - /** Constructs a new event emitter instance. */ - constructor(); - - /** - * Registers an event listener. - * @param evt Event name - * @param fn Listener - * @param [ctx] Listener context - * @returns `this` - */ - public on(evt: string, fn: EventEmitterListener, ctx?: any): this; - - /** - * Removes an event listener or any matching listeners if arguments are omitted. - * @param [evt] Event name. Removes all listeners if omitted. - * @param [fn] Listener to remove. Removes all listeners of `evt` if omitted. - * @returns `this` - */ - public off(evt?: string, fn?: EventEmitterListener): this; - - /** - * Emits an event by calling its listeners with the specified arguments. - * @param evt Event name - * @param args Arguments - * @returns `this` - */ - public emit(evt: string, ...args: any[]): this; - } - - /** Reads / writes floats / doubles from / to buffers. */ - namespace float { - - /** - * Writes a 32 bit float to a buffer using little endian byte order. - * @param val Value to write - * @param buf Target buffer - * @param pos Target buffer offset - */ - function writeFloatLE(val: number, buf: Uint8Array, pos: number): void; - - /** - * Writes a 32 bit float to a buffer using big endian byte order. - * @param val Value to write - * @param buf Target buffer - * @param pos Target buffer offset - */ - function writeFloatBE(val: number, buf: Uint8Array, pos: number): void; - - /** - * Reads a 32 bit float from a buffer using little endian byte order. - * @param buf Source buffer - * @param pos Source buffer offset - * @returns Value read - */ - function readFloatLE(buf: Uint8Array, pos: number): number; - - /** - * Reads a 32 bit float from a buffer using big endian byte order. - * @param buf Source buffer - * @param pos Source buffer offset - * @returns Value read - */ - function readFloatBE(buf: Uint8Array, pos: number): number; - - /** - * Writes a 64 bit double to a buffer using little endian byte order. - * @param val Value to write - * @param buf Target buffer - * @param pos Target buffer offset - */ - function writeDoubleLE(val: number, buf: Uint8Array, pos: number): void; - - /** - * Writes a 64 bit double to a buffer using big endian byte order. - * @param val Value to write - * @param buf Target buffer - * @param pos Target buffer offset - */ - function writeDoubleBE(val: number, buf: Uint8Array, pos: number): void; - - /** - * Reads a 64 bit double from a buffer using little endian byte order. - * @param buf Source buffer - * @param pos Source buffer offset - * @returns Value read - */ - function readDoubleLE(buf: Uint8Array, pos: number): number; - - /** - * Reads a 64 bit double from a buffer using big endian byte order. - * @param buf Source buffer - * @param pos Source buffer offset - * @returns Value read - */ - function readDoubleBE(buf: Uint8Array, pos: number): number; - } - - /** - * Fetches the contents of a file. - * @param filename File path or url - * @param options Fetch options - * @param callback Callback function - */ - function fetch(filename: string, options: IFetchOptions, callback: FetchCallback): void; - - /** - * Fetches the contents of a file. - * @param path File path or url - * @param callback Callback function - */ - function fetch(path: string, callback: FetchCallback): void; - - /** - * Fetches the contents of a file. - * @param path File path or url - * @param [options] Fetch options - * @returns Promise - */ - function fetch(path: string, options?: IFetchOptions): Promise<(string|Uint8Array)>; - - /** - * Requires a module only if available. - * @param moduleName Module to require - * @returns Required module if available and not empty, otherwise `null` - */ - function inquire(moduleName: string): object; - - /** A minimal path module to resolve Unix, Windows and URL paths alike. */ - namespace path { - - /** - * Tests if the specified path is absolute. - * @param path Path to test - * @returns `true` if path is absolute - */ - function isAbsolute(path: string): boolean; - - /** - * Normalizes the specified path. - * @param path Path to normalize - * @returns Normalized path - */ - function normalize(path: string): string; - - /** - * Resolves the specified include path against the specified origin path. - * @param originPath Path to the origin file - * @param includePath Include path relative to origin path - * @param [alreadyNormalized=false] `true` if both paths are already known to be normalized - * @returns Path to the include file - */ - function resolve(originPath: string, includePath: string, alreadyNormalized?: boolean): string; - } - - /** - * A general purpose buffer pool. - * @param alloc Allocator - * @param slice Slicer - * @param [size=8192] Slab size - * @returns Pooled allocator - */ - function pool(alloc: PoolAllocator, slice: PoolSlicer, size?: number): PoolAllocator; - - /** A minimal UTF8 implementation for number arrays. */ - namespace utf8 { - - /** - * Calculates the UTF8 byte length of a string. - * @param string String - * @returns Byte length - */ - function length(string: string): number; - - /** - * Reads UTF8 bytes as a string. - * @param buffer Source buffer - * @param start Source start - * @param end Source end - * @returns String read - */ - function read(buffer: Uint8Array, start: number, end: number): string; - - /** - * Writes a string as UTF8 bytes. - * @param string Source string - * @param buffer Destination buffer - * @param offset Destination offset - * @returns Bytes written - */ - function write(string: string, buffer: Uint8Array, offset: number): number; - } -} - -/** - * Generates a verifier specific to the specified message type. - * @param mtype Message type - * @returns Codegen instance - */ -export function verifier(mtype: Type): Codegen; - -/** Wrappers for common types. */ -export const wrappers: { [k: string]: IWrapper | undefined }; - -/** - * From object converter part of an {@link IWrapper}. - * @param object Plain object - * @returns Message instance - */ -type WrapperFromObjectConverter = (this: Type, object: { [k: string]: any | undefined }) => Message<{}>; - -/** - * To object converter part of an {@link IWrapper}. - * @param message Message instance - * @param [options] Conversion options - * @returns Plain object - */ -type WrapperToObjectConverter = (this: Type, message: Message<{}>, options?: IConversionOptions) => { [k: string]: any | undefined }; - -/** Common type wrapper part of {@link wrappers}. */ -export interface IWrapper { - - /** From object converter */ - fromObject?: WrapperFromObjectConverter; - - /** To object converter */ - toObject?: WrapperToObjectConverter; -} - -/** Wire format writer using `Uint8Array` if available, otherwise `Array`. */ -export class Writer { - - /** Constructs a new writer instance. */ - constructor(); - - /** Current length. */ - public len: number; - - /** Operations head. */ - public head: object; - - /** Operations tail */ - public tail: object; - - /** Linked forked states. */ - public states: (object|null); - - /** - * Creates a new writer. - * @returns A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} - */ - public static create(): (BufferWriter|Writer); - - /** - * Allocates a buffer of the specified size. - * @param size Buffer size - * @returns Buffer - */ - public static alloc(size: number): Uint8Array; - - /** - * Writes an unsigned 32 bit value as a varint. - * @param value Value to write - * @returns `this` - */ - public uint32(value: number): Writer; - - /** - * Writes a signed 32 bit value as a varint. - * @param value Value to write - * @returns `this` - */ - public int32(value: number): Writer; - - /** - * Writes a 32 bit value as a varint, zig-zag encoded. - * @param value Value to write - * @returns `this` - */ - public sint32(value: number): Writer; - - /** - * Writes an unsigned 64 bit value as a varint. - * @param value Value to write - * @returns `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ - public uint64(value: (Long|number|string)): Writer; - - /** - * Writes a signed 64 bit value as a varint. - * @param value Value to write - * @returns `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ - public int64(value: (Long|number|string)): Writer; - - /** - * Writes a signed 64 bit value as a varint, zig-zag encoded. - * @param value Value to write - * @returns `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ - public sint64(value: (Long|number|string)): Writer; - - /** - * Writes a boolish value as a varint. - * @param value Value to write - * @returns `this` - */ - public bool(value: boolean): Writer; - - /** - * Writes an unsigned 32 bit value as fixed 32 bits. - * @param value Value to write - * @returns `this` - */ - public fixed32(value: number): Writer; - - /** - * Writes a signed 32 bit value as fixed 32 bits. - * @param value Value to write - * @returns `this` - */ - public sfixed32(value: number): Writer; - - /** - * Writes an unsigned 64 bit value as fixed 64 bits. - * @param value Value to write - * @returns `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ - public fixed64(value: (Long|number|string)): Writer; - - /** - * Writes a signed 64 bit value as fixed 64 bits. - * @param value Value to write - * @returns `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ - public sfixed64(value: (Long|number|string)): Writer; - - /** - * Writes a float (32 bit). - * @param value Value to write - * @returns `this` - */ - public float(value: number): Writer; - - /** - * Writes a double (64 bit float). - * @param value Value to write - * @returns `this` - */ - public double(value: number): Writer; - - /** - * Writes a sequence of bytes. - * @param value Buffer or base64 encoded string to write - * @returns `this` - */ - public bytes(value: (Uint8Array|string)): Writer; - - /** - * Writes a string. - * @param value Value to write - * @returns `this` - */ - public string(value: string): Writer; - - /** - * Forks this writer's state by pushing it to a stack. - * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state. - * @returns `this` - */ - public fork(): Writer; - - /** - * Resets this instance to the last state. - * @returns `this` - */ - public reset(): Writer; - - /** - * Resets to the last state and appends the fork state's current write length as a varint followed by its operations. - * @returns `this` - */ - public ldelim(): Writer; - - /** - * Finishes the write operation. - * @returns Finished buffer - */ - public finish(): Uint8Array; -} - -/** Wire format writer using node buffers. */ -export class BufferWriter extends Writer { - - /** Constructs a new buffer writer instance. */ - constructor(); - - /** - * Finishes the write operation. - * @returns Finished buffer - */ - public finish(): Buffer; - - /** - * Allocates a buffer of the specified size. - * @param size Buffer size - * @returns Buffer - */ - public static alloc(size: number): Buffer; -} - -/** - * Callback as used by {@link util.asPromise}. - * @param error Error, if any - * @param params Additional arguments - */ -type asPromiseCallback = (error: (Error|null), ...params: any[]) => void; - -/** - * Appends code to the function's body or finishes generation. - * @param [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any - * @param [formatParams] Format parameters - * @returns Itself or the generated function if finished - * @throws {Error} If format parameter counts do not match - */ -type Codegen = (formatStringOrScope?: (string|{ [k: string]: any | undefined }), ...formatParams: any[]) => (Codegen|Function); - -/** - * Event listener as used by {@link util.EventEmitter}. - * @param args Arguments - */ -type EventEmitterListener = (...args: any[]) => void; - -/** - * Node-style callback as used by {@link util.fetch}. - * @param error Error, if any, otherwise `null` - * @param [contents] File contents, if there hasn't been an error - */ -type FetchCallback = (error: Error, contents?: string) => void; - -/** Options as used by {@link util.fetch}. */ -export interface IFetchOptions { - - /** Whether expecting a binary response */ - binary?: boolean; - - /** If `true`, forces the use of XMLHttpRequest */ - xhr?: boolean; -} - -/** - * An allocator as used by {@link util.pool}. - * @param size Buffer size - * @returns Buffer - */ -type PoolAllocator = (size: number) => Uint8Array; - -/** - * A slicer as used by {@link util.pool}. - * @param start Start offset - * @param end End offset - * @returns Buffer slice - */ -type PoolSlicer = (this: Uint8Array, start: number, end: number) => Uint8Array; diff --git a/gateway/node_modules/@apollo/protobufjs/index.js b/gateway/node_modules/@apollo/protobufjs/index.js deleted file mode 100644 index 042042a..0000000 --- a/gateway/node_modules/@apollo/protobufjs/index.js +++ /dev/null @@ -1,4 +0,0 @@ -// full library entry point. - -"use strict"; -module.exports = require("./src/index"); diff --git a/gateway/node_modules/@apollo/protobufjs/light.d.ts b/gateway/node_modules/@apollo/protobufjs/light.d.ts deleted file mode 100644 index d83e7f9..0000000 --- a/gateway/node_modules/@apollo/protobufjs/light.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export as namespace protobuf; -export * from "./index"; diff --git a/gateway/node_modules/@apollo/protobufjs/light.js b/gateway/node_modules/@apollo/protobufjs/light.js deleted file mode 100644 index 1209e64..0000000 --- a/gateway/node_modules/@apollo/protobufjs/light.js +++ /dev/null @@ -1,4 +0,0 @@ -// light library entry point. - -"use strict"; -module.exports = require("./src/index-light"); \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/minimal.d.ts b/gateway/node_modules/@apollo/protobufjs/minimal.d.ts deleted file mode 100644 index d83e7f9..0000000 --- a/gateway/node_modules/@apollo/protobufjs/minimal.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export as namespace protobuf; -export * from "./index"; diff --git a/gateway/node_modules/@apollo/protobufjs/minimal.js b/gateway/node_modules/@apollo/protobufjs/minimal.js deleted file mode 100644 index 1f35ec9..0000000 --- a/gateway/node_modules/@apollo/protobufjs/minimal.js +++ /dev/null @@ -1,4 +0,0 @@ -// minimal library entry point. - -"use strict"; -module.exports = require("./src/index-minimal"); diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/LICENSE b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/LICENSE deleted file mode 100644 index 9e841e7..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - MIT License - - Copyright (c) Microsoft Corporation. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/README.md b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/README.md deleted file mode 100644 index 3f24325..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Installation -> `npm install --save @types/node` - -# Summary -This package contains type definitions for Node.js (http://nodejs.org/). - -# Details -Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node/v10. - -### Additional Details - * Last updated: Wed, 28 Oct 2020 18:55:49 GMT - * Dependencies: none - * Global values: `Buffer`, `NodeJS`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `require`, `setImmediate`, `setInterval`, `setTimeout` - -# Credits -These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alexander T.](https://github.com/a-tarasyuk), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Bruno Scheufler](https://github.com/brunoscheufler), [Chigozirim C.](https://github.com/smac89), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Flarna](https://github.com/Flarna), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Hoàng Văn Khải](https://github.com/KSXGitHub), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Zane Hannan AU](https://github.com/ZaneHannanAU), [Jeremie Rodriguez](https://github.com/jeremiergz), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Jordi Oliveras Rovira](https://github.com/j-oliveras), [Thanik Bhongbhibhat](https://github.com/bhongy), [Minh Son Nguyen](https://github.com/nguymin4), and [ExE Boss](https://github.com/ExE-Boss). diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/assert.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/assert.d.ts deleted file mode 100644 index 8bb7180..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/assert.d.ts +++ /dev/null @@ -1,91 +0,0 @@ -declare module 'assert' { - function assert(value: any, message?: string | Error): asserts value; - namespace assert { - class AssertionError implements Error { - name: string; - message: string; - actual: any; - expected: any; - operator: string; - generatedMessage: boolean; - code: 'ERR_ASSERTION'; - - constructor(options?: { - message?: string; - actual?: any; - expected?: any; - operator?: string; - stackStartFn?: Function; - }); - } - - function fail(message?: string | Error): never; - /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ - function fail( - actual: any, - expected: any, - message?: string | Error, - operator?: string, - stackStartFn?: Function, - ): never; - function ok(value: any, message?: string | Error): asserts value; - /** @deprecated since v9.9.0 - use strictEqual() instead. */ - function equal(actual: any, expected: any, message?: string | Error): void; - /** @deprecated since v9.9.0 - use notStrictEqual() instead. */ - function notEqual(actual: any, expected: any, message?: string | Error): void; - /** @deprecated since v9.9.0 - use deepStrictEqual() instead. */ - function deepEqual(actual: any, expected: any, message?: string | Error): void; - /** @deprecated since v9.9.0 - use notDeepStrictEqual() instead. */ - function notDeepEqual(actual: any, expected: any, message?: string | Error): void; - function strictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; - function notStrictEqual(actual: any, expected: any, message?: string | Error): void; - function deepStrictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; - function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void; - - function throws(block: Function, message?: string | Error): void; - function throws(block: Function, error: RegExp | Function | Object | Error, message?: string | Error): void; - function doesNotThrow(block: Function, message?: string | Error): void; - function doesNotThrow(block: Function, error: RegExp | Function, message?: string | Error): void; - - function ifError(value: any): asserts value is null | undefined; - - function rejects(block: Function | Promise, message?: string | Error): Promise; - function rejects( - block: Function | Promise, - error: RegExp | Function | Object | Error, - message?: string | Error, - ): Promise; - function doesNotReject(block: Function | Promise, message?: string | Error): Promise; - function doesNotReject( - block: Function | Promise, - error: RegExp | Function, - message?: string | Error, - ): Promise; - - const strict: Omit< - typeof assert, - | 'strict' - | 'deepEqual' - | 'notDeepEqual' - | 'equal' - | 'notEqual' - | 'ok' - | 'strictEqual' - | 'deepStrictEqual' - | 'ifError' - > & { - (value: any, message?: string | Error): asserts value; - strict: typeof strict; - deepEqual: typeof deepStrictEqual; - notDeepEqual: typeof notDeepStrictEqual; - equal: typeof strictEqual; - notEqual: typeof notStrictEqual; - ok(value: any, message?: string | Error): asserts value; - strictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; - deepStrictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; - ifError(value: any): asserts value is null | undefined; - }; - } - - export = assert; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/async_hooks.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/async_hooks.d.ts deleted file mode 100644 index 2c77932..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/async_hooks.d.ts +++ /dev/null @@ -1,144 +0,0 @@ -/** - * Async Hooks module: https://nodejs.org/api/async_hooks.html - */ -declare module "async_hooks" { - /** - * Returns the asyncId of the current execution context. - */ - function executionAsyncId(): number; - - /** - * Returns the ID of the resource responsible for calling the callback that is currently being executed. - */ - function triggerAsyncId(): number; - - interface HookCallbacks { - /** - * Called when a class is constructed that has the possibility to emit an asynchronous event. - * @param asyncId a unique ID for the async resource - * @param type the type of the async resource - * @param triggerAsyncId the unique ID of the async resource in whose execution context this async resource was created - * @param resource reference to the resource representing the async operation, needs to be released during destroy - */ - init?(asyncId: number, type: string, triggerAsyncId: number, resource: Object): void; - - /** - * When an asynchronous operation is initiated or completes a callback is called to notify the user. - * The before callback is called just before said callback is executed. - * @param asyncId the unique identifier assigned to the resource about to execute the callback. - */ - before?(asyncId: number): void; - - /** - * Called immediately after the callback specified in before is completed. - * @param asyncId the unique identifier assigned to the resource which has executed the callback. - */ - after?(asyncId: number): void; - - /** - * Called when a promise has resolve() called. This may not be in the same execution id - * as the promise itself. - * @param asyncId the unique id for the promise that was resolve()d. - */ - promiseResolve?(asyncId: number): void; - - /** - * Called after the resource corresponding to asyncId is destroyed - * @param asyncId a unique ID for the async resource - */ - destroy?(asyncId: number): void; - } - - interface AsyncHook { - /** - * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop. - */ - enable(): this; - - /** - * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled. - */ - disable(): this; - } - - /** - * Registers functions to be called for different lifetime events of each async operation. - * @param options the callbacks to register - * @return an AsyncHooks instance used for disabling and enabling hooks - */ - function createHook(options: HookCallbacks): AsyncHook; - - interface AsyncResourceOptions { - /** - * The ID of the execution context that created this async event. - * Default: `executionAsyncId()` - */ - triggerAsyncId?: number; - - /** - * Disables automatic `emitDestroy` when the object is garbage collected. - * This usually does not need to be set (even if `emitDestroy` is called - * manually), unless the resource's `asyncId` is retrieved and the - * sensitive API's `emitDestroy` is called with it. - * Default: `false` - */ - requireManualDestroy?: boolean; - } - - /** - * The class AsyncResource was designed to be extended by the embedder's async resources. - * Using this users can easily trigger the lifetime events of their own resources. - */ - class AsyncResource { - /** - * AsyncResource() is meant to be extended. Instantiating a - * new AsyncResource() also triggers init. If triggerAsyncId is omitted then - * async_hook.executionAsyncId() is used. - * @param type The type of async event. - * @param triggerAsyncId The ID of the execution context that created - * this async event (default: `executionAsyncId()`), or an - * AsyncResourceOptions object (since 9.3) - */ - constructor(type: string, triggerAsyncId?: number|AsyncResourceOptions); - - /** - * Call AsyncHooks before callbacks. - * @deprecated since 9.6 - Use asyncResource.runInAsyncScope() instead. - */ - emitBefore(): void; - - /** - * Call AsyncHooks after callbacks. - * @deprecated since 9.6 - Use asyncResource.runInAsyncScope() instead. - */ - emitAfter(): void; - - /** - * Call the provided function with the provided arguments in the - * execution context of the async resource. This will establish the - * context, trigger the AsyncHooks before callbacks, call the function, - * trigger the AsyncHooks after callbacks, and then restore the original - * execution context. - * @param fn The function to call in the execution context of this - * async resource. - * @param thisArg The receiver to be used for the function call. - * @param args Optional arguments to pass to the function. - */ - runInAsyncScope(fn: (this: This, ...args: any[]) => Result, thisArg?: This, ...args: any[]): Result; - - /** - * Call AsyncHooks destroy callbacks. - */ - emitDestroy(): void; - - /** - * @return the unique ID assigned to this AsyncResource instance. - */ - asyncId(): number; - - /** - * @return the trigger ID for this AsyncResource instance. - */ - triggerAsyncId(): number; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/base.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/base.d.ts deleted file mode 100644 index fa67179..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/base.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// NOTE: These definitions support NodeJS and TypeScript 3.7. - -// NOTE: TypeScript version-specific augmentations can be found in the following paths: -// - ~/base.d.ts - Shared definitions common to all TypeScript versions -// - ~/index.d.ts - Definitions specific to TypeScript 2.1 -// - ~/ts3.7/base.d.ts - Definitions specific to TypeScript 3.7 -// - ~/ts3.7/index.d.ts - Definitions specific to TypeScript 3.7 with assert pulled in - -// Reference required types from the default lib: -/// -/// -/// -/// - -// Base definitions for all NodeJS modules that are not specific to any version of TypeScript: -/// - -// TypeScript 3.7-specific augmentations: -/// diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/buffer.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/buffer.d.ts deleted file mode 100644 index 0fe668b..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/buffer.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare module "buffer" { - export const INSPECT_MAX_BYTES: number; - const BuffType: typeof Buffer; - - export type TranscodeEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "latin1" | "binary"; - - export function transcode(source: Buffer | Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer; - - export const SlowBuffer: { - /** @deprecated since v6.0.0, use Buffer.allocUnsafeSlow() */ - new(size: number): Buffer; - prototype: Buffer; - }; - - export { BuffType as Buffer }; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/child_process.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/child_process.d.ts deleted file mode 100644 index 4426105..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/child_process.d.ts +++ /dev/null @@ -1,369 +0,0 @@ -declare module "child_process" { - import * as events from "events"; - import * as stream from "stream"; - import * as net from "net"; - - interface ChildProcess extends events.EventEmitter { - stdin: stream.Writable; - stdout: stream.Readable; - stderr: stream.Readable; - readonly channel?: stream.Pipe | null; - stdio: [stream.Writable, stream.Readable, stream.Readable]; - killed: boolean; - pid: number; - readonly exitCode: number | null; - readonly signalCode: number | null; - kill(signal?: string): void; - send(message: any, callback?: (error: Error) => void): boolean; - send(message: any, sendHandle?: net.Socket | net.Server, callback?: (error: Error) => void): boolean; - send(message: any, sendHandle?: net.Socket | net.Server, options?: MessageOptions, callback?: (error: Error) => void): boolean; - connected: boolean; - disconnect(): void; - unref(): void; - ref(): void; - - /** - * events.EventEmitter - * 1. close - * 2. disconnect - * 3. error - * 4. exit - * 5. message - */ - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "close", listener: (code: number, signal: string) => void): this; - addListener(event: "disconnect", listener: () => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "exit", listener: (code: number | null, signal: string | null) => void): this; - addListener(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "close", code: number, signal: string): boolean; - emit(event: "disconnect"): boolean; - emit(event: "error", err: Error): boolean; - emit(event: "exit", code: number | null, signal: string | null): boolean; - emit(event: "message", message: any, sendHandle: net.Socket | net.Server): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "close", listener: (code: number, signal: string) => void): this; - on(event: "disconnect", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "exit", listener: (code: number | null, signal: string | null) => void): this; - on(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "close", listener: (code: number, signal: string) => void): this; - once(event: "disconnect", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "exit", listener: (code: number | null, signal: string | null) => void): this; - once(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "close", listener: (code: number, signal: string) => void): this; - prependListener(event: "disconnect", listener: () => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "exit", listener: (code: number | null, signal: string | null) => void): this; - prependListener(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "close", listener: (code: number, signal: string) => void): this; - prependOnceListener(event: "disconnect", listener: () => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "exit", listener: (code: number | null, signal: string | null) => void): this; - prependOnceListener(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; - } - - interface MessageOptions { - keepOpen?: boolean; - } - - type StdioOptions = "pipe" | "ignore" | "inherit" | Array<("pipe" | "ipc" | "ignore" | "inherit" | stream.Stream | number | null | undefined)>; - - interface SpawnOptions { - cwd?: string; - env?: NodeJS.ProcessEnv; - argv0?: string; - stdio?: StdioOptions; - detached?: boolean; - uid?: number; - gid?: number; - shell?: boolean | string; - windowsVerbatimArguments?: boolean; - windowsHide?: boolean; - } - - function spawn(command: string, options?: SpawnOptions): ChildProcess; - function spawn(command: string, args?: ReadonlyArray, options?: SpawnOptions): ChildProcess; - - interface ExecOptions { - cwd?: string; - env?: NodeJS.ProcessEnv; - shell?: string; - timeout?: number; - maxBuffer?: number; - killSignal?: string; - uid?: number; - gid?: number; - windowsHide?: boolean; - } - - interface ExecOptionsWithStringEncoding extends ExecOptions { - encoding: BufferEncoding; - } - - interface ExecOptionsWithBufferEncoding extends ExecOptions { - encoding: string | null; // specify `null`. - } - - interface ExecException extends Error { - cmd?: string; - killed?: boolean; - code?: number; - signal?: string; - } - - // no `options` definitely means stdout/stderr are `string`. - function exec(command: string, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; - - // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. - function exec(command: string, options: { encoding: "buffer" | null } & ExecOptions, callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess; - - // `options` with well known `encoding` means stdout/stderr are definitely `string`. - function exec(command: string, options: { encoding: BufferEncoding } & ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; - - // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. - // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. - function exec(command: string, options: { encoding: string } & ExecOptions, callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void): ChildProcess; - - // `options` without an `encoding` means stdout/stderr are definitely `string`. - function exec(command: string, options: ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; - - // fallback if nothing else matches. Worst case is always `string | Buffer`. - function exec( - command: string, - options: ({ encoding?: string | null } & ExecOptions) | undefined | null, - callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void, - ): ChildProcess; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace exec { - function __promisify__(command: string): Promise<{ stdout: string, stderr: string }>; - function __promisify__(command: string, options: { encoding: "buffer" | null } & ExecOptions): Promise<{ stdout: Buffer, stderr: Buffer }>; - function __promisify__(command: string, options: { encoding: BufferEncoding } & ExecOptions): Promise<{ stdout: string, stderr: string }>; - function __promisify__(command: string, options: ExecOptions): Promise<{ stdout: string, stderr: string }>; - function __promisify__(command: string, options?: ({ encoding?: string | null } & ExecOptions) | null): Promise<{ stdout: string | Buffer, stderr: string | Buffer }>; - } - - interface ExecFileOptions { - cwd?: string; - env?: NodeJS.ProcessEnv; - timeout?: number; - maxBuffer?: number; - killSignal?: string; - uid?: number; - gid?: number; - windowsHide?: boolean; - windowsVerbatimArguments?: boolean; - shell?: boolean | string; - } - interface ExecFileOptionsWithStringEncoding extends ExecFileOptions { - encoding: BufferEncoding; - } - interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions { - encoding: 'buffer' | null; - } - interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions { - encoding: string; - } - - function execFile(file: string): ChildProcess; - function execFile(file: string, options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null): ChildProcess; - function execFile(file: string, args?: ReadonlyArray | null): ChildProcess; - function execFile(file: string, args: ReadonlyArray | undefined | null, options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null): ChildProcess; - - // no `options` definitely means stdout/stderr are `string`. - function execFile(file: string, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; - function execFile(file: string, args: ReadonlyArray | undefined | null, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; - - // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. - function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess; - function execFile( - file: string, - args: ReadonlyArray | undefined | null, - options: ExecFileOptionsWithBufferEncoding, - callback: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void, - ): ChildProcess; - - // `options` with well known `encoding` means stdout/stderr are definitely `string`. - function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; - function execFile( - file: string, - args: ReadonlyArray | undefined | null, - options: ExecFileOptionsWithStringEncoding, - callback: (error: ExecException | null, stdout: string, stderr: string) => void, - ): ChildProcess; - - // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. - // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. - function execFile( - file: string, - options: ExecFileOptionsWithOtherEncoding, - callback: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void, - ): ChildProcess; - function execFile( - file: string, - args: ReadonlyArray | undefined | null, - options: ExecFileOptionsWithOtherEncoding, - callback: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void, - ): ChildProcess; - - // `options` without an `encoding` means stdout/stderr are definitely `string`. - function execFile(file: string, options: ExecFileOptions, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; - function execFile( - file: string, - args: ReadonlyArray | undefined | null, - options: ExecFileOptions, - callback: (error: ExecException | null, stdout: string, stderr: string) => void - ): ChildProcess; - - // fallback if nothing else matches. Worst case is always `string | Buffer`. - function execFile( - file: string, - options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null, - callback: ((error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null, - ): ChildProcess; - function execFile( - file: string, - args: ReadonlyArray | undefined | null, - options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null, - callback: ((error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null, - ): ChildProcess; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace execFile { - function __promisify__(file: string): Promise<{ stdout: string, stderr: string }>; - function __promisify__(file: string, args: ReadonlyArray | undefined | null): Promise<{ stdout: string, stderr: string }>; - function __promisify__(file: string, options: ExecFileOptionsWithBufferEncoding): Promise<{ stdout: Buffer, stderr: Buffer }>; - function __promisify__(file: string, args: ReadonlyArray | undefined | null, options: ExecFileOptionsWithBufferEncoding): Promise<{ stdout: Buffer, stderr: Buffer }>; - function __promisify__(file: string, options: ExecFileOptionsWithStringEncoding): Promise<{ stdout: string, stderr: string }>; - function __promisify__(file: string, args: ReadonlyArray | undefined | null, options: ExecFileOptionsWithStringEncoding): Promise<{ stdout: string, stderr: string }>; - function __promisify__(file: string, options: ExecFileOptionsWithOtherEncoding): Promise<{ stdout: string | Buffer, stderr: string | Buffer }>; - function __promisify__(file: string, args: ReadonlyArray | undefined | null, options: ExecFileOptionsWithOtherEncoding): Promise<{ stdout: string | Buffer, stderr: string | Buffer }>; - function __promisify__(file: string, options: ExecFileOptions): Promise<{ stdout: string, stderr: string }>; - function __promisify__(file: string, args: ReadonlyArray | undefined | null, options: ExecFileOptions): Promise<{ stdout: string, stderr: string }>; - function __promisify__(file: string, options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null): Promise<{ stdout: string | Buffer, stderr: string | Buffer }>; - function __promisify__( - file: string, - args: ReadonlyArray | undefined | null, - options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null, - ): Promise<{ stdout: string | Buffer, stderr: string | Buffer }>; - } - - interface ForkOptions { - cwd?: string; - env?: NodeJS.ProcessEnv; - execPath?: string; - execArgv?: string[]; - silent?: boolean; - stdio?: StdioOptions; - detached?: boolean; - windowsVerbatimArguments?: boolean; - uid?: number; - gid?: number; - } - function fork(modulePath: string, options?: ForkOptions): ChildProcess; - function fork(modulePath: string, args?: ReadonlyArray, options?: ForkOptions): ChildProcess; - - interface SpawnSyncOptions { - argv0?: string; // Not specified in the docs - cwd?: string; - input?: string | Buffer | NodeJS.TypedArray | DataView; - stdio?: StdioOptions; - env?: NodeJS.ProcessEnv; - uid?: number; - gid?: number; - timeout?: number; - killSignal?: string | number; - maxBuffer?: number; - encoding?: string; - shell?: boolean | string; - windowsVerbatimArguments?: boolean; - windowsHide?: boolean; - } - interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions { - encoding: BufferEncoding; - } - interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions { - encoding: string; // specify `null`. - } - interface SpawnSyncReturns { - pid: number; - output: string[]; - stdout: T; - stderr: T; - status: number | null; - signal: string | null; - error?: Error; - } - function spawnSync(command: string): SpawnSyncReturns; - function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; - function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; - function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns; - function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; - function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; - function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptions): SpawnSyncReturns; - - interface ExecSyncOptions { - cwd?: string; - input?: string | Buffer | Uint8Array; - stdio?: StdioOptions; - env?: NodeJS.ProcessEnv; - shell?: string; - uid?: number; - gid?: number; - timeout?: number; - killSignal?: string | number; - maxBuffer?: number; - encoding?: string; - windowsHide?: boolean; - } - interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions { - encoding: BufferEncoding; - } - interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions { - encoding: string; // specify `null`. - } - function execSync(command: string): Buffer; - function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string; - function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer; - function execSync(command: string, options?: ExecSyncOptions): Buffer; - - interface ExecFileSyncOptions { - cwd?: string; - input?: string | Buffer | NodeJS.TypedArray | DataView; - stdio?: StdioOptions; - env?: NodeJS.ProcessEnv; - uid?: number; - gid?: number; - timeout?: number; - killSignal?: string | number; - maxBuffer?: number; - encoding?: string; - windowsHide?: boolean; - shell?: boolean | string; - } - interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions { - encoding: BufferEncoding; - } - interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions { - encoding: string; // specify `null`. - } - function execFileSync(command: string): Buffer; - function execFileSync(command: string, options?: ExecFileSyncOptionsWithStringEncoding): string; - function execFileSync(command: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer; - function execFileSync(command: string, options?: ExecFileSyncOptions): Buffer; - function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptionsWithStringEncoding): string; - function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer; - function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptions): Buffer; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/cluster.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/cluster.d.ts deleted file mode 100644 index f089a41..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/cluster.d.ts +++ /dev/null @@ -1,260 +0,0 @@ -declare module "cluster" { - import * as child from "child_process"; - import * as events from "events"; - import * as net from "net"; - - // interfaces - interface ClusterSettings { - execArgv?: string[]; // default: process.execArgv - exec?: string; - args?: string[]; - silent?: boolean; - stdio?: any[]; - uid?: number; - gid?: number; - inspectPort?: number | (() => number); - } - - interface Address { - address: string; - port: number; - addressType: number | "udp4" | "udp6"; // 4, 6, -1, "udp4", "udp6" - } - - class Worker extends events.EventEmitter { - id: number; - process: child.ChildProcess; - send(message: any, sendHandle?: any, callback?: (error: Error) => void): boolean; - kill(signal?: string): void; - destroy(signal?: string): void; - disconnect(): void; - isConnected(): boolean; - isDead(): boolean; - exitedAfterDisconnect: boolean; - - /** - * events.EventEmitter - * 1. disconnect - * 2. error - * 3. exit - * 4. listening - * 5. message - * 6. online - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "disconnect", listener: () => void): this; - addListener(event: "error", listener: (error: Error) => void): this; - addListener(event: "exit", listener: (code: number, signal: string) => void): this; - addListener(event: "listening", listener: (address: Address) => void): this; - addListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - addListener(event: "online", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "disconnect"): boolean; - emit(event: "error", error: Error): boolean; - emit(event: "exit", code: number, signal: string): boolean; - emit(event: "listening", address: Address): boolean; - emit(event: "message", message: any, handle: net.Socket | net.Server): boolean; - emit(event: "online"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "disconnect", listener: () => void): this; - on(event: "error", listener: (error: Error) => void): this; - on(event: "exit", listener: (code: number, signal: string) => void): this; - on(event: "listening", listener: (address: Address) => void): this; - on(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - on(event: "online", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "disconnect", listener: () => void): this; - once(event: "error", listener: (error: Error) => void): this; - once(event: "exit", listener: (code: number, signal: string) => void): this; - once(event: "listening", listener: (address: Address) => void): this; - once(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - once(event: "online", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "disconnect", listener: () => void): this; - prependListener(event: "error", listener: (error: Error) => void): this; - prependListener(event: "exit", listener: (code: number, signal: string) => void): this; - prependListener(event: "listening", listener: (address: Address) => void): this; - prependListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - prependListener(event: "online", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "disconnect", listener: () => void): this; - prependOnceListener(event: "error", listener: (error: Error) => void): this; - prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this; - prependOnceListener(event: "listening", listener: (address: Address) => void): this; - prependOnceListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - prependOnceListener(event: "online", listener: () => void): this; - } - - interface Cluster extends events.EventEmitter { - Worker: Worker; - disconnect(callback?: Function): void; - fork(env?: any): Worker; - isMaster: boolean; - isWorker: boolean; - // TODO: cluster.schedulingPolicy - settings: ClusterSettings; - setupMaster(settings?: ClusterSettings): void; - worker?: Worker; - workers?: { - [index: string]: Worker | undefined - }; - - /** - * events.EventEmitter - * 1. disconnect - * 2. exit - * 3. fork - * 4. listening - * 5. message - * 6. online - * 7. setup - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "disconnect", listener: (worker: Worker) => void): this; - addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; - addListener(event: "fork", listener: (worker: Worker) => void): this; - addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; - addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - addListener(event: "online", listener: (worker: Worker) => void): this; - addListener(event: "setup", listener: (settings: any) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "disconnect", worker: Worker): boolean; - emit(event: "exit", worker: Worker, code: number, signal: string): boolean; - emit(event: "fork", worker: Worker): boolean; - emit(event: "listening", worker: Worker, address: Address): boolean; - emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean; - emit(event: "online", worker: Worker): boolean; - emit(event: "setup", settings: any): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "disconnect", listener: (worker: Worker) => void): this; - on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; - on(event: "fork", listener: (worker: Worker) => void): this; - on(event: "listening", listener: (worker: Worker, address: Address) => void): this; - on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - on(event: "online", listener: (worker: Worker) => void): this; - on(event: "setup", listener: (settings: any) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "disconnect", listener: (worker: Worker) => void): this; - once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; - once(event: "fork", listener: (worker: Worker) => void): this; - once(event: "listening", listener: (worker: Worker, address: Address) => void): this; - once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - once(event: "online", listener: (worker: Worker) => void): this; - once(event: "setup", listener: (settings: any) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "disconnect", listener: (worker: Worker) => void): this; - prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; - prependListener(event: "fork", listener: (worker: Worker) => void): this; - prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; - prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. - prependListener(event: "online", listener: (worker: Worker) => void): this; - prependListener(event: "setup", listener: (settings: any) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this; - prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; - prependOnceListener(event: "fork", listener: (worker: Worker) => void): this; - prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; - // the handle is a net.Socket or net.Server object, or undefined. - prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; - prependOnceListener(event: "online", listener: (worker: Worker) => void): this; - prependOnceListener(event: "setup", listener: (settings: any) => void): this; - } - - function disconnect(callback?: Function): void; - function fork(env?: any): Worker; - const isMaster: boolean; - const isWorker: boolean; - // TODO: cluster.schedulingPolicy - const settings: ClusterSettings; - function setupMaster(settings?: ClusterSettings): void; - const worker: Worker; - const workers: { - [index: string]: Worker | undefined - }; - - /** - * events.EventEmitter - * 1. disconnect - * 2. exit - * 3. fork - * 4. listening - * 5. message - * 6. online - * 7. setup - */ - function addListener(event: string, listener: (...args: any[]) => void): Cluster; - function addListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; - function addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; - function addListener(event: "fork", listener: (worker: Worker) => void): Cluster; - function addListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; - // the handle is a net.Socket or net.Server object, or undefined. - function addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; - function addListener(event: "online", listener: (worker: Worker) => void): Cluster; - function addListener(event: "setup", listener: (settings: any) => void): Cluster; - - function emit(event: string | symbol, ...args: any[]): boolean; - function emit(event: "disconnect", worker: Worker): boolean; - function emit(event: "exit", worker: Worker, code: number, signal: string): boolean; - function emit(event: "fork", worker: Worker): boolean; - function emit(event: "listening", worker: Worker, address: Address): boolean; - function emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean; - function emit(event: "online", worker: Worker): boolean; - function emit(event: "setup", settings: any): boolean; - - function on(event: string, listener: (...args: any[]) => void): Cluster; - function on(event: "disconnect", listener: (worker: Worker) => void): Cluster; - function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; - function on(event: "fork", listener: (worker: Worker) => void): Cluster; - function on(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; - function on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined. - function on(event: "online", listener: (worker: Worker) => void): Cluster; - function on(event: "setup", listener: (settings: any) => void): Cluster; - - function once(event: string, listener: (...args: any[]) => void): Cluster; - function once(event: "disconnect", listener: (worker: Worker) => void): Cluster; - function once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; - function once(event: "fork", listener: (worker: Worker) => void): Cluster; - function once(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; - function once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined. - function once(event: "online", listener: (worker: Worker) => void): Cluster; - function once(event: "setup", listener: (settings: any) => void): Cluster; - - function removeListener(event: string, listener: (...args: any[]) => void): Cluster; - function removeAllListeners(event?: string): Cluster; - function setMaxListeners(n: number): Cluster; - function getMaxListeners(): number; - function listeners(event: string): Function[]; - function listenerCount(type: string): number; - - function prependListener(event: string, listener: (...args: any[]) => void): Cluster; - function prependListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; - function prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; - function prependListener(event: "fork", listener: (worker: Worker) => void): Cluster; - function prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; - // the handle is a net.Socket or net.Server object, or undefined. - function prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; - function prependListener(event: "online", listener: (worker: Worker) => void): Cluster; - function prependListener(event: "setup", listener: (settings: any) => void): Cluster; - - function prependOnceListener(event: string, listener: (...args: any[]) => void): Cluster; - function prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; - function prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; - function prependOnceListener(event: "fork", listener: (worker: Worker) => void): Cluster; - function prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; - // the handle is a net.Socket or net.Server object, or undefined. - function prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; - function prependOnceListener(event: "online", listener: (worker: Worker) => void): Cluster; - function prependOnceListener(event: "setup", listener: (settings: any) => void): Cluster; - - function eventNames(): string[]; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/console.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/console.d.ts deleted file mode 100644 index d30d13f..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/console.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare module "console" { - export = console; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/constants.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/constants.d.ts deleted file mode 100644 index 626c698..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/constants.d.ts +++ /dev/null @@ -1,449 +0,0 @@ -/** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */ -declare module "constants" { - /** @deprecated since v6.3.0 - use `os.constants.errno.E2BIG` instead. */ - const E2BIG: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EACCES` instead. */ - const EACCES: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EADDRINUSE` instead. */ - const EADDRINUSE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EADDRNOTAVAIL` instead. */ - const EADDRNOTAVAIL: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EAFNOSUPPORT` instead. */ - const EAFNOSUPPORT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EAGAIN` instead. */ - const EAGAIN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EALREADY` instead. */ - const EALREADY: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EBADF` instead. */ - const EBADF: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EBADMSG` instead. */ - const EBADMSG: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EBUSY` instead. */ - const EBUSY: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ECANCELED` instead. */ - const ECANCELED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ECHILD` instead. */ - const ECHILD: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ECONNABORTED` instead. */ - const ECONNABORTED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ECONNREFUSED` instead. */ - const ECONNREFUSED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ECONNRESET` instead. */ - const ECONNRESET: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EDEADLK` instead. */ - const EDEADLK: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EDESTADDRREQ` instead. */ - const EDESTADDRREQ: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EDOM` instead. */ - const EDOM: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EEXIST` instead. */ - const EEXIST: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EFAULT` instead. */ - const EFAULT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EFBIG` instead. */ - const EFBIG: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EHOSTUNREACH` instead. */ - const EHOSTUNREACH: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EIDRM` instead. */ - const EIDRM: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EILSEQ` instead. */ - const EILSEQ: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EINPROGRESS` instead. */ - const EINPROGRESS: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EINTR` instead. */ - const EINTR: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EINVAL` instead. */ - const EINVAL: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EIO` instead. */ - const EIO: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EISCONN` instead. */ - const EISCONN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EISDIR` instead. */ - const EISDIR: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ELOOP` instead. */ - const ELOOP: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EMFILE` instead. */ - const EMFILE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EMLINK` instead. */ - const EMLINK: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EMSGSIZE` instead. */ - const EMSGSIZE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENAMETOOLONG` instead. */ - const ENAMETOOLONG: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENETDOWN` instead. */ - const ENETDOWN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENETRESET` instead. */ - const ENETRESET: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENETUNREACH` instead. */ - const ENETUNREACH: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENFILE` instead. */ - const ENFILE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOBUFS` instead. */ - const ENOBUFS: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENODATA` instead. */ - const ENODATA: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENODEV` instead. */ - const ENODEV: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOENT` instead. */ - const ENOENT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOEXEC` instead. */ - const ENOEXEC: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOLCK` instead. */ - const ENOLCK: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOLINK` instead. */ - const ENOLINK: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOMEM` instead. */ - const ENOMEM: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOMSG` instead. */ - const ENOMSG: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOPROTOOPT` instead. */ - const ENOPROTOOPT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOSPC` instead. */ - const ENOSPC: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOSR` instead. */ - const ENOSR: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOSTR` instead. */ - const ENOSTR: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOSYS` instead. */ - const ENOSYS: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTCONN` instead. */ - const ENOTCONN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTDIR` instead. */ - const ENOTDIR: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTEMPTY` instead. */ - const ENOTEMPTY: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTSOCK` instead. */ - const ENOTSOCK: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTSUP` instead. */ - const ENOTSUP: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTTY` instead. */ - const ENOTTY: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ENXIO` instead. */ - const ENXIO: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EOPNOTSUPP` instead. */ - const EOPNOTSUPP: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EOVERFLOW` instead. */ - const EOVERFLOW: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EPERM` instead. */ - const EPERM: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EPIPE` instead. */ - const EPIPE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EPROTO` instead. */ - const EPROTO: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EPROTONOSUPPORT` instead. */ - const EPROTONOSUPPORT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EPROTOTYPE` instead. */ - const EPROTOTYPE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ERANGE` instead. */ - const ERANGE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EROFS` instead. */ - const EROFS: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ESPIPE` instead. */ - const ESPIPE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ESRCH` instead. */ - const ESRCH: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ETIME` instead. */ - const ETIME: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ETIMEDOUT` instead. */ - const ETIMEDOUT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.ETXTBSY` instead. */ - const ETXTBSY: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EWOULDBLOCK` instead. */ - const EWOULDBLOCK: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.EXDEV` instead. */ - const EXDEV: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINTR` instead. */ - const WSAEINTR: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEBADF` instead. */ - const WSAEBADF: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEACCES` instead. */ - const WSAEACCES: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEFAULT` instead. */ - const WSAEFAULT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINVAL` instead. */ - const WSAEINVAL: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEMFILE` instead. */ - const WSAEMFILE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEWOULDBLOCK` instead. */ - const WSAEWOULDBLOCK: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINPROGRESS` instead. */ - const WSAEINPROGRESS: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEALREADY` instead. */ - const WSAEALREADY: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOTSOCK` instead. */ - const WSAENOTSOCK: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEDESTADDRREQ` instead. */ - const WSAEDESTADDRREQ: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEMSGSIZE` instead. */ - const WSAEMSGSIZE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPROTOTYPE` instead. */ - const WSAEPROTOTYPE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOPROTOOPT` instead. */ - const WSAENOPROTOOPT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPROTONOSUPPORT` instead. */ - const WSAEPROTONOSUPPORT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAESOCKTNOSUPPORT` instead. */ - const WSAESOCKTNOSUPPORT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEOPNOTSUPP` instead. */ - const WSAEOPNOTSUPP: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPFNOSUPPORT` instead. */ - const WSAEPFNOSUPPORT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEAFNOSUPPORT` instead. */ - const WSAEAFNOSUPPORT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEADDRINUSE` instead. */ - const WSAEADDRINUSE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEADDRNOTAVAIL` instead. */ - const WSAEADDRNOTAVAIL: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENETDOWN` instead. */ - const WSAENETDOWN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENETUNREACH` instead. */ - const WSAENETUNREACH: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENETRESET` instead. */ - const WSAENETRESET: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAECONNABORTED` instead. */ - const WSAECONNABORTED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAECONNRESET` instead. */ - const WSAECONNRESET: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOBUFS` instead. */ - const WSAENOBUFS: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEISCONN` instead. */ - const WSAEISCONN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOTCONN` instead. */ - const WSAENOTCONN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAESHUTDOWN` instead. */ - const WSAESHUTDOWN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAETOOMANYREFS` instead. */ - const WSAETOOMANYREFS: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAETIMEDOUT` instead. */ - const WSAETIMEDOUT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAECONNREFUSED` instead. */ - const WSAECONNREFUSED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAELOOP` instead. */ - const WSAELOOP: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENAMETOOLONG` instead. */ - const WSAENAMETOOLONG: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEHOSTDOWN` instead. */ - const WSAEHOSTDOWN: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEHOSTUNREACH` instead. */ - const WSAEHOSTUNREACH: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOTEMPTY` instead. */ - const WSAENOTEMPTY: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPROCLIM` instead. */ - const WSAEPROCLIM: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEUSERS` instead. */ - const WSAEUSERS: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEDQUOT` instead. */ - const WSAEDQUOT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAESTALE` instead. */ - const WSAESTALE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEREMOTE` instead. */ - const WSAEREMOTE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSASYSNOTREADY` instead. */ - const WSASYSNOTREADY: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAVERNOTSUPPORTED` instead. */ - const WSAVERNOTSUPPORTED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSANOTINITIALISED` instead. */ - const WSANOTINITIALISED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEDISCON` instead. */ - const WSAEDISCON: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOMORE` instead. */ - const WSAENOMORE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAECANCELLED` instead. */ - const WSAECANCELLED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINVALIDPROCTABLE` instead. */ - const WSAEINVALIDPROCTABLE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINVALIDPROVIDER` instead. */ - const WSAEINVALIDPROVIDER: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPROVIDERFAILEDINIT` instead. */ - const WSAEPROVIDERFAILEDINIT: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSASYSCALLFAILURE` instead. */ - const WSASYSCALLFAILURE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSASERVICE_NOT_FOUND` instead. */ - const WSASERVICE_NOT_FOUND: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSATYPE_NOT_FOUND` instead. */ - const WSATYPE_NOT_FOUND: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSA_E_NO_MORE` instead. */ - const WSA_E_NO_MORE: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSA_E_CANCELLED` instead. */ - const WSA_E_CANCELLED: number; - /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEREFUSED` instead. */ - const WSAEREFUSED: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGHUP` instead. */ - const SIGHUP: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGINT` instead. */ - const SIGINT: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGILL` instead. */ - const SIGILL: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGABRT` instead. */ - const SIGABRT: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGFPE` instead. */ - const SIGFPE: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGKILL` instead. */ - const SIGKILL: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGSEGV` instead. */ - const SIGSEGV: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTERM` instead. */ - const SIGTERM: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGBREAK` instead. */ - const SIGBREAK: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGWINCH` instead. */ - const SIGWINCH: number; - const SSL_OP_ALL: number; - const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number; - const SSL_OP_CIPHER_SERVER_PREFERENCE: number; - const SSL_OP_CISCO_ANYCONNECT: number; - const SSL_OP_COOKIE_EXCHANGE: number; - const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number; - const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number; - const SSL_OP_EPHEMERAL_RSA: number; - const SSL_OP_LEGACY_SERVER_CONNECT: number; - const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number; - const SSL_OP_MICROSOFT_SESS_ID_BUG: number; - const SSL_OP_MSIE_SSLV2_RSA_PADDING: number; - const SSL_OP_NETSCAPE_CA_DN_BUG: number; - const SSL_OP_NETSCAPE_CHALLENGE_BUG: number; - const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number; - const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number; - const SSL_OP_NO_COMPRESSION: number; - const SSL_OP_NO_QUERY_MTU: number; - const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number; - const SSL_OP_NO_SSLv2: number; - const SSL_OP_NO_SSLv3: number; - const SSL_OP_NO_TICKET: number; - const SSL_OP_NO_TLSv1: number; - const SSL_OP_NO_TLSv1_1: number; - const SSL_OP_NO_TLSv1_2: number; - const SSL_OP_PKCS1_CHECK_1: number; - const SSL_OP_PKCS1_CHECK_2: number; - const SSL_OP_SINGLE_DH_USE: number; - const SSL_OP_SINGLE_ECDH_USE: number; - const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number; - const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number; - const SSL_OP_TLS_BLOCK_PADDING_BUG: number; - const SSL_OP_TLS_D5_BUG: number; - const SSL_OP_TLS_ROLLBACK_BUG: number; - const ENGINE_METHOD_DSA: number; - const ENGINE_METHOD_DH: number; - const ENGINE_METHOD_RAND: number; - const ENGINE_METHOD_ECDH: number; - const ENGINE_METHOD_ECDSA: number; - const ENGINE_METHOD_CIPHERS: number; - const ENGINE_METHOD_DIGESTS: number; - const ENGINE_METHOD_STORE: number; - const ENGINE_METHOD_PKEY_METHS: number; - const ENGINE_METHOD_PKEY_ASN1_METHS: number; - const ENGINE_METHOD_ALL: number; - const ENGINE_METHOD_NONE: number; - const DH_CHECK_P_NOT_SAFE_PRIME: number; - const DH_CHECK_P_NOT_PRIME: number; - const DH_UNABLE_TO_CHECK_GENERATOR: number; - const DH_NOT_SUITABLE_GENERATOR: number; - const NPN_ENABLED: number; - const RSA_PKCS1_PADDING: number; - const RSA_SSLV23_PADDING: number; - const RSA_NO_PADDING: number; - const RSA_PKCS1_OAEP_PADDING: number; - const RSA_X931_PADDING: number; - const RSA_PKCS1_PSS_PADDING: number; - const POINT_CONVERSION_COMPRESSED: number; - const POINT_CONVERSION_UNCOMPRESSED: number; - const POINT_CONVERSION_HYBRID: number; - const O_RDONLY: number; - const O_WRONLY: number; - const O_RDWR: number; - const S_IFMT: number; - const S_IFREG: number; - const S_IFDIR: number; - const S_IFCHR: number; - const S_IFBLK: number; - const S_IFIFO: number; - const S_IFSOCK: number; - const S_IRWXU: number; - const S_IRUSR: number; - const S_IWUSR: number; - const S_IXUSR: number; - const S_IRWXG: number; - const S_IRGRP: number; - const S_IWGRP: number; - const S_IXGRP: number; - const S_IRWXO: number; - const S_IROTH: number; - const S_IWOTH: number; - const S_IXOTH: number; - const S_IFLNK: number; - const O_CREAT: number; - const O_EXCL: number; - const O_NOCTTY: number; - const O_DIRECTORY: number; - const O_NOATIME: number; - const O_NOFOLLOW: number; - const O_SYNC: number; - const O_DSYNC: number; - const O_SYMLINK: number; - const O_DIRECT: number; - const O_NONBLOCK: number; - const O_TRUNC: number; - const O_APPEND: number; - const F_OK: number; - const R_OK: number; - const W_OK: number; - const X_OK: number; - const COPYFILE_EXCL: number; - const COPYFILE_FICLONE: number; - const COPYFILE_FICLONE_FORCE: number; - const UV_UDP_REUSEADDR: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGQUIT` instead. */ - const SIGQUIT: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTRAP` instead. */ - const SIGTRAP: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGIOT` instead. */ - const SIGIOT: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGBUS` instead. */ - const SIGBUS: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGUSR1` instead. */ - const SIGUSR1: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGUSR2` instead. */ - const SIGUSR2: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGPIPE` instead. */ - const SIGPIPE: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGALRM` instead. */ - const SIGALRM: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGCHLD` instead. */ - const SIGCHLD: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGSTKFLT` instead. */ - const SIGSTKFLT: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGCONT` instead. */ - const SIGCONT: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGSTOP` instead. */ - const SIGSTOP: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTSTP` instead. */ - const SIGTSTP: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTTIN` instead. */ - const SIGTTIN: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTTOU` instead. */ - const SIGTTOU: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGURG` instead. */ - const SIGURG: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGXCPU` instead. */ - const SIGXCPU: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGXFSZ` instead. */ - const SIGXFSZ: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGVTALRM` instead. */ - const SIGVTALRM: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGPROF` instead. */ - const SIGPROF: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGIO` instead. */ - const SIGIO: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGPOLL` instead. */ - const SIGPOLL: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGPWR` instead. */ - const SIGPWR: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGSYS` instead. */ - const SIGSYS: number; - /** @deprecated since v6.3.0 - use `os.constants.signals.SIGUNUSED` instead. */ - const SIGUNUSED: number; - const defaultCoreCipherList: string; - const defaultCipherList: string; - const ENGINE_METHOD_RSA: number; - const ALPN_ENABLED: number; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/crypto.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/crypto.d.ts deleted file mode 100644 index 7cf191c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/crypto.d.ts +++ /dev/null @@ -1,372 +0,0 @@ -declare module "crypto" { - import * as stream from "stream"; - - interface Certificate { - exportChallenge(spkac: string | Buffer | NodeJS.TypedArray | DataView): Buffer; - exportPublicKey(spkac: string | Buffer | NodeJS.TypedArray | DataView): Buffer; - verifySpkac(spkac: Buffer | NodeJS.TypedArray | DataView): boolean; - } - const Certificate: { - new(): Certificate; - (): Certificate; - }; - - /** @deprecated since v10.0.0 */ - const fips: boolean; - - interface CredentialDetails { - pfx: string; - key: string; - passphrase: string; - cert: string; - ca: string | string[]; - crl: string | string[]; - ciphers: string; - } - /** @deprecated since v0.11.13 - use tls.SecureContext instead. */ - interface Credentials { context?: any; } - /** @deprecated since v0.11.13 - use tls.createSecureContext instead. */ - function createCredentials(details: CredentialDetails): Credentials; - function createHash(algorithm: string, options?: stream.TransformOptions): Hash; - function createHmac(algorithm: string, key: string | Buffer | NodeJS.TypedArray | DataView, options?: stream.TransformOptions): Hmac; - - type Utf8AsciiLatin1Encoding = "utf8" | "ascii" | "latin1"; - type HexBase64Latin1Encoding = "latin1" | "hex" | "base64"; - type Utf8AsciiBinaryEncoding = "utf8" | "ascii" | "binary"; - type HexBase64BinaryEncoding = "binary" | "base64" | "hex"; - type ECDHKeyFormat = "compressed" | "uncompressed" | "hybrid"; - - interface Hash extends stream.Transform { - update(data: string | Buffer | NodeJS.TypedArray | DataView): Hash; - update(data: string, input_encoding: Utf8AsciiLatin1Encoding): Hash; - digest(): Buffer; - digest(encoding: HexBase64Latin1Encoding): string; - } - interface Hmac extends stream.Transform { - update(data: string | Buffer | NodeJS.TypedArray | DataView): Hmac; - update(data: string, input_encoding: Utf8AsciiLatin1Encoding): Hmac; - digest(): Buffer; - digest(encoding: HexBase64Latin1Encoding): string; - } - type CipherCCMTypes = 'aes-128-ccm' | 'aes-192-ccm' | 'aes-256-ccm'; - type CipherGCMTypes = 'aes-128-gcm' | 'aes-192-gcm' | 'aes-256-gcm'; - interface CipherCCMOptions extends stream.TransformOptions { - authTagLength: number; - } - interface CipherGCMOptions extends stream.TransformOptions { - authTagLength?: number; - } - /** @deprecated since v10.0.0 use createCipheriv() */ - function createCipher(algorithm: CipherCCMTypes, password: string | Buffer | NodeJS.TypedArray | DataView, options: CipherCCMOptions): CipherCCM; - /** @deprecated since v10.0.0 use createCipheriv() */ - function createCipher(algorithm: CipherGCMTypes, password: string | Buffer | NodeJS.TypedArray | DataView, options?: CipherGCMOptions): CipherGCM; - /** @deprecated since v10.0.0 use createCipheriv() */ - function createCipher(algorithm: string, password: string | Buffer | NodeJS.TypedArray | DataView, options?: stream.TransformOptions): Cipher; - - function createCipheriv(algorithm: CipherCCMTypes, key: string | Buffer | NodeJS.TypedArray | DataView, iv: string | Buffer | NodeJS.TypedArray | DataView, options: CipherCCMOptions): CipherCCM; - function createCipheriv(algorithm: CipherGCMTypes, key: string | Buffer | NodeJS.TypedArray | DataView, iv: string | Buffer | NodeJS.TypedArray | DataView, options?: CipherGCMOptions): CipherGCM; - function createCipheriv(algorithm: string, key: string | Buffer | NodeJS.TypedArray | DataView, iv: string | Buffer | NodeJS.TypedArray | DataView, options?: stream.TransformOptions): Cipher; - - interface Cipher extends stream.Transform { - update(data: string | Buffer | NodeJS.TypedArray | DataView): Buffer; - update(data: string, input_encoding: Utf8AsciiBinaryEncoding): Buffer; - update(data: Buffer | NodeJS.TypedArray | DataView, output_encoding: HexBase64BinaryEncoding): string; - update(data: Buffer | NodeJS.TypedArray | DataView, input_encoding: any, output_encoding: HexBase64BinaryEncoding): string; - // second arg ignored - update(data: string, input_encoding: Utf8AsciiBinaryEncoding, output_encoding: HexBase64BinaryEncoding): string; - final(): Buffer; - final(output_encoding: string): string; - setAutoPadding(auto_padding?: boolean): this; - // getAuthTag(): Buffer; - // setAAD(buffer: Buffer): this; // docs only say buffer - } - interface CipherCCM extends Cipher { - setAAD(buffer: Buffer, options: { plaintextLength: number }): this; - getAuthTag(): Buffer; - } - interface CipherGCM extends Cipher { - setAAD(buffer: Buffer, options?: { plaintextLength: number }): this; - getAuthTag(): Buffer; - } - /** @deprecated since v10.0.0 use createDecipheriv() */ - function createDecipher(algorithm: CipherCCMTypes, password: string | Buffer | NodeJS.TypedArray | DataView, options: CipherCCMOptions): DecipherCCM; - /** @deprecated since v10.0.0 use createDecipheriv() */ - function createDecipher(algorithm: CipherGCMTypes, password: string | Buffer | NodeJS.TypedArray | DataView, options?: CipherGCMOptions): DecipherGCM; - /** @deprecated since v10.0.0 use createDecipheriv() */ - function createDecipher(algorithm: string, password: string | Buffer | NodeJS.TypedArray | DataView, options?: stream.TransformOptions): Decipher; - - function createDecipheriv( - algorithm: CipherCCMTypes, - key: string | Buffer | NodeJS.TypedArray | DataView, - iv: string | Buffer | NodeJS.TypedArray | DataView, - options: CipherCCMOptions, - ): DecipherCCM; - function createDecipheriv( - algorithm: CipherGCMTypes, - key: string | Buffer | NodeJS.TypedArray | DataView, - iv: string | Buffer | NodeJS.TypedArray | DataView, - options?: CipherGCMOptions, - ): DecipherGCM; - function createDecipheriv(algorithm: string, key: string | Buffer | NodeJS.TypedArray | DataView, iv: string | Buffer | NodeJS.TypedArray | DataView, options?: stream.TransformOptions): Decipher; - - interface Decipher extends stream.Transform { - update(data: Buffer | NodeJS.TypedArray | DataView): Buffer; - update(data: string, input_encoding: HexBase64BinaryEncoding): Buffer; - update(data: Buffer | NodeJS.TypedArray | DataView, input_encoding: HexBase64BinaryEncoding | undefined, output_encoding: Utf8AsciiBinaryEncoding): string; - // second arg is ignored - update(data: string, input_encoding: HexBase64BinaryEncoding, output_encoding: Utf8AsciiBinaryEncoding): string; - final(): Buffer; - final(output_encoding: string): string; - setAutoPadding(auto_padding?: boolean): this; - // setAuthTag(tag: Buffer | NodeJS.TypedArray | DataView): this; - // setAAD(buffer: Buffer | NodeJS.TypedArray | DataView): this; - } - interface DecipherCCM extends Decipher { - setAuthTag(buffer: Buffer | NodeJS.TypedArray | DataView): this; - setAAD(buffer: Buffer | NodeJS.TypedArray | DataView, options: { plaintextLength: number }): this; - } - interface DecipherGCM extends Decipher { - setAuthTag(buffer: Buffer | NodeJS.TypedArray | DataView): this; - setAAD(buffer: Buffer | NodeJS.TypedArray | DataView, options?: { plaintextLength: number }): this; - } - - function createSign(algorithm: string, options?: stream.WritableOptions): Signer; - interface Signer extends NodeJS.WritableStream { - update(data: string | Buffer | NodeJS.TypedArray | DataView): Signer; - update(data: string, input_encoding: Utf8AsciiLatin1Encoding): Signer; - sign(private_key: string | { key: string; passphrase?: string, padding?: number, saltLength?: number }): Buffer; - sign(private_key: string | { key: string; passphrase?: string, padding?: number, saltLength?: number }, output_format: HexBase64Latin1Encoding): string; - } - function createVerify(algorith: string, options?: stream.WritableOptions): Verify; - interface Verify extends NodeJS.WritableStream { - update(data: string | Buffer | NodeJS.TypedArray | DataView): Verify; - update(data: string, input_encoding: Utf8AsciiLatin1Encoding): Verify; - verify(object: string | Object, signature: Buffer | NodeJS.TypedArray | DataView): boolean; - verify(object: string | Object, signature: string, signature_format: HexBase64Latin1Encoding): boolean; - // https://nodejs.org/api/crypto.html#crypto_verifier_verify_object_signature_signature_format - // The signature field accepts a TypedArray type, but it is only available starting ES2017 - } - function createDiffieHellman(prime_length: number, generator?: number | Buffer | NodeJS.TypedArray | DataView): DiffieHellman; - function createDiffieHellman(prime: Buffer | NodeJS.TypedArray | DataView): DiffieHellman; - function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding): DiffieHellman; - function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding, generator: number | Buffer | NodeJS.TypedArray | DataView): DiffieHellman; - function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding, generator: string, generator_encoding: HexBase64Latin1Encoding): DiffieHellman; - interface DiffieHellman { - generateKeys(): Buffer; - generateKeys(encoding: HexBase64Latin1Encoding): string; - computeSecret(other_public_key: Buffer | NodeJS.TypedArray | DataView): Buffer; - computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding): Buffer; - computeSecret(other_public_key: Buffer | NodeJS.TypedArray | DataView, output_encoding: HexBase64Latin1Encoding): string; - computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding, output_encoding: HexBase64Latin1Encoding): string; - getPrime(): Buffer; - getPrime(encoding: HexBase64Latin1Encoding): string; - getGenerator(): Buffer; - getGenerator(encoding: HexBase64Latin1Encoding): string; - getPublicKey(): Buffer; - getPublicKey(encoding: HexBase64Latin1Encoding): string; - getPrivateKey(): Buffer; - getPrivateKey(encoding: HexBase64Latin1Encoding): string; - setPublicKey(public_key: Buffer | NodeJS.TypedArray | DataView): void; - setPublicKey(public_key: string, encoding: string): void; - setPrivateKey(private_key: Buffer | NodeJS.TypedArray | DataView): void; - setPrivateKey(private_key: string, encoding: string): void; - verifyError: number; - } - function getDiffieHellman(group_name: string): DiffieHellman; - function pbkdf2( - password: string | Buffer | NodeJS.TypedArray | DataView, - salt: string | Buffer | NodeJS.TypedArray | DataView, - iterations: number, - keylen: number, - digest: string, - callback: (err: Error | null, derivedKey: Buffer) => any, - ): void; - function pbkdf2Sync(password: string | Buffer | NodeJS.TypedArray | DataView, salt: string | Buffer | NodeJS.TypedArray | DataView, iterations: number, keylen: number, digest: string): Buffer; - - function randomBytes(size: number): Buffer; - function randomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; - function pseudoRandomBytes(size: number): Buffer; - function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; - - function randomFillSync(buffer: T, offset?: number, size?: number): T; - function randomFill(buffer: T, callback: (err: Error | null, buf: T) => void): void; - function randomFill(buffer: T, offset: number, callback: (err: Error | null, buf: T) => void): void; - function randomFill(buffer: T, offset: number, size: number, callback: (err: Error | null, buf: T) => void): void; - - interface ScryptOptions { - N?: number; - r?: number; - p?: number; - maxmem?: number; - } - function scrypt( - password: string | Buffer | NodeJS.TypedArray | DataView, - salt: string | Buffer | NodeJS.TypedArray | DataView, - keylen: number, callback: (err: Error | null, derivedKey: Buffer) => void, - ): void; - function scrypt( - password: string | Buffer | NodeJS.TypedArray | DataView, - salt: string | Buffer | NodeJS.TypedArray | DataView, - keylen: number, - options: ScryptOptions, - callback: (err: Error | null, derivedKey: Buffer) => void, - ): void; - function scryptSync(password: string | Buffer | NodeJS.TypedArray | DataView, salt: string | Buffer | NodeJS.TypedArray | DataView, keylen: number, options?: ScryptOptions): Buffer; - - interface RsaPublicKey { - key: string; - padding?: number; - } - interface RsaPrivateKey { - key: string; - passphrase?: string; - padding?: number; - } - function publicEncrypt(public_key: string | RsaPublicKey, buffer: Buffer | NodeJS.TypedArray | DataView): Buffer; - function privateDecrypt(private_key: string | RsaPrivateKey, buffer: Buffer | NodeJS.TypedArray | DataView): Buffer; - function privateEncrypt(private_key: string | RsaPrivateKey, buffer: Buffer | NodeJS.TypedArray | DataView): Buffer; - function publicDecrypt(public_key: string | RsaPublicKey, buffer: Buffer | NodeJS.TypedArray | DataView): Buffer; - function getCiphers(): string[]; - function getCurves(): string[]; - function getFips(): 1 | 0; - function getHashes(): string[]; - class ECDH { - static convertKey( - key: string | Buffer | NodeJS.TypedArray | DataView, - curve: string, - inputEncoding?: HexBase64Latin1Encoding, - outputEncoding?: "latin1" | "hex" | "base64", - format?: "uncompressed" | "compressed" | "hybrid", - ): Buffer | string; - generateKeys(): Buffer; - generateKeys(encoding: HexBase64Latin1Encoding, format?: ECDHKeyFormat): string; - computeSecret(other_public_key: Buffer | NodeJS.TypedArray | DataView): Buffer; - computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding): Buffer; - computeSecret(other_public_key: Buffer | NodeJS.TypedArray | DataView, output_encoding: HexBase64Latin1Encoding): string; - computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding, output_encoding: HexBase64Latin1Encoding): string; - getPrivateKey(): Buffer; - getPrivateKey(encoding: HexBase64Latin1Encoding): string; - getPublicKey(): Buffer; - getPublicKey(encoding: HexBase64Latin1Encoding, format?: ECDHKeyFormat): string; - setPrivateKey(private_key: Buffer | NodeJS.TypedArray | DataView): void; - setPrivateKey(private_key: string, encoding: HexBase64Latin1Encoding): void; - } - function createECDH(curve_name: string): ECDH; - function timingSafeEqual(a: Buffer | NodeJS.TypedArray | DataView, b: Buffer | NodeJS.TypedArray | DataView): boolean; - /** @deprecated since v10.0.0 */ - const DEFAULT_ENCODING: string; - - export type KeyType = 'rsa' | 'dsa' | 'ec'; - export type KeyFormat = 'pem' | 'der'; - - interface BasePrivateKeyEncodingOptions { - format: T; - cipher?: string; - passphrase?: string; - } - - interface RSAKeyPairOptions { - /** - * Key size in bits - */ - modulusLength: number; - /** - * @default 0x10001 - */ - publicExponent?: number; - - publicKeyEncoding: { - type: 'pkcs1' | 'spki'; - format: PubF; - }; - privateKeyEncoding: BasePrivateKeyEncodingOptions & { - type: 'pkcs1' | 'pkcs8'; - }; - } - - interface DSAKeyPairOptions { - /** - * Key size in bits - */ - modulusLength: number; - /** - * Size of q in bits - */ - divisorLength: number; - - publicKeyEncoding: { - type: 'spki'; - format: PubF; - }; - privateKeyEncoding: BasePrivateKeyEncodingOptions & { - type: 'pkcs8'; - }; - } - - interface ECKeyPairOptions { - /** - * Name of the curve to use. - */ - namedCurve: string; - - publicKeyEncoding: { - type: 'pkcs1' | 'spki'; - format: PubF; - }; - privateKeyEncoding: BasePrivateKeyEncodingOptions & { - type: 'sec1' | 'pkcs8'; - }; - } - - interface KeyPairSyncResult { - publicKey: T1; - privateKey: T2; - } - - function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult; - - function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult; - - function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; - function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'der'>): KeyPairSyncResult; - - function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; - function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; - function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; - function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; - - function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; - function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; - function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; - function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; - - function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; - function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; - function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; - function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; - - namespace generateKeyPair { - function __promisify__(type: "rsa", options: RSAKeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>; - function __promisify__(type: "rsa", options: RSAKeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>; - function __promisify__(type: "rsa", options: RSAKeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>; - function __promisify__(type: "rsa", options: RSAKeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>; - - function __promisify__(type: "dsa", options: DSAKeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>; - function __promisify__(type: "dsa", options: DSAKeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>; - function __promisify__(type: "dsa", options: DSAKeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>; - function __promisify__(type: "dsa", options: DSAKeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>; - - function __promisify__(type: "ec", options: ECKeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>; - function __promisify__(type: "ec", options: ECKeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>; - function __promisify__(type: "ec", options: ECKeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>; - function __promisify__(type: "ec", options: ECKeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/dgram.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/dgram.d.ts deleted file mode 100644 index fa05f2b..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/dgram.d.ts +++ /dev/null @@ -1,97 +0,0 @@ -declare module "dgram" { - import { AddressInfo } from "net"; - import * as dns from "dns"; - import * as events from "events"; - - interface RemoteInfo { - address: string; - family: string; - port: number; - } - - interface BindOptions { - port: number; - address?: string; - exclusive?: boolean; - } - - type SocketType = "udp4" | "udp6"; - - interface SocketOptions { - type: SocketType; - reuseAddr?: boolean; - recvBufferSize?: number; - sendBufferSize?: number; - lookup?: (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void; - } - - function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; - function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; - - class Socket extends events.EventEmitter { - send(msg: Buffer | string | Uint8Array | ReadonlyArray, port: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; - send(msg: Buffer | string | Uint8Array, offset: number, length: number, port: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; - bind(port?: number, address?: string, callback?: () => void): void; - bind(port?: number, callback?: () => void): void; - bind(callback?: () => void): void; - bind(options: BindOptions, callback?: Function): void; - close(callback?: () => void): void; - address(): AddressInfo | string; - setBroadcast(flag: boolean): void; - setTTL(ttl: number): void; - setMulticastTTL(ttl: number): void; - setMulticastInterface(multicastInterface: string): void; - setMulticastLoopback(flag: boolean): void; - addMembership(multicastAddress: string, multicastInterface?: string): void; - dropMembership(multicastAddress: string, multicastInterface?: string): void; - ref(): this; - unref(): this; - setRecvBufferSize(size: number): void; - setSendBufferSize(size: number): void; - getRecvBufferSize(): number; - getSendBufferSize(): number; - - /** - * events.EventEmitter - * 1. close - * 2. error - * 3. listening - * 4. message - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "close", listener: () => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "listening", listener: () => void): this; - addListener(event: "message", listener: (msg: Buffer, rinfo: AddressInfo) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "close"): boolean; - emit(event: "error", err: Error): boolean; - emit(event: "listening"): boolean; - emit(event: "message", msg: Buffer, rinfo: AddressInfo): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "close", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "listening", listener: () => void): this; - on(event: "message", listener: (msg: Buffer, rinfo: AddressInfo) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "close", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "listening", listener: () => void): this; - once(event: "message", listener: (msg: Buffer, rinfo: AddressInfo) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "close", listener: () => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "listening", listener: () => void): this; - prependListener(event: "message", listener: (msg: Buffer, rinfo: AddressInfo) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "listening", listener: () => void): this; - prependOnceListener(event: "message", listener: (msg: Buffer, rinfo: AddressInfo) => void): this; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/dns.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/dns.d.ts deleted file mode 100644 index 879d690..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/dns.d.ts +++ /dev/null @@ -1,366 +0,0 @@ -declare module "dns" { - // Supported getaddrinfo flags. - const ADDRCONFIG: number; - const V4MAPPED: number; - - interface LookupOptions { - family?: number; - hints?: number; - all?: boolean; - verbatim?: boolean; - } - - interface LookupOneOptions extends LookupOptions { - all?: false; - } - - interface LookupAllOptions extends LookupOptions { - all: true; - } - - interface LookupAddress { - address: string; - family: number; - } - - function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; - function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; - function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void; - function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void; - function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace lookup { - function __promisify__(hostname: string, options: LookupAllOptions): Promise<{ address: LookupAddress[] }>; - function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise<{ address: string, family: number }>; - function __promisify__(hostname: string, options?: LookupOptions | number): Promise<{ address: string | LookupAddress[], family?: number }>; - } - - function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void; - - namespace lookupService { - function __promisify__(address: string, port: number): Promise<{ hostname: string, service: string }>; - } - - interface ResolveOptions { - ttl: boolean; - } - - interface ResolveWithTtlOptions extends ResolveOptions { - ttl: true; - } - - interface RecordWithTtl { - address: string; - ttl: number; - } - - /** @deprecated Use AnyARecord or AnyAaaaRecord instead. */ - type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord; - - interface AnyARecord extends RecordWithTtl { - type: "A"; - } - - interface AnyAaaaRecord extends RecordWithTtl { - type: "AAAA"; - } - - interface MxRecord { - priority: number; - exchange: string; - } - - interface AnyMxRecord extends MxRecord { - type: "MX"; - } - - interface NaptrRecord { - flags: string; - service: string; - regexp: string; - replacement: string; - order: number; - preference: number; - } - - interface AnyNaptrRecord extends NaptrRecord { - type: "NAPTR"; - } - - interface SoaRecord { - nsname: string; - hostmaster: string; - serial: number; - refresh: number; - retry: number; - expire: number; - minttl: number; - } - - interface AnySoaRecord extends SoaRecord { - type: "SOA"; - } - - interface SrvRecord { - priority: number; - weight: number; - port: number; - name: string; - } - - interface AnySrvRecord extends SrvRecord { - type: "SRV"; - } - - interface AnyTxtRecord { - type: "TXT"; - entries: string[]; - } - - interface AnyNsRecord { - type: "NS"; - value: string; - } - - interface AnyPtrRecord { - type: "PTR"; - value: string; - } - - interface AnyCnameRecord { - type: "CNAME"; - value: string; - } - - type AnyRecord = AnyARecord | - AnyAaaaRecord | - AnyCnameRecord | - AnyMxRecord | - AnyNaptrRecord | - AnyNsRecord | - AnyPtrRecord | - AnySoaRecord | - AnySrvRecord | - AnyTxtRecord; - - function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - function resolve(hostname: string, rrtype: "A", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - function resolve(hostname: string, rrtype: "AAAA", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - function resolve(hostname: string, rrtype: "ANY", callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; - function resolve(hostname: string, rrtype: "CNAME", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - function resolve(hostname: string, rrtype: "MX", callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; - function resolve(hostname: string, rrtype: "NAPTR", callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; - function resolve(hostname: string, rrtype: "NS", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - function resolve(hostname: string, rrtype: "PTR", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - function resolve(hostname: string, rrtype: "SOA", callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void; - function resolve(hostname: string, rrtype: "SRV", callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; - function resolve(hostname: string, rrtype: "TXT", callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; - function resolve( - hostname: string, - rrtype: string, - callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void, - ): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace resolve { - function __promisify__(hostname: string, rrtype?: "A" | "AAAA" | "CNAME" | "NS" | "PTR"): Promise; - function __promisify__(hostname: string, rrtype: "ANY"): Promise; - function __promisify__(hostname: string, rrtype: "MX"): Promise; - function __promisify__(hostname: string, rrtype: "NAPTR"): Promise; - function __promisify__(hostname: string, rrtype: "SOA"): Promise; - function __promisify__(hostname: string, rrtype: "SRV"): Promise; - function __promisify__(hostname: string, rrtype: "TXT"): Promise; - function __promisify__(hostname: string, rrtype: string): Promise; - } - - function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; - function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace resolve4 { - function __promisify__(hostname: string): Promise; - function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; - function __promisify__(hostname: string, options?: ResolveOptions): Promise; - } - - function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; - function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace resolve6 { - function __promisify__(hostname: string): Promise; - function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; - function __promisify__(hostname: string, options?: ResolveOptions): Promise; - } - - function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - namespace resolveCname { - function __promisify__(hostname: string): Promise; - } - - function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; - namespace resolveMx { - function __promisify__(hostname: string): Promise; - } - - function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; - namespace resolveNaptr { - function __promisify__(hostname: string): Promise; - } - - function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - namespace resolveNs { - function __promisify__(hostname: string): Promise; - } - - function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; - namespace resolvePtr { - function __promisify__(hostname: string): Promise; - } - - function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void; - namespace resolveSoa { - function __promisify__(hostname: string): Promise; - } - - function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; - namespace resolveSrv { - function __promisify__(hostname: string): Promise; - } - - function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; - namespace resolveTxt { - function __promisify__(hostname: string): Promise; - } - - function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; - namespace resolveAny { - function __promisify__(hostname: string): Promise; - } - - function reverse(ip: string, callback: (err: NodeJS.ErrnoException | null, hostnames: string[]) => void): void; - function setServers(servers: ReadonlyArray): void; - function getServers(): string[]; - - // Error codes - const NODATA: string; - const FORMERR: string; - const SERVFAIL: string; - const NOTFOUND: string; - const NOTIMP: string; - const REFUSED: string; - const BADQUERY: string; - const BADNAME: string; - const BADFAMILY: string; - const BADRESP: string; - const CONNREFUSED: string; - const TIMEOUT: string; - const EOF: string; - const FILE: string; - const NOMEM: string; - const DESTRUCTION: string; - const BADSTR: string; - const BADFLAGS: string; - const NONAME: string; - const BADHINTS: string; - const NOTINITIALIZED: string; - const LOADIPHLPAPI: string; - const ADDRGETNETWORKPARAMS: string; - const CANCELLED: string; - - class Resolver { - getServers: typeof getServers; - setServers: typeof setServers; - resolve: typeof resolve; - resolve4: typeof resolve4; - resolve6: typeof resolve6; - resolveAny: typeof resolveAny; - resolveCname: typeof resolveCname; - resolveMx: typeof resolveMx; - resolveNaptr: typeof resolveNaptr; - resolveNs: typeof resolveNs; - resolvePtr: typeof resolvePtr; - resolveSoa: typeof resolveSoa; - resolveSrv: typeof resolveSrv; - resolveTxt: typeof resolveTxt; - reverse: typeof reverse; - cancel(): void; - } - - namespace promises { - function getServers(): string[]; - - function lookup(hostname: string, family: number): Promise; - function lookup(hostname: string, options: LookupOneOptions): Promise; - function lookup(hostname: string, options: LookupAllOptions): Promise; - function lookup(hostname: string, options: LookupOptions): Promise; - function lookup(hostname: string): Promise; - - function lookupService(address: string, port: number): Promise<{ hostname: string, service: string }>; - - function resolve(hostname: string): Promise; - function resolve(hostname: string, rrtype: "A"): Promise; - function resolve(hostname: string, rrtype: "AAAA"): Promise; - function resolve(hostname: string, rrtype: "ANY"): Promise; - function resolve(hostname: string, rrtype: "CNAME"): Promise; - function resolve(hostname: string, rrtype: "MX"): Promise; - function resolve(hostname: string, rrtype: "NAPTR"): Promise; - function resolve(hostname: string, rrtype: "NS"): Promise; - function resolve(hostname: string, rrtype: "PTR"): Promise; - function resolve(hostname: string, rrtype: "SOA"): Promise; - function resolve(hostname: string, rrtype: "SRV"): Promise; - function resolve(hostname: string, rrtype: "TXT"): Promise; - function resolve(hostname: string, rrtype: string): Promise; - - function resolve4(hostname: string): Promise; - function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise; - function resolve4(hostname: string, options: ResolveOptions): Promise; - - function resolve6(hostname: string): Promise; - function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise; - function resolve6(hostname: string, options: ResolveOptions): Promise; - - function resolveAny(hostname: string): Promise; - - function resolveCname(hostname: string): Promise; - - function resolveMx(hostname: string): Promise; - - function resolveNaptr(hostname: string): Promise; - - function resolveNs(hostname: string): Promise; - - function resolvePtr(hostname: string): Promise; - - function resolveSoa(hostname: string): Promise; - - function resolveSrv(hostname: string): Promise; - - function resolveTxt(hostname: string): Promise; - - function reverse(ip: string): Promise; - - function setServers(servers: ReadonlyArray): void; - - class Resolver { - getServers: typeof getServers; - resolve: typeof resolve; - resolve4: typeof resolve4; - resolve6: typeof resolve6; - resolveAny: typeof resolveAny; - resolveCname: typeof resolveCname; - resolveMx: typeof resolveMx; - resolveNaptr: typeof resolveNaptr; - resolveNs: typeof resolveNs; - resolvePtr: typeof resolvePtr; - resolveSoa: typeof resolveSoa; - resolveSrv: typeof resolveSrv; - resolveTxt: typeof resolveTxt; - reverse: typeof reverse; - setServers: typeof setServers; - } - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/domain.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/domain.d.ts deleted file mode 100644 index 6a30dec..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/domain.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare module "domain" { - import * as events from "events"; - - class Domain extends events.EventEmitter implements NodeJS.Domain { - run(fn: Function): void; - add(emitter: events.EventEmitter): void; - remove(emitter: events.EventEmitter): void; - bind(cb: (err: Error, data: any) => any): any; - intercept(cb: (data: any) => any): any; - members: any[]; - enter(): void; - exit(): void; - } - - function create(): Domain; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/events.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/events.d.ts deleted file mode 100644 index 71684f4..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/events.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -declare module "events" { - class internal extends NodeJS.EventEmitter { } - - interface NodeEventTarget { - once(event: string | symbol, listener: (...args: any[]) => void): this; - } - - interface DOMEventTarget { - addEventListener(event: string, listener: (...args: any[]) => void, opts?: { once: boolean }): any; - } - - namespace internal { - function once(emitter: NodeEventTarget, event: string | symbol): Promise; - function once(emitter: DOMEventTarget, event: string): Promise; - class EventEmitter extends internal { - /** @deprecated since v4.0.0 */ - static listenerCount(emitter: EventEmitter, event: string | symbol): number; - static defaultMaxListeners: number; - - addListener(event: string | symbol, listener: (...args: any[]) => void): this; - on(event: string | symbol, listener: (...args: any[]) => void): this; - once(event: string | symbol, listener: (...args: any[]) => void): this; - prependListener(event: string | symbol, listener: (...args: any[]) => void): this; - prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; - removeListener(event: string | symbol, listener: (...args: any[]) => void): this; - off(event: string | symbol, listener: (...args: any[]) => void): this; - removeAllListeners(event?: string | symbol): this; - setMaxListeners(n: number): this; - getMaxListeners(): number; - listeners(event: string | symbol): Function[]; - rawListeners(event: string | symbol): Function[]; - emit(event: string | symbol, ...args: any[]): boolean; - eventNames(): Array; - listenerCount(type: string | symbol): number; - } - } - - export = internal; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/fs.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/fs.d.ts deleted file mode 100644 index ba6c999..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/fs.d.ts +++ /dev/null @@ -1,2302 +0,0 @@ -declare module "fs" { - import * as stream from "stream"; - import * as events from "events"; - import { URL } from "url"; - - /** - * Valid types for path values in "fs". - */ - type PathLike = string | Buffer | URL; - - type BinaryData = Buffer | DataView | NodeJS.TypedArray; - class Stats { - isFile(): boolean; - isDirectory(): boolean; - isBlockDevice(): boolean; - isCharacterDevice(): boolean; - isSymbolicLink(): boolean; - isFIFO(): boolean; - isSocket(): boolean; - dev: number; - ino: number; - mode: number; - nlink: number; - uid: number; - gid: number; - rdev: number; - size: number; - blksize: number; - blocks: number; - atimeMs: number; - mtimeMs: number; - ctimeMs: number; - birthtimeMs: number; - atime: Date; - mtime: Date; - ctime: Date; - birthtime: Date; - } - - class Dirent { - isFile(): boolean; - isDirectory(): boolean; - isBlockDevice(): boolean; - isCharacterDevice(): boolean; - isSymbolicLink(): boolean; - isFIFO(): boolean; - isSocket(): boolean; - name: string; - } - - interface FSWatcher extends events.EventEmitter { - close(): void; - - /** - * events.EventEmitter - * 1. change - * 2. error - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; - addListener(event: "error", listener: (error: Error) => void): this; - addListener(event: "close", listener: () => void): this; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; - on(event: "error", listener: (error: Error) => void): this; - on(event: "close", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; - once(event: "error", listener: (error: Error) => void): this; - once(event: "close", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; - prependListener(event: "error", listener: (error: Error) => void): this; - prependListener(event: "close", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; - prependOnceListener(event: "error", listener: (error: Error) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - } - - class ReadStream extends stream.Readable { - close(): void; - bytesRead: number; - path: string | Buffer; - - /** - * events.EventEmitter - * 1. open - * 2. close - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "open", listener: (fd: number) => void): this; - addListener(event: "close", listener: () => void): this; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "open", listener: (fd: number) => void): this; - on(event: "close", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "open", listener: (fd: number) => void): this; - once(event: "close", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "open", listener: (fd: number) => void): this; - prependListener(event: "close", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "open", listener: (fd: number) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - } - - class WriteStream extends stream.Writable { - close(): void; - bytesWritten: number; - path: string | Buffer; - - /** - * events.EventEmitter - * 1. open - * 2. close - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "open", listener: (fd: number) => void): this; - addListener(event: "close", listener: () => void): this; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "open", listener: (fd: number) => void): this; - on(event: "close", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "open", listener: (fd: number) => void): this; - once(event: "close", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "open", listener: (fd: number) => void): this; - prependListener(event: "close", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "open", listener: (fd: number) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - } - - /** - * Asynchronous rename(2) - Change the name or location of a file or directory. - * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function rename(oldPath: PathLike, newPath: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace rename { - /** - * Asynchronous rename(2) - Change the name or location of a file or directory. - * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function __promisify__(oldPath: PathLike, newPath: PathLike): Promise; - } - - /** - * Synchronous rename(2) - Change the name or location of a file or directory. - * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function renameSync(oldPath: PathLike, newPath: PathLike): void; - - /** - * Asynchronous truncate(2) - Truncate a file to a specified length. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param len If not specified, defaults to `0`. - */ - function truncate(path: PathLike, len: number | undefined | null, callback: (err: NodeJS.ErrnoException | null) => void): void; - - /** - * Asynchronous truncate(2) - Truncate a file to a specified length. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function truncate(path: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace truncate { - /** - * Asynchronous truncate(2) - Truncate a file to a specified length. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param len If not specified, defaults to `0`. - */ - function __promisify__(path: PathLike, len?: number | null): Promise; - } - - /** - * Synchronous truncate(2) - Truncate a file to a specified length. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param len If not specified, defaults to `0`. - */ - function truncateSync(path: PathLike, len?: number | null): void; - - /** - * Asynchronous ftruncate(2) - Truncate a file to a specified length. - * @param fd A file descriptor. - * @param len If not specified, defaults to `0`. - */ - function ftruncate(fd: number, len: number | undefined | null, callback: (err: NodeJS.ErrnoException | null) => void): void; - - /** - * Asynchronous ftruncate(2) - Truncate a file to a specified length. - * @param fd A file descriptor. - */ - function ftruncate(fd: number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace ftruncate { - /** - * Asynchronous ftruncate(2) - Truncate a file to a specified length. - * @param fd A file descriptor. - * @param len If not specified, defaults to `0`. - */ - function __promisify__(fd: number, len?: number | null): Promise; - } - - /** - * Synchronous ftruncate(2) - Truncate a file to a specified length. - * @param fd A file descriptor. - * @param len If not specified, defaults to `0`. - */ - function ftruncateSync(fd: number, len?: number | null): void; - - /** - * Asynchronous chown(2) - Change ownership of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function chown(path: PathLike, uid: number, gid: number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace chown { - /** - * Asynchronous chown(2) - Change ownership of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function __promisify__(path: PathLike, uid: number, gid: number): Promise; - } - - /** - * Synchronous chown(2) - Change ownership of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function chownSync(path: PathLike, uid: number, gid: number): void; - - /** - * Asynchronous fchown(2) - Change ownership of a file. - * @param fd A file descriptor. - */ - function fchown(fd: number, uid: number, gid: number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace fchown { - /** - * Asynchronous fchown(2) - Change ownership of a file. - * @param fd A file descriptor. - */ - function __promisify__(fd: number, uid: number, gid: number): Promise; - } - - /** - * Synchronous fchown(2) - Change ownership of a file. - * @param fd A file descriptor. - */ - function fchownSync(fd: number, uid: number, gid: number): void; - - /** - * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function lchown(path: PathLike, uid: number, gid: number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace lchown { - /** - * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function __promisify__(path: PathLike, uid: number, gid: number): Promise; - } - - /** - * Synchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function lchownSync(path: PathLike, uid: number, gid: number): void; - - /** - * Asynchronous chmod(2) - Change permissions of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function chmod(path: PathLike, mode: string | number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace chmod { - /** - * Asynchronous chmod(2) - Change permissions of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function __promisify__(path: PathLike, mode: string | number): Promise; - } - - /** - * Synchronous chmod(2) - Change permissions of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function chmodSync(path: PathLike, mode: string | number): void; - - /** - * Asynchronous fchmod(2) - Change permissions of a file. - * @param fd A file descriptor. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function fchmod(fd: number, mode: string | number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace fchmod { - /** - * Asynchronous fchmod(2) - Change permissions of a file. - * @param fd A file descriptor. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function __promisify__(fd: number, mode: string | number): Promise; - } - - /** - * Synchronous fchmod(2) - Change permissions of a file. - * @param fd A file descriptor. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function fchmodSync(fd: number, mode: string | number): void; - - /** - * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function lchmod(path: PathLike, mode: string | number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace lchmod { - /** - * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function __promisify__(path: PathLike, mode: string | number): Promise; - } - - /** - * Synchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function lchmodSync(path: PathLike, mode: string | number): void; - - /** - * Asynchronous stat(2) - Get file status. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function stat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace stat { - /** - * Asynchronous stat(2) - Get file status. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function __promisify__(path: PathLike): Promise; - } - - /** - * Synchronous stat(2) - Get file status. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function statSync(path: PathLike): Stats; - - /** - * Asynchronous fstat(2) - Get file status. - * @param fd A file descriptor. - */ - function fstat(fd: number, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace fstat { - /** - * Asynchronous fstat(2) - Get file status. - * @param fd A file descriptor. - */ - function __promisify__(fd: number): Promise; - } - - /** - * Synchronous fstat(2) - Get file status. - * @param fd A file descriptor. - */ - function fstatSync(fd: number): Stats; - - /** - * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function lstat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace lstat { - /** - * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function __promisify__(path: PathLike): Promise; - } - - /** - * Synchronous lstat(2) - Get file status. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function lstatSync(path: PathLike): Stats; - - /** - * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. - * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function link(existingPath: PathLike, newPath: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace link { - /** - * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. - * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function __promisify__(existingPath: PathLike, newPath: PathLike): Promise; - } - - /** - * Synchronous link(2) - Create a new link (also known as a hard link) to an existing file. - * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function linkSync(existingPath: PathLike, newPath: PathLike): void; - - /** - * Asynchronous symlink(2) - Create a new symbolic link to an existing file. - * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. - * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. - * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). - * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. - */ - function symlink(target: PathLike, path: PathLike, type: symlink.Type | undefined | null, callback: (err: NodeJS.ErrnoException | null) => void): void; - - /** - * Asynchronous symlink(2) - Create a new symbolic link to an existing file. - * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. - * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. - */ - function symlink(target: PathLike, path: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace symlink { - /** - * Asynchronous symlink(2) - Create a new symbolic link to an existing file. - * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. - * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. - * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). - * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. - */ - function __promisify__(target: PathLike, path: PathLike, type?: string | null): Promise; - - type Type = "dir" | "file" | "junction"; - } - - /** - * Synchronous symlink(2) - Create a new symbolic link to an existing file. - * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. - * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. - * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). - * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. - */ - function symlinkSync(target: PathLike, path: PathLike, type?: symlink.Type | null): void; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlink( - path: PathLike, - options: { encoding?: BufferEncoding | null } | BufferEncoding | undefined | null, - callback: (err: NodeJS.ErrnoException | null, linkString: string) => void - ): void; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlink(path: PathLike, options: { encoding: "buffer" } | "buffer", callback: (err: NodeJS.ErrnoException | null, linkString: Buffer) => void): void; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlink(path: PathLike, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, linkString: string | Buffer) => void): void; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function readlink(path: PathLike, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace readlink { - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options: { encoding: "buffer" } | "buffer"): Promise; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; - } - - /** - * Synchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlinkSync(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): string; - - /** - * Synchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlinkSync(path: PathLike, options: { encoding: "buffer" } | "buffer"): Buffer; - - /** - * Synchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlinkSync(path: PathLike, options?: { encoding?: string | null } | string | null): string | Buffer; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpath( - path: PathLike, - options: { encoding?: BufferEncoding | null } | BufferEncoding | undefined | null, - callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void - ): void; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpath(path: PathLike, options: { encoding: "buffer" } | "buffer", callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpath(path: PathLike, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function realpath(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace realpath { - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options: { encoding: "buffer" } | "buffer"): Promise; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; - - function native( - path: PathLike, - options: { encoding?: BufferEncoding | null } | BufferEncoding | undefined | null, - callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void - ): void; - function native(path: PathLike, options: { encoding: "buffer" } | "buffer", callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; - function native(path: PathLike, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; - function native(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; - } - - /** - * Synchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpathSync(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): string; - - /** - * Synchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpathSync(path: PathLike, options: { encoding: "buffer" } | "buffer"): Buffer; - - /** - * Synchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpathSync(path: PathLike, options?: { encoding?: string | null } | string | null): string | Buffer; - - namespace realpathSync { - function native(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): string; - function native(path: PathLike, options: { encoding: "buffer" } | "buffer"): Buffer; - function native(path: PathLike, options?: { encoding?: string | null } | string | null): string | Buffer; - } - - /** - * Asynchronous unlink(2) - delete a name and possibly the file it refers to. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function unlink(path: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace unlink { - /** - * Asynchronous unlink(2) - delete a name and possibly the file it refers to. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function __promisify__(path: PathLike): Promise; - } - - /** - * Synchronous unlink(2) - delete a name and possibly the file it refers to. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function unlinkSync(path: PathLike): void; - - /** - * Asynchronous rmdir(2) - delete a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function rmdir(path: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace rmdir { - /** - * Asynchronous rmdir(2) - delete a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function __promisify__(path: PathLike): Promise; - } - - /** - * Synchronous rmdir(2) - delete a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function rmdirSync(path: PathLike): void; - - export interface MakeDirectoryOptions { - /** - * Indicates whether parent folders should be created. - * @default false - */ - recursive?: boolean; - /** - * A file mode. If a string is passed, it is parsed as an octal integer. If not specified - * @default 0o777. - */ - mode?: number; - } - - /** - * Asynchronous mkdir(2) - create a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders - * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. - */ - function mkdir(path: PathLike, options: number | string | MakeDirectoryOptions | undefined | null, callback: (err: NodeJS.ErrnoException | null) => void): void; - - /** - * Asynchronous mkdir(2) - create a directory with a mode of `0o777`. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function mkdir(path: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace mkdir { - /** - * Asynchronous mkdir(2) - create a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders - * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. - */ - function __promisify__(path: PathLike, options?: number | string | MakeDirectoryOptions | null): Promise; - } - - /** - * Synchronous mkdir(2) - create a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders - * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. - */ - function mkdirSync(path: PathLike, options?: number | string | MakeDirectoryOptions | null): void; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtemp(prefix: string, options: { encoding?: BufferEncoding | null } | BufferEncoding | undefined | null, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtemp(prefix: string, options: "buffer" | { encoding: "buffer" }, callback: (err: NodeJS.ErrnoException | null, folder: Buffer) => void): void; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtemp(prefix: string, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, folder: string | Buffer) => void): void; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - */ - function mkdtemp(prefix: string, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace mkdtemp { - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(prefix: string, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(prefix: string, options: { encoding: "buffer" } | "buffer"): Promise; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(prefix: string, options?: { encoding?: string | null } | string | null): Promise; - } - - /** - * Synchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtempSync(prefix: string, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): string; - - /** - * Synchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtempSync(prefix: string, options: { encoding: "buffer" } | "buffer"): Buffer; - - /** - * Synchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtempSync(prefix: string, options?: { encoding?: string | null } | string | null): string | Buffer; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdir( - path: PathLike, - options: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | undefined | null, - callback: (err: NodeJS.ErrnoException | null, files: string[]) => void, - ): void; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdir(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer", callback: (err: NodeJS.ErrnoException | null, files: Buffer[]) => void): void; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdir( - path: PathLike, - options: { encoding?: string | null; withFileTypes?: false } | string | undefined | null, - callback: (err: NodeJS.ErrnoException | null, files: string[] | Buffer[]) => void, - ): void; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function readdir(path: PathLike, callback: (err: NodeJS.ErrnoException | null, files: string[]) => void): void; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. - */ - function readdir(path: PathLike, options: { encoding?: string | null; withFileTypes: true }, callback: (err: NodeJS.ErrnoException | null, files: Dirent[]) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace readdir { - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options?: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): Promise; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options: "buffer" | { encoding: "buffer"; withFileTypes?: false }): Promise; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function __promisify__(path: PathLike, options?: { encoding?: string | null; withFileTypes?: false } | string | null): Promise; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options If called with `withFileTypes: true` the result data will be an array of Dirent - */ - function __promisify__(path: PathLike, options: { encoding?: string | null; withFileTypes: true }): Promise; - } - - /** - * Synchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdirSync(path: PathLike, options?: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): string[]; - - /** - * Synchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdirSync(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer"): Buffer[]; - - /** - * Synchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdirSync(path: PathLike, options?: { encoding?: string | null; withFileTypes?: false } | string | null): string[] | Buffer[]; - - /** - * Synchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. - */ - function readdirSync(path: PathLike, options: { encoding?: string | null; withFileTypes: true }): Dirent[]; - - /** - * Asynchronous close(2) - close a file descriptor. - * @param fd A file descriptor. - */ - function close(fd: number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace close { - /** - * Asynchronous close(2) - close a file descriptor. - * @param fd A file descriptor. - */ - function __promisify__(fd: number): Promise; - } - - /** - * Synchronous close(2) - close a file descriptor. - * @param fd A file descriptor. - */ - function closeSync(fd: number): void; - - /** - * Asynchronous open(2) - open and possibly create a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. - */ - function open(path: PathLike, flags: string | number, mode: string | number | undefined | null, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; - - /** - * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function open(path: PathLike, flags: string | number, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace open { - /** - * Asynchronous open(2) - open and possibly create a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. - */ - function __promisify__(path: PathLike, flags: string | number, mode?: string | number | null): Promise; - } - - /** - * Synchronous open(2) - open and possibly create a file, returning a file descriptor.. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. - */ - function openSync(path: PathLike, flags: string | number, mode?: string | number | null): number; - - /** - * Asynchronously change file timestamps of the file referenced by the supplied path. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - function utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace utimes { - /** - * Asynchronously change file timestamps of the file referenced by the supplied path. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - function __promisify__(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise; - } - - /** - * Synchronously change file timestamps of the file referenced by the supplied path. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - function utimesSync(path: PathLike, atime: string | number | Date, mtime: string | number | Date): void; - - /** - * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - function futimes(fd: number, atime: string | number | Date, mtime: string | number | Date, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace futimes { - /** - * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - function __promisify__(fd: number, atime: string | number | Date, mtime: string | number | Date): Promise; - } - - /** - * Synchronously change file timestamps of the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - function futimesSync(fd: number, atime: string | number | Date, mtime: string | number | Date): void; - - /** - * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. - * @param fd A file descriptor. - */ - function fsync(fd: number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace fsync { - /** - * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. - * @param fd A file descriptor. - */ - function __promisify__(fd: number): Promise; - } - - /** - * Synchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. - * @param fd A file descriptor. - */ - function fsyncSync(fd: number): void; - - /** - * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. - * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - */ - function write( - fd: number, - buffer: TBuffer, - offset: number | undefined | null, - length: number | undefined | null, - position: number | undefined | null, - callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, - ): void; - - /** - * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. - * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. - */ - function write( - fd: number, - buffer: TBuffer, - offset: number | undefined | null, - length: number | undefined | null, - callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, - ): void; - - /** - * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. - */ - function write( - fd: number, - buffer: TBuffer, - offset: number | undefined | null, - callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void - ): void; - - /** - * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - */ - function write(fd: number, buffer: TBuffer, callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void): void; - - /** - * Asynchronously writes `string` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param string A string to write. If something other than a string is supplied it will be coerced to a string. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - * @param encoding The expected string encoding. - */ - function write( - fd: number, - string: any, - position: number | undefined | null, - encoding: string | undefined | null, - callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void, - ): void; - - /** - * Asynchronously writes `string` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param string A string to write. If something other than a string is supplied it will be coerced to a string. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - */ - function write(fd: number, string: any, position: number | undefined | null, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; - - /** - * Asynchronously writes `string` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param string A string to write. If something other than a string is supplied it will be coerced to a string. - */ - function write(fd: number, string: any, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace write { - /** - * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. - * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - */ - function __promisify__( - fd: number, - buffer?: TBuffer, - offset?: number, - length?: number, - position?: number | null, - ): Promise<{ bytesWritten: number, buffer: TBuffer }>; - - /** - * Asynchronously writes `string` to the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param string A string to write. If something other than a string is supplied it will be coerced to a string. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - * @param encoding The expected string encoding. - */ - function __promisify__(fd: number, string: any, position?: number | null, encoding?: string | null): Promise<{ bytesWritten: number, buffer: string }>; - } - - /** - * Synchronously writes `buffer` to the file referenced by the supplied file descriptor, returning the number of bytes written. - * @param fd A file descriptor. - * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. - * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - */ - function writeSync(fd: number, buffer: BinaryData, offset?: number | null, length?: number | null, position?: number | null): number; - - /** - * Synchronously writes `string` to the file referenced by the supplied file descriptor, returning the number of bytes written. - * @param fd A file descriptor. - * @param string A string to write. If something other than a string is supplied it will be coerced to a string. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - * @param encoding The expected string encoding. - */ - function writeSync(fd: number, string: any, position?: number | null, encoding?: string | null): number; - - /** - * Asynchronously reads data from the file referenced by the supplied file descriptor. - * @param fd A file descriptor. - * @param buffer The buffer that the data will be written to. - * @param offset The offset in the buffer at which to start writing. - * @param length The number of bytes to read. - * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. - */ - function read( - fd: number, - buffer: TBuffer, - offset: number, - length: number, - position: number | null, - callback?: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void, - ): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace read { - /** - * @param fd A file descriptor. - * @param buffer The buffer that the data will be written to. - * @param offset The offset in the buffer at which to start writing. - * @param length The number of bytes to read. - * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. - */ - function __promisify__(fd: number, buffer: TBuffer, offset: number, length: number, position: number | null): Promise<{ bytesRead: number, buffer: TBuffer }>; - } - - /** - * Synchronously reads data from the file referenced by the supplied file descriptor, returning the number of bytes read. - * @param fd A file descriptor. - * @param buffer The buffer that the data will be written to. - * @param offset The offset in the buffer at which to start writing. - * @param length The number of bytes to read. - * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. - */ - function readSync(fd: number, buffer: BinaryData, offset: number, length: number, position: number | null): number; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options An object that may contain an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function readFile(path: PathLike | number, options: { encoding?: null; flag?: string; } | undefined | null, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function readFile(path: PathLike | number, options: { encoding: string; flag?: string; } | string, callback: (err: NodeJS.ErrnoException | null, data: string) => void): void; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function readFile( - path: PathLike | number, - options: { encoding?: string | null; flag?: string; } | string | undefined | null, - callback: (err: NodeJS.ErrnoException | null, data: string | Buffer) => void, - ): void; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - */ - function readFile(path: PathLike | number, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace readFile { - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options An object that may contain an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function __promisify__(path: PathLike | number, options?: { encoding?: null; flag?: string; } | null): Promise; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function __promisify__(path: PathLike | number, options: { encoding: string; flag?: string; } | string): Promise; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function __promisify__(path: PathLike | number, options?: { encoding?: string | null; flag?: string; } | string | null): Promise; - } - - /** - * Synchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options An object that may contain an optional flag. If a flag is not provided, it defaults to `'r'`. - */ - function readFileSync(path: PathLike | number, options?: { encoding?: null; flag?: string; } | null): Buffer; - - /** - * Synchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function readFileSync(path: PathLike | number, options: { encoding: string; flag?: string; } | string): string; - - /** - * Synchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function readFileSync(path: PathLike | number, options?: { encoding?: string | null; flag?: string; } | string | null): string | Buffer; - - type WriteFileOptions = { encoding?: string | null; mode?: number | string; flag?: string; } | string | null; - - /** - * Asynchronously writes data to a file, replacing the file if it already exists. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'w'` is used. - */ - function writeFile(path: PathLike | number, data: any, options: WriteFileOptions, callback: (err: NodeJS.ErrnoException | null) => void): void; - - /** - * Asynchronously writes data to a file, replacing the file if it already exists. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. - */ - function writeFile(path: PathLike | number, data: any, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace writeFile { - /** - * Asynchronously writes data to a file, replacing the file if it already exists. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'w'` is used. - */ - function __promisify__(path: PathLike | number, data: any, options?: WriteFileOptions): Promise; - } - - /** - * Synchronously writes data to a file, replacing the file if it already exists. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'w'` is used. - */ - function writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions): void; - - /** - * Asynchronously append data to a file, creating the file if it does not exist. - * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'a'` is used. - */ - function appendFile(file: PathLike | number, data: any, options: WriteFileOptions, callback: (err: NodeJS.ErrnoException | null) => void): void; - - /** - * Asynchronously append data to a file, creating the file if it does not exist. - * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. - */ - function appendFile(file: PathLike | number, data: any, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace appendFile { - /** - * Asynchronously append data to a file, creating the file if it does not exist. - * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'a'` is used. - */ - function __promisify__(file: PathLike | number, data: any, options?: WriteFileOptions): Promise; - } - - /** - * Synchronously append data to a file, creating the file if it does not exist. - * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a file descriptor is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'a'` is used. - */ - function appendFileSync(file: PathLike | number, data: any, options?: WriteFileOptions): void; - - /** - * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. - */ - function watchFile(filename: PathLike, options: { persistent?: boolean; interval?: number; } | undefined, listener: (curr: Stats, prev: Stats) => void): void; - - /** - * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function watchFile(filename: PathLike, listener: (curr: Stats, prev: Stats) => void): void; - - /** - * Stop watching for changes on `filename`. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function unwatchFile(filename: PathLike, listener?: (curr: Stats, prev: Stats) => void): void; - - /** - * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `persistent` is not supplied, the default of `true` is used. - * If `recursive` is not supplied, the default of `false` is used. - */ - function watch( - filename: PathLike, - options: { encoding?: BufferEncoding | null, persistent?: boolean, recursive?: boolean } | BufferEncoding | undefined | null, - listener?: (event: string, filename: string) => void, - ): FSWatcher; - - /** - * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `persistent` is not supplied, the default of `true` is used. - * If `recursive` is not supplied, the default of `false` is used. - */ - function watch(filename: PathLike, options: { encoding: "buffer", persistent?: boolean, recursive?: boolean } | "buffer", listener?: (event: string, filename: Buffer) => void): FSWatcher; - - /** - * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `persistent` is not supplied, the default of `true` is used. - * If `recursive` is not supplied, the default of `false` is used. - */ - function watch( - filename: PathLike, - options: { encoding?: string | null, persistent?: boolean, recursive?: boolean } | string | null, - listener?: (event: string, filename: string | Buffer) => void, - ): FSWatcher; - - /** - * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function watch(filename: PathLike, listener?: (event: string, filename: string) => any): FSWatcher; - - /** - * Asynchronously tests whether or not the given path exists by checking with the file system. - * @deprecated - * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function exists(path: PathLike, callback: (exists: boolean) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace exists { - /** - * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function __promisify__(path: PathLike): Promise; - } - - /** - * Synchronously tests whether or not the given path exists by checking with the file system. - * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function existsSync(path: PathLike): boolean; - - namespace constants { - // File Access Constants - - /** Constant for fs.access(). File is visible to the calling process. */ - const F_OK: number; - - /** Constant for fs.access(). File can be read by the calling process. */ - const R_OK: number; - - /** Constant for fs.access(). File can be written by the calling process. */ - const W_OK: number; - - /** Constant for fs.access(). File can be executed by the calling process. */ - const X_OK: number; - - // File Copy Constants - - /** Constant for fs.copyFile. Flag indicating the destination file should not be overwritten if it already exists. */ - const COPYFILE_EXCL: number; - - /** - * Constant for fs.copyFile. copy operation will attempt to create a copy-on-write reflink. - * If the underlying platform does not support copy-on-write, then a fallback copy mechanism is used. - */ - const COPYFILE_FICLONE: number; - - /** - * Constant for fs.copyFile. Copy operation will attempt to create a copy-on-write reflink. - * If the underlying platform does not support copy-on-write, then the operation will fail with an error. - */ - const COPYFILE_FICLONE_FORCE: number; - - // File Open Constants - - /** Constant for fs.open(). Flag indicating to open a file for read-only access. */ - const O_RDONLY: number; - - /** Constant for fs.open(). Flag indicating to open a file for write-only access. */ - const O_WRONLY: number; - - /** Constant for fs.open(). Flag indicating to open a file for read-write access. */ - const O_RDWR: number; - - /** Constant for fs.open(). Flag indicating to create the file if it does not already exist. */ - const O_CREAT: number; - - /** Constant for fs.open(). Flag indicating that opening a file should fail if the O_CREAT flag is set and the file already exists. */ - const O_EXCL: number; - - /** - * Constant for fs.open(). Flag indicating that if path identifies a terminal device, - * opening the path shall not cause that terminal to become the controlling terminal for the process - * (if the process does not already have one). - */ - const O_NOCTTY: number; - - /** Constant for fs.open(). Flag indicating that if the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero. */ - const O_TRUNC: number; - - /** Constant for fs.open(). Flag indicating that data will be appended to the end of the file. */ - const O_APPEND: number; - - /** Constant for fs.open(). Flag indicating that the open should fail if the path is not a directory. */ - const O_DIRECTORY: number; - - /** - * constant for fs.open(). - * Flag indicating reading accesses to the file system will no longer result in - * an update to the atime information associated with the file. - * This flag is available on Linux operating systems only. - */ - const O_NOATIME: number; - - /** Constant for fs.open(). Flag indicating that the open should fail if the path is a symbolic link. */ - const O_NOFOLLOW: number; - - /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O. */ - const O_SYNC: number; - - /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O with write operations waiting for data integrity. */ - const O_DSYNC: number; - - /** Constant for fs.open(). Flag indicating to open the symbolic link itself rather than the resource it is pointing to. */ - const O_SYMLINK: number; - - /** Constant for fs.open(). When set, an attempt will be made to minimize caching effects of file I/O. */ - const O_DIRECT: number; - - /** Constant for fs.open(). Flag indicating to open the file in nonblocking mode when possible. */ - const O_NONBLOCK: number; - - // File Type Constants - - /** Constant for fs.Stats mode property for determining a file's type. Bit mask used to extract the file type code. */ - const S_IFMT: number; - - /** Constant for fs.Stats mode property for determining a file's type. File type constant for a regular file. */ - const S_IFREG: number; - - /** Constant for fs.Stats mode property for determining a file's type. File type constant for a directory. */ - const S_IFDIR: number; - - /** Constant for fs.Stats mode property for determining a file's type. File type constant for a character-oriented device file. */ - const S_IFCHR: number; - - /** Constant for fs.Stats mode property for determining a file's type. File type constant for a block-oriented device file. */ - const S_IFBLK: number; - - /** Constant for fs.Stats mode property for determining a file's type. File type constant for a FIFO/pipe. */ - const S_IFIFO: number; - - /** Constant for fs.Stats mode property for determining a file's type. File type constant for a symbolic link. */ - const S_IFLNK: number; - - /** Constant for fs.Stats mode property for determining a file's type. File type constant for a socket. */ - const S_IFSOCK: number; - - // File Mode Constants - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by owner. */ - const S_IRWXU: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by owner. */ - const S_IRUSR: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by owner. */ - const S_IWUSR: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by owner. */ - const S_IXUSR: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by group. */ - const S_IRWXG: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by group. */ - const S_IRGRP: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by group. */ - const S_IWGRP: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by group. */ - const S_IXGRP: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by others. */ - const S_IRWXO: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by others. */ - const S_IROTH: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by others. */ - const S_IWOTH: number; - - /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by others. */ - const S_IXOTH: number; - } - - /** - * Asynchronously tests a user's permissions for the file specified by path. - * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function access(path: PathLike, mode: number | undefined, callback: (err: NodeJS.ErrnoException | null) => void): void; - - /** - * Asynchronously tests a user's permissions for the file specified by path. - * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function access(path: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace access { - /** - * Asynchronously tests a user's permissions for the file specified by path. - * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function __promisify__(path: PathLike, mode?: number): Promise; - } - - /** - * Synchronously tests a user's permissions for the file specified by path. - * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function accessSync(path: PathLike, mode?: number): void; - - /** - * Returns a new `ReadStream` object. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function createReadStream(path: PathLike, options?: string | { - flags?: string; - encoding?: string; - fd?: number; - mode?: number; - autoClose?: boolean; - start?: number; - end?: number; - highWaterMark?: number; - }): ReadStream; - - /** - * Returns a new `WriteStream` object. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function createWriteStream(path: PathLike, options?: string | { - flags?: string; - encoding?: string; - fd?: number; - mode?: number; - autoClose?: boolean; - start?: number; - highWaterMark?: number; - }): WriteStream; - - /** - * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. - * @param fd A file descriptor. - */ - function fdatasync(fd: number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace fdatasync { - /** - * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. - * @param fd A file descriptor. - */ - function __promisify__(fd: number): Promise; - } - - /** - * Synchronous fdatasync(2) - synchronize a file's in-core state with storage device. - * @param fd A file descriptor. - */ - function fdatasyncSync(fd: number): void; - - /** - * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. - * No arguments other than a possible exception are given to the callback function. - * Node.js makes no guarantees about the atomicity of the copy operation. - * If an error occurs after the destination file has been opened for writing, Node.js will attempt - * to remove the destination. - * @param src A path to the source file. - * @param dest A path to the destination file. - */ - function copyFile(src: PathLike, dest: PathLike, callback: (err: NodeJS.ErrnoException | null) => void): void; - /** - * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. - * No arguments other than a possible exception are given to the callback function. - * Node.js makes no guarantees about the atomicity of the copy operation. - * If an error occurs after the destination file has been opened for writing, Node.js will attempt - * to remove the destination. - * @param src A path to the source file. - * @param dest A path to the destination file. - * @param flags An integer that specifies the behavior of the copy operation. The only supported flag is fs.constants.COPYFILE_EXCL, which causes the copy operation to fail if dest already exists. - */ - function copyFile(src: PathLike, dest: PathLike, flags: number, callback: (err: NodeJS.ErrnoException | null) => void): void; - - // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. - namespace copyFile { - /** - * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. - * No arguments other than a possible exception are given to the callback function. - * Node.js makes no guarantees about the atomicity of the copy operation. - * If an error occurs after the destination file has been opened for writing, Node.js will attempt - * to remove the destination. - * @param src A path to the source file. - * @param dest A path to the destination file. - * @param flags An optional integer that specifies the behavior of the copy operation. - * The only supported flag is fs.constants.COPYFILE_EXCL, - * which causes the copy operation to fail if dest already exists. - */ - function __promisify__(src: PathLike, dst: PathLike, flags?: number): Promise; - } - - /** - * Synchronously copies src to dest. By default, dest is overwritten if it already exists. - * Node.js makes no guarantees about the atomicity of the copy operation. - * If an error occurs after the destination file has been opened for writing, Node.js will attempt - * to remove the destination. - * @param src A path to the source file. - * @param dest A path to the destination file. - * @param flags An optional integer that specifies the behavior of the copy operation. - * The only supported flag is fs.constants.COPYFILE_EXCL, which causes the copy operation to fail if dest already exists. - */ - function copyFileSync(src: PathLike, dest: PathLike, flags?: number): void; - - namespace promises { - interface FileHandle { - /** - * Gets the file descriptor for this file handle. - */ - readonly fd: number; - - /** - * Asynchronously append data to a file, creating the file if it does not exist. The underlying file will _not_ be closed automatically. - * The `FileHandle` must have been opened for appending. - * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'a'` is used. - */ - appendFile(data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string | number } | string | null): Promise; - - /** - * Asynchronous fchown(2) - Change ownership of a file. - */ - chown(uid: number, gid: number): Promise; - - /** - * Asynchronous fchmod(2) - Change permissions of a file. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - chmod(mode: string | number): Promise; - - /** - * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. - */ - datasync(): Promise; - - /** - * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. - */ - sync(): Promise; - - /** - * Asynchronously reads data from the file. - * The `FileHandle` must have been opened for reading. - * @param buffer The buffer that the data will be written to. - * @param offset The offset in the buffer at which to start writing. - * @param length The number of bytes to read. - * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. - */ - read(buffer: TBuffer, offset?: number | null, length?: number | null, position?: number | null): Promise<{ bytesRead: number, buffer: TBuffer }>; - - /** - * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. - * The `FileHandle` must have been opened for reading. - * @param options An object that may contain an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - readFile(options?: { encoding?: null, flag?: string | number } | null): Promise; - - /** - * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. - * The `FileHandle` must have been opened for reading. - * @param options An object that may contain an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - readFile(options: { encoding: BufferEncoding, flag?: string | number } | BufferEncoding): Promise; - - /** - * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. - * The `FileHandle` must have been opened for reading. - * @param options An object that may contain an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - readFile(options?: { encoding?: string | null, flag?: string | number } | string | null): Promise; - - /** - * Asynchronous fstat(2) - Get file status. - */ - stat(): Promise; - - /** - * Asynchronous ftruncate(2) - Truncate a file to a specified length. - * @param len If not specified, defaults to `0`. - */ - truncate(len?: number): Promise; - - /** - * Asynchronously change file timestamps of the file. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - utimes(atime: string | number | Date, mtime: string | number | Date): Promise; - - /** - * Asynchronously writes `buffer` to the file. - * The `FileHandle` must have been opened for writing. - * @param buffer The buffer that the data will be written to. - * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. - * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - */ - write(buffer: TBuffer, offset?: number | null, length?: number | null, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>; - - /** - * Asynchronously writes `string` to the file. - * The `FileHandle` must have been opened for writing. - * It is unsafe to call `write()` multiple times on the same file without waiting for the `Promise` - * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. - * @param string A string to write. If something other than a string is supplied it will be coerced to a string. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - * @param encoding The expected string encoding. - */ - write(data: any, position?: number | null, encoding?: string | null): Promise<{ bytesWritten: number, buffer: string }>; - - /** - * Asynchronously writes data to a file, replacing the file if it already exists. The underlying file will _not_ be closed automatically. - * The `FileHandle` must have been opened for writing. - * It is unsafe to call `writeFile()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected). - * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'w'` is used. - */ - writeFile(data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string | number } | string | null): Promise; - - /** - * Asynchronous close(2) - close a `FileHandle`. - */ - close(): Promise; - } - - /** - * Asynchronously tests a user's permissions for the file specified by path. - * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function access(path: PathLike, mode?: number): Promise; - - /** - * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it already exists. - * Node.js makes no guarantees about the atomicity of the copy operation. - * If an error occurs after the destination file has been opened for writing, Node.js will attempt - * to remove the destination. - * @param src A path to the source file. - * @param dest A path to the destination file. - * @param flags An optional integer that specifies the behavior of the copy operation. The only - * supported flag is `fs.constants.COPYFILE_EXCL`, which causes the copy operation to fail if - * `dest` already exists. - */ - function copyFile(src: PathLike, dest: PathLike, flags?: number): Promise; - - /** - * Asynchronous open(2) - open and possibly create a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not - * supplied, defaults to `0o666`. - */ - function open(path: PathLike, flags: string | number, mode?: string | number): Promise; - - /** - * Asynchronously reads data from the file referenced by the supplied `FileHandle`. - * @param handle A `FileHandle`. - * @param buffer The buffer that the data will be written to. - * @param offset The offset in the buffer at which to start writing. - * @param length The number of bytes to read. - * @param position The offset from the beginning of the file from which data should be read. If - * `null`, data will be read from the current position. - */ - function read( - handle: FileHandle, - buffer: TBuffer, - offset?: number | null, - length?: number | null, - position?: number | null, - ): Promise<{ bytesRead: number, buffer: TBuffer }>; - - /** - * Asynchronously writes `buffer` to the file referenced by the supplied `FileHandle`. - * It is unsafe to call `fsPromises.write()` multiple times on the same file without waiting for the `Promise` - * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. - * @param handle A `FileHandle`. - * @param buffer The buffer that the data will be written to. - * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. - * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - */ - function write( - handle: FileHandle, - buffer: TBuffer, - offset?: number | null, - length?: number | null, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>; - - /** - * Asynchronously writes `string` to the file referenced by the supplied `FileHandle`. - * It is unsafe to call `fsPromises.write()` multiple times on the same file without waiting for the `Promise` - * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. - * @param handle A `FileHandle`. - * @param string A string to write. If something other than a string is supplied it will be coerced to a string. - * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. - * @param encoding The expected string encoding. - */ - function write(handle: FileHandle, string: any, position?: number | null, encoding?: string | null): Promise<{ bytesWritten: number, buffer: string }>; - - /** - * Asynchronous rename(2) - Change the name or location of a file or directory. - * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - */ - function rename(oldPath: PathLike, newPath: PathLike): Promise; - - /** - * Asynchronous truncate(2) - Truncate a file to a specified length. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param len If not specified, defaults to `0`. - */ - function truncate(path: PathLike, len?: number): Promise; - - /** - * Asynchronous ftruncate(2) - Truncate a file to a specified length. - * @param handle A `FileHandle`. - * @param len If not specified, defaults to `0`. - */ - function ftruncate(handle: FileHandle, len?: number): Promise; - - /** - * Asynchronous rmdir(2) - delete a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function rmdir(path: PathLike): Promise; - - /** - * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. - * @param handle A `FileHandle`. - */ - function fdatasync(handle: FileHandle): Promise; - - /** - * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. - * @param handle A `FileHandle`. - */ - function fsync(handle: FileHandle): Promise; - - /** - * Asynchronous mkdir(2) - create a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders - * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. - */ - function mkdir(path: PathLike, options?: number | string | MakeDirectoryOptions | null): Promise; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdir(path: PathLike, options?: { encoding?: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): Promise; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdir(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer"): Promise; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readdir(path: PathLike, options?: { encoding?: string | null; withFileTypes?: false } | string | null): Promise; - - /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. - */ - function readdir(path: PathLike, options: { encoding?: string | null; withFileTypes: true }): Promise; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlink(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlink(path: PathLike, options: { encoding: "buffer" } | "buffer"): Promise; - - /** - * Asynchronous readlink(2) - read value of a symbolic link. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function readlink(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; - - /** - * Asynchronous symlink(2) - Create a new symbolic link to an existing file. - * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. - * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. - * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). - * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. - */ - function symlink(target: PathLike, path: PathLike, type?: string | null): Promise; - - /** - * Asynchronous fstat(2) - Get file status. - * @param handle A `FileHandle`. - */ - function fstat(handle: FileHandle): Promise; - - /** - * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function lstat(path: PathLike): Promise; - - /** - * Asynchronous stat(2) - Get file status. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function stat(path: PathLike): Promise; - - /** - * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. - * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function link(existingPath: PathLike, newPath: PathLike): Promise; - - /** - * Asynchronous unlink(2) - delete a name and possibly the file it refers to. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function unlink(path: PathLike): Promise; - - /** - * Asynchronous fchmod(2) - Change permissions of a file. - * @param handle A `FileHandle`. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function fchmod(handle: FileHandle, mode: string | number): Promise; - - /** - * Asynchronous chmod(2) - Change permissions of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function chmod(path: PathLike, mode: string | number): Promise; - - /** - * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param mode A file mode. If a string is passed, it is parsed as an octal integer. - */ - function lchmod(path: PathLike, mode: string | number): Promise; - - /** - * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function lchown(path: PathLike, uid: number, gid: number): Promise; - - /** - * Asynchronous fchown(2) - Change ownership of a file. - * @param handle A `FileHandle`. - */ - function fchown(handle: FileHandle, uid: number, gid: number): Promise; - - /** - * Asynchronous chown(2) - Change ownership of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - */ - function chown(path: PathLike, uid: number, gid: number): Promise; - - /** - * Asynchronously change file timestamps of the file referenced by the supplied path. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - function utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise; - - /** - * Asynchronously change file timestamps of the file referenced by the supplied `FileHandle`. - * @param handle A `FileHandle`. - * @param atime The last access time. If a string is provided, it will be coerced to number. - * @param mtime The last modified time. If a string is provided, it will be coerced to number. - */ - function futimes(handle: FileHandle, atime: string | number | Date, mtime: string | number | Date): Promise; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpath(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpath(path: PathLike, options: { encoding: "buffer" } | "buffer"): Promise; - - /** - * Asynchronous realpath(3) - return the canonicalized absolute pathname. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function realpath(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtemp(prefix: string, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtemp(prefix: string, options: { encoding: "buffer" } | "buffer"): Promise; - - /** - * Asynchronously creates a unique temporary directory. - * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. - * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. - */ - function mkdtemp(prefix: string, options?: { encoding?: string | null } | string | null): Promise; - - /** - * Asynchronously writes data to a file, replacing the file if it already exists. - * It is unsafe to call `fsPromises.writeFile()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected). - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'w'` is used. - */ - function writeFile(path: PathLike | FileHandle, data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string | number } | string | null): Promise; - - /** - * Asynchronously append data to a file, creating the file if it does not exist. - * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. - * URL support is _experimental_. - * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. - * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. - * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `mode` is not supplied, the default of `0o666` is used. - * If `mode` is a string, it is parsed as an octal integer. - * If `flag` is not supplied, the default of `'a'` is used. - */ - function appendFile(path: PathLike | FileHandle, data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string | number } | string | null): Promise; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. - * @param options An object that may contain an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function readFile(path: PathLike | FileHandle, options?: { encoding?: null, flag?: string | number } | null): Promise; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. - * @param options An object that may contain an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function readFile(path: PathLike | FileHandle, options: { encoding: BufferEncoding, flag?: string | number } | BufferEncoding): Promise; - - /** - * Asynchronously reads the entire contents of a file. - * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. - * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. - * @param options An object that may contain an optional flag. - * If a flag is not provided, it defaults to `'r'`. - */ - function readFile(path: PathLike | FileHandle, options?: { encoding?: string | null, flag?: string | number } | string | null): Promise; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/globals.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/globals.d.ts deleted file mode 100644 index 964773f..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/globals.d.ts +++ /dev/null @@ -1,1013 +0,0 @@ -// This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build -interface Console { - Console: NodeJS.ConsoleConstructor; - /** - * A simple assertion test that verifies whether `value` is truthy. - * If it is not, an `AssertionError` is thrown. - * If provided, the error `message` is formatted using `util.format()` and used as the error message. - */ - assert(value: any, message?: string, ...optionalParams: any[]): void; - /** - * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the TTY. - * When `stdout` is not a TTY, this method does nothing. - */ - clear(): void; - /** - * Maintains an internal counter specific to `label` and outputs to `stdout` the number of times `console.count()` has been called with the given `label`. - */ - count(label?: string): void; - /** - * Resets the internal counter specific to `label`. - */ - countReset(label?: string): void; - /** - * The `console.debug()` function is an alias for {@link console.log()}. - */ - debug(message?: any, ...optionalParams: any[]): void; - /** - * Uses {@link util.inspect()} on `obj` and prints the resulting string to `stdout`. - * This function bypasses any custom `inspect()` function defined on `obj`. - */ - dir(obj: any, options?: NodeJS.InspectOptions): void; - /** - * This method calls {@link console.log()} passing it the arguments received. Please note that this method does not produce any XML formatting - */ - dirxml(...data: any[]): void; - /** - * Prints to `stderr` with newline. - */ - error(message?: any, ...optionalParams: any[]): void; - /** - * Increases indentation of subsequent lines by two spaces. - * If one or more `label`s are provided, those are printed first without the additional indentation. - */ - group(...label: any[]): void; - /** - * The `console.groupCollapsed()` function is an alias for {@link console.group()}. - */ - groupCollapsed(): void; - /** - * Decreases indentation of subsequent lines by two spaces. - */ - groupEnd(): void; - /** - * The {@link console.info()} function is an alias for {@link console.log()}. - */ - info(message?: any, ...optionalParams: any[]): void; - /** - * Prints to `stdout` with newline. - */ - log(message?: any, ...optionalParams: any[]): void; - /** - * This method does not display anything unless used in the inspector. - * Prints to `stdout` the array `array` formatted as a table. - */ - table(tabularData: any, properties?: ReadonlyArray): void; - /** - * Starts a timer that can be used to compute the duration of an operation. Timers are identified by a unique `label`. - */ - time(label?: string): void; - /** - * Stops a timer that was previously started by calling {@link console.time()} and prints the result to `stdout`. - */ - timeEnd(label?: string): void; - /** - * For a timer that was previously started by calling {@link console.time()}, prints the elapsed time and other `data` arguments to `stdout`. - */ - timeLog(label?: string, ...data: any[]): void; - /** - * Prints to `stderr` the string 'Trace :', followed by the {@link util.format()} formatted message and stack trace to the current position in the code. - */ - trace(message?: any, ...optionalParams: any[]): void; - /** - * The {@link console.warn()} function is an alias for {@link console.error()}. - */ - warn(message?: any, ...optionalParams: any[]): void; - - // --- Inspector mode only --- - /** - * This method does not display anything unless used in the inspector. - * The console.markTimeline() method is the deprecated form of console.timeStamp(). - * - * @deprecated Use console.timeStamp() instead. - */ - markTimeline(label?: string): void; - /** - * This method does not display anything unless used in the inspector. - * Starts a JavaScript CPU profile with an optional label. - */ - profile(label?: string): void; - /** - * This method does not display anything unless used in the inspector. - * Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector. - */ - profileEnd(label?: string): void; - /** - * This method does not display anything unless used in the inspector. - * Adds an event with the label `label` to the Timeline panel of the inspector. - */ - timeStamp(label?: string): void; - /** - * This method does not display anything unless used in the inspector. - * The console.timeline() method is the deprecated form of console.time(). - * - * @deprecated Use console.time() instead. - */ - timeline(label?: string): void; - /** - * This method does not display anything unless used in the inspector. - * The console.timelineEnd() method is the deprecated form of console.timeEnd(). - * - * @deprecated Use console.timeEnd() instead. - */ - timelineEnd(label?: string): void; -} - -interface Error { - stack?: string; -} - -// Declare "static" methods in Error -interface ErrorConstructor { - /** Create .stack property on a target object */ - captureStackTrace(targetObject: Object, constructorOpt?: Function): void; - - /** - * Optional override for formatting stack traces - * - * @see https://github.com/v8/v8/wiki/Stack%20Trace%20API#customizing-stack-traces - */ - prepareStackTrace?: (err: Error, stackTraces: NodeJS.CallSite[]) => any; - - stackTraceLimit: number; -} - -interface SymbolConstructor { - readonly observable: symbol; -} - -// Node.js ESNEXT support -interface String { - /** Removes whitespace from the left end of a string. */ - trimLeft(): string; - /** Removes whitespace from the right end of a string. */ - trimRight(): string; - - /** Returns a copy with leading whitespace removed. */ - trimStart(): string; - /** Returns a copy with trailing whitespace removed. */ - trimEnd(): string; -} - -/*-----------------------------------------------* - * * - * GLOBAL * - * * - ------------------------------------------------*/ -declare var process: NodeJS.Process; -declare var global: NodeJS.Global; -declare var console: Console; - -declare var __filename: string; -declare var __dirname: string; - -declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; -declare namespace setTimeout { - function __promisify__(ms: number): Promise; - function __promisify__(ms: number, value: T): Promise; -} -declare function clearTimeout(timeoutId: NodeJS.Timeout): void; -declare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; -declare function clearInterval(intervalId: NodeJS.Timeout): void; -declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; -declare namespace setImmediate { - function __promisify__(): Promise; - function __promisify__(value: T): Promise; -} -declare function clearImmediate(immediateId: NodeJS.Immediate): void; - -// TODO: change to `type NodeRequireFunction = (id: string) => any;` in next mayor version. -interface NodeRequireFunction { - (id: string): any; -} - -interface NodeRequire extends NodeRequireFunction { - resolve: RequireResolve; - cache: any; - extensions: NodeExtensions; - main: NodeModule | undefined; -} - -interface RequireResolve { - (id: string, options?: { paths?: string[]; }): string; - paths(request: string): string[] | null; -} - -interface NodeExtensions { - '.js': (m: NodeModule, filename: string) => any; - '.json': (m: NodeModule, filename: string) => any; - '.node': (m: NodeModule, filename: string) => any; - [ext: string]: (m: NodeModule, filename: string) => any; -} - -declare var require: NodeRequire; - -interface NodeModule { - exports: any; - require: NodeRequireFunction; - id: string; - filename: string; - loaded: boolean; - parent: NodeModule | null; - children: NodeModule[]; - paths: string[]; -} - -declare var module: NodeModule; - -// Same as module.exports -declare var exports: any; - -// Buffer class -type BufferEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "base64" | "latin1" | "binary" | "hex"; -interface Buffer extends Uint8Array { - constructor: typeof Buffer; - write(string: string, offset?: number, length?: number, encoding?: string): number; - toString(encoding?: string, start?: number, end?: number): string; - toJSON(): { type: 'Buffer', data: any[] }; - equals(otherBuffer: Uint8Array): boolean; - compare(otherBuffer: Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; - copy(targetBuffer: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; - slice(start?: number, end?: number): Buffer; - writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; - writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; - writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; - writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; - readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; - readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; - readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; - readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; - readUInt8(offset: number, noAssert?: boolean): number; - readUInt16LE(offset: number, noAssert?: boolean): number; - readUInt16BE(offset: number, noAssert?: boolean): number; - readUInt32LE(offset: number, noAssert?: boolean): number; - readUInt32BE(offset: number, noAssert?: boolean): number; - readInt8(offset: number, noAssert?: boolean): number; - readInt16LE(offset: number, noAssert?: boolean): number; - readInt16BE(offset: number, noAssert?: boolean): number; - readInt32LE(offset: number, noAssert?: boolean): number; - readInt32BE(offset: number, noAssert?: boolean): number; - readFloatLE(offset: number, noAssert?: boolean): number; - readFloatBE(offset: number, noAssert?: boolean): number; - readDoubleLE(offset: number, noAssert?: boolean): number; - readDoubleBE(offset: number, noAssert?: boolean): number; - swap16(): Buffer; - swap32(): Buffer; - swap64(): Buffer; - writeUInt8(value: number, offset: number, noAssert?: boolean): number; - writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; - writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; - writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; - writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; - writeInt8(value: number, offset: number, noAssert?: boolean): number; - writeInt16LE(value: number, offset: number, noAssert?: boolean): number; - writeInt16BE(value: number, offset: number, noAssert?: boolean): number; - writeInt32LE(value: number, offset: number, noAssert?: boolean): number; - writeInt32BE(value: number, offset: number, noAssert?: boolean): number; - writeFloatLE(value: number, offset: number, noAssert?: boolean): number; - writeFloatBE(value: number, offset: number, noAssert?: boolean): number; - writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; - writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; - fill(value: any, offset?: number, end?: number): this; - indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: string): number; - lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: string): number; - entries(): IterableIterator<[number, number]>; - includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; - keys(): IterableIterator; - values(): IterableIterator; -} - -/** - * Raw data is stored in instances of the Buffer class. - * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized. - * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' - */ -declare const Buffer: { - /** - * Allocates a new buffer containing the given {str}. - * - * @param str String to store in buffer. - * @param encoding encoding to use, optional. Default is 'utf8' - * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead. - */ - new(str: string, encoding?: string): Buffer; - /** - * Allocates a new buffer of {size} octets. - * - * @param size count of octets to allocate. - * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`). - */ - new(size: number): Buffer; - /** - * Allocates a new buffer containing the given {array} of octets. - * - * @param array The octets to store. - * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. - */ - new(array: Uint8Array): Buffer; - /** - * Produces a Buffer backed by the same allocated memory as - * the given {ArrayBuffer}/{SharedArrayBuffer}. - * - * - * @param arrayBuffer The ArrayBuffer with which to share memory. - * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead. - */ - new(arrayBuffer: ArrayBuffer | SharedArrayBuffer): Buffer; - /** - * Allocates a new buffer containing the given {array} of octets. - * - * @param array The octets to store. - * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. - */ - new(array: ReadonlyArray): Buffer; - /** - * Copies the passed {buffer} data onto a new {Buffer} instance. - * - * @param buffer The buffer to copy. - * @deprecated since v10.0.0 - Use `Buffer.from(buffer)` instead. - */ - new(buffer: Buffer): Buffer; - prototype: Buffer; - /** - * When passed a reference to the .buffer property of a TypedArray instance, - * the newly created Buffer will share the same allocated memory as the TypedArray. - * The optional {byteOffset} and {length} arguments specify a memory range - * within the {arrayBuffer} that will be shared by the Buffer. - * - * @param arrayBuffer The .buffer property of any TypedArray or a new ArrayBuffer() - */ - from(arrayBuffer: ArrayBuffer | SharedArrayBuffer, byteOffset?: number, length?: number): Buffer; - /** - * Creates a new Buffer using the passed {data} - * @param data data to create a new Buffer - */ - from(data: ReadonlyArray): Buffer; - from(data: Uint8Array): Buffer; - /** - * Creates a new buffer containing the coerced value of an object - * A `TypeError` will be thrown if {obj} has not mentioned methods or is not of other type appropriate for `Buffer.from()` variants. - * @param obj An object supporting `Symbol.toPrimitive` or `valueOf()`. - */ - from(obj: { valueOf(): string | object } | { [Symbol.toPrimitive](hint: 'string'): string }, byteOffset?: number, length?: number): Buffer; - /** - * Creates a new Buffer containing the given JavaScript string {str}. - * If provided, the {encoding} parameter identifies the character encoding. - * If not provided, {encoding} defaults to 'utf8'. - */ - from(str: string, encoding?: string): Buffer; - /** - * Creates a new Buffer using the passed {data} - * @param values to create a new Buffer - */ - of(...items: number[]): Buffer; - /** - * Returns true if {obj} is a Buffer - * - * @param obj object to test. - */ - isBuffer(obj: any): obj is Buffer; - /** - * Returns true if {encoding} is a valid encoding argument. - * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' - * - * @param encoding string to test. - */ - isEncoding(encoding: string): boolean | undefined; - /** - * Gives the actual byte length of a string. encoding defaults to 'utf8'. - * This is not the same as String.prototype.length since that returns the number of characters in a string. - * - * @param string string to test. - * @param encoding encoding used to evaluate (defaults to 'utf8') - */ - byteLength(string: string | NodeJS.TypedArray | DataView | ArrayBuffer | SharedArrayBuffer, encoding?: string): number; - /** - * Returns a buffer which is the result of concatenating all the buffers in the list together. - * - * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. - * If the list has exactly one item, then the first item of the list is returned. - * If the list has more than one item, then a new Buffer is created. - * - * @param list An array of Buffer objects to concatenate - * @param totalLength Total length of the buffers when concatenated. - * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. - */ - concat(list: ReadonlyArray, totalLength?: number): Buffer; - /** - * The same as buf1.compare(buf2). - */ - compare(buf1: Uint8Array, buf2: Uint8Array): number; - /** - * Allocates a new buffer of {size} octets. - * - * @param size count of octets to allocate. - * @param fill if specified, buffer will be initialized by calling buf.fill(fill). - * If parameter is omitted, buffer will be filled with zeros. - * @param encoding encoding used for call to buf.fill while initalizing - */ - alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; - /** - * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents - * of the newly created Buffer are unknown and may contain sensitive data. - * - * @param size count of octets to allocate - */ - allocUnsafe(size: number): Buffer; - /** - * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents - * of the newly created Buffer are unknown and may contain sensitive data. - * - * @param size count of octets to allocate - */ - allocUnsafeSlow(size: number): Buffer; - /** - * This is the number of bytes used to determine the size of pre-allocated, internal Buffer instances used for pooling. This value may be modified. - */ - poolSize: number; -}; - -/*----------------------------------------------* -* * -* GLOBAL INTERFACES * -* * -*-----------------------------------------------*/ -declare namespace NodeJS { - interface InspectOptions { - showHidden?: boolean; - depth?: number | null; - colors?: boolean; - customInspect?: boolean; - showProxy?: boolean; - maxArrayLength?: number | null; - breakLength?: number; - compact?: boolean; - sorted?: boolean | ((a: string, b: string) => number); - } - - interface ConsoleConstructorOptions { - stdout: WritableStream; - stderr?: WritableStream; - ignoreErrors?: boolean; - colorMode?: boolean | 'auto'; - } - - interface ConsoleConstructor { - prototype: Console; - new(stdout: WritableStream, stderr?: WritableStream, ignoreErrors?: boolean): Console; - new(options: ConsoleConstructorOptions): Console; - } - - interface CallSite { - /** - * Value of "this" - */ - getThis(): any; - - /** - * Type of "this" as a string. - * This is the name of the function stored in the constructor field of - * "this", if available. Otherwise the object's [[Class]] internal - * property. - */ - getTypeName(): string | null; - - /** - * Current function - */ - getFunction(): Function | undefined; - - /** - * Name of the current function, typically its name property. - * If a name property is not available an attempt will be made to try - * to infer a name from the function's context. - */ - getFunctionName(): string | null; - - /** - * Name of the property [of "this" or one of its prototypes] that holds - * the current function - */ - getMethodName(): string | null; - - /** - * Name of the script [if this function was defined in a script] - */ - getFileName(): string | null; - - /** - * Current line number [if this function was defined in a script] - */ - getLineNumber(): number | null; - - /** - * Current column number [if this function was defined in a script] - */ - getColumnNumber(): number | null; - - /** - * A call site object representing the location where eval was called - * [if this function was created using a call to eval] - */ - getEvalOrigin(): string | undefined; - - /** - * Is this a toplevel invocation, that is, is "this" the global object? - */ - isToplevel(): boolean; - - /** - * Does this call take place in code defined by a call to eval? - */ - isEval(): boolean; - - /** - * Is this call in native V8 code? - */ - isNative(): boolean; - - /** - * Is this a constructor call? - */ - isConstructor(): boolean; - } - - interface ErrnoException extends Error { - errno?: number; - code?: string; - path?: string; - syscall?: string; - stack?: string; - } - - class EventEmitter { - addListener(event: string | symbol, listener: (...args: any[]) => void): this; - on(event: string | symbol, listener: (...args: any[]) => void): this; - once(event: string | symbol, listener: (...args: any[]) => void): this; - removeListener(event: string | symbol, listener: (...args: any[]) => void): this; - off(event: string | symbol, listener: (...args: any[]) => void): this; - removeAllListeners(event?: string | symbol): this; - setMaxListeners(n: number): this; - getMaxListeners(): number; - listeners(event: string | symbol): Function[]; - rawListeners(event: string | symbol): Function[]; - emit(event: string | symbol, ...args: any[]): boolean; - listenerCount(type: string | symbol): number; - // Added in Node 6... - prependListener(event: string | symbol, listener: (...args: any[]) => void): this; - prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; - eventNames(): Array; - } - - interface ReadableStream extends EventEmitter { - readable: boolean; - read(size?: number): string | Buffer; - setEncoding(encoding: string): this; - pause(): this; - resume(): this; - isPaused(): boolean; - pipe(destination: T, options?: { end?: boolean; }): T; - unpipe(destination?: WritableStream): this; - unshift(chunk: string): void; - unshift(chunk: Buffer): void; - wrap(oldStream: ReadableStream): this; - [Symbol.asyncIterator](): AsyncIterableIterator; - } - - interface WritableStream extends EventEmitter { - writable: boolean; - write(buffer: Buffer | string, cb?: Function): boolean; - write(str: string, encoding?: string, cb?: Function): boolean; - end(cb?: Function): void; - end(buffer: Buffer, cb?: Function): void; - end(str: string, cb?: Function): void; - end(str: string, encoding?: string, cb?: Function): void; - } - - interface ReadWriteStream extends ReadableStream, WritableStream { } - - interface Events extends EventEmitter { } - - interface Domain extends Events { - run(fn: Function): void; - add(emitter: Events): void; - remove(emitter: Events): void; - bind(cb: (err: Error, data: any) => any): any; - intercept(cb: (data: any) => any): any; - - addListener(event: string, listener: (...args: any[]) => void): this; - on(event: string, listener: (...args: any[]) => void): this; - once(event: string, listener: (...args: any[]) => void): this; - removeListener(event: string, listener: (...args: any[]) => void): this; - removeAllListeners(event?: string): this; - } - - interface MemoryUsage { - rss: number; - heapTotal: number; - heapUsed: number; - external: number; - } - - interface CpuUsage { - user: number; - system: number; - } - - interface ProcessRelease { - name: string; - sourceUrl?: string; - headersUrl?: string; - libUrl?: string; - lts?: string; - } - - interface ProcessVersions { - http_parser: string; - node: string; - v8: string; - ares: string; - uv: string; - zlib: string; - modules: string; - openssl: string; - } - - type Platform = 'aix' - | 'android' - | 'darwin' - | 'freebsd' - | 'linux' - | 'openbsd' - | 'sunos' - | 'win32' - | 'cygwin'; - - type Signals = - "SIGABRT" | "SIGALRM" | "SIGBUS" | "SIGCHLD" | "SIGCONT" | "SIGFPE" | "SIGHUP" | "SIGILL" | "SIGINT" | "SIGIO" | - "SIGIOT" | "SIGKILL" | "SIGPIPE" | "SIGPOLL" | "SIGPROF" | "SIGPWR" | "SIGQUIT" | "SIGSEGV" | "SIGSTKFLT" | - "SIGSTOP" | "SIGSYS" | "SIGTERM" | "SIGTRAP" | "SIGTSTP" | "SIGTTIN" | "SIGTTOU" | "SIGUNUSED" | "SIGURG" | - "SIGUSR1" | "SIGUSR2" | "SIGVTALRM" | "SIGWINCH" | "SIGXCPU" | "SIGXFSZ" | "SIGBREAK" | "SIGLOST" | "SIGINFO"; - - type MultipleResolveType = 'resolve' | 'reject'; - - type BeforeExitListener = (code: number) => void; - type DisconnectListener = () => void; - type ExitListener = (code: number) => void; - type RejectionHandledListener = (promise: Promise) => void; - type UncaughtExceptionListener = (error: Error) => void; - type UnhandledRejectionListener = (reason: {} | null | undefined, promise: Promise) => void; - type WarningListener = (warning: Error) => void; - type MessageListener = (message: any, sendHandle: any) => void; - type SignalsListener = (signal: Signals) => void; - type NewListenerListener = (type: string | symbol, listener: (...args: any[]) => void) => void; - type RemoveListenerListener = (type: string | symbol, listener: (...args: any[]) => void) => void; - type MultipleResolveListener = (type: MultipleResolveType, promise: Promise, value: any) => void; - - interface Socket extends ReadWriteStream { - isTTY?: true; - } - - interface ProcessEnv { - [key: string]: string | undefined; - } - - interface WriteStream extends Socket { - readonly writableHighWaterMark: number; - readonly writableLength: number; - columns?: number; - rows?: number; - _write(chunk: any, encoding: string, callback: Function): void; - _destroy(err: Error | null, callback: Function): void; - _final(callback: Function): void; - setDefaultEncoding(encoding: string): this; - cork(): void; - uncork(): void; - destroy(error?: Error): void; - } - interface ReadStream extends Socket { - readonly readableFlowing: boolean | null; - readonly readableHighWaterMark: number; - readonly readableLength: number; - isRaw?: boolean; - setRawMode?(mode: boolean): void; - _read(size: number): void; - _destroy(err: Error | null, callback: Function): void; - push(chunk: any, encoding?: string): boolean; - destroy(error?: Error): void; - } - - interface HRTime { - (time?: [number, number]): [number, number]; - bigint(): bigint; - } - - interface Process extends EventEmitter { - stdout: WriteStream; - stderr: WriteStream; - stdin: ReadStream; - openStdin(): Socket; - argv: string[]; - argv0: string; - execArgv: string[]; - execPath: string; - abort(): void; - chdir(directory: string): void; - cwd(): string; - debugPort: number; - emitWarning(warning: string | Error, name?: string, ctor?: Function): void; - env: ProcessEnv; - exit(code?: number): never; - exitCode?: number; - getgid(): number; - setgid(id: number | string): void; - getuid(): number; - setuid(id: number | string): void; - geteuid(): number; - seteuid(id: number | string): void; - getegid(): number; - setegid(id: number | string): void; - getgroups(): number[]; - setgroups(groups: ReadonlyArray): void; - setUncaughtExceptionCaptureCallback(cb: ((err: Error) => void) | null): void; - hasUncaughtExceptionCaptureCallback(): boolean; - version: string; - versions: ProcessVersions; - config: { - target_defaults: { - cflags: any[]; - default_configuration: string; - defines: string[]; - include_dirs: string[]; - libraries: string[]; - }; - variables: { - clang: number; - host_arch: string; - node_install_npm: boolean; - node_install_waf: boolean; - node_prefix: string; - node_shared_openssl: boolean; - node_shared_v8: boolean; - node_shared_zlib: boolean; - node_use_dtrace: boolean; - node_use_etw: boolean; - node_use_openssl: boolean; - target_arch: string; - v8_no_strict_aliasing: number; - v8_use_snapshot: boolean; - visibility: string; - }; - }; - kill(pid: number, signal?: string | number): void; - pid: number; - ppid: number; - title: string; - arch: string; - platform: Platform; - mainModule?: NodeModule; - memoryUsage(): MemoryUsage; - cpuUsage(previousValue?: CpuUsage): CpuUsage; - nextTick(callback: Function, ...args: any[]): void; - release: ProcessRelease; - umask(mask?: number): number; - uptime(): number; - hrtime: HRTime; - domain: Domain; - - // Worker - send?(message: any, sendHandle?: any): void; - disconnect(): void; - connected: boolean; - - /** - * The `process.allowedNodeEnvironmentFlags` property is a special, - * read-only `Set` of flags allowable within the [`NODE_OPTIONS`][] - * environment variable. - */ - allowedNodeEnvironmentFlags: ReadonlySet; - - /** - * EventEmitter - * 1. beforeExit - * 2. disconnect - * 3. exit - * 4. message - * 5. rejectionHandled - * 6. uncaughtException - * 7. unhandledRejection - * 8. warning - * 9. message - * 10. - * 11. newListener/removeListener inherited from EventEmitter - */ - addListener(event: "beforeExit", listener: BeforeExitListener): this; - addListener(event: "disconnect", listener: DisconnectListener): this; - addListener(event: "exit", listener: ExitListener): this; - addListener(event: "rejectionHandled", listener: RejectionHandledListener): this; - addListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; - addListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; - addListener(event: "warning", listener: WarningListener): this; - addListener(event: "message", listener: MessageListener): this; - addListener(event: Signals, listener: SignalsListener): this; - addListener(event: "newListener", listener: NewListenerListener): this; - addListener(event: "removeListener", listener: RemoveListenerListener): this; - addListener(event: "multipleResolves", listener: MultipleResolveListener): this; - - emit(event: "beforeExit", code: number): boolean; - emit(event: "disconnect"): boolean; - emit(event: "exit", code: number): boolean; - emit(event: "rejectionHandled", promise: Promise): boolean; - emit(event: "uncaughtException", error: Error): boolean; - emit(event: "unhandledRejection", reason: any, promise: Promise): boolean; - emit(event: "warning", warning: Error): boolean; - emit(event: "message", message: any, sendHandle: any): this; - emit(event: Signals, signal: Signals): boolean; - emit(event: "newListener", eventName: string | symbol, listener: (...args: any[]) => void): this; - emit(event: "removeListener", eventName: string, listener: (...args: any[]) => void): this; - emit(event: "multipleResolves", listener: MultipleResolveListener): this; - - on(event: "beforeExit", listener: BeforeExitListener): this; - on(event: "disconnect", listener: DisconnectListener): this; - on(event: "exit", listener: ExitListener): this; - on(event: "rejectionHandled", listener: RejectionHandledListener): this; - on(event: "uncaughtException", listener: UncaughtExceptionListener): this; - on(event: "unhandledRejection", listener: UnhandledRejectionListener): this; - on(event: "warning", listener: WarningListener): this; - on(event: "message", listener: MessageListener): this; - on(event: Signals, listener: SignalsListener): this; - on(event: "newListener", listener: NewListenerListener): this; - on(event: "removeListener", listener: RemoveListenerListener): this; - on(event: "multipleResolves", listener: MultipleResolveListener): this; - on(event: string | symbol, listener: (...args: any[]) => void): this; - - once(event: "beforeExit", listener: BeforeExitListener): this; - once(event: "disconnect", listener: DisconnectListener): this; - once(event: "exit", listener: ExitListener): this; - once(event: "rejectionHandled", listener: RejectionHandledListener): this; - once(event: "uncaughtException", listener: UncaughtExceptionListener): this; - once(event: "unhandledRejection", listener: UnhandledRejectionListener): this; - once(event: "warning", listener: WarningListener): this; - once(event: "message", listener: MessageListener): this; - once(event: Signals, listener: SignalsListener): this; - once(event: "newListener", listener: NewListenerListener): this; - once(event: "removeListener", listener: RemoveListenerListener): this; - once(event: "multipleResolves", listener: MultipleResolveListener): this; - - prependListener(event: "beforeExit", listener: BeforeExitListener): this; - prependListener(event: "disconnect", listener: DisconnectListener): this; - prependListener(event: "exit", listener: ExitListener): this; - prependListener(event: "rejectionHandled", listener: RejectionHandledListener): this; - prependListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; - prependListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; - prependListener(event: "warning", listener: WarningListener): this; - prependListener(event: "message", listener: MessageListener): this; - prependListener(event: Signals, listener: SignalsListener): this; - prependListener(event: "newListener", listener: NewListenerListener): this; - prependListener(event: "removeListener", listener: RemoveListenerListener): this; - prependListener(event: "multipleResolves", listener: MultipleResolveListener): this; - - prependOnceListener(event: "beforeExit", listener: BeforeExitListener): this; - prependOnceListener(event: "disconnect", listener: DisconnectListener): this; - prependOnceListener(event: "exit", listener: ExitListener): this; - prependOnceListener(event: "rejectionHandled", listener: RejectionHandledListener): this; - prependOnceListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; - prependOnceListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; - prependOnceListener(event: "warning", listener: WarningListener): this; - prependOnceListener(event: "message", listener: MessageListener): this; - prependOnceListener(event: Signals, listener: SignalsListener): this; - prependOnceListener(event: "newListener", listener: NewListenerListener): this; - prependOnceListener(event: "removeListener", listener: RemoveListenerListener): this; - prependOnceListener(event: "multipleResolves", listener: MultipleResolveListener): this; - - listeners(event: "beforeExit"): BeforeExitListener[]; - listeners(event: "disconnect"): DisconnectListener[]; - listeners(event: "exit"): ExitListener[]; - listeners(event: "rejectionHandled"): RejectionHandledListener[]; - listeners(event: "uncaughtException"): UncaughtExceptionListener[]; - listeners(event: "unhandledRejection"): UnhandledRejectionListener[]; - listeners(event: "warning"): WarningListener[]; - listeners(event: "message"): MessageListener[]; - listeners(event: Signals): SignalsListener[]; - listeners(event: "newListener"): NewListenerListener[]; - listeners(event: "removeListener"): RemoveListenerListener[]; - listeners(event: "multipleResolves"): MultipleResolveListener[]; - } - - interface Global { - Array: typeof Array; - ArrayBuffer: typeof ArrayBuffer; - Boolean: typeof Boolean; - Buffer: typeof Buffer; - DataView: typeof DataView; - Date: typeof Date; - Error: typeof Error; - EvalError: typeof EvalError; - Float32Array: typeof Float32Array; - Float64Array: typeof Float64Array; - Function: typeof Function; - GLOBAL: Global; - Infinity: typeof Infinity; - Int16Array: typeof Int16Array; - Int32Array: typeof Int32Array; - Int8Array: typeof Int8Array; - Intl: typeof Intl; - JSON: typeof JSON; - Map: MapConstructor; - Math: typeof Math; - NaN: typeof NaN; - Number: typeof Number; - Object: typeof Object; - Promise: Function; - RangeError: typeof RangeError; - ReferenceError: typeof ReferenceError; - RegExp: typeof RegExp; - Set: SetConstructor; - String: typeof String; - Symbol: Function; - SyntaxError: typeof SyntaxError; - TypeError: typeof TypeError; - URIError: typeof URIError; - Uint16Array: typeof Uint16Array; - Uint32Array: typeof Uint32Array; - Uint8Array: typeof Uint8Array; - Uint8ClampedArray: Function; - WeakMap: WeakMapConstructor; - WeakSet: WeakSetConstructor; - clearImmediate: (immediateId: Immediate) => void; - clearInterval: (intervalId: Timeout) => void; - clearTimeout: (timeoutId: Timeout) => void; - console: typeof console; - decodeURI: typeof decodeURI; - decodeURIComponent: typeof decodeURIComponent; - encodeURI: typeof encodeURI; - encodeURIComponent: typeof encodeURIComponent; - escape: (str: string) => string; - eval: typeof eval; - global: Global; - isFinite: typeof isFinite; - isNaN: typeof isNaN; - parseFloat: typeof parseFloat; - parseInt: typeof parseInt; - process: Process; - root: Global; - setImmediate: (callback: (...args: any[]) => void, ...args: any[]) => Immediate; - setInterval: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => Timeout; - setTimeout: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => Timeout; - undefined: typeof undefined; - unescape: (str: string) => string; - gc: () => void; - v8debug?: any; - } - - interface Timer { - ref(): this; - refresh(): this; - unref(): this; - } - - class Immediate { - ref(): this; - refresh(): this; - unref(): this; - _onImmediate: Function; // to distinguish it from the Timeout class - } - - class Timeout implements Timer { - ref(): this; - refresh(): this; - unref(): this; - } - - class Module { - static runMain(): void; - static wrap(code: string): string; - static createRequireFromPath(path: string): (path: string) => any; - static builtinModules: string[]; - - static Module: typeof Module; - - exports: any; - require: NodeRequireFunction; - id: string; - filename: string; - loaded: boolean; - parent: Module | null; - children: Module[]; - paths: string[]; - - constructor(id: string, parent?: Module); - } - - type TypedArray = Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/http.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/http.d.ts deleted file mode 100644 index 05b53b3..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/http.d.ts +++ /dev/null @@ -1,273 +0,0 @@ -declare module "http" { - import * as events from "events"; - import * as net from "net"; - import * as stream from "stream"; - import { URL } from "url"; - - // incoming headers will never contain number - interface IncomingHttpHeaders { - 'accept-patch'?: string; - 'accept-ranges'?: string; - 'accept'?: string; - 'access-control-allow-credentials'?: string; - 'access-control-allow-headers'?: string; - 'access-control-allow-methods'?: string; - 'access-control-allow-origin'?: string; - 'access-control-expose-headers'?: string; - 'access-control-max-age'?: string; - 'access-control-request-headers'?: string; - 'access-control-request-method'?: string; - 'age'?: string; - 'allow'?: string; - 'alt-svc'?: string; - 'authorization'?: string; - 'cache-control'?: string; - 'connection'?: string; - 'content-disposition'?: string; - 'content-encoding'?: string; - 'content-language'?: string; - 'content-length'?: string; - 'content-location'?: string; - 'content-range'?: string; - 'content-type'?: string; - 'cookie'?: string; - 'date'?: string; - 'expect'?: string; - 'expires'?: string; - 'forwarded'?: string; - 'from'?: string; - 'host'?: string; - 'if-match'?: string; - 'if-modified-since'?: string; - 'if-none-match'?: string; - 'if-unmodified-since'?: string; - 'last-modified'?: string; - 'location'?: string; - 'origin'?: string; - 'pragma'?: string; - 'proxy-authenticate'?: string; - 'proxy-authorization'?: string; - 'public-key-pins'?: string; - 'range'?: string; - 'referer'?: string; - 'retry-after'?: string; - 'set-cookie'?: string[]; - 'strict-transport-security'?: string; - 'tk'?: string; - 'trailer'?: string; - 'transfer-encoding'?: string; - 'upgrade'?: string; - 'user-agent'?: string; - 'vary'?: string; - 'via'?: string; - 'warning'?: string; - 'www-authenticate'?: string; - [header: string]: string | string[] | undefined; - } - - // outgoing headers allows numbers (as they are converted internally to strings) - interface OutgoingHttpHeaders { - [header: string]: number | string | string[] | undefined; - } - - interface ClientRequestArgs { - protocol?: string; - host?: string; - hostname?: string; - family?: number; - port?: number | string; - defaultPort?: number | string; - localAddress?: string; - socketPath?: string; - method?: string; - path?: string; - headers?: OutgoingHttpHeaders; - auth?: string; - agent?: Agent | boolean; - _defaultAgent?: Agent; - timeout?: number; - setHost?: boolean; - // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L278 - createConnection?: (options: ClientRequestArgs, oncreate: (err: Error, socket: net.Socket) => void) => net.Socket; - } - - interface ServerOptions { - IncomingMessage?: typeof IncomingMessage; - ServerResponse?: typeof ServerResponse; - } - - type RequestListener = (req: IncomingMessage, res: ServerResponse) => void; - - class Server extends net.Server { - constructor(requestListener?: RequestListener); - constructor(options: ServerOptions, requestListener?: RequestListener); - - setTimeout(msecs?: number, callback?: () => void): this; - setTimeout(callback: () => void): this; - /** - * Limits maximum incoming headers count. If set to 0, no limit will be applied. - * @default 2000 - * {@link https://nodejs.org/api/http.html#http_server_maxheaderscount} - */ - maxHeadersCount: number | null; - timeout: number; - /** - * Limit the amount of time the parser will wait to receive the complete HTTP headers. - * @default 40000 - * {@link https://nodejs.org/api/http.html#http_server_headerstimeout} - */ - headersTimeout: number; - keepAliveTimeout: number; - } - - // https://github.com/nodejs/node/blob/master/lib/_http_outgoing.js - class OutgoingMessage extends stream.Writable { - upgrading: boolean; - chunkedEncoding: boolean; - shouldKeepAlive: boolean; - useChunkedEncodingByDefault: boolean; - sendDate: boolean; - finished: boolean; - headersSent: boolean; - connection: net.Socket; - - constructor(); - - setTimeout(msecs: number, callback?: () => void): this; - setHeader(name: string, value: number | string | ReadonlyArray): void; - getHeader(name: string): number | string | string[] | undefined; - getHeaders(): OutgoingHttpHeaders; - getHeaderNames(): string[]; - hasHeader(name: string): boolean; - removeHeader(name: string): void; - addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; - flushHeaders(): void; - } - - // https://github.com/nodejs/node/blob/master/lib/_http_server.js#L108-L256 - class ServerResponse extends OutgoingMessage { - statusCode: number; - statusMessage: string; - - constructor(req: IncomingMessage); - - assignSocket(socket: net.Socket): void; - detachSocket(socket: net.Socket): void; - // https://github.com/nodejs/node/blob/master/test/parallel/test-http-write-callbacks.js#L53 - // no args in writeContinue callback - writeContinue(callback?: () => void): void; - writeHead(statusCode: number, reasonPhrase?: string, headers?: OutgoingHttpHeaders): void; - writeHead(statusCode: number, headers?: OutgoingHttpHeaders): void; - } - - // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L77 - class ClientRequest extends OutgoingMessage { - connection: net.Socket; - socket: net.Socket; - aborted: number; - - constructor(url: string | URL | ClientRequestArgs, cb?: (res: IncomingMessage) => void); - - method: string; - path: string; - abort(): void; - onSocket(socket: net.Socket): void; - setTimeout(timeout: number, callback?: () => void): this; - setNoDelay(noDelay?: boolean): void; - setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; - } - - class IncomingMessage extends stream.Readable { - constructor(socket: net.Socket); - - aborted: boolean; - httpVersion: string; - httpVersionMajor: number; - httpVersionMinor: number; - connection: net.Socket; - headers: IncomingHttpHeaders; - rawHeaders: string[]; - trailers: { [key: string]: string | undefined }; - rawTrailers: string[]; - setTimeout(msecs: number, callback?: () => void): this; - /** - * Only valid for request obtained from http.Server. - */ - method?: string; - /** - * Only valid for request obtained from http.Server. - */ - url?: string; - /** - * Only valid for response obtained from http.ClientRequest. - */ - statusCode?: number; - /** - * Only valid for response obtained from http.ClientRequest. - */ - statusMessage?: string; - socket: net.Socket; - destroy(error?: Error): void; - } - - interface AgentOptions { - /** - * Keep sockets around in a pool to be used by other requests in the future. Default = false - */ - keepAlive?: boolean; - /** - * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. - * Only relevant if keepAlive is set to true. - */ - keepAliveMsecs?: number; - /** - * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity - */ - maxSockets?: number; - /** - * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. - */ - maxFreeSockets?: number; - /** - * Socket timeout in milliseconds. This will set the timeout after the socket is connected. - */ - timeout?: number; - } - - class Agent { - maxFreeSockets: number; - maxSockets: number; - sockets: any; - requests: any; - - constructor(opts?: AgentOptions); - - /** - * Destroy any sockets that are currently in use by the agent. - * It is usually not necessary to do this. However, if you are using an agent with KeepAlive enabled, - * then it is best to explicitly shut down the agent when you know that it will no longer be used. Otherwise, - * sockets may hang open for quite a long time before the server terminates them. - */ - destroy(): void; - } - - const METHODS: string[]; - - const STATUS_CODES: { - [errorCode: number]: string | undefined; - [errorCode: string]: string | undefined; - }; - - function createServer(requestListener?: RequestListener): Server; - function createServer(options: ServerOptions, requestListener?: RequestListener): Server; - function createClient(port?: number, host?: string): any; - - // although RequestOptions are passed as ClientRequestArgs to ClientRequest directly, - // create interface RequestOptions would make the naming more clear to developers - interface RequestOptions extends ClientRequestArgs { } - function request(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; - function request(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; - function get(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; - function get(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; - let globalAgent: Agent; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/http2.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/http2.d.ts deleted file mode 100644 index 2142c88..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/http2.d.ts +++ /dev/null @@ -1,859 +0,0 @@ -declare module "http2" { - import * as events from "events"; - import * as fs from "fs"; - import * as net from "net"; - import * as stream from "stream"; - import * as tls from "tls"; - import * as url from "url"; - - import { IncomingHttpHeaders as Http1IncomingHttpHeaders, OutgoingHttpHeaders } from "http"; - export { OutgoingHttpHeaders } from "http"; - - export interface IncomingHttpStatusHeader { - ":status"?: number; - } - - export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders { - ":path"?: string; - ":method"?: string; - ":authority"?: string; - ":scheme"?: string; - } - - // Http2Stream - - export interface StreamPriorityOptions { - exclusive?: boolean; - parent?: number; - weight?: number; - silent?: boolean; - } - - export interface StreamState { - localWindowSize?: number; - state?: number; - streamLocalClose?: number; - streamRemoteClose?: number; - sumDependencyWeight?: number; - weight?: number; - } - - export interface ServerStreamResponseOptions { - endStream?: boolean; - waitForTrailers?: boolean; - } - - export interface StatOptions { - offset: number; - length: number; - } - - export interface ServerStreamFileResponseOptions { - statCheck?: (stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions) => void | boolean; - getTrailers?: (trailers: OutgoingHttpHeaders) => void; - offset?: number; - length?: number; - } - - export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions { - onError?: (err: NodeJS.ErrnoException) => void; - } - - export interface Http2Stream extends stream.Duplex { - readonly aborted: boolean; - readonly closed: boolean; - readonly destroyed: boolean; - readonly pending: boolean; - readonly rstCode: number; - readonly sentHeaders: OutgoingHttpHeaders; - readonly sentInfoHeaders?: OutgoingHttpHeaders[]; - readonly sentTrailers?: OutgoingHttpHeaders; - readonly session: Http2Session; - readonly state: StreamState; - /** - * Set the true if the END_STREAM flag was set in the request or response HEADERS frame received, - * indicating that no additional data should be received and the readable side of the Http2Stream will be closed. - */ - readonly endAfterHeaders: boolean; - close(code?: number, callback?: () => void): void; - priority(options: StreamPriorityOptions): void; - setTimeout(msecs: number, callback?: () => void): void; - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "aborted", listener: () => void): this; - addListener(event: "close", listener: () => void): this; - addListener(event: "data", listener: (chunk: Buffer | string) => void): this; - addListener(event: "drain", listener: () => void): this; - addListener(event: "end", listener: () => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "finish", listener: () => void): this; - addListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; - addListener(event: "pipe", listener: (src: stream.Readable) => void): this; - addListener(event: "unpipe", listener: (src: stream.Readable) => void): this; - addListener(event: "streamClosed", listener: (code: number) => void): this; - addListener(event: "timeout", listener: () => void): this; - addListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; - addListener(event: "wantTrailers", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "aborted"): boolean; - emit(event: "close"): boolean; - emit(event: "data", chunk: Buffer | string): boolean; - emit(event: "drain"): boolean; - emit(event: "end"): boolean; - emit(event: "error", err: Error): boolean; - emit(event: "finish"): boolean; - emit(event: "frameError", frameType: number, errorCode: number): boolean; - emit(event: "pipe", src: stream.Readable): boolean; - emit(event: "unpipe", src: stream.Readable): boolean; - emit(event: "streamClosed", code: number): boolean; - emit(event: "timeout"): boolean; - emit(event: "trailers", trailers: IncomingHttpHeaders, flags: number): boolean; - emit(event: "wantTrailers"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "aborted", listener: () => void): this; - on(event: "close", listener: () => void): this; - on(event: "data", listener: (chunk: Buffer | string) => void): this; - on(event: "drain", listener: () => void): this; - on(event: "end", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "finish", listener: () => void): this; - on(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; - on(event: "pipe", listener: (src: stream.Readable) => void): this; - on(event: "unpipe", listener: (src: stream.Readable) => void): this; - on(event: "streamClosed", listener: (code: number) => void): this; - on(event: "timeout", listener: () => void): this; - on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; - on(event: "wantTrailers", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "aborted", listener: () => void): this; - once(event: "close", listener: () => void): this; - once(event: "data", listener: (chunk: Buffer | string) => void): this; - once(event: "drain", listener: () => void): this; - once(event: "end", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "finish", listener: () => void): this; - once(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; - once(event: "pipe", listener: (src: stream.Readable) => void): this; - once(event: "unpipe", listener: (src: stream.Readable) => void): this; - once(event: "streamClosed", listener: (code: number) => void): this; - once(event: "timeout", listener: () => void): this; - once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; - once(event: "wantTrailers", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "aborted", listener: () => void): this; - prependListener(event: "close", listener: () => void): this; - prependListener(event: "data", listener: (chunk: Buffer | string) => void): this; - prependListener(event: "drain", listener: () => void): this; - prependListener(event: "end", listener: () => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "finish", listener: () => void): this; - prependListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; - prependListener(event: "pipe", listener: (src: stream.Readable) => void): this; - prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this; - prependListener(event: "streamClosed", listener: (code: number) => void): this; - prependListener(event: "timeout", listener: () => void): this; - prependListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; - prependListener(event: "wantTrailers", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "aborted", listener: () => void): this; - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this; - prependOnceListener(event: "drain", listener: () => void): this; - prependOnceListener(event: "end", listener: () => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "finish", listener: () => void): this; - prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; - prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this; - prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this; - prependOnceListener(event: "streamClosed", listener: (code: number) => void): this; - prependOnceListener(event: "timeout", listener: () => void): this; - prependOnceListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; - prependOnceListener(event: "wantTrailers", listener: () => void): this; - - sendTrailers(headers: OutgoingHttpHeaders): this; - } - - export interface ClientHttp2Stream extends Http2Stream { - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - addListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; - addListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "headers", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; - emit(event: "push", headers: IncomingHttpHeaders, flags: number): boolean; - emit(event: "response", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; - on(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; - once(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - prependListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; - prependListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - prependOnceListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; - prependOnceListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - } - - export interface ServerHttp2Stream extends Http2Stream { - additionalHeaders(headers: OutgoingHttpHeaders): void; - readonly headersSent: boolean; - readonly pushAllowed: boolean; - pushStream(headers: OutgoingHttpHeaders, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; - pushStream(headers: OutgoingHttpHeaders, options?: StreamPriorityOptions, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; - respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void; - respondWithFD(fd: number, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptions): void; - respondWithFile(path: string, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptionsWithError): void; - } - - // Http2Session - - export interface Settings { - headerTableSize?: number; - enablePush?: boolean; - initialWindowSize?: number; - maxFrameSize?: number; - maxConcurrentStreams?: number; - maxHeaderListSize?: number; - } - - export interface ClientSessionRequestOptions { - endStream?: boolean; - exclusive?: boolean; - parent?: number; - weight?: number; - getTrailers?: (trailers: OutgoingHttpHeaders, flags: number) => void; - } - - export interface SessionState { - effectiveLocalWindowSize?: number; - effectiveRecvDataLength?: number; - nextStreamID?: number; - localWindowSize?: number; - lastProcStreamID?: number; - remoteWindowSize?: number; - outboundQueueSize?: number; - deflateDynamicTableSize?: number; - inflateDynamicTableSize?: number; - } - - export interface Http2Session extends events.EventEmitter { - readonly alpnProtocol?: string; - close(callback?: () => void): void; - readonly closed: boolean; - readonly connecting: boolean; - destroy(error?: Error, code?: number): void; - readonly destroyed: boolean; - readonly encrypted?: boolean; - goaway(code?: number, lastStreamID?: number, opaqueData?: Buffer | DataView | NodeJS.TypedArray): void; - readonly localSettings: Settings; - readonly originSet?: string[]; - readonly pendingSettingsAck: boolean; - ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; - ping(payload: Buffer | DataView | NodeJS.TypedArray , callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; - ref(): void; - readonly remoteSettings: Settings; - rstStream(stream: Http2Stream, code?: number): void; - setTimeout(msecs: number, callback?: () => void): void; - readonly socket: net.Socket | tls.TLSSocket; - readonly state: SessionState; - priority(stream: Http2Stream, options: StreamPriorityOptions): void; - settings(settings: Settings): void; - readonly type: number; - unref(): void; - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "close", listener: () => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; - addListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; - addListener(event: "localSettings", listener: (settings: Settings) => void): this; - addListener(event: "remoteSettings", listener: (settings: Settings) => void): this; - addListener(event: "timeout", listener: () => void): this; - addListener(event: "ping", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "close"): boolean; - emit(event: "error", err: Error): boolean; - emit(event: "frameError", frameType: number, errorCode: number, streamID: number): boolean; - emit(event: "goaway", errorCode: number, lastStreamID: number, opaqueData: Buffer): boolean; - emit(event: "localSettings", settings: Settings): boolean; - emit(event: "remoteSettings", settings: Settings): boolean; - emit(event: "timeout"): boolean; - emit(event: "ping"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "close", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; - on(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; - on(event: "localSettings", listener: (settings: Settings) => void): this; - on(event: "remoteSettings", listener: (settings: Settings) => void): this; - on(event: "timeout", listener: () => void): this; - on(event: "ping", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "close", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; - once(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; - once(event: "localSettings", listener: (settings: Settings) => void): this; - once(event: "remoteSettings", listener: (settings: Settings) => void): this; - once(event: "timeout", listener: () => void): this; - once(event: "ping", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "close", listener: () => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; - prependListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; - prependListener(event: "localSettings", listener: (settings: Settings) => void): this; - prependListener(event: "remoteSettings", listener: (settings: Settings) => void): this; - prependListener(event: "timeout", listener: () => void): this; - prependListener(event: "ping", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; - prependOnceListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; - prependOnceListener(event: "localSettings", listener: (settings: Settings) => void): this; - prependOnceListener(event: "remoteSettings", listener: (settings: Settings) => void): this; - prependOnceListener(event: "timeout", listener: () => void): this; - prependOnceListener(event: "ping", listener: () => void): this; - } - - export interface ClientHttp2Session extends Http2Session { - request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream; - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; - addListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - addListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "altsvc", alt: string, origin: string, stream: number): boolean; - emit(event: "connect", session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; - emit(event: "stream", stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; - on(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - on(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; - once(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - once(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; - prependListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - prependListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; - prependOnceListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - prependOnceListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; - } - - export interface AlternativeServiceOptions { - origin: number | string | url.URL; - } - - export interface ServerHttp2Session extends Http2Session { - altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void; - readonly server: Http2Server | Http2SecureServer; - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "connect", session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; - emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; - prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - } - - // Http2Server - - export interface SessionOptions { - maxDeflateDynamicTableSize?: number; - maxReservedRemoteStreams?: number; - maxSendHeaderBlockLength?: number; - paddingStrategy?: number; - peerMaxConcurrentStreams?: number; - selectPadding?: (frameLen: number, maxFrameLen: number) => number; - settings?: Settings; - createConnection?: (authority: url.URL, option: SessionOptions) => stream.Duplex; - } - - export type ClientSessionOptions = SessionOptions; - export type ServerSessionOptions = SessionOptions; - - export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions { } - export interface SecureServerSessionOptions extends ServerSessionOptions, tls.TlsOptions { } - - export interface ServerOptions extends ServerSessionOptions { } - - export interface SecureServerOptions extends SecureServerSessionOptions { - allowHTTP1?: boolean; - } - - export interface Http2Server extends net.Server { - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - addListener(event: "sessionError", listener: (err: Error) => void): this; - addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - addListener(event: "timeout", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean; - emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean; - emit(event: "sessionError", err: Error): boolean; - emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; - emit(event: "timeout"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - on(event: "sessionError", listener: (err: Error) => void): this; - on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - on(event: "timeout", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - once(event: "sessionError", listener: (err: Error) => void): this; - once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - once(event: "timeout", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - prependListener(event: "sessionError", listener: (err: Error) => void): this; - prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - prependListener(event: "timeout", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - prependOnceListener(event: "sessionError", listener: (err: Error) => void): this; - prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - prependOnceListener(event: "timeout", listener: () => void): this; - } - - export interface Http2SecureServer extends tls.Server { - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - addListener(event: "sessionError", listener: (err: Error) => void): this; - addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - addListener(event: "timeout", listener: () => void): this; - addListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean; - emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean; - emit(event: "sessionError", err: Error): boolean; - emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; - emit(event: "timeout"): boolean; - emit(event: "unknownProtocol", socket: tls.TLSSocket): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - on(event: "sessionError", listener: (err: Error) => void): this; - on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - on(event: "timeout", listener: () => void): this; - on(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - once(event: "sessionError", listener: (err: Error) => void): this; - once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - once(event: "timeout", listener: () => void): this; - once(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - prependListener(event: "sessionError", listener: (err: Error) => void): this; - prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - prependListener(event: "timeout", listener: () => void): this; - prependListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; - prependOnceListener(event: "sessionError", listener: (err: Error) => void): this; - prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; - prependOnceListener(event: "timeout", listener: () => void): this; - prependOnceListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; - } - - export class Http2ServerRequest extends stream.Readable { - private constructor(); - headers: IncomingHttpHeaders; - httpVersion: string; - method: string; - rawHeaders: string[]; - rawTrailers: string[]; - setTimeout(msecs: number, callback?: () => void): void; - socket: net.Socket | tls.TLSSocket; - stream: ServerHttp2Stream; - trailers: IncomingHttpHeaders; - url: string; - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "aborted", hadError: boolean, code: number): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - } - - export class Http2ServerResponse extends stream.Stream { - private constructor(); - addTrailers(trailers: OutgoingHttpHeaders): void; - connection: net.Socket | tls.TLSSocket; - end(callback?: () => void): void; - end(data?: string | Buffer, callback?: () => void): void; - end(data?: string | Buffer, encoding?: string, callback?: () => void): void; - readonly finished: boolean; - getHeader(name: string): string; - getHeaderNames(): string[]; - getHeaders(): OutgoingHttpHeaders; - hasHeader(name: string): boolean; - readonly headersSent: boolean; - removeHeader(name: string): void; - sendDate: boolean; - setHeader(name: string, value: number | string | ReadonlyArray): void; - setTimeout(msecs: number, callback?: () => void): void; - socket: net.Socket | tls.TLSSocket; - statusCode: number; - statusMessage: ''; - stream: ServerHttp2Stream; - write(chunk: string | Buffer, callback?: (err: Error) => void): boolean; - write(chunk: string | Buffer, encoding?: string, callback?: (err: Error) => void): boolean; - writeContinue(): void; - writeHead(statusCode: number, headers?: OutgoingHttpHeaders): void; - writeHead(statusCode: number, statusMessage?: string, headers?: OutgoingHttpHeaders): void; - createPushResponse(headers: OutgoingHttpHeaders, callback: (err: Error | null, res: Http2ServerResponse) => void): void; - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - addListener(event: "close", listener: () => void): this; - addListener(event: "drain", listener: () => void): this; - addListener(event: "error", listener: (error: Error) => void): this; - addListener(event: "finish", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "aborted", hadError: boolean, code: number): boolean; - emit(event: "close"): boolean; - emit(event: "drain"): boolean; - emit(event: "error", error: Error): boolean; - emit(event: "finish"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - on(event: "close", listener: () => void): this; - on(event: "drain", listener: () => void): this; - on(event: "error", listener: (error: Error) => void): this; - on(event: "finish", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - once(event: "close", listener: () => void): this; - once(event: "drain", listener: () => void): this; - once(event: "error", listener: (error: Error) => void): this; - once(event: "finish", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - prependListener(event: "close", listener: () => void): this; - prependListener(event: "drain", listener: () => void): this; - prependListener(event: "error", listener: (error: Error) => void): this; - prependListener(event: "finish", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "drain", listener: () => void): this; - prependOnceListener(event: "error", listener: (error: Error) => void): this; - prependOnceListener(event: "finish", listener: () => void): this; - } - - // Public API - - export namespace constants { - const NGHTTP2_SESSION_SERVER: number; - const NGHTTP2_SESSION_CLIENT: number; - const NGHTTP2_STREAM_STATE_IDLE: number; - const NGHTTP2_STREAM_STATE_OPEN: number; - const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number; - const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number; - const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number; - const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number; - const NGHTTP2_STREAM_STATE_CLOSED: number; - const NGHTTP2_NO_ERROR: number; - const NGHTTP2_PROTOCOL_ERROR: number; - const NGHTTP2_INTERNAL_ERROR: number; - const NGHTTP2_FLOW_CONTROL_ERROR: number; - const NGHTTP2_SETTINGS_TIMEOUT: number; - const NGHTTP2_STREAM_CLOSED: number; - const NGHTTP2_FRAME_SIZE_ERROR: number; - const NGHTTP2_REFUSED_STREAM: number; - const NGHTTP2_CANCEL: number; - const NGHTTP2_COMPRESSION_ERROR: number; - const NGHTTP2_CONNECT_ERROR: number; - const NGHTTP2_ENHANCE_YOUR_CALM: number; - const NGHTTP2_INADEQUATE_SECURITY: number; - const NGHTTP2_HTTP_1_1_REQUIRED: number; - const NGHTTP2_ERR_FRAME_SIZE_ERROR: number; - const NGHTTP2_FLAG_NONE: number; - const NGHTTP2_FLAG_END_STREAM: number; - const NGHTTP2_FLAG_END_HEADERS: number; - const NGHTTP2_FLAG_ACK: number; - const NGHTTP2_FLAG_PADDED: number; - const NGHTTP2_FLAG_PRIORITY: number; - const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number; - const DEFAULT_SETTINGS_ENABLE_PUSH: number; - const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number; - const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number; - const MAX_MAX_FRAME_SIZE: number; - const MIN_MAX_FRAME_SIZE: number; - const MAX_INITIAL_WINDOW_SIZE: number; - const NGHTTP2_DEFAULT_WEIGHT: number; - const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number; - const NGHTTP2_SETTINGS_ENABLE_PUSH: number; - const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number; - const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number; - const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number; - const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number; - const PADDING_STRATEGY_NONE: number; - const PADDING_STRATEGY_MAX: number; - const PADDING_STRATEGY_CALLBACK: number; - const HTTP2_HEADER_STATUS: string; - const HTTP2_HEADER_METHOD: string; - const HTTP2_HEADER_AUTHORITY: string; - const HTTP2_HEADER_SCHEME: string; - const HTTP2_HEADER_PATH: string; - const HTTP2_HEADER_ACCEPT_CHARSET: string; - const HTTP2_HEADER_ACCEPT_ENCODING: string; - const HTTP2_HEADER_ACCEPT_LANGUAGE: string; - const HTTP2_HEADER_ACCEPT_RANGES: string; - const HTTP2_HEADER_ACCEPT: string; - const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string; - const HTTP2_HEADER_AGE: string; - const HTTP2_HEADER_ALLOW: string; - const HTTP2_HEADER_AUTHORIZATION: string; - const HTTP2_HEADER_CACHE_CONTROL: string; - const HTTP2_HEADER_CONNECTION: string; - const HTTP2_HEADER_CONTENT_DISPOSITION: string; - const HTTP2_HEADER_CONTENT_ENCODING: string; - const HTTP2_HEADER_CONTENT_LANGUAGE: string; - const HTTP2_HEADER_CONTENT_LENGTH: string; - const HTTP2_HEADER_CONTENT_LOCATION: string; - const HTTP2_HEADER_CONTENT_MD5: string; - const HTTP2_HEADER_CONTENT_RANGE: string; - const HTTP2_HEADER_CONTENT_TYPE: string; - const HTTP2_HEADER_COOKIE: string; - const HTTP2_HEADER_DATE: string; - const HTTP2_HEADER_ETAG: string; - const HTTP2_HEADER_EXPECT: string; - const HTTP2_HEADER_EXPIRES: string; - const HTTP2_HEADER_FROM: string; - const HTTP2_HEADER_HOST: string; - const HTTP2_HEADER_IF_MATCH: string; - const HTTP2_HEADER_IF_MODIFIED_SINCE: string; - const HTTP2_HEADER_IF_NONE_MATCH: string; - const HTTP2_HEADER_IF_RANGE: string; - const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string; - const HTTP2_HEADER_LAST_MODIFIED: string; - const HTTP2_HEADER_LINK: string; - const HTTP2_HEADER_LOCATION: string; - const HTTP2_HEADER_MAX_FORWARDS: string; - const HTTP2_HEADER_PREFER: string; - const HTTP2_HEADER_PROXY_AUTHENTICATE: string; - const HTTP2_HEADER_PROXY_AUTHORIZATION: string; - const HTTP2_HEADER_RANGE: string; - const HTTP2_HEADER_REFERER: string; - const HTTP2_HEADER_REFRESH: string; - const HTTP2_HEADER_RETRY_AFTER: string; - const HTTP2_HEADER_SERVER: string; - const HTTP2_HEADER_SET_COOKIE: string; - const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string; - const HTTP2_HEADER_TRANSFER_ENCODING: string; - const HTTP2_HEADER_TE: string; - const HTTP2_HEADER_UPGRADE: string; - const HTTP2_HEADER_USER_AGENT: string; - const HTTP2_HEADER_VARY: string; - const HTTP2_HEADER_VIA: string; - const HTTP2_HEADER_WWW_AUTHENTICATE: string; - const HTTP2_HEADER_HTTP2_SETTINGS: string; - const HTTP2_HEADER_KEEP_ALIVE: string; - const HTTP2_HEADER_PROXY_CONNECTION: string; - const HTTP2_METHOD_ACL: string; - const HTTP2_METHOD_BASELINE_CONTROL: string; - const HTTP2_METHOD_BIND: string; - const HTTP2_METHOD_CHECKIN: string; - const HTTP2_METHOD_CHECKOUT: string; - const HTTP2_METHOD_CONNECT: string; - const HTTP2_METHOD_COPY: string; - const HTTP2_METHOD_DELETE: string; - const HTTP2_METHOD_GET: string; - const HTTP2_METHOD_HEAD: string; - const HTTP2_METHOD_LABEL: string; - const HTTP2_METHOD_LINK: string; - const HTTP2_METHOD_LOCK: string; - const HTTP2_METHOD_MERGE: string; - const HTTP2_METHOD_MKACTIVITY: string; - const HTTP2_METHOD_MKCALENDAR: string; - const HTTP2_METHOD_MKCOL: string; - const HTTP2_METHOD_MKREDIRECTREF: string; - const HTTP2_METHOD_MKWORKSPACE: string; - const HTTP2_METHOD_MOVE: string; - const HTTP2_METHOD_OPTIONS: string; - const HTTP2_METHOD_ORDERPATCH: string; - const HTTP2_METHOD_PATCH: string; - const HTTP2_METHOD_POST: string; - const HTTP2_METHOD_PRI: string; - const HTTP2_METHOD_PROPFIND: string; - const HTTP2_METHOD_PROPPATCH: string; - const HTTP2_METHOD_PUT: string; - const HTTP2_METHOD_REBIND: string; - const HTTP2_METHOD_REPORT: string; - const HTTP2_METHOD_SEARCH: string; - const HTTP2_METHOD_TRACE: string; - const HTTP2_METHOD_UNBIND: string; - const HTTP2_METHOD_UNCHECKOUT: string; - const HTTP2_METHOD_UNLINK: string; - const HTTP2_METHOD_UNLOCK: string; - const HTTP2_METHOD_UPDATE: string; - const HTTP2_METHOD_UPDATEREDIRECTREF: string; - const HTTP2_METHOD_VERSION_CONTROL: string; - const HTTP_STATUS_CONTINUE: number; - const HTTP_STATUS_SWITCHING_PROTOCOLS: number; - const HTTP_STATUS_PROCESSING: number; - const HTTP_STATUS_OK: number; - const HTTP_STATUS_CREATED: number; - const HTTP_STATUS_ACCEPTED: number; - const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number; - const HTTP_STATUS_NO_CONTENT: number; - const HTTP_STATUS_RESET_CONTENT: number; - const HTTP_STATUS_PARTIAL_CONTENT: number; - const HTTP_STATUS_MULTI_STATUS: number; - const HTTP_STATUS_ALREADY_REPORTED: number; - const HTTP_STATUS_IM_USED: number; - const HTTP_STATUS_MULTIPLE_CHOICES: number; - const HTTP_STATUS_MOVED_PERMANENTLY: number; - const HTTP_STATUS_FOUND: number; - const HTTP_STATUS_SEE_OTHER: number; - const HTTP_STATUS_NOT_MODIFIED: number; - const HTTP_STATUS_USE_PROXY: number; - const HTTP_STATUS_TEMPORARY_REDIRECT: number; - const HTTP_STATUS_PERMANENT_REDIRECT: number; - const HTTP_STATUS_BAD_REQUEST: number; - const HTTP_STATUS_UNAUTHORIZED: number; - const HTTP_STATUS_PAYMENT_REQUIRED: number; - const HTTP_STATUS_FORBIDDEN: number; - const HTTP_STATUS_NOT_FOUND: number; - const HTTP_STATUS_METHOD_NOT_ALLOWED: number; - const HTTP_STATUS_NOT_ACCEPTABLE: number; - const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number; - const HTTP_STATUS_REQUEST_TIMEOUT: number; - const HTTP_STATUS_CONFLICT: number; - const HTTP_STATUS_GONE: number; - const HTTP_STATUS_LENGTH_REQUIRED: number; - const HTTP_STATUS_PRECONDITION_FAILED: number; - const HTTP_STATUS_PAYLOAD_TOO_LARGE: number; - const HTTP_STATUS_URI_TOO_LONG: number; - const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number; - const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number; - const HTTP_STATUS_EXPECTATION_FAILED: number; - const HTTP_STATUS_TEAPOT: number; - const HTTP_STATUS_MISDIRECTED_REQUEST: number; - const HTTP_STATUS_UNPROCESSABLE_ENTITY: number; - const HTTP_STATUS_LOCKED: number; - const HTTP_STATUS_FAILED_DEPENDENCY: number; - const HTTP_STATUS_UNORDERED_COLLECTION: number; - const HTTP_STATUS_UPGRADE_REQUIRED: number; - const HTTP_STATUS_PRECONDITION_REQUIRED: number; - const HTTP_STATUS_TOO_MANY_REQUESTS: number; - const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number; - const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number; - const HTTP_STATUS_INTERNAL_SERVER_ERROR: number; - const HTTP_STATUS_NOT_IMPLEMENTED: number; - const HTTP_STATUS_BAD_GATEWAY: number; - const HTTP_STATUS_SERVICE_UNAVAILABLE: number; - const HTTP_STATUS_GATEWAY_TIMEOUT: number; - const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number; - const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number; - const HTTP_STATUS_INSUFFICIENT_STORAGE: number; - const HTTP_STATUS_LOOP_DETECTED: number; - const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number; - const HTTP_STATUS_NOT_EXTENDED: number; - const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number; - } - - export function getDefaultSettings(): Settings; - export function getPackedSettings(settings: Settings): Settings; - export function getUnpackedSettings(buf: Buffer | Uint8Array): Settings; - - export function createServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; - export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; - - export function createSecureServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; - export function createSecureServer(options: SecureServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; - - export function connect(authority: string | url.URL, listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): ClientHttp2Session; - export function connect( - authority: string | url.URL, - options?: ClientSessionOptions | SecureClientSessionOptions, - listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void, - ): ClientHttp2Session; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/https.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/https.d.ts deleted file mode 100644 index dea042e..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/https.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -declare module "https" { - import * as tls from "tls"; - import * as events from "events"; - import * as http from "http"; - import { URL } from "url"; - - type ServerOptions = tls.SecureContextOptions & tls.TlsOptions & http.ServerOptions; - - type RequestOptions = http.RequestOptions & tls.SecureContextOptions & { - rejectUnauthorized?: boolean; // Defaults to true - servername?: string; // SNI TLS Extension - }; - - interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions { - rejectUnauthorized?: boolean; - maxCachedSessions?: number; - } - - class Agent extends http.Agent { - constructor(options?: AgentOptions); - options: AgentOptions; - } - - class Server extends tls.Server { - constructor(options: ServerOptions, requestListener?: http.RequestListener); - - setTimeout(callback: () => void): this; - setTimeout(msecs?: number, callback?: () => void): this; - /** - * Limits maximum incoming headers count. If set to 0, no limit will be applied. - * @default 2000 - * {@link https://nodejs.org/api/http.html#http_server_maxheaderscount} - */ - maxHeadersCount: number | null; - timeout: number; - /** - * Limit the amount of time the parser will wait to receive the complete HTTP headers. - * @default 40000 - * {@link https://nodejs.org/api/http.html#http_server_headerstimeout} - */ - headersTimeout: number; - keepAliveTimeout: number; - } - - function createServer(options: ServerOptions, requestListener?: http.RequestListener): Server; - function request(options: RequestOptions | string | URL, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; - function request(url: string | URL, options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; - function get(options: RequestOptions | string | URL, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; - function get(url: string | URL, options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; - let globalAgent: Agent; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/index.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/index.d.ts deleted file mode 100644 index 0d075c0..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/index.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -// Type definitions for Node.js 10.17 -// Project: http://nodejs.org/ -// Definitions by: Microsoft TypeScript -// DefinitelyTyped -// Alberto Schiabel -// Alexander T. -// Alvis HT Tang -// Andrew Makarov -// Bruno Scheufler -// Chigozirim C. -// Deividas Bakanas -// Eugene Y. Q. Shen -// Flarna -// Hannes Magnusson -// Hoàng Văn Khải -// Huw -// Kelvin Jin -// Klaus Meinhardt -// Lishude -// Mariusz Wiktorczyk -// Mohsen Azimi -// Nicolas Even -// Nikita Galkin -// Parambir Singh -// Sebastian Silbermann -// Simon Schick -// Thomas den Hollander -// Wilco Bakker -// wwwy3y3 -// Zane Hannan AU -// Jeremie Rodriguez -// Samuel Ainsworth -// Kyle Uehlein -// Jordi Oliveras Rovira -// Thanik Bhongbhibhat -// Minh Son Nguyen -// ExE Boss -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -// NOTE: These definitions support NodeJS and TypeScript 3.7. -// This isn't strictly needed since 3.7 has the assert module, but this way we're consistent. -// Typically type modificatons should be made in base.d.ts instead of here - -/// -/// diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/inspector.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/inspector.d.ts deleted file mode 100644 index 9e1eea4..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/inspector.d.ts +++ /dev/null @@ -1,3162 +0,0 @@ -// tslint:disable-next-line:dt-header -// Type definitions for inspector - -// These definitions are auto-generated. -// Please see https://github.com/DefinitelyTyped/DefinitelyTyped/pull/19330 -// for more information. - -/** - * The inspector module provides an API for interacting with the V8 inspector. - */ -declare module "inspector" { - import { EventEmitter } from 'events'; - - interface InspectorNotification { - method: string; - params: T; - } - - namespace Console { - /** - * Console message. - */ - interface ConsoleMessage { - /** - * Message source. - */ - source: string; - /** - * Message severity. - */ - level: string; - /** - * Message text. - */ - text: string; - /** - * URL of the message origin. - */ - url?: string; - /** - * Line number in the resource that generated this message (1-based). - */ - line?: number; - /** - * Column number in the resource that generated this message (1-based). - */ - column?: number; - } - - interface MessageAddedEventDataType { - /** - * Console message that has been added. - */ - message: ConsoleMessage; - } - } - - namespace Debugger { - /** - * Breakpoint identifier. - */ - type BreakpointId = string; - - /** - * Call frame identifier. - */ - type CallFrameId = string; - - /** - * Location in the source code. - */ - interface Location { - /** - * Script identifier as reported in the `Debugger.scriptParsed`. - */ - scriptId: Runtime.ScriptId; - /** - * Line number in the script (0-based). - */ - lineNumber: number; - /** - * Column number in the script (0-based). - */ - columnNumber?: number; - } - - /** - * Location in the source code. - * @experimental - */ - interface ScriptPosition { - lineNumber: number; - columnNumber: number; - } - - /** - * JavaScript call frame. Array of call frames form the call stack. - */ - interface CallFrame { - /** - * Call frame identifier. This identifier is only valid while the virtual machine is paused. - */ - callFrameId: CallFrameId; - /** - * Name of the JavaScript function called on this call frame. - */ - functionName: string; - /** - * Location in the source code. - */ - functionLocation?: Location; - /** - * Location in the source code. - */ - location: Location; - /** - * JavaScript script name or url. - */ - url: string; - /** - * Scope chain for this call frame. - */ - scopeChain: Scope[]; - /** - * `this` object for this call frame. - */ - this: Runtime.RemoteObject; - /** - * The value being returned, if the function is at return point. - */ - returnValue?: Runtime.RemoteObject; - } - - /** - * Scope description. - */ - interface Scope { - /** - * Scope type. - */ - type: string; - /** - * Object representing the scope. For `global` and `with` scopes it represents the actual - * object; for the rest of the scopes, it is artificial transient object enumerating scope - * variables as its properties. - */ - object: Runtime.RemoteObject; - name?: string; - /** - * Location in the source code where scope starts - */ - startLocation?: Location; - /** - * Location in the source code where scope ends - */ - endLocation?: Location; - } - - /** - * Search match for resource. - */ - interface SearchMatch { - /** - * Line number in resource content. - */ - lineNumber: number; - /** - * Line with match content. - */ - lineContent: string; - } - - interface BreakLocation { - /** - * Script identifier as reported in the `Debugger.scriptParsed`. - */ - scriptId: Runtime.ScriptId; - /** - * Line number in the script (0-based). - */ - lineNumber: number; - /** - * Column number in the script (0-based). - */ - columnNumber?: number; - type?: string; - } - - interface ContinueToLocationParameterType { - /** - * Location to continue to. - */ - location: Location; - targetCallFrames?: string; - } - - interface EvaluateOnCallFrameParameterType { - /** - * Call frame identifier to evaluate on. - */ - callFrameId: CallFrameId; - /** - * Expression to evaluate. - */ - expression: string; - /** - * String object group name to put result into (allows rapid releasing resulting object handles - * using `releaseObjectGroup`). - */ - objectGroup?: string; - /** - * Specifies whether command line API should be available to the evaluated expression, defaults - * to false. - */ - includeCommandLineAPI?: boolean; - /** - * In silent mode exceptions thrown during evaluation are not reported and do not pause - * execution. Overrides `setPauseOnException` state. - */ - silent?: boolean; - /** - * Whether the result is expected to be a JSON object that should be sent by value. - */ - returnByValue?: boolean; - /** - * Whether preview should be generated for the result. - * @experimental - */ - generatePreview?: boolean; - /** - * Whether to throw an exception if side effect cannot be ruled out during evaluation. - */ - throwOnSideEffect?: boolean; - /** - * Terminate execution after timing out (number of milliseconds). - * @experimental - */ - timeout?: Runtime.TimeDelta; - } - - interface GetPossibleBreakpointsParameterType { - /** - * Start of range to search possible breakpoint locations in. - */ - start: Location; - /** - * End of range to search possible breakpoint locations in (excluding). When not specified, end - * of scripts is used as end of range. - */ - end?: Location; - /** - * Only consider locations which are in the same (non-nested) function as start. - */ - restrictToFunction?: boolean; - } - - interface GetScriptSourceParameterType { - /** - * Id of the script to get source for. - */ - scriptId: Runtime.ScriptId; - } - - interface GetStackTraceParameterType { - stackTraceId: Runtime.StackTraceId; - } - - interface PauseOnAsyncCallParameterType { - /** - * Debugger will pause when async call with given stack trace is started. - */ - parentStackTraceId: Runtime.StackTraceId; - } - - interface RemoveBreakpointParameterType { - breakpointId: BreakpointId; - } - - interface RestartFrameParameterType { - /** - * Call frame identifier to evaluate on. - */ - callFrameId: CallFrameId; - } - - interface SearchInContentParameterType { - /** - * Id of the script to search in. - */ - scriptId: Runtime.ScriptId; - /** - * String to search for. - */ - query: string; - /** - * If true, search is case sensitive. - */ - caseSensitive?: boolean; - /** - * If true, treats string parameter as regex. - */ - isRegex?: boolean; - } - - interface SetAsyncCallStackDepthParameterType { - /** - * Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async - * call stacks (default). - */ - maxDepth: number; - } - - interface SetBlackboxPatternsParameterType { - /** - * Array of regexps that will be used to check script url for blackbox state. - */ - patterns: string[]; - } - - interface SetBlackboxedRangesParameterType { - /** - * Id of the script. - */ - scriptId: Runtime.ScriptId; - positions: ScriptPosition[]; - } - - interface SetBreakpointParameterType { - /** - * Location to set breakpoint in. - */ - location: Location; - /** - * Expression to use as a breakpoint condition. When specified, debugger will only stop on the - * breakpoint if this expression evaluates to true. - */ - condition?: string; - } - - interface SetBreakpointByUrlParameterType { - /** - * Line number to set breakpoint at. - */ - lineNumber: number; - /** - * URL of the resources to set breakpoint on. - */ - url?: string; - /** - * Regex pattern for the URLs of the resources to set breakpoints on. Either `url` or - * `urlRegex` must be specified. - */ - urlRegex?: string; - /** - * Script hash of the resources to set breakpoint on. - */ - scriptHash?: string; - /** - * Offset in the line to set breakpoint at. - */ - columnNumber?: number; - /** - * Expression to use as a breakpoint condition. When specified, debugger will only stop on the - * breakpoint if this expression evaluates to true. - */ - condition?: string; - } - - interface SetBreakpointOnFunctionCallParameterType { - /** - * Function object id. - */ - objectId: Runtime.RemoteObjectId; - /** - * Expression to use as a breakpoint condition. When specified, debugger will - * stop on the breakpoint if this expression evaluates to true. - */ - condition?: string; - } - - interface SetBreakpointsActiveParameterType { - /** - * New value for breakpoints active state. - */ - active: boolean; - } - - interface SetPauseOnExceptionsParameterType { - /** - * Pause on exceptions mode. - */ - state: string; - } - - interface SetReturnValueParameterType { - /** - * New return value. - */ - newValue: Runtime.CallArgument; - } - - interface SetScriptSourceParameterType { - /** - * Id of the script to edit. - */ - scriptId: Runtime.ScriptId; - /** - * New content of the script. - */ - scriptSource: string; - /** - * If true the change will not actually be applied. Dry run may be used to get result - * description without actually modifying the code. - */ - dryRun?: boolean; - } - - interface SetSkipAllPausesParameterType { - /** - * New value for skip pauses state. - */ - skip: boolean; - } - - interface SetVariableValueParameterType { - /** - * 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch' - * scope types are allowed. Other scopes could be manipulated manually. - */ - scopeNumber: number; - /** - * Variable name. - */ - variableName: string; - /** - * New variable value. - */ - newValue: Runtime.CallArgument; - /** - * Id of callframe that holds variable. - */ - callFrameId: CallFrameId; - } - - interface StepIntoParameterType { - /** - * Debugger will issue additional Debugger.paused notification if any async task is scheduled - * before next pause. - * @experimental - */ - breakOnAsyncCall?: boolean; - } - - interface EnableReturnType { - /** - * Unique identifier of the debugger. - * @experimental - */ - debuggerId: Runtime.UniqueDebuggerId; - } - - interface EvaluateOnCallFrameReturnType { - /** - * Object wrapper for the evaluation result. - */ - result: Runtime.RemoteObject; - /** - * Exception details. - */ - exceptionDetails?: Runtime.ExceptionDetails; - } - - interface GetPossibleBreakpointsReturnType { - /** - * List of the possible breakpoint locations. - */ - locations: BreakLocation[]; - } - - interface GetScriptSourceReturnType { - /** - * Script source. - */ - scriptSource: string; - } - - interface GetStackTraceReturnType { - stackTrace: Runtime.StackTrace; - } - - interface RestartFrameReturnType { - /** - * New stack trace. - */ - callFrames: CallFrame[]; - /** - * Async stack trace, if any. - */ - asyncStackTrace?: Runtime.StackTrace; - /** - * Async stack trace, if any. - * @experimental - */ - asyncStackTraceId?: Runtime.StackTraceId; - } - - interface SearchInContentReturnType { - /** - * List of search matches. - */ - result: SearchMatch[]; - } - - interface SetBreakpointReturnType { - /** - * Id of the created breakpoint for further reference. - */ - breakpointId: BreakpointId; - /** - * Location this breakpoint resolved into. - */ - actualLocation: Location; - } - - interface SetBreakpointByUrlReturnType { - /** - * Id of the created breakpoint for further reference. - */ - breakpointId: BreakpointId; - /** - * List of the locations this breakpoint resolved into upon addition. - */ - locations: Location[]; - } - - interface SetBreakpointOnFunctionCallReturnType { - /** - * Id of the created breakpoint for further reference. - */ - breakpointId: BreakpointId; - } - - interface SetScriptSourceReturnType { - /** - * New stack trace in case editing has happened while VM was stopped. - */ - callFrames?: CallFrame[]; - /** - * Whether current call stack was modified after applying the changes. - */ - stackChanged?: boolean; - /** - * Async stack trace, if any. - */ - asyncStackTrace?: Runtime.StackTrace; - /** - * Async stack trace, if any. - * @experimental - */ - asyncStackTraceId?: Runtime.StackTraceId; - /** - * Exception details if any. - */ - exceptionDetails?: Runtime.ExceptionDetails; - } - - interface BreakpointResolvedEventDataType { - /** - * Breakpoint unique identifier. - */ - breakpointId: BreakpointId; - /** - * Actual breakpoint location. - */ - location: Location; - } - - interface PausedEventDataType { - /** - * Call stack the virtual machine stopped on. - */ - callFrames: CallFrame[]; - /** - * Pause reason. - */ - reason: string; - /** - * Object containing break-specific auxiliary properties. - */ - data?: {}; - /** - * Hit breakpoints IDs - */ - hitBreakpoints?: string[]; - /** - * Async stack trace, if any. - */ - asyncStackTrace?: Runtime.StackTrace; - /** - * Async stack trace, if any. - * @experimental - */ - asyncStackTraceId?: Runtime.StackTraceId; - /** - * Just scheduled async call will have this stack trace as parent stack during async execution. - * This field is available only after `Debugger.stepInto` call with `breakOnAsynCall` flag. - * @experimental - */ - asyncCallStackTraceId?: Runtime.StackTraceId; - } - - interface ScriptFailedToParseEventDataType { - /** - * Identifier of the script parsed. - */ - scriptId: Runtime.ScriptId; - /** - * URL or name of the script parsed (if any). - */ - url: string; - /** - * Line offset of the script within the resource with given URL (for script tags). - */ - startLine: number; - /** - * Column offset of the script within the resource with given URL. - */ - startColumn: number; - /** - * Last line of the script. - */ - endLine: number; - /** - * Length of the last line of the script. - */ - endColumn: number; - /** - * Specifies script creation context. - */ - executionContextId: Runtime.ExecutionContextId; - /** - * Content hash of the script. - */ - hash: string; - /** - * Embedder-specific auxiliary data. - */ - executionContextAuxData?: {}; - /** - * URL of source map associated with script (if any). - */ - sourceMapURL?: string; - /** - * True, if this script has sourceURL. - */ - hasSourceURL?: boolean; - /** - * True, if this script is ES6 module. - */ - isModule?: boolean; - /** - * This script length. - */ - length?: number; - /** - * JavaScript top stack frame of where the script parsed event was triggered if available. - * @experimental - */ - stackTrace?: Runtime.StackTrace; - } - - interface ScriptParsedEventDataType { - /** - * Identifier of the script parsed. - */ - scriptId: Runtime.ScriptId; - /** - * URL or name of the script parsed (if any). - */ - url: string; - /** - * Line offset of the script within the resource with given URL (for script tags). - */ - startLine: number; - /** - * Column offset of the script within the resource with given URL. - */ - startColumn: number; - /** - * Last line of the script. - */ - endLine: number; - /** - * Length of the last line of the script. - */ - endColumn: number; - /** - * Specifies script creation context. - */ - executionContextId: Runtime.ExecutionContextId; - /** - * Content hash of the script. - */ - hash: string; - /** - * Embedder-specific auxiliary data. - */ - executionContextAuxData?: {}; - /** - * True, if this script is generated as a result of the live edit operation. - * @experimental - */ - isLiveEdit?: boolean; - /** - * URL of source map associated with script (if any). - */ - sourceMapURL?: string; - /** - * True, if this script has sourceURL. - */ - hasSourceURL?: boolean; - /** - * True, if this script is ES6 module. - */ - isModule?: boolean; - /** - * This script length. - */ - length?: number; - /** - * JavaScript top stack frame of where the script parsed event was triggered if available. - * @experimental - */ - stackTrace?: Runtime.StackTrace; - } - } - - namespace HeapProfiler { - /** - * Heap snapshot object id. - */ - type HeapSnapshotObjectId = string; - - /** - * Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes. - */ - interface SamplingHeapProfileNode { - /** - * Function location. - */ - callFrame: Runtime.CallFrame; - /** - * Allocations size in bytes for the node excluding children. - */ - selfSize: number; - /** - * Child nodes. - */ - children: SamplingHeapProfileNode[]; - } - - /** - * Profile. - */ - interface SamplingHeapProfile { - head: SamplingHeapProfileNode; - } - - interface AddInspectedHeapObjectParameterType { - /** - * Heap snapshot object id to be accessible by means of $x command line API. - */ - heapObjectId: HeapSnapshotObjectId; - } - - interface GetHeapObjectIdParameterType { - /** - * Identifier of the object to get heap object id for. - */ - objectId: Runtime.RemoteObjectId; - } - - interface GetObjectByHeapObjectIdParameterType { - objectId: HeapSnapshotObjectId; - /** - * Symbolic group name that can be used to release multiple objects. - */ - objectGroup?: string; - } - - interface StartSamplingParameterType { - /** - * Average sample interval in bytes. Poisson distribution is used for the intervals. The - * default value is 32768 bytes. - */ - samplingInterval?: number; - } - - interface StartTrackingHeapObjectsParameterType { - trackAllocations?: boolean; - } - - interface StopTrackingHeapObjectsParameterType { - /** - * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken - * when the tracking is stopped. - */ - reportProgress?: boolean; - } - - interface TakeHeapSnapshotParameterType { - /** - * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken. - */ - reportProgress?: boolean; - } - - interface GetHeapObjectIdReturnType { - /** - * Id of the heap snapshot object corresponding to the passed remote object id. - */ - heapSnapshotObjectId: HeapSnapshotObjectId; - } - - interface GetObjectByHeapObjectIdReturnType { - /** - * Evaluation result. - */ - result: Runtime.RemoteObject; - } - - interface GetSamplingProfileReturnType { - /** - * Return the sampling profile being collected. - */ - profile: SamplingHeapProfile; - } - - interface StopSamplingReturnType { - /** - * Recorded sampling heap profile. - */ - profile: SamplingHeapProfile; - } - - interface AddHeapSnapshotChunkEventDataType { - chunk: string; - } - - interface HeapStatsUpdateEventDataType { - /** - * An array of triplets. Each triplet describes a fragment. The first integer is the fragment - * index, the second integer is a total count of objects for the fragment, the third integer is - * a total size of the objects for the fragment. - */ - statsUpdate: number[]; - } - - interface LastSeenObjectIdEventDataType { - lastSeenObjectId: number; - timestamp: number; - } - - interface ReportHeapSnapshotProgressEventDataType { - done: number; - total: number; - finished?: boolean; - } - } - - namespace Profiler { - /** - * Profile node. Holds callsite information, execution statistics and child nodes. - */ - interface ProfileNode { - /** - * Unique id of the node. - */ - id: number; - /** - * Function location. - */ - callFrame: Runtime.CallFrame; - /** - * Number of samples where this node was on top of the call stack. - */ - hitCount?: number; - /** - * Child node ids. - */ - children?: number[]; - /** - * The reason of being not optimized. The function may be deoptimized or marked as don't - * optimize. - */ - deoptReason?: string; - /** - * An array of source position ticks. - */ - positionTicks?: PositionTickInfo[]; - } - - /** - * Profile. - */ - interface Profile { - /** - * The list of profile nodes. First item is the root node. - */ - nodes: ProfileNode[]; - /** - * Profiling start timestamp in microseconds. - */ - startTime: number; - /** - * Profiling end timestamp in microseconds. - */ - endTime: number; - /** - * Ids of samples top nodes. - */ - samples?: number[]; - /** - * Time intervals between adjacent samples in microseconds. The first delta is relative to the - * profile startTime. - */ - timeDeltas?: number[]; - } - - /** - * Specifies a number of samples attributed to a certain source position. - */ - interface PositionTickInfo { - /** - * Source line number (1-based). - */ - line: number; - /** - * Number of samples attributed to the source line. - */ - ticks: number; - } - - /** - * Coverage data for a source range. - */ - interface CoverageRange { - /** - * JavaScript script source offset for the range start. - */ - startOffset: number; - /** - * JavaScript script source offset for the range end. - */ - endOffset: number; - /** - * Collected execution count of the source range. - */ - count: number; - } - - /** - * Coverage data for a JavaScript function. - */ - interface FunctionCoverage { - /** - * JavaScript function name. - */ - functionName: string; - /** - * Source ranges inside the function with coverage data. - */ - ranges: CoverageRange[]; - /** - * Whether coverage data for this function has block granularity. - */ - isBlockCoverage: boolean; - } - - /** - * Coverage data for a JavaScript script. - */ - interface ScriptCoverage { - /** - * JavaScript script id. - */ - scriptId: Runtime.ScriptId; - /** - * JavaScript script name or url. - */ - url: string; - /** - * Functions contained in the script that has coverage data. - */ - functions: FunctionCoverage[]; - } - - /** - * Describes a type collected during runtime. - * @experimental - */ - interface TypeObject { - /** - * Name of a type collected with type profiling. - */ - name: string; - } - - /** - * Source offset and types for a parameter or return value. - * @experimental - */ - interface TypeProfileEntry { - /** - * Source offset of the parameter or end of function for return values. - */ - offset: number; - /** - * The types for this parameter or return value. - */ - types: TypeObject[]; - } - - /** - * Type profile data collected during runtime for a JavaScript script. - * @experimental - */ - interface ScriptTypeProfile { - /** - * JavaScript script id. - */ - scriptId: Runtime.ScriptId; - /** - * JavaScript script name or url. - */ - url: string; - /** - * Type profile entries for parameters and return values of the functions in the script. - */ - entries: TypeProfileEntry[]; - } - - interface SetSamplingIntervalParameterType { - /** - * New sampling interval in microseconds. - */ - interval: number; - } - - interface StartPreciseCoverageParameterType { - /** - * Collect accurate call counts beyond simple 'covered' or 'not covered'. - */ - callCount?: boolean; - /** - * Collect block-based coverage. - */ - detailed?: boolean; - } - - interface GetBestEffortCoverageReturnType { - /** - * Coverage data for the current isolate. - */ - result: ScriptCoverage[]; - } - - interface StopReturnType { - /** - * Recorded profile. - */ - profile: Profile; - } - - interface TakePreciseCoverageReturnType { - /** - * Coverage data for the current isolate. - */ - result: ScriptCoverage[]; - } - - interface TakeTypeProfileReturnType { - /** - * Type profile for all scripts since startTypeProfile() was turned on. - */ - result: ScriptTypeProfile[]; - } - - interface ConsoleProfileFinishedEventDataType { - id: string; - /** - * Location of console.profileEnd(). - */ - location: Debugger.Location; - profile: Profile; - /** - * Profile title passed as an argument to console.profile(). - */ - title?: string; - } - - interface ConsoleProfileStartedEventDataType { - id: string; - /** - * Location of console.profile(). - */ - location: Debugger.Location; - /** - * Profile title passed as an argument to console.profile(). - */ - title?: string; - } - } - - namespace Runtime { - /** - * Unique script identifier. - */ - type ScriptId = string; - - /** - * Unique object identifier. - */ - type RemoteObjectId = string; - - /** - * Primitive value which cannot be JSON-stringified. Includes values `-0`, `NaN`, `Infinity`, - * `-Infinity`, and bigint literals. - */ - type UnserializableValue = string; - - /** - * Mirror object referencing original JavaScript object. - */ - interface RemoteObject { - /** - * Object type. - */ - type: string; - /** - * Object subtype hint. Specified for `object` type values only. - */ - subtype?: string; - /** - * Object class (constructor) name. Specified for `object` type values only. - */ - className?: string; - /** - * Remote object value in case of primitive values or JSON values (if it was requested). - */ - value?: any; - /** - * Primitive value which can not be JSON-stringified does not have `value`, but gets this - * property. - */ - unserializableValue?: UnserializableValue; - /** - * String representation of the object. - */ - description?: string; - /** - * Unique object identifier (for non-primitive values). - */ - objectId?: RemoteObjectId; - /** - * Preview containing abbreviated property values. Specified for `object` type values only. - * @experimental - */ - preview?: ObjectPreview; - /** - * @experimental - */ - customPreview?: CustomPreview; - } - - /** - * @experimental - */ - interface CustomPreview { - header: string; - hasBody: boolean; - formatterObjectId: RemoteObjectId; - bindRemoteObjectFunctionId: RemoteObjectId; - configObjectId?: RemoteObjectId; - } - - /** - * Object containing abbreviated remote object value. - * @experimental - */ - interface ObjectPreview { - /** - * Object type. - */ - type: string; - /** - * Object subtype hint. Specified for `object` type values only. - */ - subtype?: string; - /** - * String representation of the object. - */ - description?: string; - /** - * True iff some of the properties or entries of the original object did not fit. - */ - overflow: boolean; - /** - * List of the properties. - */ - properties: PropertyPreview[]; - /** - * List of the entries. Specified for `map` and `set` subtype values only. - */ - entries?: EntryPreview[]; - } - - /** - * @experimental - */ - interface PropertyPreview { - /** - * Property name. - */ - name: string; - /** - * Object type. Accessor means that the property itself is an accessor property. - */ - type: string; - /** - * User-friendly property value string. - */ - value?: string; - /** - * Nested value preview. - */ - valuePreview?: ObjectPreview; - /** - * Object subtype hint. Specified for `object` type values only. - */ - subtype?: string; - } - - /** - * @experimental - */ - interface EntryPreview { - /** - * Preview of the key. Specified for map-like collection entries. - */ - key?: ObjectPreview; - /** - * Preview of the value. - */ - value: ObjectPreview; - } - - /** - * Object property descriptor. - */ - interface PropertyDescriptor { - /** - * Property name or symbol description. - */ - name: string; - /** - * The value associated with the property. - */ - value?: RemoteObject; - /** - * True if the value associated with the property may be changed (data descriptors only). - */ - writable?: boolean; - /** - * A function which serves as a getter for the property, or `undefined` if there is no getter - * (accessor descriptors only). - */ - get?: RemoteObject; - /** - * A function which serves as a setter for the property, or `undefined` if there is no setter - * (accessor descriptors only). - */ - set?: RemoteObject; - /** - * True if the type of this property descriptor may be changed and if the property may be - * deleted from the corresponding object. - */ - configurable: boolean; - /** - * True if this property shows up during enumeration of the properties on the corresponding - * object. - */ - enumerable: boolean; - /** - * True if the result was thrown during the evaluation. - */ - wasThrown?: boolean; - /** - * True if the property is owned for the object. - */ - isOwn?: boolean; - /** - * Property symbol object, if the property is of the `symbol` type. - */ - symbol?: RemoteObject; - } - - /** - * Object internal property descriptor. This property isn't normally visible in JavaScript code. - */ - interface InternalPropertyDescriptor { - /** - * Conventional property name. - */ - name: string; - /** - * The value associated with the property. - */ - value?: RemoteObject; - } - - /** - * Represents function call argument. Either remote object id `objectId`, primitive `value`, - * unserializable primitive value or neither of (for undefined) them should be specified. - */ - interface CallArgument { - /** - * Primitive value or serializable javascript object. - */ - value?: any; - /** - * Primitive value which can not be JSON-stringified. - */ - unserializableValue?: UnserializableValue; - /** - * Remote object handle. - */ - objectId?: RemoteObjectId; - } - - /** - * Id of an execution context. - */ - type ExecutionContextId = number; - - /** - * Description of an isolated world. - */ - interface ExecutionContextDescription { - /** - * Unique id of the execution context. It can be used to specify in which execution context - * script evaluation should be performed. - */ - id: ExecutionContextId; - /** - * Execution context origin. - */ - origin: string; - /** - * Human readable name describing given context. - */ - name: string; - /** - * Embedder-specific auxiliary data. - */ - auxData?: {}; - } - - /** - * Detailed information about exception (or error) that was thrown during script compilation or - * execution. - */ - interface ExceptionDetails { - /** - * Exception id. - */ - exceptionId: number; - /** - * Exception text, which should be used together with exception object when available. - */ - text: string; - /** - * Line number of the exception location (0-based). - */ - lineNumber: number; - /** - * Column number of the exception location (0-based). - */ - columnNumber: number; - /** - * Script ID of the exception location. - */ - scriptId?: ScriptId; - /** - * URL of the exception location, to be used when the script was not reported. - */ - url?: string; - /** - * JavaScript stack trace if available. - */ - stackTrace?: StackTrace; - /** - * Exception object if available. - */ - exception?: RemoteObject; - /** - * Identifier of the context where exception happened. - */ - executionContextId?: ExecutionContextId; - } - - /** - * Number of milliseconds since epoch. - */ - type Timestamp = number; - - /** - * Number of milliseconds. - */ - type TimeDelta = number; - - /** - * Stack entry for runtime errors and assertions. - */ - interface CallFrame { - /** - * JavaScript function name. - */ - functionName: string; - /** - * JavaScript script id. - */ - scriptId: ScriptId; - /** - * JavaScript script name or url. - */ - url: string; - /** - * JavaScript script line number (0-based). - */ - lineNumber: number; - /** - * JavaScript script column number (0-based). - */ - columnNumber: number; - } - - /** - * Call frames for assertions or error messages. - */ - interface StackTrace { - /** - * String label of this stack trace. For async traces this may be a name of the function that - * initiated the async call. - */ - description?: string; - /** - * JavaScript function name. - */ - callFrames: CallFrame[]; - /** - * Asynchronous JavaScript stack trace that preceded this stack, if available. - */ - parent?: StackTrace; - /** - * Asynchronous JavaScript stack trace that preceded this stack, if available. - * @experimental - */ - parentId?: StackTraceId; - } - - /** - * Unique identifier of current debugger. - * @experimental - */ - type UniqueDebuggerId = string; - - /** - * If `debuggerId` is set stack trace comes from another debugger and can be resolved there. This - * allows to track cross-debugger calls. See `Runtime.StackTrace` and `Debugger.paused` for usages. - * @experimental - */ - interface StackTraceId { - id: string; - debuggerId?: UniqueDebuggerId; - } - - interface AwaitPromiseParameterType { - /** - * Identifier of the promise. - */ - promiseObjectId: RemoteObjectId; - /** - * Whether the result is expected to be a JSON object that should be sent by value. - */ - returnByValue?: boolean; - /** - * Whether preview should be generated for the result. - */ - generatePreview?: boolean; - } - - interface CallFunctionOnParameterType { - /** - * Declaration of the function to call. - */ - functionDeclaration: string; - /** - * Identifier of the object to call function on. Either objectId or executionContextId should - * be specified. - */ - objectId?: RemoteObjectId; - /** - * Call arguments. All call arguments must belong to the same JavaScript world as the target - * object. - */ - arguments?: CallArgument[]; - /** - * In silent mode exceptions thrown during evaluation are not reported and do not pause - * execution. Overrides `setPauseOnException` state. - */ - silent?: boolean; - /** - * Whether the result is expected to be a JSON object which should be sent by value. - */ - returnByValue?: boolean; - /** - * Whether preview should be generated for the result. - * @experimental - */ - generatePreview?: boolean; - /** - * Whether execution should be treated as initiated by user in the UI. - */ - userGesture?: boolean; - /** - * Whether execution should `await` for resulting value and return once awaited promise is - * resolved. - */ - awaitPromise?: boolean; - /** - * Specifies execution context which global object will be used to call function on. Either - * executionContextId or objectId should be specified. - */ - executionContextId?: ExecutionContextId; - /** - * Symbolic group name that can be used to release multiple objects. If objectGroup is not - * specified and objectId is, objectGroup will be inherited from object. - */ - objectGroup?: string; - } - - interface CompileScriptParameterType { - /** - * Expression to compile. - */ - expression: string; - /** - * Source url to be set for the script. - */ - sourceURL: string; - /** - * Specifies whether the compiled script should be persisted. - */ - persistScript: boolean; - /** - * Specifies in which execution context to perform script run. If the parameter is omitted the - * evaluation will be performed in the context of the inspected page. - */ - executionContextId?: ExecutionContextId; - } - - interface EvaluateParameterType { - /** - * Expression to evaluate. - */ - expression: string; - /** - * Symbolic group name that can be used to release multiple objects. - */ - objectGroup?: string; - /** - * Determines whether Command Line API should be available during the evaluation. - */ - includeCommandLineAPI?: boolean; - /** - * In silent mode exceptions thrown during evaluation are not reported and do not pause - * execution. Overrides `setPauseOnException` state. - */ - silent?: boolean; - /** - * Specifies in which execution context to perform evaluation. If the parameter is omitted the - * evaluation will be performed in the context of the inspected page. - */ - contextId?: ExecutionContextId; - /** - * Whether the result is expected to be a JSON object that should be sent by value. - */ - returnByValue?: boolean; - /** - * Whether preview should be generated for the result. - * @experimental - */ - generatePreview?: boolean; - /** - * Whether execution should be treated as initiated by user in the UI. - */ - userGesture?: boolean; - /** - * Whether execution should `await` for resulting value and return once awaited promise is - * resolved. - */ - awaitPromise?: boolean; - /** - * Whether to throw an exception if side effect cannot be ruled out during evaluation. - * @experimental - */ - throwOnSideEffect?: boolean; - /** - * Terminate execution after timing out (number of milliseconds). - * @experimental - */ - timeout?: TimeDelta; - } - - interface GetPropertiesParameterType { - /** - * Identifier of the object to return properties for. - */ - objectId: RemoteObjectId; - /** - * If true, returns properties belonging only to the element itself, not to its prototype - * chain. - */ - ownProperties?: boolean; - /** - * If true, returns accessor properties (with getter/setter) only; internal properties are not - * returned either. - * @experimental - */ - accessorPropertiesOnly?: boolean; - /** - * Whether preview should be generated for the results. - * @experimental - */ - generatePreview?: boolean; - } - - interface GlobalLexicalScopeNamesParameterType { - /** - * Specifies in which execution context to lookup global scope variables. - */ - executionContextId?: ExecutionContextId; - } - - interface QueryObjectsParameterType { - /** - * Identifier of the prototype to return objects for. - */ - prototypeObjectId: RemoteObjectId; - /** - * Symbolic group name that can be used to release the results. - */ - objectGroup?: string; - } - - interface ReleaseObjectParameterType { - /** - * Identifier of the object to release. - */ - objectId: RemoteObjectId; - } - - interface ReleaseObjectGroupParameterType { - /** - * Symbolic object group name. - */ - objectGroup: string; - } - - interface RunScriptParameterType { - /** - * Id of the script to run. - */ - scriptId: ScriptId; - /** - * Specifies in which execution context to perform script run. If the parameter is omitted the - * evaluation will be performed in the context of the inspected page. - */ - executionContextId?: ExecutionContextId; - /** - * Symbolic group name that can be used to release multiple objects. - */ - objectGroup?: string; - /** - * In silent mode exceptions thrown during evaluation are not reported and do not pause - * execution. Overrides `setPauseOnException` state. - */ - silent?: boolean; - /** - * Determines whether Command Line API should be available during the evaluation. - */ - includeCommandLineAPI?: boolean; - /** - * Whether the result is expected to be a JSON object which should be sent by value. - */ - returnByValue?: boolean; - /** - * Whether preview should be generated for the result. - */ - generatePreview?: boolean; - /** - * Whether execution should `await` for resulting value and return once awaited promise is - * resolved. - */ - awaitPromise?: boolean; - } - - interface SetCustomObjectFormatterEnabledParameterType { - enabled: boolean; - } - - interface AwaitPromiseReturnType { - /** - * Promise result. Will contain rejected value if promise was rejected. - */ - result: RemoteObject; - /** - * Exception details if stack strace is available. - */ - exceptionDetails?: ExceptionDetails; - } - - interface CallFunctionOnReturnType { - /** - * Call result. - */ - result: RemoteObject; - /** - * Exception details. - */ - exceptionDetails?: ExceptionDetails; - } - - interface CompileScriptReturnType { - /** - * Id of the script. - */ - scriptId?: ScriptId; - /** - * Exception details. - */ - exceptionDetails?: ExceptionDetails; - } - - interface EvaluateReturnType { - /** - * Evaluation result. - */ - result: RemoteObject; - /** - * Exception details. - */ - exceptionDetails?: ExceptionDetails; - } - - interface GetIsolateIdReturnType { - /** - * The isolate id. - */ - id: string; - } - - interface GetHeapUsageReturnType { - /** - * Used heap size in bytes. - */ - usedSize: number; - /** - * Allocated heap size in bytes. - */ - totalSize: number; - } - - interface GetPropertiesReturnType { - /** - * Object properties. - */ - result: PropertyDescriptor[]; - /** - * Internal object properties (only of the element itself). - */ - internalProperties?: InternalPropertyDescriptor[]; - /** - * Exception details. - */ - exceptionDetails?: ExceptionDetails; - } - - interface GlobalLexicalScopeNamesReturnType { - names: string[]; - } - - interface QueryObjectsReturnType { - /** - * Array with objects. - */ - objects: RemoteObject; - } - - interface RunScriptReturnType { - /** - * Run result. - */ - result: RemoteObject; - /** - * Exception details. - */ - exceptionDetails?: ExceptionDetails; - } - - interface ConsoleAPICalledEventDataType { - /** - * Type of the call. - */ - type: string; - /** - * Call arguments. - */ - args: RemoteObject[]; - /** - * Identifier of the context where the call was made. - */ - executionContextId: ExecutionContextId; - /** - * Call timestamp. - */ - timestamp: Timestamp; - /** - * Stack trace captured when the call was made. - */ - stackTrace?: StackTrace; - /** - * Console context descriptor for calls on non-default console context (not console.*): - * 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call - * on named context. - * @experimental - */ - context?: string; - } - - interface ExceptionRevokedEventDataType { - /** - * Reason describing why exception was revoked. - */ - reason: string; - /** - * The id of revoked exception, as reported in `exceptionThrown`. - */ - exceptionId: number; - } - - interface ExceptionThrownEventDataType { - /** - * Timestamp of the exception. - */ - timestamp: Timestamp; - exceptionDetails: ExceptionDetails; - } - - interface ExecutionContextCreatedEventDataType { - /** - * A newly created execution context. - */ - context: ExecutionContextDescription; - } - - interface ExecutionContextDestroyedEventDataType { - /** - * Id of the destroyed context - */ - executionContextId: ExecutionContextId; - } - - interface InspectRequestedEventDataType { - object: RemoteObject; - hints: {}; - } - } - - namespace Schema { - /** - * Description of the protocol domain. - */ - interface Domain { - /** - * Domain name. - */ - name: string; - /** - * Domain version. - */ - version: string; - } - - interface GetDomainsReturnType { - /** - * List of supported domains. - */ - domains: Domain[]; - } - } - - namespace NodeTracing { - interface TraceConfig { - /** - * Controls how the trace buffer stores data. - */ - recordMode?: string; - /** - * Included category filters. - */ - includedCategories: string[]; - } - - interface StartParameterType { - traceConfig: TraceConfig; - } - - interface GetCategoriesReturnType { - /** - * A list of supported tracing categories. - */ - categories: string[]; - } - - interface DataCollectedEventDataType { - value: Array<{}>; - } - } - - namespace NodeWorker { - type WorkerID = string; - - /** - * Unique identifier of attached debugging session. - */ - type SessionID = string; - - interface WorkerInfo { - workerId: WorkerID; - type: string; - title: string; - url: string; - } - - interface SendMessageToWorkerParameterType { - message: string; - /** - * Identifier of the session. - */ - sessionId: SessionID; - } - - interface EnableParameterType { - /** - * Whether to new workers should be paused until the frontend sends `Runtime.runIfWaitingForDebugger` - * message to run them. - */ - waitForDebuggerOnStart: boolean; - } - - interface AttachedToWorkerEventDataType { - /** - * Identifier assigned to the session used to send/receive messages. - */ - sessionId: SessionID; - workerInfo: WorkerInfo; - waitingForDebugger: boolean; - } - - interface DetachedFromWorkerEventDataType { - /** - * Detached session identifier. - */ - sessionId: SessionID; - } - - interface ReceivedMessageFromWorkerEventDataType { - /** - * Identifier of a session which sends a message. - */ - sessionId: SessionID; - message: string; - } - } - - /** - * The inspector.Session is used for dispatching messages to the V8 inspector back-end and receiving message responses and notifications. - */ - class Session extends EventEmitter { - /** - * Create a new instance of the inspector.Session class. - * The inspector session needs to be connected through session.connect() before the messages can be dispatched to the inspector backend. - */ - constructor(); - - /** - * Connects a session to the inspector back-end. - * An exception will be thrown if there is already a connected session established either - * through the API or by a front-end connected to the Inspector WebSocket port. - */ - connect(): void; - - /** - * Immediately close the session. All pending message callbacks will be called with an error. - * session.connect() will need to be called to be able to send messages again. - * Reconnected session will lose all inspector state, such as enabled agents or configured breakpoints. - */ - disconnect(): void; - - /** - * Posts a message to the inspector back-end. callback will be notified when a response is received. - * callback is a function that accepts two optional arguments - error and message-specific result. - */ - post(method: string, params?: {}, callback?: (err: Error | null, params?: {}) => void): void; - post(method: string, callback?: (err: Error | null, params?: {}) => void): void; - - /** - * Does nothing. - */ - post(method: "Console.clearMessages", callback?: (err: Error | null) => void): void; - - /** - * Disables console domain, prevents further console messages from being reported to the client. - */ - post(method: "Console.disable", callback?: (err: Error | null) => void): void; - - /** - * Enables console domain, sends the messages collected so far to the client by means of the - * `messageAdded` notification. - */ - post(method: "Console.enable", callback?: (err: Error | null) => void): void; - - /** - * Continues execution until specific location is reached. - */ - post(method: "Debugger.continueToLocation", params?: Debugger.ContinueToLocationParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.continueToLocation", callback?: (err: Error | null) => void): void; - - /** - * Disables debugger for given page. - */ - post(method: "Debugger.disable", callback?: (err: Error | null) => void): void; - - /** - * Enables debugger for the given page. Clients should not assume that the debugging has been - * enabled until the result for this command is received. - */ - post(method: "Debugger.enable", callback?: (err: Error | null, params: Debugger.EnableReturnType) => void): void; - - /** - * Evaluates expression on a given call frame. - */ - post(method: "Debugger.evaluateOnCallFrame", params?: Debugger.EvaluateOnCallFrameParameterType, callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; - post(method: "Debugger.evaluateOnCallFrame", callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; - - /** - * Returns possible locations for breakpoint. scriptId in start and end range locations should be - * the same. - */ - post( - method: "Debugger.getPossibleBreakpoints", - params?: Debugger.GetPossibleBreakpointsParameterType, - callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void - ): void; - post(method: "Debugger.getPossibleBreakpoints", callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void): void; - - /** - * Returns source for the script with given id. - */ - post(method: "Debugger.getScriptSource", params?: Debugger.GetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; - post(method: "Debugger.getScriptSource", callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; - - /** - * Returns stack trace with given `stackTraceId`. - * @experimental - */ - post(method: "Debugger.getStackTrace", params?: Debugger.GetStackTraceParameterType, callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; - post(method: "Debugger.getStackTrace", callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; - - /** - * Stops on the next JavaScript statement. - */ - post(method: "Debugger.pause", callback?: (err: Error | null) => void): void; - - /** - * @experimental - */ - post(method: "Debugger.pauseOnAsyncCall", params?: Debugger.PauseOnAsyncCallParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.pauseOnAsyncCall", callback?: (err: Error | null) => void): void; - - /** - * Removes JavaScript breakpoint. - */ - post(method: "Debugger.removeBreakpoint", params?: Debugger.RemoveBreakpointParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.removeBreakpoint", callback?: (err: Error | null) => void): void; - - /** - * Restarts particular call frame from the beginning. - */ - post(method: "Debugger.restartFrame", params?: Debugger.RestartFrameParameterType, callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; - post(method: "Debugger.restartFrame", callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; - - /** - * Resumes JavaScript execution. - */ - post(method: "Debugger.resume", callback?: (err: Error | null) => void): void; - - /** - * This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and - * Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled - * before next pause. Returns success when async task is actually scheduled, returns error if no - * task were scheduled or another scheduleStepIntoAsync was called. - * @experimental - */ - post(method: "Debugger.scheduleStepIntoAsync", callback?: (err: Error | null) => void): void; - - /** - * Searches for given string in script content. - */ - post(method: "Debugger.searchInContent", params?: Debugger.SearchInContentParameterType, callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; - post(method: "Debugger.searchInContent", callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; - - /** - * Enables or disables async call stacks tracking. - */ - post(method: "Debugger.setAsyncCallStackDepth", params?: Debugger.SetAsyncCallStackDepthParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.setAsyncCallStackDepth", callback?: (err: Error | null) => void): void; - - /** - * Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in - * scripts with url matching one of the patterns. VM will try to leave blackboxed script by - * performing 'step in' several times, finally resorting to 'step out' if unsuccessful. - * @experimental - */ - post(method: "Debugger.setBlackboxPatterns", params?: Debugger.SetBlackboxPatternsParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.setBlackboxPatterns", callback?: (err: Error | null) => void): void; - - /** - * Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted - * scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. - * Positions array contains positions where blackbox state is changed. First interval isn't - * blackboxed. Array should be sorted. - * @experimental - */ - post(method: "Debugger.setBlackboxedRanges", params?: Debugger.SetBlackboxedRangesParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.setBlackboxedRanges", callback?: (err: Error | null) => void): void; - - /** - * Sets JavaScript breakpoint at a given location. - */ - post(method: "Debugger.setBreakpoint", params?: Debugger.SetBreakpointParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; - post(method: "Debugger.setBreakpoint", callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; - - /** - * Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this - * command is issued, all existing parsed scripts will have breakpoints resolved and returned in - * `locations` property. Further matching script parsing will result in subsequent - * `breakpointResolved` events issued. This logical breakpoint will survive page reloads. - */ - post(method: "Debugger.setBreakpointByUrl", params?: Debugger.SetBreakpointByUrlParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; - post(method: "Debugger.setBreakpointByUrl", callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; - - /** - * Sets JavaScript breakpoint before each call to the given function. - * If another function was created from the same source as a given one, - * calling it will also trigger the breakpoint. - * @experimental - */ - post( - method: "Debugger.setBreakpointOnFunctionCall", - params?: Debugger.SetBreakpointOnFunctionCallParameterType, - callback?: (err: Error | null, params: Debugger.SetBreakpointOnFunctionCallReturnType) => void - ): void; - post(method: "Debugger.setBreakpointOnFunctionCall", callback?: (err: Error | null, params: Debugger.SetBreakpointOnFunctionCallReturnType) => void): void; - - /** - * Activates / deactivates all breakpoints on the page. - */ - post(method: "Debugger.setBreakpointsActive", params?: Debugger.SetBreakpointsActiveParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.setBreakpointsActive", callback?: (err: Error | null) => void): void; - - /** - * Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or - * no exceptions. Initial pause on exceptions state is `none`. - */ - post(method: "Debugger.setPauseOnExceptions", params?: Debugger.SetPauseOnExceptionsParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.setPauseOnExceptions", callback?: (err: Error | null) => void): void; - - /** - * Changes return value in top frame. Available only at return break position. - * @experimental - */ - post(method: "Debugger.setReturnValue", params?: Debugger.SetReturnValueParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.setReturnValue", callback?: (err: Error | null) => void): void; - - /** - * Edits JavaScript source live. - */ - post(method: "Debugger.setScriptSource", params?: Debugger.SetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; - post(method: "Debugger.setScriptSource", callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; - - /** - * Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc). - */ - post(method: "Debugger.setSkipAllPauses", params?: Debugger.SetSkipAllPausesParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.setSkipAllPauses", callback?: (err: Error | null) => void): void; - - /** - * Changes value of variable in a callframe. Object-based scopes are not supported and must be - * mutated manually. - */ - post(method: "Debugger.setVariableValue", params?: Debugger.SetVariableValueParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.setVariableValue", callback?: (err: Error | null) => void): void; - - /** - * Steps into the function call. - */ - post(method: "Debugger.stepInto", params?: Debugger.StepIntoParameterType, callback?: (err: Error | null) => void): void; - post(method: "Debugger.stepInto", callback?: (err: Error | null) => void): void; - - /** - * Steps out of the function call. - */ - post(method: "Debugger.stepOut", callback?: (err: Error | null) => void): void; - - /** - * Steps over the statement. - */ - post(method: "Debugger.stepOver", callback?: (err: Error | null) => void): void; - - /** - * Enables console to refer to the node with given id via $x (see Command Line API for more details - * $x functions). - */ - post(method: "HeapProfiler.addInspectedHeapObject", params?: HeapProfiler.AddInspectedHeapObjectParameterType, callback?: (err: Error | null) => void): void; - post(method: "HeapProfiler.addInspectedHeapObject", callback?: (err: Error | null) => void): void; - - post(method: "HeapProfiler.collectGarbage", callback?: (err: Error | null) => void): void; - - post(method: "HeapProfiler.disable", callback?: (err: Error | null) => void): void; - - post(method: "HeapProfiler.enable", callback?: (err: Error | null) => void): void; - - post(method: "HeapProfiler.getHeapObjectId", params?: HeapProfiler.GetHeapObjectIdParameterType, callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; - post(method: "HeapProfiler.getHeapObjectId", callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; - - post( - method: "HeapProfiler.getObjectByHeapObjectId", - params?: HeapProfiler.GetObjectByHeapObjectIdParameterType, - callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void - ): void; - post(method: "HeapProfiler.getObjectByHeapObjectId", callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void): void; - - post(method: "HeapProfiler.getSamplingProfile", callback?: (err: Error | null, params: HeapProfiler.GetSamplingProfileReturnType) => void): void; - - post(method: "HeapProfiler.startSampling", params?: HeapProfiler.StartSamplingParameterType, callback?: (err: Error | null) => void): void; - post(method: "HeapProfiler.startSampling", callback?: (err: Error | null) => void): void; - - post(method: "HeapProfiler.startTrackingHeapObjects", params?: HeapProfiler.StartTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; - post(method: "HeapProfiler.startTrackingHeapObjects", callback?: (err: Error | null) => void): void; - - post(method: "HeapProfiler.stopSampling", callback?: (err: Error | null, params: HeapProfiler.StopSamplingReturnType) => void): void; - - post(method: "HeapProfiler.stopTrackingHeapObjects", params?: HeapProfiler.StopTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; - post(method: "HeapProfiler.stopTrackingHeapObjects", callback?: (err: Error | null) => void): void; - - post(method: "HeapProfiler.takeHeapSnapshot", params?: HeapProfiler.TakeHeapSnapshotParameterType, callback?: (err: Error | null) => void): void; - post(method: "HeapProfiler.takeHeapSnapshot", callback?: (err: Error | null) => void): void; - - post(method: "Profiler.disable", callback?: (err: Error | null) => void): void; - - post(method: "Profiler.enable", callback?: (err: Error | null) => void): void; - - /** - * Collect coverage data for the current isolate. The coverage data may be incomplete due to - * garbage collection. - */ - post(method: "Profiler.getBestEffortCoverage", callback?: (err: Error | null, params: Profiler.GetBestEffortCoverageReturnType) => void): void; - - /** - * Changes CPU profiler sampling interval. Must be called before CPU profiles recording started. - */ - post(method: "Profiler.setSamplingInterval", params?: Profiler.SetSamplingIntervalParameterType, callback?: (err: Error | null) => void): void; - post(method: "Profiler.setSamplingInterval", callback?: (err: Error | null) => void): void; - - post(method: "Profiler.start", callback?: (err: Error | null) => void): void; - - /** - * Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code - * coverage may be incomplete. Enabling prevents running optimized code and resets execution - * counters. - */ - post(method: "Profiler.startPreciseCoverage", params?: Profiler.StartPreciseCoverageParameterType, callback?: (err: Error | null) => void): void; - post(method: "Profiler.startPreciseCoverage", callback?: (err: Error | null) => void): void; - - /** - * Enable type profile. - * @experimental - */ - post(method: "Profiler.startTypeProfile", callback?: (err: Error | null) => void): void; - - post(method: "Profiler.stop", callback?: (err: Error | null, params: Profiler.StopReturnType) => void): void; - - /** - * Disable precise code coverage. Disabling releases unnecessary execution count records and allows - * executing optimized code. - */ - post(method: "Profiler.stopPreciseCoverage", callback?: (err: Error | null) => void): void; - - /** - * Disable type profile. Disabling releases type profile data collected so far. - * @experimental - */ - post(method: "Profiler.stopTypeProfile", callback?: (err: Error | null) => void): void; - - /** - * Collect coverage data for the current isolate, and resets execution counters. Precise code - * coverage needs to have started. - */ - post(method: "Profiler.takePreciseCoverage", callback?: (err: Error | null, params: Profiler.TakePreciseCoverageReturnType) => void): void; - - /** - * Collect type profile. - * @experimental - */ - post(method: "Profiler.takeTypeProfile", callback?: (err: Error | null, params: Profiler.TakeTypeProfileReturnType) => void): void; - - /** - * Add handler to promise with given promise object id. - */ - post(method: "Runtime.awaitPromise", params?: Runtime.AwaitPromiseParameterType, callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; - post(method: "Runtime.awaitPromise", callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; - - /** - * Calls function with given declaration on the given object. Object group of the result is - * inherited from the target object. - */ - post(method: "Runtime.callFunctionOn", params?: Runtime.CallFunctionOnParameterType, callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; - post(method: "Runtime.callFunctionOn", callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; - - /** - * Compiles expression. - */ - post(method: "Runtime.compileScript", params?: Runtime.CompileScriptParameterType, callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; - post(method: "Runtime.compileScript", callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; - - /** - * Disables reporting of execution contexts creation. - */ - post(method: "Runtime.disable", callback?: (err: Error | null) => void): void; - - /** - * Discards collected exceptions and console API calls. - */ - post(method: "Runtime.discardConsoleEntries", callback?: (err: Error | null) => void): void; - - /** - * Enables reporting of execution contexts creation by means of `executionContextCreated` event. - * When the reporting gets enabled the event will be sent immediately for each existing execution - * context. - */ - post(method: "Runtime.enable", callback?: (err: Error | null) => void): void; - - /** - * Evaluates expression on global object. - */ - post(method: "Runtime.evaluate", params?: Runtime.EvaluateParameterType, callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; - post(method: "Runtime.evaluate", callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; - - /** - * Returns the isolate id. - * @experimental - */ - post(method: "Runtime.getIsolateId", callback?: (err: Error | null, params: Runtime.GetIsolateIdReturnType) => void): void; - - /** - * Returns the JavaScript heap usage. - * It is the total usage of the corresponding isolate not scoped to a particular Runtime. - * @experimental - */ - post(method: "Runtime.getHeapUsage", callback?: (err: Error | null, params: Runtime.GetHeapUsageReturnType) => void): void; - - /** - * Returns properties of a given object. Object group of the result is inherited from the target - * object. - */ - post(method: "Runtime.getProperties", params?: Runtime.GetPropertiesParameterType, callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; - post(method: "Runtime.getProperties", callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; - - /** - * Returns all let, const and class variables from global scope. - */ - post( - method: "Runtime.globalLexicalScopeNames", - params?: Runtime.GlobalLexicalScopeNamesParameterType, - callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void - ): void; - post(method: "Runtime.globalLexicalScopeNames", callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void): void; - - post(method: "Runtime.queryObjects", params?: Runtime.QueryObjectsParameterType, callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; - post(method: "Runtime.queryObjects", callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; - - /** - * Releases remote object with given id. - */ - post(method: "Runtime.releaseObject", params?: Runtime.ReleaseObjectParameterType, callback?: (err: Error | null) => void): void; - post(method: "Runtime.releaseObject", callback?: (err: Error | null) => void): void; - - /** - * Releases all remote objects that belong to a given group. - */ - post(method: "Runtime.releaseObjectGroup", params?: Runtime.ReleaseObjectGroupParameterType, callback?: (err: Error | null) => void): void; - post(method: "Runtime.releaseObjectGroup", callback?: (err: Error | null) => void): void; - - /** - * Tells inspected instance to run if it was waiting for debugger to attach. - */ - post(method: "Runtime.runIfWaitingForDebugger", callback?: (err: Error | null) => void): void; - - /** - * Runs script with given id in a given context. - */ - post(method: "Runtime.runScript", params?: Runtime.RunScriptParameterType, callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; - post(method: "Runtime.runScript", callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; - - /** - * @experimental - */ - post(method: "Runtime.setCustomObjectFormatterEnabled", params?: Runtime.SetCustomObjectFormatterEnabledParameterType, callback?: (err: Error | null) => void): void; - post(method: "Runtime.setCustomObjectFormatterEnabled", callback?: (err: Error | null) => void): void; - - /** - * Terminate current or next JavaScript execution. - * Will cancel the termination when the outer-most script execution ends. - * @experimental - */ - post(method: "Runtime.terminateExecution", callback?: (err: Error | null) => void): void; - - /** - * Returns supported domains. - */ - post(method: "Schema.getDomains", callback?: (err: Error | null, params: Schema.GetDomainsReturnType) => void): void; - - /** - * Gets supported tracing categories. - */ - post(method: "NodeTracing.getCategories", callback?: (err: Error | null, params: NodeTracing.GetCategoriesReturnType) => void): void; - - /** - * Start trace events collection. - */ - post(method: "NodeTracing.start", params?: NodeTracing.StartParameterType, callback?: (err: Error | null) => void): void; - post(method: "NodeTracing.start", callback?: (err: Error | null) => void): void; - - /** - * Stop trace events collection. Remaining collected events will be sent as a sequence of - * dataCollected events followed by tracingComplete event. - */ - post(method: "NodeTracing.stop", callback?: (err: Error | null) => void): void; - - /** - * Sends protocol message over session with given id. - */ - post(method: "NodeWorker.sendMessageToWorker", params?: NodeWorker.SendMessageToWorkerParameterType, callback?: (err: Error | null) => void): void; - post(method: "NodeWorker.sendMessageToWorker", callback?: (err: Error | null) => void): void; - - /** - * Instructs the inspector to attach to running workers. Will also attach to new workers - * as they start - */ - post(method: "NodeWorker.enable", params?: NodeWorker.EnableParameterType, callback?: (err: Error | null) => void): void; - post(method: "NodeWorker.enable", callback?: (err: Error | null) => void): void; - - /** - * Detaches from all running workers and disables attaching to new workers as they are started. - */ - post(method: "NodeWorker.disable", callback?: (err: Error | null) => void): void; - - // Events - - addListener(event: string, listener: (...args: any[]) => void): this; - - /** - * Emitted when any notification from the V8 Inspector is received. - */ - addListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; - - /** - * Issued when new console message is added. - */ - addListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when breakpoint is resolved to an actual script and location. - */ - addListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. - */ - addListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine resumed execution. - */ - addListener(event: "Debugger.resumed", listener: () => void): this; - - /** - * Fired when virtual machine fails to parse the script. - */ - addListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when virtual machine parses script. This event is also fired for all known and uncollected - * scripts upon enabling debugger. - */ - addListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; - - addListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend may send update for one or more fragments - */ - addListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend regularly sends a current value for last - * seen object id and corresponding timestamp. If the were changes in the heap since last event - * then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. - */ - addListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; - - addListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; - addListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; - addListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; - - /** - * Sent when new profile recording is started using console.profile() call. - */ - addListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when console API was called. - */ - addListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when unhandled exception was revoked. - */ - addListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when exception was thrown and unhandled. - */ - addListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when new execution context is created. - */ - addListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when execution context is destroyed. - */ - addListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when all executionContexts were cleared in browser - */ - addListener(event: "Runtime.executionContextsCleared", listener: () => void): this; - - /** - * Issued when object should be inspected (for example, as a result of inspect() command line API - * call). - */ - addListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; - - /** - * Contains an bucket of collected trace events. - */ - addListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; - - /** - * Signals that tracing is stopped and there is no trace buffers pending flush, all data were - * delivered via dataCollected events. - */ - addListener(event: "NodeTracing.tracingComplete", listener: () => void): this; - - /** - * Issued when attached to a worker. - */ - addListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when detached from the worker. - */ - addListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Notifies about a new protocol message received from the session - * (session ID is provided in attachedToWorker notification). - */ - addListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "inspectorNotification", message: InspectorNotification<{}>): boolean; - emit(event: "Console.messageAdded", message: InspectorNotification): boolean; - emit(event: "Debugger.breakpointResolved", message: InspectorNotification): boolean; - emit(event: "Debugger.paused", message: InspectorNotification): boolean; - emit(event: "Debugger.resumed"): boolean; - emit(event: "Debugger.scriptFailedToParse", message: InspectorNotification): boolean; - emit(event: "Debugger.scriptParsed", message: InspectorNotification): boolean; - emit(event: "HeapProfiler.addHeapSnapshotChunk", message: InspectorNotification): boolean; - emit(event: "HeapProfiler.heapStatsUpdate", message: InspectorNotification): boolean; - emit(event: "HeapProfiler.lastSeenObjectId", message: InspectorNotification): boolean; - emit(event: "HeapProfiler.reportHeapSnapshotProgress", message: InspectorNotification): boolean; - emit(event: "HeapProfiler.resetProfiles"): boolean; - emit(event: "Profiler.consoleProfileFinished", message: InspectorNotification): boolean; - emit(event: "Profiler.consoleProfileStarted", message: InspectorNotification): boolean; - emit(event: "Runtime.consoleAPICalled", message: InspectorNotification): boolean; - emit(event: "Runtime.exceptionRevoked", message: InspectorNotification): boolean; - emit(event: "Runtime.exceptionThrown", message: InspectorNotification): boolean; - emit(event: "Runtime.executionContextCreated", message: InspectorNotification): boolean; - emit(event: "Runtime.executionContextDestroyed", message: InspectorNotification): boolean; - emit(event: "Runtime.executionContextsCleared"): boolean; - emit(event: "Runtime.inspectRequested", message: InspectorNotification): boolean; - emit(event: "NodeTracing.dataCollected", message: InspectorNotification): boolean; - emit(event: "NodeTracing.tracingComplete"): boolean; - emit(event: "NodeWorker.attachedToWorker", message: InspectorNotification): boolean; - emit(event: "NodeWorker.detachedFromWorker", message: InspectorNotification): boolean; - emit(event: "NodeWorker.receivedMessageFromWorker", message: InspectorNotification): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - - /** - * Emitted when any notification from the V8 Inspector is received. - */ - on(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; - - /** - * Issued when new console message is added. - */ - on(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when breakpoint is resolved to an actual script and location. - */ - on(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. - */ - on(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine resumed execution. - */ - on(event: "Debugger.resumed", listener: () => void): this; - - /** - * Fired when virtual machine fails to parse the script. - */ - on(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when virtual machine parses script. This event is also fired for all known and uncollected - * scripts upon enabling debugger. - */ - on(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; - - on(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend may send update for one or more fragments - */ - on(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend regularly sends a current value for last - * seen object id and corresponding timestamp. If the were changes in the heap since last event - * then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. - */ - on(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; - - on(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; - on(event: "HeapProfiler.resetProfiles", listener: () => void): this; - on(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; - - /** - * Sent when new profile recording is started using console.profile() call. - */ - on(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when console API was called. - */ - on(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when unhandled exception was revoked. - */ - on(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when exception was thrown and unhandled. - */ - on(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when new execution context is created. - */ - on(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when execution context is destroyed. - */ - on(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when all executionContexts were cleared in browser - */ - on(event: "Runtime.executionContextsCleared", listener: () => void): this; - - /** - * Issued when object should be inspected (for example, as a result of inspect() command line API - * call). - */ - on(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; - - /** - * Contains an bucket of collected trace events. - */ - on(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; - - /** - * Signals that tracing is stopped and there is no trace buffers pending flush, all data were - * delivered via dataCollected events. - */ - on(event: "NodeTracing.tracingComplete", listener: () => void): this; - - /** - * Issued when attached to a worker. - */ - on(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when detached from the worker. - */ - on(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Notifies about a new protocol message received from the session - * (session ID is provided in attachedToWorker notification). - */ - on(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - - /** - * Emitted when any notification from the V8 Inspector is received. - */ - once(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; - - /** - * Issued when new console message is added. - */ - once(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when breakpoint is resolved to an actual script and location. - */ - once(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. - */ - once(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine resumed execution. - */ - once(event: "Debugger.resumed", listener: () => void): this; - - /** - * Fired when virtual machine fails to parse the script. - */ - once(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when virtual machine parses script. This event is also fired for all known and uncollected - * scripts upon enabling debugger. - */ - once(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; - - once(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend may send update for one or more fragments - */ - once(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend regularly sends a current value for last - * seen object id and corresponding timestamp. If the were changes in the heap since last event - * then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. - */ - once(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; - - once(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; - once(event: "HeapProfiler.resetProfiles", listener: () => void): this; - once(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; - - /** - * Sent when new profile recording is started using console.profile() call. - */ - once(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when console API was called. - */ - once(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when unhandled exception was revoked. - */ - once(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when exception was thrown and unhandled. - */ - once(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when new execution context is created. - */ - once(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when execution context is destroyed. - */ - once(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when all executionContexts were cleared in browser - */ - once(event: "Runtime.executionContextsCleared", listener: () => void): this; - - /** - * Issued when object should be inspected (for example, as a result of inspect() command line API - * call). - */ - once(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; - - /** - * Contains an bucket of collected trace events. - */ - once(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; - - /** - * Signals that tracing is stopped and there is no trace buffers pending flush, all data were - * delivered via dataCollected events. - */ - once(event: "NodeTracing.tracingComplete", listener: () => void): this; - - /** - * Issued when attached to a worker. - */ - once(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when detached from the worker. - */ - once(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Notifies about a new protocol message received from the session - * (session ID is provided in attachedToWorker notification). - */ - once(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - - /** - * Emitted when any notification from the V8 Inspector is received. - */ - prependListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; - - /** - * Issued when new console message is added. - */ - prependListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when breakpoint is resolved to an actual script and location. - */ - prependListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. - */ - prependListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine resumed execution. - */ - prependListener(event: "Debugger.resumed", listener: () => void): this; - - /** - * Fired when virtual machine fails to parse the script. - */ - prependListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when virtual machine parses script. This event is also fired for all known and uncollected - * scripts upon enabling debugger. - */ - prependListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; - - prependListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend may send update for one or more fragments - */ - prependListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend regularly sends a current value for last - * seen object id and corresponding timestamp. If the were changes in the heap since last event - * then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. - */ - prependListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; - - prependListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; - prependListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; - prependListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; - - /** - * Sent when new profile recording is started using console.profile() call. - */ - prependListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when console API was called. - */ - prependListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when unhandled exception was revoked. - */ - prependListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when exception was thrown and unhandled. - */ - prependListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when new execution context is created. - */ - prependListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when execution context is destroyed. - */ - prependListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when all executionContexts were cleared in browser - */ - prependListener(event: "Runtime.executionContextsCleared", listener: () => void): this; - - /** - * Issued when object should be inspected (for example, as a result of inspect() command line API - * call). - */ - prependListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; - - /** - * Contains an bucket of collected trace events. - */ - prependListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; - - /** - * Signals that tracing is stopped and there is no trace buffers pending flush, all data were - * delivered via dataCollected events. - */ - prependListener(event: "NodeTracing.tracingComplete", listener: () => void): this; - - /** - * Issued when attached to a worker. - */ - prependListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when detached from the worker. - */ - prependListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Notifies about a new protocol message received from the session - * (session ID is provided in attachedToWorker notification). - */ - prependListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - - /** - * Emitted when any notification from the V8 Inspector is received. - */ - prependOnceListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; - - /** - * Issued when new console message is added. - */ - prependOnceListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when breakpoint is resolved to an actual script and location. - */ - prependOnceListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. - */ - prependOnceListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when the virtual machine resumed execution. - */ - prependOnceListener(event: "Debugger.resumed", listener: () => void): this; - - /** - * Fired when virtual machine fails to parse the script. - */ - prependOnceListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; - - /** - * Fired when virtual machine parses script. This event is also fired for all known and uncollected - * scripts upon enabling debugger. - */ - prependOnceListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; - - prependOnceListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend may send update for one or more fragments - */ - prependOnceListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; - - /** - * If heap objects tracking has been started then backend regularly sends a current value for last - * seen object id and corresponding timestamp. If the were changes in the heap since last event - * then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. - */ - prependOnceListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; - - prependOnceListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; - prependOnceListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; - prependOnceListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; - - /** - * Sent when new profile recording is started using console.profile() call. - */ - prependOnceListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when console API was called. - */ - prependOnceListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when unhandled exception was revoked. - */ - prependOnceListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when exception was thrown and unhandled. - */ - prependOnceListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when new execution context is created. - */ - prependOnceListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when execution context is destroyed. - */ - prependOnceListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when all executionContexts were cleared in browser - */ - prependOnceListener(event: "Runtime.executionContextsCleared", listener: () => void): this; - - /** - * Issued when object should be inspected (for example, as a result of inspect() command line API - * call). - */ - prependOnceListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; - - /** - * Contains an bucket of collected trace events. - */ - prependOnceListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; - - /** - * Signals that tracing is stopped and there is no trace buffers pending flush, all data were - * delivered via dataCollected events. - */ - prependOnceListener(event: "NodeTracing.tracingComplete", listener: () => void): this; - - /** - * Issued when attached to a worker. - */ - prependOnceListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Issued when detached from the worker. - */ - prependOnceListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; - - /** - * Notifies about a new protocol message received from the session - * (session ID is provided in attachedToWorker notification). - */ - prependOnceListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; - } - - // Top Level API - - /** - * Activate inspector on host and port. Equivalent to node --inspect=[[host:]port], but can be done programatically after node has started. - * If wait is true, will block until a client has connected to the inspect port and flow control has been passed to the debugger client. - * @param port Port to listen on for inspector connections. Optional, defaults to what was specified on the CLI. - * @param host Host to listen on for inspector connections. Optional, defaults to what was specified on the CLI. - * @param wait Block until a client has connected. Optional, defaults to false. - */ - function open(port?: number, host?: string, wait?: boolean): void; - - /** - * Deactivate the inspector. Blocks until there are no active connections. - */ - function close(): void; - - /** - * Return the URL of the active inspector, or `undefined` if there is none. - */ - function url(): string | undefined; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/module.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/module.d.ts deleted file mode 100644 index f512be7..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/module.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare module "module" { - export = NodeJS.Module; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/net.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/net.d.ts deleted file mode 100644 index 056cdec..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/net.d.ts +++ /dev/null @@ -1,251 +0,0 @@ -declare module "net" { - import * as stream from "stream"; - import * as events from "events"; - import * as dns from "dns"; - - type LookupFunction = (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void; - - interface AddressInfo { - address: string; - family: string; - port: number; - } - - interface SocketConstructorOpts { - fd?: number; - allowHalfOpen?: boolean; - readable?: boolean; - writable?: boolean; - } - - interface TcpSocketConnectOpts { - port: number; - host?: string; - localAddress?: string; - localPort?: number; - hints?: number; - family?: number; - lookup?: LookupFunction; - } - - interface IpcSocketConnectOpts { - path: string; - } - - type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts; - - class Socket extends stream.Duplex { - constructor(options?: SocketConstructorOpts); - - // Extended base methods - write(buffer: Buffer): boolean; - write(buffer: Buffer, cb?: Function): boolean; - write(str: string, cb?: Function): boolean; - write(str: string, encoding?: string, cb?: Function): boolean; - write(str: string, encoding?: string, fd?: string): boolean; - write(data: any, encoding?: string, callback?: Function): void; - - connect(options: SocketConnectOpts, connectionListener?: Function): this; - connect(port: number, host: string, connectionListener?: Function): this; - connect(port: number, connectionListener?: Function): this; - connect(path: string, connectionListener?: Function): this; - - setEncoding(encoding?: string): this; - pause(): this; - resume(): this; - setTimeout(timeout: number, callback?: Function): this; - setNoDelay(noDelay?: boolean): this; - setKeepAlive(enable?: boolean, initialDelay?: number): this; - address(): AddressInfo | string; - unref(): void; - ref(): void; - - readonly bufferSize: number; - readonly bytesRead: number; - readonly bytesWritten: number; - readonly connecting: boolean; - readonly destroyed: boolean; - readonly localAddress: string; - readonly localPort: number; - readonly remoteAddress?: string; - readonly remoteFamily?: string; - readonly remotePort?: number; - - // Extended base methods - end(): void; - end(buffer: Buffer, cb?: Function): void; - end(str: string, cb?: Function): void; - end(str: string, encoding?: string, cb?: Function): void; - end(data?: any, encoding?: string): void; - - /** - * events.EventEmitter - * 1. close - * 2. connect - * 3. data - * 4. drain - * 5. end - * 6. error - * 7. lookup - * 8. timeout - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "close", listener: (had_error: boolean) => void): this; - addListener(event: "connect", listener: () => void): this; - addListener(event: "data", listener: (data: Buffer) => void): this; - addListener(event: "drain", listener: () => void): this; - addListener(event: "end", listener: () => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; - addListener(event: "timeout", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "close", had_error: boolean): boolean; - emit(event: "connect"): boolean; - emit(event: "data", data: Buffer): boolean; - emit(event: "drain"): boolean; - emit(event: "end"): boolean; - emit(event: "error", err: Error): boolean; - emit(event: "lookup", err: Error, address: string, family: string | number, host: string): boolean; - emit(event: "timeout"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "close", listener: (had_error: boolean) => void): this; - on(event: "connect", listener: () => void): this; - on(event: "data", listener: (data: Buffer) => void): this; - on(event: "drain", listener: () => void): this; - on(event: "end", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; - on(event: "timeout", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "close", listener: (had_error: boolean) => void): this; - once(event: "connect", listener: () => void): this; - once(event: "data", listener: (data: Buffer) => void): this; - once(event: "drain", listener: () => void): this; - once(event: "end", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; - once(event: "timeout", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "close", listener: (had_error: boolean) => void): this; - prependListener(event: "connect", listener: () => void): this; - prependListener(event: "data", listener: (data: Buffer) => void): this; - prependListener(event: "drain", listener: () => void): this; - prependListener(event: "end", listener: () => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; - prependListener(event: "timeout", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "close", listener: (had_error: boolean) => void): this; - prependOnceListener(event: "connect", listener: () => void): this; - prependOnceListener(event: "data", listener: (data: Buffer) => void): this; - prependOnceListener(event: "drain", listener: () => void): this; - prependOnceListener(event: "end", listener: () => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; - prependOnceListener(event: "timeout", listener: () => void): this; - } - - interface ListenOptions { - port?: number; - host?: string; - backlog?: number; - path?: string; - exclusive?: boolean; - readableAll?: boolean; - writableAll?: boolean; - } - - // https://github.com/nodejs/node/blob/master/lib/net.js - class Server extends events.EventEmitter { - constructor(connectionListener?: (socket: Socket) => void); - constructor(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void); - - listen(port?: number, hostname?: string, backlog?: number, listeningListener?: Function): this; - listen(port?: number, hostname?: string, listeningListener?: Function): this; - listen(port?: number, backlog?: number, listeningListener?: Function): this; - listen(port?: number, listeningListener?: Function): this; - listen(path: string, backlog?: number, listeningListener?: Function): this; - listen(path: string, listeningListener?: Function): this; - listen(options: ListenOptions, listeningListener?: Function): this; - listen(handle: any, backlog?: number, listeningListener?: Function): this; - listen(handle: any, listeningListener?: Function): this; - close(callback?: (err?: Error) => void): this; - address(): AddressInfo | string; - getConnections(cb: (error: Error | null, count: number) => void): void; - ref(): this; - unref(): this; - maxConnections: number; - connections: number; - listening: boolean; - - /** - * events.EventEmitter - * 1. close - * 2. connection - * 3. error - * 4. listening - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "close", listener: () => void): this; - addListener(event: "connection", listener: (socket: Socket) => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "listening", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "close"): boolean; - emit(event: "connection", socket: Socket): boolean; - emit(event: "error", err: Error): boolean; - emit(event: "listening"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "close", listener: () => void): this; - on(event: "connection", listener: (socket: Socket) => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "listening", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "close", listener: () => void): this; - once(event: "connection", listener: (socket: Socket) => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "listening", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "close", listener: () => void): this; - prependListener(event: "connection", listener: (socket: Socket) => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "listening", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "connection", listener: (socket: Socket) => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "listening", listener: () => void): this; - } - - interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts { - timeout?: number; - } - - interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts { - timeout?: number; - } - - type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts; - - function createServer(connectionListener?: (socket: Socket) => void): Server; - function createServer(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void): Server; - function connect(options: NetConnectOpts, connectionListener?: Function): Socket; - function connect(port: number, host?: string, connectionListener?: Function): Socket; - function connect(path: string, connectionListener?: Function): Socket; - function createConnection(options: NetConnectOpts, connectionListener?: Function): Socket; - function createConnection(port: number, host?: string, connectionListener?: Function): Socket; - function createConnection(path: string, connectionListener?: Function): Socket; - function isIP(input: string): number; - function isIPv4(input: string): boolean; - function isIPv6(input: string): boolean; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/os.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/os.d.ts deleted file mode 100644 index 2bcf106..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/os.d.ts +++ /dev/null @@ -1,254 +0,0 @@ -declare module "os" { - interface CpuInfo { - model: string; - speed: number; - times: { - user: number; - nice: number; - sys: number; - idle: number; - irq: number; - }; - } - - interface NetworkInterfaceBase { - address: string; - netmask: string; - mac: string; - internal: boolean; - cidr: string | null; - } - - interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { - family: "IPv4"; - } - - interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { - family: "IPv6"; - scopeid: number; - } - - type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; - - function hostname(): string; - function loadavg(): number[]; - function uptime(): number; - function freemem(): number; - function totalmem(): number; - function cpus(): CpuInfo[]; - function type(): string; - function release(): string; - function networkInterfaces(): { [index: string]: NetworkInterfaceInfo[] }; - function homedir(): string; - function userInfo(options?: { encoding: string }): { username: string, uid: number, gid: number, shell: any, homedir: string }; - const constants: { - UV_UDP_REUSEADDR: number; - // signals: { [key in NodeJS.Signals]: number; }; @todo: change after migration to typescript 2.1 - signals: { - SIGHUP: number; - SIGINT: number; - SIGQUIT: number; - SIGILL: number; - SIGTRAP: number; - SIGABRT: number; - SIGIOT: number; - SIGBUS: number; - SIGFPE: number; - SIGKILL: number; - SIGUSR1: number; - SIGSEGV: number; - SIGUSR2: number; - SIGPIPE: number; - SIGALRM: number; - SIGTERM: number; - SIGCHLD: number; - SIGSTKFLT: number; - SIGCONT: number; - SIGSTOP: number; - SIGTSTP: number; - SIGBREAK: number; - SIGTTIN: number; - SIGTTOU: number; - SIGURG: number; - SIGXCPU: number; - SIGXFSZ: number; - SIGVTALRM: number; - SIGPROF: number; - SIGWINCH: number; - SIGIO: number; - SIGPOLL: number; - SIGLOST: number; - SIGPWR: number; - SIGINFO: number; - SIGSYS: number; - SIGUNUSED: number; - }; - errno: { - E2BIG: number; - EACCES: number; - EADDRINUSE: number; - EADDRNOTAVAIL: number; - EAFNOSUPPORT: number; - EAGAIN: number; - EALREADY: number; - EBADF: number; - EBADMSG: number; - EBUSY: number; - ECANCELED: number; - ECHILD: number; - ECONNABORTED: number; - ECONNREFUSED: number; - ECONNRESET: number; - EDEADLK: number; - EDESTADDRREQ: number; - EDOM: number; - EDQUOT: number; - EEXIST: number; - EFAULT: number; - EFBIG: number; - EHOSTUNREACH: number; - EIDRM: number; - EILSEQ: number; - EINPROGRESS: number; - EINTR: number; - EINVAL: number; - EIO: number; - EISCONN: number; - EISDIR: number; - ELOOP: number; - EMFILE: number; - EMLINK: number; - EMSGSIZE: number; - EMULTIHOP: number; - ENAMETOOLONG: number; - ENETDOWN: number; - ENETRESET: number; - ENETUNREACH: number; - ENFILE: number; - ENOBUFS: number; - ENODATA: number; - ENODEV: number; - ENOENT: number; - ENOEXEC: number; - ENOLCK: number; - ENOLINK: number; - ENOMEM: number; - ENOMSG: number; - ENOPROTOOPT: number; - ENOSPC: number; - ENOSR: number; - ENOSTR: number; - ENOSYS: number; - ENOTCONN: number; - ENOTDIR: number; - ENOTEMPTY: number; - ENOTSOCK: number; - ENOTSUP: number; - ENOTTY: number; - ENXIO: number; - EOPNOTSUPP: number; - EOVERFLOW: number; - EPERM: number; - EPIPE: number; - EPROTO: number; - EPROTONOSUPPORT: number; - EPROTOTYPE: number; - ERANGE: number; - EROFS: number; - ESPIPE: number; - ESRCH: number; - ESTALE: number; - ETIME: number; - ETIMEDOUT: number; - ETXTBSY: number; - EWOULDBLOCK: number; - EXDEV: number; - WSAEINTR: number; - WSAEBADF: number; - WSAEACCES: number; - WSAEFAULT: number; - WSAEINVAL: number; - WSAEMFILE: number; - WSAEWOULDBLOCK: number; - WSAEINPROGRESS: number; - WSAEALREADY: number; - WSAENOTSOCK: number; - WSAEDESTADDRREQ: number; - WSAEMSGSIZE: number; - WSAEPROTOTYPE: number; - WSAENOPROTOOPT: number; - WSAEPROTONOSUPPORT: number; - WSAESOCKTNOSUPPORT: number; - WSAEOPNOTSUPP: number; - WSAEPFNOSUPPORT: number; - WSAEAFNOSUPPORT: number; - WSAEADDRINUSE: number; - WSAEADDRNOTAVAIL: number; - WSAENETDOWN: number; - WSAENETUNREACH: number; - WSAENETRESET: number; - WSAECONNABORTED: number; - WSAECONNRESET: number; - WSAENOBUFS: number; - WSAEISCONN: number; - WSAENOTCONN: number; - WSAESHUTDOWN: number; - WSAETOOMANYREFS: number; - WSAETIMEDOUT: number; - WSAECONNREFUSED: number; - WSAELOOP: number; - WSAENAMETOOLONG: number; - WSAEHOSTDOWN: number; - WSAEHOSTUNREACH: number; - WSAENOTEMPTY: number; - WSAEPROCLIM: number; - WSAEUSERS: number; - WSAEDQUOT: number; - WSAESTALE: number; - WSAEREMOTE: number; - WSASYSNOTREADY: number; - WSAVERNOTSUPPORTED: number; - WSANOTINITIALISED: number; - WSAEDISCON: number; - WSAENOMORE: number; - WSAECANCELLED: number; - WSAEINVALIDPROCTABLE: number; - WSAEINVALIDPROVIDER: number; - WSAEPROVIDERFAILEDINIT: number; - WSASYSCALLFAILURE: number; - WSASERVICE_NOT_FOUND: number; - WSATYPE_NOT_FOUND: number; - WSA_E_NO_MORE: number; - WSA_E_CANCELLED: number; - WSAEREFUSED: number; - }; - priority: { - PRIORITY_LOW: number; - PRIORITY_BELOW_NORMAL: number; - PRIORITY_NORMAL: number; - PRIORITY_ABOVE_NORMAL: number; - PRIORITY_HIGH: number; - PRIORITY_HIGHEST: number; - } - }; - function arch(): string; - function platform(): NodeJS.Platform; - function tmpdir(): string; - const EOL: string; - function endianness(): "BE" | "LE"; - /** - * Gets the priority of a process. - * Defaults to current process. - */ - function getPriority(pid?: number): number; - /** - * Sets the priority of the current process. - * @param priority Must be in range of -20 to 19 - */ - function setPriority(priority: number): void; - /** - * Sets the priority of the process specified process. - * @param priority Must be in range of -20 to 19 - */ - function setPriority(pid: number, priority: number): void; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/package.json b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/package.json deleted file mode 100644 index 61adaaa..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/package.json +++ /dev/null @@ -1,201 +0,0 @@ -{ - "name": "@types/node", - "version": "10.17.44", - "description": "TypeScript definitions for Node.js", - "license": "MIT", - "contributors": [ - { - "name": "Microsoft TypeScript", - "url": "https://github.com/Microsoft", - "githubUsername": "Microsoft" - }, - { - "name": "DefinitelyTyped", - "url": "https://github.com/DefinitelyTyped", - "githubUsername": "DefinitelyTyped" - }, - { - "name": "Alberto Schiabel", - "url": "https://github.com/jkomyno", - "githubUsername": "jkomyno" - }, - { - "name": "Alexander T.", - "url": "https://github.com/a-tarasyuk", - "githubUsername": "a-tarasyuk" - }, - { - "name": "Alvis HT Tang", - "url": "https://github.com/alvis", - "githubUsername": "alvis" - }, - { - "name": "Andrew Makarov", - "url": "https://github.com/r3nya", - "githubUsername": "r3nya" - }, - { - "name": "Bruno Scheufler", - "url": "https://github.com/brunoscheufler", - "githubUsername": "brunoscheufler" - }, - { - "name": "Chigozirim C.", - "url": "https://github.com/smac89", - "githubUsername": "smac89" - }, - { - "name": "Deividas Bakanas", - "url": "https://github.com/DeividasBakanas", - "githubUsername": "DeividasBakanas" - }, - { - "name": "Eugene Y. Q. Shen", - "url": "https://github.com/eyqs", - "githubUsername": "eyqs" - }, - { - "name": "Flarna", - "url": "https://github.com/Flarna", - "githubUsername": "Flarna" - }, - { - "name": "Hannes Magnusson", - "url": "https://github.com/Hannes-Magnusson-CK", - "githubUsername": "Hannes-Magnusson-CK" - }, - { - "name": "Hoàng Văn Khải", - "url": "https://github.com/KSXGitHub", - "githubUsername": "KSXGitHub" - }, - { - "name": "Huw", - "url": "https://github.com/hoo29", - "githubUsername": "hoo29" - }, - { - "name": "Kelvin Jin", - "url": "https://github.com/kjin", - "githubUsername": "kjin" - }, - { - "name": "Klaus Meinhardt", - "url": "https://github.com/ajafff", - "githubUsername": "ajafff" - }, - { - "name": "Lishude", - "url": "https://github.com/islishude", - "githubUsername": "islishude" - }, - { - "name": "Mariusz Wiktorczyk", - "url": "https://github.com/mwiktorczyk", - "githubUsername": "mwiktorczyk" - }, - { - "name": "Mohsen Azimi", - "url": "https://github.com/mohsen1", - "githubUsername": "mohsen1" - }, - { - "name": "Nicolas Even", - "url": "https://github.com/n-e", - "githubUsername": "n-e" - }, - { - "name": "Nikita Galkin", - "url": "https://github.com/galkin", - "githubUsername": "galkin" - }, - { - "name": "Parambir Singh", - "url": "https://github.com/parambirs", - "githubUsername": "parambirs" - }, - { - "name": "Sebastian Silbermann", - "url": "https://github.com/eps1lon", - "githubUsername": "eps1lon" - }, - { - "name": "Simon Schick", - "url": "https://github.com/SimonSchick", - "githubUsername": "SimonSchick" - }, - { - "name": "Thomas den Hollander", - "url": "https://github.com/ThomasdenH", - "githubUsername": "ThomasdenH" - }, - { - "name": "Wilco Bakker", - "url": "https://github.com/WilcoBakker", - "githubUsername": "WilcoBakker" - }, - { - "name": "wwwy3y3", - "url": "https://github.com/wwwy3y3", - "githubUsername": "wwwy3y3" - }, - { - "name": "Zane Hannan AU", - "url": "https://github.com/ZaneHannanAU", - "githubUsername": "ZaneHannanAU" - }, - { - "name": "Jeremie Rodriguez", - "url": "https://github.com/jeremiergz", - "githubUsername": "jeremiergz" - }, - { - "name": "Samuel Ainsworth", - "url": "https://github.com/samuela", - "githubUsername": "samuela" - }, - { - "name": "Kyle Uehlein", - "url": "https://github.com/kuehlein", - "githubUsername": "kuehlein" - }, - { - "name": "Jordi Oliveras Rovira", - "url": "https://github.com/j-oliveras", - "githubUsername": "j-oliveras" - }, - { - "name": "Thanik Bhongbhibhat", - "url": "https://github.com/bhongy", - "githubUsername": "bhongy" - }, - { - "name": "Minh Son Nguyen", - "url": "https://github.com/nguymin4", - "githubUsername": "nguymin4" - }, - { - "name": "ExE Boss", - "url": "https://github.com/ExE-Boss", - "githubUsername": "ExE-Boss" - } - ], - "main": "", - "types": "index.d.ts", - "typesVersions": { - "<=3.6": { - "*": [ - "ts3.6/*" - ] - } - }, - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/node" - }, - "scripts": {}, - "dependencies": {}, - "typesPublisherContentHash": "e2fb581be54ad7c975d6492b5d329071ebb5a60cc5fc6639248beee6c5cd18c3", - "typeScriptVersion": "3.2" -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/path.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/path.d.ts deleted file mode 100644 index bbc1709..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/path.d.ts +++ /dev/null @@ -1,159 +0,0 @@ -declare module "path" { - /** - * A parsed path object generated by path.parse() or consumed by path.format(). - */ - interface ParsedPath { - /** - * The root of the path such as '/' or 'c:\' - */ - root: string; - /** - * The full directory path such as '/home/user/dir' or 'c:\path\dir' - */ - dir: string; - /** - * The file name including extension (if any) such as 'index.html' - */ - base: string; - /** - * The file extension (if any) such as '.html' - */ - ext: string; - /** - * The file name without extension (if any) such as 'index' - */ - name: string; - } - interface FormatInputPathObject { - /** - * The root of the path such as '/' or 'c:\' - */ - root?: string; - /** - * The full directory path such as '/home/user/dir' or 'c:\path\dir' - */ - dir?: string; - /** - * The file name including extension (if any) such as 'index.html' - */ - base?: string; - /** - * The file extension (if any) such as '.html' - */ - ext?: string; - /** - * The file name without extension (if any) such as 'index' - */ - name?: string; - } - - /** - * Normalize a string path, reducing '..' and '.' parts. - * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. - * - * @param p string path to normalize. - */ - function normalize(p: string): string; - /** - * Join all arguments together and normalize the resulting path. - * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown. - * - * @param paths paths to join. - */ - function join(...paths: string[]): string; - /** - * The right-most parameter is considered {to}. Other parameters are considered an array of {from}. - * - * Starting from leftmost {from} parameter, resolves {to} to an absolute path. - * - * If {to} isn't already absolute, {from} arguments are prepended in right to left order, - * until an absolute path is found. If after using all {from} paths still no absolute path is found, - * the current working directory is used as well. The resulting path is normalized, - * and trailing slashes are removed unless the path gets resolved to the root directory. - * - * @param pathSegments string paths to join. Non-string arguments are ignored. - */ - function resolve(...pathSegments: string[]): string; - /** - * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory. - * - * @param path path to test. - */ - function isAbsolute(path: string): boolean; - /** - * Solve the relative path from {from} to {to}. - * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve. - */ - function relative(from: string, to: string): string; - /** - * Return the directory name of a path. Similar to the Unix dirname command. - * - * @param p the path to evaluate. - */ - function dirname(p: string): string; - /** - * Return the last portion of a path. Similar to the Unix basename command. - * Often used to extract the file name from a fully qualified path. - * - * @param p the path to evaluate. - * @param ext optionally, an extension to remove from the result. - */ - function basename(p: string, ext?: string): string; - /** - * Return the extension of the path, from the last '.' to end of string in the last portion of the path. - * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string - * - * @param p the path to evaluate. - */ - function extname(p: string): string; - /** - * The platform-specific file separator. '\\' or '/'. - */ - const sep: '\\' | '/'; - /** - * The platform-specific file delimiter. ';' or ':'. - */ - const delimiter: ';' | ':'; - /** - * Returns an object from a path string - the opposite of format(). - * - * @param pathString path to evaluate. - */ - function parse(pathString: string): ParsedPath; - /** - * Returns a path string from an object - the opposite of parse(). - * - * @param pathString path to evaluate. - */ - function format(pathObject: FormatInputPathObject): string; - - namespace posix { - function normalize(p: string): string; - function join(...paths: any[]): string; - function resolve(...pathSegments: any[]): string; - function isAbsolute(p: string): boolean; - function relative(from: string, to: string): string; - function dirname(p: string): string; - function basename(p: string, ext?: string): string; - function extname(p: string): string; - const sep: string; - const delimiter: string; - function parse(p: string): ParsedPath; - function format(pP: FormatInputPathObject): string; - } - - namespace win32 { - function normalize(p: string): string; - function join(...paths: any[]): string; - function resolve(...pathSegments: any[]): string; - function isAbsolute(p: string): boolean; - function relative(from: string, to: string): string; - function dirname(p: string): string; - function basename(p: string, ext?: string): string; - function extname(p: string): string; - const sep: string; - const delimiter: string; - function parse(p: string): ParsedPath; - function format(pP: FormatInputPathObject): string; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/perf_hooks.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/perf_hooks.d.ts deleted file mode 100644 index b4777bd..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/perf_hooks.d.ts +++ /dev/null @@ -1,169 +0,0 @@ -declare module "perf_hooks" { - import { AsyncResource } from "async_hooks"; - - interface PerformanceEntry { - /** - * The total number of milliseconds elapsed for this entry. - * This value will not be meaningful for all Performance Entry types. - */ - readonly duration: number; - - /** - * The name of the performance entry. - */ - readonly name: string; - - /** - * The high resolution millisecond timestamp marking the starting time of the Performance Entry. - */ - readonly startTime: number; - - /** - * The type of the performance entry. - * Currently it may be one of: 'node', 'mark', 'measure', 'gc', or 'function'. - */ - readonly entryType: string; - - /** - * When performanceEntry.entryType is equal to 'gc', the performance.kind property identifies - * the type of garbage collection operation that occurred. - * The value may be one of perf_hooks.constants. - */ - readonly kind?: number; - } - - interface PerformanceNodeTiming extends PerformanceEntry { - /** - * The high resolution millisecond timestamp at which the Node.js process completed bootstrap. - * If bootstrapping has not yet finished, the property has the value of -1. - */ - readonly bootstrapComplete: number; - - /** - * The high resolution millisecond timestamp at which the Node.js event loop exited. - * If the event loop has not yet exited, the property has the value of -1. - * It can only have a value of not -1 in a handler of the 'exit' event. - */ - readonly loopExit: number; - - /** - * The high resolution millisecond timestamp at which the Node.js event loop started. - * If the event loop has not yet started (e.g., in the first tick of the main script), the property has the value of -1. - */ - readonly loopStart: number; - - /** - * The high resolution millisecond timestamp at which the Node.js process was initialized. - */ - readonly nodeStart: number; - - /** - * The high resolution millisecond timestamp at which the V8 platform was initialized. - */ - readonly v8Start: number; - } - - interface Performance { - /** - * If name is not provided, removes all PerformanceMark objects from the Performance Timeline. - * If name is provided, removes only the named mark. - * @param name - */ - clearMarks(name?: string): void; - - /** - * Creates a new PerformanceMark entry in the Performance Timeline. - * A PerformanceMark is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'mark', - * and whose performanceEntry.duration is always 0. - * Performance marks are used to mark specific significant moments in the Performance Timeline. - * @param name - */ - mark(name?: string): void; - - /** - * Creates a new PerformanceMeasure entry in the Performance Timeline. - * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure', - * and whose performanceEntry.duration measures the number of milliseconds elapsed since startMark and endMark. - * - * The startMark argument may identify any existing PerformanceMark in the the Performance Timeline, or may identify - * any of the timestamp properties provided by the PerformanceNodeTiming class. If the named startMark does not exist, - * then startMark is set to timeOrigin by default. - * - * The endMark argument must identify any existing PerformanceMark in the the Performance Timeline or any of the timestamp - * properties provided by the PerformanceNodeTiming class. If the named endMark does not exist, an error will be thrown. - * @param name - * @param startMark - * @param endMark - */ - measure(name: string, startMark: string, endMark: string): void; - - /** - * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones. - */ - readonly nodeTiming: PerformanceNodeTiming; - - /** - * @return the current high resolution millisecond timestamp - */ - now(): number; - - /** - * The timeOrigin specifies the high resolution millisecond timestamp from which all performance metric durations are measured. - */ - readonly timeOrigin: number; - - /** - * Wraps a function within a new function that measures the running time of the wrapped function. - * A PerformanceObserver must be subscribed to the 'function' event type in order for the timing details to be accessed. - * @param fn - */ - timerify any>(fn: T): T; - } - - interface PerformanceObserverEntryList { - /** - * @return a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime. - */ - getEntries(): PerformanceEntry[]; - - /** - * @return a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime - * whose performanceEntry.name is equal to name, and optionally, whose performanceEntry.entryType is equal to type. - */ - getEntriesByName(name: string, type?: string): PerformanceEntry[]; - - /** - * @return Returns a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime - * whose performanceEntry.entryType is equal to type. - */ - getEntriesByType(type: string): PerformanceEntry[]; - } - - type PerformanceObserverCallback = (list: PerformanceObserverEntryList, observer: PerformanceObserver) => void; - - class PerformanceObserver extends AsyncResource { - constructor(callback: PerformanceObserverCallback); - - /** - * Disconnects the PerformanceObserver instance from all notifications. - */ - disconnect(): void; - - /** - * Subscribes the PerformanceObserver instance to notifications of new PerformanceEntry instances identified by options.entryTypes. - * When options.buffered is false, the callback will be invoked once for every PerformanceEntry instance. - * Property buffered defaults to false. - * @param options - */ - observe(options: { entryTypes: ReadonlyArray, buffered?: boolean }): void; - } - - namespace constants { - const NODE_PERFORMANCE_GC_MAJOR: number; - const NODE_PERFORMANCE_GC_MINOR: number; - const NODE_PERFORMANCE_GC_INCREMENTAL: number; - const NODE_PERFORMANCE_GC_WEAKCB: number; - } - - const performance: Performance; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/process.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/process.d.ts deleted file mode 100644 index ccd5c9c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/process.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare module "process" { - export = process; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/punycode.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/punycode.d.ts deleted file mode 100644 index 2b771d4..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/punycode.d.ts +++ /dev/null @@ -1,68 +0,0 @@ -declare module "punycode" { - /** - * @deprecated since v7.0.0 - * The version of the punycode module bundled in Node.js is being deprecated. - * In a future major version of Node.js this module will be removed. - * Users currently depending on the punycode module should switch to using - * the userland-provided Punycode.js module instead. - */ - function decode(string: string): string; - /** - * @deprecated since v7.0.0 - * The version of the punycode module bundled in Node.js is being deprecated. - * In a future major version of Node.js this module will be removed. - * Users currently depending on the punycode module should switch to using - * the userland-provided Punycode.js module instead. - */ - function encode(string: string): string; - /** - * @deprecated since v7.0.0 - * The version of the punycode module bundled in Node.js is being deprecated. - * In a future major version of Node.js this module will be removed. - * Users currently depending on the punycode module should switch to using - * the userland-provided Punycode.js module instead. - */ - function toUnicode(domain: string): string; - /** - * @deprecated since v7.0.0 - * The version of the punycode module bundled in Node.js is being deprecated. - * In a future major version of Node.js this module will be removed. - * Users currently depending on the punycode module should switch to using - * the userland-provided Punycode.js module instead. - */ - function toASCII(domain: string): string; - /** - * @deprecated since v7.0.0 - * The version of the punycode module bundled in Node.js is being deprecated. - * In a future major version of Node.js this module will be removed. - * Users currently depending on the punycode module should switch to using - * the userland-provided Punycode.js module instead. - */ - const ucs2: ucs2; - interface ucs2 { - /** - * @deprecated since v7.0.0 - * The version of the punycode module bundled in Node.js is being deprecated. - * In a future major version of Node.js this module will be removed. - * Users currently depending on the punycode module should switch to using - * the userland-provided Punycode.js module instead. - */ - decode(string: string): number[]; - /** - * @deprecated since v7.0.0 - * The version of the punycode module bundled in Node.js is being deprecated. - * In a future major version of Node.js this module will be removed. - * Users currently depending on the punycode module should switch to using - * the userland-provided Punycode.js module instead. - */ - encode(codePoints: ReadonlyArray): string; - } - /** - * @deprecated since v7.0.0 - * The version of the punycode module bundled in Node.js is being deprecated. - * In a future major version of Node.js this module will be removed. - * Users currently depending on the punycode module should switch to using - * the userland-provided Punycode.js module instead. - */ - const version: string; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/querystring.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/querystring.d.ts deleted file mode 100644 index f54d352..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/querystring.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -declare module "querystring" { - interface StringifyOptions { - encodeURIComponent?: Function; - } - - interface ParseOptions { - maxKeys?: number; - decodeURIComponent?: Function; - } - - interface ParsedUrlQuery { [key: string]: string | string[]; } - - function stringify(obj?: {}, sep?: string, eq?: string, options?: StringifyOptions): string; - function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; - function escape(str: string): string; - function unescape(str: string): string; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/readline.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/readline.d.ts deleted file mode 100644 index 85e190a..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/readline.d.ts +++ /dev/null @@ -1,143 +0,0 @@ -declare module "readline" { - import * as events from "events"; - import * as stream from "stream"; - - interface Key { - sequence?: string; - name?: string; - ctrl?: boolean; - meta?: boolean; - shift?: boolean; - } - - class Interface extends events.EventEmitter { - readonly terminal: boolean; - - // Need direct access to line/cursor data, for use in external processes - // see: https://github.com/nodejs/node/issues/30347 - /** The current input data */ - readonly line: string; - /** The current cursor position in the input line */ - readonly cursor: number; - - /** - * NOTE: According to the documentation: - * - * > Instances of the `readline.Interface` class are constructed using the - * > `readline.createInterface()` method. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface - */ - protected constructor(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean); - /** - * NOTE: According to the documentation: - * - * > Instances of the `readline.Interface` class are constructed using the - * > `readline.createInterface()` method. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface - */ - protected constructor(options: ReadLineOptions); - - setPrompt(prompt: string): void; - prompt(preserveCursor?: boolean): void; - question(query: string, callback: (answer: string) => void): void; - pause(): this; - resume(): this; - close(): void; - write(data: string | Buffer, key?: Key): void; - - /** - * events.EventEmitter - * 1. close - * 2. line - * 3. pause - * 4. resume - * 5. SIGCONT - * 6. SIGINT - * 7. SIGTSTP - */ - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "close", listener: () => void): this; - addListener(event: "line", listener: (input: string) => void): this; - addListener(event: "pause", listener: () => void): this; - addListener(event: "resume", listener: () => void): this; - addListener(event: "SIGCONT", listener: () => void): this; - addListener(event: "SIGINT", listener: () => void): this; - addListener(event: "SIGTSTP", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "close"): boolean; - emit(event: "line", input: string): boolean; - emit(event: "pause"): boolean; - emit(event: "resume"): boolean; - emit(event: "SIGCONT"): boolean; - emit(event: "SIGINT"): boolean; - emit(event: "SIGTSTP"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "close", listener: () => void): this; - on(event: "line", listener: (input: string) => void): this; - on(event: "pause", listener: () => void): this; - on(event: "resume", listener: () => void): this; - on(event: "SIGCONT", listener: () => void): this; - on(event: "SIGINT", listener: () => void): this; - on(event: "SIGTSTP", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "close", listener: () => void): this; - once(event: "line", listener: (input: string) => void): this; - once(event: "pause", listener: () => void): this; - once(event: "resume", listener: () => void): this; - once(event: "SIGCONT", listener: () => void): this; - once(event: "SIGINT", listener: () => void): this; - once(event: "SIGTSTP", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "close", listener: () => void): this; - prependListener(event: "line", listener: (input: string) => void): this; - prependListener(event: "pause", listener: () => void): this; - prependListener(event: "resume", listener: () => void): this; - prependListener(event: "SIGCONT", listener: () => void): this; - prependListener(event: "SIGINT", listener: () => void): this; - prependListener(event: "SIGTSTP", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "line", listener: (input: string) => void): this; - prependOnceListener(event: "pause", listener: () => void): this; - prependOnceListener(event: "resume", listener: () => void): this; - prependOnceListener(event: "SIGCONT", listener: () => void): this; - prependOnceListener(event: "SIGINT", listener: () => void): this; - prependOnceListener(event: "SIGTSTP", listener: () => void): this; - } - - type ReadLine = Interface; // type forwarded for backwards compatiblity - - type Completer = (line: string) => CompleterResult; - type AsyncCompleter = (line: string, callback: (err: any, result: CompleterResult) => void) => any; - - type CompleterResult = [string[], string]; - - interface ReadLineOptions { - input: NodeJS.ReadableStream; - output?: NodeJS.WritableStream; - completer?: Completer | AsyncCompleter; - terminal?: boolean; - historySize?: number; - prompt?: string; - crlfDelay?: number; - removeHistoryDuplicates?: boolean; - escapeCodeTimeout?: number; - } - - function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface; - function createInterface(options: ReadLineOptions): Interface; - - function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number): void; - function emitKeypressEvents(stream: NodeJS.ReadableStream, interface?: Interface): void; - function moveCursor(stream: NodeJS.WritableStream, dx: number | string, dy: number | string): void; - function clearLine(stream: NodeJS.WritableStream, dir: number): void; - function clearScreenDown(stream: NodeJS.WritableStream): void; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/repl.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/repl.d.ts deleted file mode 100644 index 0caf3db..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/repl.d.ts +++ /dev/null @@ -1,380 +0,0 @@ -declare module "repl" { - import { Interface, Completer, AsyncCompleter } from "readline"; - import { Context } from "vm"; - import { InspectOptions } from "util"; - - interface ReplOptions { - /** - * The input prompt to display. - * Default: `"> "` - */ - prompt?: string; - /** - * The `Readable` stream from which REPL input will be read. - * Default: `process.stdin` - */ - input?: NodeJS.ReadableStream; - /** - * The `Writable` stream to which REPL output will be written. - * Default: `process.stdout` - */ - output?: NodeJS.WritableStream; - /** - * If `true`, specifies that the output should be treated as a TTY terminal, and have - * ANSI/VT100 escape codes written to it. - * Default: checking the value of the `isTTY` property on the output stream upon - * instantiation. - */ - terminal?: boolean; - /** - * The function to be used when evaluating each given line of input. - * Default: an async wrapper for the JavaScript `eval()` function. An `eval` function can - * error with `repl.Recoverable` to indicate the input was incomplete and prompt for - * additional lines. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_default_evaluation - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_custom_evaluation_functions - */ - eval?: REPLEval; - /** - * If `true`, specifies that the default `writer` function should include ANSI color - * styling to REPL output. If a custom `writer` function is provided then this has no - * effect. - * Default: the REPL instance's `terminal` value. - */ - useColors?: boolean; - /** - * If `true`, specifies that the default evaluation function will use the JavaScript - * `global` as the context as opposed to creating a new separate context for the REPL - * instance. The node CLI REPL sets this value to `true`. - * Default: `false`. - */ - useGlobal?: boolean; - /** - * If `true`, specifies that the default writer will not output the return value of a - * command if it evaluates to `undefined`. - * Default: `false`. - */ - ignoreUndefined?: boolean; - /** - * The function to invoke to format the output of each command before writing to `output`. - * Default: a wrapper for `util.inspect`. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_customizing_repl_output - */ - writer?: REPLWriter; - /** - * An optional function used for custom Tab auto completion. - * - * @see https://nodejs.org/dist/latest-v11.x/docs/api/readline.html#readline_use_of_the_completer_function - */ - completer?: Completer | AsyncCompleter; - /** - * A flag that specifies whether the default evaluator executes all JavaScript commands in - * strict mode or default (sloppy) mode. - * Accepted values are: - * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. - * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to - * prefacing every repl statement with `'use strict'`. - */ - replMode?: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; - /** - * Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is - * pressed. This cannot be used together with a custom `eval` function. - * Default: `false`. - */ - breakEvalOnSigint?: boolean; - } - - type REPLEval = (this: REPLServer, evalCmd: string, context: Context, file: string, cb: (err: Error | null, result: any) => void) => void; - type REPLWriter = (this: REPLServer, obj: any) => string; - - /** - * This is the default "writer" value, if none is passed in the REPL options, - * and it can be overridden by custom print functions. - */ - const writer: REPLWriter & { options: InspectOptions }; - - type REPLCommandAction = (this: REPLServer, text: string) => void; - - interface REPLCommand { - /** - * Help text to be displayed when `.help` is entered. - */ - help?: string; - /** - * The function to execute, optionally accepting a single string argument. - */ - action: REPLCommandAction; - } - - /** - * Provides a customizable Read-Eval-Print-Loop (REPL). - * - * Instances of `repl.REPLServer` will accept individual lines of user input, evaluate those - * according to a user-defined evaluation function, then output the result. Input and output - * may be from `stdin` and `stdout`, respectively, or may be connected to any Node.js `stream`. - * - * Instances of `repl.REPLServer` support automatic completion of inputs, simplistic Emacs-style - * line editing, multi-line inputs, ANSI-styled output, saving and restoring current REPL session - * state, error recovery, and customizable evaluation functions. - * - * Instances of `repl.REPLServer` are created using the `repl.start()` method and _should not_ - * be created directly using the JavaScript `new` keyword. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_repl - */ - class REPLServer extends Interface { - /** - * The `vm.Context` provided to the `eval` function to be used for JavaScript - * evaluation. - */ - readonly context: Context; - /** - * Outdated alias for `input`. - */ - readonly inputStream: NodeJS.ReadableStream; - /** - * Outdated alias for `output`. - */ - readonly outputStream: NodeJS.WritableStream; - /** - * The `Readable` stream from which REPL input will be read. - */ - readonly input: NodeJS.ReadableStream; - /** - * The `Writable` stream to which REPL output will be written. - */ - readonly output: NodeJS.WritableStream; - /** - * The commands registered via `replServer.defineCommand()`. - */ - readonly commands: { readonly [name: string]: REPLCommand | undefined }; - /** - * A value indicating whether the REPL is currently in "editor mode". - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_commands_and_special_keys - */ - readonly editorMode: boolean; - /** - * A value indicating whether the `_` variable has been assigned. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable - */ - readonly underscoreAssigned: boolean; - /** - * The last evaluation result from the REPL (assigned to the `_` variable inside of the REPL). - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable - */ - readonly last: any; - /** - * A value indicating whether the `_error` variable has been assigned. - * - * @since v9.8.0 - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable - */ - readonly underscoreErrAssigned: boolean; - /** - * The last error raised inside the REPL (assigned to the `_error` variable inside of the REPL). - * - * @since v9.8.0 - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable - */ - readonly lastError: any; - /** - * Specified in the REPL options, this is the function to be used when evaluating each - * given line of input. If not specified in the REPL options, this is an async wrapper - * for the JavaScript `eval()` function. - */ - readonly eval: REPLEval; - /** - * Specified in the REPL options, this is a value indicating whether the default - * `writer` function should include ANSI color styling to REPL output. - */ - readonly useColors: boolean; - /** - * Specified in the REPL options, this is a value indicating whether the default `eval` - * function will use the JavaScript `global` as the context as opposed to creating a new - * separate context for the REPL instance. - */ - readonly useGlobal: boolean; - /** - * Specified in the REPL options, this is a value indicating whether the default `writer` - * function should output the result of a command if it evaluates to `undefined`. - */ - readonly ignoreUndefined: boolean; - /** - * Specified in the REPL options, this is the function to invoke to format the output of - * each command before writing to `outputStream`. If not specified in the REPL options, - * this will be a wrapper for `util.inspect`. - */ - readonly writer: REPLWriter; - /** - * Specified in the REPL options, this is the function to use for custom Tab auto-completion. - */ - readonly completer: Completer | AsyncCompleter; - /** - * Specified in the REPL options, this is a flag that specifies whether the default `eval` - * function should execute all JavaScript commands in strict mode or default (sloppy) mode. - * Possible values are: - * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. - * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to - * prefacing every repl statement with `'use strict'`. - */ - readonly replMode: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; - - /** - * NOTE: According to the documentation: - * - * > Instances of `repl.REPLServer` are created using the `repl.start()` method and - * > _should not_ be created directly using the JavaScript `new` keyword. - * - * `REPLServer` cannot be subclassed due to implementation specifics in NodeJS. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_class_replserver - */ - private constructor(); - - /** - * Used to add new `.`-prefixed commands to the REPL instance. Such commands are invoked - * by typing a `.` followed by the `keyword`. - * - * @param keyword The command keyword (_without_ a leading `.` character). - * @param cmd The function to invoke when the command is processed. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_replserver_definecommand_keyword_cmd - */ - defineCommand(keyword: string, cmd: REPLCommandAction | REPLCommand): void; - /** - * Readies the REPL instance for input from the user, printing the configured `prompt` to a - * new line in the `output` and resuming the `input` to accept new input. - * - * When multi-line input is being entered, an ellipsis is printed rather than the 'prompt'. - * - * This method is primarily intended to be called from within the action function for - * commands registered using the `replServer.defineCommand()` method. - * - * @param preserveCursor When `true`, the cursor placement will not be reset to `0`. - */ - displayPrompt(preserveCursor?: boolean): void; - /** - * Clears any command that has been buffered but not yet executed. - * - * This method is primarily intended to be called from within the action function for - * commands registered using the `replServer.defineCommand()` method. - * - * @since v9.0.0 - */ - clearBufferedCommand(): void; - - /** - * events.EventEmitter - * 1. close - inherited from `readline.Interface` - * 2. line - inherited from `readline.Interface` - * 3. pause - inherited from `readline.Interface` - * 4. resume - inherited from `readline.Interface` - * 5. SIGCONT - inherited from `readline.Interface` - * 6. SIGINT - inherited from `readline.Interface` - * 7. SIGTSTP - inherited from `readline.Interface` - * 8. exit - * 9. reset - */ - - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "close", listener: () => void): this; - addListener(event: "line", listener: (input: string) => void): this; - addListener(event: "pause", listener: () => void): this; - addListener(event: "resume", listener: () => void): this; - addListener(event: "SIGCONT", listener: () => void): this; - addListener(event: "SIGINT", listener: () => void): this; - addListener(event: "SIGTSTP", listener: () => void): this; - addListener(event: "exit", listener: () => void): this; - addListener(event: "reset", listener: (context: Context) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "close"): boolean; - emit(event: "line", input: string): boolean; - emit(event: "pause"): boolean; - emit(event: "resume"): boolean; - emit(event: "SIGCONT"): boolean; - emit(event: "SIGINT"): boolean; - emit(event: "SIGTSTP"): boolean; - emit(event: "exit"): boolean; - emit(event: "reset", context: Context): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "close", listener: () => void): this; - on(event: "line", listener: (input: string) => void): this; - on(event: "pause", listener: () => void): this; - on(event: "resume", listener: () => void): this; - on(event: "SIGCONT", listener: () => void): this; - on(event: "SIGINT", listener: () => void): this; - on(event: "SIGTSTP", listener: () => void): this; - on(event: "exit", listener: () => void): this; - on(event: "reset", listener: (context: Context) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "close", listener: () => void): this; - once(event: "line", listener: (input: string) => void): this; - once(event: "pause", listener: () => void): this; - once(event: "resume", listener: () => void): this; - once(event: "SIGCONT", listener: () => void): this; - once(event: "SIGINT", listener: () => void): this; - once(event: "SIGTSTP", listener: () => void): this; - once(event: "exit", listener: () => void): this; - once(event: "reset", listener: (context: Context) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "close", listener: () => void): this; - prependListener(event: "line", listener: (input: string) => void): this; - prependListener(event: "pause", listener: () => void): this; - prependListener(event: "resume", listener: () => void): this; - prependListener(event: "SIGCONT", listener: () => void): this; - prependListener(event: "SIGINT", listener: () => void): this; - prependListener(event: "SIGTSTP", listener: () => void): this; - prependListener(event: "exit", listener: () => void): this; - prependListener(event: "reset", listener: (context: Context) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "line", listener: (input: string) => void): this; - prependOnceListener(event: "pause", listener: () => void): this; - prependOnceListener(event: "resume", listener: () => void): this; - prependOnceListener(event: "SIGCONT", listener: () => void): this; - prependOnceListener(event: "SIGINT", listener: () => void): this; - prependOnceListener(event: "SIGTSTP", listener: () => void): this; - prependOnceListener(event: "exit", listener: () => void): this; - prependOnceListener(event: "reset", listener: (context: Context) => void): this; - } - - /** - * A flag passed in the REPL options. Evaluates expressions in sloppy mode. - */ - export const REPL_MODE_SLOPPY: symbol; // TODO: unique symbol - - /** - * A flag passed in the REPL options. Evaluates expressions in strict mode. - * This is equivalent to prefacing every repl statement with `'use strict'`. - */ - export const REPL_MODE_STRICT: symbol; // TODO: unique symbol - - /** - * Creates and starts a `repl.REPLServer` instance. - * - * @param options The options for the `REPLServer`. If `options` is a string, then it specifies - * the input prompt. - */ - function start(options?: string | ReplOptions): REPLServer; - - /** - * Indicates a recoverable error that a `REPLServer` can use to support multi-line input. - * - * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_recoverable_errors - */ - class Recoverable extends SyntaxError { - err: Error; - - constructor(err: Error); - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/stream.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/stream.d.ts deleted file mode 100644 index fce9925..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/stream.d.ts +++ /dev/null @@ -1,313 +0,0 @@ -declare module "stream" { - import * as events from "events"; - - class internal extends events.EventEmitter { - pipe(destination: T, options?: { end?: boolean; }): T; - } - - namespace internal { - class Stream extends internal { } - - interface ReadableOptions { - highWaterMark?: number; - encoding?: string; - objectMode?: boolean; - read?(this: Readable, size: number): void; - destroy?(this: Readable, error: Error | null, callback: (error: Error | null) => void): void; - } - - class Readable extends Stream implements NodeJS.ReadableStream { - readable: boolean; - readonly readableFlowing: boolean | null; - readonly readableHighWaterMark: number; - readonly readableLength: number; - constructor(opts?: ReadableOptions); - _read(size: number): void; - read(size?: number): any; - setEncoding(encoding: string): this; - pause(): this; - resume(): this; - isPaused(): boolean; - unpipe(destination?: NodeJS.WritableStream): this; - unshift(chunk: any): void; - wrap(oldStream: NodeJS.ReadableStream): this; - push(chunk: any, encoding?: string): boolean; - _destroy(error: Error | null, callback: (error: Error | null) => void): void; - destroy(error?: Error): void; - - /** - * Event emitter - * The defined events on documents including: - * 1. close - * 2. data - * 3. end - * 4. readable - * 5. error - */ - addListener(event: "close", listener: () => void): this; - addListener(event: "data", listener: (chunk: any) => void): this; - addListener(event: "end", listener: () => void): this; - addListener(event: "readable", listener: () => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: string | symbol, listener: (...args: any[]) => void): this; - - emit(event: "close"): boolean; - emit(event: "data", chunk: any): boolean; - emit(event: "end"): boolean; - emit(event: "readable"): boolean; - emit(event: "error", err: Error): boolean; - emit(event: string | symbol, ...args: any[]): boolean; - - on(event: "close", listener: () => void): this; - on(event: "data", listener: (chunk: any) => void): this; - on(event: "end", listener: () => void): this; - on(event: "readable", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: string | symbol, listener: (...args: any[]) => void): this; - - once(event: "close", listener: () => void): this; - once(event: "data", listener: (chunk: any) => void): this; - once(event: "end", listener: () => void): this; - once(event: "readable", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: string | symbol, listener: (...args: any[]) => void): this; - - prependListener(event: "close", listener: () => void): this; - prependListener(event: "data", listener: (chunk: any) => void): this; - prependListener(event: "end", listener: () => void): this; - prependListener(event: "readable", listener: () => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: string | symbol, listener: (...args: any[]) => void): this; - - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "data", listener: (chunk: any) => void): this; - prependOnceListener(event: "end", listener: () => void): this; - prependOnceListener(event: "readable", listener: () => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; - - removeListener(event: "close", listener: () => void): this; - removeListener(event: "data", listener: (chunk: any) => void): this; - removeListener(event: "end", listener: () => void): this; - removeListener(event: "readable", listener: () => void): this; - removeListener(event: "error", listener: (err: Error) => void): this; - removeListener(event: string | symbol, listener: (...args: any[]) => void): this; - - [Symbol.asyncIterator](): AsyncIterableIterator; - } - - interface WritableOptions { - highWaterMark?: number; - decodeStrings?: boolean; - objectMode?: boolean; - write?(this: Writable, chunk: any, encoding: string, callback: (error?: Error | null) => void): void; - writev?(this: Writable, chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; - destroy?(this: Writable, error: Error | null, callback: (error: Error | null) => void): void; - final?(this: Writable, callback: (error?: Error | null) => void): void; - } - - class Writable extends Stream implements NodeJS.WritableStream { - writable: boolean; - readonly writableHighWaterMark: number; - readonly writableLength: number; - constructor(opts?: WritableOptions); - _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; - _writev?(chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; - _destroy(error: Error | null, callback: (error: Error | null) => void): void; - _final(callback: (error?: Error | null) => void): void; - write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; - write(chunk: any, encoding?: string, cb?: (error: Error | null | undefined) => void): boolean; - setDefaultEncoding(encoding: string): this; - end(cb?: () => void): void; - end(chunk: any, cb?: () => void): void; - end(chunk: any, encoding?: string, cb?: () => void): void; - cork(): void; - uncork(): void; - destroy(error?: Error): void; - - /** - * Event emitter - * The defined events on documents including: - * 1. close - * 2. drain - * 3. error - * 4. finish - * 5. pipe - * 6. unpipe - */ - addListener(event: "close", listener: () => void): this; - addListener(event: "drain", listener: () => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "finish", listener: () => void): this; - addListener(event: "pipe", listener: (src: Readable) => void): this; - addListener(event: "unpipe", listener: (src: Readable) => void): this; - addListener(event: string | symbol, listener: (...args: any[]) => void): this; - - emit(event: "close"): boolean; - emit(event: "drain"): boolean; - emit(event: "error", err: Error): boolean; - emit(event: "finish"): boolean; - emit(event: "pipe", src: Readable): boolean; - emit(event: "unpipe", src: Readable): boolean; - emit(event: string | symbol, ...args: any[]): boolean; - - on(event: "close", listener: () => void): this; - on(event: "drain", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "finish", listener: () => void): this; - on(event: "pipe", listener: (src: Readable) => void): this; - on(event: "unpipe", listener: (src: Readable) => void): this; - on(event: string | symbol, listener: (...args: any[]) => void): this; - - once(event: "close", listener: () => void): this; - once(event: "drain", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "finish", listener: () => void): this; - once(event: "pipe", listener: (src: Readable) => void): this; - once(event: "unpipe", listener: (src: Readable) => void): this; - once(event: string | symbol, listener: (...args: any[]) => void): this; - - prependListener(event: "close", listener: () => void): this; - prependListener(event: "drain", listener: () => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "finish", listener: () => void): this; - prependListener(event: "pipe", listener: (src: Readable) => void): this; - prependListener(event: "unpipe", listener: (src: Readable) => void): this; - prependListener(event: string | symbol, listener: (...args: any[]) => void): this; - - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "drain", listener: () => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "finish", listener: () => void): this; - prependOnceListener(event: "pipe", listener: (src: Readable) => void): this; - prependOnceListener(event: "unpipe", listener: (src: Readable) => void): this; - prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; - - removeListener(event: "close", listener: () => void): this; - removeListener(event: "drain", listener: () => void): this; - removeListener(event: "error", listener: (err: Error) => void): this; - removeListener(event: "finish", listener: () => void): this; - removeListener(event: "pipe", listener: (src: Readable) => void): this; - removeListener(event: "unpipe", listener: (src: Readable) => void): this; - removeListener(event: string | symbol, listener: (...args: any[]) => void): this; - } - - interface DuplexOptions extends ReadableOptions, WritableOptions { - allowHalfOpen?: boolean; - readableObjectMode?: boolean; - writableObjectMode?: boolean; - readableHighWaterMark?: number; - writableHighWaterMark?: number; - read?(this: Duplex, size: number): void; - write?(this: Duplex, chunk: any, encoding: string, callback: (error?: Error | null) => void): void; - writev?(this: Duplex, chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; - final?(this: Duplex, callback: (error?: Error | null) => void): void; - destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void; - } - - // Note: Duplex extends both Readable and Writable. - class Duplex extends Readable implements Writable { - writable: boolean; - readonly writableHighWaterMark: number; - readonly writableLength: number; - constructor(opts?: DuplexOptions); - _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; - _writev?(chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; - _destroy(error: Error | null, callback: (error: Error | null) => void): void; - _final(callback: (error?: Error | null) => void): void; - write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; - write(chunk: any, encoding?: string, cb?: (error: Error | null | undefined) => void): boolean; - setDefaultEncoding(encoding: string): this; - end(cb?: () => void): void; - end(chunk: any, cb?: () => void): void; - end(chunk: any, encoding?: string, cb?: () => void): void; - cork(): void; - uncork(): void; - } - - type TransformCallback = (error?: Error, data?: any) => void; - - interface TransformOptions extends DuplexOptions { - read?(this: Transform, size: number): void; - write?(this: Transform, chunk: any, encoding: string, callback: (error?: Error | null) => void): void; - writev?(this: Transform, chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; - final?(this: Transform, callback: (error?: Error | null) => void): void; - destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void; - transform?(this: Transform, chunk: any, encoding: string, callback: TransformCallback): void; - flush?(this: Transform, callback: TransformCallback): void; - } - - class Transform extends Duplex { - constructor(opts?: TransformOptions); - _transform(chunk: any, encoding: string, callback: TransformCallback): void; - _flush(callback: TransformCallback): void; - } - - class PassThrough extends Transform { } - - interface FinishedOptions { - error?: boolean; - readable?: boolean; - writable?: boolean; - } - function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options: FinishedOptions, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; - function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; - namespace finished { - function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; - } - - function pipeline(stream1: NodeJS.ReadableStream, stream2: T, callback?: (err: NodeJS.ErrnoException | null) => void): T; - function pipeline(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: T, callback?: (err: NodeJS.ErrnoException | null) => void): T; - function pipeline( - stream1: NodeJS.ReadableStream, - stream2: NodeJS.ReadWriteStream, - stream3: NodeJS.ReadWriteStream, - stream4: T, - callback?: (err: NodeJS.ErrnoException | null) => void, - ): T; - function pipeline( - stream1: NodeJS.ReadableStream, - stream2: NodeJS.ReadWriteStream, - stream3: NodeJS.ReadWriteStream, - stream4: NodeJS.ReadWriteStream, - stream5: T, - callback?: (err: NodeJS.ErrnoException | null) => void, - ): T; - function pipeline( - streams: ReadonlyArray, - callback?: (err: NodeJS.ErrnoException | null) => void, - ): NodeJS.WritableStream; - function pipeline( - stream1: NodeJS.ReadableStream, - stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, - ...streams: Array void)>, - ): NodeJS.WritableStream; - namespace pipeline { - function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.WritableStream): Promise; - function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: NodeJS.WritableStream): Promise; - function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: NodeJS.ReadWriteStream, stream4: NodeJS.WritableStream): Promise; - function __promisify__( - stream1: NodeJS.ReadableStream, - stream2: NodeJS.ReadWriteStream, - stream3: NodeJS.ReadWriteStream, - stream4: NodeJS.ReadWriteStream, - stream5: NodeJS.WritableStream, - ): Promise; - function __promisify__(streams: ReadonlyArray): Promise; - function __promisify__( - stream1: NodeJS.ReadableStream, - stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, - ...streams: Array, - ): Promise; - } - - interface Pipe { - close(): void; - hasRef(): boolean; - ref(): void; - unref(): void; - } - } - - export = internal; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/string_decoder.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/string_decoder.d.ts deleted file mode 100644 index 762a4d8..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/string_decoder.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare module "string_decoder" { - interface NodeStringDecoder { - write(buffer: Buffer): string; - end(buffer?: Buffer): string; - } - const StringDecoder: { - new(encoding?: string): NodeStringDecoder; - }; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/timers.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/timers.d.ts deleted file mode 100644 index e64a673..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/timers.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare module "timers" { - function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; - namespace setTimeout { - function __promisify__(ms: number): Promise; - function __promisify__(ms: number, value: T): Promise; - } - function clearTimeout(timeoutId: NodeJS.Timeout): void; - function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; - function clearInterval(intervalId: NodeJS.Timeout): void; - function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; - namespace setImmediate { - function __promisify__(): Promise; - function __promisify__(value: T): Promise; - } - function clearImmediate(immediateId: NodeJS.Immediate): void; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/tls.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/tls.d.ts deleted file mode 100644 index 940332c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/tls.d.ts +++ /dev/null @@ -1,459 +0,0 @@ -declare module "tls" { - import * as crypto from "crypto"; - import * as dns from "dns"; - import * as net from "net"; - import * as stream from "stream"; - - const CLIENT_RENEG_LIMIT: number; - const CLIENT_RENEG_WINDOW: number; - - interface Certificate { - /** - * Country code. - */ - C: string; - /** - * Street. - */ - ST: string; - /** - * Locality. - */ - L: string; - /** - * Organization. - */ - O: string; - /** - * Organizational unit. - */ - OU: string; - /** - * Common name. - */ - CN: string; - } - - interface PeerCertificate { - subject: Certificate; - issuer: Certificate; - subjectaltname: string; - infoAccess: { [index: string]: string[] | undefined }; - modulus: string; - exponent: string; - valid_from: string; - valid_to: string; - fingerprint: string; - fingerprint256: string; - ext_key_usage: string[]; - serialNumber: string; - raw: Buffer; - } - - interface DetailedPeerCertificate extends PeerCertificate { - issuerCertificate: DetailedPeerCertificate; - } - - interface CipherNameAndProtocol { - /** - * The cipher name. - */ - name: string; - /** - * SSL/TLS protocol version. - */ - version: string; - } - - interface EphemeralKeyInfo { - /** - * The supported types are 'DH' and 'ECDH'. - */ - type: string; - /** - * The name property is available only when type is 'ECDH'. - */ - name?: string; - /** - * The size of parameter of an ephemeral key exchange. - */ - size: number; - } - - class TLSSocket extends net.Socket { - /** - * Construct a new tls.TLSSocket object from an existing TCP socket. - */ - constructor(socket: net.Socket, options?: { - /** - * An optional TLS context object from tls.createSecureContext() - */ - secureContext?: SecureContext, - /** - * If true the TLS socket will be instantiated in server-mode. - * Defaults to false. - */ - isServer?: boolean, - /** - * An optional net.Server instance. - */ - server?: net.Server, - /** - * If true the server will request a certificate from clients that - * connect and attempt to verify that certificate. Defaults to - * false. - */ - requestCert?: boolean, - /** - * If true the server will reject any connection which is not - * authorized with the list of supplied CAs. This option only has an - * effect if requestCert is true. Defaults to false. - */ - rejectUnauthorized?: boolean, - /** - * An array of strings or a Buffer naming possible NPN protocols. - * (Protocols should be ordered by their priority.) - */ - NPNProtocols?: ReadonlyArray | ReadonlyArray | ReadonlyArray | Buffer | Uint8Array, - /** - * An array of strings or a Buffer naming possible ALPN protocols. - * (Protocols should be ordered by their priority.) When the server - * receives both NPN and ALPN extensions from the client, ALPN takes - * precedence over NPN and the server does not send an NPN extension - * to the client. - */ - ALPNProtocols?: ReadonlyArray | ReadonlyArray | ReadonlyArray | Buffer | Uint8Array, - /** - * SNICallback(servername, cb) A function that will be - * called if the client supports SNI TLS extension. Two arguments - * will be passed when called: servername and cb. SNICallback should - * invoke cb(null, ctx), where ctx is a SecureContext instance. - * (tls.createSecureContext(...) can be used to get a proper - * SecureContext.) If SNICallback wasn't provided the default callback - * with high-level API will be used (see below). - */ - SNICallback?: (servername: string, cb: (err: Error | null, ctx: SecureContext) => void) => void, - /** - * An optional Buffer instance containing a TLS session. - */ - session?: Buffer, - /** - * If true, specifies that the OCSP status request extension will be - * added to the client hello and an 'OCSPResponse' event will be - * emitted on the socket before establishing a secure communication - */ - requestOCSP?: boolean - }); - - /** - * A boolean that is true if the peer certificate was signed by one of the specified CAs, otherwise false. - */ - authorized: boolean; - /** - * The reason why the peer's certificate has not been verified. - * This property becomes available only when tlsSocket.authorized === false. - */ - authorizationError: Error; - /** - * Static boolean value, always true. - * May be used to distinguish TLS sockets from regular ones. - */ - encrypted: boolean; - - /** - * String containing the selected ALPN protocol. - * When ALPN has no selected protocol, tlsSocket.alpnProtocol equals false. - */ - alpnProtocol?: string; - - /** - * Returns an object representing the cipher name and the SSL/TLS protocol version of the current connection. - * @returns Returns an object representing the cipher name - * and the SSL/TLS protocol version of the current connection. - */ - getCipher(): CipherNameAndProtocol; - /** - * Returns an object representing the type, name, and size of parameter - * of an ephemeral key exchange in Perfect Forward Secrecy on a client - * connection. It returns an empty object when the key exchange is not - * ephemeral. As this is only supported on a client socket; null is - * returned if called on a server socket. The supported types are 'DH' - * and 'ECDH'. The name property is available only when type is 'ECDH'. - * - * For example: { type: 'ECDH', name: 'prime256v1', size: 256 }. - */ - getEphemeralKeyInfo(): EphemeralKeyInfo | object | null; - /** - * Returns the latest Finished message that has - * been sent to the socket as part of a SSL/TLS handshake, or undefined - * if no Finished message has been sent yet. - * - * As the Finished messages are message digests of the complete - * handshake (with a total of 192 bits for TLS 1.0 and more for SSL - * 3.0), they can be used for external authentication procedures when - * the authentication provided by SSL/TLS is not desired or is not - * enough. - * - * Corresponds to the SSL_get_finished routine in OpenSSL and may be - * used to implement the tls-unique channel binding from RFC 5929. - */ - getFinished(): Buffer | undefined; - /** - * Returns an object representing the peer's certificate. - * The returned object has some properties corresponding to the field of the certificate. - * If detailed argument is true the full chain with issuer property will be returned, - * if false only the top certificate without issuer property. - * If the peer does not provide a certificate, it returns null or an empty object. - * @param detailed - If true; the full chain with issuer property will be returned. - * @returns An object representing the peer's certificate. - */ - getPeerCertificate(detailed: true): DetailedPeerCertificate; - getPeerCertificate(detailed?: false): PeerCertificate; - getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate; - /** - * Returns the latest Finished message that is expected or has actually - * been received from the socket as part of a SSL/TLS handshake, or - * undefined if there is no Finished message so far. - * - * As the Finished messages are message digests of the complete - * handshake (with a total of 192 bits for TLS 1.0 and more for SSL - * 3.0), they can be used for external authentication procedures when - * the authentication provided by SSL/TLS is not desired or is not - * enough. - * - * Corresponds to the SSL_get_peer_finished routine in OpenSSL and may - * be used to implement the tls-unique channel binding from RFC 5929. - */ - getPeerFinished(): Buffer | undefined; - /** - * Returns a string containing the negotiated SSL/TLS protocol version of the current connection. - * The value `'unknown'` will be returned for connected sockets that have not completed the handshaking process. - * The value `null` will be returned for server sockets or disconnected client sockets. - * See https://www.openssl.org/docs/man1.0.2/ssl/SSL_get_version.html for more information. - * @returns negotiated SSL/TLS protocol version of the current connection - */ - getProtocol(): string | null; - /** - * Could be used to speed up handshake establishment when reconnecting to the server. - * @returns ASN.1 encoded TLS session or undefined if none was negotiated. - */ - getSession(): any; - /** - * NOTE: Works only with client TLS sockets. - * Useful only for debugging, for session reuse provide session option to tls.connect(). - * @returns TLS session ticket or undefined if none was negotiated. - */ - getTLSTicket(): any; - /** - * Returns true if the session was reused, false otherwise. - */ - isSessionReused(): boolean; - /** - * Initiate TLS renegotiation process. - * - * NOTE: Can be used to request peer's certificate after the secure connection has been established. - * ANOTHER NOTE: When running as the server, socket will be destroyed with an error after handshakeTimeout timeout. - * @param options - The options may contain the following fields: rejectUnauthorized, - * requestCert (See tls.createServer() for details). - * @param callback - callback(err) will be executed with null as err, once the renegotiation - * is successfully completed. - */ - renegotiate(options: { rejectUnauthorized?: boolean, requestCert?: boolean }, callback: (err: Error | null) => void): any; - /** - * Set maximum TLS fragment size (default and maximum value is: 16384, minimum is: 512). - * Smaller fragment size decreases buffering latency on the client: large fragments are buffered by - * the TLS layer until the entire fragment is received and its integrity is verified; - * large fragments can span multiple roundtrips, and their processing can be delayed due to packet - * loss or reordering. However, smaller fragments add extra TLS framing bytes and CPU overhead, - * which may decrease overall server throughput. - * @param size - TLS fragment size (default and maximum value is: 16384, minimum is: 512). - * @returns Returns true on success, false otherwise. - */ - setMaxSendFragment(size: number): boolean; - - /** - * Disables TLS renegotiation for this TLSSocket instance. Once called, - * attempts to renegotiate will trigger an 'error' event on the - * TLSSocket. - */ - disableRenegotiation(): void; - - /** - * events.EventEmitter - * 1. OCSPResponse - * 2. secureConnect - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; - addListener(event: "secureConnect", listener: () => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "OCSPResponse", response: Buffer): boolean; - emit(event: "secureConnect"): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "OCSPResponse", listener: (response: Buffer) => void): this; - on(event: "secureConnect", listener: () => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "OCSPResponse", listener: (response: Buffer) => void): this; - once(event: "secureConnect", listener: () => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; - prependListener(event: "secureConnect", listener: () => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; - prependOnceListener(event: "secureConnect", listener: () => void): this; - } - - interface TlsOptions extends SecureContextOptions { - handshakeTimeout?: number; - requestCert?: boolean; - rejectUnauthorized?: boolean; - NPNProtocols?: string[] | Buffer[] | Uint8Array[] | Buffer | Uint8Array; - ALPNProtocols?: string[] | Buffer[] | Uint8Array[] | Buffer | Uint8Array; - SNICallback?: (servername: string, cb: (err: Error | null, ctx: SecureContext) => void) => void; - sessionTimeout?: number; - ticketKeys?: Buffer; - } - - interface ConnectionOptions extends SecureContextOptions { - host?: string; - port?: number; - path?: string; // Creates unix socket connection to path. If this option is specified, `host` and `port` are ignored. - socket?: net.Socket; // Establish secure connection on a given socket rather than creating a new socket - rejectUnauthorized?: boolean; // Defaults to true - NPNProtocols?: string[] | Buffer[] | Uint8Array[] | Buffer | Uint8Array; - ALPNProtocols?: string[] | Buffer[] | Uint8Array[] | Buffer | Uint8Array; - checkServerIdentity?: typeof checkServerIdentity; - servername?: string; // SNI TLS Extension - session?: Buffer; - minDHSize?: number; - secureContext?: SecureContext; // If not provided, the entire ConnectionOptions object will be passed to tls.createSecureContext() - lookup?: net.LookupFunction; - } - - class Server extends net.Server { - /** - * The server.addContext() method adds a secure context that will be - * used if the client request's SNI name matches the supplied hostname - * (or wildcard). - */ - addContext(hostName: string, credentials: { - key: string; - cert: string; - ca: string; - }): void; - /** - * Returns the session ticket keys. - */ - getTicketKeys(): Buffer; - /** - * The server.setSecureContext() method replaces the secure context of - * an existing server. Existing connections to the server are not - * interrupted. - */ - setTicketKeys(keys: Buffer): void; - - /** - * events.EventEmitter - * 1. tlsClientError - * 2. newSession - * 3. OCSPRequest - * 4. resumeSession - * 5. secureConnection - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; - addListener(event: "newSession", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this; - addListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this; - addListener(event: "resumeSession", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this; - addListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; - - emit(event: string | symbol, ...args: any[]): boolean; - emit(event: "tlsClientError", err: Error, tlsSocket: TLSSocket): boolean; - emit(event: "newSession", sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void): boolean; - emit(event: "OCSPRequest", certificate: Buffer, issuer: Buffer, callback: Function): boolean; - emit(event: "resumeSession", sessionId: any, callback: (err: Error, sessionData: any) => void): boolean; - emit(event: "secureConnection", tlsSocket: TLSSocket): boolean; - - on(event: string, listener: (...args: any[]) => void): this; - on(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; - on(event: "newSession", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this; - on(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this; - on(event: "resumeSession", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this; - on(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; - - once(event: string, listener: (...args: any[]) => void): this; - once(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; - once(event: "newSession", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this; - once(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this; - once(event: "resumeSession", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this; - once(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; - - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; - prependListener(event: "newSession", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this; - prependListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this; - prependListener(event: "resumeSession", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this; - prependListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; - - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; - prependOnceListener(event: "newSession", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this; - prependOnceListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this; - prependOnceListener(event: "resumeSession", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this; - prependOnceListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; - } - - interface SecurePair { - encrypted: any; - cleartext: any; - } - - interface SecureContextOptions { - pfx?: string | Buffer | Array; - key?: string | Buffer | Array; - passphrase?: string; - cert?: string | Buffer | Array; - ca?: string | Buffer | Array; - ciphers?: string; - honorCipherOrder?: boolean; - ecdhCurve?: string; - clientCertEngine?: string; - crl?: string | Buffer | Array; - dhparam?: string | Buffer; - secureOptions?: number; // Value is a numeric bitmask of the `SSL_OP_*` options - secureProtocol?: string; // SSL Method, e.g. SSLv23_method - sessionIdContext?: string; - } - - interface SecureContext { - context: any; - } - - /* - * Verifies the certificate `cert` is issued to host `host`. - * @host The hostname to verify the certificate against - * @cert PeerCertificate representing the peer's certificate - * - * Returns Error object, populating it with the reason, host and cert on failure. On success, returns undefined. - */ - function checkServerIdentity(host: string, cert: PeerCertificate): Error | undefined; - function createServer(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void): Server; - function connect(options: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; - function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; - function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; - function createSecurePair(credentials?: crypto.Credentials, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair; - function createSecureContext(options?: SecureContextOptions): SecureContext; - function getCiphers(): string[]; - - /** - * The default curve name to use for ECDH key agreement in a tls server. - * The default value is 'auto'. See tls.createSecureContext() for further - * information. - */ - let DEFAULT_ECDH_CURVE: string; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/trace_events.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/trace_events.d.ts deleted file mode 100644 index 9d1a59b..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/trace_events.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -declare module "trace_events" { - /** - * The `Tracing` object is used to enable or disable tracing for sets of - * categories. Instances are created using the - * `trace_events.createTracing()` method. - * - * When created, the `Tracing` object is disabled. Calling the - * `tracing.enable()` method adds the categories to the set of enabled trace - * event categories. Calling `tracing.disable()` will remove the categories - * from the set of enabled trace event categories. - */ - export interface Tracing { - /** - * A comma-separated list of the trace event categories covered by this - * `Tracing` object. - */ - readonly categories: string; - - /** - * Disables this `Tracing` object. - * - * Only trace event categories _not_ covered by other enabled `Tracing` - * objects and _not_ specified by the `--trace-event-categories` flag - * will be disabled. - */ - disable(): void; - - /** - * Enables this `Tracing` object for the set of categories covered by - * the `Tracing` object. - */ - enable(): void; - - /** - * `true` only if the `Tracing` object has been enabled. - */ - readonly enabled: boolean; - } - - interface CreateTracingOptions { - /** - * An array of trace category names. Values included in the array are - * coerced to a string when possible. An error will be thrown if the - * value cannot be coerced. - */ - categories: string[]; - } - - /** - * Creates and returns a Tracing object for the given set of categories. - */ - export function createTracing(options: CreateTracingOptions): Tracing; - - /** - * Returns a comma-separated list of all currently-enabled trace event - * categories. The current set of enabled trace event categories is - * determined by the union of all currently-enabled `Tracing` objects and - * any categories enabled using the `--trace-event-categories` flag. - */ - export function getEnabledCategories(): string; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/assert.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/assert.d.ts deleted file mode 100644 index 0e0c269..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/assert.d.ts +++ /dev/null @@ -1,69 +0,0 @@ -declare module 'assert' { - function assert(value: any, message?: string | Error): void; - namespace assert { - class AssertionError implements Error { - name: string; - message: string; - actual: any; - expected: any; - operator: string; - generatedMessage: boolean; - code: 'ERR_ASSERTION'; - - constructor(options?: { - message?: string; - actual?: any; - expected?: any; - operator?: string; - stackStartFn?: Function; - }); - } - - function fail(message?: string | Error): never; - /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ - function fail( - actual: any, - expected: any, - message?: string | Error, - operator?: string, - stackStartFn?: Function, - ): never; - function ok(value: any, message?: string | Error): void; - /** @deprecated since v9.9.0 - use strictEqual() instead. */ - function equal(actual: any, expected: any, message?: string | Error): void; - /** @deprecated since v9.9.0 - use notStrictEqual() instead. */ - function notEqual(actual: any, expected: any, message?: string | Error): void; - /** @deprecated since v9.9.0 - use deepStrictEqual() instead. */ - function deepEqual(actual: any, expected: any, message?: string | Error): void; - /** @deprecated since v9.9.0 - use notDeepStrictEqual() instead. */ - function notDeepEqual(actual: any, expected: any, message?: string | Error): void; - function strictEqual(actual: any, expected: any, message?: string | Error): void; - function notStrictEqual(actual: any, expected: any, message?: string | Error): void; - function deepStrictEqual(actual: any, expected: any, message?: string | Error): void; - function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void; - - function throws(block: Function, message?: string | Error): void; - function throws(block: Function, error: RegExp | Function | Object | Error, message?: string | Error): void; - function doesNotThrow(block: Function, message?: string | Error): void; - function doesNotThrow(block: Function, error: RegExp | Function, message?: string | Error): void; - - function ifError(value: any): void; - - function rejects(block: Function | Promise, message?: string | Error): Promise; - function rejects( - block: Function | Promise, - error: RegExp | Function | Object | Error, - message?: string | Error, - ): Promise; - function doesNotReject(block: Function | Promise, message?: string | Error): Promise; - function doesNotReject( - block: Function | Promise, - error: RegExp | Function, - message?: string | Error, - ): Promise; - - const strict: typeof assert; - } - - export = assert; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/base.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/base.d.ts deleted file mode 100644 index 7811900..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/base.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// NOTE: These definitions support NodeJS and TypeScript 3.2. - -// NOTE: TypeScript version-specific augmentations can be found in the following paths: -// - ~/base.d.ts - Shared definitions common to all TypeScript versions -// - ~/index.d.ts - Definitions specific to TypeScript 2.1 -// - ~/ts3.2/base.d.ts - Definitions specific to TypeScript 3.2 -// - ~/ts3.2/index.d.ts - Definitions specific to TypeScript 3.2 with assert pulled in - -// Reference required types from the default lib: -/// -/// -/// -/// - -// base definitions for all NodeJS modules that are not specific to any version of TypeScript -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/index.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/index.d.ts deleted file mode 100644 index bc0357f..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/ts3.6/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -// NOTE: These definitions support NodeJS and TypeScript 3.2. -// This is required to enable typing assert in ts3.7 without causing errors -// Typically type modifications should be made in base.d.ts instead of here - -/// -/// diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/tty.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/tty.d.ts deleted file mode 100644 index 55c0c36..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/tty.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -declare module "tty" { - import * as net from "net"; - - function isatty(fd: number): boolean; - class ReadStream extends net.Socket { - constructor(fd: number, options?: net.SocketConstructorOpts); - isRaw: boolean; - setRawMode(mode: boolean): this; - isTTY: boolean; - } - class WriteStream extends net.Socket { - constructor(fd: number); - columns: number; - rows: number; - isTTY: boolean; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/url.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/url.d.ts deleted file mode 100644 index 9d1af9e..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/url.d.ts +++ /dev/null @@ -1,104 +0,0 @@ -declare module "url" { - import { ParsedUrlQuery } from 'querystring'; - - interface UrlObjectCommon { - auth?: string; - hash?: string; - host?: string; - hostname?: string; - href?: string; - pathname?: string; - protocol?: string; - search?: string; - slashes?: boolean; - } - - // Input to `url.format` - interface UrlObject extends UrlObjectCommon { - port?: string | number; - query?: string | null | { [key: string]: any }; - } - - // Output of `url.parse` - interface Url extends UrlObjectCommon { - port?: string; - query?: string | null | ParsedUrlQuery; - path?: string; - } - - interface UrlWithParsedQuery extends Url { - query: ParsedUrlQuery; - } - - interface UrlWithStringQuery extends Url { - query: string | null; - } - - function parse(urlStr: string): UrlWithStringQuery; - function parse(urlStr: string, parseQueryString: false | undefined, slashesDenoteHost?: boolean): UrlWithStringQuery; - function parse(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery; - function parse(urlStr: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url; - - function format(URL: URL, options?: URLFormatOptions): string; - function format(urlObject: UrlObject | string): string; - function resolve(from: string, to: string): string; - - function domainToASCII(domain: string): string; - function domainToUnicode(domain: string): string; - - /** - * This function ensures the correct decodings of percent-encoded characters as - * well as ensuring a cross-platform valid absolute path string. - * @param url The file URL string or URL object to convert to a path. - */ - function fileURLToPath(url: string | URL): string; - - /** - * This function ensures that path is resolved absolutely, and that the URL - * control characters are correctly encoded when converting into a File URL. - * @param url The path to convert to a File URL. - */ - function pathToFileURL(url: string): URL; - - interface URLFormatOptions { - auth?: boolean; - fragment?: boolean; - search?: boolean; - unicode?: boolean; - } - - class URL { - constructor(input: string, base?: string | URL); - hash: string; - host: string; - hostname: string; - href: string; - readonly origin: string; - password: string; - pathname: string; - port: string; - protocol: string; - search: string; - readonly searchParams: URLSearchParams; - username: string; - toString(): string; - toJSON(): string; - } - - class URLSearchParams implements Iterable<[string, string]> { - constructor(init?: URLSearchParams | string | { [key: string]: string | ReadonlyArray | undefined } | Iterable<[string, string]> | ReadonlyArray<[string, string]>); - append(name: string, value: string): void; - delete(name: string): void; - entries(): IterableIterator<[string, string]>; - forEach(callback: (value: string, name: string, searchParams: this) => void): void; - get(name: string): string | null; - getAll(name: string): string[]; - has(name: string): boolean; - keys(): IterableIterator; - set(name: string, value: string): void; - sort(): void; - toString(): string; - values(): IterableIterator; - [Symbol.iterator](): IterableIterator<[string, string]>; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/util.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/util.d.ts deleted file mode 100644 index 981c4d3..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/util.d.ts +++ /dev/null @@ -1,175 +0,0 @@ -declare module "util" { - interface InspectOptions extends NodeJS.InspectOptions { } - function format(format: any, ...param: any[]): string; - function formatWithOptions(inspectOptions: InspectOptions, format: string, ...param: any[]): string; - /** @deprecated since v0.11.3 - use `console.error()` instead. */ - function debug(string: string): void; - /** @deprecated since v0.11.3 - use `console.error()` instead. */ - function error(...param: any[]): void; - /** @deprecated since v0.11.3 - use `console.log()` instead. */ - function puts(...param: any[]): void; - /** @deprecated since v0.11.3 - use `console.log()` instead. */ - function print(...param: any[]): void; - /** @deprecated since v0.11.3 - use a third party module instead. */ - function log(string: string): void; - function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string; - function inspect(object: any, options: InspectOptions): string; - namespace inspect { - let colors: { - [color: string]: [number, number] | undefined - }; - const custom: unique symbol; - let styles: { - [style: string]: string | undefined - }; - let defaultOptions: InspectOptions; - } - /** @deprecated since v4.0.0 - use `Array.isArray()` instead. */ - function isArray(object: any): object is any[]; - /** @deprecated since v4.0.0 - use `util.types.isRegExp()` instead. */ - function isRegExp(object: any): object is RegExp; - /** @deprecated since v4.0.0 - use `util.types.isDate()` instead. */ - function isDate(object: any): object is Date; - /** @deprecated since v4.0.0 - use `util.types.isNativeError()` instead. */ - function isError(object: any): object is Error; - function inherits(constructor: any, superConstructor: any): void; - function debuglog(key: string): (msg: string, ...param: any[]) => void; - /** @deprecated since v4.0.0 - use `typeof value === 'boolean'` instead. */ - function isBoolean(object: any): object is boolean; - /** @deprecated since v4.0.0 - use `Buffer.isBuffer()` instead. */ - function isBuffer(object: any): object is Buffer; - /** @deprecated since v4.0.0 - use `typeof value === 'function'` instead. */ - function isFunction(object: any): boolean; - /** @deprecated since v4.0.0 - use `value === null` instead. */ - function isNull(object: any): object is null; - /** @deprecated since v4.0.0 - use `value === null || value === undefined` instead. */ - function isNullOrUndefined(object: any): object is null | undefined; - /** @deprecated since v4.0.0 - use `typeof value === 'number'` instead. */ - function isNumber(object: any): object is number; - /** @deprecated since v4.0.0 - use `value !== null && typeof value === 'object'` instead. */ - function isObject(object: any): boolean; - /** @deprecated since v4.0.0 - use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead. */ - function isPrimitive(object: any): boolean; - /** @deprecated since v4.0.0 - use `typeof value === 'string'` instead. */ - function isString(object: any): object is string; - /** @deprecated since v4.0.0 - use `typeof value === 'symbol'` instead. */ - function isSymbol(object: any): object is symbol; - /** @deprecated since v4.0.0 - use `value === undefined` instead. */ - function isUndefined(object: any): object is undefined; - function deprecate(fn: T, message: string, code?: string): T; - function isDeepStrictEqual(val1: any, val2: any): boolean; - - interface CustomPromisify extends Function { - __promisify__: TCustom; - } - - function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException) => void) => void; - function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - function callbackify(fn: (arg1: T1) => Promise): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void; - function callbackify(fn: (arg1: T1) => Promise): (arg1: T1, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - function callbackify(fn: (arg1: T1, arg2: T2) => Promise): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void; - function callbackify(fn: (arg1: T1, arg2: T2) => Promise): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - function callbackify(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void; - function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3) => Promise): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void; - function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void; - function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise, - ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise, - ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void; - function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise - ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - - function promisify(fn: CustomPromisify): TCustom; - function promisify(fn: (callback: (err: Error | null, result: TResult) => void) => void): () => Promise; - function promisify(fn: (callback: (err?: Error | null) => void) => void): () => Promise; - function promisify(fn: (arg1: T1, callback: (err: Error | null, result: TResult) => void) => void): (arg1: T1) => Promise; - function promisify(fn: (arg1: T1, callback: (err?: Error | null) => void) => void): (arg1: T1) => Promise; - function promisify(fn: (arg1: T1, arg2: T2, callback: (err: Error | null, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise; - function promisify(fn: (arg1: T1, arg2: T2, callback: (err?: Error | null) => void) => void): (arg1: T1, arg2: T2) => Promise; - function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: Error | null, result: TResult) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise; - function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: Error | null) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise; - function promisify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: Error | null, result: TResult) => void) => void, - ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; - function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: Error | null) => void) => void): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; - function promisify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: Error | null, result: TResult) => void) => void, - ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; - function promisify( - fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: Error | null) => void) => void, - ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; - function promisify(fn: Function): Function; - - namespace types { - const custom: unique symbol; - function isAnyArrayBuffer(object: any): boolean; - function isArgumentsObject(object: any): object is IArguments; - function isArrayBuffer(object: any): object is ArrayBuffer; - function isArrayBufferView(object: any): object is ArrayBufferView; - function isAsyncFunction(object: any): boolean; - function isBigInt64Array(value: any): value is BigInt64Array; - function isBigUint64Array(value: any): value is BigUint64Array; - function isBooleanObject(object: any): object is Boolean; - function isBoxedPrimitive(object: any): object is (Number | Boolean | String | Symbol /* | Object(BigInt) | Object(Symbol) */); - function isDataView(object: any): object is DataView; - function isDate(object: any): object is Date; - function isExternal(object: any): boolean; - function isFloat32Array(object: any): object is Float32Array; - function isFloat64Array(object: any): object is Float64Array; - function isGeneratorFunction(object: any): boolean; - function isGeneratorObject(object: any): boolean; - function isInt8Array(object: any): object is Int8Array; - function isInt16Array(object: any): object is Int16Array; - function isInt32Array(object: any): object is Int32Array; - function isMap(object: any): boolean; - function isMapIterator(object: any): boolean; - function isModuleNamespaceObject(value: any): boolean; - function isNativeError(object: any): object is Error; - function isNumberObject(object: any): object is Number; - function isPromise(object: any): boolean; - function isProxy(object: any): boolean; - function isRegExp(object: any): object is RegExp; - function isSet(object: any): boolean; - function isSetIterator(object: any): boolean; - function isSharedArrayBuffer(object: any): boolean; - function isStringObject(object: any): boolean; - function isSymbolObject(object: any): boolean; - function isTypedArray(object: any): object is NodeJS.TypedArray; - function isUint8Array(object: any): object is Uint8Array; - function isUint8ClampedArray(object: any): object is Uint8ClampedArray; - function isUint16Array(object: any): object is Uint16Array; - function isUint32Array(object: any): object is Uint32Array; - function isWeakMap(object: any): boolean; - function isWeakSet(object: any): boolean; - function isWebAssemblyCompiledModule(object: any): boolean; - } - - class TextDecoder { - readonly encoding: string; - readonly fatal: boolean; - readonly ignoreBOM: boolean; - constructor( - encoding?: string, - options?: { fatal?: boolean; ignoreBOM?: boolean } - ); - decode( - input?: NodeJS.TypedArray | DataView | ArrayBuffer | null, - options?: { stream?: boolean } - ): string; - } - - class TextEncoder { - readonly encoding: string; - constructor(); - encode(input?: string): Uint8Array; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/v8.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/v8.d.ts deleted file mode 100644 index ee5f707..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/v8.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -declare module "v8" { - interface HeapSpaceInfo { - space_name: string; - space_size: number; - space_used_size: number; - space_available_size: number; - physical_space_size: number; - } - - // ** Signifies if the --zap_code_space option is enabled or not. 1 == enabled, 0 == disabled. */ - type DoesZapCodeSpaceFlag = 0 | 1; - - interface HeapInfo { - total_heap_size: number; - total_heap_size_executable: number; - total_physical_size: number; - total_available_size: number; - used_heap_size: number; - heap_size_limit: number; - malloced_memory: number; - peak_malloced_memory: number; - does_zap_garbage: DoesZapCodeSpaceFlag; - } - - function getHeapStatistics(): HeapInfo; - function getHeapSpaceStatistics(): HeapSpaceInfo[]; - function setFlagsFromString(flags: string): void; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/vm.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/vm.d.ts deleted file mode 100644 index 9a11af3..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/vm.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -declare module "vm" { - interface Context { - [key: string]: any; - } - interface BaseOptions { - /** - * Specifies the filename used in stack traces produced by this script. - * Default: `''`. - */ - filename?: string; - /** - * Specifies the line number offset that is displayed in stack traces produced by this script. - * Default: `0`. - */ - lineOffset?: number; - /** - * Specifies the column number offset that is displayed in stack traces produced by this script. - * Default: `0` - */ - columnOffset?: number; - } - interface ScriptOptions extends BaseOptions { - displayErrors?: boolean; - timeout?: number; - cachedData?: Buffer; - produceCachedData?: boolean; - } - interface RunningScriptOptions extends BaseOptions { - /** - * When `true`, if an `Error` occurs while compiling the `code`, the line of code causing the error is attached to the stack trace. - * Default: `true`. - */ - displayErrors?: boolean; - /** - * Specifies the number of milliseconds to execute code before terminating execution. - * If execution is terminated, an `Error` will be thrown. This value must be a strictly positive integer. - */ - timeout?: number; - /** - * If `true`, the execution will be terminated when `SIGINT` (Ctrl+C) is received. - * Existing handlers for the event that have been attached via `process.on('SIGINT')` will be disabled during script execution, but will continue to work after that. - * If execution is terminated, an `Error` will be thrown. - * Default: `false`. - */ - breakOnSigint?: boolean; - } - interface CompileFunctionOptions extends BaseOptions { - /** - * Provides an optional data with V8's code cache data for the supplied source. - */ - cachedData?: Buffer; - /** - * Specifies whether to produce new cache data. - * Default: `false`, - */ - produceCachedData?: boolean; - /** - * The sandbox/context in which the said function should be compiled in. - */ - parsingContext?: Context; - - /** - * An array containing a collection of context extensions (objects wrapping the current scope) to be applied while compiling - */ - contextExtensions?: Object[]; - } - class Script { - constructor(code: string, options?: ScriptOptions); - runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any; - runInNewContext(sandbox?: Context, options?: RunningScriptOptions): any; - runInThisContext(options?: RunningScriptOptions): any; - } - function createContext(sandbox?: Context): Context; - function isContext(sandbox: Context): boolean; - function runInContext(code: string, contextifiedSandbox: Context, options?: RunningScriptOptions | string): any; - function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions | string): any; - function runInThisContext(code: string, options?: RunningScriptOptions | string): any; - function compileFunction(code: string, params?: ReadonlyArray, options?: CompileFunctionOptions): Function; -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/worker_threads.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/worker_threads.d.ts deleted file mode 100644 index a044824..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/worker_threads.d.ts +++ /dev/null @@ -1,124 +0,0 @@ -declare module "worker_threads" { - import { EventEmitter } from "events"; - import { Readable, Writable } from "stream"; - - const isMainThread: boolean; - const parentPort: null | MessagePort; - const threadId: number; - const workerData: any; - - class MessageChannel { - readonly port1: MessagePort; - readonly port2: MessagePort; - } - - class MessagePort extends EventEmitter { - close(): void; - postMessage(value: any, transferList?: ReadonlyArray): void; - ref(): void; - unref(): void; - start(): void; - - addListener(event: "close", listener: () => void): this; - addListener(event: "message", listener: (value: any) => void): this; - addListener(event: string | symbol, listener: (...args: any[]) => void): this; - - emit(event: "close"): boolean; - emit(event: "message", value: any): boolean; - emit(event: string | symbol, ...args: any[]): boolean; - - on(event: "close", listener: () => void): this; - on(event: "message", listener: (value: any) => void): this; - on(event: string | symbol, listener: (...args: any[]) => void): this; - - once(event: "close", listener: () => void): this; - once(event: "message", listener: (value: any) => void): this; - once(event: string | symbol, listener: (...args: any[]) => void): this; - - prependListener(event: "close", listener: () => void): this; - prependListener(event: "message", listener: (value: any) => void): this; - prependListener(event: string | symbol, listener: (...args: any[]) => void): this; - - prependOnceListener(event: "close", listener: () => void): this; - prependOnceListener(event: "message", listener: (value: any) => void): this; - prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; - - removeListener(event: "close", listener: () => void): this; - removeListener(event: "message", listener: (value: any) => void): this; - removeListener(event: string | symbol, listener: (...args: any[]) => void): this; - - off(event: "close", listener: () => void): this; - off(event: "message", listener: (value: any) => void): this; - off(event: string | symbol, listener: (...args: any[]) => void): this; - } - - interface WorkerOptions { - eval?: boolean; - workerData?: any; - stdin?: boolean; - stdout?: boolean; - stderr?: boolean; - } - - class Worker extends EventEmitter { - readonly stdin: Writable | null; - readonly stdout: Readable; - readonly stderr: Readable; - readonly threadId: number; - - constructor(filename: string, options?: WorkerOptions); - - postMessage(value: any, transferList?: ReadonlyArray): void; - ref(): void; - unref(): void; - terminate(callback?: (err: any, exitCode: number) => void): void; - - addListener(event: "error", listener: (err: any) => void): this; - addListener(event: "exit", listener: (exitCode: number) => void): this; - addListener(event: "message", listener: (value: any) => void): this; - addListener(event: "online", listener: () => void): this; - addListener(event: string | symbol, listener: (...args: any[]) => void): this; - - emit(event: "error", err: any): boolean; - emit(event: "exit", exitCode: number): boolean; - emit(event: "message", value: any): boolean; - emit(event: "online"): boolean; - emit(event: string | symbol, ...args: any[]): boolean; - - on(event: "error", listener: (err: any) => void): this; - on(event: "exit", listener: (exitCode: number) => void): this; - on(event: "message", listener: (value: any) => void): this; - on(event: "online", listener: () => void): this; - on(event: string | symbol, listener: (...args: any[]) => void): this; - - once(event: "error", listener: (err: any) => void): this; - once(event: "exit", listener: (exitCode: number) => void): this; - once(event: "message", listener: (value: any) => void): this; - once(event: "online", listener: () => void): this; - once(event: string | symbol, listener: (...args: any[]) => void): this; - - prependListener(event: "error", listener: (err: any) => void): this; - prependListener(event: "exit", listener: (exitCode: number) => void): this; - prependListener(event: "message", listener: (value: any) => void): this; - prependListener(event: "online", listener: () => void): this; - prependListener(event: string | symbol, listener: (...args: any[]) => void): this; - - prependOnceListener(event: "error", listener: (err: any) => void): this; - prependOnceListener(event: "exit", listener: (exitCode: number) => void): this; - prependOnceListener(event: "message", listener: (value: any) => void): this; - prependOnceListener(event: "online", listener: () => void): this; - prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; - - removeListener(event: "error", listener: (err: any) => void): this; - removeListener(event: "exit", listener: (exitCode: number) => void): this; - removeListener(event: "message", listener: (value: any) => void): this; - removeListener(event: "online", listener: () => void): this; - removeListener(event: string | symbol, listener: (...args: any[]) => void): this; - - off(event: "error", listener: (err: any) => void): this; - off(event: "exit", listener: (exitCode: number) => void): this; - off(event: "message", listener: (value: any) => void): this; - off(event: "online", listener: () => void): this; - off(event: string | symbol, listener: (...args: any[]) => void): this; - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/zlib.d.ts b/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/zlib.d.ts deleted file mode 100644 index 467783a..0000000 --- a/gateway/node_modules/@apollo/protobufjs/node_modules/@types/node/zlib.d.ts +++ /dev/null @@ -1,327 +0,0 @@ -declare module "zlib" { - import * as stream from "stream"; - - interface ZlibOptions { - flush?: number; // default: zlib.constants.Z_NO_FLUSH - finishFlush?: number; // default: zlib.constants.Z_FINISH - chunkSize?: number; // default: 16*1024 - windowBits?: number; - level?: number; // compression only - memLevel?: number; // compression only - strategy?: number; // compression only - dictionary?: Buffer | NodeJS.TypedArray | DataView | ArrayBuffer; // deflate/inflate only, empty dictionary by default - info?: boolean; - } - - interface BrotliOptions { - /** - * @default constants.BROTLI_OPERATION_PROCESS - */ - flush?: number; - /** - * @default constants.BROTLI_OPERATION_FINISH - */ - finishFlush?: number; - /** - * @default 16*1024 - */ - chunkSize?: number; - params?: { - /** - * Each key is a `constants.BROTLI_*` constant. - */ - [key: number]: boolean | number; - }; - } - - interface Zlib { - /** @deprecated Use bytesWritten instead. */ - readonly bytesRead: number; - readonly bytesWritten: number; - shell?: boolean | string; - close(callback?: () => void): void; - flush(kind?: number, callback?: () => void): void; - flush(callback?: () => void): void; - } - - interface ZlibParams { - params(level: number, strategy: number, callback: () => void): void; - } - - interface ZlibReset { - reset(): void; - } - - interface BrotliCompress extends stream.Transform, Zlib { } - interface BrotliDecompress extends stream.Transform, Zlib { } - interface Gzip extends stream.Transform, Zlib { } - interface Gunzip extends stream.Transform, Zlib { } - interface Deflate extends stream.Transform, Zlib, ZlibReset, ZlibParams { } - interface Inflate extends stream.Transform, Zlib, ZlibReset { } - interface DeflateRaw extends stream.Transform, Zlib, ZlibReset, ZlibParams { } - interface InflateRaw extends stream.Transform, Zlib, ZlibReset { } - interface Unzip extends stream.Transform, Zlib { } - - function createBrotliCompress(options?: BrotliOptions): BrotliCompress; - function createBrotliDecompress(options?: BrotliOptions): BrotliDecompress; - function createGzip(options?: ZlibOptions): Gzip; - function createGunzip(options?: ZlibOptions): Gunzip; - function createDeflate(options?: ZlibOptions): Deflate; - function createInflate(options?: ZlibOptions): Inflate; - function createDeflateRaw(options?: ZlibOptions): DeflateRaw; - function createInflateRaw(options?: ZlibOptions): InflateRaw; - function createUnzip(options?: ZlibOptions): Unzip; - - type InputType = string | Buffer | DataView | ArrayBuffer | NodeJS.TypedArray; - - type CompressCallback = (error: Error | null, result: Buffer) => void; - - function brotliCompress(buf: InputType, options: BrotliOptions, callback: CompressCallback): void; - function brotliCompress(buf: InputType, callback: CompressCallback): void; - namespace brotliCompress { - function __promisify__(buffer: InputType, options?: BrotliOptions): Promise; - } - - function brotliCompressSync(buf: InputType, options?: BrotliOptions): Buffer; - - function brotliDecompress(buf: InputType, options: BrotliOptions, callback: CompressCallback): void; - function brotliDecompress(buf: InputType, callback: CompressCallback): void; - namespace brotliDecompress { - function __promisify__(buffer: InputType, options?: BrotliOptions): Promise; - } - - function brotliDecompressSync(buf: InputType, options?: BrotliOptions): Buffer; - - function deflate(buf: InputType, callback: CompressCallback): void; - function deflate(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; - namespace deflate { - function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; - } - - function deflateSync(buf: InputType, options?: ZlibOptions): Buffer; - - function deflateRaw(buf: InputType, callback: CompressCallback): void; - function deflateRaw(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; - namespace deflateRaw { - function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; - } - - function deflateRawSync(buf: InputType, options?: ZlibOptions): Buffer; - - function gzip(buf: InputType, callback: CompressCallback): void; - function gzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; - namespace gzip { - function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; - } - - function gzipSync(buf: InputType, options?: ZlibOptions): Buffer; - - function gunzip(buf: InputType, callback: CompressCallback): void; - function gunzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; - namespace gunzip { - function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; - } - - function gunzipSync(buf: InputType, options?: ZlibOptions): Buffer; - - function inflate(buf: InputType, callback: CompressCallback): void; - function inflate(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; - namespace inflate { - function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; - } - - function inflateSync(buf: InputType, options?: ZlibOptions): Buffer; - - function inflateRaw(buf: InputType, callback: CompressCallback): void; - function inflateRaw(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; - namespace inflateRaw { - function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; - } - - function inflateRawSync(buf: InputType, options?: ZlibOptions): Buffer; - - function unzip(buf: InputType, callback: CompressCallback): void; - function unzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; - namespace unzip { - function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; - } - - function unzipSync(buf: InputType, options?: ZlibOptions): Buffer; - - namespace constants { - // Allowed flush values. - - const Z_NO_FLUSH: number; - const Z_PARTIAL_FLUSH: number; - const Z_SYNC_FLUSH: number; - const Z_FULL_FLUSH: number; - const Z_FINISH: number; - const Z_BLOCK: number; - const Z_TREES: number; - - // Return codes for the compression/decompression functions. Negative values are errors, positive values are used for special but normal events. - - const Z_OK: number; - const Z_STREAM_END: number; - const Z_NEED_DICT: number; - const Z_ERRNO: number; - const Z_STREAM_ERROR: number; - const Z_DATA_ERROR: number; - const Z_MEM_ERROR: number; - const Z_BUF_ERROR: number; - const Z_VERSION_ERROR: number; - - // Compression levels. - - const Z_NO_COMPRESSION: number; - const Z_BEST_SPEED: number; - const Z_BEST_COMPRESSION: number; - const Z_DEFAULT_COMPRESSION: number; - - // Compression strategy. - - const Z_FILTERED: number; - const Z_HUFFMAN_ONLY: number; - const Z_RLE: number; - const Z_FIXED: number; - const Z_DEFAULT_STRATEGY: number; - - const BROTLI_DECODE: number; - const BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: number; - const BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: number; - const BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: number; - const BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: number; - const BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: number; - const BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: number; - const BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: number; - const BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: number; - const BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: number; - const BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: number; - const BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: number; - const BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: number; - const BROTLI_DECODER_ERROR_FORMAT_DISTANCE: number; - const BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: number; - const BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: number; - const BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: number; - const BROTLI_DECODER_ERROR_FORMAT_PADDING_1: number; - const BROTLI_DECODER_ERROR_FORMAT_PADDING_2: number; - const BROTLI_DECODER_ERROR_FORMAT_RESERVED: number; - const BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: number; - const BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: number; - const BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: number; - const BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: number; - const BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: number; - const BROTLI_DECODER_ERROR_UNREACHABLE: number; - const BROTLI_DECODER_NEEDS_MORE_INPUT: number; - const BROTLI_DECODER_NEEDS_MORE_OUTPUT: number; - const BROTLI_DECODER_NO_ERROR: number; - const BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: number; - const BROTLI_DECODER_PARAM_LARGE_WINDOW: number; - const BROTLI_DECODER_RESULT_ERROR: number; - const BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: number; - const BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: number; - const BROTLI_DECODER_RESULT_SUCCESS: number; - const BROTLI_DECODER_SUCCESS: number; - - const BROTLI_DEFAULT_MODE: number; - const BROTLI_DEFAULT_QUALITY: number; - const BROTLI_DEFAULT_WINDOW: number; - const BROTLI_ENCODE: number; - const BROTLI_LARGE_MAX_WINDOW_BITS: number; - const BROTLI_MAX_INPUT_BLOCK_BITS: number; - const BROTLI_MAX_QUALITY: number; - const BROTLI_MAX_WINDOW_BITS: number; - const BROTLI_MIN_INPUT_BLOCK_BITS: number; - const BROTLI_MIN_QUALITY: number; - const BROTLI_MIN_WINDOW_BITS: number; - - const BROTLI_MODE_FONT: number; - const BROTLI_MODE_GENERIC: number; - const BROTLI_MODE_TEXT: number; - - const BROTLI_OPERATION_EMIT_METADATA: number; - const BROTLI_OPERATION_FINISH: number; - const BROTLI_OPERATION_FLUSH: number; - const BROTLI_OPERATION_PROCESS: number; - - const BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: number; - const BROTLI_PARAM_LARGE_WINDOW: number; - const BROTLI_PARAM_LGBLOCK: number; - const BROTLI_PARAM_LGWIN: number; - const BROTLI_PARAM_MODE: number; - const BROTLI_PARAM_NDIRECT: number; - const BROTLI_PARAM_NPOSTFIX: number; - const BROTLI_PARAM_QUALITY: number; - const BROTLI_PARAM_SIZE_HINT: number; - } - - // Allowed flush values. - /** @deprecated Use `constants.Z_NO_FLUSH` */ - const Z_NO_FLUSH: number; - /** @deprecated Use `constants.Z_PARTIAL_FLUSH` */ - const Z_PARTIAL_FLUSH: number; - /** @deprecated Use `constants.Z_SYNC_FLUSH` */ - const Z_SYNC_FLUSH: number; - /** @deprecated Use `constants.Z_FULL_FLUSH` */ - const Z_FULL_FLUSH: number; - /** @deprecated Use `constants.Z_FINISH` */ - const Z_FINISH: number; - /** @deprecated Use `constants.Z_BLOCK` */ - const Z_BLOCK: number; - /** @deprecated Use `constants.Z_TREES` */ - const Z_TREES: number; - - // Return codes for the compression/decompression functions. - // Negative values are errors, positive values are used for special but normal events. - /** @deprecated Use `constants.Z_OK` */ - const Z_OK: number; - /** @deprecated Use `constants.Z_STREAM_END` */ - const Z_STREAM_END: number; - /** @deprecated Use `constants.Z_NEED_DICT` */ - const Z_NEED_DICT: number; - /** @deprecated Use `constants.Z_ERRNO` */ - const Z_ERRNO: number; - /** @deprecated Use `constants.Z_STREAM_ERROR` */ - const Z_STREAM_ERROR: number; - /** @deprecated Use `constants.Z_DATA_ERROR` */ - const Z_DATA_ERROR: number; - /** @deprecated Use `constants.Z_MEM_ERROR` */ - const Z_MEM_ERROR: number; - /** @deprecated Use `constants.Z_BUF_ERROR` */ - const Z_BUF_ERROR: number; - /** @deprecated Use `constants.Z_VERSION_ERROR` */ - const Z_VERSION_ERROR: number; - - // Compression levels. - /** @deprecated Use `constants.Z_NO_COMPRESSION` */ - const Z_NO_COMPRESSION: number; - /** @deprecated Use `constants.Z_BEST_SPEED` */ - const Z_BEST_SPEED: number; - /** @deprecated Use `constants.Z_BEST_COMPRESSION` */ - const Z_BEST_COMPRESSION: number; - /** @deprecated Use `constants.Z_DEFAULT_COMPRESSION` */ - const Z_DEFAULT_COMPRESSION: number; - - // Compression strategy. - /** @deprecated Use `constants.Z_FILTERED` */ - const Z_FILTERED: number; - /** @deprecated Use `constants.Z_HUFFMAN_ONLY` */ - const Z_HUFFMAN_ONLY: number; - /** @deprecated Use `constants.Z_RLE` */ - const Z_RLE: number; - /** @deprecated Use `constants.Z_FIXED` */ - const Z_FIXED: number; - /** @deprecated Use `constants.Z_DEFAULT_STRATEGY` */ - const Z_DEFAULT_STRATEGY: number; - - /** @deprecated */ - const Z_BINARY: number; - /** @deprecated */ - const Z_TEXT: number; - /** @deprecated */ - const Z_ASCII: number; - /** @deprecated */ - const Z_UNKNOWN: number; - /** @deprecated */ - const Z_DEFLATED: number; -} diff --git a/gateway/node_modules/@apollo/protobufjs/package-lock.json b/gateway/node_modules/@apollo/protobufjs/package-lock.json deleted file mode 100644 index c6f6f9b..0000000 --- a/gateway/node_modules/@apollo/protobufjs/package-lock.json +++ /dev/null @@ -1,7464 +0,0 @@ -{ - "name": "@apollo/protobufjs", - "version": "1.0.5", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/parser": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz", - "integrity": "sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A==", - "dev": true - }, - "@gulp-sourcemaps/identity-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz", - "integrity": "sha1-z6I7xYQPkQTOMqZedNt+epdLvuE=", - "dev": true, - "requires": { - "acorn": "^5.0.3", - "css": "^2.2.1", - "normalize-path": "^2.1.1", - "source-map": "^0.5.6", - "through2": "^2.0.3" - }, - "dependencies": { - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", - "dev": true - } - } - }, - "@gulp-sourcemaps/map-sources": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true, - "requires": { - "normalize-path": "^2.0.1", - "through2": "^2.0.3" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz", - "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==" - }, - "@types/node": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.0.tgz", - "integrity": "sha512-sELcX/cJHwRp8kn4hYSvBxKGJ+ubl3MvS8VJQe5gz/sp7CifYxsiCxIJ35wMIYyGVMgfO2AzRa8UcVReAcJRlw==" - }, - "JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } - }, - "acorn-node": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", - "integrity": "sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg==", - "dev": true, - "requires": { - "acorn": "^6.0.2", - "acorn-dynamic-import": "^4.0.0", - "acorn-walk": "^6.1.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true - } - } - }, - "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", - "dev": true - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-done": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", - "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^1.0.7", - "stream-exhaust": "^1.0.1" - }, - "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - } - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, - "atob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "benchmark": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", - "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=", - "dev": true, - "requires": { - "lodash": "^4.17.4", - "platform": "^1.3.3" - } - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - } - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browser-unpack": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browser-unpack/-/browser-unpack-1.2.0.tgz", - "integrity": "sha1-NXruMfxGeDFoTQY+Q1XgcKeClw0=", - "dev": true, - "requires": { - "acorn": "^4.0.3", - "browser-pack": "^5.0.1", - "concat-stream": "^1.5.0", - "minimist": "^1.1.1" - }, - "dependencies": { - "browser-pack": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-5.0.1.tgz", - "integrity": "sha1-QZdxmyDG4KqglFHFER5T77b7wY0=", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.6.1", - "defined": "^1.0.0", - "through2": "^1.0.0", - "umd": "^3.0.0" - } - }, - "combine-source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.6.1.tgz", - "integrity": "sha1-m0oJwxYDPXaODxHgKfonMOB5rZY=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.5.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.4.2" - } - }, - "inline-source-map": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.5.0.tgz", - "integrity": "sha1-Skxd2OT7Xps82mDIIt+tyu5m4K8=", - "dev": true, - "requires": { - "source-map": "~0.4.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-1.1.1.tgz", - "integrity": "sha1-CEfLxESfNAVXTb3M2buEG4OsNUU=", - "dev": true, - "requires": { - "readable-stream": ">=1.1.13-1 <1.2.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "browserify": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", - "integrity": "sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.2.0", - "buffer": "^5.0.2", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "labeled-stream-splicer": "^2.0.0", - "mkdirp": "^0.5.0", - "module-deps": "^6.0.0", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^2.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-wrap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-wrap/-/browserify-wrap-1.0.2.tgz", - "integrity": "sha1-DvJ3xnxplAkVnt8hraPchQF/lqo=", - "dev": true - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, - "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bundle-collapser": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bundle-collapser/-/bundle-collapser-1.3.0.tgz", - "integrity": "sha1-9LT/WLLyLudwGyD6djBuI/U6P7Y=", - "dev": true, - "requires": { - "browser-pack": "^5.0.1", - "browser-unpack": "^1.1.0", - "concat-stream": "^1.5.0", - "falafel": "^2.1.0", - "minimist": "^1.1.1", - "through2": "^2.0.0" - }, - "dependencies": { - "browser-pack": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-5.0.1.tgz", - "integrity": "sha1-QZdxmyDG4KqglFHFER5T77b7wY0=", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.6.1", - "defined": "^1.0.0", - "through2": "^1.0.0", - "umd": "^3.0.0" - }, - "dependencies": { - "through2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-1.1.1.tgz", - "integrity": "sha1-CEfLxESfNAVXTb3M2buEG4OsNUU=", - "dev": true, - "requires": { - "readable-stream": ">=1.1.13-1 <1.2.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "combine-source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.6.1.tgz", - "integrity": "sha1-m0oJwxYDPXaODxHgKfonMOB5rZY=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.5.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.4.2" - } - }, - "inline-source-map": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.5.0.tgz", - "integrity": "sha1-Skxd2OT7Xps82mDIIt+tyu5m4K8=", - "dev": true, - "requires": { - "source-map": "~0.4.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cached-path-relative": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", - "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - } - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "chokidar": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", - "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.1.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true, - "optional": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", - "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "dev": true, - "requires": { - "color-name": "^1.1.1" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - }, - "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "dev": true, - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz", - "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "source-map": "^0.1.38", - "source-map-resolve": "^0.5.1", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "^0.10.9" - } - }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-fabulous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", - "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", - "dev": true, - "requires": { - "debug": "3.X", - "memoizee": "0.4.X", - "object-assign": "4.X" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "shasum": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dev": true, - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - } - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz", - "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" - } - }, - "es5-ext": { - "version": "0.10.42", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", - "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", - "dev": true - } - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "falafel": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", - "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "foreach": "^2.0.5", - "isarray": "0.0.1", - "object-keys": "^1.0.6" - }, - "dependencies": { - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "time-stamp": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "filename-reserved-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", - "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", - "dev": true - }, - "filenamify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", - "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", - "dev": true, - "requires": { - "filename-reserved-regex": "^1.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" - } - }, - "filenamify-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", - "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", - "dev": true, - "requires": { - "filenamify": "^1.0.0", - "humanize-url": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", - "dev": true - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "for-each": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", - "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", - "dev": true, - "requires": { - "is-function": "~1.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "fork-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz", - "integrity": "sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": false, - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": false, - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": false, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "resolved": false, - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "resolved": false, - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": false, - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": false, - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": false, - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "resolved": false, - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": false, - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": false, - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": false, - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "resolved": false, - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": false, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": false, - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": false, - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "resolved": false, - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "resolved": false, - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": false, - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.3", - "resolved": false, - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "resolved": false, - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": false, - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": false, - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": false, - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "resolved": false, - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": false, - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": false, - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": false, - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": false, - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "resolved": false, - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "resolved": false, - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "optional": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "gh-pages": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-1.2.0.tgz", - "integrity": "sha512-cGLYAvxtlQ1iTwAS4g7FreZPXoE/g62Fsxln2mmR19mgs4zZI+XJ+wVVUhBFCF/0+Nmvbq+abyTWue1m1BSnmg==", - "dev": true, - "requires": { - "async": "2.6.1", - "commander": "2.15.1", - "filenamify-url": "^1.0.0", - "fs-extra": "^5.0.0", - "globby": "^6.1.0", - "graceful-fs": "4.1.11", - "rimraf": "^2.6.2" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "git-raw-commits": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.6.tgz", - "integrity": "sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg==", - "dev": true, - "requires": { - "dargs": "^4.0.1", - "lodash.template": "^4.0.2", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0" - } - }, - "git-semver-tags": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.3.6.tgz", - "integrity": "sha512-2jHlJnln4D/ECk9FxGEBh3k44wgYdWjWDtMmJPaecjoRmxKo3Y1Lh8GMYuOPu04CHw86NTAODchYjC5pnpMQig==", - "dev": true, - "requires": { - "meow": "^4.0.0", - "semver": "^5.5.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "dependencies": { - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - } - } - }, - "glob-watcher": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.1.tgz", - "integrity": "sha512-fK92r2COMC199WCyGUblrZKhjra3cyVMDiypDdqg1vsSDmexnbYivK1kNR4QItiNXLKmGlqan469ks67RtNa2g==", - "dev": true, - "requires": { - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "just-debounce": "^1.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", - "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", - "dev": true - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "google-protobuf": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.5.0.tgz", - "integrity": "sha1-uMxjx02DRXvYqakEUDyO+ya8ozk=", - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "gulp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", - "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=", - "dev": true, - "requires": { - "glob-watcher": "^5.0.0", - "gulp-cli": "^2.0.0", - "undertaker": "^1.0.0", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "gulp-cli": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz", - "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^2.5.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - } - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - } - } - }, - "gulp-header": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-2.0.5.tgz", - "integrity": "sha512-7bOIiHvM1GUHIG3LRH+UIanOxyjSys0FbzzgUBlV2cZIIZihEW+KKKKm0ejUBNGvRdhISEFFr6HlptXoa28gtQ==", - "dev": true, - "requires": { - "concat-with-sourcemaps": "*", - "lodash.template": "^4.4.0", - "through2": "^2.0.0" - } - }, - "gulp-if": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", - "integrity": "sha1-pJe351cwBQQcqivIt92jyARE1ik=", - "dev": true, - "requires": { - "gulp-match": "^1.0.3", - "ternary-stream": "^2.0.1", - "through2": "^2.0.1" - } - }, - "gulp-match": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.0.3.tgz", - "integrity": "sha1-kcfA1/Kb7NZgbVfYCn+Hdqh6uo4=", - "dev": true, - "requires": { - "minimatch": "^3.0.3" - } - }, - "gulp-sourcemaps": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz", - "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=", - "dev": true, - "requires": { - "@gulp-sourcemaps/identity-map": "1.X", - "@gulp-sourcemaps/map-sources": "1.X", - "acorn": "5.X", - "convert-source-map": "1.X", - "css": "2.X", - "debug-fabulous": "1.X", - "detect-newline": "2.X", - "graceful-fs": "4.X", - "source-map": "~0.6.0", - "strip-bom-string": "1.X", - "through2": "2.X" - }, - "dependencies": { - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "gulp-uglify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", - "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", - "dev": true, - "requires": { - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash": "^4.13.1", - "make-error-cause": "^1.1.1", - "through2": "^2.0.0", - "uglify-js": "^3.0.5", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, - "handlebars": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", - "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, - "requires": { - "function-bind": "^1.0.2" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", - "dev": true - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "humanize-url": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", - "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", - "dev": true, - "requires": { - "normalize-url": "^1.0.0", - "strip-url-auth": "^1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "ignore": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", - "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "~0.5.3" - } - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - } - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "dev": true, - "requires": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "requires": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.2.0" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "jaguarjs-jsdoc": { - "version": "github:dcodeIO/jaguarjs-jsdoc#ade85ac841f5ca8be40c60d506102039a036a8fa", - "from": "github:dcodeIO/jaguarjs-jsdoc", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } - } - }, - "js2xmlparser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.0.tgz", - "integrity": "sha512-WuNgdZOXVmBk5kUPMcTcVUpbGRzLfNkv7+7APq7WiDihpXVKrgxo6wwRpRl9OQeEBgKCVk9mR7RbzrnNWC8oBw==", - "dev": true, - "requires": { - "xmlcreate": "^2.0.0" - } - }, - "jsdoc": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.3.tgz", - "integrity": "sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A==", - "dev": true, - "requires": { - "@babel/parser": "^7.4.4", - "bluebird": "^3.5.4", - "catharsis": "^0.8.11", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.0", - "klaw": "^3.0.0", - "markdown-it": "^8.4.2", - "markdown-it-anchor": "^5.0.2", - "marked": "^0.7.0", - "mkdirp": "^0.5.1", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.0.1", - "taffydb": "2.6.2", - "underscore": "~1.9.1" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - } - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "labeled-stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", - "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "isarray": "^2.0.4", - "stream-splicer": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==", - "dev": true - } - } - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "requires": { - "es5-ext": "~0.10.2" - } - }, - "make-error": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", - "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", - "dev": true - }, - "make-error-cause": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", - "dev": true, - "requires": { - "make-error": "^1.2.0" - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdown-it-anchor": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.5.tgz", - "integrity": "sha512-xLIjLQmtym3QpoY9llBgApknl7pxAcN3WDRc2d3rwpl+/YvDZHPmKscGs+L6E05xf2KrCXPBvosWt7MZukwSpQ==", - "dev": true - }, - "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", - "dev": true - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "memoizee": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.12.tgz", - "integrity": "sha512-sprBu6nwxBWBvBOh5v2jcsGqiGLlL2xr2dLub3vR8dnE8YB17omwtm/0NSHl8jjNbcsJd5GMWJAnTSVe/O0Wfg==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.30", - "es6-weak-map": "^2.0.2", - "event-emitter": "^0.3.5", - "is-promise": "^2.1", - "lru-queue": "0.1", - "next-tick": "1", - "timers-ext": "^0.1.2" - } - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "minipass": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true, - "optional": true - } - } - }, - "minizlib": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", - "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "module-deps": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz", - "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.0", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.0.2", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "mute-stdout": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.0.tgz", - "integrity": "sha1-WzLqB+tDyd7WEwQ0z5JvRrKn/U0=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "now-and-later": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", - "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.5.0.tgz", - "integrity": "sha512-UmOFbHbwvv+XHj7BerrhVq+knjceBdkvU5AriwLMvhv2qi+e7DJzxfBeFpILEjVzCp+xA+W/pIf06RGPWlZNfw==", - "dev": true - }, - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", - "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==", - "dev": true - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "platform": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", - "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==", - "dev": true - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.0.tgz", - "integrity": "sha512-UWi0klDoq8xtVzlMRgENV9F7iCTZExaJQSQL187UXsxpk9NnrKGqTqqUNYAKGOzucSOxs2+jUnRNI+rLviPhJg==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "reflect-metadata": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", - "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", - "dev": true - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - } - } - }, - "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "dev": true, - "requires": { - "through": "~2.3.4" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "*" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "requires": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "dev": true, - "requires": { - "through2": "^2.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" - } - }, - "string_decoder": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", - "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "strip-url-auth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", - "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", - "dev": true - }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "requires": { - "minimist": "^1.1.0" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - } - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "requires": { - "acorn-node": "^1.2.0" - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true - }, - "tape": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.0.tgz", - "integrity": "sha512-j0jO9BiScfqtPBb9QmPLL0qvxXMz98xjkMb7x8lKipFlJZwNJkqkWPou+NU4V6T9RnVh1kuSthLE8gLrN8bBfw==", - "dev": true, - "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.2", - "function-bind": "~1.1.1", - "glob": "~7.1.2", - "has": "~1.0.1", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.5.0", - "resolve": "~1.5.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" - }, - "dependencies": { - "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "tar": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true, - "optional": true - } - } - }, - "ternary-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ternary-stream/-/ternary-stream-2.0.1.tgz", - "integrity": "sha1-Bk5Im0tb9gumpre8fy9cJ07Pgmk=", - "dev": true, - "requires": { - "duplexify": "^3.5.0", - "fork-stream": "^0.0.4", - "merge-stream": "^1.0.0", - "through2": "^2.0.1" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "requires": { - "process": "~0.11.0" - } - }, - "timers-ext": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", - "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", - "dev": true, - "requires": { - "es5-ext": "~0.10.14", - "next-tick": "1" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "tslib": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", - "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", - "dev": true - }, - "tslint": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", - "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.12.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "tsutils": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz", - "integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.3.tgz", - "integrity": "sha512-K7g15Bb6Ra4lKf7Iq2l/I5/En+hLIHmxWZGq3D4DIRNFxMNV6j2SHSvDOqs2tGd4UvD/fJvrwopzQXjLrT7Itw==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "uglify-js": { - "version": "3.3.25", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.25.tgz", - "integrity": "sha512-hobogryjDV36VrLK3Y69ou4REyrTApzUblVFmdQOYRe8cYaSmFJXMb4dR9McdvYDSbeNdzUgYr2YVukJaErJcA==", - "dev": true, - "requires": { - "commander": "~2.15.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "requires": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "undertaker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz", - "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", - "dev": true, - "requires": { - "json-stable-stringify": "^1.0.0", - "through2-filter": "^2.0.0" - }, - "dependencies": { - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - } - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "use": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v8flags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.0.tgz", - "integrity": "sha512-0m69VIK2dudEf2Ub0xwLQhZkDZu85OmiOpTw+UGDt56ibviYICHziM/3aE+oVg7IjGPp0c83w3eSVqa+lYZ9UQ==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true - }, - "vinyl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", - "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "dependencies": { - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - } - } - }, - "vinyl-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz", - "integrity": "sha1-lsGjR5uMU5JULGEgKQE7Wyf4i78=", - "dev": true, - "requires": { - "bl": "^1.2.1", - "through2": "^2.0.3" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-source-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz", - "integrity": "sha1-84pa+53R6Ttl1VBGmsYYKsT1S44=", - "dev": true, - "requires": { - "through2": "^2.0.3", - "vinyl": "^2.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - } - } - }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "requires": { - "source-map": "^0.5.1" - } - }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", - "dev": true - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xmlcreate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.1.tgz", - "integrity": "sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA==", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - } - } -} diff --git a/gateway/node_modules/@apollo/protobufjs/package.json b/gateway/node_modules/@apollo/protobufjs/package.json deleted file mode 100644 index 38f70fa..0000000 --- a/gateway/node_modules/@apollo/protobufjs/package.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "name": "@apollo/protobufjs", - "version": "1.0.5", - "versionScheme": "~", - "description": "Protocol Buffers for JavaScript (& TypeScript).", - "author": "Daniel Wirtz ", - "license": "BSD-3-Clause", - "repository": { - "type": "git", - "url": "https://github.com/apollographql/protobuf.js.git" - }, - "bugs": "https://github.com/apollographql/protobuf.js/issues", - "homepage": "https://github.com/apollographql/protobuf.js", - "keywords": [ - "protobuf", - "protocol-buffers", - "serialization", - "typescript" - ], - "main": "index.js", - "types": "index.d.ts", - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - }, - "scripts": { - "bench": "node bench", - "build": "gulp --gulpfile scripts/gulpfile.js", - "changelog": "node scripts/changelog -w", - "coverage": "istanbul --config=config/istanbul.json cover node_modules/tape/bin/tape tests/*.js tests/node/*.js", - "docs": "jsdoc -c config/jsdoc.json -R README.md --verbose --pedantic", - "lint": "eslint **/*.js -c config/eslint.json && tslint **/*.d.ts -e **/node_modules/** -t stylish -c config/tslint.json", - "pages": "node scripts/pages", - "prepublish": "node scripts/prepublish", - "postinstall": "node scripts/postinstall", - "prof": "node bench/prof", - "test": "tape -r ./lib/tape-adapter tests/*.js tests/node/*.js", - "test-types": "tsc tests/comp_typescript.ts --lib es2015 --strictNullChecks --experimentalDecorators --emitDecoratorMetadata && tsc tests/data/test.js.ts --lib es2015 --noEmit --strictNullChecks && tsc tests/data/rpc.ts --lib es2015 --noEmit --strictNullChecks", - "types": "node bin/pbts --main --global protobuf --out index.d.ts src/ lib/aspromise/index.js lib/base64/index.js lib/codegen/index.js lib/eventemitter/index.js lib/float/index.js lib/fetch/index.js lib/inquire/index.js lib/path/index.js lib/pool/index.js lib/utf8/index.js && npm run test-types", - "make": "npm run test && npm run types && npm run build && npm run lint", - "release": "npm run make && npm run changelog" - }, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "devDependencies": { - "benchmark": "^2.1.4", - "browserify": "^16.2.3", - "browserify-wrap": "^1.0.2", - "bundle-collapser": "^1.3.0", - "chalk": "^2.4.1", - "escodegen": "^1.9.1", - "eslint": "^4.19.1", - "espree": "^3.5.4", - "estraverse": "^4.2.0", - "gh-pages": "^1.2.0", - "git-raw-commits": "^1.3.6", - "git-semver-tags": "^1.3.6", - "glob": "^7.1.2", - "google-protobuf": "^3.5.0", - "gulp": "^4.0.0", - "gulp-header": "^2.0.5", - "gulp-if": "^2.0.1", - "gulp-sourcemaps": "^2.6.4", - "gulp-uglify": "^3.0.0", - "istanbul": "^0.4.5", - "jaguarjs-jsdoc": "github:dcodeIO/jaguarjs-jsdoc", - "jsdoc": "^3.6.3", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.12", - "semver": "^5.5.0", - "tape": "^4.9.0", - "tmp": "0.0.33", - "tslint": "^5.10.0", - "typescript": "^2.8.3", - "uglify-js": "^3.3.25", - "vinyl-buffer": "^1.0.1", - "vinyl-fs": "^3.0.3", - "vinyl-source-stream": "^2.0.0" - }, - "cliDependencies": [ - "semver", - "chalk", - "glob", - "jsdoc", - "minimist", - "tmp", - "uglify-js", - "espree", - "escodegen", - "estraverse" - ], - "files": [ - "index.js", - "index.d.ts", - "light.d.ts", - "light.js", - "minimal.d.ts", - "minimal.js", - "package-lock.json", - "tsconfig.json", - "scripts/postinstall.js", - "bin/**", - "cli/**", - "dist/**", - "ext/**", - "google/**", - "src/**" - ] -} diff --git a/gateway/node_modules/@apollo/protobufjs/scripts/changelog.js b/gateway/node_modules/@apollo/protobufjs/scripts/changelog.js deleted file mode 100644 index 4e4a969..0000000 --- a/gateway/node_modules/@apollo/protobufjs/scripts/changelog.js +++ /dev/null @@ -1,150 +0,0 @@ -"use strict"; - -var path = require("path"), - fs = require("fs"); - -var gitSemverTags = require("git-semver-tags"), - gitRawCommits = require("git-raw-commits"), - minimist = require("minimist"); - -var basedir = path.join(__dirname, ".."); -var pkg = require(basedir + "/package.json"); - -var argv = minimist(process.argv, { - alias: { - tag : "t", - write : "w" - }, - string: [ "tag" ], - boolean: [ "write" ], - default: { - tag: null, - write: false - } -}); - -// categories to be used in the future and regexes for lazy / older subjects -var validCategories = { - "Breaking": null, - "Fixed": /fix|properly|prevent|correctly/i, - "New": /added|initial/i, - "CLI": /pbjs|pbts|CLI/, - "Docs": /README/i, - "Other": null -}; -var breakingFallback = /removed|stripped|dropped/i; - -var repo = "https://github.com/apollographql/protobuf.js"; - -gitSemverTags(function(err, tags) { - if (err) - throw err; - - var categories = {}; - Object.keys(validCategories).forEach(function(category) { - categories[category] = []; - }); - var output = []; - - var from = tags[0]; - var to = "HEAD"; - var tag; - if (argv.tag) { - var idx = tags.indexOf(argv.tag); - if (idx < 0) - throw Error("no such tag: " + argv.tag); - from = tags[idx + 1]; - tag = to = tags[idx]; - } else - tag = pkg.version; - - var commits = gitRawCommits({ - from: from, - to: to, - merges: false, - format: "%B%n#%H" - }); - - commits.on("error", function(err) { - throw err; - }); - - commits.on("data", function(chunk) { - var message = chunk.toString("utf8").trim(); - var match = /#([0-9a-f]{40})$/.exec(message); - var hash; - if (match) { - message = message.substring(0, message.length - match[1].length).trim(); - hash = match[1]; - } - message.split(";").forEach(function(message) { - if (/^(Merge pull request |Post-merge)/.test(message)) - return; - var match = /^(\w+):/i.exec(message = message.trim()); - var category; - if (match && match[1] in validCategories) { - category = match[1]; - message = message.substring(match[1].length + 1).trim(); - } else { - var keys = Object.keys(validCategories); - for (var i = 0; i < keys.length; ++i) { - var re = validCategories[keys[i]]; - if (re && re.test(message)) { - category = keys[i]; - break; - } - } - message = message.replace(/^(\w+):/i, "").trim(); - } - if (!category) { - if (breakingFallback.test(message)) - category = "Breaking"; - else - category = "Other"; - } - var nl = message.indexOf("\n"); - if (nl > -1) - message = message.substring(0, nl).trim(); - if (!hash || message.length < 12) - return; - message = message.replace(/\[ci skip\]/, "").trim(); - categories[category].push({ - text: message, - hash: hash - }); - }); - }); - - commits.on("end", function() { - output.push("# [" + tag + "](" + repo + "/releases/tag/" + tag + ")\n"); - Object.keys(categories).forEach(function(category) { - var messages = categories[category]; - if (!messages.length) - return; - output.push("\n## " + category + "\n"); - messages.forEach(function(message) { - var text = message.text.replace(/#(\d+)/g, "[#$1](" + repo + "/issues/$1)"); - output.push("[:hash:](" + repo + "/commit/" + message.hash + ") " + text + "
\n"); - }); - }); - var current; - try { - current = fs.readFileSync(basedir + "/CHANGELOG.md").toString("utf8"); - } catch (e) { - current = ""; - } - var re = new RegExp("^# \\[" + tag + "\\]"); - if (re.test(current)) { // regenerated, replace - var pos = current.indexOf("# [", 1); - if (pos > -1) - current = current.substring(pos).trim(); - else - current = ""; - } - var contents = output.join("") + "\n" + current; - if (argv.write) - fs.writeFileSync(basedir + "/CHANGELOG.md", contents, "utf8"); - else - process.stdout.write(contents); - }); -}); diff --git a/gateway/node_modules/@apollo/protobufjs/scripts/postinstall.js b/gateway/node_modules/@apollo/protobufjs/scripts/postinstall.js deleted file mode 100644 index 37898b6..0000000 --- a/gateway/node_modules/@apollo/protobufjs/scripts/postinstall.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -var path = require("path"), - fs = require("fs"), - pkg = require(path.join(__dirname, "..", "package.json")); - -// ensure that there is a node_modules folder for cli dependencies -try { fs.mkdirSync(path.join(__dirname, "..", "cli", "node_modules")); } catch (e) {/**/} - -// check version scheme used by dependents -if (!pkg.versionScheme) - return; - -var warn = process.stderr.isTTY - ? "\x1b[30m\x1b[43mWARN\x1b[0m \x1b[35m" + path.basename(process.argv[1], ".js") + "\x1b[0m" - : "WARN " + path.basename(process.argv[1], ".js"); - -var basePkg; -try { - basePkg = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "..", "package.json"))); -} catch (e) { - return; -} - -[ - "dependencies", - "devDependencies", - "optionalDependencies", - "peerDependencies" -] -.forEach(function(check) { - var version = basePkg && basePkg[check] && basePkg[check][pkg.name]; - if (typeof version === "string" && version.charAt(0) !== pkg.versionScheme) - process.stderr.write(pkg.name + " " + warn + " " + pkg.name + "@" + version + " is configured as a dependency of " + basePkg.name + ". use " + pkg.name + "@" + pkg.versionScheme + version.substring(1) + " instead for API compatibility.\n"); -}); diff --git a/gateway/node_modules/@apollo/protobufjs/src/common.js b/gateway/node_modules/@apollo/protobufjs/src/common.js deleted file mode 100644 index 489ee1c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/common.js +++ /dev/null @@ -1,399 +0,0 @@ -"use strict"; -module.exports = common; - -var commonRe = /\/|\./; - -/** - * Provides common type definitions. - * Can also be used to provide additional google types or your own custom types. - * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name - * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition - * @returns {undefined} - * @property {INamespace} google/protobuf/any.proto Any - * @property {INamespace} google/protobuf/duration.proto Duration - * @property {INamespace} google/protobuf/empty.proto Empty - * @property {INamespace} google/protobuf/field_mask.proto FieldMask - * @property {INamespace} google/protobuf/struct.proto Struct, Value, NullValue and ListValue - * @property {INamespace} google/protobuf/timestamp.proto Timestamp - * @property {INamespace} google/protobuf/wrappers.proto Wrappers - * @example - * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension) - * protobuf.common("descriptor", descriptorJson); - * - * // manually provides a custom definition (uses my.foo namespace) - * protobuf.common("my/foo/bar.proto", myFooBarJson); - */ -function common(name, json) { - if (!commonRe.test(name)) { - name = "google/protobuf/" + name + ".proto"; - json = { nested: { google: { nested: { protobuf: { nested: json } } } } }; - } - common[name] = json; -} - -// Not provided because of limited use (feel free to discuss or to provide yourself): -// -// google/protobuf/descriptor.proto -// google/protobuf/source_context.proto -// google/protobuf/type.proto -// -// Stripped and pre-parsed versions of these non-bundled files are instead available as part of -// the repository or package within the google/protobuf directory. - -common("any", { - - /** - * Properties of a google.protobuf.Any message. - * @interface IAny - * @type {Object} - * @property {string} [typeUrl] - * @property {Uint8Array} [bytes] - * @memberof common - */ - Any: { - fields: { - type_url: { - type: "string", - id: 1 - }, - value: { - type: "bytes", - id: 2 - } - } - } -}); - -var timeType; - -common("duration", { - - /** - * Properties of a google.protobuf.Duration message. - * @interface IDuration - * @type {Object} - * @property {number|Long} [seconds] - * @property {number} [nanos] - * @memberof common - */ - Duration: timeType = { - fields: { - seconds: { - type: "int64", - id: 1 - }, - nanos: { - type: "int32", - id: 2 - } - } - } -}); - -common("timestamp", { - - /** - * Properties of a google.protobuf.Timestamp message. - * @interface ITimestamp - * @type {Object} - * @property {number|Long} [seconds] - * @property {number} [nanos] - * @memberof common - */ - Timestamp: timeType -}); - -common("empty", { - - /** - * Properties of a google.protobuf.Empty message. - * @interface IEmpty - * @memberof common - */ - Empty: { - fields: {} - } -}); - -common("struct", { - - /** - * Properties of a google.protobuf.Struct message. - * @interface IStruct - * @type {Object} - * @property {Object.} [fields] - * @memberof common - */ - Struct: { - fields: { - fields: { - keyType: "string", - type: "Value", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.Value message. - * @interface IValue - * @type {Object} - * @property {string} [kind] - * @property {0} [nullValue] - * @property {number} [numberValue] - * @property {string} [stringValue] - * @property {boolean} [boolValue] - * @property {IStruct} [structValue] - * @property {IListValue} [listValue] - * @memberof common - */ - Value: { - oneofs: { - kind: { - oneof: [ - "nullValue", - "numberValue", - "stringValue", - "boolValue", - "structValue", - "listValue" - ] - } - }, - fields: { - nullValue: { - type: "NullValue", - id: 1 - }, - numberValue: { - type: "double", - id: 2 - }, - stringValue: { - type: "string", - id: 3 - }, - boolValue: { - type: "bool", - id: 4 - }, - structValue: { - type: "Struct", - id: 5 - }, - listValue: { - type: "ListValue", - id: 6 - } - } - }, - - NullValue: { - values: { - NULL_VALUE: 0 - } - }, - - /** - * Properties of a google.protobuf.ListValue message. - * @interface IListValue - * @type {Object} - * @property {Array.} [values] - * @memberof common - */ - ListValue: { - fields: { - values: { - rule: "repeated", - type: "Value", - id: 1 - } - } - } -}); - -common("wrappers", { - - /** - * Properties of a google.protobuf.DoubleValue message. - * @interface IDoubleValue - * @type {Object} - * @property {number} [value] - * @memberof common - */ - DoubleValue: { - fields: { - value: { - type: "double", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.FloatValue message. - * @interface IFloatValue - * @type {Object} - * @property {number} [value] - * @memberof common - */ - FloatValue: { - fields: { - value: { - type: "float", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.Int64Value message. - * @interface IInt64Value - * @type {Object} - * @property {number|Long} [value] - * @memberof common - */ - Int64Value: { - fields: { - value: { - type: "int64", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.UInt64Value message. - * @interface IUInt64Value - * @type {Object} - * @property {number|Long} [value] - * @memberof common - */ - UInt64Value: { - fields: { - value: { - type: "uint64", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.Int32Value message. - * @interface IInt32Value - * @type {Object} - * @property {number} [value] - * @memberof common - */ - Int32Value: { - fields: { - value: { - type: "int32", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.UInt32Value message. - * @interface IUInt32Value - * @type {Object} - * @property {number} [value] - * @memberof common - */ - UInt32Value: { - fields: { - value: { - type: "uint32", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.BoolValue message. - * @interface IBoolValue - * @type {Object} - * @property {boolean} [value] - * @memberof common - */ - BoolValue: { - fields: { - value: { - type: "bool", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.StringValue message. - * @interface IStringValue - * @type {Object} - * @property {string} [value] - * @memberof common - */ - StringValue: { - fields: { - value: { - type: "string", - id: 1 - } - } - }, - - /** - * Properties of a google.protobuf.BytesValue message. - * @interface IBytesValue - * @type {Object} - * @property {Uint8Array} [value] - * @memberof common - */ - BytesValue: { - fields: { - value: { - type: "bytes", - id: 1 - } - } - } -}); - -common("field_mask", { - - /** - * Properties of a google.protobuf.FieldMask message. - * @interface IDoubleValue - * @type {Object} - * @property {number} [value] - * @memberof common - */ - FieldMask: { - fields: { - paths: { - rule: "repeated", - type: "string", - id: 1 - } - } - } -}); - -/** - * Gets the root definition of the specified common proto file. - * - * Bundled definitions are: - * - google/protobuf/any.proto - * - google/protobuf/duration.proto - * - google/protobuf/empty.proto - * - google/protobuf/field_mask.proto - * - google/protobuf/struct.proto - * - google/protobuf/timestamp.proto - * - google/protobuf/wrappers.proto - * - * @param {string} file Proto file name - * @returns {INamespace|null} Root definition or `null` if not defined - */ -common.get = function get(file) { - return common[file] || null; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/converter.js b/gateway/node_modules/@apollo/protobufjs/src/converter.js deleted file mode 100644 index 92c7205..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/converter.js +++ /dev/null @@ -1,304 +0,0 @@ -"use strict"; -/** - * Runtime message from/to plain object converters. - * @namespace - */ -var converter = exports; - -var Enum = require("./enum"), - util = require("./util"); - -/** - * Generates a partial value fromObject conveter. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {number} fieldIndex Field index - * @param {string} prop Property reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genValuePartial_fromObject(gen, field, fieldIndex, prop, ref) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - if (ref === undefined) { - ref = "d" + prop; - } - if (field.resolvedType) { - if (field.resolvedType instanceof Enum) { gen - ("switch(%s){", ref); - for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) { - if (field.repeated && values[keys[i]] === field.typeDefault) gen - ("default:"); - gen - ("case%j:", keys[i]) - ("case %i:", values[keys[i]]) - ("m%s=%j", prop, values[keys[i]]) - ("break"); - } gen - ("}"); - } else gen - ("if(typeof %s!==\"object\")", ref) - ("throw TypeError(%j)", field.fullName + ": object expected") - ("m%s=types[%i].fromObject(%s)", prop, fieldIndex, ref); - } else { - var isUnsigned = false; - switch (field.type) { - case "double": - case "float": gen - ("m%s=Number(%s)", prop, ref); // also catches "NaN", "Infinity" - break; - case "uint32": - case "fixed32": gen - ("m%s=%s>>>0", prop, ref); - break; - case "int32": - case "sint32": - case "sfixed32": gen - ("m%s=%s|0", prop, ref); - break; - case "uint64": - isUnsigned = true; - // eslint-disable-line no-fallthrough - case "int64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(util.Long)") - ("(m%s=util.Long.fromValue(%s)).unsigned=%j", prop, ref, isUnsigned) - ("else if(typeof %s===\"string\")", ref) - ("m%s=parseInt(%s,10)", prop, ref) - ("else if(typeof %s===\"number\")", ref) - ("m%s=%s", prop, ref) - ("else if(typeof %s===\"object\")", ref) - ("m%s=new util.LongBits(%s.low>>>0,%s.high>>>0).toNumber(%s)", prop, ref, ref, isUnsigned ? "true" : ""); - break; - case "bytes": gen - ("if(typeof %s===\"string\")", ref) - ("util.base64.decode(%s,m%s=util.newBuffer(util.base64.length(%s)),0)", ref, prop, ref) - ("else if(%s.length)", ref) - ("m%s=%s", prop, ref); - break; - case "string": gen - ("m%s=String(%s)", prop, ref); - break; - case "bool": gen - ("m%s=Boolean(%s)", prop, ref); - break; - /* default: gen - ("m%s=%s", prop, ref); - break; */ - } - } - return gen; - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} - -/** - * Generates a plain object to runtime message converter specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -converter.fromObject = function fromObject(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var fields = mtype.fieldsArray; - var gen = util.codegen(["d"], mtype.name + "$fromObject") - ("if(d instanceof this.ctor)") - ("return d"); - if (!fields.length) return gen - ("return new this.ctor"); - gen - ("var m=new this.ctor"); - for (var i = 0; i < fields.length; ++i) { - var field = fields[i].resolve(), - prop = util.safeProp(field.name); - - // Map fields - if (field.map) { gen - ("if(d%s){", prop) - ("if(typeof d%s!==\"object\")", prop) - ("throw TypeError(%j)", field.fullName + ": object expected") - ("m%s={}", prop) - ("for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s", prop, prop, prop, prop, isUnsigned ? "true": "", prop); - break; - case "bytes": gen - ("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s", prop, prop, prop, prop, prop); - break; - default: gen - ("d%s=m%s", prop, prop); - break; - } - } - return gen; - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} - -/** - * Generates a runtime message to plain object converter specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -converter.toObject = function toObject(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById); - if (!fields.length) - return util.codegen()("return {}"); - var gen = util.codegen(["m", "o"], mtype.name + "$toObject") - ("if(!o)") - ("o={}") - ("var d={}"); - - var repeatedFields = [], - mapFields = [], - normalFields = [], - i = 0; - for (; i < fields.length; ++i) - if (!fields[i].partOf) - ( fields[i].resolve().repeated ? repeatedFields - : fields[i].map ? mapFields - : normalFields).push(fields[i]); - - if (repeatedFields.length) { gen - ("if(o.arrays||o.defaults){"); - for (i = 0; i < repeatedFields.length; ++i) gen - ("d%s=[]", util.safeProp(repeatedFields[i].name)); - gen - ("}"); - } - - if (mapFields.length) { gen - ("if(o.objects||o.defaults){"); - for (i = 0; i < mapFields.length; ++i) gen - ("d%s={}", util.safeProp(mapFields[i].name)); - gen - ("}"); - } - - if (normalFields.length) { gen - ("if(o.defaults){"); - for (i = 0; i < normalFields.length; ++i) { - var field = normalFields[i], - prop = util.safeProp(field.name); - if (field.resolvedType instanceof Enum) gen - ("d%s=o.enums===String?%j:%j", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault); - else if (field.long) gen - ("if(util.Long){") - ("var n=new util.Long(%i,%i,%j)", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned) - ("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n", prop) - ("}else") - ("d%s=o.longs===String?%j:%i", prop, field.typeDefault.toString(), field.typeDefault.toNumber()); - else if (field.bytes) { - var arrayDefault = "[" + Array.prototype.slice.call(field.typeDefault).join(",") + "]"; - gen - ("if(o.bytes===String)d%s=%j", prop, String.fromCharCode.apply(String, field.typeDefault)) - ("else{") - ("d%s=%s", prop, arrayDefault) - ("if(o.bytes!==Array)d%s=util.newBuffer(d%s)", prop, prop) - ("}"); - } else gen - ("d%s=%j", prop, field.typeDefault); // also messages (=null) - } gen - ("}"); - } - var hasKs2 = false; - for (i = 0; i < fields.length; ++i) { - var field = fields[i], - index = mtype._fieldsArray.indexOf(field), - prop = util.safeProp(field.name); - if (field.map) { - if (!hasKs2) { hasKs2 = true; gen - ("var ks2"); - } gen - ("if(m%s&&(ks2=Object.keys(m%s)).length){", prop, prop) - ("d%s={}", prop) - ("for(var j=0;j>>3){"); - - var i = 0; - for (; i < /* initializes */ mtype.fieldsArray.length; ++i) { - var field = mtype._fieldsArray[i].resolve(), - type = field.resolvedType instanceof Enum ? "int32" : field.type, - ref = "m" + util.safeProp(field.name); gen - ("case %i:", field.id); - - // Map fields - if (field.map) { gen - ("r.skip().pos++") // assumes id 1 + key wireType - ("if(%s===util.emptyObject)", ref) - ("%s={}", ref) - ("k=r.%s()", field.keyType) - ("r.pos++"); // assumes id 2 + value wireType - if (types.long[field.keyType] !== undefined) { - if (types.basic[type] === undefined) gen - ("%s[typeof k===\"object\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())", ref, i); // can't be groups - else gen - ("%s[typeof k===\"object\"?util.longToHash(k):k]=r.%s()", ref, type); - } else { - if (types.basic[type] === undefined) gen - ("%s[k]=types[%i].decode(r,r.uint32())", ref, i); // can't be groups - else gen - ("%s[k]=r.%s()", ref, type); - } - - // Repeated fields - } else if (field.repeated) { gen - - ("if(!(%s&&%s.length))", ref, ref) - ("%s=[]", ref); - - // Packable (always check for forward and backward compatiblity) - if (types.packed[type] !== undefined) gen - ("if((t&7)===2){") - ("var c2=r.uint32()+r.pos") - ("while(r.pos>> 0, (field.id << 3 | 4) >>> 0) - : gen("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()", fieldIndex, ref, (field.id << 3 | 2) >>> 0); -} - -/** - * Generates an encoder specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -function encoder(mtype) { - /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */ - var gen = util.codegen(["m", "w"], mtype.name + "$encode") - ("if(!w)") - ("w=Writer.create()"); - - var i, ref; - - // "when a message is serialized its known fields should be written sequentially by field number" - var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById); - - for (var i = 0; i < fields.length; ++i) { - var field = fields[i].resolve(), - index = mtype._fieldsArray.indexOf(field), - type = field.resolvedType instanceof Enum ? "int32" : field.type, - wireType = types.basic[type]; - ref = "m" + util.safeProp(field.name); - - // Map fields - if (field.map) { - gen - ("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){", ref, field.name) // !== undefined && !== null - ("for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType); - if (wireType === undefined) gen - ("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()", index, ref); // can't be groups - else gen - (".uint32(%i).%s(%s[ks[i]]).ldelim()", 16 | wireType, type, ref); - gen - ("}") - ("}"); - - // Repeated fields - } else if (field.repeated) { - var arrayRef = ref; - if (field.useToArray()) { - arrayRef = "array" + field.id; - gen("var %s", arrayRef); - gen("if (%s!=null&&%s.toArray) { %s = %s.toArray() } else { %s = %s }", - ref, ref, arrayRef, ref, arrayRef, ref); - } - gen("if(%s!=null&&%s.length){", arrayRef, arrayRef); // !== undefined && !== null - // Packed repeated - if (field.packed && types.packed[type] !== undefined) { gen - - ("w.uint32(%i).fork()", (field.id << 3 | 2) >>> 0) - ("for(var i=0;i<%s.length;++i)", arrayRef) - ("w.%s(%s[i])", type, arrayRef) - ("w.ldelim()"); - - // Non-packed - } else { gen - - ("for(var i=0;i<%s.length;++i)", arrayRef); - if (wireType === undefined) - genTypePartial(gen, field, index, arrayRef + "[i]"); - else gen - ("w.uint32(%i).%s(%s[i])", (field.id << 3 | wireType) >>> 0, type, arrayRef); - - } gen - ("}"); - - // Non-repeated - } else { - if (field.optional) gen - ("if(%s!=null&&Object.hasOwnProperty.call(m,%j))", ref, field.name); // !== undefined && !== null - - if (wireType === undefined) - genTypePartial(gen, field, index, ref); - else gen - ("w.uint32(%i).%s(%s)", (field.id << 3 | wireType) >>> 0, type, ref); - - } - } - - return gen - ("return w"); - /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ -} diff --git a/gateway/node_modules/@apollo/protobufjs/src/enum.js b/gateway/node_modules/@apollo/protobufjs/src/enum.js deleted file mode 100644 index b11014b..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/enum.js +++ /dev/null @@ -1,181 +0,0 @@ -"use strict"; -module.exports = Enum; - -// extends ReflectionObject -var ReflectionObject = require("./object"); -((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = "Enum"; - -var Namespace = require("./namespace"), - util = require("./util"); - -/** - * Constructs a new enum instance. - * @classdesc Reflected enum. - * @extends ReflectionObject - * @constructor - * @param {string} name Unique name within its namespace - * @param {Object.} [values] Enum values as an object, by name - * @param {Object.} [options] Declared options - * @param {string} [comment] The comment for this enum - * @param {Object.} [comments] The value comments for this enum - */ -function Enum(name, values, options, comment, comments) { - ReflectionObject.call(this, name, options); - - if (values && typeof values !== "object") - throw TypeError("values must be an object"); - - /** - * Enum values by id. - * @type {Object.} - */ - this.valuesById = {}; - - /** - * Enum values by name. - * @type {Object.} - */ - this.values = Object.create(this.valuesById); // toJSON, marker - - /** - * Enum comment text. - * @type {string|null} - */ - this.comment = comment; - - /** - * Value comment texts, if any. - * @type {Object.} - */ - this.comments = comments || {}; - - /** - * Reserved ranges, if any. - * @type {Array.} - */ - this.reserved = undefined; // toJSON - - // Note that values inherit valuesById on their prototype which makes them a TypeScript- - // compatible enum. This is used by pbts to write actual enum definitions that work for - // static and reflection code alike instead of emitting generic object definitions. - - if (values) - for (var keys = Object.keys(values), i = 0; i < keys.length; ++i) - if (typeof values[keys[i]] === "number") // use forward entries only - this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i]; -} - -/** - * Enum descriptor. - * @interface IEnum - * @property {Object.} values Enum values - * @property {Object.} [options] Enum options - */ - -/** - * Constructs an enum from an enum descriptor. - * @param {string} name Enum name - * @param {IEnum} json Enum descriptor - * @returns {Enum} Created enum - * @throws {TypeError} If arguments are invalid - */ -Enum.fromJSON = function fromJSON(name, json) { - var enm = new Enum(name, json.values, json.options, json.comment, json.comments); - enm.reserved = json.reserved; - return enm; -}; - -/** - * Converts this enum to an enum descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IEnum} Enum descriptor - */ -Enum.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , this.options, - "values" , this.values, - "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined, - "comment" , keepComments ? this.comment : undefined, - "comments" , keepComments ? this.comments : undefined - ]); -}; - -/** - * Adds a value to this enum. - * @param {string} name Value name - * @param {number} id Value id - * @param {string} [comment] Comment, if any - * @returns {Enum} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a value with this name or id - */ -Enum.prototype.add = function add(name, id, comment) { - // utilized by the parser but not by .fromJSON - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - if (!util.isInteger(id)) - throw TypeError("id must be an integer"); - - if (this.values[name] !== undefined) - throw Error("duplicate name '" + name + "' in " + this); - - if (this.isReservedId(id)) - throw Error("id " + id + " is reserved in " + this); - - if (this.isReservedName(name)) - throw Error("name '" + name + "' is reserved in " + this); - - if (this.valuesById[id] !== undefined) { - if (!(this.options && this.options.allow_alias)) - throw Error("duplicate id " + id + " in " + this); - this.values[name] = id; - } else - this.valuesById[this.values[name] = id] = name; - - this.comments[name] = comment || null; - return this; -}; - -/** - * Removes a value from this enum - * @param {string} name Value name - * @returns {Enum} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `name` is not a name of this enum - */ -Enum.prototype.remove = function remove(name) { - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - var val = this.values[name]; - if (val == null) - throw Error("name '" + name + "' does not exist in " + this); - - delete this.valuesById[val]; - delete this.values[name]; - delete this.comments[name]; - - return this; -}; - -/** - * Tests if the specified id is reserved. - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Enum.prototype.isReservedId = function isReservedId(id) { - return Namespace.isReservedId(this.reserved, id); -}; - -/** - * Tests if the specified name is reserved. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Enum.prototype.isReservedName = function isReservedName(name) { - return Namespace.isReservedName(this.reserved, name); -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/field.js b/gateway/node_modules/@apollo/protobufjs/src/field.js deleted file mode 100644 index 58cf3ef..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/field.js +++ /dev/null @@ -1,375 +0,0 @@ -"use strict"; -module.exports = Field; - -// extends ReflectionObject -var ReflectionObject = require("./object"); -((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = "Field"; - -var Enum = require("./enum"), - types = require("./types"), - util = require("./util"); - -var Type; // cyclic - -var ruleRe = /^required|optional|repeated$/; - -/** - * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class. - * @name Field - * @classdesc Reflected message field. - * @extends FieldBase - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} type Value type - * @param {string|Object.} [rule="optional"] Field rule - * @param {string|Object.} [extend] Extended type if different from parent - * @param {Object.} [options] Declared options - */ - -/** - * Constructs a field from a field descriptor. - * @param {string} name Field name - * @param {IField} json Field descriptor - * @returns {Field} Created field - * @throws {TypeError} If arguments are invalid - */ -Field.fromJSON = function fromJSON(name, json) { - return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment); -}; - -/** - * Not an actual constructor. Use {@link Field} instead. - * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions. - * @exports FieldBase - * @extends ReflectionObject - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} type Value type - * @param {string|Object.} [rule="optional"] Field rule - * @param {string|Object.} [extend] Extended type if different from parent - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function Field(name, id, type, rule, extend, options, comment) { - - if (util.isObject(rule)) { - comment = extend; - options = rule; - rule = extend = undefined; - } else if (util.isObject(extend)) { - comment = options; - options = extend; - extend = undefined; - } - - ReflectionObject.call(this, name, options); - - if (!util.isInteger(id) || id < 0) - throw TypeError("id must be a non-negative integer"); - - if (!util.isString(type)) - throw TypeError("type must be a string"); - - if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase())) - throw TypeError("rule must be a string rule"); - - if (extend !== undefined && !util.isString(extend)) - throw TypeError("extend must be a string"); - - /** - * Field rule, if any. - * @type {string|undefined} - */ - this.rule = rule && rule !== "optional" ? rule : undefined; // toJSON - - /** - * Field type. - * @type {string} - */ - this.type = type; // toJSON - - /** - * Unique field id. - * @type {number} - */ - this.id = id; // toJSON, marker - - /** - * Extended type if different from parent. - * @type {string|undefined} - */ - this.extend = extend || undefined; // toJSON - - /** - * Whether this field is required. - * @type {boolean} - */ - this.required = rule === "required"; - - /** - * Whether this field is optional. - * @type {boolean} - */ - this.optional = !this.required; - - /** - * Whether this field is repeated. - * @type {boolean} - */ - this.repeated = rule === "repeated"; - - /** - * Whether this field is a map or not. - * @type {boolean} - */ - this.map = false; - - /** - * Message this field belongs to. - * @type {Type|null} - */ - this.message = null; - - /** - * OneOf this field belongs to, if any, - * @type {OneOf|null} - */ - this.partOf = null; - - /** - * The field type's default value. - * @type {*} - */ - this.typeDefault = null; - - /** - * The field's default value on prototypes. - * @type {*} - */ - this.defaultValue = null; - - /** - * Whether this field's value should be treated as a long. - * @type {boolean} - */ - this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false; - - /** - * Whether this field's value is a buffer. - * @type {boolean} - */ - this.bytes = type === "bytes"; - - /** - * Resolved type if not a basic type. - * @type {Type|Enum|null} - */ - this.resolvedType = null; - - /** - * Sister-field within the extended type if a declaring extension field. - * @type {Field|null} - */ - this.extensionField = null; - - /** - * Sister-field within the declaring namespace if an extended field. - * @type {Field|null} - */ - this.declaringField = null; - - /** - * Internally remembers whether this field is packed. - * @type {boolean|null} - * @private - */ - this._packed = null; - - /** - * Comment for this field. - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Determines whether this field is packed. Only relevant when repeated and working with proto2. - * @name Field#packed - * @type {boolean} - * @readonly - */ -Object.defineProperty(Field.prototype, "packed", { - get: function() { - // defaults to packed=true if not explicity set to false - if (this._packed === null) - this._packed = this.getOption("packed") !== false; - return this._packed; - } -}); - -/** - * @override - */ -Field.prototype.setOption = function setOption(name, value, ifNotSet) { - if (name === "packed") // clear cached before setting - this._packed = null; - return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet); -}; - -/** - * Field descriptor. - * @interface IField - * @property {string} [rule="optional"] Field rule - * @property {string} type Field type - * @property {number} id Field id - * @property {Object.} [options] Field options - */ - -/** - * Extension field descriptor. - * @interface IExtensionField - * @extends IField - * @property {string} extend Extended type - */ - -/** - * Converts this field to a field descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IField} Field descriptor - */ -Field.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "rule" , this.rule !== "optional" && this.rule || undefined, - "type" , this.type, - "id" , this.id, - "extend" , this.extend, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Resolves this field's type references. - * @returns {Field} `this` - * @throws {Error} If any reference cannot be resolved - */ -Field.prototype.resolve = function resolve() { - - if (this.resolved) - return this; - - if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it - this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type); - if (this.resolvedType instanceof Type) - this.typeDefault = null; - else // instanceof Enum - this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined - } - - // use explicitly set default value if present - if (this.options && this.options["default"] != null) { - this.typeDefault = this.options["default"]; - if (this.resolvedType instanceof Enum && typeof this.typeDefault === "string") - this.typeDefault = this.resolvedType.values[this.typeDefault]; - } - - // remove unnecessary options - if (this.options) { - if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum)) - delete this.options.packed; - if (!Object.keys(this.options).length) - this.options = undefined; - } - - // convert to internal data type if necesssary - if (this.long) { - this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === "u"); - - /* istanbul ignore else */ - if (Object.freeze) - Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it) - - } else if (this.bytes && typeof this.typeDefault === "string") { - var buf; - if (util.base64.test(this.typeDefault)) - util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0); - else - util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0); - this.typeDefault = buf; - } - - // take special care of maps and repeated fields - if (this.map) - this.defaultValue = util.emptyObject; - else if (this.repeated) - this.defaultValue = util.emptyArray; - else - this.defaultValue = this.typeDefault; - - // ensure proper value on prototype - if (this.parent instanceof Type) - this.parent.ctor.prototype[this.name] = this.defaultValue; - - return ReflectionObject.prototype.resolve.call(this); -}; - -Field.prototype.useToArray = function useToArray() { - return !!this.getOption("(js_use_toArray)"); -}; - -/** - * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript). - * @typedef FieldDecorator - * @type {function} - * @param {Object} prototype Target prototype - * @param {string} fieldName Field name - * @returns {undefined} - */ - -/** - * Field decorator (TypeScript). - * @name Field.d - * @function - * @param {number} fieldId Field id - * @param {"double"|"float"|"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"string"|"bool"|"bytes"|Object} fieldType Field type - * @param {"optional"|"required"|"repeated"} [fieldRule="optional"] Field rule - * @param {T} [defaultValue] Default value - * @returns {FieldDecorator} Decorator function - * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[] - */ -Field.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) { - - // submessage: decorate the submessage and use its name as the type - if (typeof fieldType === "function") - fieldType = util.decorateType(fieldType).name; - - // enum reference: create a reflected copy of the enum and keep reuseing it - else if (fieldType && typeof fieldType === "object") - fieldType = util.decorateEnum(fieldType).name; - - return function fieldDecorator(prototype, fieldName) { - util.decorateType(prototype.constructor) - .add(new Field(fieldName, fieldId, fieldType, fieldRule, { "default": defaultValue })); - }; -}; - -/** - * Field decorator (TypeScript). - * @name Field.d - * @function - * @param {number} fieldId Field id - * @param {Constructor|string} fieldType Field type - * @param {"optional"|"required"|"repeated"} [fieldRule="optional"] Field rule - * @returns {FieldDecorator} Decorator function - * @template T extends Message - * @variation 2 - */ -// like Field.d but without a default value - -// Sets up cyclic dependencies (called in index-light) -Field._configure = function configure(Type_) { - Type = Type_; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/index-light.js b/gateway/node_modules/@apollo/protobufjs/src/index-light.js deleted file mode 100644 index 32c6a05..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/index-light.js +++ /dev/null @@ -1,104 +0,0 @@ -"use strict"; -var protobuf = module.exports = require("./index-minimal"); - -protobuf.build = "light"; - -/** - * A node-style callback as used by {@link load} and {@link Root#load}. - * @typedef LoadCallback - * @type {function} - * @param {Error|null} error Error, if any, otherwise `null` - * @param {Root} [root] Root, if there hasn't been an error - * @returns {undefined} - */ - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. - * @param {string|string[]} filename One or multiple files to load - * @param {Root} root Root namespace, defaults to create a new one if omitted. - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @see {@link Root#load} - */ -function load(filename, root, callback) { - if (typeof root === "function") { - callback = root; - root = new protobuf.Root(); - } else if (!root) - root = new protobuf.Root(); - return root.load(filename, callback); -} - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. - * @name load - * @function - * @param {string|string[]} filename One or multiple files to load - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @see {@link Root#load} - * @variation 2 - */ -// function load(filename:string, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise. - * @name load - * @function - * @param {string|string[]} filename One or multiple files to load - * @param {Root} [root] Root namespace, defaults to create a new one if omitted. - * @returns {Promise} Promise - * @see {@link Root#load} - * @variation 3 - */ -// function load(filename:string, [root:Root]):Promise - -protobuf.load = load; - -/** - * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only). - * @param {string|string[]} filename One or multiple files to load - * @param {Root} [root] Root namespace, defaults to create a new one if omitted. - * @returns {Root} Root namespace - * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid - * @see {@link Root#loadSync} - */ -function loadSync(filename, root) { - if (!root) - root = new protobuf.Root(); - return root.loadSync(filename); -} - -protobuf.loadSync = loadSync; - -// Serialization -protobuf.encoder = require("./encoder"); -protobuf.decoder = require("./decoder"); -protobuf.verifier = require("./verifier"); -protobuf.converter = require("./converter"); - -// Reflection -protobuf.ReflectionObject = require("./object"); -protobuf.Namespace = require("./namespace"); -protobuf.Root = require("./root"); -protobuf.Enum = require("./enum"); -protobuf.Type = require("./type"); -protobuf.Field = require("./field"); -protobuf.OneOf = require("./oneof"); -protobuf.MapField = require("./mapfield"); -protobuf.Service = require("./service"); -protobuf.Method = require("./method"); - -// Runtime -protobuf.Message = require("./message"); -protobuf.wrappers = require("./wrappers"); - -// Utility -protobuf.types = require("./types"); -protobuf.util = require("./util"); - -// Set up possibly cyclic reflection dependencies -protobuf.ReflectionObject._configure(protobuf.Root); -protobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum); -protobuf.Root._configure(protobuf.Type); -protobuf.Field._configure(protobuf.Type); diff --git a/gateway/node_modules/@apollo/protobufjs/src/index-minimal.js b/gateway/node_modules/@apollo/protobufjs/src/index-minimal.js deleted file mode 100644 index 9bc051b..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/index-minimal.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -var protobuf = exports; - -/** - * Build type, one of `"full"`, `"light"` or `"minimal"`. - * @name build - * @type {string} - * @const - */ -protobuf.build = "minimal"; - -// Serialization -protobuf.Writer = require("./writer"); -protobuf.BufferWriter = require("./writer_buffer"); -protobuf.Reader = require("./reader"); -protobuf.BufferReader = require("./reader_buffer"); - -// Utility -protobuf.util = require("./util/minimal"); -protobuf.rpc = require("./rpc"); -protobuf.roots = require("./roots"); -protobuf.configure = configure; - -/* istanbul ignore next */ -/** - * Reconfigures the library according to the environment. - * @returns {undefined} - */ -function configure() { - protobuf.Reader._configure(protobuf.BufferReader); - protobuf.util._configure(); -} - -// Set up buffer utility according to the environment -protobuf.Writer._configure(protobuf.BufferWriter); -configure(); diff --git a/gateway/node_modules/@apollo/protobufjs/src/index.js b/gateway/node_modules/@apollo/protobufjs/src/index.js deleted file mode 100644 index 56bd3d5..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/index.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -var protobuf = module.exports = require("./index-light"); - -protobuf.build = "full"; - -// Parser -protobuf.tokenize = require("./tokenize"); -protobuf.parse = require("./parse"); -protobuf.common = require("./common"); - -// Configure parser -protobuf.Root._configure(protobuf.Type, protobuf.parse, protobuf.common); diff --git a/gateway/node_modules/@apollo/protobufjs/src/mapfield.js b/gateway/node_modules/@apollo/protobufjs/src/mapfield.js deleted file mode 100644 index 67c7097..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/mapfield.js +++ /dev/null @@ -1,126 +0,0 @@ -"use strict"; -module.exports = MapField; - -// extends Field -var Field = require("./field"); -((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = "MapField"; - -var types = require("./types"), - util = require("./util"); - -/** - * Constructs a new map field instance. - * @classdesc Reflected map field. - * @extends FieldBase - * @constructor - * @param {string} name Unique name within its namespace - * @param {number} id Unique id within its namespace - * @param {string} keyType Key type - * @param {string} type Value type - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function MapField(name, id, keyType, type, options, comment) { - Field.call(this, name, id, type, undefined, undefined, options, comment); - - /* istanbul ignore if */ - if (!util.isString(keyType)) - throw TypeError("keyType must be a string"); - - /** - * Key type. - * @type {string} - */ - this.keyType = keyType; // toJSON, marker - - /** - * Resolved key type if not a basic type. - * @type {ReflectionObject|null} - */ - this.resolvedKeyType = null; - - // Overrides Field#map - this.map = true; -} - -/** - * Map field descriptor. - * @interface IMapField - * @extends {IField} - * @property {string} keyType Key type - */ - -/** - * Extension map field descriptor. - * @interface IExtensionMapField - * @extends IMapField - * @property {string} extend Extended type - */ - -/** - * Constructs a map field from a map field descriptor. - * @param {string} name Field name - * @param {IMapField} json Map field descriptor - * @returns {MapField} Created map field - * @throws {TypeError} If arguments are invalid - */ -MapField.fromJSON = function fromJSON(name, json) { - return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment); -}; - -/** - * Converts this map field to a map field descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IMapField} Map field descriptor - */ -MapField.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "keyType" , this.keyType, - "type" , this.type, - "id" , this.id, - "extend" , this.extend, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -MapField.prototype.resolve = function resolve() { - if (this.resolved) - return this; - - // Besides a value type, map fields have a key type that may be "any scalar type except for floating point types and bytes" - if (types.mapKey[this.keyType] === undefined) - throw Error("invalid key type: " + this.keyType); - - return Field.prototype.resolve.call(this); -}; - -/** - * Map field decorator (TypeScript). - * @name MapField.d - * @function - * @param {number} fieldId Field id - * @param {"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"bool"|"string"} fieldKeyType Field key type - * @param {"double"|"float"|"int32"|"uint32"|"sint32"|"fixed32"|"sfixed32"|"int64"|"uint64"|"sint64"|"fixed64"|"sfixed64"|"bool"|"string"|"bytes"|Object|Constructor<{}>} fieldValueType Field value type - * @returns {FieldDecorator} Decorator function - * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> } - */ -MapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) { - - // submessage value: decorate the submessage and use its name as the type - if (typeof fieldValueType === "function") - fieldValueType = util.decorateType(fieldValueType).name; - - // enum reference value: create a reflected copy of the enum and keep reuseing it - else if (fieldValueType && typeof fieldValueType === "object") - fieldValueType = util.decorateEnum(fieldValueType).name; - - return function mapFieldDecorator(prototype, fieldName) { - util.decorateType(prototype.constructor) - .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType)); - }; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/message.js b/gateway/node_modules/@apollo/protobufjs/src/message.js deleted file mode 100644 index 3f94bf6..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/message.js +++ /dev/null @@ -1,139 +0,0 @@ -"use strict"; -module.exports = Message; - -var util = require("./util/minimal"); - -/** - * Constructs a new message instance. - * @classdesc Abstract runtime message. - * @constructor - * @param {Properties} [properties] Properties to set - * @template T extends object = object - */ -function Message(properties) { - // not used internally - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - this[keys[i]] = properties[keys[i]]; -} - -/** - * Reference to the reflected type. - * @name Message.$type - * @type {Type} - * @readonly - */ - -/** - * Reference to the reflected type. - * @name Message#$type - * @type {Type} - * @readonly - */ - -/*eslint-disable valid-jsdoc*/ - -/** - * Creates a new message of this type using the specified properties. - * @param {Object.} [properties] Properties to set - * @returns {Message} Message instance - * @template T extends Message - * @this Constructor - */ -Message.create = function create(properties) { - return this.$type.create(properties); -}; - -/** - * Encodes a message of this type. - * @param {T|Object.} message Message to encode - * @param {Writer} [writer] Writer to use - * @returns {Writer} Writer - * @template T extends Message - * @this Constructor - */ -Message.encode = function encode(message, writer) { - return this.$type.encode(message, writer); -}; - -/** - * Encodes a message of this type preceeded by its length as a varint. - * @param {T|Object.} message Message to encode - * @param {Writer} [writer] Writer to use - * @returns {Writer} Writer - * @template T extends Message - * @this Constructor - */ -Message.encodeDelimited = function encodeDelimited(message, writer) { - return this.$type.encodeDelimited(message, writer); -}; - -/** - * Decodes a message of this type. - * @name Message.decode - * @function - * @param {Reader|Uint8Array} reader Reader or buffer to decode - * @returns {T} Decoded message - * @template T extends Message - * @this Constructor - */ -Message.decode = function decode(reader) { - return this.$type.decode(reader); -}; - -/** - * Decodes a message of this type preceeded by its length as a varint. - * @name Message.decodeDelimited - * @function - * @param {Reader|Uint8Array} reader Reader or buffer to decode - * @returns {T} Decoded message - * @template T extends Message - * @this Constructor - */ -Message.decodeDelimited = function decodeDelimited(reader) { - return this.$type.decodeDelimited(reader); -}; - -/** - * Verifies a message of this type. - * @name Message.verify - * @function - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ -Message.verify = function verify(message) { - return this.$type.verify(message); -}; - -/** - * Creates a new message of this type from a plain object. Also converts values to their respective internal types. - * @param {Object.} object Plain object - * @returns {T} Message instance - * @template T extends Message - * @this Constructor - */ -Message.fromObject = function fromObject(object) { - return this.$type.fromObject(object); -}; - -/** - * Creates a plain object from a message of this type. Also converts values to other types if specified. - * @param {T} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - * @template T extends Message - * @this Constructor - */ -Message.toObject = function toObject(message, options) { - return this.$type.toObject(message, options); -}; - -/** - * Converts this message to JSON. - * @returns {Object.} JSON object - */ -Message.prototype.toJSON = function toJSON() { - return this.$type.toObject(this, util.toJSONOptions); -}; - -/*eslint-enable valid-jsdoc*/ \ No newline at end of file diff --git a/gateway/node_modules/@apollo/protobufjs/src/method.js b/gateway/node_modules/@apollo/protobufjs/src/method.js deleted file mode 100644 index f515922..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/method.js +++ /dev/null @@ -1,151 +0,0 @@ -"use strict"; -module.exports = Method; - -// extends ReflectionObject -var ReflectionObject = require("./object"); -((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = "Method"; - -var util = require("./util"); - -/** - * Constructs a new service method instance. - * @classdesc Reflected service method. - * @extends ReflectionObject - * @constructor - * @param {string} name Method name - * @param {string|undefined} type Method type, usually `"rpc"` - * @param {string} requestType Request message type - * @param {string} responseType Response message type - * @param {boolean|Object.} [requestStream] Whether the request is streamed - * @param {boolean|Object.} [responseStream] Whether the response is streamed - * @param {Object.} [options] Declared options - * @param {string} [comment] The comment for this method - */ -function Method(name, type, requestType, responseType, requestStream, responseStream, options, comment) { - - /* istanbul ignore next */ - if (util.isObject(requestStream)) { - options = requestStream; - requestStream = responseStream = undefined; - } else if (util.isObject(responseStream)) { - options = responseStream; - responseStream = undefined; - } - - /* istanbul ignore if */ - if (!(type === undefined || util.isString(type))) - throw TypeError("type must be a string"); - - /* istanbul ignore if */ - if (!util.isString(requestType)) - throw TypeError("requestType must be a string"); - - /* istanbul ignore if */ - if (!util.isString(responseType)) - throw TypeError("responseType must be a string"); - - ReflectionObject.call(this, name, options); - - /** - * Method type. - * @type {string} - */ - this.type = type || "rpc"; // toJSON - - /** - * Request type. - * @type {string} - */ - this.requestType = requestType; // toJSON, marker - - /** - * Whether requests are streamed or not. - * @type {boolean|undefined} - */ - this.requestStream = requestStream ? true : undefined; // toJSON - - /** - * Response type. - * @type {string} - */ - this.responseType = responseType; // toJSON - - /** - * Whether responses are streamed or not. - * @type {boolean|undefined} - */ - this.responseStream = responseStream ? true : undefined; // toJSON - - /** - * Resolved request type. - * @type {Type|null} - */ - this.resolvedRequestType = null; - - /** - * Resolved response type. - * @type {Type|null} - */ - this.resolvedResponseType = null; - - /** - * Comment for this method - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Method descriptor. - * @interface IMethod - * @property {string} [type="rpc"] Method type - * @property {string} requestType Request type - * @property {string} responseType Response type - * @property {boolean} [requestStream=false] Whether requests are streamed - * @property {boolean} [responseStream=false] Whether responses are streamed - * @property {Object.} [options] Method options - */ - -/** - * Constructs a method from a method descriptor. - * @param {string} name Method name - * @param {IMethod} json Method descriptor - * @returns {Method} Created method - * @throws {TypeError} If arguments are invalid - */ -Method.fromJSON = function fromJSON(name, json) { - return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment); -}; - -/** - * Converts this method to a method descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IMethod} Method descriptor - */ -Method.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "type" , this.type !== "rpc" && /* istanbul ignore next */ this.type || undefined, - "requestType" , this.requestType, - "requestStream" , this.requestStream, - "responseType" , this.responseType, - "responseStream" , this.responseStream, - "options" , this.options, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -Method.prototype.resolve = function resolve() { - - /* istanbul ignore if */ - if (this.resolved) - return this; - - this.resolvedRequestType = this.parent.lookupType(this.requestType); - this.resolvedResponseType = this.parent.lookupType(this.responseType); - - return ReflectionObject.prototype.resolve.call(this); -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/namespace.js b/gateway/node_modules/@apollo/protobufjs/src/namespace.js deleted file mode 100644 index de9f4cd..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/namespace.js +++ /dev/null @@ -1,433 +0,0 @@ -"use strict"; -module.exports = Namespace; - -// extends ReflectionObject -var ReflectionObject = require("./object"); -((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = "Namespace"; - -var Field = require("./field"), - util = require("./util"); - -var Type, // cyclic - Service, - Enum; - -/** - * Constructs a new namespace instance. - * @name Namespace - * @classdesc Reflected namespace. - * @extends NamespaceBase - * @constructor - * @param {string} name Namespace name - * @param {Object.} [options] Declared options - */ - -/** - * Constructs a namespace from JSON. - * @memberof Namespace - * @function - * @param {string} name Namespace name - * @param {Object.} json JSON object - * @returns {Namespace} Created namespace - * @throws {TypeError} If arguments are invalid - */ -Namespace.fromJSON = function fromJSON(name, json) { - return new Namespace(name, json.options).addJSON(json.nested); -}; - -/** - * Converts an array of reflection objects to JSON. - * @memberof Namespace - * @param {ReflectionObject[]} array Object array - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {Object.|undefined} JSON object or `undefined` when array is empty - */ -function arrayToJSON(array, toJSONOptions) { - if (!(array && array.length)) - return undefined; - var obj = {}; - for (var i = 0; i < array.length; ++i) - obj[array[i].name] = array[i].toJSON(toJSONOptions); - return obj; -} - -Namespace.arrayToJSON = arrayToJSON; - -/** - * Tests if the specified id is reserved. - * @param {Array.|undefined} reserved Array of reserved ranges and names - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Namespace.isReservedId = function isReservedId(reserved, id) { - if (reserved) - for (var i = 0; i < reserved.length; ++i) - if (typeof reserved[i] !== "string" && reserved[i][0] <= id && reserved[i][1] > id) - return true; - return false; -}; - -/** - * Tests if the specified name is reserved. - * @param {Array.|undefined} reserved Array of reserved ranges and names - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Namespace.isReservedName = function isReservedName(reserved, name) { - if (reserved) - for (var i = 0; i < reserved.length; ++i) - if (reserved[i] === name) - return true; - return false; -}; - -/** - * Not an actual constructor. Use {@link Namespace} instead. - * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions. - * @exports NamespaceBase - * @extends ReflectionObject - * @abstract - * @constructor - * @param {string} name Namespace name - * @param {Object.} [options] Declared options - * @see {@link Namespace} - */ -function Namespace(name, options) { - ReflectionObject.call(this, name, options); - - /** - * Nested objects by name. - * @type {Object.|undefined} - */ - this.nested = undefined; // toJSON - - /** - * Cached nested objects as an array. - * @type {ReflectionObject[]|null} - * @private - */ - this._nestedArray = null; -} - -function clearCache(namespace) { - namespace._nestedArray = null; - return namespace; -} - -/** - * Nested objects of this namespace as an array for iteration. - * @name NamespaceBase#nestedArray - * @type {ReflectionObject[]} - * @readonly - */ -Object.defineProperty(Namespace.prototype, "nestedArray", { - get: function() { - return this._nestedArray || (this._nestedArray = util.toArray(this.nested)); - } -}); - -/** - * Namespace descriptor. - * @interface INamespace - * @property {Object.} [options] Namespace options - * @property {Object.} [nested] Nested object descriptors - */ - -/** - * Any extension field descriptor. - * @typedef AnyExtensionField - * @type {IExtensionField|IExtensionMapField} - */ - -/** - * Any nested object descriptor. - * @typedef AnyNestedObject - * @type {IEnum|IType|IService|AnyExtensionField|INamespace} - */ -// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place) - -/** - * Converts this namespace to a namespace descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {INamespace} Namespace descriptor - */ -Namespace.prototype.toJSON = function toJSON(toJSONOptions) { - return util.toObject([ - "options" , this.options, - "nested" , arrayToJSON(this.nestedArray, toJSONOptions) - ]); -}; - -/** - * Adds nested objects to this namespace from nested object descriptors. - * @param {Object.} nestedJson Any nested object descriptors - * @returns {Namespace} `this` - */ -Namespace.prototype.addJSON = function addJSON(nestedJson) { - var ns = this; - /* istanbul ignore else */ - if (nestedJson) { - for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) { - nested = nestedJson[names[i]]; - ns.add( // most to least likely - ( nested.fields !== undefined - ? Type.fromJSON - : nested.values !== undefined - ? Enum.fromJSON - : nested.methods !== undefined - ? Service.fromJSON - : nested.id !== undefined - ? Field.fromJSON - : Namespace.fromJSON )(names[i], nested) - ); - } - } - return this; -}; - -/** - * Gets the nested object of the specified name. - * @param {string} name Nested object name - * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist - */ -Namespace.prototype.get = function get(name) { - return this.nested && this.nested[name] - || null; -}; - -/** - * Gets the values of the nested {@link Enum|enum} of the specified name. - * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`. - * @param {string} name Nested enum name - * @returns {Object.} Enum values - * @throws {Error} If there is no such enum - */ -Namespace.prototype.getEnum = function getEnum(name) { - if (this.nested && this.nested[name] instanceof Enum) - return this.nested[name].values; - throw Error("no such enum: " + name); -}; - -/** - * Adds a nested object to this namespace. - * @param {ReflectionObject} object Nested object to add - * @returns {Namespace} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a nested object with this name - */ -Namespace.prototype.add = function add(object) { - - if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace)) - throw TypeError("object must be a valid nested object"); - - if (!this.nested) - this.nested = {}; - else { - var prev = this.get(object.name); - if (prev) { - if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) { - // replace plain namespace but keep existing nested elements and options - var nested = prev.nestedArray; - for (var i = 0; i < nested.length; ++i) - object.add(nested[i]); - this.remove(prev); - if (!this.nested) - this.nested = {}; - object.setOptions(prev.options, true); - - } else - throw Error("duplicate name '" + object.name + "' in " + this); - } - } - this.nested[object.name] = object; - object.onAdd(this); - return clearCache(this); -}; - -/** - * Removes a nested object from this namespace. - * @param {ReflectionObject} object Nested object to remove - * @returns {Namespace} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `object` is not a member of this namespace - */ -Namespace.prototype.remove = function remove(object) { - - if (!(object instanceof ReflectionObject)) - throw TypeError("object must be a ReflectionObject"); - if (object.parent !== this) - throw Error(object + " is not a member of " + this); - - delete this.nested[object.name]; - if (!Object.keys(this.nested).length) - this.nested = undefined; - - object.onRemove(this); - return clearCache(this); -}; - -/** - * Defines additial namespaces within this one if not yet existing. - * @param {string|string[]} path Path to create - * @param {*} [json] Nested types to create from JSON - * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty - */ -Namespace.prototype.define = function define(path, json) { - - if (util.isString(path)) - path = path.split("."); - else if (!Array.isArray(path)) - throw TypeError("illegal path"); - if (path && path.length && path[0] === "") - throw Error("path must be relative"); - - var ptr = this; - while (path.length > 0) { - var part = path.shift(); - if (ptr.nested && ptr.nested[part]) { - ptr = ptr.nested[part]; - if (!(ptr instanceof Namespace)) - throw Error("path conflicts with non-namespace objects"); - } else - ptr.add(ptr = new Namespace(part)); - } - if (json) - ptr.addJSON(json); - return ptr; -}; - -/** - * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost. - * @returns {Namespace} `this` - */ -Namespace.prototype.resolveAll = function resolveAll() { - var nested = this.nestedArray, i = 0; - while (i < nested.length) - if (nested[i] instanceof Namespace) - nested[i++].resolveAll(); - else - nested[i++].resolve(); - return this.resolve(); -}; - -/** - * Recursively looks up the reflection object matching the specified path in the scope of this namespace. - * @param {string|string[]} path Path to look up - * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc. - * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked - * @returns {ReflectionObject|null} Looked up object or `null` if none could be found - */ -Namespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) { - - /* istanbul ignore next */ - if (typeof filterTypes === "boolean") { - parentAlreadyChecked = filterTypes; - filterTypes = undefined; - } else if (filterTypes && !Array.isArray(filterTypes)) - filterTypes = [ filterTypes ]; - - if (util.isString(path) && path.length) { - if (path === ".") - return this.root; - path = path.split("."); - } else if (!path.length) - return this; - - // Start at root if path is absolute - if (path[0] === "") - return this.root.lookup(path.slice(1), filterTypes); - - // Test if the first part matches any nested object, and if so, traverse if path contains more - var found = this.get(path[0]); - if (found) { - if (path.length === 1) { - if (!filterTypes || filterTypes.indexOf(found.constructor) > -1) - return found; - } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true))) - return found; - - // Otherwise try each nested namespace - } else - for (var i = 0; i < this.nestedArray.length; ++i) - if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true))) - return found; - - // If there hasn't been a match, try again at the parent - if (this.parent === null || parentAlreadyChecked) - return null; - return this.parent.lookup(path, filterTypes); -}; - -/** - * Looks up the reflection object at the specified path, relative to this namespace. - * @name NamespaceBase#lookup - * @function - * @param {string|string[]} path Path to look up - * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked - * @returns {ReflectionObject|null} Looked up object or `null` if none could be found - * @variation 2 - */ -// lookup(path: string, [parentAlreadyChecked: boolean]) - -/** - * Looks up the {@link Type|type} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Type} Looked up type - * @throws {Error} If `path` does not point to a type - */ -Namespace.prototype.lookupType = function lookupType(path) { - var found = this.lookup(path, [ Type ]); - if (!found) - throw Error("no such type: " + path); - return found; -}; - -/** - * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Enum} Looked up enum - * @throws {Error} If `path` does not point to an enum - */ -Namespace.prototype.lookupEnum = function lookupEnum(path) { - var found = this.lookup(path, [ Enum ]); - if (!found) - throw Error("no such Enum '" + path + "' in " + this); - return found; -}; - -/** - * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Type} Looked up type or enum - * @throws {Error} If `path` does not point to a type or enum - */ -Namespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) { - var found = this.lookup(path, [ Type, Enum ]); - if (!found) - throw Error("no such Type or Enum '" + path + "' in " + this); - return found; -}; - -/** - * Looks up the {@link Service|service} at the specified path, relative to this namespace. - * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`. - * @param {string|string[]} path Path to look up - * @returns {Service} Looked up service - * @throws {Error} If `path` does not point to a service - */ -Namespace.prototype.lookupService = function lookupService(path) { - var found = this.lookup(path, [ Service ]); - if (!found) - throw Error("no such Service '" + path + "' in " + this); - return found; -}; - -// Sets up cyclic dependencies (called in index-light) -Namespace._configure = function(Type_, Service_, Enum_) { - Type = Type_; - Service = Service_; - Enum = Enum_; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/object.js b/gateway/node_modules/@apollo/protobufjs/src/object.js deleted file mode 100644 index b6a5e56..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/object.js +++ /dev/null @@ -1,200 +0,0 @@ -"use strict"; -module.exports = ReflectionObject; - -ReflectionObject.className = "ReflectionObject"; - -var util = require("./util"); - -var Root; // cyclic - -/** - * Constructs a new reflection object instance. - * @classdesc Base class of all reflection objects. - * @constructor - * @param {string} name Object name - * @param {Object.} [options] Declared options - * @abstract - */ -function ReflectionObject(name, options) { - - if (!util.isString(name)) - throw TypeError("name must be a string"); - - if (options && !util.isObject(options)) - throw TypeError("options must be an object"); - - /** - * Options. - * @type {Object.|undefined} - */ - this.options = options; // toJSON - - /** - * Unique name within its namespace. - * @type {string} - */ - this.name = name; - - /** - * Parent namespace. - * @type {Namespace|null} - */ - this.parent = null; - - /** - * Whether already resolved or not. - * @type {boolean} - */ - this.resolved = false; - - /** - * Comment text, if any. - * @type {string|null} - */ - this.comment = null; - - /** - * Defining file name. - * @type {string|null} - */ - this.filename = null; -} - -Object.defineProperties(ReflectionObject.prototype, { - - /** - * Reference to the root namespace. - * @name ReflectionObject#root - * @type {Root} - * @readonly - */ - root: { - get: function() { - var ptr = this; - while (ptr.parent !== null) - ptr = ptr.parent; - return ptr; - } - }, - - /** - * Full name including leading dot. - * @name ReflectionObject#fullName - * @type {string} - * @readonly - */ - fullName: { - get: function() { - var path = [ this.name ], - ptr = this.parent; - while (ptr) { - path.unshift(ptr.name); - ptr = ptr.parent; - } - return path.join("."); - } - } -}); - -/** - * Converts this reflection object to its descriptor representation. - * @returns {Object.} Descriptor - * @abstract - */ -ReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() { - throw Error(); // not implemented, shouldn't happen -}; - -/** - * Called when this object is added to a parent. - * @param {ReflectionObject} parent Parent added to - * @returns {undefined} - */ -ReflectionObject.prototype.onAdd = function onAdd(parent) { - if (this.parent && this.parent !== parent) - this.parent.remove(this); - this.parent = parent; - this.resolved = false; - var root = parent.root; - if (root instanceof Root) - root._handleAdd(this); -}; - -/** - * Called when this object is removed from a parent. - * @param {ReflectionObject} parent Parent removed from - * @returns {undefined} - */ -ReflectionObject.prototype.onRemove = function onRemove(parent) { - var root = parent.root; - if (root instanceof Root) - root._handleRemove(this); - this.parent = null; - this.resolved = false; -}; - -/** - * Resolves this objects type references. - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.resolve = function resolve() { - if (this.resolved) - return this; - if (this.root instanceof Root) - this.resolved = true; // only if part of a root - return this; -}; - -/** - * Gets an option value. - * @param {string} name Option name - * @returns {*} Option value or `undefined` if not set - */ -ReflectionObject.prototype.getOption = function getOption(name) { - if (this.options) - return this.options[name]; - return undefined; -}; - -/** - * Sets an option. - * @param {string} name Option name - * @param {*} value Option value - * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) { - if (!ifNotSet || !this.options || this.options[name] === undefined) - (this.options || (this.options = {}))[name] = value; - return this; -}; - -/** - * Sets multiple options. - * @param {Object.} options Options to set - * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set - * @returns {ReflectionObject} `this` - */ -ReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) { - if (options) - for (var keys = Object.keys(options), i = 0; i < keys.length; ++i) - this.setOption(keys[i], options[keys[i]], ifNotSet); - return this; -}; - -/** - * Converts this instance to its string representation. - * @returns {string} Class name[, space, full name] - */ -ReflectionObject.prototype.toString = function toString() { - var className = this.constructor.className, - fullName = this.fullName; - if (fullName.length) - return className + " " + fullName; - return className; -}; - -// Sets up cyclic dependencies (called in index-light) -ReflectionObject._configure = function(Root_) { - Root = Root_; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/oneof.js b/gateway/node_modules/@apollo/protobufjs/src/oneof.js deleted file mode 100644 index ba0e902..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/oneof.js +++ /dev/null @@ -1,203 +0,0 @@ -"use strict"; -module.exports = OneOf; - -// extends ReflectionObject -var ReflectionObject = require("./object"); -((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = "OneOf"; - -var Field = require("./field"), - util = require("./util"); - -/** - * Constructs a new oneof instance. - * @classdesc Reflected oneof. - * @extends ReflectionObject - * @constructor - * @param {string} name Oneof name - * @param {string[]|Object.} [fieldNames] Field names - * @param {Object.} [options] Declared options - * @param {string} [comment] Comment associated with this field - */ -function OneOf(name, fieldNames, options, comment) { - if (!Array.isArray(fieldNames)) { - options = fieldNames; - fieldNames = undefined; - } - ReflectionObject.call(this, name, options); - - /* istanbul ignore if */ - if (!(fieldNames === undefined || Array.isArray(fieldNames))) - throw TypeError("fieldNames must be an Array"); - - /** - * Field names that belong to this oneof. - * @type {string[]} - */ - this.oneof = fieldNames || []; // toJSON, marker - - /** - * Fields that belong to this oneof as an array for iteration. - * @type {Field[]} - * @readonly - */ - this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent - - /** - * Comment for this field. - * @type {string|null} - */ - this.comment = comment; -} - -/** - * Oneof descriptor. - * @interface IOneOf - * @property {Array.} oneof Oneof field names - * @property {Object.} [options] Oneof options - */ - -/** - * Constructs a oneof from a oneof descriptor. - * @param {string} name Oneof name - * @param {IOneOf} json Oneof descriptor - * @returns {OneOf} Created oneof - * @throws {TypeError} If arguments are invalid - */ -OneOf.fromJSON = function fromJSON(name, json) { - return new OneOf(name, json.oneof, json.options, json.comment); -}; - -/** - * Converts this oneof to a oneof descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IOneOf} Oneof descriptor - */ -OneOf.prototype.toJSON = function toJSON(toJSONOptions) { - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , this.options, - "oneof" , this.oneof, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Adds the fields of the specified oneof to the parent if not already done so. - * @param {OneOf} oneof The oneof - * @returns {undefined} - * @inner - * @ignore - */ -function addFieldsToParent(oneof) { - if (oneof.parent) - for (var i = 0; i < oneof.fieldsArray.length; ++i) - if (!oneof.fieldsArray[i].parent) - oneof.parent.add(oneof.fieldsArray[i]); -} - -/** - * Adds a field to this oneof and removes it from its current parent, if any. - * @param {Field} field Field to add - * @returns {OneOf} `this` - */ -OneOf.prototype.add = function add(field) { - - /* istanbul ignore if */ - if (!(field instanceof Field)) - throw TypeError("field must be a Field"); - - if (field.parent && field.parent !== this.parent) - field.parent.remove(field); - this.oneof.push(field.name); - this.fieldsArray.push(field); - field.partOf = this; // field.parent remains null - addFieldsToParent(this); - return this; -}; - -/** - * Removes a field from this oneof and puts it back to the oneof's parent. - * @param {Field} field Field to remove - * @returns {OneOf} `this` - */ -OneOf.prototype.remove = function remove(field) { - - /* istanbul ignore if */ - if (!(field instanceof Field)) - throw TypeError("field must be a Field"); - - var index = this.fieldsArray.indexOf(field); - - /* istanbul ignore if */ - if (index < 0) - throw Error(field + " is not a member of " + this); - - this.fieldsArray.splice(index, 1); - index = this.oneof.indexOf(field.name); - - /* istanbul ignore else */ - if (index > -1) // theoretical - this.oneof.splice(index, 1); - - field.partOf = null; - return this; -}; - -/** - * @override - */ -OneOf.prototype.onAdd = function onAdd(parent) { - ReflectionObject.prototype.onAdd.call(this, parent); - var self = this; - // Collect present fields - for (var i = 0; i < this.oneof.length; ++i) { - var field = parent.get(this.oneof[i]); - if (field && !field.partOf) { - field.partOf = self; - self.fieldsArray.push(field); - } - } - // Add not yet present fields - addFieldsToParent(this); -}; - -/** - * @override - */ -OneOf.prototype.onRemove = function onRemove(parent) { - for (var i = 0, field; i < this.fieldsArray.length; ++i) - if ((field = this.fieldsArray[i]).parent) - field.parent.remove(field); - ReflectionObject.prototype.onRemove.call(this, parent); -}; - -/** - * Decorator function as returned by {@link OneOf.d} (TypeScript). - * @typedef OneOfDecorator - * @type {function} - * @param {Object} prototype Target prototype - * @param {string} oneofName OneOf name - * @returns {undefined} - */ - -/** - * OneOf decorator (TypeScript). - * @function - * @param {...string} fieldNames Field names - * @returns {OneOfDecorator} Decorator function - * @template T extends string - */ -OneOf.d = function decorateOneOf() { - var fieldNames = new Array(arguments.length), - index = 0; - while (index < arguments.length) - fieldNames[index] = arguments[index++]; - return function oneOfDecorator(prototype, oneofName) { - util.decorateType(prototype.constructor) - .add(new OneOf(oneofName, fieldNames)); - Object.defineProperty(prototype, oneofName, { - get: util.oneOfGetter(fieldNames), - set: util.oneOfSetter(fieldNames) - }); - }; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/parse.js b/gateway/node_modules/@apollo/protobufjs/src/parse.js deleted file mode 100644 index 47f94e4..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/parse.js +++ /dev/null @@ -1,761 +0,0 @@ -"use strict"; -module.exports = parse; - -parse.filename = null; -parse.defaults = { keepCase: false }; - -var tokenize = require("./tokenize"), - Root = require("./root"), - Type = require("./type"), - Field = require("./field"), - MapField = require("./mapfield"), - OneOf = require("./oneof"), - Enum = require("./enum"), - Service = require("./service"), - Method = require("./method"), - types = require("./types"), - util = require("./util"); - -var base10Re = /^[1-9][0-9]*$/, - base10NegRe = /^-?[1-9][0-9]*$/, - base16Re = /^0[x][0-9a-fA-F]+$/, - base16NegRe = /^-?0[x][0-9a-fA-F]+$/, - base8Re = /^0[0-7]+$/, - base8NegRe = /^-?0[0-7]+$/, - numberRe = /^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/, - nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/, - typeRefRe = /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/, - fqTypeRefRe = /^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/; - -/** - * Result object returned from {@link parse}. - * @interface IParserResult - * @property {string|undefined} package Package name, if declared - * @property {string[]|undefined} imports Imports, if any - * @property {string[]|undefined} weakImports Weak imports, if any - * @property {string|undefined} syntax Syntax, if specified (either `"proto2"` or `"proto3"`) - * @property {Root} root Populated root instance - */ - -/** - * Options modifying the behavior of {@link parse}. - * @interface IParseOptions - * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case - * @property {boolean} [alternateCommentMode=false] Recognize double-slash comments in addition to doc-block comments. - */ - -/** - * Options modifying the behavior of JSON serialization. - * @interface IToJSONOptions - * @property {boolean} [keepComments=false] Serializes comments. - */ - -/** - * Parses the given .proto source and returns an object with the parsed contents. - * @param {string} source Source contents - * @param {Root} root Root to populate - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {IParserResult} Parser result - * @property {string} filename=null Currently processing file name for error reporting, if known - * @property {IParseOptions} defaults Default {@link IParseOptions} - */ -function parse(source, root, options) { - /* eslint-disable callback-return */ - if (!(root instanceof Root)) { - options = root; - root = new Root(); - } - if (!options) - options = parse.defaults; - - var tn = tokenize(source, options.alternateCommentMode || false), - next = tn.next, - push = tn.push, - peek = tn.peek, - skip = tn.skip, - cmnt = tn.cmnt; - - var head = true, - pkg, - imports, - weakImports, - syntax, - isProto3 = false; - - var ptr = root; - - var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase; - - /* istanbul ignore next */ - function illegal(token, name, insideTryCatch) { - var filename = parse.filename; - if (!insideTryCatch) - parse.filename = null; - return Error("illegal " + (name || "token") + " '" + token + "' (" + (filename ? filename + ", " : "") + "line " + tn.line + ")"); - } - - function readString() { - var values = [], - token; - do { - /* istanbul ignore if */ - if ((token = next()) !== "\"" && token !== "'") - throw illegal(token); - - values.push(next()); - skip(token); - token = peek(); - } while (token === "\"" || token === "'"); - return values.join(""); - } - - function readValue(acceptTypeRef) { - var token = next(); - switch (token) { - case "'": - case "\"": - push(token); - return readString(); - case "true": case "TRUE": - return true; - case "false": case "FALSE": - return false; - } - try { - return parseNumber(token, /* insideTryCatch */ true); - } catch (e) { - - /* istanbul ignore else */ - if (acceptTypeRef && typeRefRe.test(token)) - return token; - - /* istanbul ignore next */ - throw illegal(token, "value"); - } - } - - function readRanges(target, acceptStrings) { - var token, start; - do { - if (acceptStrings && ((token = peek()) === "\"" || token === "'")) - target.push(readString()); - else - target.push([ start = parseId(next()), skip("to", true) ? parseId(next()) : start ]); - } while (skip(",", true)); - skip(";"); - } - - function parseNumber(token, insideTryCatch) { - var sign = 1; - if (token.charAt(0) === "-") { - sign = -1; - token = token.substring(1); - } - switch (token) { - case "inf": case "INF": case "Inf": - return sign * Infinity; - case "nan": case "NAN": case "Nan": case "NaN": - return NaN; - case "0": - return 0; - } - if (base10Re.test(token)) - return sign * parseInt(token, 10); - if (base16Re.test(token)) - return sign * parseInt(token, 16); - if (base8Re.test(token)) - return sign * parseInt(token, 8); - - /* istanbul ignore else */ - if (numberRe.test(token)) - return sign * parseFloat(token); - - /* istanbul ignore next */ - throw illegal(token, "number", insideTryCatch); - } - - function parseId(token, acceptNegative) { - switch (token) { - case "max": case "MAX": case "Max": - return 536870911; - case "0": - return 0; - } - - /* istanbul ignore if */ - if (!acceptNegative && token.charAt(0) === "-") - throw illegal(token, "id"); - - if (base10NegRe.test(token)) - return parseInt(token, 10); - if (base16NegRe.test(token)) - return parseInt(token, 16); - - /* istanbul ignore else */ - if (base8NegRe.test(token)) - return parseInt(token, 8); - - /* istanbul ignore next */ - throw illegal(token, "id"); - } - - function parsePackage() { - - /* istanbul ignore if */ - if (pkg !== undefined) - throw illegal("package"); - - pkg = next(); - - /* istanbul ignore if */ - if (!typeRefRe.test(pkg)) - throw illegal(pkg, "name"); - - ptr = ptr.define(pkg); - skip(";"); - } - - function parseImport() { - var token = peek(); - var whichImports; - switch (token) { - case "weak": - whichImports = weakImports || (weakImports = []); - next(); - break; - case "public": - next(); - // eslint-disable-line no-fallthrough - default: - whichImports = imports || (imports = []); - break; - } - token = readString(); - skip(";"); - whichImports.push(token); - } - - function parseSyntax() { - skip("="); - syntax = readString(); - isProto3 = syntax === "proto3"; - - /* istanbul ignore if */ - if (!isProto3 && syntax !== "proto2") - throw illegal(syntax, "syntax"); - - skip(";"); - } - - function parseCommon(parent, token) { - switch (token) { - - case "option": - parseOption(parent, token); - skip(";"); - return true; - - case "message": - parseType(parent, token); - return true; - - case "enum": - parseEnum(parent, token); - return true; - - case "service": - parseService(parent, token); - return true; - - case "extend": - parseExtension(parent, token); - return true; - } - return false; - } - - function ifBlock(obj, fnIf, fnElse) { - var trailingLine = tn.line; - if (obj) { - if(typeof obj.comment !== "string") { - obj.comment = cmnt(); // try block-type comment - } - obj.filename = parse.filename; - } - if (skip("{", true)) { - var token; - while ((token = next()) !== "}") - fnIf(token); - skip(";", true); - } else { - if (fnElse) - fnElse(); - skip(";"); - if (obj && typeof obj.comment !== "string") - obj.comment = cmnt(trailingLine); // try line-type comment if no block - } - } - - function parseType(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "type name"); - - var type = new Type(token); - ifBlock(type, function parseType_block(token) { - if (parseCommon(type, token)) - return; - - switch (token) { - - case "map": - parseMapField(type, token); - break; - - case "required": - case "optional": - case "repeated": - parseField(type, token); - break; - - case "oneof": - parseOneOf(type, token); - break; - - case "extensions": - readRanges(type.extensions || (type.extensions = [])); - break; - - case "reserved": - readRanges(type.reserved || (type.reserved = []), true); - break; - - default: - /* istanbul ignore if */ - if (!isProto3 || !typeRefRe.test(token)) - throw illegal(token); - - push(token); - parseField(type, "optional"); - break; - } - }); - parent.add(type); - } - - function parseField(parent, rule, extend) { - var type = next(); - if (type === "group") { - parseGroup(parent, rule); - return; - } - - /* istanbul ignore if */ - if (!typeRefRe.test(type)) - throw illegal(type, "type"); - - var name = next(); - - /* istanbul ignore if */ - if (!nameRe.test(name)) - throw illegal(name, "name"); - - name = applyCase(name); - skip("="); - - var field = new Field(name, parseId(next()), type, rule, extend); - ifBlock(field, function parseField_block(token) { - - /* istanbul ignore else */ - if (token === "option") { - parseOption(field, token); - skip(";"); - } else - throw illegal(token); - - }, function parseField_line() { - parseInlineOptions(field); - }); - parent.add(field); - - // JSON defaults to packed=true if not set so we have to set packed=false explicity when - // parsing proto2 descriptors without the option, where applicable. This must be done for - // all known packable types and anything that could be an enum (= is not a basic type). - if (!isProto3 && field.repeated && (types.packed[type] !== undefined || types.basic[type] === undefined)) - field.setOption("packed", false, /* ifNotSet */ true); - } - - function parseGroup(parent, rule) { - var name = next(); - - /* istanbul ignore if */ - if (!nameRe.test(name)) - throw illegal(name, "name"); - - var fieldName = util.lcFirst(name); - if (name === fieldName) - name = util.ucFirst(name); - skip("="); - var id = parseId(next()); - var type = new Type(name); - type.group = true; - var field = new Field(fieldName, id, name, rule); - field.filename = parse.filename; - ifBlock(type, function parseGroup_block(token) { - switch (token) { - - case "option": - parseOption(type, token); - skip(";"); - break; - - case "required": - case "optional": - case "repeated": - parseField(type, token); - break; - - /* istanbul ignore next */ - default: - throw illegal(token); // there are no groups with proto3 semantics - } - }); - parent.add(type) - .add(field); - } - - function parseMapField(parent) { - skip("<"); - var keyType = next(); - - /* istanbul ignore if */ - if (types.mapKey[keyType] === undefined) - throw illegal(keyType, "type"); - - skip(","); - var valueType = next(); - - /* istanbul ignore if */ - if (!typeRefRe.test(valueType)) - throw illegal(valueType, "type"); - - skip(">"); - var name = next(); - - /* istanbul ignore if */ - if (!nameRe.test(name)) - throw illegal(name, "name"); - - skip("="); - var field = new MapField(applyCase(name), parseId(next()), keyType, valueType); - ifBlock(field, function parseMapField_block(token) { - - /* istanbul ignore else */ - if (token === "option") { - parseOption(field, token); - skip(";"); - } else - throw illegal(token); - - }, function parseMapField_line() { - parseInlineOptions(field); - }); - parent.add(field); - } - - function parseOneOf(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "name"); - - var oneof = new OneOf(applyCase(token)); - ifBlock(oneof, function parseOneOf_block(token) { - if (token === "option") { - parseOption(oneof, token); - skip(";"); - } else { - push(token); - parseField(oneof, "optional"); - } - }); - parent.add(oneof); - } - - function parseEnum(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "name"); - - var enm = new Enum(token); - ifBlock(enm, function parseEnum_block(token) { - switch(token) { - case "option": - parseOption(enm, token); - skip(";"); - break; - - case "reserved": - readRanges(enm.reserved || (enm.reserved = []), true); - break; - - default: - parseEnumValue(enm, token); - } - }); - parent.add(enm); - } - - function parseEnumValue(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token)) - throw illegal(token, "name"); - - skip("="); - var value = parseId(next(), true), - dummy = {}; - ifBlock(dummy, function parseEnumValue_block(token) { - - /* istanbul ignore else */ - if (token === "option") { - parseOption(dummy, token); // skip - skip(";"); - } else - throw illegal(token); - - }, function parseEnumValue_line() { - parseInlineOptions(dummy); // skip - }); - parent.add(token, value, dummy.comment); - } - - function parseOption(parent, token) { - var isCustom = skip("(", true); - - /* istanbul ignore if */ - if (!typeRefRe.test(token = next())) - throw illegal(token, "name"); - - var name = token; - if (isCustom) { - skip(")"); - name = "(" + name + ")"; - token = peek(); - if (fqTypeRefRe.test(token)) { - name += token; - next(); - } - } - skip("="); - parseOptionValue(parent, name); - } - - function parseOptionValue(parent, name) { - if (skip("{", true)) { // { a: "foo" b { c: "bar" } } - do { - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "name"); - - if (peek() === "{") - parseOptionValue(parent, name + "." + token); - else { - skip(":"); - if (peek() === "{") - parseOptionValue(parent, name + "." + token); - else - setOption(parent, name + "." + token, readValue(true)); - } - skip(",", true); - } while (!skip("}", true)); - } else - setOption(parent, name, readValue(true)); - // Does not enforce a delimiter to be universal - } - - function setOption(parent, name, value) { - if (parent.setOption) - parent.setOption(name, value); - } - - function parseInlineOptions(parent) { - if (skip("[", true)) { - do { - parseOption(parent, "option"); - } while (skip(",", true)); - skip("]"); - } - return parent; - } - - function parseService(parent, token) { - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "service name"); - - var service = new Service(token); - ifBlock(service, function parseService_block(token) { - if (parseCommon(service, token)) - return; - - /* istanbul ignore else */ - if (token === "rpc") - parseMethod(service, token); - else - throw illegal(token); - }); - parent.add(service); - } - - function parseMethod(parent, token) { - // Get the comment of the preceding line now (if one exists) in case the - // method is defined across multiple lines. - var commentText = cmnt(); - - var type = token; - - /* istanbul ignore if */ - if (!nameRe.test(token = next())) - throw illegal(token, "name"); - - var name = token, - requestType, requestStream, - responseType, responseStream; - - skip("("); - if (skip("stream", true)) - requestStream = true; - - /* istanbul ignore if */ - if (!typeRefRe.test(token = next())) - throw illegal(token); - - requestType = token; - skip(")"); skip("returns"); skip("("); - if (skip("stream", true)) - responseStream = true; - - /* istanbul ignore if */ - if (!typeRefRe.test(token = next())) - throw illegal(token); - - responseType = token; - skip(")"); - - var method = new Method(name, type, requestType, responseType, requestStream, responseStream); - method.comment = commentText; - ifBlock(method, function parseMethod_block(token) { - - /* istanbul ignore else */ - if (token === "option") { - parseOption(method, token); - skip(";"); - } else - throw illegal(token); - - }); - parent.add(method); - } - - function parseExtension(parent, token) { - - /* istanbul ignore if */ - if (!typeRefRe.test(token = next())) - throw illegal(token, "reference"); - - var reference = token; - ifBlock(null, function parseExtension_block(token) { - switch (token) { - - case "required": - case "repeated": - case "optional": - parseField(parent, token, reference); - break; - - default: - /* istanbul ignore if */ - if (!isProto3 || !typeRefRe.test(token)) - throw illegal(token); - push(token); - parseField(parent, "optional", reference); - break; - } - }); - } - - var token; - while ((token = next()) !== null) { - switch (token) { - - case "package": - - /* istanbul ignore if */ - if (!head) - throw illegal(token); - - parsePackage(); - break; - - case "import": - - /* istanbul ignore if */ - if (!head) - throw illegal(token); - - parseImport(); - break; - - case "syntax": - - /* istanbul ignore if */ - if (!head) - throw illegal(token); - - parseSyntax(); - break; - - case "option": - - parseOption(ptr, token); - skip(";"); - break; - - default: - - /* istanbul ignore else */ - if (parseCommon(ptr, token)) { - head = false; - continue; - } - - /* istanbul ignore next */ - throw illegal(token); - } - } - - parse.filename = null; - return { - "package" : pkg, - "imports" : imports, - weakImports : weakImports, - syntax : syntax, - root : root - }; -} - -/** - * Parses the given .proto source and returns an object with the parsed contents. - * @name parse - * @function - * @param {string} source Source contents - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {IParserResult} Parser result - * @property {string} filename=null Currently processing file name for error reporting, if known - * @property {IParseOptions} defaults Default {@link IParseOptions} - * @variation 2 - */ diff --git a/gateway/node_modules/@apollo/protobufjs/src/reader.js b/gateway/node_modules/@apollo/protobufjs/src/reader.js deleted file mode 100644 index 110cd71..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/reader.js +++ /dev/null @@ -1,405 +0,0 @@ -"use strict"; -module.exports = Reader; - -var util = require("./util/minimal"); - -var BufferReader; // cyclic - -var LongBits = util.LongBits, - utf8 = util.utf8; - -/* istanbul ignore next */ -function indexOutOfRange(reader, writeLength) { - return RangeError("index out of range: " + reader.pos + " + " + (writeLength || 1) + " > " + reader.len); -} - -/** - * Constructs a new reader instance using the specified buffer. - * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`. - * @constructor - * @param {Uint8Array} buffer Buffer to read from - */ -function Reader(buffer) { - - /** - * Read buffer. - * @type {Uint8Array} - */ - this.buf = buffer; - - /** - * Read buffer position. - * @type {number} - */ - this.pos = 0; - - /** - * Read buffer length. - * @type {number} - */ - this.len = buffer.length; -} - -var create_array = typeof Uint8Array !== "undefined" - ? function create_typed_array(buffer) { - if (buffer instanceof Uint8Array || Array.isArray(buffer)) - return new Reader(buffer); - throw Error("illegal buffer"); - } - /* istanbul ignore next */ - : function create_array(buffer) { - if (Array.isArray(buffer)) - return new Reader(buffer); - throw Error("illegal buffer"); - }; - -/** - * Creates a new reader using the specified buffer. - * @function - * @param {Uint8Array|Buffer} buffer Buffer to read from - * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} - * @throws {Error} If `buffer` is not a valid buffer - */ -Reader.create = util.Buffer - ? function create_buffer_setup(buffer) { - return (Reader.create = function create_buffer(buffer) { - return util.Buffer.isBuffer(buffer) - ? new BufferReader(buffer) - /* istanbul ignore next */ - : create_array(buffer); - })(buffer); - } - /* istanbul ignore next */ - : create_array; - -Reader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice; - -/** - * Reads a varint as an unsigned 32 bit value. - * @function - * @returns {number} Value read - */ -Reader.prototype.uint32 = (function read_uint32_setup() { - var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!) - return function read_uint32() { - value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value; - value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value; - - /* istanbul ignore if */ - if ((this.pos += 5) > this.len) { - this.pos = this.len; - throw indexOutOfRange(this, 10); - } - return value; - }; -})(); - -/** - * Reads a varint as a signed 32 bit value. - * @returns {number} Value read - */ -Reader.prototype.int32 = function read_int32() { - return this.uint32() | 0; -}; - -/** - * Reads a zig-zag encoded varint as a signed 32 bit value. - * @returns {number} Value read - */ -Reader.prototype.sint32 = function read_sint32() { - var value = this.uint32(); - return value >>> 1 ^ -(value & 1) | 0; -}; - -/* eslint-disable no-invalid-this */ - -function readLongVarint() { - // tends to deopt with local vars for octet etc. - var bits = new LongBits(0, 0); - var i = 0; - if (this.len - this.pos > 4) { // fast route (lo) - for (; i < 4; ++i) { - // 1st..4th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - // 5th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0; - bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - i = 0; - } else { - for (; i < 3; ++i) { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - // 1st..3th - bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - // 4th - bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0; - return bits; - } - if (this.len - this.pos > 4) { // fast route (hi) - for (; i < 5; ++i) { - // 6th..10th - bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - } else { - for (; i < 5; ++i) { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - // 6th..10th - bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0; - if (this.buf[this.pos++] < 128) - return bits; - } - } - /* istanbul ignore next */ - throw Error("invalid varint encoding"); -} - -/* eslint-enable no-invalid-this */ - -/** - * Reads a varint as a signed 64 bit value. - * @name Reader#int64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a varint as an unsigned 64 bit value. - * @name Reader#uint64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a zig-zag encoded varint as a signed 64 bit value. - * @name Reader#sint64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a varint as a boolean. - * @returns {boolean} Value read - */ -Reader.prototype.bool = function read_bool() { - return this.uint32() !== 0; -}; - -function readFixed32_end(buf, end) { // note that this uses `end`, not `pos` - return (buf[end - 4] - | buf[end - 3] << 8 - | buf[end - 2] << 16 - | buf[end - 1] << 24) >>> 0; -} - -/** - * Reads fixed 32 bits as an unsigned 32 bit integer. - * @returns {number} Value read - */ -Reader.prototype.fixed32 = function read_fixed32() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - return readFixed32_end(this.buf, this.pos += 4); -}; - -/** - * Reads fixed 32 bits as a signed 32 bit integer. - * @returns {number} Value read - */ -Reader.prototype.sfixed32 = function read_sfixed32() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - return readFixed32_end(this.buf, this.pos += 4) | 0; -}; - -/* eslint-disable no-invalid-this */ - -function readFixed64(/* this: Reader */) { - - /* istanbul ignore if */ - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 8); - - return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4)); -} - -/* eslint-enable no-invalid-this */ - -/** - * Reads fixed 64 bits. - * @name Reader#fixed64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads zig-zag encoded fixed 64 bits. - * @name Reader#sfixed64 - * @function - * @returns {Long} Value read - */ - -/** - * Reads a float (32 bit) as a number. - * @function - * @returns {number} Value read - */ -Reader.prototype.float = function read_float() { - - /* istanbul ignore if */ - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - - var value = util.float.readFloatLE(this.buf, this.pos); - this.pos += 4; - return value; -}; - -/** - * Reads a double (64 bit float) as a number. - * @function - * @returns {number} Value read - */ -Reader.prototype.double = function read_double() { - - /* istanbul ignore if */ - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 4); - - var value = util.float.readDoubleLE(this.buf, this.pos); - this.pos += 8; - return value; -}; - -/** - * Reads a sequence of bytes preceeded by its length as a varint. - * @returns {Uint8Array} Value read - */ -Reader.prototype.bytes = function read_bytes() { - var length = this.uint32(), - start = this.pos, - end = this.pos + length; - - /* istanbul ignore if */ - if (end > this.len) - throw indexOutOfRange(this, length); - - this.pos += length; - if (Array.isArray(this.buf)) // plain array - return this.buf.slice(start, end); - return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1 - ? new this.buf.constructor(0) - : this._slice.call(this.buf, start, end); -}; - -/** - * Reads a string preceeded by its byte length as a varint. - * @returns {string} Value read - */ -Reader.prototype.string = function read_string() { - var bytes = this.bytes(); - return utf8.read(bytes, 0, bytes.length); -}; - -/** - * Skips the specified number of bytes if specified, otherwise skips a varint. - * @param {number} [length] Length if known, otherwise a varint is assumed - * @returns {Reader} `this` - */ -Reader.prototype.skip = function skip(length) { - if (typeof length === "number") { - /* istanbul ignore if */ - if (this.pos + length > this.len) - throw indexOutOfRange(this, length); - this.pos += length; - } else { - do { - /* istanbul ignore if */ - if (this.pos >= this.len) - throw indexOutOfRange(this); - } while (this.buf[this.pos++] & 128); - } - return this; -}; - -/** - * Skips the next element of the specified wire type. - * @param {number} wireType Wire type received - * @returns {Reader} `this` - */ -Reader.prototype.skipType = function(wireType) { - switch (wireType) { - case 0: - this.skip(); - break; - case 1: - this.skip(8); - break; - case 2: - this.skip(this.uint32()); - break; - case 3: - while ((wireType = this.uint32() & 7) !== 4) { - this.skipType(wireType); - } - break; - case 5: - this.skip(4); - break; - - /* istanbul ignore next */ - default: - throw Error("invalid wire type " + wireType + " at offset " + this.pos); - } - return this; -}; - -Reader._configure = function(BufferReader_) { - BufferReader = BufferReader_; - - var fn = util.Long ? "toLong" : /* istanbul ignore next */ "toNumber"; - util.merge(Reader.prototype, { - - int64: function read_int64() { - return readLongVarint.call(this)[fn](false); - }, - - uint64: function read_uint64() { - return readLongVarint.call(this)[fn](true); - }, - - sint64: function read_sint64() { - return readLongVarint.call(this).zzDecode()[fn](false); - }, - - fixed64: function read_fixed64() { - return readFixed64.call(this)[fn](true); - }, - - sfixed64: function read_sfixed64() { - return readFixed64.call(this)[fn](false); - } - - }); -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/reader_buffer.js b/gateway/node_modules/@apollo/protobufjs/src/reader_buffer.js deleted file mode 100644 index 9518901..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/reader_buffer.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -module.exports = BufferReader; - -// extends Reader -var Reader = require("./reader"); -(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader; - -var util = require("./util/minimal"); - -/** - * Constructs a new buffer reader instance. - * @classdesc Wire format reader using node buffers. - * @extends Reader - * @constructor - * @param {Buffer} buffer Buffer to read from - */ -function BufferReader(buffer) { - Reader.call(this, buffer); - - /** - * Read buffer. - * @name BufferReader#buf - * @type {Buffer} - */ -} - -/* istanbul ignore else */ -if (util.Buffer) - BufferReader.prototype._slice = util.Buffer.prototype.slice; - -/** - * @override - */ -BufferReader.prototype.string = function read_string_buffer() { - var len = this.uint32(); // modifies pos - return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len)); -}; - -/** - * Reads a sequence of bytes preceeded by its length as a varint. - * @name BufferReader#bytes - * @function - * @returns {Buffer} Value read - */ diff --git a/gateway/node_modules/@apollo/protobufjs/src/root.js b/gateway/node_modules/@apollo/protobufjs/src/root.js deleted file mode 100644 index da435d3..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/root.js +++ /dev/null @@ -1,353 +0,0 @@ -"use strict"; -module.exports = Root; - -// extends Namespace -var Namespace = require("./namespace"); -((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = "Root"; - -var Field = require("./field"), - Enum = require("./enum"), - OneOf = require("./oneof"), - util = require("./util"); - -var Type, // cyclic - parse, // might be excluded - common; // " - -/** - * Constructs a new root namespace instance. - * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together. - * @extends NamespaceBase - * @constructor - * @param {Object.} [options] Top level options - */ -function Root(options) { - Namespace.call(this, "", options); - - /** - * Deferred extension fields. - * @type {Field[]} - */ - this.deferred = []; - - /** - * Resolved file names of loaded files. - * @type {string[]} - */ - this.files = []; -} - -/** - * Loads a namespace descriptor into a root namespace. - * @param {INamespace} json Nameespace descriptor - * @param {Root} [root] Root namespace, defaults to create a new one if omitted - * @returns {Root} Root namespace - */ -Root.fromJSON = function fromJSON(json, root) { - if (!root) - root = new Root(); - if (json.options) - root.setOptions(json.options); - return root.addJSON(json.nested); -}; - -/** - * Resolves the path of an imported file, relative to the importing origin. - * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories. - * @function - * @param {string} origin The file name of the importing file - * @param {string} target The file name being imported - * @returns {string|null} Resolved path to `target` or `null` to skip the file - */ -Root.prototype.resolvePath = util.path.resolve; - -// A symbol-like function to safely signal synchronous loading -/* istanbul ignore next */ -function SYNC() {} // eslint-disable-line no-empty-function - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback. - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} options Parse options - * @param {LoadCallback} callback Callback function - * @returns {undefined} - */ -Root.prototype.load = function load(filename, options, callback) { - if (typeof options === "function") { - callback = options; - options = undefined; - } - var self = this; - if (!callback) - return util.asPromise(load, self, filename, options); - - var sync = callback === SYNC; // undocumented - - // Finishes loading by calling the callback (exactly once) - function finish(err, root) { - /* istanbul ignore if */ - if (!callback) - return; - var cb = callback; - callback = null; - if (sync) - throw err; - cb(err, root); - } - - // Bundled definition existence checking - function getBundledFileName(filename) { - var idx = filename.lastIndexOf("google/protobuf/"); - if (idx > -1) { - var altname = filename.substring(idx); - if (altname in common) return altname; - } - return null; - } - - // Processes a single file - function process(filename, source) { - try { - if (util.isString(source) && source.charAt(0) === "{") - source = JSON.parse(source); - if (!util.isString(source)) - self.setOptions(source.options).addJSON(source.nested); - else { - parse.filename = filename; - var parsed = parse(source, self, options), - resolved, - i = 0; - if (parsed.imports) - for (; i < parsed.imports.length; ++i) - if (resolved = (getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))) - fetch(resolved); - if (parsed.weakImports) - for (i = 0; i < parsed.weakImports.length; ++i) - if (resolved = (getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))) - fetch(resolved, true); - } - } catch (err) { - finish(err); - } - if (!sync && !queued) - finish(null, self); // only once anyway - } - - // Fetches a single file - function fetch(filename, weak) { - - // Skip if already loaded / attempted - if (self.files.indexOf(filename) > -1) - return; - self.files.push(filename); - - // Shortcut bundled definitions - if (filename in common) { - if (sync) - process(filename, common[filename]); - else { - ++queued; - setTimeout(function() { - --queued; - process(filename, common[filename]); - }); - } - return; - } - - // Otherwise fetch from disk or network - if (sync) { - var source; - try { - source = util.fs.readFileSync(filename).toString("utf8"); - } catch (err) { - if (!weak) - finish(err); - return; - } - process(filename, source); - } else { - ++queued; - util.fetch(filename, function(err, source) { - --queued; - /* istanbul ignore if */ - if (!callback) - return; // terminated meanwhile - if (err) { - /* istanbul ignore else */ - if (!weak) - finish(err); - else if (!queued) // can't be covered reliably - finish(null, self); - return; - } - process(filename, source); - }); - } - } - var queued = 0; - - // Assembling the root namespace doesn't require working type - // references anymore, so we can load everything in parallel - if (util.isString(filename)) - filename = [ filename ]; - for (var i = 0, resolved; i < filename.length; ++i) - if (resolved = self.resolvePath("", filename[i])) - fetch(resolved); - - if (sync) - return self; - if (!queued) - finish(null, self); - return undefined; -}; -// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback. - * @function Root#load - * @param {string|string[]} filename Names of one or multiple files to load - * @param {LoadCallback} callback Callback function - * @returns {undefined} - * @variation 2 - */ -// function load(filename:string, callback:LoadCallback):undefined - -/** - * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise. - * @function Root#load - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {Promise} Promise - * @variation 3 - */ -// function load(filename:string, [options:IParseOptions]):Promise - -/** - * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only). - * @function Root#loadSync - * @param {string|string[]} filename Names of one or multiple files to load - * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted. - * @returns {Root} Root namespace - * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid - */ -Root.prototype.loadSync = function loadSync(filename, options) { - if (!util.isNode) - throw Error("not supported"); - return this.load(filename, options, SYNC); -}; - -/** - * @override - */ -Root.prototype.resolveAll = function resolveAll() { - if (this.deferred.length) - throw Error("unresolvable extensions: " + this.deferred.map(function(field) { - return "'extend " + field.extend + "' in " + field.parent.fullName; - }).join(", ")); - return Namespace.prototype.resolveAll.call(this); -}; - -// only uppercased (and thus conflict-free) children are exposed, see below -var exposeRe = /^[A-Z]/; - -/** - * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type. - * @param {Root} root Root instance - * @param {Field} field Declaring extension field witin the declaring type - * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise - * @inner - * @ignore - */ -function tryHandleExtension(root, field) { - var extendedType = field.parent.lookup(field.extend); - if (extendedType) { - var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options); - sisterField.declaringField = field; - field.extensionField = sisterField; - extendedType.add(sisterField); - return true; - } - return false; -} - -/** - * Called when any object is added to this root or its sub-namespaces. - * @param {ReflectionObject} object Object added - * @returns {undefined} - * @private - */ -Root.prototype._handleAdd = function _handleAdd(object) { - if (object instanceof Field) { - - if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField) - if (!tryHandleExtension(this, object)) - this.deferred.push(object); - - } else if (object instanceof Enum) { - - if (exposeRe.test(object.name)) - object.parent[object.name] = object.values; // expose enum values as property of its parent - - } else if (!(object instanceof OneOf)) /* everything else is a namespace */ { - - if (object instanceof Type) // Try to handle any deferred extensions - for (var i = 0; i < this.deferred.length;) - if (tryHandleExtension(this, this.deferred[i])) - this.deferred.splice(i, 1); - else - ++i; - for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace - this._handleAdd(object._nestedArray[j]); - if (exposeRe.test(object.name)) - object.parent[object.name] = object; // expose namespace as property of its parent - } - - // The above also adds uppercased (and thus conflict-free) nested types, services and enums as - // properties of namespaces just like static code does. This allows using a .d.ts generated for - // a static module with reflection-based solutions where the condition is met. -}; - -/** - * Called when any object is removed from this root or its sub-namespaces. - * @param {ReflectionObject} object Object removed - * @returns {undefined} - * @private - */ -Root.prototype._handleRemove = function _handleRemove(object) { - if (object instanceof Field) { - - if (/* an extension field */ object.extend !== undefined) { - if (/* already handled */ object.extensionField) { // remove its sister field - object.extensionField.parent.remove(object.extensionField); - object.extensionField = null; - } else { // cancel the extension - var index = this.deferred.indexOf(object); - /* istanbul ignore else */ - if (index > -1) - this.deferred.splice(index, 1); - } - } - - } else if (object instanceof Enum) { - - if (exposeRe.test(object.name)) - delete object.parent[object.name]; // unexpose enum values - - } else if (object instanceof Namespace) { - - for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace - this._handleRemove(object._nestedArray[i]); - - if (exposeRe.test(object.name)) - delete object.parent[object.name]; // unexpose namespaces - - } -}; - -// Sets up cyclic dependencies (called in index-light) -Root._configure = function(Type_, parse_, common_) { - Type = Type_; - parse = parse_; - common = common_; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/roots.js b/gateway/node_modules/@apollo/protobufjs/src/roots.js deleted file mode 100644 index 1921211..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/roots.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -module.exports = {}; - -/** - * Named roots. - * This is where pbjs stores generated structures (the option `-r, --root` specifies a name). - * Can also be used manually to make roots available accross modules. - * @name roots - * @type {Object.} - * @example - * // pbjs -r myroot -o compiled.js ... - * - * // in another module: - * require("./compiled.js"); - * - * // in any subsequent module: - * var root = protobuf.roots["myroot"]; - */ diff --git a/gateway/node_modules/@apollo/protobufjs/src/rpc.js b/gateway/node_modules/@apollo/protobufjs/src/rpc.js deleted file mode 100644 index 894e5c7..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/rpc.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; - -/** - * Streaming RPC helpers. - * @namespace - */ -var rpc = exports; - -/** - * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets. - * @typedef RPCImpl - * @type {function} - * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called - * @param {Uint8Array} requestData Request data - * @param {RPCImplCallback} callback Callback function - * @returns {undefined} - * @example - * function rpcImpl(method, requestData, callback) { - * if (protobuf.util.lcFirst(method.name) !== "myMethod") // compatible with static code - * throw Error("no such method"); - * asynchronouslyObtainAResponse(requestData, function(err, responseData) { - * callback(err, responseData); - * }); - * } - */ - -/** - * Node-style callback as used by {@link RPCImpl}. - * @typedef RPCImplCallback - * @type {function} - * @param {Error|null} error Error, if any, otherwise `null` - * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error - * @returns {undefined} - */ - -rpc.Service = require("./rpc/service"); diff --git a/gateway/node_modules/@apollo/protobufjs/src/rpc/service.js b/gateway/node_modules/@apollo/protobufjs/src/rpc/service.js deleted file mode 100644 index 757f382..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/rpc/service.js +++ /dev/null @@ -1,142 +0,0 @@ -"use strict"; -module.exports = Service; - -var util = require("../util/minimal"); - -// Extends EventEmitter -(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service; - -/** - * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}. - * - * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`. - * @typedef rpc.ServiceMethodCallback - * @template TRes extends Message - * @type {function} - * @param {Error|null} error Error, if any - * @param {TRes} [response] Response message - * @returns {undefined} - */ - -/** - * A service method part of a {@link rpc.Service} as created by {@link Service.create}. - * @typedef rpc.ServiceMethod - * @template TReq extends Message - * @template TRes extends Message - * @type {function} - * @param {TReq|Properties} request Request message or plain object - * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message - * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined` - */ - -/** - * Constructs a new RPC service instance. - * @classdesc An RPC service as returned by {@link Service#create}. - * @exports rpc.Service - * @extends util.EventEmitter - * @constructor - * @param {RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - */ -function Service(rpcImpl, requestDelimited, responseDelimited) { - - if (typeof rpcImpl !== "function") - throw TypeError("rpcImpl must be a function"); - - util.EventEmitter.call(this); - - /** - * RPC implementation. Becomes `null` once the service is ended. - * @type {RPCImpl|null} - */ - this.rpcImpl = rpcImpl; - - /** - * Whether requests are length-delimited. - * @type {boolean} - */ - this.requestDelimited = Boolean(requestDelimited); - - /** - * Whether responses are length-delimited. - * @type {boolean} - */ - this.responseDelimited = Boolean(responseDelimited); -} - -/** - * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}. - * @param {Method|rpc.ServiceMethod} method Reflected or static method - * @param {Constructor} requestCtor Request constructor - * @param {Constructor} responseCtor Response constructor - * @param {TReq|Properties} request Request message or plain object - * @param {rpc.ServiceMethodCallback} callback Service callback - * @returns {undefined} - * @template TReq extends Message - * @template TRes extends Message - */ -Service.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) { - - if (!request) - throw TypeError("request must be specified"); - - var self = this; - if (!callback) - return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request); - - if (!self.rpcImpl) { - setTimeout(function() { callback(Error("already ended")); }, 0); - return undefined; - } - - try { - return self.rpcImpl( - method, - requestCtor[self.requestDelimited ? "encodeDelimited" : "encode"](request).finish(), - function rpcCallback(err, response) { - - if (err) { - self.emit("error", err, method); - return callback(err); - } - - if (response === null) { - self.end(/* endedByRPC */ true); - return undefined; - } - - if (!(response instanceof responseCtor)) { - try { - response = responseCtor[self.responseDelimited ? "decodeDelimited" : "decode"](response); - } catch (err) { - self.emit("error", err, method); - return callback(err); - } - } - - self.emit("data", response, method); - return callback(null, response); - } - ); - } catch (err) { - self.emit("error", err, method); - setTimeout(function() { callback(err); }, 0); - return undefined; - } -}; - -/** - * Ends this service and emits the `end` event. - * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation. - * @returns {rpc.Service} `this` - */ -Service.prototype.end = function end(endedByRPC) { - if (this.rpcImpl) { - if (!endedByRPC) // signal end to rpcImpl - this.rpcImpl(null, null, null); - this.rpcImpl = null; - this.emit("end").off(); - } - return this; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/service.js b/gateway/node_modules/@apollo/protobufjs/src/service.js deleted file mode 100644 index bc2c308..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/service.js +++ /dev/null @@ -1,167 +0,0 @@ -"use strict"; -module.exports = Service; - -// extends Namespace -var Namespace = require("./namespace"); -((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = "Service"; - -var Method = require("./method"), - util = require("./util"), - rpc = require("./rpc"); - -/** - * Constructs a new service instance. - * @classdesc Reflected service. - * @extends NamespaceBase - * @constructor - * @param {string} name Service name - * @param {Object.} [options] Service options - * @throws {TypeError} If arguments are invalid - */ -function Service(name, options) { - Namespace.call(this, name, options); - - /** - * Service methods. - * @type {Object.} - */ - this.methods = {}; // toJSON, marker - - /** - * Cached methods as an array. - * @type {Method[]|null} - * @private - */ - this._methodsArray = null; -} - -/** - * Service descriptor. - * @interface IService - * @extends INamespace - * @property {Object.} methods Method descriptors - */ - -/** - * Constructs a service from a service descriptor. - * @param {string} name Service name - * @param {IService} json Service descriptor - * @returns {Service} Created service - * @throws {TypeError} If arguments are invalid - */ -Service.fromJSON = function fromJSON(name, json) { - var service = new Service(name, json.options); - /* istanbul ignore else */ - if (json.methods) - for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i) - service.add(Method.fromJSON(names[i], json.methods[names[i]])); - if (json.nested) - service.addJSON(json.nested); - service.comment = json.comment; - return service; -}; - -/** - * Converts this service to a service descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IService} Service descriptor - */ -Service.prototype.toJSON = function toJSON(toJSONOptions) { - var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions); - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , inherited && inherited.options || undefined, - "methods" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {}, - "nested" , inherited && inherited.nested || undefined, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * Methods of this service as an array for iteration. - * @name Service#methodsArray - * @type {Method[]} - * @readonly - */ -Object.defineProperty(Service.prototype, "methodsArray", { - get: function() { - return this._methodsArray || (this._methodsArray = util.toArray(this.methods)); - } -}); - -function clearCache(service) { - service._methodsArray = null; - return service; -} - -/** - * @override - */ -Service.prototype.get = function get(name) { - return this.methods[name] - || Namespace.prototype.get.call(this, name); -}; - -/** - * @override - */ -Service.prototype.resolveAll = function resolveAll() { - var methods = this.methodsArray; - for (var i = 0; i < methods.length; ++i) - methods[i].resolve(); - return Namespace.prototype.resolve.call(this); -}; - -/** - * @override - */ -Service.prototype.add = function add(object) { - - /* istanbul ignore if */ - if (this.get(object.name)) - throw Error("duplicate name '" + object.name + "' in " + this); - - if (object instanceof Method) { - this.methods[object.name] = object; - object.parent = this; - return clearCache(this); - } - return Namespace.prototype.add.call(this, object); -}; - -/** - * @override - */ -Service.prototype.remove = function remove(object) { - if (object instanceof Method) { - - /* istanbul ignore if */ - if (this.methods[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.methods[object.name]; - object.parent = null; - return clearCache(this); - } - return Namespace.prototype.remove.call(this, object); -}; - -/** - * Creates a runtime service using the specified rpc implementation. - * @param {RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed. - */ -Service.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) { - var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited); - for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) { - var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\w_]/g, ""); - rpcService[methodName] = util.codegen(["r","c"], util.isReserved(methodName) ? methodName + "_" : methodName)("return this.rpcCall(m,q,s,r,c)")({ - m: method, - q: method.resolvedRequestType.ctor, - s: method.resolvedResponseType.ctor - }); - } - return rpcService; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/tokenize.js b/gateway/node_modules/@apollo/protobufjs/src/tokenize.js deleted file mode 100644 index b939ef2..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/tokenize.js +++ /dev/null @@ -1,397 +0,0 @@ -"use strict"; -module.exports = tokenize; - -var delimRe = /[\s{}=;:[\],'"()<>]/g, - stringDoubleRe = /(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g, - stringSingleRe = /(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g; - -var setCommentRe = /^ *[*/]+ */, - setCommentAltRe = /^\s*\*?\/*/, - setCommentSplitRe = /\n/g, - whitespaceRe = /\s/, - unescapeRe = /\\(.?)/g; - -var unescapeMap = { - "0": "\0", - "r": "\r", - "n": "\n", - "t": "\t" -}; - -/** - * Unescapes a string. - * @param {string} str String to unescape - * @returns {string} Unescaped string - * @property {Object.} map Special characters map - * @memberof tokenize - */ -function unescape(str) { - return str.replace(unescapeRe, function($0, $1) { - switch ($1) { - case "\\": - case "": - return $1; - default: - return unescapeMap[$1] || ""; - } - }); -} - -tokenize.unescape = unescape; - -/** - * Gets the next token and advances. - * @typedef TokenizerHandleNext - * @type {function} - * @returns {string|null} Next token or `null` on eof - */ - -/** - * Peeks for the next token. - * @typedef TokenizerHandlePeek - * @type {function} - * @returns {string|null} Next token or `null` on eof - */ - -/** - * Pushes a token back to the stack. - * @typedef TokenizerHandlePush - * @type {function} - * @param {string} token Token - * @returns {undefined} - */ - -/** - * Skips the next token. - * @typedef TokenizerHandleSkip - * @type {function} - * @param {string} expected Expected token - * @param {boolean} [optional=false] If optional - * @returns {boolean} Whether the token matched - * @throws {Error} If the token didn't match and is not optional - */ - -/** - * Gets the comment on the previous line or, alternatively, the line comment on the specified line. - * @typedef TokenizerHandleCmnt - * @type {function} - * @param {number} [line] Line number - * @returns {string|null} Comment text or `null` if none - */ - -/** - * Handle object returned from {@link tokenize}. - * @interface ITokenizerHandle - * @property {TokenizerHandleNext} next Gets the next token and advances (`null` on eof) - * @property {TokenizerHandlePeek} peek Peeks for the next token (`null` on eof) - * @property {TokenizerHandlePush} push Pushes a token back to the stack - * @property {TokenizerHandleSkip} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws - * @property {TokenizerHandleCmnt} cmnt Gets the comment on the previous line or the line comment on the specified line, if any - * @property {number} line Current line number - */ - -/** - * Tokenizes the given .proto source and returns an object with useful utility functions. - * @param {string} source Source contents - * @param {boolean} alternateCommentMode Whether we should activate alternate comment parsing mode. - * @returns {ITokenizerHandle} Tokenizer handle - */ -function tokenize(source, alternateCommentMode) { - /* eslint-disable callback-return */ - source = source.toString(); - - var offset = 0, - length = source.length, - line = 1, - commentType = null, - commentText = null, - commentLine = 0, - commentLineEmpty = false; - - var stack = []; - - var stringDelim = null; - - /* istanbul ignore next */ - /** - * Creates an error for illegal syntax. - * @param {string} subject Subject - * @returns {Error} Error created - * @inner - */ - function illegal(subject) { - return Error("illegal " + subject + " (line " + line + ")"); - } - - /** - * Reads a string till its end. - * @returns {string} String read - * @inner - */ - function readString() { - var re = stringDelim === "'" ? stringSingleRe : stringDoubleRe; - re.lastIndex = offset - 1; - var match = re.exec(source); - if (!match) - throw illegal("string"); - offset = re.lastIndex; - push(stringDelim); - stringDelim = null; - return unescape(match[1]); - } - - /** - * Gets the character at `pos` within the source. - * @param {number} pos Position - * @returns {string} Character - * @inner - */ - function charAt(pos) { - return source.charAt(pos); - } - - /** - * Sets the current comment text. - * @param {number} start Start offset - * @param {number} end End offset - * @returns {undefined} - * @inner - */ - function setComment(start, end) { - commentType = source.charAt(start++); - commentLine = line; - commentLineEmpty = false; - var lookback; - if (alternateCommentMode) { - lookback = 2; // alternate comment parsing: "//" or "/*" - } else { - lookback = 3; // "///" or "/**" - } - var commentOffset = start - lookback, - c; - do { - if (--commentOffset < 0 || - (c = source.charAt(commentOffset)) === "\n") { - commentLineEmpty = true; - break; - } - } while (c === " " || c === "\t"); - var lines = source - .substring(start, end) - .split(setCommentSplitRe); - for (var i = 0; i < lines.length; ++i) - lines[i] = lines[i] - .replace(alternateCommentMode ? setCommentAltRe : setCommentRe, "") - .trim(); - commentText = lines - .join("\n") - .trim(); - } - - function isDoubleSlashCommentLine(startOffset) { - var endOffset = findEndOfLine(startOffset); - - // see if remaining line matches comment pattern - var lineText = source.substring(startOffset, endOffset); - // look for 1 or 2 slashes since startOffset would already point past - // the first slash that started the comment. - var isComment = /^\s*\/{1,2}/.test(lineText); - return isComment; - } - - function findEndOfLine(cursor) { - // find end of cursor's line - var endOffset = cursor; - while (endOffset < length && charAt(endOffset) !== "\n") { - endOffset++; - } - return endOffset; - } - - /** - * Obtains the next token. - * @returns {string|null} Next token or `null` on eof - * @inner - */ - function next() { - if (stack.length > 0) - return stack.shift(); - if (stringDelim) - return readString(); - var repeat, - prev, - curr, - start, - isDoc; - do { - if (offset === length) - return null; - repeat = false; - while (whitespaceRe.test(curr = charAt(offset))) { - if (curr === "\n") - ++line; - if (++offset === length) - return null; - } - - if (charAt(offset) === "/") { - if (++offset === length) { - throw illegal("comment"); - } - if (charAt(offset) === "/") { // Line - if (!alternateCommentMode) { - // check for triple-slash comment - isDoc = charAt(start = offset + 1) === "/"; - - while (charAt(++offset) !== "\n") { - if (offset === length) { - return null; - } - } - ++offset; - if (isDoc) { - setComment(start, offset - 1); - } - ++line; - repeat = true; - } else { - // check for double-slash comments, consolidating consecutive lines - start = offset; - isDoc = false; - if (isDoubleSlashCommentLine(offset)) { - isDoc = true; - do { - offset = findEndOfLine(offset); - if (offset === length) { - break; - } - offset++; - } while (isDoubleSlashCommentLine(offset)); - } else { - offset = Math.min(length, findEndOfLine(offset) + 1); - } - if (isDoc) { - setComment(start, offset); - } - line++; - repeat = true; - } - } else if ((curr = charAt(offset)) === "*") { /* Block */ - // check for /** (regular comment mode) or /* (alternate comment mode) - start = offset + 1; - isDoc = alternateCommentMode || charAt(start) === "*"; - do { - if (curr === "\n") { - ++line; - } - if (++offset === length) { - throw illegal("comment"); - } - prev = curr; - curr = charAt(offset); - } while (prev !== "*" || curr !== "/"); - ++offset; - if (isDoc) { - setComment(start, offset - 2); - } - repeat = true; - } else { - return "/"; - } - } - } while (repeat); - - // offset !== length if we got here - - var end = offset; - delimRe.lastIndex = 0; - var delim = delimRe.test(charAt(end++)); - if (!delim) - while (end < length && !delimRe.test(charAt(end))) - ++end; - var token = source.substring(offset, offset = end); - if (token === "\"" || token === "'") - stringDelim = token; - return token; - } - - /** - * Pushes a token back to the stack. - * @param {string} token Token - * @returns {undefined} - * @inner - */ - function push(token) { - stack.push(token); - } - - /** - * Peeks for the next token. - * @returns {string|null} Token or `null` on eof - * @inner - */ - function peek() { - if (!stack.length) { - var token = next(); - if (token === null) - return null; - push(token); - } - return stack[0]; - } - - /** - * Skips a token. - * @param {string} expected Expected token - * @param {boolean} [optional=false] Whether the token is optional - * @returns {boolean} `true` when skipped, `false` if not - * @throws {Error} When a required token is not present - * @inner - */ - function skip(expected, optional) { - var actual = peek(), - equals = actual === expected; - if (equals) { - next(); - return true; - } - if (!optional) - throw illegal("token '" + actual + "', '" + expected + "' expected"); - return false; - } - - /** - * Gets a comment. - * @param {number} [trailingLine] Line number if looking for a trailing comment - * @returns {string|null} Comment text - * @inner - */ - function cmnt(trailingLine) { - var ret = null; - if (trailingLine === undefined) { - if (commentLine === line - 1 && (alternateCommentMode || commentType === "*" || commentLineEmpty)) { - ret = commentText; - } - } else { - /* istanbul ignore else */ - if (commentLine < trailingLine) { - peek(); - } - if (commentLine === trailingLine && !commentLineEmpty && (alternateCommentMode || commentType === "/")) { - ret = commentText; - } - } - return ret; - } - - return Object.defineProperty({ - next: next, - peek: peek, - push: push, - skip: skip, - cmnt: cmnt - }, "line", { - get: function() { return line; } - }); - /* eslint-enable callback-return */ -} diff --git a/gateway/node_modules/@apollo/protobufjs/src/type.js b/gateway/node_modules/@apollo/protobufjs/src/type.js deleted file mode 100644 index 2e7bda4..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/type.js +++ /dev/null @@ -1,589 +0,0 @@ -"use strict"; -module.exports = Type; - -// extends Namespace -var Namespace = require("./namespace"); -((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = "Type"; - -var Enum = require("./enum"), - OneOf = require("./oneof"), - Field = require("./field"), - MapField = require("./mapfield"), - Service = require("./service"), - Message = require("./message"), - Reader = require("./reader"), - Writer = require("./writer"), - util = require("./util"), - encoder = require("./encoder"), - decoder = require("./decoder"), - verifier = require("./verifier"), - converter = require("./converter"), - wrappers = require("./wrappers"); - -/** - * Constructs a new reflected message type instance. - * @classdesc Reflected message type. - * @extends NamespaceBase - * @constructor - * @param {string} name Message name - * @param {Object.} [options] Declared options - */ -function Type(name, options) { - Namespace.call(this, name, options); - - /** - * Message fields. - * @type {Object.} - */ - this.fields = {}; // toJSON, marker - - /** - * Oneofs declared within this namespace, if any. - * @type {Object.} - */ - this.oneofs = undefined; // toJSON - - /** - * Extension ranges, if any. - * @type {number[][]} - */ - this.extensions = undefined; // toJSON - - /** - * Reserved ranges, if any. - * @type {Array.} - */ - this.reserved = undefined; // toJSON - - /*? - * Whether this type is a legacy group. - * @type {boolean|undefined} - */ - this.group = undefined; // toJSON - - /** - * Cached fields by id. - * @type {Object.|null} - * @private - */ - this._fieldsById = null; - - /** - * Cached fields as an array. - * @type {Field[]|null} - * @private - */ - this._fieldsArray = null; - - /** - * Cached oneofs as an array. - * @type {OneOf[]|null} - * @private - */ - this._oneofsArray = null; - - /** - * Cached constructor. - * @type {Constructor<{}>} - * @private - */ - this._ctor = null; -} - -Object.defineProperties(Type.prototype, { - - /** - * Message fields by id. - * @name Type#fieldsById - * @type {Object.} - * @readonly - */ - fieldsById: { - get: function() { - - /* istanbul ignore if */ - if (this._fieldsById) - return this._fieldsById; - - this._fieldsById = {}; - for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) { - var field = this.fields[names[i]], - id = field.id; - - /* istanbul ignore if */ - if (this._fieldsById[id]) - throw Error("duplicate id " + id + " in " + this); - - this._fieldsById[id] = field; - } - return this._fieldsById; - } - }, - - /** - * Fields of this message as an array for iteration. - * @name Type#fieldsArray - * @type {Field[]} - * @readonly - */ - fieldsArray: { - get: function() { - return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields)); - } - }, - - /** - * Oneofs of this message as an array for iteration. - * @name Type#oneofsArray - * @type {OneOf[]} - * @readonly - */ - oneofsArray: { - get: function() { - return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs)); - } - }, - - /** - * The registered constructor, if any registered, otherwise a generic constructor. - * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor. - * @name Type#ctor - * @type {Constructor<{}>} - */ - ctor: { - get: function() { - return this._ctor || (this.ctor = Type.generateConstructor(this)()); - }, - set: function(ctor) { - - // Ensure proper prototype - var prototype = ctor.prototype; - if (!(prototype instanceof Message)) { - (ctor.prototype = new Message()).constructor = ctor; - util.merge(ctor.prototype, prototype); - } - - // Classes and messages reference their reflected type - ctor.$type = ctor.prototype.$type = this; - - // Mix in static methods - util.merge(ctor, Message, true); - - this._ctor = ctor; - - // Messages have non-enumerable default values on their prototype - var i = 0; - for (; i < /* initializes */ this.fieldsArray.length; ++i) - this._fieldsArray[i].resolve(); // ensures a proper value - - // Messages have non-enumerable getters and setters for each virtual oneof field - var ctorProperties = {}; - for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i) - ctorProperties[this._oneofsArray[i].resolve().name] = { - get: util.oneOfGetter(this._oneofsArray[i].oneof), - set: util.oneOfSetter(this._oneofsArray[i].oneof) - }; - if (i) - Object.defineProperties(ctor.prototype, ctorProperties); - } - } -}); - -/** - * Generates a constructor function for the specified type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -Type.generateConstructor = function generateConstructor(mtype) { - /* eslint-disable no-unexpected-multiline */ - var gen = util.codegen(["p"], mtype.name); - // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype - for (var i = 0, field; i < mtype.fieldsArray.length; ++i) - if ((field = mtype._fieldsArray[i]).map) gen - ("this%s={}", util.safeProp(field.name)); - else if (field.repeated) gen - ("this%s=[]", util.safeProp(field.name)); - return gen - ("if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors - * @property {Object.} fields Field descriptors - * @property {number[][]} [extensions] Extension ranges - * @property {number[][]} [reserved] Reserved ranges - * @property {boolean} [group=false] Whether a legacy group or not - */ - -/** - * Creates a message type from a message type descriptor. - * @param {string} name Message name - * @param {IType} json Message type descriptor - * @returns {Type} Created message type - */ -Type.fromJSON = function fromJSON(name, json) { - var type = new Type(name, json.options); - type.extensions = json.extensions; - type.reserved = json.reserved; - var names = Object.keys(json.fields), - i = 0; - for (; i < names.length; ++i) - type.add( - ( typeof json.fields[names[i]].keyType !== "undefined" - ? MapField.fromJSON - : Field.fromJSON )(names[i], json.fields[names[i]]) - ); - if (json.oneofs) - for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i) - type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]])); - if (json.nested) - for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) { - var nested = json.nested[names[i]]; - type.add( // most to least likely - ( nested.id !== undefined - ? Field.fromJSON - : nested.fields !== undefined - ? Type.fromJSON - : nested.values !== undefined - ? Enum.fromJSON - : nested.methods !== undefined - ? Service.fromJSON - : Namespace.fromJSON )(names[i], nested) - ); - } - if (json.extensions && json.extensions.length) - type.extensions = json.extensions; - if (json.reserved && json.reserved.length) - type.reserved = json.reserved; - if (json.group) - type.group = true; - if (json.comment) - type.comment = json.comment; - return type; -}; - -/** - * Converts this message type to a message type descriptor. - * @param {IToJSONOptions} [toJSONOptions] JSON conversion options - * @returns {IType} Message type descriptor - */ -Type.prototype.toJSON = function toJSON(toJSONOptions) { - var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions); - var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false; - return util.toObject([ - "options" , inherited && inherited.options || undefined, - "oneofs" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions), - "fields" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {}, - "extensions" , this.extensions && this.extensions.length ? this.extensions : undefined, - "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined, - "group" , this.group || undefined, - "nested" , inherited && inherited.nested || undefined, - "comment" , keepComments ? this.comment : undefined - ]); -}; - -/** - * @override - */ -Type.prototype.resolveAll = function resolveAll() { - var fields = this.fieldsArray, i = 0; - while (i < fields.length) - fields[i++].resolve(); - var oneofs = this.oneofsArray; i = 0; - while (i < oneofs.length) - oneofs[i++].resolve(); - return Namespace.prototype.resolveAll.call(this); -}; - -/** - * @override - */ -Type.prototype.get = function get(name) { - return this.fields[name] - || this.oneofs && this.oneofs[name] - || this.nested && this.nested[name] - || null; -}; - -/** - * Adds a nested object to this type. - * @param {ReflectionObject} object Nested object to add - * @returns {Type} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id - */ -Type.prototype.add = function add(object) { - - if (this.get(object.name)) - throw Error("duplicate name '" + object.name + "' in " + this); - - if (object instanceof Field && object.extend === undefined) { - // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects. - // The root object takes care of adding distinct sister-fields to the respective extended - // type instead. - - // avoids calling the getter if not absolutely necessary because it's called quite frequently - if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id]) - throw Error("duplicate id " + object.id + " in " + this); - if (this.isReservedId(object.id)) - throw Error("id " + object.id + " is reserved in " + this); - if (this.isReservedName(object.name)) - throw Error("name '" + object.name + "' is reserved in " + this); - - if (object.parent) - object.parent.remove(object); - this.fields[object.name] = object; - object.message = this; - object.onAdd(this); - return clearCache(this); - } - if (object instanceof OneOf) { - if (!this.oneofs) - this.oneofs = {}; - this.oneofs[object.name] = object; - object.onAdd(this); - return clearCache(this); - } - return Namespace.prototype.add.call(this, object); -}; - -/** - * Removes a nested object from this type. - * @param {ReflectionObject} object Nested object to remove - * @returns {Type} `this` - * @throws {TypeError} If arguments are invalid - * @throws {Error} If `object` is not a member of this type - */ -Type.prototype.remove = function remove(object) { - if (object instanceof Field && object.extend === undefined) { - // See Type#add for the reason why extension fields are excluded here. - - /* istanbul ignore if */ - if (!this.fields || this.fields[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.fields[object.name]; - object.parent = null; - object.onRemove(this); - return clearCache(this); - } - if (object instanceof OneOf) { - - /* istanbul ignore if */ - if (!this.oneofs || this.oneofs[object.name] !== object) - throw Error(object + " is not a member of " + this); - - delete this.oneofs[object.name]; - object.parent = null; - object.onRemove(this); - return clearCache(this); - } - return Namespace.prototype.remove.call(this, object); -}; - -/** - * Tests if the specified id is reserved. - * @param {number} id Id to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Type.prototype.isReservedId = function isReservedId(id) { - return Namespace.isReservedId(this.reserved, id); -}; - -/** - * Tests if the specified name is reserved. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -Type.prototype.isReservedName = function isReservedName(name) { - return Namespace.isReservedName(this.reserved, name); -}; - -/** - * Creates a new message of this type using the specified properties. - * @param {Object.} [properties] Properties to set - * @returns {Message<{}>} Message instance - */ -Type.prototype.create = function create(properties) { - return new this.ctor(properties); -}; - -/** - * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}. - * @returns {Type} `this` - */ -Type.prototype.setup = function setup() { - // Sets up everything at once so that the prototype chain does not have to be re-evaluated - // multiple times (V8, soft-deopt prototype-check). - - var fullName = this.fullName, - types = []; - for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i) - types.push(this._fieldsArray[i].resolve().resolvedType); - - // Replace setup methods with type-specific generated functions - this.encode = encoder(this)({ - Writer : Writer, - types : types, - util : util - }); - this.decode = decoder(this)({ - Reader : Reader, - types : types, - util : util - }); - this.verify = verifier(this)({ - types : types, - util : util - }); - this.fromObject = converter.fromObject(this)({ - types : types, - util : util - }); - this.toObject = converter.toObject(this)({ - types : types, - util : util - }); - - // Inject custom wrappers for common types - var wrapper = wrappers[fullName]; - if (wrapper) { - var originalThis = Object.create(this); - // if (wrapper.fromObject) { - originalThis.fromObject = this.fromObject; - this.fromObject = wrapper.fromObject.bind(originalThis); - // } - // if (wrapper.toObject) { - originalThis.toObject = this.toObject; - this.toObject = wrapper.toObject.bind(originalThis); - // } - } - - return this; -}; - -/** - * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages. - * @param {Message<{}>|Object.} message Message instance or plain object - * @param {Writer} [writer] Writer to encode to - * @returns {Writer} writer - */ -Type.prototype.encode = function encode_setup(message, writer) { - return this.setup().encode(message, writer); // overrides this method -}; - -/** - * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages. - * @param {Message<{}>|Object.} message Message instance or plain object - * @param {Writer} [writer] Writer to encode to - * @returns {Writer} writer - */ -Type.prototype.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); -}; - -/** - * Decodes a message of this type. - * @param {Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Length of the message, if known beforehand - * @returns {Message<{}>} Decoded message - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {util.ProtocolError<{}>} If required fields are missing - */ -Type.prototype.decode = function decode_setup(reader, length) { - return this.setup().decode(reader, length); // overrides this method -}; - -/** - * Decodes a message of this type preceeded by its byte length as a varint. - * @param {Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {Message<{}>} Decoded message - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {util.ProtocolError} If required fields are missing - */ -Type.prototype.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof Reader)) - reader = Reader.create(reader); - return this.decode(reader, reader.uint32()); -}; - -/** - * Verifies that field values are valid and that required fields are present. - * @param {Object.} message Plain object to verify - * @returns {null|string} `null` if valid, otherwise the reason why it is not - */ -Type.prototype.verify = function verify_setup(message) { - return this.setup().verify(message); // overrides this method -}; - -/** - * Creates a new message of this type from a plain object. Also converts values to their respective internal types. - * @param {Object.} object Plain object to convert - * @returns {Message<{}>} Message instance - */ -Type.prototype.fromObject = function fromObject(object) { - return this.setup().fromObject(object); -}; - -/** - * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}. - * @interface IConversionOptions - * @property {Function} [longs] Long conversion type. - * Valid values are `String` and `Number` (the global types). - * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library. - * @property {Function} [enums] Enum value conversion type. - * Only valid value is `String` (the global type). - * Defaults to copy the present value, which is the numeric id. - * @property {Function} [bytes] Bytes value conversion type. - * Valid values are `Array` and (a base64 encoded) `String` (the global types). - * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser. - * @property {boolean} [defaults=false] Also sets default values on the resulting object - * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false` - * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false` - * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any - * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings - */ - -/** - * Creates a plain object from a message of this type. Also converts values to other types if specified. - * @param {Message<{}>} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ -Type.prototype.toObject = function toObject(message, options) { - return this.setup().toObject(message, options); -}; - -/** - * Decorator function as returned by {@link Type.d} (TypeScript). - * @typedef TypeDecorator - * @type {function} - * @param {Constructor} target Target constructor - * @returns {undefined} - * @template T extends Message - */ - -/** - * Type decorator (TypeScript). - * @param {string} [typeName] Type name, defaults to the constructor's name - * @returns {TypeDecorator} Decorator function - * @template T extends Message - */ -Type.d = function decorateType(typeName) { - return function typeDecorator(target) { - util.decorateType(target, typeName); - }; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/types.js b/gateway/node_modules/@apollo/protobufjs/src/types.js deleted file mode 100644 index 5fda19a..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/types.js +++ /dev/null @@ -1,196 +0,0 @@ -"use strict"; - -/** - * Common type constants. - * @namespace - */ -var types = exports; - -var util = require("./util"); - -var s = [ - "double", // 0 - "float", // 1 - "int32", // 2 - "uint32", // 3 - "sint32", // 4 - "fixed32", // 5 - "sfixed32", // 6 - "int64", // 7 - "uint64", // 8 - "sint64", // 9 - "fixed64", // 10 - "sfixed64", // 11 - "bool", // 12 - "string", // 13 - "bytes" // 14 -]; - -function bake(values, offset) { - var i = 0, o = {}; - offset |= 0; - while (i < values.length) o[s[i + offset]] = values[i++]; - return o; -} - -/** - * Basic type wire types. - * @type {Object.} - * @const - * @property {number} double=1 Fixed64 wire type - * @property {number} float=5 Fixed32 wire type - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - * @property {number} string=2 Ldelim wire type - * @property {number} bytes=2 Ldelim wire type - */ -types.basic = bake([ - /* double */ 1, - /* float */ 5, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0, - /* string */ 2, - /* bytes */ 2 -]); - -/** - * Basic type defaults. - * @type {Object.} - * @const - * @property {number} double=0 Double default - * @property {number} float=0 Float default - * @property {number} int32=0 Int32 default - * @property {number} uint32=0 Uint32 default - * @property {number} sint32=0 Sint32 default - * @property {number} fixed32=0 Fixed32 default - * @property {number} sfixed32=0 Sfixed32 default - * @property {number} int64=0 Int64 default - * @property {number} uint64=0 Uint64 default - * @property {number} sint64=0 Sint32 default - * @property {number} fixed64=0 Fixed64 default - * @property {number} sfixed64=0 Sfixed64 default - * @property {boolean} bool=false Bool default - * @property {string} string="" String default - * @property {Array.} bytes=Array(0) Bytes default - * @property {null} message=null Message default - */ -types.defaults = bake([ - /* double */ 0, - /* float */ 0, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 0, - /* sfixed32 */ 0, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 0, - /* sfixed64 */ 0, - /* bool */ false, - /* string */ "", - /* bytes */ util.emptyArray, - /* message */ null -]); - -/** - * Basic long type wire types. - * @type {Object.} - * @const - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - */ -types.long = bake([ - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1 -], 7); - -/** - * Allowed types for map keys with their associated wire type. - * @type {Object.} - * @const - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - * @property {number} string=2 Ldelim wire type - */ -types.mapKey = bake([ - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0, - /* string */ 2 -], 2); - -/** - * Allowed types for packed repeated fields with their associated wire type. - * @type {Object.} - * @const - * @property {number} double=1 Fixed64 wire type - * @property {number} float=5 Fixed32 wire type - * @property {number} int32=0 Varint wire type - * @property {number} uint32=0 Varint wire type - * @property {number} sint32=0 Varint wire type - * @property {number} fixed32=5 Fixed32 wire type - * @property {number} sfixed32=5 Fixed32 wire type - * @property {number} int64=0 Varint wire type - * @property {number} uint64=0 Varint wire type - * @property {number} sint64=0 Varint wire type - * @property {number} fixed64=1 Fixed64 wire type - * @property {number} sfixed64=1 Fixed64 wire type - * @property {number} bool=0 Varint wire type - */ -types.packed = bake([ - /* double */ 1, - /* float */ 5, - /* int32 */ 0, - /* uint32 */ 0, - /* sint32 */ 0, - /* fixed32 */ 5, - /* sfixed32 */ 5, - /* int64 */ 0, - /* uint64 */ 0, - /* sint64 */ 0, - /* fixed64 */ 1, - /* sfixed64 */ 1, - /* bool */ 0 -]); diff --git a/gateway/node_modules/@apollo/protobufjs/src/typescript.jsdoc b/gateway/node_modules/@apollo/protobufjs/src/typescript.jsdoc deleted file mode 100644 index 33bc518..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/typescript.jsdoc +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Constructor type. - * @interface Constructor - * @extends Function - * @template T - * @tstype new(...params: any[]): T; prototype: T; - */ - -/** - * Properties type. - * @typedef Properties - * @template T - * @type {Object.} - * @tstype { [P in keyof T]?: T[P] } - */ - -/** - * Type that is convertible to array. - * @interface ToArray - * @template T - * @tstype toArray(): T[]; - */ diff --git a/gateway/node_modules/@apollo/protobufjs/src/util.js b/gateway/node_modules/@apollo/protobufjs/src/util.js deleted file mode 100644 index a5a9a83..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/util.js +++ /dev/null @@ -1,178 +0,0 @@ -"use strict"; - -/** - * Various utility functions. - * @namespace - */ -var util = module.exports = require("./util/minimal"); - -var roots = require("./roots"); - -var Type, // cyclic - Enum; - -util.codegen = require("@protobufjs/codegen"); -util.fetch = require("@protobufjs/fetch"); -util.path = require("@protobufjs/path"); - -/** - * Node's fs module if available. - * @type {Object.} - */ -util.fs = util.inquire("fs"); - -/** - * Converts an object's values to an array. - * @param {Object.} object Object to convert - * @returns {Array.<*>} Converted array - */ -util.toArray = function toArray(object) { - if (object) { - var keys = Object.keys(object), - array = new Array(keys.length), - index = 0; - while (index < keys.length) - array[index] = object[keys[index++]]; - return array; - } - return []; -}; - -/** - * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values. - * @param {Array.<*>} array Array to convert - * @returns {Object.} Converted object - */ -util.toObject = function toObject(array) { - var object = {}, - index = 0; - while (index < array.length) { - var key = array[index++], - val = array[index++]; - if (val !== undefined) - object[key] = val; - } - return object; -}; - -var safePropBackslashRe = /\\/g, - safePropQuoteRe = /"/g; - -/** - * Tests whether the specified name is a reserved word in JS. - * @param {string} name Name to test - * @returns {boolean} `true` if reserved, otherwise `false` - */ -util.isReserved = function isReserved(name) { - return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name); -}; - -/** - * Returns a safe property accessor for the specified property name. - * @param {string} prop Property name - * @returns {string} Safe accessor - */ -util.safeProp = function safeProp(prop) { - if (!/^[$\w_]+$/.test(prop) || util.isReserved(prop)) - return "[\"" + prop.replace(safePropBackslashRe, "\\\\").replace(safePropQuoteRe, "\\\"") + "\"]"; - return "." + prop; -}; - -/** - * Converts the first character of a string to upper case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.ucFirst = function ucFirst(str) { - return str.charAt(0).toUpperCase() + str.substring(1); -}; - -var camelCaseRe = /_([a-z])/g; - -/** - * Converts a string to camel case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.camelCase = function camelCase(str) { - return str.substring(0, 1) - + str.substring(1) - .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); }); -}; - -/** - * Compares reflected fields by id. - * @param {Field} a First field - * @param {Field} b Second field - * @returns {number} Comparison value - */ -util.compareFieldsById = function compareFieldsById(a, b) { - return a.id - b.id; -}; - -/** - * Decorator helper for types (TypeScript). - * @param {Constructor} ctor Constructor function - * @param {string} [typeName] Type name, defaults to the constructor's name - * @returns {Type} Reflected type - * @template T extends Message - * @property {Root} root Decorators root - */ -util.decorateType = function decorateType(ctor, typeName) { - - /* istanbul ignore if */ - if (ctor.$type) { - if (typeName && ctor.$type.name !== typeName) { - util.decorateRoot.remove(ctor.$type); - ctor.$type.name = typeName; - util.decorateRoot.add(ctor.$type); - } - return ctor.$type; - } - - /* istanbul ignore next */ - if (!Type) - Type = require("./type"); - - var type = new Type(typeName || ctor.name); - util.decorateRoot.add(type); - type.ctor = ctor; // sets up .encode, .decode etc. - Object.defineProperty(ctor, "$type", { value: type, enumerable: false }); - Object.defineProperty(ctor.prototype, "$type", { value: type, enumerable: false }); - return type; -}; - -var decorateEnumIndex = 0; - -/** - * Decorator helper for enums (TypeScript). - * @param {Object} object Enum object - * @returns {Enum} Reflected enum - */ -util.decorateEnum = function decorateEnum(object) { - - /* istanbul ignore if */ - if (object.$type) - return object.$type; - - /* istanbul ignore next */ - if (!Enum) - Enum = require("./enum"); - - var enm = new Enum("Enum" + decorateEnumIndex++, object); - util.decorateRoot.add(enm); - Object.defineProperty(object, "$type", { value: enm, enumerable: false }); - return enm; -}; - -/** - * Decorator root (TypeScript). - * @name util.decorateRoot - * @type {Root} - * @readonly - */ -Object.defineProperty(util, "decorateRoot", { - get: function() { - return roots["decorated"] || (roots["decorated"] = new (require("./root"))()); - } -}); diff --git a/gateway/node_modules/@apollo/protobufjs/src/util/longbits.js b/gateway/node_modules/@apollo/protobufjs/src/util/longbits.js deleted file mode 100644 index 11bfb1c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/util/longbits.js +++ /dev/null @@ -1,200 +0,0 @@ -"use strict"; -module.exports = LongBits; - -var util = require("../util/minimal"); - -/** - * Constructs new long bits. - * @classdesc Helper class for working with the low and high bits of a 64 bit value. - * @memberof util - * @constructor - * @param {number} lo Low 32 bits, unsigned - * @param {number} hi High 32 bits, unsigned - */ -function LongBits(lo, hi) { - - // note that the casts below are theoretically unnecessary as of today, but older statically - // generated converter code might still call the ctor with signed 32bits. kept for compat. - - /** - * Low bits. - * @type {number} - */ - this.lo = lo >>> 0; - - /** - * High bits. - * @type {number} - */ - this.hi = hi >>> 0; -} - -/** - * Zero bits. - * @memberof util.LongBits - * @type {util.LongBits} - */ -var zero = LongBits.zero = new LongBits(0, 0); - -zero.toNumber = function() { return 0; }; -zero.zzEncode = zero.zzDecode = function() { return this; }; -zero.length = function() { return 1; }; - -/** - * Zero hash. - * @memberof util.LongBits - * @type {string} - */ -var zeroHash = LongBits.zeroHash = "\0\0\0\0\0\0\0\0"; - -/** - * Constructs new long bits from the specified number. - * @param {number} value Value - * @returns {util.LongBits} Instance - */ -LongBits.fromNumber = function fromNumber(value) { - if (value === 0) - return zero; - var sign = value < 0; - if (sign) - value = -value; - var lo = value >>> 0, - hi = (value - lo) / 4294967296 >>> 0; - if (sign) { - hi = ~hi >>> 0; - lo = ~lo >>> 0; - if (++lo > 4294967295) { - lo = 0; - if (++hi > 4294967295) - hi = 0; - } - } - return new LongBits(lo, hi); -}; - -/** - * Constructs new long bits from a number, long or string. - * @param {Long|number|string} value Value - * @returns {util.LongBits} Instance - */ -LongBits.from = function from(value) { - if (typeof value === "number") - return LongBits.fromNumber(value); - if (util.isString(value)) { - /* istanbul ignore else */ - if (util.Long) - value = util.Long.fromString(value); - else - return LongBits.fromNumber(parseInt(value, 10)); - } - return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero; -}; - -/** - * Converts this long bits to a possibly unsafe JavaScript number. - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {number} Possibly unsafe number - */ -LongBits.prototype.toNumber = function toNumber(unsigned) { - if (!unsigned && this.hi >>> 31) { - var lo = ~this.lo + 1 >>> 0, - hi = ~this.hi >>> 0; - if (!lo) - hi = hi + 1 >>> 0; - return -(lo + hi * 4294967296); - } - return this.lo + this.hi * 4294967296; -}; - -/** - * Converts this long bits to a long. - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {Long} Long - */ -LongBits.prototype.toLong = function toLong(unsigned) { - return util.Long - ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned)) - /* istanbul ignore next */ - : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) }; -}; - -var charCodeAt = String.prototype.charCodeAt; - -/** - * Constructs new long bits from the specified 8 characters long hash. - * @param {string} hash Hash - * @returns {util.LongBits} Bits - */ -LongBits.fromHash = function fromHash(hash) { - if (hash === zeroHash) - return zero; - return new LongBits( - ( charCodeAt.call(hash, 0) - | charCodeAt.call(hash, 1) << 8 - | charCodeAt.call(hash, 2) << 16 - | charCodeAt.call(hash, 3) << 24) >>> 0 - , - ( charCodeAt.call(hash, 4) - | charCodeAt.call(hash, 5) << 8 - | charCodeAt.call(hash, 6) << 16 - | charCodeAt.call(hash, 7) << 24) >>> 0 - ); -}; - -/** - * Converts this long bits to a 8 characters long hash. - * @returns {string} Hash - */ -LongBits.prototype.toHash = function toHash() { - return String.fromCharCode( - this.lo & 255, - this.lo >>> 8 & 255, - this.lo >>> 16 & 255, - this.lo >>> 24 , - this.hi & 255, - this.hi >>> 8 & 255, - this.hi >>> 16 & 255, - this.hi >>> 24 - ); -}; - -/** - * Zig-zag encodes this long bits. - * @returns {util.LongBits} `this` - */ -LongBits.prototype.zzEncode = function zzEncode() { - var mask = this.hi >> 31; - this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0; - this.lo = ( this.lo << 1 ^ mask) >>> 0; - return this; -}; - -/** - * Zig-zag decodes this long bits. - * @returns {util.LongBits} `this` - */ -LongBits.prototype.zzDecode = function zzDecode() { - var mask = -(this.lo & 1); - this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0; - this.hi = ( this.hi >>> 1 ^ mask) >>> 0; - return this; -}; - -/** - * Calculates the length of this longbits when encoded as a varint. - * @returns {number} Length - */ -LongBits.prototype.length = function length() { - var part0 = this.lo, - part1 = (this.lo >>> 28 | this.hi << 4) >>> 0, - part2 = this.hi >>> 24; - return part2 === 0 - ? part1 === 0 - ? part0 < 16384 - ? part0 < 128 ? 1 : 2 - : part0 < 2097152 ? 3 : 4 - : part1 < 16384 - ? part1 < 128 ? 5 : 6 - : part1 < 2097152 ? 7 : 8 - : part2 < 128 ? 9 : 10; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/util/minimal.js b/gateway/node_modules/@apollo/protobufjs/src/util/minimal.js deleted file mode 100644 index dca6bc6..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/util/minimal.js +++ /dev/null @@ -1,405 +0,0 @@ -"use strict"; -var util = exports; - -// used to return a Promise where callback is omitted -util.asPromise = require("@protobufjs/aspromise"); - -// converts to / from base64 encoded strings -util.base64 = require("@protobufjs/base64"); - -// base class of rpc.Service -util.EventEmitter = require("@protobufjs/eventemitter"); - -// float handling accross browsers -util.float = require("@protobufjs/float"); - -// requires modules optionally and hides the call from bundlers -util.inquire = require("@protobufjs/inquire"); - -// converts to / from utf8 encoded strings -util.utf8 = require("@protobufjs/utf8"); - -// provides a node-like buffer pool in the browser -util.pool = require("@protobufjs/pool"); - -// utility to work with the low and high bits of a 64 bit value -util.LongBits = require("./longbits"); - -// global object reference -util.global = typeof window !== "undefined" && window - || typeof global !== "undefined" && global - || typeof self !== "undefined" && self - || this; // eslint-disable-line no-invalid-this - -/** - * An immuable empty array. - * @memberof util - * @type {Array.<*>} - * @const - */ -util.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes - -/** - * An immutable empty object. - * @type {Object} - * @const - */ -util.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes - -/** - * Whether running within node or not. - * @memberof util - * @type {boolean} - * @const - */ -util.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node); - -/** - * Tests if the specified value is an integer. - * @function - * @param {*} value Value to test - * @returns {boolean} `true` if the value is an integer - */ -util.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) { - return typeof value === "number" && isFinite(value) && Math.floor(value) === value; -}; - -/** - * Tests if the specified value is a string. - * @param {*} value Value to test - * @returns {boolean} `true` if the value is a string - */ -util.isString = function isString(value) { - return typeof value === "string" || value instanceof String; -}; - -/** - * Tests if the specified value is a non-null object. - * @param {*} value Value to test - * @returns {boolean} `true` if the value is a non-null object - */ -util.isObject = function isObject(value) { - return value && typeof value === "object"; -}; - -/** - * Checks if a property on a message is considered to be present. - * This is an alias of {@link util.isSet}. - * @function - * @param {Object} obj Plain object or message instance - * @param {string} prop Property name - * @returns {boolean} `true` if considered to be present, otherwise `false` - */ -util.isset = - -/** - * Checks if a property on a message is considered to be present. - * @param {Object} obj Plain object or message instance - * @param {string} prop Property name - * @returns {boolean} `true` if considered to be present, otherwise `false` - */ -util.isSet = function isSet(obj, prop) { - var value = obj[prop]; - if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins - return typeof value !== "object" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0; - return false; -}; - -/** - * Any compatible Buffer instance. - * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings. - * @interface Buffer - * @extends Uint8Array - */ - -/** - * Node's Buffer class if available. - * @type {Constructor} - */ -util.Buffer = (function() { - try { - var Buffer = util.inquire("buffer").Buffer; - // refuse to use non-node buffers if not explicitly assigned (perf reasons): - return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null; - } catch (e) { - /* istanbul ignore next */ - return null; - } -})(); - -// Internal alias of or polyfull for Buffer.from. -util._Buffer_from = null; - -// Internal alias of or polyfill for Buffer.allocUnsafe. -util._Buffer_allocUnsafe = null; - -/** - * Creates a new buffer of whatever type supported by the environment. - * @param {number|number[]} [sizeOrArray=0] Buffer size or number array - * @returns {Uint8Array|Buffer} Buffer - */ -util.newBuffer = function newBuffer(sizeOrArray) { - /* istanbul ignore next */ - return typeof sizeOrArray === "number" - ? util.Buffer - ? util._Buffer_allocUnsafe(sizeOrArray) - : new util.Array(sizeOrArray) - : util.Buffer - ? util._Buffer_from(sizeOrArray) - : typeof Uint8Array === "undefined" - ? sizeOrArray - : new Uint8Array(sizeOrArray); -}; - -/** - * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`. - * @type {Constructor} - */ -util.Array = typeof Uint8Array !== "undefined" ? Uint8Array /* istanbul ignore next */ : Array; - -/** - * Long.js's Long class if available. - * @type {Constructor} - */ -util.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long - || /* istanbul ignore next */ util.global.Long - || util.inquire("long"); - -/** - * Regular expression used to verify 2 bit (`bool`) map keys. - * @type {RegExp} - * @const - */ -util.key2Re = /^true|false|0|1$/; - -/** - * Regular expression used to verify 32 bit (`int32` etc.) map keys. - * @type {RegExp} - * @const - */ -util.key32Re = /^-?(?:0|[1-9][0-9]*)$/; - -/** - * Regular expression used to verify 64 bit (`int64` etc.) map keys. - * @type {RegExp} - * @const - */ -util.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/; - -/** - * Converts a number or long to an 8 characters long hash string. - * @param {Long|number} value Value to convert - * @returns {string} Hash - */ -util.longToHash = function longToHash(value) { - return value - ? util.LongBits.from(value).toHash() - : util.LongBits.zeroHash; -}; - -/** - * Converts an 8 characters long hash string to a long or number. - * @param {string} hash Hash - * @param {boolean} [unsigned=false] Whether unsigned or not - * @returns {Long|number} Original value - */ -util.longFromHash = function longFromHash(hash, unsigned) { - var bits = util.LongBits.fromHash(hash); - if (util.Long) - return util.Long.fromBits(bits.lo, bits.hi, unsigned); - return bits.toNumber(Boolean(unsigned)); -}; - -/** - * Merges the properties of the source object into the destination object. - * @memberof util - * @param {Object.} dst Destination object - * @param {Object.} src Source object - * @param {boolean} [ifNotSet=false] Merges only if the key is not already set - * @returns {Object.} Destination object - */ -function merge(dst, src, ifNotSet) { // used by converters - for (var keys = Object.keys(src), i = 0; i < keys.length; ++i) - if (dst[keys[i]] === undefined || !ifNotSet) - dst[keys[i]] = src[keys[i]]; - return dst; -} - -util.merge = merge; - -/** - * Converts the first character of a string to lower case. - * @param {string} str String to convert - * @returns {string} Converted string - */ -util.lcFirst = function lcFirst(str) { - return str.charAt(0).toLowerCase() + str.substring(1); -}; - -/** - * Creates a custom error constructor. - * @memberof util - * @param {string} name Error name - * @returns {Constructor} Custom error constructor - */ -function newError(name) { - - function CustomError(message, properties) { - - if (!(this instanceof CustomError)) - return new CustomError(message, properties); - - // Error.call(this, message); - // ^ just returns a new error instance because the ctor can be called as a function - - Object.defineProperty(this, "message", { get: function() { return message; } }); - - /* istanbul ignore next */ - if (Error.captureStackTrace) // node - Error.captureStackTrace(this, CustomError); - else - Object.defineProperty(this, "stack", { value: (new Error()).stack || "" }); - - if (properties) - merge(this, properties); - } - - (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError; - - Object.defineProperty(CustomError.prototype, "name", { get: function() { return name; } }); - - CustomError.prototype.toString = function toString() { - return this.name + ": " + this.message; - }; - - return CustomError; -} - -util.newError = newError; - -/** - * Constructs a new protocol error. - * @classdesc Error subclass indicating a protocol specifc error. - * @memberof util - * @extends Error - * @template T extends Message - * @constructor - * @param {string} message Error message - * @param {Object.} [properties] Additional properties - * @example - * try { - * MyMessage.decode(someBuffer); // throws if required fields are missing - * } catch (e) { - * if (e instanceof ProtocolError && e.instance) - * console.log("decoded so far: " + JSON.stringify(e.instance)); - * } - */ -util.ProtocolError = newError("ProtocolError"); - -/** - * So far decoded message instance. - * @name util.ProtocolError#instance - * @type {Message} - */ - -/** - * A OneOf getter as returned by {@link util.oneOfGetter}. - * @typedef OneOfGetter - * @type {function} - * @returns {string|undefined} Set field name, if any - */ - -/** - * Builds a getter for a oneof's present field name. - * @param {string[]} fieldNames Field names - * @returns {OneOfGetter} Unbound getter - */ -util.oneOfGetter = function getOneOf(fieldNames) { - var fieldMap = {}; - for (var i = 0; i < fieldNames.length; ++i) - fieldMap[fieldNames[i]] = 1; - - /** - * @returns {string|undefined} Set field name, if any - * @this Object - * @ignore - */ - return function() { // eslint-disable-line consistent-return - for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i) - if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null) - return keys[i]; - }; -}; - -/** - * A OneOf setter as returned by {@link util.oneOfSetter}. - * @typedef OneOfSetter - * @type {function} - * @param {string|undefined} value Field name - * @returns {undefined} - */ - -/** - * Builds a setter for a oneof's present field name. - * @param {string[]} fieldNames Field names - * @returns {OneOfSetter} Unbound setter - */ -util.oneOfSetter = function setOneOf(fieldNames) { - - /** - * @param {string} name Field name - * @returns {undefined} - * @this Object - * @ignore - */ - return function(name) { - for (var i = 0; i < fieldNames.length; ++i) - if (fieldNames[i] !== name) - delete this[fieldNames[i]]; - }; -}; - -/** - * Default conversion options used for {@link Message#toJSON} implementations. - * - * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely: - * - * - Longs become strings - * - Enums become string keys - * - Bytes become base64 encoded strings - * - (Sub-)Messages become plain objects - * - Maps become plain objects with all string keys - * - Repeated fields become arrays - * - NaN and Infinity for float and double fields become strings - * - * @type {IConversionOptions} - * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json - */ -util.toJSONOptions = { - longs: String, - enums: String, - bytes: String, - json: true -}; - -// Sets up buffer utility according to the environment (called in index-minimal) -util._configure = function() { - var Buffer = util.Buffer; - /* istanbul ignore if */ - if (!Buffer) { - util._Buffer_from = util._Buffer_allocUnsafe = null; - return; - } - // because node 4.x buffers are incompatible & immutable - // see: https://github.com/dcodeIO/protobuf.js/pull/665 - util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from || - /* istanbul ignore next */ - function Buffer_from(value, encoding) { - return new Buffer(value, encoding); - }; - util._Buffer_allocUnsafe = Buffer.allocUnsafe || - /* istanbul ignore next */ - function Buffer_allocUnsafe(size) { - return new Buffer(size); - }; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/verifier.js b/gateway/node_modules/@apollo/protobufjs/src/verifier.js deleted file mode 100644 index f1d615b..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/verifier.js +++ /dev/null @@ -1,185 +0,0 @@ -"use strict"; -module.exports = verifier; - -var Enum = require("./enum"), - util = require("./util"); - -function invalid(field, expected) { - return field.name + ": " + expected + (field.repeated && expected !== "array" ? "[]" : field.map && expected !== "object" ? "{k:"+field.keyType+"}" : "") + " expected"; -} - -/** - * Generates a partial value verifier. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {number} fieldIndex Field index - * @param {string} ref Variable reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genVerifyValue(gen, field, fieldIndex, ref) { - /* eslint-disable no-unexpected-multiline */ - if (field.resolvedType) { - if (field.resolvedType instanceof Enum) { gen - ("switch(%s){", ref) - ("default:") - ("return%j", invalid(field, "enum value")); - for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen - ("case %i:", field.resolvedType.values[keys[j]]); - gen - ("break") - ("}"); - } else { - gen - ("{") - ("var e=types[%i].verify(%s);", fieldIndex, ref) - ("if(e)") - ("return%j+e", field.name + ".") - ("}"); - } - } else { - switch (field.type) { - case "int32": - case "uint32": - case "sint32": - case "fixed32": - case "sfixed32": gen - ("if(!util.isInteger(%s))", ref) - ("return%j", invalid(field, "integer")); - break; - case "int64": - case "uint64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))", ref, ref, ref, ref) - ("return%j", invalid(field, "integer|Long")); - break; - case "float": - case "double": gen - ("if(typeof %s!==\"number\")", ref) - ("return%j", invalid(field, "number")); - break; - case "bool": gen - ("if(typeof %s!==\"boolean\")", ref) - ("return%j", invalid(field, "boolean")); - break; - case "string": gen - ("if(!util.isString(%s))", ref) - ("return%j", invalid(field, "string")); - break; - case "bytes": gen - ("if(!(%s&&typeof %s.length===\"number\"||util.isString(%s)))", ref, ref, ref) - ("return%j", invalid(field, "buffer")); - break; - } - } - return gen; - /* eslint-enable no-unexpected-multiline */ -} - -/** - * Generates a partial key verifier. - * @param {Codegen} gen Codegen instance - * @param {Field} field Reflected field - * @param {string} ref Variable reference - * @returns {Codegen} Codegen instance - * @ignore - */ -function genVerifyKey(gen, field, ref) { - /* eslint-disable no-unexpected-multiline */ - switch (field.keyType) { - case "int32": - case "uint32": - case "sint32": - case "fixed32": - case "sfixed32": gen - ("if(!util.key32Re.test(%s))", ref) - ("return%j", invalid(field, "integer key")); - break; - case "int64": - case "uint64": - case "sint64": - case "fixed64": - case "sfixed64": gen - ("if(!util.key64Re.test(%s))", ref) // see comment above: x is ok, d is not - ("return%j", invalid(field, "integer|Long key")); - break; - case "bool": gen - ("if(!util.key2Re.test(%s))", ref) - ("return%j", invalid(field, "boolean key")); - break; - } - return gen; - /* eslint-enable no-unexpected-multiline */ -} - -/** - * Generates a verifier specific to the specified message type. - * @param {Type} mtype Message type - * @returns {Codegen} Codegen instance - */ -function verifier(mtype) { - /* eslint-disable no-unexpected-multiline */ - - var gen = util.codegen(["m"], mtype.name + "$verify") - ("if(typeof m!==\"object\"||m===null)") - ("return%j", "object expected"); - var oneofs = mtype.oneofsArray, - seenFirstField = {}; - if (oneofs.length) gen - ("var p={}"); - - for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) { - var field = mtype._fieldsArray[i].resolve(), - ref = "m" + util.safeProp(field.name); - - if (field.optional) gen - ("if(%s!=null&&m.hasOwnProperty(%j)){", ref, field.name); // !== undefined && !== null - - // map fields - if (field.map) { gen - ("if(!util.isObject(%s))", ref) - ("return%j", invalid(field, "object")) - ("var k=Object.keys(%s)", ref) - ("for(var i=0;i} - * @const - */ -var wrappers = exports; - -var Message = require("./message"); - -/** - * From object converter part of an {@link IWrapper}. - * @typedef WrapperFromObjectConverter - * @type {function} - * @param {Object.} object Plain object - * @returns {Message<{}>} Message instance - * @this Type - */ - -/** - * To object converter part of an {@link IWrapper}. - * @typedef WrapperToObjectConverter - * @type {function} - * @param {Message<{}>} message Message instance - * @param {IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - * @this Type - */ - -/** - * Common type wrapper part of {@link wrappers}. - * @interface IWrapper - * @property {WrapperFromObjectConverter} [fromObject] From object converter - * @property {WrapperToObjectConverter} [toObject] To object converter - */ - -// Custom wrapper for Any -wrappers[".google.protobuf.Any"] = { - - fromObject: function(object) { - - // unwrap value type if mapped - if (object && object["@type"]) { - var type = this.lookup(object["@type"]); - /* istanbul ignore else */ - if (type) { - // type_url does not accept leading "." - var type_url = object["@type"].charAt(0) === "." ? - object["@type"].substr(1) : object["@type"]; - // type_url prefix is optional, but path seperator is required - return this.create({ - type_url: "/" + type_url, - value: type.encode(type.fromObject(object)).finish() - }); - } - } - - return this.fromObject(object); - }, - - toObject: function(message, options) { - - // decode value if requested and unmapped - if (options && options.json && message.type_url && message.value) { - // Only use fully qualified type name after the last '/' - var name = message.type_url.substring(message.type_url.lastIndexOf("/") + 1); - var type = this.lookup(name); - /* istanbul ignore else */ - if (type) - message = type.decode(message.value); - } - - // wrap value if unmapped - if (!(message instanceof this.ctor) && message instanceof Message) { - var object = message.$type.toObject(message, options); - object["@type"] = message.$type.fullName; - return object; - } - - return this.toObject(message, options); - } -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/writer.js b/gateway/node_modules/@apollo/protobufjs/src/writer.js deleted file mode 100644 index f77d83c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/writer.js +++ /dev/null @@ -1,459 +0,0 @@ -"use strict"; -module.exports = Writer; - -var util = require("./util/minimal"); - -var BufferWriter; // cyclic - -var LongBits = util.LongBits, - base64 = util.base64, - utf8 = util.utf8; - -/** - * Constructs a new writer operation instance. - * @classdesc Scheduled writer operation. - * @constructor - * @param {function(*, Uint8Array, number)} fn Function to call - * @param {number} len Value byte length - * @param {*} val Value to write - * @ignore - */ -function Op(fn, len, val) { - - /** - * Function to call. - * @type {function(Uint8Array, number, *)} - */ - this.fn = fn; - - /** - * Value byte length. - * @type {number} - */ - this.len = len; - - /** - * Next operation. - * @type {Writer.Op|undefined} - */ - this.next = undefined; - - /** - * Value to write. - * @type {*} - */ - this.val = val; // type varies -} - -/* istanbul ignore next */ -function noop() {} // eslint-disable-line no-empty-function - -/** - * Constructs a new writer state instance. - * @classdesc Copied writer state. - * @memberof Writer - * @constructor - * @param {Writer} writer Writer to copy state from - * @ignore - */ -function State(writer) { - - /** - * Current head. - * @type {Writer.Op} - */ - this.head = writer.head; - - /** - * Current tail. - * @type {Writer.Op} - */ - this.tail = writer.tail; - - /** - * Current buffer length. - * @type {number} - */ - this.len = writer.len; - - /** - * Next state. - * @type {State|null} - */ - this.next = writer.states; -} - -/** - * Constructs a new writer instance. - * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`. - * @constructor - */ -function Writer() { - - /** - * Current length. - * @type {number} - */ - this.len = 0; - - /** - * Operations head. - * @type {Object} - */ - this.head = new Op(noop, 0, 0); - - /** - * Operations tail - * @type {Object} - */ - this.tail = this.head; - - /** - * Linked forked states. - * @type {Object|null} - */ - this.states = null; - - // When a value is written, the writer calculates its byte length and puts it into a linked - // list of operations to perform when finish() is called. This both allows us to allocate - // buffers of the exact required size and reduces the amount of work we have to do compared - // to first calculating over objects and then encoding over objects. In our case, the encoding - // part is just a linked list walk calling operations with already prepared values. -} - -/** - * Creates a new writer. - * @function - * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} - */ -Writer.create = util.Buffer - ? function create_buffer_setup() { - return (Writer.create = function create_buffer() { - return new BufferWriter(); - })(); - } - /* istanbul ignore next */ - : function create_array() { - return new Writer(); - }; - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Uint8Array} Buffer - */ -Writer.alloc = function alloc(size) { - return new util.Array(size); -}; - -// Use Uint8Array buffer pool in the browser, just like node does with buffers -/* istanbul ignore else */ -if (util.Array !== Array) - Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray); - -/** - * Pushes a new operation to the queue. - * @param {function(Uint8Array, number, *)} fn Function to call - * @param {number} len Value byte length - * @param {number} val Value to write - * @returns {Writer} `this` - * @private - */ -Writer.prototype._push = function push(fn, len, val) { - this.tail = this.tail.next = new Op(fn, len, val); - this.len += len; - return this; -}; - -function writeByte(val, buf, pos) { - buf[pos] = val & 255; -} - -function writeVarint32(val, buf, pos) { - while (val > 127) { - buf[pos++] = val & 127 | 128; - val >>>= 7; - } - buf[pos] = val; -} - -/** - * Constructs a new varint writer operation instance. - * @classdesc Scheduled varint writer operation. - * @extends Op - * @constructor - * @param {number} len Value byte length - * @param {number} val Value to write - * @ignore - */ -function VarintOp(len, val) { - this.len = len; - this.next = undefined; - this.val = val; -} - -VarintOp.prototype = Object.create(Op.prototype); -VarintOp.prototype.fn = writeVarint32; - -/** - * Writes an unsigned 32 bit value as a varint. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.uint32 = function write_uint32(value) { - // here, the call to this.push has been inlined and a varint specific Op subclass is used. - // uint32 is by far the most frequently used operation and benefits significantly from this. - this.len += (this.tail = this.tail.next = new VarintOp( - (value = value >>> 0) - < 128 ? 1 - : value < 16384 ? 2 - : value < 2097152 ? 3 - : value < 268435456 ? 4 - : 5, - value)).len; - return this; -}; - -/** - * Writes a signed 32 bit value as a varint. - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.int32 = function write_int32(value) { - return value < 0 - ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec - : this.uint32(value); -}; - -/** - * Writes a 32 bit value as a varint, zig-zag encoded. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.sint32 = function write_sint32(value) { - return this.uint32((value << 1 ^ value >> 31) >>> 0); -}; - -function writeVarint64(val, buf, pos) { - while (val.hi) { - buf[pos++] = val.lo & 127 | 128; - val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0; - val.hi >>>= 7; - } - while (val.lo > 127) { - buf[pos++] = val.lo & 127 | 128; - val.lo = val.lo >>> 7; - } - buf[pos++] = val.lo; -} - -/** - * Writes an unsigned 64 bit value as a varint. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.uint64 = function write_uint64(value) { - var bits = LongBits.from(value); - return this._push(writeVarint64, bits.length(), bits); -}; - -/** - * Writes a signed 64 bit value as a varint. - * @function - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.int64 = Writer.prototype.uint64; - -/** - * Writes a signed 64 bit value as a varint, zig-zag encoded. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.sint64 = function write_sint64(value) { - var bits = LongBits.from(value).zzEncode(); - return this._push(writeVarint64, bits.length(), bits); -}; - -/** - * Writes a boolish value as a varint. - * @param {boolean} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.bool = function write_bool(value) { - return this._push(writeByte, 1, value ? 1 : 0); -}; - -function writeFixed32(val, buf, pos) { - buf[pos ] = val & 255; - buf[pos + 1] = val >>> 8 & 255; - buf[pos + 2] = val >>> 16 & 255; - buf[pos + 3] = val >>> 24; -} - -/** - * Writes an unsigned 32 bit value as fixed 32 bits. - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.fixed32 = function write_fixed32(value) { - return this._push(writeFixed32, 4, value >>> 0); -}; - -/** - * Writes a signed 32 bit value as fixed 32 bits. - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.sfixed32 = Writer.prototype.fixed32; - -/** - * Writes an unsigned 64 bit value as fixed 64 bits. - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.fixed64 = function write_fixed64(value) { - var bits = LongBits.from(value); - return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi); -}; - -/** - * Writes a signed 64 bit value as fixed 64 bits. - * @function - * @param {Long|number|string} value Value to write - * @returns {Writer} `this` - * @throws {TypeError} If `value` is a string and no long library is present. - */ -Writer.prototype.sfixed64 = Writer.prototype.fixed64; - -/** - * Writes a float (32 bit). - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.float = function write_float(value) { - return this._push(util.float.writeFloatLE, 4, value); -}; - -/** - * Writes a double (64 bit float). - * @function - * @param {number} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.double = function write_double(value) { - return this._push(util.float.writeDoubleLE, 8, value); -}; - -var writeBytes = util.Array.prototype.set - ? function writeBytes_set(val, buf, pos) { - buf.set(val, pos); // also works for plain array values - } - /* istanbul ignore next */ - : function writeBytes_for(val, buf, pos) { - for (var i = 0; i < val.length; ++i) - buf[pos + i] = val[i]; - }; - -/** - * Writes a sequence of bytes. - * @param {Uint8Array|string} value Buffer or base64 encoded string to write - * @returns {Writer} `this` - */ -Writer.prototype.bytes = function write_bytes(value) { - var len = value.length >>> 0; - if (!len) - return this._push(writeByte, 1, 0); - if (util.isString(value)) { - var buf = Writer.alloc(len = base64.length(value)); - base64.decode(value, buf, 0); - value = buf; - } - return this.uint32(len)._push(writeBytes, len, value); -}; - -/** - * Writes a string. - * @param {string} value Value to write - * @returns {Writer} `this` - */ -Writer.prototype.string = function write_string(value) { - var len = utf8.length(value); - return len - ? this.uint32(len)._push(utf8.write, len, value) - : this._push(writeByte, 1, 0); -}; - -/** - * Forks this writer's state by pushing it to a stack. - * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state. - * @returns {Writer} `this` - */ -Writer.prototype.fork = function fork() { - this.states = new State(this); - this.head = this.tail = new Op(noop, 0, 0); - this.len = 0; - return this; -}; - -/** - * Resets this instance to the last state. - * @returns {Writer} `this` - */ -Writer.prototype.reset = function reset() { - if (this.states) { - this.head = this.states.head; - this.tail = this.states.tail; - this.len = this.states.len; - this.states = this.states.next; - } else { - this.head = this.tail = new Op(noop, 0, 0); - this.len = 0; - } - return this; -}; - -/** - * Resets to the last state and appends the fork state's current write length as a varint followed by its operations. - * @returns {Writer} `this` - */ -Writer.prototype.ldelim = function ldelim() { - var head = this.head, - tail = this.tail, - len = this.len; - this.reset().uint32(len); - if (len) { - this.tail.next = head.next; // skip noop - this.tail = tail; - this.len += len; - } - return this; -}; - -/** - * Finishes the write operation. - * @returns {Uint8Array} Finished buffer - */ -Writer.prototype.finish = function finish() { - var head = this.head.next, // skip noop - buf = this.constructor.alloc(this.len), - pos = 0; - while (head) { - head.fn(head.val, buf, pos); - pos += head.len; - head = head.next; - } - // this.head = this.tail = null; - return buf; -}; - -Writer._configure = function(BufferWriter_) { - BufferWriter = BufferWriter_; -}; diff --git a/gateway/node_modules/@apollo/protobufjs/src/writer_buffer.js b/gateway/node_modules/@apollo/protobufjs/src/writer_buffer.js deleted file mode 100644 index 55c479c..0000000 --- a/gateway/node_modules/@apollo/protobufjs/src/writer_buffer.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; -module.exports = BufferWriter; - -// extends Writer -var Writer = require("./writer"); -(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter; - -var util = require("./util/minimal"); - -var Buffer = util.Buffer; - -/** - * Constructs a new buffer writer instance. - * @classdesc Wire format writer using node buffers. - * @extends Writer - * @constructor - */ -function BufferWriter() { - Writer.call(this); -} - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Buffer} Buffer - */ -BufferWriter.alloc = function alloc_buffer(size) { - return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size); -}; - -var writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === "set" - ? function writeBytesBuffer_set(val, buf, pos) { - buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited) - // also works for plain array values - } - /* istanbul ignore next */ - : function writeBytesBuffer_copy(val, buf, pos) { - if (val.copy) // Buffer values - val.copy(buf, pos, 0, val.length); - else for (var i = 0; i < val.length;) // plain array values - buf[pos++] = val[i++]; - }; - -/** - * @override - */ -BufferWriter.prototype.bytes = function write_bytes_buffer(value) { - if (util.isString(value)) - value = util._Buffer_from(value, "base64"); - var len = value.length >>> 0; - this.uint32(len); - if (len) - this._push(writeBytesBuffer, len, value); - return this; -}; - -function writeStringBuffer(val, buf, pos) { - if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions) - util.utf8.write(val, buf, pos); - else - buf.utf8Write(val, pos); -} - -/** - * @override - */ -BufferWriter.prototype.string = function write_string_buffer(value) { - var len = Buffer.byteLength(value); - this.uint32(len); - if (len) - this._push(writeStringBuffer, len, value); - return this; -}; - - -/** - * Finishes the write operation. - * @name BufferWriter#finish - * @function - * @returns {Buffer} Finished buffer - */ diff --git a/gateway/node_modules/@apollo/protobufjs/tsconfig.json b/gateway/node_modules/@apollo/protobufjs/tsconfig.json deleted file mode 100644 index 22852fa..0000000 --- a/gateway/node_modules/@apollo/protobufjs/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "compilerOptions": { - "target": "ES5", - "experimentalDecorators": true, - "emitDecoratorMetadata": true - } -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/query-planner-wasm/LICENSE b/gateway/node_modules/@apollo/query-planner-wasm/LICENSE deleted file mode 100644 index 02c1d57..0000000 --- a/gateway/node_modules/@apollo/query-planner-wasm/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Apollo Graph, Inc. (Formerly Meteor Development Group, Inc.) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/gateway/node_modules/@apollo/query-planner-wasm/README.md b/gateway/node_modules/@apollo/query-planner-wasm/README.md deleted file mode 100644 index 6ab6988..0000000 --- a/gateway/node_modules/@apollo/query-planner-wasm/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Apollo WASM Query Planner - -## How to make this work - -```shell script -curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -cd query-planner-wasm -wasm-pack build -t nodejs --scope apollo -``` - -## How to test: -```shell script -wasm-pack test --node -``` diff --git a/gateway/node_modules/@apollo/query-planner-wasm/dist/README.md b/gateway/node_modules/@apollo/query-planner-wasm/dist/README.md deleted file mode 100644 index 6ab6988..0000000 --- a/gateway/node_modules/@apollo/query-planner-wasm/dist/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Apollo WASM Query Planner - -## How to make this work - -```shell script -curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -cd query-planner-wasm -wasm-pack build -t nodejs --scope apollo -``` - -## How to test: -```shell script -wasm-pack test --node -``` diff --git a/gateway/node_modules/@apollo/query-planner-wasm/dist/index.d.ts b/gateway/node_modules/@apollo/query-planner-wasm/dist/index.d.ts deleted file mode 100644 index 8a1aa49..0000000 --- a/gateway/node_modules/@apollo/query-planner-wasm/dist/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** -* @param {string} schema -* @returns {number} -*/ -export function getQueryPlanner(schema: string): number; -/** -* @param {number} planner_ptr -* @param {string} query -* @param {any} options -* @returns {any} -*/ -export function getQueryPlan(planner_ptr: number, query: string, options: any): any; diff --git a/gateway/node_modules/@apollo/query-planner-wasm/dist/index.js b/gateway/node_modules/@apollo/query-planner-wasm/dist/index.js deleted file mode 100644 index cd96bbf..0000000 --- a/gateway/node_modules/@apollo/query-planner-wasm/dist/index.js +++ /dev/null @@ -1,152 +0,0 @@ -let imports = {}; -imports['__wbindgen_placeholder__'] = module.exports; -let wasm; -const { TextDecoder } = require(String.raw`util`); - -let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); - -cachedTextDecoder.decode(); - -let cachegetUint8Memory0 = null; -function getUint8Memory0() { - if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) { - cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer); - } - return cachegetUint8Memory0; -} - -function getStringFromWasm0(ptr, len) { - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - -const heap = new Array(32).fill(undefined); - -heap.push(undefined, null, true, false); - -let heap_next = heap.length; - -function addHeapObject(obj) { - if (heap_next === heap.length) heap.push(heap.length + 1); - const idx = heap_next; - heap_next = heap[idx]; - - heap[idx] = obj; - return idx; -} - -function getObject(idx) { return heap[idx]; } - -let WASM_VECTOR_LEN = 0; - -let cachegetNodeBufferMemory0 = null; -function getNodeBufferMemory0() { - if (cachegetNodeBufferMemory0 === null || cachegetNodeBufferMemory0.buffer !== wasm.memory.buffer) { - cachegetNodeBufferMemory0 = Buffer.from(wasm.memory.buffer); - } - return cachegetNodeBufferMemory0; -} - -function passStringToWasm0(arg, malloc) { - - const len = Buffer.byteLength(arg); - const ptr = malloc(len); - getNodeBufferMemory0().write(arg, ptr, len); - WASM_VECTOR_LEN = len; - return ptr; -} - -let cachegetInt32Memory0 = null; -function getInt32Memory0() { - if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) { - cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer); - } - return cachegetInt32Memory0; -} - -function dropObject(idx) { - if (idx < 36) return; - heap[idx] = heap_next; - heap_next = idx; -} - -function takeObject(idx) { - const ret = getObject(idx); - dropObject(idx); - return ret; -} - -function isLikeNone(x) { - return x === undefined || x === null; -} -/** -* @param {string} schema -* @returns {number} -*/ -module.exports.getQueryPlanner = function(schema) { - var ret = wasm.getQueryPlanner(addHeapObject(schema)); - return ret >>> 0; -}; - -let stack_pointer = 32; - -function addBorrowedObject(obj) { - if (stack_pointer == 1) throw new Error('out of js stack'); - heap[--stack_pointer] = obj; - return stack_pointer; -} -/** -* @param {number} planner_ptr -* @param {string} query -* @param {any} options -* @returns {any} -*/ -module.exports.getQueryPlan = function(planner_ptr, query, options) { - try { - var ptr0 = passStringToWasm0(query, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - var ret = wasm.getQueryPlan(planner_ptr, ptr0, len0, addBorrowedObject(options)); - return takeObject(ret); - } finally { - heap[stack_pointer++] = undefined; - } -}; - -module.exports.__wbindgen_json_parse = function(arg0, arg1) { - var ret = JSON.parse(getStringFromWasm0(arg0, arg1)); - return addHeapObject(ret); -}; - -module.exports.__wbindgen_json_serialize = function(arg0, arg1) { - const obj = getObject(arg1); - var ret = JSON.stringify(obj === undefined ? null : obj); - var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - getInt32Memory0()[arg0 / 4 + 1] = len0; - getInt32Memory0()[arg0 / 4 + 0] = ptr0; -}; - -module.exports.__wbindgen_object_drop_ref = function(arg0) { - takeObject(arg0); -}; - -module.exports.__wbindgen_string_get = function(arg0, arg1) { - const obj = getObject(arg1); - var ret = typeof(obj) === 'string' ? obj : undefined; - var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - getInt32Memory0()[arg0 / 4 + 1] = len0; - getInt32Memory0()[arg0 / 4 + 0] = ptr0; -}; - -module.exports.__wbindgen_throw = function(arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); -}; - -const path = require('path').join(__dirname, 'index_bg.wasm'); -const bytes = require('fs').readFileSync(path); - -const wasmModule = new WebAssembly.Module(bytes); -const wasmInstance = new WebAssembly.Instance(wasmModule, imports); -wasm = wasmInstance.exports; -module.exports.__wasm = wasm; - diff --git a/gateway/node_modules/@apollo/query-planner-wasm/dist/index_bg.wasm b/gateway/node_modules/@apollo/query-planner-wasm/dist/index_bg.wasm deleted file mode 100644 index ce2bc49add0d442e7495d44afa1d126c781150ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733214 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�aq8E+z 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 z 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%0AQ7uW9Z+IO)qYZdd5SaG)} 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

5z0g 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" - ], - "description": "Bridge code written in Rust to Javascript/Typescript, to be internally used by Apollo Gateway. This package is not meant to be independently consumed.", - "version": "0.0.0-DO.NOT.CHANGE", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/apollographql/federation" - }, - "files": [ - "index_bg.wasm", - "index.js", - "index_bg.js", - "index.d.ts" - ], - "main": "index.js", - "homepage": "https://github.com/apollographql/federation", - "types": "index.d.ts" -} \ No newline at end of file diff --git a/gateway/node_modules/@apollo/query-planner-wasm/package.json b/gateway/node_modules/@apollo/query-planner-wasm/package.json deleted file mode 100644 index dc1c69c..0000000 --- a/gateway/node_modules/@apollo/query-planner-wasm/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "@apollo/query-planner-wasm", - "version": "0.0.7", - "description": "Bridge code written in Rust to Javascript/Typescript, to be internally used by Apollo Gateway. This package is not meant to be independently consumed.", - "scripts": { - "wasm-pack": "wasm-pack build --target nodejs --out-dir dist --out-name index --scope apollo", - "monorepo-prepare": "npm run wasm-pack" - }, - "author": "opensource@apollographql.com", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/apollographql/federation.git", - "directory": "query-planner-wasm/" - }, - "bugs": { - "url": "https://github.com/apollographql/federation/issues" - }, - "homepage": "https://github.com/apollographql/federation#readme", - "keywords": [ - "GraphQL", - "rust", - "wasm", - "apollo" - ], - "files": [ - "dist/index_bg.wasm", - "dist/index.js", - "dist/index_bg.js", - "dist/index.d.ts" - ], - "main": "dist/index.js", - "types": "dist/index.d.ts", - "gitHead": "43d3f404e2a30d248f242496b8f6bc38a12c2f87" -} diff --git a/gateway/node_modules/@apollographql/apollo-tools/LICENSE b/gateway/node_modules/@apollographql/apollo-tools/LICENSE deleted file mode 100644 index 1558a68..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Meteor Development Group, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.d.ts deleted file mode 100644 index 1578018..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { GraphQLSchema, DocumentNode, GraphQLError } from "graphql"; -import { GraphQLResolverMap } from "./schema/resolverMap"; -export interface GraphQLSchemaModule { - typeDefs: DocumentNode; - resolvers?: GraphQLResolverMap; -} -interface GraphQLServiceDefinition { - schema?: GraphQLSchema; - errors?: GraphQLError[]; -} -export declare function buildServiceDefinition(modules: GraphQLSchemaModule[]): GraphQLServiceDefinition; -export {}; -//# sourceMappingURL=buildServiceDefinition.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.d.ts.map deleted file mode 100644 index 4b190b3..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"buildServiceDefinition.d.ts","sourceRoot":"","sources":["../src/buildServiceDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EAMZ,YAAY,EAQb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;CACrC;AAED,UAAU,wBAAwB;IAChC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,wBAAwB,CA8K1B"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.js b/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.js deleted file mode 100644 index c461351..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.js +++ /dev/null @@ -1,165 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -const graphql_2 = require("./utilities/graphql"); -const predicates_1 = require("./utilities/predicates"); -function buildServiceDefinition(modules) { - const errors = []; - const typeDefinitionsMap = Object.create(null); - const typeExtensionsMap = Object.create(null); - const directivesMap = Object.create(null); - const schemaDefinitions = []; - const schemaExtensions = []; - for (let module of modules) { - if (graphql_2.isNode(module) && graphql_2.isDocumentNode(module)) { - module = { typeDefs: module }; - } - for (const definition of module.typeDefs.definitions) { - if (graphql_1.isTypeDefinitionNode(definition)) { - const typeName = definition.name.value; - if (typeDefinitionsMap[typeName]) { - typeDefinitionsMap[typeName].push(definition); - } - else { - typeDefinitionsMap[typeName] = [definition]; - } - } - else if (graphql_1.isTypeExtensionNode(definition)) { - const typeName = definition.name.value; - if (typeExtensionsMap[typeName]) { - typeExtensionsMap[typeName].push(definition); - } - else { - typeExtensionsMap[typeName] = [definition]; - } - } - else if (definition.kind === graphql_1.Kind.DIRECTIVE_DEFINITION) { - const directiveName = definition.name.value; - if (directivesMap[directiveName]) { - directivesMap[directiveName].push(definition); - } - else { - directivesMap[directiveName] = [definition]; - } - } - else if (definition.kind === graphql_1.Kind.SCHEMA_DEFINITION) { - schemaDefinitions.push(definition); - } - else if (definition.kind === graphql_1.Kind.SCHEMA_EXTENSION) { - schemaExtensions.push(definition); - } - } - } - for (const [typeName, typeDefinitions] of Object.entries(typeDefinitionsMap)) { - if (typeDefinitions.length > 1) { - errors.push(new graphql_1.GraphQLError(`Type "${typeName}" was defined more than once.`, typeDefinitions)); - } - } - for (const [directiveName, directives] of Object.entries(directivesMap)) { - if (directives.length > 1) { - errors.push(new graphql_1.GraphQLError(`Directive "${directiveName}" was defined more than once.`, directives)); - } - } - let operationTypeMap; - if (schemaDefinitions.length > 0 || schemaExtensions.length > 0) { - operationTypeMap = {}; - const schemaDefinition = schemaDefinitions[schemaDefinitions.length - 1]; - const operationTypes = [schemaDefinition, ...schemaExtensions] - .map(node => node.operationTypes) - .filter(predicates_1.isNotNullOrUndefined) - .flat(); - for (const operationType of operationTypes) { - const typeName = operationType.type.name.value; - const operation = operationType.operation; - if (operationTypeMap[operation]) { - throw new graphql_1.GraphQLError(`Must provide only one ${operation} type in schema.`, [schemaDefinition]); - } - if (!(typeDefinitionsMap[typeName] || typeExtensionsMap[typeName])) { - throw new graphql_1.GraphQLError(`Specified ${operation} type "${typeName}" not found in document.`, [schemaDefinition]); - } - operationTypeMap[operation] = typeName; - } - } - else { - operationTypeMap = { - query: "Query", - mutation: "Mutation", - subscription: "Subscription" - }; - } - for (const [typeName, typeExtensions] of Object.entries(typeExtensionsMap)) { - if (!typeDefinitionsMap[typeName]) { - if (Object.values(operationTypeMap).includes(typeName)) { - typeDefinitionsMap[typeName] = [ - { - kind: graphql_1.Kind.OBJECT_TYPE_DEFINITION, - name: { - kind: graphql_1.Kind.NAME, - value: typeName - } - } - ]; - } - else { - errors.push(new graphql_1.GraphQLError(`Cannot extend type "${typeName}" because it does not exist in the existing schema.`, typeExtensions)); - } - } - } - if (errors.length > 0) { - return { errors }; - } - try { - const typeDefinitions = Object.values(typeDefinitionsMap).flat(); - const directives = Object.values(directivesMap).flat(); - let schema = graphql_1.buildASTSchema({ - kind: graphql_1.Kind.DOCUMENT, - definitions: [...typeDefinitions, ...directives] - }); - const typeExtensions = Object.values(typeExtensionsMap).flat(); - if (typeExtensions.length > 0) { - schema = graphql_1.extendSchema(schema, { - kind: graphql_1.Kind.DOCUMENT, - definitions: typeExtensions - }); - } - for (const module of modules) { - if (!module.resolvers) - continue; - addResolversToSchema(schema, module.resolvers); - } - return { schema }; - } - catch (error) { - return { errors: [error] }; - } -} -exports.buildServiceDefinition = buildServiceDefinition; -function addResolversToSchema(schema, resolvers) { - for (const [typeName, fieldConfigs] of Object.entries(resolvers)) { - const type = schema.getType(typeName); - if (!graphql_1.isObjectType(type)) - continue; - const fieldMap = type.getFields(); - for (const [fieldName, fieldConfig] of Object.entries(fieldConfigs)) { - if (fieldName.startsWith("__")) { - type[fieldName.substring(2)] = fieldConfig; - continue; - } - const field = fieldMap[fieldName]; - if (!field) - continue; - if (typeof fieldConfig === "function") { - field.resolve = fieldConfig; - } - else { - if (fieldConfig.resolve) { - field.resolve = fieldConfig.resolve; - } - if (fieldConfig.subscribe) { - field.subscribe = fieldConfig.subscribe; - } - } - } - } -} -//# sourceMappingURL=buildServiceDefinition.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.js.map deleted file mode 100644 index d8bcefc..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/buildServiceDefinition.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"buildServiceDefinition.js","sourceRoot":"","sources":["../src/buildServiceDefinition.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/index.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/index.d.ts deleted file mode 100644 index 155392f..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import "apollo-env"; -export * from "./utilities"; -export * from "./schema"; -export * from "./buildServiceDefinition"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/index.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/index.d.ts.map deleted file mode 100644 index 422a47b..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAEpB,cAAc,aAAa,CAAC;AAE5B,cAAc,UAAU,CAAC;AACzB,cAAc,0BAA0B,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/index.js b/gateway/node_modules/@apollographql/apollo-tools/lib/index.js deleted file mode 100644 index 6b1f4ce..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/index.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -require("apollo-env"); -__export(require("./utilities")); -__export(require("./buildServiceDefinition")); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/index.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/index.js.map deleted file mode 100644 index db9dc26..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,sBAAoB;AAEpB,iCAA4B;AAG5B,8CAAyC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.d.ts deleted file mode 100644 index 012a1e2..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./resolverMap"; -export * from "./resolveObject"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.d.ts.map deleted file mode 100644 index f709928..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.js b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.js deleted file mode 100644 index aa219d8..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.js.map deleted file mode 100644 index 402fda4..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.d.ts deleted file mode 100644 index c3911ef..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { GraphQLResolveInfo, FieldNode } from "graphql"; -export declare type GraphQLObjectResolver = (source: TSource, fields: Record>, context: TContext, info: GraphQLResolveInfo) => any; -declare module "graphql/type/definition" { - interface GraphQLObjectType { - resolveObject?: GraphQLObjectResolver; - } - interface GraphQLObjectTypeConfig { - resolveObject?: GraphQLObjectResolver; - } -} -//# sourceMappingURL=resolveObject.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.d.ts.map deleted file mode 100644 index 8264b97..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resolveObject.d.ts","sourceRoot":"","sources":["../../src/schema/resolveObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAExD,oBAAY,qBAAqB,CAAC,OAAO,EAAE,QAAQ,IAAI,CACrD,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,EAChD,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,kBAAkB,KACrB,GAAG,CAAC;AAET,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,iBAAiB;QACzB,aAAa,CAAC,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACjD;IAED,UAAU,uBAAuB,CAAC,OAAO,EAAE,QAAQ;QACjD,aAAa,CAAC,EAAE,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KAC1D;CACF"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.js b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.js deleted file mode 100644 index 31c590e..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=resolveObject.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.js.map deleted file mode 100644 index 14d1495..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolveObject.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resolveObject.js","sourceRoot":"","sources":["../../src/schema/resolveObject.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.d.ts deleted file mode 100644 index 4a80130..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { GraphQLFieldResolver } from "graphql"; -export interface GraphQLResolverMap { - [typeName: string]: { - [fieldName: string]: GraphQLFieldResolver | { - requires?: string; - resolve: GraphQLFieldResolver; - subscribe?: undefined; - } | { - requires?: string; - resolve?: undefined; - subscribe: GraphQLFieldResolver; - } | { - requires?: string; - resolve: GraphQLFieldResolver; - subscribe: GraphQLFieldResolver; - }; - }; -} -//# sourceMappingURL=resolverMap.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.d.ts.map deleted file mode 100644 index d71e309..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resolverMap.d.ts","sourceRoot":"","sources":["../../src/schema/resolverMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,kBAAkB,CAAC,QAAQ;IAC1C,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,CAAC,SAAS,EAAE,MAAM,GACd,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,GACnC;YACE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC7C,SAAS,CAAC,EAAE,SAAS,CAAC;SACvB,GACD;YACE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,OAAO,CAAC,EAAE,SAAS,CAAC;YACpB,SAAS,EAAE,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SAChD,GACD;YACE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC7C,SAAS,EAAE,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SAChD,CAAC;KACP,CAAC;CACH"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.js b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.js deleted file mode 100644 index 37c1c33..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=resolverMap.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.js.map deleted file mode 100644 index 0ce92d0..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/schema/resolverMap.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resolverMap.js","sourceRoot":"","sources":["../../src/schema/resolverMap.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.d.ts deleted file mode 100644 index 6215e67..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ASTNode, TypeDefinitionNode, TypeExtensionNode, DocumentNode } from "graphql"; -declare module "graphql/language/predicates" { - function isTypeDefinitionNode(node: ASTNode): node is TypeDefinitionNode; - function isTypeExtensionNode(node: ASTNode): node is TypeExtensionNode; -} -export declare function isNode(maybeNode: any): maybeNode is ASTNode; -export declare function isDocumentNode(node: ASTNode): node is DocumentNode; -//# sourceMappingURL=graphql.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.d.ts.map deleted file mode 100644 index 089494a..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/utilities/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EAEb,MAAM,SAAS,CAAC;AAIjB,OAAO,QAAQ,6BAA6B,CAAC;IAC3C,SAAS,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAAC;IACzE,SAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,iBAAiB,CAAC;CACxE;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS,IAAI,OAAO,CAE3D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAElE"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.js b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.js deleted file mode 100644 index 1560b1d..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const graphql_1 = require("graphql"); -function isNode(maybeNode) { - return maybeNode && typeof maybeNode.kind === "string"; -} -exports.isNode = isNode; -function isDocumentNode(node) { - return isNode(node) && node.kind === graphql_1.Kind.DOCUMENT; -} -exports.isDocumentNode = isDocumentNode; -//# sourceMappingURL=graphql.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.js.map deleted file mode 100644 index b6ef5f5..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/graphql.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/utilities/graphql.ts"],"names":[],"mappings":";;AAAA,qCAMiB;AASjB,SAAgB,MAAM,CAAC,SAAc;IACnC,OAAO,SAAS,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC;AACzD,CAAC;AAFD,wBAEC;AAED,SAAgB,cAAc,CAAC,IAAa;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,QAAQ,CAAC;AACrD,CAAC;AAFD,wCAEC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.d.ts deleted file mode 100644 index 3789491..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./invariant"; -export * from "./predicates"; -export * from "./graphql"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.d.ts.map deleted file mode 100644 index e008d16..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.js b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.js deleted file mode 100644 index 120e261..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(require("./invariant")); -__export(require("./predicates")); -__export(require("./graphql")); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.js.map deleted file mode 100644 index 9b84df6..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4B;AAC5B,kCAA6B;AAC7B,+BAA0B"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.d.ts deleted file mode 100644 index a6c469f..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare function invariant(condition: any, message: string): void; -//# sourceMappingURL=invariant.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.d.ts.map deleted file mode 100644 index 7c05785..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../src/utilities/invariant.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAIxD"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.js b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.js deleted file mode 100644 index 4aca32e..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function invariant(condition, message) { - if (!condition) { - throw new Error(message); - } -} -exports.invariant = invariant; -//# sourceMappingURL=invariant.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.js.map deleted file mode 100644 index 82f6169..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/invariant.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"invariant.js","sourceRoot":"","sources":["../../src/utilities/invariant.ts"],"names":[],"mappings":";;AAAA,SAAgB,SAAS,CAAC,SAAc,EAAE,OAAe;IACvD,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B;AACH,CAAC;AAJD,8BAIC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.d.ts b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.d.ts deleted file mode 100644 index 4e6ddc1..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare function isNotNullOrUndefined(value: T | null | undefined): value is T; -//# sourceMappingURL=predicates.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.d.ts.map b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.d.ts.map deleted file mode 100644 index 1f8cbd7..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../src/utilities/predicates.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAC1B,KAAK,IAAI,CAAC,CAEZ"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.js b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.js deleted file mode 100644 index 4db61ba..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function isNotNullOrUndefined(value) { - return value !== null && typeof value !== "undefined"; -} -exports.isNotNullOrUndefined = isNotNullOrUndefined; -//# sourceMappingURL=predicates.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.js.map b/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.js.map deleted file mode 100644 index 332fe2d..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/lib/utilities/predicates.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../src/utilities/predicates.ts"],"names":[],"mappings":";;AAAA,SAAgB,oBAAoB,CAClC,KAA2B;IAE3B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AACxD,CAAC;AAJD,oDAIC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/apollo-tools/package.json b/gateway/node_modules/@apollographql/apollo-tools/package.json deleted file mode 100644 index f444662..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "@apollographql/apollo-tools", - "version": "0.4.8", - "author": "Apollo GraphQL ", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/apollographql/apollo-tooling.git" - }, - "homepage": "https://github.com/apollographql/apollo-tooling", - "bugs": "https://github.com/apollographql/apollo-tooling/issues", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "dependencies": { - "apollo-env": "^0.6.5" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node", - "testMatch": null, - "testRegex": "/__tests__/.*\\.test\\.(js|ts)$", - "testPathIgnorePatterns": [ - "/node_modules/", - "/lib/" - ], - "moduleFileExtensions": [ - "ts", - "js" - ], - "transformIgnorePatterns": [ - "/node_modules/" - ], - "setupFiles": [ - "apollo-env" - ], - "snapshotSerializers": [ - "/src/__tests__/snapshotSerializers/astSerializer.ts", - "/src/__tests__/snapshotSerializers/graphQLTypeSerializer.ts" - ], - "globals": { - "ts-jest": { - "tsConfig": "/tsconfig.test.json", - "diagnostics": true - } - } - }, - "gitHead": "7cc66acbbfc681da0491a7868150deccc7ca368f" -} diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/buildServiceDefinition.ts b/gateway/node_modules/@apollographql/apollo-tools/src/buildServiceDefinition.ts deleted file mode 100644 index 4098539..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/buildServiceDefinition.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { - GraphQLSchema, - DocumentNode, - TypeDefinitionNode, - DirectiveDefinitionNode, - isTypeDefinitionNode, - TypeExtensionNode, - isTypeExtensionNode, - GraphQLError, - buildASTSchema, - Kind, - extendSchema, - isObjectType, - SchemaDefinitionNode, - OperationTypeNode, - SchemaExtensionNode -} from "graphql"; -import { isNode, isDocumentNode } from "./utilities/graphql"; -import { GraphQLResolverMap } from "./schema/resolverMap"; -import { isNotNullOrUndefined } from "./utilities/predicates"; - -export interface GraphQLSchemaModule { - typeDefs: DocumentNode; - resolvers?: GraphQLResolverMap; -} - -interface GraphQLServiceDefinition { - schema?: GraphQLSchema; - errors?: GraphQLError[]; -} - -export function buildServiceDefinition( - modules: GraphQLSchemaModule[] -): GraphQLServiceDefinition { - const errors: GraphQLError[] = []; - - const typeDefinitionsMap: { - [name: string]: TypeDefinitionNode[]; - } = Object.create(null); - - const typeExtensionsMap: { - [name: string]: TypeExtensionNode[]; - } = Object.create(null); - - const directivesMap: { - [name: string]: DirectiveDefinitionNode[]; - } = Object.create(null); - - const schemaDefinitions: SchemaDefinitionNode[] = []; - const schemaExtensions: SchemaExtensionNode[] = []; - - for (let module of modules) { - if (isNode(module) && isDocumentNode(module)) { - module = { typeDefs: module }; - } - for (const definition of module.typeDefs.definitions) { - if (isTypeDefinitionNode(definition)) { - const typeName = definition.name.value; - - if (typeDefinitionsMap[typeName]) { - typeDefinitionsMap[typeName].push(definition); - } else { - typeDefinitionsMap[typeName] = [definition]; - } - } else if (isTypeExtensionNode(definition)) { - const typeName = definition.name.value; - - if (typeExtensionsMap[typeName]) { - typeExtensionsMap[typeName].push(definition); - } else { - typeExtensionsMap[typeName] = [definition]; - } - } else if (definition.kind === Kind.DIRECTIVE_DEFINITION) { - const directiveName = definition.name.value; - - if (directivesMap[directiveName]) { - directivesMap[directiveName].push(definition); - } else { - directivesMap[directiveName] = [definition]; - } - } else if (definition.kind === Kind.SCHEMA_DEFINITION) { - schemaDefinitions.push(definition); - } else if (definition.kind === Kind.SCHEMA_EXTENSION) { - schemaExtensions.push(definition); - } - } - } - - for (const [typeName, typeDefinitions] of Object.entries( - typeDefinitionsMap - )) { - if (typeDefinitions.length > 1) { - errors.push( - new GraphQLError( - `Type "${typeName}" was defined more than once.`, - typeDefinitions - ) - ); - } - } - - for (const [directiveName, directives] of Object.entries(directivesMap)) { - if (directives.length > 1) { - errors.push( - new GraphQLError( - `Directive "${directiveName}" was defined more than once.`, - directives - ) - ); - } - } - - let operationTypeMap: { [operation in OperationTypeNode]?: string }; - - if (schemaDefinitions.length > 0 || schemaExtensions.length > 0) { - operationTypeMap = {}; - - // We should report an error if more than one schema definition is included, - // but this matches the current 'last definition wins' behavior of `buildASTSchema`. - const schemaDefinition = schemaDefinitions[schemaDefinitions.length - 1]; - - const operationTypes = [schemaDefinition, ...schemaExtensions] - .map(node => node.operationTypes) - .filter(isNotNullOrUndefined) - .flat(); - - for (const operationType of operationTypes) { - const typeName = operationType.type.name.value; - const operation = operationType.operation; - - if (operationTypeMap[operation]) { - throw new GraphQLError( - `Must provide only one ${operation} type in schema.`, - [schemaDefinition] - ); - } - if (!(typeDefinitionsMap[typeName] || typeExtensionsMap[typeName])) { - throw new GraphQLError( - `Specified ${operation} type "${typeName}" not found in document.`, - [schemaDefinition] - ); - } - operationTypeMap[operation] = typeName; - } - } else { - operationTypeMap = { - query: "Query", - mutation: "Mutation", - subscription: "Subscription" - }; - } - - for (const [typeName, typeExtensions] of Object.entries(typeExtensionsMap)) { - if (!typeDefinitionsMap[typeName]) { - if (Object.values(operationTypeMap).includes(typeName)) { - typeDefinitionsMap[typeName] = [ - { - kind: Kind.OBJECT_TYPE_DEFINITION, - name: { - kind: Kind.NAME, - value: typeName - } - } - ]; - } else { - errors.push( - new GraphQLError( - `Cannot extend type "${typeName}" because it does not exist in the existing schema.`, - typeExtensions - ) - ); - } - } - } - - if (errors.length > 0) { - return { errors }; - } - - try { - const typeDefinitions = Object.values(typeDefinitionsMap).flat(); - const directives = Object.values(directivesMap).flat(); - - let schema = buildASTSchema({ - kind: Kind.DOCUMENT, - definitions: [...typeDefinitions, ...directives] - }); - - const typeExtensions = Object.values(typeExtensionsMap).flat(); - - if (typeExtensions.length > 0) { - schema = extendSchema(schema, { - kind: Kind.DOCUMENT, - definitions: typeExtensions - }); - } - - for (const module of modules) { - if (!module.resolvers) continue; - - addResolversToSchema(schema, module.resolvers); - } - - return { schema }; - } catch (error) { - return { errors: [error] }; - } -} - -function addResolversToSchema( - schema: GraphQLSchema, - resolvers: GraphQLResolverMap -) { - for (const [typeName, fieldConfigs] of Object.entries(resolvers)) { - const type = schema.getType(typeName); - if (!isObjectType(type)) continue; - - const fieldMap = type.getFields(); - - for (const [fieldName, fieldConfig] of Object.entries(fieldConfigs)) { - if (fieldName.startsWith("__")) { - (type as any)[fieldName.substring(2)] = fieldConfig; - continue; - } - - const field = fieldMap[fieldName]; - if (!field) continue; - - if (typeof fieldConfig === "function") { - field.resolve = fieldConfig; - } else { - if (fieldConfig.resolve) { - field.resolve = fieldConfig.resolve; - } - if (fieldConfig.subscribe) { - field.subscribe = fieldConfig.subscribe; - } - } - } - } -} diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/index.ts b/gateway/node_modules/@apollographql/apollo-tools/src/index.ts deleted file mode 100644 index de9a91b..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import "apollo-env"; - -export * from "./utilities"; - -export * from "./schema"; -export * from "./buildServiceDefinition"; diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/schema/index.ts b/gateway/node_modules/@apollographql/apollo-tools/src/schema/index.ts deleted file mode 100644 index 0e26c3e..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/schema/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./resolverMap"; -export * from "./resolveObject"; diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/schema/resolveObject.ts b/gateway/node_modules/@apollographql/apollo-tools/src/schema/resolveObject.ts deleted file mode 100644 index 7f8f33e..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/schema/resolveObject.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { GraphQLResolveInfo, FieldNode } from "graphql"; - -export type GraphQLObjectResolver = ( - source: TSource, - fields: Record>, - context: TContext, - info: GraphQLResolveInfo -) => any; - -declare module "graphql/type/definition" { - interface GraphQLObjectType { - resolveObject?: GraphQLObjectResolver; - } - - interface GraphQLObjectTypeConfig { - resolveObject?: GraphQLObjectResolver; - } -} diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/schema/resolverMap.ts b/gateway/node_modules/@apollographql/apollo-tools/src/schema/resolverMap.ts deleted file mode 100644 index 7573732..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/schema/resolverMap.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { GraphQLFieldResolver } from "graphql"; - -export interface GraphQLResolverMap { - [typeName: string]: { - [fieldName: string]: - | GraphQLFieldResolver - | { - requires?: string; - resolve: GraphQLFieldResolver; - subscribe?: undefined; - } - | { - requires?: string; - resolve?: undefined; - subscribe: GraphQLFieldResolver; - } - | { - requires?: string; - resolve: GraphQLFieldResolver; - subscribe: GraphQLFieldResolver; - }; - }; -} diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/utilities/graphql.ts b/gateway/node_modules/@apollographql/apollo-tools/src/utilities/graphql.ts deleted file mode 100644 index 3c904c2..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/utilities/graphql.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { - ASTNode, - TypeDefinitionNode, - TypeExtensionNode, - DocumentNode, - Kind -} from "graphql"; - -// FIXME: We should add proper type guards for these predicate functions -// to `@types/graphql`. -declare module "graphql/language/predicates" { - function isTypeDefinitionNode(node: ASTNode): node is TypeDefinitionNode; - function isTypeExtensionNode(node: ASTNode): node is TypeExtensionNode; -} - -export function isNode(maybeNode: any): maybeNode is ASTNode { - return maybeNode && typeof maybeNode.kind === "string"; -} - -export function isDocumentNode(node: ASTNode): node is DocumentNode { - return isNode(node) && node.kind === Kind.DOCUMENT; -} diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/utilities/index.ts b/gateway/node_modules/@apollographql/apollo-tools/src/utilities/index.ts deleted file mode 100644 index d1b1940..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/utilities/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./invariant"; -export * from "./predicates"; -export * from "./graphql"; diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/utilities/invariant.ts b/gateway/node_modules/@apollographql/apollo-tools/src/utilities/invariant.ts deleted file mode 100644 index f9f8903..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/utilities/invariant.ts +++ /dev/null @@ -1,5 +0,0 @@ -export function invariant(condition: any, message: string) { - if (!condition) { - throw new Error(message); - } -} diff --git a/gateway/node_modules/@apollographql/apollo-tools/src/utilities/predicates.ts b/gateway/node_modules/@apollographql/apollo-tools/src/utilities/predicates.ts deleted file mode 100644 index f785ba0..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/src/utilities/predicates.ts +++ /dev/null @@ -1,5 +0,0 @@ -export function isNotNullOrUndefined( - value: T | null | undefined -): value is T { - return value !== null && typeof value !== "undefined"; -} diff --git a/gateway/node_modules/@apollographql/apollo-tools/tsconfig.tsbuildinfo b/gateway/node_modules/@apollographql/apollo-tools/tsconfig.tsbuildinfo deleted file mode 100644 index 1cdc555..0000000 --- a/gateway/node_modules/@apollographql/apollo-tools/tsconfig.tsbuildinfo +++ /dev/null @@ -1,2599 +0,0 @@ -{ - "program": { - "fileInfos": { - "../../node_modules/typescript/lib/lib.es5.d.ts": { - "version": "fc43680ad3a1a4ec8c7b8d908af1ec9ddff87845346de5f02c735c9171fa98ea", - "signature": "fc43680ad3a1a4ec8c7b8d908af1ec9ddff87845346de5f02c735c9171fa98ea" - }, - "../../node_modules/typescript/lib/lib.es2015.d.ts": { - "version": "7994d44005046d1413ea31d046577cdda33b8b2470f30281fd9c8b3c99fe2d96", - "signature": "7994d44005046d1413ea31d046577cdda33b8b2470f30281fd9c8b3c99fe2d96" - }, - "../../node_modules/typescript/lib/lib.es2016.d.ts": { - "version": "5f217838d25704474d9ef93774f04164889169ca31475fe423a9de6758f058d1", - "signature": "5f217838d25704474d9ef93774f04164889169ca31475fe423a9de6758f058d1" - }, - "../../node_modules/typescript/lib/lib.es2017.d.ts": { - "version": "459097c7bdd88fc5731367e56591e4f465f2c9de81a35427a7bd473165c34743", - "signature": "459097c7bdd88fc5731367e56591e4f465f2c9de81a35427a7bd473165c34743" - }, - "../../node_modules/typescript/lib/lib.es2015.core.d.ts": { - "version": "734ddc145e147fbcd55f07d034f50ccff1086f5a880107665ec326fb368876f6", - "signature": "734ddc145e147fbcd55f07d034f50ccff1086f5a880107665ec326fb368876f6" - }, - "../../node_modules/typescript/lib/lib.es2015.collection.d.ts": { - "version": "4a0862a21f4700de873db3b916f70e41570e2f558da77d2087c9490f5a0615d8", - "signature": "4a0862a21f4700de873db3b916f70e41570e2f558da77d2087c9490f5a0615d8" - }, - "../../node_modules/typescript/lib/lib.es2015.generator.d.ts": { - "version": "765e0e9c9d74cf4d031ca8b0bdb269a853e7d81eda6354c8510218d03db12122", - "signature": "765e0e9c9d74cf4d031ca8b0bdb269a853e7d81eda6354c8510218d03db12122" - }, - "../../node_modules/typescript/lib/lib.es2015.iterable.d.ts": { - "version": "285958e7699f1babd76d595830207f18d719662a0c30fac7baca7df7162a9210", - "signature": "285958e7699f1babd76d595830207f18d719662a0c30fac7baca7df7162a9210" - }, - "../../node_modules/typescript/lib/lib.es2015.promise.d.ts": { - "version": "d4deaafbb18680e3143e8b471acd650ed6f72a408a33137f0a0dd104fbe7f8ca", - "signature": "d4deaafbb18680e3143e8b471acd650ed6f72a408a33137f0a0dd104fbe7f8ca" - }, - "../../node_modules/typescript/lib/lib.es2015.proxy.d.ts": { - "version": "5e72f949a89717db444e3bd9433468890068bb21a5638d8ab15a1359e05e54fe", - "signature": "5e72f949a89717db444e3bd9433468890068bb21a5638d8ab15a1359e05e54fe" - }, - "../../node_modules/typescript/lib/lib.es2015.reflect.d.ts": { - "version": "f5b242136ae9bfb1cc99a5971cccc44e99947ae6b5ef6fd8aa54b5ade553b976", - "signature": "f5b242136ae9bfb1cc99a5971cccc44e99947ae6b5ef6fd8aa54b5ade553b976" - }, - "../../node_modules/typescript/lib/lib.es2015.symbol.d.ts": { - "version": "9ae2860252d6b5f16e2026d8a2c2069db7b2a3295e98b6031d01337b96437230", - "signature": "9ae2860252d6b5f16e2026d8a2c2069db7b2a3295e98b6031d01337b96437230" - }, - "../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts": { - "version": "3e0a459888f32b42138d5a39f706ff2d55d500ab1031e0988b5568b0f67c2303", - "signature": "3e0a459888f32b42138d5a39f706ff2d55d500ab1031e0988b5568b0f67c2303" - }, - "../../node_modules/typescript/lib/lib.es2016.array.include.d.ts": { - "version": "3f96f1e570aedbd97bf818c246727151e873125d0512e4ae904330286c721bc0", - "signature": "3f96f1e570aedbd97bf818c246727151e873125d0512e4ae904330286c721bc0" - }, - "../../node_modules/typescript/lib/lib.es2017.object.d.ts": { - "version": "c2d60b2e558d44384e4704b00e6b3d154334721a911f094d3133c35f0917b408", - "signature": "c2d60b2e558d44384e4704b00e6b3d154334721a911f094d3133c35f0917b408" - }, - "../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts": { - "version": "b8667586a618c5cf64523d4e500ae39e781428abfb28f3de441fc66b56144b6f", - "signature": "b8667586a618c5cf64523d4e500ae39e781428abfb28f3de441fc66b56144b6f" - }, - "../../node_modules/typescript/lib/lib.es2017.string.d.ts": { - "version": "21df2e0059f14dcb4c3a0e125859f6b6ff01332ee24b0065a741d121250bc71c", - "signature": "21df2e0059f14dcb4c3a0e125859f6b6ff01332ee24b0065a741d121250bc71c" - }, - "../../node_modules/typescript/lib/lib.es2017.intl.d.ts": { - "version": "c1759cb171c7619af0d2234f2f8fb2a871ee88e956e2ed91bb61778e41f272c6", - "signature": "c1759cb171c7619af0d2234f2f8fb2a871ee88e956e2ed91bb61778e41f272c6" - }, - "../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts": { - "version": "28569d59e07d4378cb3d54979c4c60f9f06305c9bb6999ffe6cab758957adc46", - "signature": "28569d59e07d4378cb3d54979c4c60f9f06305c9bb6999ffe6cab758957adc46" - }, - "../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts": { - "version": "85085a0783532dc04b66894748dc4a49983b2fbccb0679b81356947021d7a215", - "signature": "85085a0783532dc04b66894748dc4a49983b2fbccb0679b81356947021d7a215" - }, - "../../node_modules/typescript/lib/lib.es2019.array.d.ts": { - "version": "7054111c49ea06f0f2e623eab292a9c1ae9b7d04854bd546b78f2b8b57e13d13", - "signature": "7054111c49ea06f0f2e623eab292a9c1ae9b7d04854bd546b78f2b8b57e13d13" - }, - "../../node_modules/graphql/version.d.ts": { - "version": "fd179d7b68260caf075aaabe202dfd39622403405beec3c7a697dec1df338cb2", - "signature": "fd179d7b68260caf075aaabe202dfd39622403405beec3c7a697dec1df338cb2" - }, - "../../node_modules/graphql/tsutils/Maybe.d.ts": { - "version": "ef0e9372b2f8e0afcf521501c1d88a0a32274832bf542d902ac709a9a9699392", - "signature": "ef0e9372b2f8e0afcf521501c1d88a0a32274832bf542d902ac709a9a9699392" - }, - "../../node_modules/graphql/language/source.d.ts": { - "version": "edd0c6bed787da0201d4dfeb44f7fc1724563ca89042e3f543bd879c433a6bdd", - "signature": "edd0c6bed787da0201d4dfeb44f7fc1724563ca89042e3f543bd879c433a6bdd" - }, - "../../node_modules/graphql/language/tokenKind.d.ts": { - "version": "179ac19e0cedaefa9bad359d7124724838aed1ad9e4d6e3ee02fef158f7c5b78", - "signature": "179ac19e0cedaefa9bad359d7124724838aed1ad9e4d6e3ee02fef158f7c5b78" - }, - "../../node_modules/graphql/language/ast.d.ts": { - "version": "c83f304bbb07745e87528dfbb19f71bfc6d5caa9439ff02c9f0b0e77ae6c1937", - "signature": "c83f304bbb07745e87528dfbb19f71bfc6d5caa9439ff02c9f0b0e77ae6c1937" - }, - "../../node_modules/graphql/jsutils/PromiseOrValue.d.ts": { - "version": "641b9da0622e0225740b5a55f47af9f23f01bf8f4dcbfb81128c16b585900717", - "signature": "641b9da0622e0225740b5a55f47af9f23f01bf8f4dcbfb81128c16b585900717" - }, - "../../node_modules/graphql/jsutils/Path.d.ts": { - "version": "9a270d184390b8fe3ab1dc838da770a10663611c644d8e11e4e2c2d4389e3d5b", - "signature": "9a270d184390b8fe3ab1dc838da770a10663611c644d8e11e4e2c2d4389e3d5b" - }, - "../../node_modules/graphql/type/definition.d.ts": { - "version": "e204da770c705a4486c23fe0a3a9b997eadfecc2f01764e9f4b42accb134a3e7", - "signature": "e204da770c705a4486c23fe0a3a9b997eadfecc2f01764e9f4b42accb134a3e7" - }, - "../../node_modules/graphql/language/directiveLocation.d.ts": { - "version": "ad193a600d60c419e7d95b2570a09af40a401b4f43de818220f00852ebf9f60b", - "signature": "ad193a600d60c419e7d95b2570a09af40a401b4f43de818220f00852ebf9f60b" - }, - "../../node_modules/graphql/type/directives.d.ts": { - "version": "0e53de55d29ec1bc546713b65d972473ad5f71fc70c277427c5eccd26d54b85d", - "signature": "0e53de55d29ec1bc546713b65d972473ad5f71fc70c277427c5eccd26d54b85d" - }, - "../../node_modules/graphql/type/schema.d.ts": { - "version": "1c971c6c8dd21b6318626bf6f7edf758759c04b407d79185380465fe4fb33491", - "signature": "1c971c6c8dd21b6318626bf6f7edf758759c04b407d79185380465fe4fb33491" - }, - "../../node_modules/graphql/language/location.d.ts": { - "version": "95210bf2a09475e9e19fe532fdc2562dced3536fc50f92aad88466950ff11160", - "signature": "95210bf2a09475e9e19fe532fdc2562dced3536fc50f92aad88466950ff11160" - }, - "../../node_modules/graphql/error/GraphQLError.d.ts": { - "version": "29e6df218d699507057124ec3dcb6b09fcdc2741cf30108cdbc5726e881a954b", - "signature": "29e6df218d699507057124ec3dcb6b09fcdc2741cf30108cdbc5726e881a954b" - }, - "../../node_modules/graphql/error/locatedError.d.ts": { - "version": "daebcde9337e695d9ed5366b0d40e821878084cf28354afe646f1b0d5cd6a0bb", - "signature": "daebcde9337e695d9ed5366b0d40e821878084cf28354afe646f1b0d5cd6a0bb" - }, - "../../node_modules/graphql/execution/execute.d.ts": { - "version": "9e7f5eba6467df262bbdfdcd120cd027b55e7069b4e7f7eb6d6daed5fcecd9e4", - "signature": "9e7f5eba6467df262bbdfdcd120cd027b55e7069b4e7f7eb6d6daed5fcecd9e4" - }, - "../../node_modules/graphql/graphql.d.ts": { - "version": "3179c700bec2f2a77f28211446aefd29c8b55bc64979a256592f93861aea8eca", - "signature": "3179c700bec2f2a77f28211446aefd29c8b55bc64979a256592f93861aea8eca" - }, - "../../node_modules/graphql/type/scalars.d.ts": { - "version": "5bccdb72daea90b8d204dde7feca167af0726cc517ba861bbe135b034826fb11", - "signature": "5bccdb72daea90b8d204dde7feca167af0726cc517ba861bbe135b034826fb11" - }, - "../../node_modules/graphql/type/introspection.d.ts": { - "version": "b88bc098ce093f48979097a4195ee8ec26e2398752b004f86a5362dee2b84870", - "signature": "b88bc098ce093f48979097a4195ee8ec26e2398752b004f86a5362dee2b84870" - }, - "../../node_modules/graphql/type/validate.d.ts": { - "version": "b4ea3884eab12abc7dbee203db37d6db80d22be096e92cf71e0e74bf91c61c30", - "signature": "b4ea3884eab12abc7dbee203db37d6db80d22be096e92cf71e0e74bf91c61c30" - }, - "../../node_modules/graphql/type/index.d.ts": { - "version": "82758b3f7f2813ee815849ce802cef718239d521414f8d61b233f6cfa4790e62", - "signature": "82758b3f7f2813ee815849ce802cef718239d521414f8d61b233f6cfa4790e62" - }, - "../../node_modules/graphql/language/printLocation.d.ts": { - "version": "e7accfe8bef530f48593b8142f82088a6ca3fcb444f940c8e333a2f5068d22b1", - "signature": "e7accfe8bef530f48593b8142f82088a6ca3fcb444f940c8e333a2f5068d22b1" - }, - "../../node_modules/graphql/language/kinds.d.ts": { - "version": "7e4b1e46e9d5873855d774c0b1d2770e2f7e3d06b59e4cbcaceff2aab7662293", - "signature": "7e4b1e46e9d5873855d774c0b1d2770e2f7e3d06b59e4cbcaceff2aab7662293" - }, - "../../node_modules/graphql/error/syntaxError.d.ts": { - "version": "bd23007d22f66dd6b461e8d120981dbd683b77048da82fee8b68281bacdc107b", - "signature": "bd23007d22f66dd6b461e8d120981dbd683b77048da82fee8b68281bacdc107b" - }, - "../../node_modules/graphql/error/formatError.d.ts": { - "version": "6585061d7a7a1b5f2824f055ecb1929a7ae442328261d3900b83b934cd4a4e23", - "signature": "6585061d7a7a1b5f2824f055ecb1929a7ae442328261d3900b83b934cd4a4e23" - }, - "../../node_modules/graphql/error/index.d.ts": { - "version": "5f115c795a0a8e5ad69d9bdbce5ecf46d53e324f593d545700c86278f7de72a0", - "signature": "5f115c795a0a8e5ad69d9bdbce5ecf46d53e324f593d545700c86278f7de72a0" - }, - "../../node_modules/graphql/language/lexer.d.ts": { - "version": "73226656a415fe9416516584fbec25869af51b853aa8e6fa3733842ec828d023", - "signature": "73226656a415fe9416516584fbec25869af51b853aa8e6fa3733842ec828d023" - }, - "../../node_modules/graphql/language/parser.d.ts": { - "version": "33ba8aa10e289fbc1383d5634148b87a6367e1e454011d84efbb00690aec800e", - "signature": "33ba8aa10e289fbc1383d5634148b87a6367e1e454011d84efbb00690aec800e" - }, - "../../node_modules/graphql/language/printer.d.ts": { - "version": "1d8dc736a80d377b4ce3b78568038c796485e604cb9c5c664ac5718a5fb63c41", - "signature": "1d8dc736a80d377b4ce3b78568038c796485e604cb9c5c664ac5718a5fb63c41" - }, - "../../node_modules/graphql/utilities/TypeInfo.d.ts": { - "version": "d2fa72c1c23766e73b15c4a2d2e8cf3fcef94eeb1e8d518748961232614ea1a4", - "signature": "d2fa72c1c23766e73b15c4a2d2e8cf3fcef94eeb1e8d518748961232614ea1a4" - }, - "../../node_modules/graphql/language/visitor.d.ts": { - "version": "e59876b705c63f286daaf93e782dda8bbc95edb00ff0a76c76ca8d44df8be7f9", - "signature": "e59876b705c63f286daaf93e782dda8bbc95edb00ff0a76c76ca8d44df8be7f9" - }, - "../../node_modules/graphql/language/predicates.d.ts": { - "version": "1a1cfc77cc8eb4bf26f01d2da8059920873646a67cb359e41d5b0842cd423271", - "signature": "1a1cfc77cc8eb4bf26f01d2da8059920873646a67cb359e41d5b0842cd423271" - }, - "../../node_modules/graphql/language/index.d.ts": { - "version": "937ea64d66f13db205d2f8890efc13984a8ccde20b815349ac5bf724df04a420", - "signature": "937ea64d66f13db205d2f8890efc13984a8ccde20b815349ac5bf724df04a420" - }, - "../../node_modules/graphql/execution/values.d.ts": { - "version": "66cac0f88bd0448282ac82d4e4495dba0736f001c11aead9d7e9d731a9d963e5", - "signature": "66cac0f88bd0448282ac82d4e4495dba0736f001c11aead9d7e9d731a9d963e5" - }, - "../../node_modules/graphql/execution/index.d.ts": { - "version": "c28feef2fa4cfb3be48b3d90c9742135f62b009528467982157ca1bb33a40d24", - "signature": "c28feef2fa4cfb3be48b3d90c9742135f62b009528467982157ca1bb33a40d24" - }, - "../../node_modules/graphql/subscription/subscribe.d.ts": { - "version": "1065a31fea2f98382b7efd9ac6bb39249f90e81b23843c845edd16251cb1ac22", - "signature": "1065a31fea2f98382b7efd9ac6bb39249f90e81b23843c845edd16251cb1ac22" - }, - "../../node_modules/graphql/subscription/index.d.ts": { - "version": "a0aba12f2b210e2151aa6ff772c4c0e1115d437306e1942d7b71f0b45c48ccf3", - "signature": "a0aba12f2b210e2151aa6ff772c4c0e1115d437306e1942d7b71f0b45c48ccf3" - }, - "../../node_modules/graphql/validation/ValidationContext.d.ts": { - "version": "88ddd9fff244b65754ae40499bb2c3dbecdc957ba17599be500d553263b4fa14", - "signature": "88ddd9fff244b65754ae40499bb2c3dbecdc957ba17599be500d553263b4fa14" - }, - "../../node_modules/graphql/validation/validate.d.ts": { - "version": "5a53d40b6d6b4535266af57fe5b5dcdee4e62e9d972c4e1dcedd6d7d5d50eb95", - "signature": "5a53d40b6d6b4535266af57fe5b5dcdee4e62e9d972c4e1dcedd6d7d5d50eb95" - }, - "../../node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts": { - "version": "f84bcbfacd4885ccda91fadf91660227804cd797ace7e6e6b3a06dd1390c9163", - "signature": "f84bcbfacd4885ccda91fadf91660227804cd797ace7e6e6b3a06dd1390c9163" - }, - "../../node_modules/graphql/validation/rules/UniqueOperationNames.d.ts": { - "version": "79e366844c72834fc70e03ba25ee7d9e17f088785820c4c8d76c4aed0f666152", - "signature": "79e366844c72834fc70e03ba25ee7d9e17f088785820c4c8d76c4aed0f666152" - }, - "../../node_modules/graphql/validation/rules/LoneAnonymousOperation.d.ts": { - "version": "af1f0d55a36ba07d5b33052706a697931820facbdef86805f971e4a9fa271adb", - "signature": "af1f0d55a36ba07d5b33052706a697931820facbdef86805f971e4a9fa271adb" - }, - "../../node_modules/graphql/validation/rules/SingleFieldSubscriptions.d.ts": { - "version": "d61a35a8dff32ff8e32471c28d0b4bc7864175f49c26d73f229e40740e44a89e", - "signature": "d61a35a8dff32ff8e32471c28d0b4bc7864175f49c26d73f229e40740e44a89e" - }, - "../../node_modules/graphql/validation/rules/KnownTypeNames.d.ts": { - "version": "7dd2ac606034694b347256308bf9cce02f59dcc1803e863508c4a3e3ad596fd6", - "signature": "7dd2ac606034694b347256308bf9cce02f59dcc1803e863508c4a3e3ad596fd6" - }, - "../../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.d.ts": { - "version": "01f601d0232a3ab616725f9e3d58774eafe60a7c6edd839e0a3ec826ac68ada9", - "signature": "01f601d0232a3ab616725f9e3d58774eafe60a7c6edd839e0a3ec826ac68ada9" - }, - "../../node_modules/graphql/validation/rules/VariablesAreInputTypes.d.ts": { - "version": "c90d2b93911bb5203731478c45bcad7fd8a8f37c2f98c876f3d503e7d7fccba9", - "signature": "c90d2b93911bb5203731478c45bcad7fd8a8f37c2f98c876f3d503e7d7fccba9" - }, - "../../node_modules/graphql/validation/rules/ScalarLeafs.d.ts": { - "version": "8998932e603cab7a7ed8bf33e023c2e8779b5186a19f85ec04b52b52837303e5", - "signature": "8998932e603cab7a7ed8bf33e023c2e8779b5186a19f85ec04b52b52837303e5" - }, - "../../node_modules/graphql/validation/rules/FieldsOnCorrectType.d.ts": { - "version": "73ae65d50e003738342617e2223d5d93e506e2f28ebfc4b877618dbe2fea1bae", - "signature": "73ae65d50e003738342617e2223d5d93e506e2f28ebfc4b877618dbe2fea1bae" - }, - "../../node_modules/graphql/validation/rules/UniqueFragmentNames.d.ts": { - "version": "b87cf80ec582c6965dbf51438f4684aa5728b6edb1745c9f86f044c1acea459a", - "signature": "b87cf80ec582c6965dbf51438f4684aa5728b6edb1745c9f86f044c1acea459a" - }, - "../../node_modules/graphql/validation/rules/KnownFragmentNames.d.ts": { - "version": "a97d6bbba91d2e4f72b507fb16629312b65ad24e423aa0ab8c4ccaae038b303f", - "signature": "a97d6bbba91d2e4f72b507fb16629312b65ad24e423aa0ab8c4ccaae038b303f" - }, - "../../node_modules/graphql/validation/rules/NoUnusedFragments.d.ts": { - "version": "90b75218726a5d4d13c7b64339f0d6fe7bd502972d494c2d0888a41aa719d222", - "signature": "90b75218726a5d4d13c7b64339f0d6fe7bd502972d494c2d0888a41aa719d222" - }, - "../../node_modules/graphql/validation/rules/PossibleFragmentSpreads.d.ts": { - "version": "e6c57c4a7a649c3736c1fbb0e123bbee9ec2b71de08abd152e9d6a7b1ecb94ce", - "signature": "e6c57c4a7a649c3736c1fbb0e123bbee9ec2b71de08abd152e9d6a7b1ecb94ce" - }, - "../../node_modules/graphql/validation/rules/NoFragmentCycles.d.ts": { - "version": "f997289167ac23b9d736e6b69c50aa2e01d4d512fc3a1489af265decea92c294", - "signature": "f997289167ac23b9d736e6b69c50aa2e01d4d512fc3a1489af265decea92c294" - }, - "../../node_modules/graphql/validation/rules/UniqueVariableNames.d.ts": { - "version": "570c3c725f1051f6e17785818ccf4c68109bf919c3a4fa6d2979c6e1454b6fdc", - "signature": "570c3c725f1051f6e17785818ccf4c68109bf919c3a4fa6d2979c6e1454b6fdc" - }, - "../../node_modules/graphql/validation/rules/NoUndefinedVariables.d.ts": { - "version": "618f5482dff0f11cb205dba3d57fda0ff56f4eea33a82432f42aa985471d938f", - "signature": "618f5482dff0f11cb205dba3d57fda0ff56f4eea33a82432f42aa985471d938f" - }, - "../../node_modules/graphql/validation/rules/NoUnusedVariables.d.ts": { - "version": "d488293d3ce0f02ecfa008724f8e299a4c21650ba9d11e1702d7af2b50f44014", - "signature": "d488293d3ce0f02ecfa008724f8e299a4c21650ba9d11e1702d7af2b50f44014" - }, - "../../node_modules/graphql/validation/rules/KnownDirectives.d.ts": { - "version": "f76c74cdc19b831b0b1d562676d7b5bd4aa4e41170ed8d203c584183087e47ae", - "signature": "f76c74cdc19b831b0b1d562676d7b5bd4aa4e41170ed8d203c584183087e47ae" - }, - "../../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.d.ts": { - "version": "7f7324ab2336c9719a2f963e1b62cb1fb0f8561e2ce0c9737f4ed0555283f2f5", - "signature": "7f7324ab2336c9719a2f963e1b62cb1fb0f8561e2ce0c9737f4ed0555283f2f5" - }, - "../../node_modules/graphql/validation/rules/KnownArgumentNames.d.ts": { - "version": "5f1d571248b7cf44c98c21ad16d92d96d66033bea71dbf0b447f2ec888198a73", - "signature": "5f1d571248b7cf44c98c21ad16d92d96d66033bea71dbf0b447f2ec888198a73" - }, - "../../node_modules/graphql/validation/rules/UniqueArgumentNames.d.ts": { - "version": "f232c5535f7f48d4bba0cf0dd133f4d64cef3d392d8bcd15edb956fd7b30e85c", - "signature": "f232c5535f7f48d4bba0cf0dd133f4d64cef3d392d8bcd15edb956fd7b30e85c" - }, - "../../node_modules/graphql/validation/rules/ValuesOfCorrectType.d.ts": { - "version": "952268732b597eaca4f02ece8c2c9e7da75da01b98e676cd312ae22f9504e58b", - "signature": "952268732b597eaca4f02ece8c2c9e7da75da01b98e676cd312ae22f9504e58b" - }, - "../../node_modules/graphql/validation/rules/ProvidedRequiredArguments.d.ts": { - "version": "6e6135fd4187386fda107ef6d545287a2895d157b2151e0c984bd7698a9ed9b1", - "signature": "6e6135fd4187386fda107ef6d545287a2895d157b2151e0c984bd7698a9ed9b1" - }, - "../../node_modules/graphql/validation/rules/VariablesInAllowedPosition.d.ts": { - "version": "1e475d7b65a4d83341578be67e64a860c55d3674d038634877a29bac169bd0d2", - "signature": "1e475d7b65a4d83341578be67e64a860c55d3674d038634877a29bac169bd0d2" - }, - "../../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.d.ts": { - "version": "3f3200bd17a6a4af1e3a9e086ccbf3044abdab9f36ceba19a9bd919e6aba9ce8", - "signature": "3f3200bd17a6a4af1e3a9e086ccbf3044abdab9f36ceba19a9bd919e6aba9ce8" - }, - "../../node_modules/graphql/validation/rules/UniqueInputFieldNames.d.ts": { - "version": "f65b2f4a9a56c93a07cb515e4d89c9e82afb4943b9c358106ca9129edf14144c", - "signature": "f65b2f4a9a56c93a07cb515e4d89c9e82afb4943b9c358106ca9129edf14144c" - }, - "../../node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts": { - "version": "e1cb2e53ce68e4e4943aa69403ff72489ea6ff6cb1f86f318e651ae872bb8b7e", - "signature": "e1cb2e53ce68e4e4943aa69403ff72489ea6ff6cb1f86f318e651ae872bb8b7e" - }, - "../../node_modules/graphql/validation/specifiedRules.d.ts": { - "version": "2c8cf891f01b148d4b1aaf3112d9cc3cf5914bb85f0a89f04ba452b3565e5e9d", - "signature": "2c8cf891f01b148d4b1aaf3112d9cc3cf5914bb85f0a89f04ba452b3565e5e9d" - }, - "../../node_modules/graphql/validation/index.d.ts": { - "version": "8f23d8bdb1a04b7cdea44740ac0e3c5259cf6f6831167e204097729f4a67c423", - "signature": "8f23d8bdb1a04b7cdea44740ac0e3c5259cf6f6831167e204097729f4a67c423" - }, - "../../node_modules/graphql/utilities/introspectionQuery.d.ts": { - "version": "4c67ca5bca82ed85ce8a0412e1f8cc66a855bee6468d6cd929fb38730333c597", - "signature": "4c67ca5bca82ed85ce8a0412e1f8cc66a855bee6468d6cd929fb38730333c597" - }, - "../../node_modules/graphql/utilities/getOperationAST.d.ts": { - "version": "9c67fcbb9ea0d6063e38cd5f76b5465909da3d2adf1de410aede896825eeb0b8", - "signature": "9c67fcbb9ea0d6063e38cd5f76b5465909da3d2adf1de410aede896825eeb0b8" - }, - "../../node_modules/graphql/utilities/getOperationRootType.d.ts": { - "version": "44faba923fbff252b227ab2222946cc55ab7a8d2c941e56afa7d5f4dc38bebbc", - "signature": "44faba923fbff252b227ab2222946cc55ab7a8d2c941e56afa7d5f4dc38bebbc" - }, - "../../node_modules/graphql/utilities/introspectionFromSchema.d.ts": { - "version": "96cfce503d7251a5889deb9632f78d3f2bd5a959139388772097f07bb9ed114d", - "signature": "96cfce503d7251a5889deb9632f78d3f2bd5a959139388772097f07bb9ed114d" - }, - "../../node_modules/graphql/utilities/buildClientSchema.d.ts": { - "version": "492f9320d6e6e83e81efa2ead8e4450665cf067d1a91f286d15aac8bbfff5820", - "signature": "492f9320d6e6e83e81efa2ead8e4450665cf067d1a91f286d15aac8bbfff5820" - }, - "../../node_modules/graphql/language/blockString.d.ts": { - "version": "3df8de76bd2122bae311fbe954115fc2df5630c66ebcee89978b982c1bcdbc86", - "signature": "3df8de76bd2122bae311fbe954115fc2df5630c66ebcee89978b982c1bcdbc86" - }, - "../../node_modules/graphql/utilities/buildASTSchema.d.ts": { - "version": "7f5df009b5d8d48d4a30813bc651f5c9ba49f0730dac75109d531c005f122ec7", - "signature": "7f5df009b5d8d48d4a30813bc651f5c9ba49f0730dac75109d531c005f122ec7" - }, - "../../node_modules/graphql/utilities/extendSchema.d.ts": { - "version": "9591b6ea9bd8e4a836370b690a327c7020517208dcba3ca905b77b1bd9fd2a7b", - "signature": "9591b6ea9bd8e4a836370b690a327c7020517208dcba3ca905b77b1bd9fd2a7b" - }, - "../../node_modules/graphql/utilities/lexicographicSortSchema.d.ts": { - "version": "f18645690799da82bca158180d13c516fb70d79854fc252f9756803dd19cd896", - "signature": "f18645690799da82bca158180d13c516fb70d79854fc252f9756803dd19cd896" - }, - "../../node_modules/graphql/utilities/schemaPrinter.d.ts": { - "version": "321b54bf04de38080d8f35d918abff04e1f0d5df7be63e343bb70c49639431ff", - "signature": "321b54bf04de38080d8f35d918abff04e1f0d5df7be63e343bb70c49639431ff" - }, - "../../node_modules/graphql/utilities/typeFromAST.d.ts": { - "version": "36a29c4843b36ccf4b6f0ed12763414a3516f0176563747b99c016ab3a570922", - "signature": "36a29c4843b36ccf4b6f0ed12763414a3516f0176563747b99c016ab3a570922" - }, - "../../node_modules/graphql/utilities/valueFromAST.d.ts": { - "version": "e6334bc8037e3dd22dd666b875966e92f3065e295cf3e9d0e8c0b9aca565349b", - "signature": "e6334bc8037e3dd22dd666b875966e92f3065e295cf3e9d0e8c0b9aca565349b" - }, - "../../node_modules/graphql/utilities/valueFromASTUntyped.d.ts": { - "version": "c1f15a8ff24793133ea747ac53290d4a47d5322f384ee848752f7c2246c0cbdf", - "signature": "c1f15a8ff24793133ea747ac53290d4a47d5322f384ee848752f7c2246c0cbdf" - }, - "../../node_modules/graphql/utilities/astFromValue.d.ts": { - "version": "685b590124c4ae2898dd214462436f7a6040d303ba486fc964f8036bda15f3ae", - "signature": "685b590124c4ae2898dd214462436f7a6040d303ba486fc964f8036bda15f3ae" - }, - "../../node_modules/graphql/utilities/coerceInputValue.d.ts": { - "version": "ccd23805724c86c86eccc2a73e9f1438c7b0a6e08647c0f54f6c2b3f505026a5", - "signature": "ccd23805724c86c86eccc2a73e9f1438c7b0a6e08647c0f54f6c2b3f505026a5" - }, - "../../node_modules/graphql/utilities/coerceValue.d.ts": { - "version": "d7c1657d7fe7619d3144178f26a97e27988db26ef2b7d4afee47a987bd3cd197", - "signature": "d7c1657d7fe7619d3144178f26a97e27988db26ef2b7d4afee47a987bd3cd197" - }, - "../../node_modules/graphql/utilities/isValidJSValue.d.ts": { - "version": "0a0e88c57a1a8933b03f3f0c68d9a1fc38a33507adf4b779cab4676e598a659f", - "signature": "0a0e88c57a1a8933b03f3f0c68d9a1fc38a33507adf4b779cab4676e598a659f" - }, - "../../node_modules/graphql/utilities/isValidLiteralValue.d.ts": { - "version": "dcef048aaac7b6928bff43315ee26be4908af66746fdbbc0e242a270d235d4d8", - "signature": "dcef048aaac7b6928bff43315ee26be4908af66746fdbbc0e242a270d235d4d8" - }, - "../../node_modules/graphql/utilities/concatAST.d.ts": { - "version": "101c66c0a04753be2f1604483f98e1f072d1a95418345d3a7593de7ddfd92fc9", - "signature": "101c66c0a04753be2f1604483f98e1f072d1a95418345d3a7593de7ddfd92fc9" - }, - "../../node_modules/graphql/utilities/separateOperations.d.ts": { - "version": "ec007e489e7403a1b46f85392a94fef09533a2bb12f9b98e9d433871aac66b5a", - "signature": "ec007e489e7403a1b46f85392a94fef09533a2bb12f9b98e9d433871aac66b5a" - }, - "../../node_modules/graphql/utilities/stripIgnoredCharacters.d.ts": { - "version": "8b26b547fc41921b66353c05c2dbdbdb1dc8d0b60a9ea60f912787818bb9c42c", - "signature": "8b26b547fc41921b66353c05c2dbdbdb1dc8d0b60a9ea60f912787818bb9c42c" - }, - "../../node_modules/graphql/utilities/typeComparators.d.ts": { - "version": "dbce3e1a32c2696ee8f056b92d2442fc0370f7e3d8d95dddc88cdc8d3ca03454", - "signature": "dbce3e1a32c2696ee8f056b92d2442fc0370f7e3d8d95dddc88cdc8d3ca03454" - }, - "../../node_modules/graphql/utilities/assertValidName.d.ts": { - "version": "f773fdff5d94372867a13c3fe64faa255f6127f94d1e30cfbfbc143008a795e5", - "signature": "f773fdff5d94372867a13c3fe64faa255f6127f94d1e30cfbfbc143008a795e5" - }, - "../../node_modules/graphql/utilities/findBreakingChanges.d.ts": { - "version": "142cb7aa3bf2750b293fdbf03810c5e5d787a072cfd9e039b2bc43b8ae2a0d3a", - "signature": "142cb7aa3bf2750b293fdbf03810c5e5d787a072cfd9e039b2bc43b8ae2a0d3a" - }, - "../../node_modules/graphql/utilities/findDeprecatedUsages.d.ts": { - "version": "26989291f4bcb3c8855cc3f718231466a21a8b1d4712557d09c2d2f5fd9d986b", - "signature": "26989291f4bcb3c8855cc3f718231466a21a8b1d4712557d09c2d2f5fd9d986b" - }, - "../../node_modules/graphql/utilities/index.d.ts": { - "version": "d9fcbe89b14b0a1b215bfdd339159ca6e3b6cee69a20886fefb584f9e066614e", - "signature": "d9fcbe89b14b0a1b215bfdd339159ca6e3b6cee69a20886fefb584f9e066614e" - }, - "../../node_modules/graphql/index.d.ts": { - "version": "c5fa71873707b5f8f50aec41f26a3c8c599e92178afcf446ea7859483b1cd5d6", - "signature": "c5fa71873707b5f8f50aec41f26a3c8c599e92178afcf446ea7859483b1cd5d6" - }, - "./src/utilities/graphql.ts": { - "version": "bf16e328650bdfaa442a050c5a85efbfd04cf2539e771bb704193ef30609b5db", - "signature": "e9262972b34202e9d81b7d65207f102adbe32c7a2603fcc61327c52ab536b86e" - }, - "./src/schema/resolverMap.ts": { - "version": "a7e047d59f4139171262849e0d2eac04a9b2f8ef6730d61fc977c2986cd8070d", - "signature": "1f22d84e9428f5ea5134672a6ec5dd34747310e191be8446d8c2e383a4b4079e" - }, - "./src/utilities/predicates.ts": { - "version": "fb1cf51797e17db9546d8d3f8cfba424ac5574cf8aee5b7d5d2a9f782c2d4f7b", - "signature": "bbe60ef612ccc9b627648fd0d56e4e04c52bf670c25c4cd2b681cdbedfe16927" - }, - "./src/buildServiceDefinition.ts": { - "version": "e51e353700a5f6f6a0184cca9e53dcf057bef0bae2bf8803ab45f0a342fb33aa", - "signature": "e1298999301073f912897177e2b88956415c11d58015517fe43741ff5dbd4cee" - }, - "../apollo-env/lib/polyfills/array.d.ts": { - "version": "86abf2ee3ef84a8d40947efc8141596e7b071239c3649bbe05c3b7cbf4ff25aa", - "signature": "86abf2ee3ef84a8d40947efc8141596e7b071239c3649bbe05c3b7cbf4ff25aa" - }, - "../apollo-env/lib/polyfills/object.d.ts": { - "version": "7e834906dceaaa112cc0ee0cbc277d0688cb2401d5d22d1cc8fd50982895507d", - "signature": "7e834906dceaaa112cc0ee0cbc277d0688cb2401d5d22d1cc8fd50982895507d" - }, - "../apollo-env/lib/polyfills/index.d.ts": { - "version": "b97a55b37476e5d8a355ff53ce54d39d93e04326f286a28c72b1631bc489c7e4", - "signature": "b97a55b37476e5d8a355ff53ce54d39d93e04326f286a28c72b1631bc489c7e4" - }, - "../apollo-env/lib/typescript-utility-types.d.ts": { - "version": "644f7a7f1a6918d41a4549f24b73d8423512ef64bf00ede77c6f496429f653ce", - "signature": "644f7a7f1a6918d41a4549f24b73d8423512ef64bf00ede77c6f496429f653ce" - }, - "../../node_modules/@types/events/index.d.ts": { - "version": "400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935", - "signature": "400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935" - }, - "../../node_modules/@types/node/inspector.d.ts": { - "version": "7e49dbf1543b3ee54853ade4c5e9fa460b6a4eca967efe6bf943e0c505d087ed", - "signature": "7e49dbf1543b3ee54853ade4c5e9fa460b6a4eca967efe6bf943e0c505d087ed" - }, - "../../node_modules/@types/node/base.d.ts": { - "version": "39daac3cc4e13d9f1031c4b208c4cd10cb206782a381e71dbaa2353d170b41b4", - "signature": "39daac3cc4e13d9f1031c4b208c4cd10cb206782a381e71dbaa2353d170b41b4" - }, - "../../node_modules/@types/node/ts3.2/index.d.ts": { - "version": "1de0ff6200b92798a5aef43f57029c79dbf69932037dee1c007fdd2c562db258", - "signature": "1de0ff6200b92798a5aef43f57029c79dbf69932037dee1c007fdd2c562db258" - }, - "../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts": { - "version": "cbb7029e32a6a72178cda8baa9129b1ee6d1d779a35e46c780e38b4909d42a89", - "signature": "cbb7029e32a6a72178cda8baa9129b1ee6d1d779a35e46c780e38b4909d42a89" - }, - "../../node_modules/@types/node-fetch/externals.d.ts": { - "version": "972f1e91dab93b182624a17eeed02f683b8cb3fefbda7b689cc84570029d5f73", - "signature": "972f1e91dab93b182624a17eeed02f683b8cb3fefbda7b689cc84570029d5f73" - }, - "../../node_modules/@types/node-fetch/index.d.ts": { - "version": "f51382950fa81e3a54e9fd9f343fe583cfbb221f15a51936e12411699347effe", - "signature": "f51382950fa81e3a54e9fd9f343fe583cfbb221f15a51936e12411699347effe" - }, - "../apollo-env/lib/fetch/fetch.d.ts": { - "version": "97b59dfb4a4ce0f64e56899f781dfc88c6980da0d6579e90a9419326ef1ea527", - "signature": "97b59dfb4a4ce0f64e56899f781dfc88c6980da0d6579e90a9419326ef1ea527" - }, - "../apollo-env/lib/fetch/url.d.ts": { - "version": "f2266e9e985339c2bce2521131502b6de12ce658c71f75fb23518ae73060aa23", - "signature": "f2266e9e985339c2bce2521131502b6de12ce658c71f75fb23518ae73060aa23" - }, - "../apollo-env/lib/fetch/index.d.ts": { - "version": "0f397719640ef73aaff6344f5b3fc27c69d0850dcd3f20854e322671cc8da5ae", - "signature": "0f397719640ef73aaff6344f5b3fc27c69d0850dcd3f20854e322671cc8da5ae" - }, - "../apollo-env/lib/utils/createHash.d.ts": { - "version": "134fce06b423352ff05e15abd8d25f766e0ebcc939a4b80bb5464b7c37795f0e", - "signature": "134fce06b423352ff05e15abd8d25f766e0ebcc939a4b80bb5464b7c37795f0e" - }, - "../apollo-env/lib/utils/isNodeLike.d.ts": { - "version": "69edcc3a497cf02aba61a4a0e602786a8ae1dc2e650b54e89f8e19a75ef9d62f", - "signature": "69edcc3a497cf02aba61a4a0e602786a8ae1dc2e650b54e89f8e19a75ef9d62f" - }, - "../apollo-env/lib/utils/mapValues.d.ts": { - "version": "b5e284217b0f1b760fbecd6e5bd72d8e7292d6d2a91131718a1617a7600895fc", - "signature": "b5e284217b0f1b760fbecd6e5bd72d8e7292d6d2a91131718a1617a7600895fc" - }, - "../apollo-env/lib/utils/predicates.d.ts": { - "version": "bbe60ef612ccc9b627648fd0d56e4e04c52bf670c25c4cd2b681cdbedfe16927", - "signature": "bbe60ef612ccc9b627648fd0d56e4e04c52bf670c25c4cd2b681cdbedfe16927" - }, - "../apollo-env/lib/utils/index.d.ts": { - "version": "bfb6158d32d15a5f518529d2941030215c6d6d31ba468faf805a427a9056f192", - "signature": "bfb6158d32d15a5f518529d2941030215c6d6d31ba468faf805a427a9056f192" - }, - "../apollo-env/lib/index.d.ts": { - "version": "0115d4b56667395d868039054ea4487f0cd08c7d93364d957bc27d6ddc3803a7", - "signature": "0115d4b56667395d868039054ea4487f0cd08c7d93364d957bc27d6ddc3803a7" - }, - "./src/utilities/invariant.ts": { - "version": "a6c1bf33c9860b105b9880e700bdae4ff3a5e439656509f570131f193e26a1b7", - "signature": "f2a536dca552a281425798e24ac180682804624f3a24d9ad3577642717d9a1c5" - }, - "./src/utilities/index.ts": { - "version": "8373cc91738a3f3cf5c8d33b47ca9493a229a818626d64960ac9db7d12f70187", - "signature": "88b50dab45d0f05859ef0a4e29e5435ea27aa0715486397adb36b0594be2db0a" - }, - "./src/schema/resolveObject.ts": { - "version": "662afc2590943a307ffb64b0bd895ac69c194e41ff69e5ce30930f27d1f6b015", - "signature": "ce05b49cec1caa5ddf10eed9b0a433ff5b8ac1b456d3f8d624ce06655d6668ed" - }, - "./src/schema/index.ts": { - "version": "e7f91307ee055529b6b539f53ff8c15820b2607886593eac1f8139ece95bca23", - "signature": "61ae180902d1e3cb06d0ff4e6889d0039e9beeffe6950348e1420f386da935bb" - }, - "./src/index.ts": { - "version": "36cad1f05100d6cd7d5e566dfc65b13b7239a937517450ef009be3b0e69db244", - "signature": "fdfa8b2285c4164e3bae08aaa475124d762016045148fdf3b780ba5d3dfbf11f" - } - }, - "options": { - "composite": true, - "target": 4, - "module": 1, - "moduleResolution": 2, - "esModuleInterop": true, - "sourceMap": true, - "declaration": true, - "declarationMap": true, - "removeComments": true, - "strict": true, - "noImplicitAny": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "noUnusedParameters": false, - "noUnusedLocals": false, - "forceConsistentCasingInFileNames": true, - "lib": [ - "lib.es2017.d.ts", - "lib.es2018.asynciterable.d.ts" - ], - "types": [ - "node" - ], - "baseUrl": "../..", - "paths": { - "*": [ - "types/*" - ] - }, - "rootDir": "./src", - "outDir": "./lib", - "configFilePath": "./tsconfig.json" - }, - "referencedMap": { - "../../node_modules/typescript/lib/lib.es5.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2016.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.core.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.collection.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.generator.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.iterable.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.promise.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.proxy.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.reflect.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.symbol.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2016.array.include.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.object.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.string.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.intl.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2019.array.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/version.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/tsutils/Maybe.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/source.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/tokenKind.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/ast.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/tokenKind.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/jsutils/PromiseOrValue.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/jsutils/Path.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/definition.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/jsutils/PromiseOrValue.d.ts", - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/directiveLocation.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/directives.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/schema.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/location.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/GraphQLError.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/locatedError.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/execution/execute.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/jsutils/PromiseOrValue.d.ts", - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/error/locatedError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/graphql.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/execution/execute.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/scalars.d.ts": [ - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/introspection.d.ts": [ - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/validate.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/index.d.ts": [ - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/scalars.d.ts", - "../../node_modules/graphql/type/introspection.d.ts", - "../../node_modules/graphql/type/validate.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/printLocation.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/kinds.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/syntaxError.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/formatError.d.ts": [ - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/index.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/error/syntaxError.d.ts", - "../../node_modules/graphql/error/locatedError.d.ts", - "../../node_modules/graphql/error/formatError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/lexer.d.ts": [ - "../../node_modules/graphql/error/index.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/parser.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/lexer.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/printer.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/TypeInfo.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/visitor.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/predicates.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/index.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/graphql/language/printLocation.d.ts", - "../../node_modules/graphql/language/kinds.d.ts", - "../../node_modules/graphql/language/tokenKind.d.ts", - "../../node_modules/graphql/language/lexer.d.ts", - "../../node_modules/graphql/language/parser.d.ts", - "../../node_modules/graphql/language/printer.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/predicates.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/execution/values.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/execution/index.d.ts": [ - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/execution/execute.d.ts", - "../../node_modules/graphql/execution/values.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/subscription/subscribe.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/execution/execute.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/subscription/index.d.ts": [ - "../../node_modules/graphql/subscription/subscribe.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/ValidationContext.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/validate.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueOperationNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/LoneAnonymousOperation.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/SingleFieldSubscriptions.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/KnownTypeNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/VariablesAreInputTypes.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/ScalarLeafs.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/FieldsOnCorrectType.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueFragmentNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/KnownFragmentNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/NoUnusedFragments.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/PossibleFragmentSpreads.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/NoFragmentCycles.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueVariableNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/NoUndefinedVariables.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/NoUnusedVariables.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/KnownDirectives.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/KnownArgumentNames.d.ts": [ - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueArgumentNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/ValuesOfCorrectType.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/ProvidedRequiredArguments.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/VariablesInAllowedPosition.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueInputFieldNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/specifiedRules.d.ts": [ - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts", - "../../node_modules/graphql/validation/rules/UniqueOperationNames.d.ts", - "../../node_modules/graphql/validation/rules/LoneAnonymousOperation.d.ts", - "../../node_modules/graphql/validation/rules/SingleFieldSubscriptions.d.ts", - "../../node_modules/graphql/validation/rules/KnownTypeNames.d.ts", - "../../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.d.ts", - "../../node_modules/graphql/validation/rules/VariablesAreInputTypes.d.ts", - "../../node_modules/graphql/validation/rules/ScalarLeafs.d.ts", - "../../node_modules/graphql/validation/rules/FieldsOnCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/UniqueFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/KnownFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedFragments.d.ts", - "../../node_modules/graphql/validation/rules/PossibleFragmentSpreads.d.ts", - "../../node_modules/graphql/validation/rules/NoFragmentCycles.d.ts", - "../../node_modules/graphql/validation/rules/UniqueVariableNames.d.ts", - "../../node_modules/graphql/validation/rules/NoUndefinedVariables.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedVariables.d.ts", - "../../node_modules/graphql/validation/rules/KnownDirectives.d.ts", - "../../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.d.ts", - "../../node_modules/graphql/validation/rules/KnownArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/ValuesOfCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/ProvidedRequiredArguments.d.ts", - "../../node_modules/graphql/validation/rules/VariablesInAllowedPosition.d.ts", - "../../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.d.ts", - "../../node_modules/graphql/validation/rules/UniqueInputFieldNames.d.ts", - "../../node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/index.d.ts": [ - "../../node_modules/graphql/validation/validate.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/validation/specifiedRules.d.ts", - "../../node_modules/graphql/validation/rules/FieldsOnCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.d.ts", - "../../node_modules/graphql/validation/rules/KnownArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/KnownDirectives.d.ts", - "../../node_modules/graphql/validation/rules/KnownFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/KnownTypeNames.d.ts", - "../../node_modules/graphql/validation/rules/LoneAnonymousOperation.d.ts", - "../../node_modules/graphql/validation/rules/NoFragmentCycles.d.ts", - "../../node_modules/graphql/validation/rules/NoUndefinedVariables.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedFragments.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedVariables.d.ts", - "../../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.d.ts", - "../../node_modules/graphql/validation/rules/PossibleFragmentSpreads.d.ts", - "../../node_modules/graphql/validation/rules/ProvidedRequiredArguments.d.ts", - "../../node_modules/graphql/validation/rules/ScalarLeafs.d.ts", - "../../node_modules/graphql/validation/rules/SingleFieldSubscriptions.d.ts", - "../../node_modules/graphql/validation/rules/UniqueArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.d.ts", - "../../node_modules/graphql/validation/rules/UniqueFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueInputFieldNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueOperationNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueVariableNames.d.ts", - "../../node_modules/graphql/validation/rules/ValuesOfCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/VariablesAreInputTypes.d.ts", - "../../node_modules/graphql/validation/rules/VariablesInAllowedPosition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/introspectionQuery.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/getOperationAST.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/getOperationRootType.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/introspectionFromSchema.d.ts": [ - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/utilities/introspectionQuery.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/buildClientSchema.d.ts": [ - "../../node_modules/graphql/utilities/introspectionQuery.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/blockString.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/buildASTSchema.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/language/parser.d.ts", - "../../node_modules/graphql/language/blockString.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/extendSchema.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/lexicographicSortSchema.d.ts": [ - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/schemaPrinter.d.ts": [ - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/typeFromAST.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/valueFromAST.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/valueFromASTUntyped.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/astFromValue.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/coerceInputValue.d.ts": [ - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/coerceValue.d.ts": [ - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/isValidJSValue.d.ts": [ - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/isValidLiteralValue.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/concatAST.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/separateOperations.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/stripIgnoredCharacters.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/typeComparators.d.ts": [ - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/assertValidName.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/findBreakingChanges.d.ts": [ - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/findDeprecatedUsages.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/index.d.ts": [ - "../../node_modules/graphql/utilities/introspectionQuery.d.ts", - "../../node_modules/graphql/utilities/getOperationAST.d.ts", - "../../node_modules/graphql/utilities/getOperationRootType.d.ts", - "../../node_modules/graphql/utilities/introspectionFromSchema.d.ts", - "../../node_modules/graphql/utilities/buildClientSchema.d.ts", - "../../node_modules/graphql/utilities/buildASTSchema.d.ts", - "../../node_modules/graphql/utilities/extendSchema.d.ts", - "../../node_modules/graphql/utilities/lexicographicSortSchema.d.ts", - "../../node_modules/graphql/utilities/schemaPrinter.d.ts", - "../../node_modules/graphql/utilities/typeFromAST.d.ts", - "../../node_modules/graphql/utilities/valueFromAST.d.ts", - "../../node_modules/graphql/utilities/valueFromASTUntyped.d.ts", - "../../node_modules/graphql/utilities/astFromValue.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/graphql/utilities/coerceInputValue.d.ts", - "../../node_modules/graphql/utilities/coerceValue.d.ts", - "../../node_modules/graphql/utilities/isValidJSValue.d.ts", - "../../node_modules/graphql/utilities/isValidLiteralValue.d.ts", - "../../node_modules/graphql/utilities/concatAST.d.ts", - "../../node_modules/graphql/utilities/separateOperations.d.ts", - "../../node_modules/graphql/utilities/stripIgnoredCharacters.d.ts", - "../../node_modules/graphql/utilities/typeComparators.d.ts", - "../../node_modules/graphql/utilities/assertValidName.d.ts", - "../../node_modules/graphql/utilities/findBreakingChanges.d.ts", - "../../node_modules/graphql/utilities/findDeprecatedUsages.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/index.d.ts": [ - "../../node_modules/graphql/version.d.ts", - "../../node_modules/graphql/graphql.d.ts", - "../../node_modules/graphql/type/index.d.ts", - "../../node_modules/graphql/language/index.d.ts", - "../../node_modules/graphql/execution/index.d.ts", - "../../node_modules/graphql/subscription/index.d.ts", - "../../node_modules/graphql/validation/index.d.ts", - "../../node_modules/graphql/error/index.d.ts", - "../../node_modules/graphql/utilities/index.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/utilities/graphql.ts": [ - "../../node_modules/graphql/index.d.ts", - "../../node_modules/graphql/language/predicates.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/schema/resolverMap.ts": [ - "../../node_modules/graphql/index.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/utilities/predicates.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/buildServiceDefinition.ts": [ - "../../node_modules/graphql/index.d.ts", - "./src/utilities/graphql.ts", - "./src/schema/resolverMap.ts", - "./src/utilities/predicates.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/polyfills/array.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/polyfills/object.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/polyfills/index.d.ts": [ - "../apollo-env/lib/polyfills/array.d.ts", - "../apollo-env/lib/polyfills/object.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/typescript-utility-types.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/events/index.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node/inspector.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node/base.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/inspector.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node/ts3.2/index.d.ts": [ - "../../node_modules/@types/node/base.d.ts" - ], - "../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node-fetch/externals.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node-fetch/index.d.ts": [ - "../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node-fetch/externals.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/fetch/fetch.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node-fetch/index.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/fetch/url.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/fetch/index.d.ts": [ - "../apollo-env/lib/fetch/fetch.d.ts", - "../apollo-env/lib/fetch/url.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/createHash.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/isNodeLike.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/mapValues.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/predicates.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/index.d.ts": [ - "../apollo-env/lib/utils/createHash.d.ts", - "../apollo-env/lib/utils/isNodeLike.d.ts", - "../apollo-env/lib/utils/mapValues.d.ts", - "../apollo-env/lib/utils/predicates.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/index.d.ts": [ - "../apollo-env/lib/polyfills/index.d.ts", - "../apollo-env/lib/typescript-utility-types.d.ts", - "../apollo-env/lib/fetch/index.d.ts", - "../apollo-env/lib/utils/index.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/utilities/invariant.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/utilities/index.ts": [ - "./src/utilities/invariant.ts", - "./src/utilities/predicates.ts", - "./src/utilities/graphql.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/schema/resolveObject.ts": [ - "../../node_modules/graphql/index.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/schema/index.ts": [ - "./src/schema/resolverMap.ts", - "./src/schema/resolveObject.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/index.ts": [ - "../apollo-env/lib/index.d.ts", - "./src/utilities/index.ts", - "./src/schema/index.ts", - "./src/buildServiceDefinition.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ] - }, - "exportedModulesMap": { - "../../node_modules/typescript/lib/lib.es5.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2016.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.core.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.collection.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.generator.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.iterable.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.promise.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.proxy.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.reflect.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.symbol.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2016.array.include.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.object.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.string.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.intl.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/typescript/lib/lib.es2019.array.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/version.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/index.d.ts": [ - "../../node_modules/graphql/version.d.ts", - "../../node_modules/graphql/graphql.d.ts", - "../../node_modules/graphql/type/index.d.ts", - "../../node_modules/graphql/language/index.d.ts", - "../../node_modules/graphql/execution/index.d.ts", - "../../node_modules/graphql/subscription/index.d.ts", - "../../node_modules/graphql/validation/index.d.ts", - "../../node_modules/graphql/error/index.d.ts", - "../../node_modules/graphql/utilities/index.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "./src/schema/resolveObject.ts": [ - "../../node_modules/graphql/index.d.ts", - "../../node_modules/graphql/type/definition.d.ts" - ], - "./src/schema/index.ts": [ - "./src/schema/resolverMap.ts", - "./src/schema/resolveObject.ts" - ], - "./src/index.ts": [ - "../apollo-env/lib/index.d.ts", - "./src/utilities/index.ts", - "./src/schema/index.ts", - "./src/buildServiceDefinition.ts" - ], - "./src/buildServiceDefinition.ts": [ - "../../node_modules/graphql/index.d.ts", - "./src/schema/resolverMap.ts" - ], - "./src/schema/resolverMap.ts": [ - "../../node_modules/graphql/index.d.ts" - ], - "./src/utilities/graphql.ts": [ - "../../node_modules/graphql/index.d.ts", - "../../node_modules/graphql/language/predicates.d.ts" - ], - "./src/utilities/index.ts": [ - "./src/utilities/invariant.ts", - "./src/utilities/predicates.ts", - "./src/utilities/graphql.ts" - ], - "../../node_modules/graphql/tsutils/Maybe.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/astFromValue.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/index.d.ts": [ - "../../node_modules/graphql/utilities/introspectionQuery.d.ts", - "../../node_modules/graphql/utilities/getOperationAST.d.ts", - "../../node_modules/graphql/utilities/getOperationRootType.d.ts", - "../../node_modules/graphql/utilities/introspectionFromSchema.d.ts", - "../../node_modules/graphql/utilities/buildClientSchema.d.ts", - "../../node_modules/graphql/utilities/buildASTSchema.d.ts", - "../../node_modules/graphql/utilities/extendSchema.d.ts", - "../../node_modules/graphql/utilities/lexicographicSortSchema.d.ts", - "../../node_modules/graphql/utilities/schemaPrinter.d.ts", - "../../node_modules/graphql/utilities/typeFromAST.d.ts", - "../../node_modules/graphql/utilities/valueFromAST.d.ts", - "../../node_modules/graphql/utilities/valueFromASTUntyped.d.ts", - "../../node_modules/graphql/utilities/astFromValue.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/graphql/utilities/coerceInputValue.d.ts", - "../../node_modules/graphql/utilities/coerceValue.d.ts", - "../../node_modules/graphql/utilities/isValidJSValue.d.ts", - "../../node_modules/graphql/utilities/isValidLiteralValue.d.ts", - "../../node_modules/graphql/utilities/concatAST.d.ts", - "../../node_modules/graphql/utilities/separateOperations.d.ts", - "../../node_modules/graphql/utilities/stripIgnoredCharacters.d.ts", - "../../node_modules/graphql/utilities/typeComparators.d.ts", - "../../node_modules/graphql/utilities/assertValidName.d.ts", - "../../node_modules/graphql/utilities/findBreakingChanges.d.ts", - "../../node_modules/graphql/utilities/findDeprecatedUsages.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/valueFromASTUntyped.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/valueFromAST.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/buildASTSchema.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/language/parser.d.ts", - "../../node_modules/graphql/language/blockString.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/getOperationAST.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/introspectionQuery.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/buildClientSchema.d.ts": [ - "../../node_modules/graphql/utilities/introspectionQuery.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/introspectionFromSchema.d.ts": [ - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/utilities/introspectionQuery.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/NoUnusedVariables.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/index.d.ts": [ - "../../node_modules/graphql/validation/validate.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/validation/specifiedRules.d.ts", - "../../node_modules/graphql/validation/rules/FieldsOnCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.d.ts", - "../../node_modules/graphql/validation/rules/KnownArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/KnownDirectives.d.ts", - "../../node_modules/graphql/validation/rules/KnownFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/KnownTypeNames.d.ts", - "../../node_modules/graphql/validation/rules/LoneAnonymousOperation.d.ts", - "../../node_modules/graphql/validation/rules/NoFragmentCycles.d.ts", - "../../node_modules/graphql/validation/rules/NoUndefinedVariables.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedFragments.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedVariables.d.ts", - "../../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.d.ts", - "../../node_modules/graphql/validation/rules/PossibleFragmentSpreads.d.ts", - "../../node_modules/graphql/validation/rules/ProvidedRequiredArguments.d.ts", - "../../node_modules/graphql/validation/rules/ScalarLeafs.d.ts", - "../../node_modules/graphql/validation/rules/SingleFieldSubscriptions.d.ts", - "../../node_modules/graphql/validation/rules/UniqueArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.d.ts", - "../../node_modules/graphql/validation/rules/UniqueFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueInputFieldNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueOperationNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueVariableNames.d.ts", - "../../node_modules/graphql/validation/rules/ValuesOfCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/VariablesAreInputTypes.d.ts", - "../../node_modules/graphql/validation/rules/VariablesInAllowedPosition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/specifiedRules.d.ts": [ - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts", - "../../node_modules/graphql/validation/rules/UniqueOperationNames.d.ts", - "../../node_modules/graphql/validation/rules/LoneAnonymousOperation.d.ts", - "../../node_modules/graphql/validation/rules/SingleFieldSubscriptions.d.ts", - "../../node_modules/graphql/validation/rules/KnownTypeNames.d.ts", - "../../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.d.ts", - "../../node_modules/graphql/validation/rules/VariablesAreInputTypes.d.ts", - "../../node_modules/graphql/validation/rules/ScalarLeafs.d.ts", - "../../node_modules/graphql/validation/rules/FieldsOnCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/UniqueFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/KnownFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedFragments.d.ts", - "../../node_modules/graphql/validation/rules/PossibleFragmentSpreads.d.ts", - "../../node_modules/graphql/validation/rules/NoFragmentCycles.d.ts", - "../../node_modules/graphql/validation/rules/UniqueVariableNames.d.ts", - "../../node_modules/graphql/validation/rules/NoUndefinedVariables.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedVariables.d.ts", - "../../node_modules/graphql/validation/rules/KnownDirectives.d.ts", - "../../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.d.ts", - "../../node_modules/graphql/validation/rules/KnownArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/ValuesOfCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/ProvidedRequiredArguments.d.ts", - "../../node_modules/graphql/validation/rules/VariablesInAllowedPosition.d.ts", - "../../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.d.ts", - "../../node_modules/graphql/validation/rules/UniqueInputFieldNames.d.ts", - "../../node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/NoUndefinedVariables.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/SingleFieldSubscriptions.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/validate.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/ValidationContext.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueInputFieldNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/VariablesInAllowedPosition.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/ProvidedRequiredArguments.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/ValuesOfCorrectType.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueArgumentNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/KnownArgumentNames.d.ts": [ - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/KnownDirectives.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueVariableNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/NoFragmentCycles.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/PossibleFragmentSpreads.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/NoUnusedFragments.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/KnownFragmentNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueFragmentNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/FieldsOnCorrectType.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/ScalarLeafs.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/VariablesAreInputTypes.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/KnownTypeNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/LoneAnonymousOperation.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/UniqueOperationNames.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts": [ - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/subscription/subscribe.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/execution/execute.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/subscription/index.d.ts": [ - "../../node_modules/graphql/subscription/subscribe.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/execution/values.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/execution/index.d.ts": [ - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/execution/execute.d.ts", - "../../node_modules/graphql/execution/values.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/visitor.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/index.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/graphql/language/printLocation.d.ts", - "../../node_modules/graphql/language/kinds.d.ts", - "../../node_modules/graphql/language/tokenKind.d.ts", - "../../node_modules/graphql/language/lexer.d.ts", - "../../node_modules/graphql/language/parser.d.ts", - "../../node_modules/graphql/language/printer.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/predicates.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/TypeInfo.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/graphql.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/execution/execute.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/execution/execute.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/jsutils/PromiseOrValue.d.ts", - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/error/locatedError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/GraphQLError.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/findDeprecatedUsages.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/assertValidName.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/isValidLiteralValue.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/coerceValue.d.ts": [ - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/coerceInputValue.d.ts": [ - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/index.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/error/syntaxError.d.ts", - "../../node_modules/graphql/error/locatedError.d.ts", - "../../node_modules/graphql/error/formatError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/lexer.d.ts": [ - "../../node_modules/graphql/error/index.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/parser.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/lexer.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/formatError.d.ts": [ - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/syntaxError.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/validate.d.ts": [ - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/index.d.ts": [ - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/scalars.d.ts", - "../../node_modules/graphql/type/introspection.d.ts", - "../../node_modules/graphql/type/validate.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/error/locatedError.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/schema.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/findBreakingChanges.d.ts": [ - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/typeComparators.d.ts": [ - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/typeFromAST.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/schemaPrinter.d.ts": [ - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/lexicographicSortSchema.d.ts": [ - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/extendSchema.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/getOperationRootType.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/definition.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/jsutils/PromiseOrValue.d.ts", - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/isValidJSValue.d.ts": [ - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/introspection.d.ts": [ - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/scalars.d.ts": [ - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/type/directives.d.ts": [ - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/source.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/stripIgnoredCharacters.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/printLocation.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/location.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/ast.d.ts": [ - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/tokenKind.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/separateOperations.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/utilities/concatAST.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/predicates.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/printer.d.ts": [ - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/tokenKind.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/jsutils/PromiseOrValue.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/jsutils/Path.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/directiveLocation.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/kinds.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/graphql/language/blockString.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/polyfills/array.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/polyfills/object.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/polyfills/index.d.ts": [ - "../apollo-env/lib/polyfills/array.d.ts", - "../apollo-env/lib/polyfills/object.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/index.d.ts": [ - "../apollo-env/lib/polyfills/index.d.ts", - "../apollo-env/lib/typescript-utility-types.d.ts", - "../apollo-env/lib/fetch/index.d.ts", - "../apollo-env/lib/utils/index.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/typescript-utility-types.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/events/index.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node/inspector.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node/base.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/inspector.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/index.d.ts": [ - "../apollo-env/lib/utils/createHash.d.ts", - "../apollo-env/lib/utils/isNodeLike.d.ts", - "../apollo-env/lib/utils/mapValues.d.ts", - "../apollo-env/lib/utils/predicates.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/predicates.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/mapValues.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/isNodeLike.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/utils/createHash.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/fetch/index.d.ts": [ - "../apollo-env/lib/fetch/fetch.d.ts", - "../apollo-env/lib/fetch/url.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/fetch/url.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../apollo-env/lib/fetch/fetch.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node-fetch/index.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node-fetch/index.d.ts": [ - "../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node-fetch/externals.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node-fetch/externals.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts": [ - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts" - ], - "../../node_modules/@types/node/ts3.2/index.d.ts": [ - "../../node_modules/@types/node/base.d.ts" - ] - }, - "semanticDiagnosticsPerFile": [ - "../../node_modules/graphql/version.d.ts", - "../../node_modules/graphql/tsutils/Maybe.d.ts", - "../../node_modules/graphql/language/source.d.ts", - "../../node_modules/graphql/language/tokenKind.d.ts", - "../../node_modules/graphql/language/ast.d.ts", - "../../node_modules/graphql/jsutils/PromiseOrValue.d.ts", - "../../node_modules/graphql/jsutils/Path.d.ts", - "../../node_modules/graphql/type/definition.d.ts", - "../../node_modules/graphql/language/directiveLocation.d.ts", - "../../node_modules/graphql/type/directives.d.ts", - "../../node_modules/graphql/type/schema.d.ts", - "../../node_modules/graphql/language/location.d.ts", - "../../node_modules/graphql/error/GraphQLError.d.ts", - "../../node_modules/graphql/error/locatedError.d.ts", - "../../node_modules/graphql/execution/execute.d.ts", - "../../node_modules/graphql/graphql.d.ts", - "../../node_modules/graphql/type/scalars.d.ts", - "../../node_modules/graphql/type/introspection.d.ts", - "../../node_modules/graphql/type/validate.d.ts", - "../../node_modules/graphql/type/index.d.ts", - "../../node_modules/graphql/language/printLocation.d.ts", - "../../node_modules/graphql/language/kinds.d.ts", - "../../node_modules/graphql/error/syntaxError.d.ts", - "../../node_modules/graphql/error/formatError.d.ts", - "../../node_modules/graphql/error/index.d.ts", - "../../node_modules/graphql/language/lexer.d.ts", - "../../node_modules/graphql/language/parser.d.ts", - "../../node_modules/graphql/language/printer.d.ts", - "../../node_modules/graphql/utilities/TypeInfo.d.ts", - "../../node_modules/graphql/language/visitor.d.ts", - "../../node_modules/graphql/language/predicates.d.ts", - "../../node_modules/graphql/language/index.d.ts", - "../../node_modules/graphql/execution/values.d.ts", - "../../node_modules/graphql/execution/index.d.ts", - "../../node_modules/graphql/subscription/subscribe.d.ts", - "../../node_modules/graphql/subscription/index.d.ts", - "../../node_modules/graphql/validation/ValidationContext.d.ts", - "../../node_modules/graphql/validation/validate.d.ts", - "../../node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts", - "../../node_modules/graphql/validation/rules/UniqueOperationNames.d.ts", - "../../node_modules/graphql/validation/rules/LoneAnonymousOperation.d.ts", - "../../node_modules/graphql/validation/rules/SingleFieldSubscriptions.d.ts", - "../../node_modules/graphql/validation/rules/KnownTypeNames.d.ts", - "../../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.d.ts", - "../../node_modules/graphql/validation/rules/VariablesAreInputTypes.d.ts", - "../../node_modules/graphql/validation/rules/ScalarLeafs.d.ts", - "../../node_modules/graphql/validation/rules/FieldsOnCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/UniqueFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/KnownFragmentNames.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedFragments.d.ts", - "../../node_modules/graphql/validation/rules/PossibleFragmentSpreads.d.ts", - "../../node_modules/graphql/validation/rules/NoFragmentCycles.d.ts", - "../../node_modules/graphql/validation/rules/UniqueVariableNames.d.ts", - "../../node_modules/graphql/validation/rules/NoUndefinedVariables.d.ts", - "../../node_modules/graphql/validation/rules/NoUnusedVariables.d.ts", - "../../node_modules/graphql/validation/rules/KnownDirectives.d.ts", - "../../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.d.ts", - "../../node_modules/graphql/validation/rules/KnownArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/UniqueArgumentNames.d.ts", - "../../node_modules/graphql/validation/rules/ValuesOfCorrectType.d.ts", - "../../node_modules/graphql/validation/rules/ProvidedRequiredArguments.d.ts", - "../../node_modules/graphql/validation/rules/VariablesInAllowedPosition.d.ts", - "../../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.d.ts", - "../../node_modules/graphql/validation/rules/UniqueInputFieldNames.d.ts", - "../../node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts", - "../../node_modules/graphql/validation/specifiedRules.d.ts", - "../../node_modules/graphql/validation/index.d.ts", - "../../node_modules/graphql/utilities/introspectionQuery.d.ts", - "../../node_modules/graphql/utilities/getOperationAST.d.ts", - "../../node_modules/graphql/utilities/getOperationRootType.d.ts", - "../../node_modules/graphql/utilities/introspectionFromSchema.d.ts", - "../../node_modules/graphql/utilities/buildClientSchema.d.ts", - "../../node_modules/graphql/language/blockString.d.ts", - "../../node_modules/graphql/utilities/buildASTSchema.d.ts", - "../../node_modules/graphql/utilities/extendSchema.d.ts", - "../../node_modules/graphql/utilities/lexicographicSortSchema.d.ts", - "../../node_modules/graphql/utilities/schemaPrinter.d.ts", - "../../node_modules/graphql/utilities/typeFromAST.d.ts", - "../../node_modules/graphql/utilities/valueFromAST.d.ts", - "../../node_modules/graphql/utilities/valueFromASTUntyped.d.ts", - "../../node_modules/graphql/utilities/astFromValue.d.ts", - "../../node_modules/graphql/utilities/coerceInputValue.d.ts", - "../../node_modules/graphql/utilities/coerceValue.d.ts", - "../../node_modules/graphql/utilities/isValidJSValue.d.ts", - "../../node_modules/graphql/utilities/isValidLiteralValue.d.ts", - "../../node_modules/graphql/utilities/concatAST.d.ts", - "../../node_modules/graphql/utilities/separateOperations.d.ts", - "../../node_modules/graphql/utilities/stripIgnoredCharacters.d.ts", - "../../node_modules/graphql/utilities/typeComparators.d.ts", - "../../node_modules/graphql/utilities/assertValidName.d.ts", - "../../node_modules/graphql/utilities/findBreakingChanges.d.ts", - "../../node_modules/graphql/utilities/findDeprecatedUsages.d.ts", - "../../node_modules/graphql/utilities/index.d.ts", - "../../node_modules/graphql/index.d.ts", - "./src/utilities/graphql.ts", - "./src/schema/resolverMap.ts", - "./src/utilities/predicates.ts", - "./src/buildServiceDefinition.ts", - "../apollo-env/lib/polyfills/array.d.ts", - "../apollo-env/lib/polyfills/object.d.ts", - "../apollo-env/lib/polyfills/index.d.ts", - "../apollo-env/lib/typescript-utility-types.d.ts", - "../../node_modules/@types/events/index.d.ts", - "../../node_modules/@types/node/inspector.d.ts", - "../../node_modules/@types/node/base.d.ts", - "../../node_modules/@types/node/ts3.2/index.d.ts", - "../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts", - "../../node_modules/@types/node-fetch/externals.d.ts", - "../../node_modules/@types/node-fetch/index.d.ts", - "../apollo-env/lib/fetch/fetch.d.ts", - "../apollo-env/lib/fetch/url.d.ts", - "../apollo-env/lib/fetch/index.d.ts", - "../apollo-env/lib/utils/createHash.d.ts", - "../apollo-env/lib/utils/isNodeLike.d.ts", - "../apollo-env/lib/utils/mapValues.d.ts", - "../apollo-env/lib/utils/predicates.d.ts", - "../apollo-env/lib/utils/index.d.ts", - "../apollo-env/lib/index.d.ts", - "./src/utilities/invariant.ts", - "./src/utilities/index.ts", - "./src/schema/resolveObject.ts", - "./src/schema/index.ts", - "./src/index.ts", - "../../node_modules/typescript/lib/lib.es2015.d.ts", - "../../node_modules/typescript/lib/lib.es2016.d.ts", - "../../node_modules/typescript/lib/lib.es2017.d.ts", - "../../node_modules/typescript/lib/lib.es2019.array.d.ts", - "../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts", - "../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts", - "../../node_modules/typescript/lib/lib.es2017.intl.d.ts", - "../../node_modules/typescript/lib/lib.es2017.string.d.ts", - "../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts", - "../../node_modules/typescript/lib/lib.es2017.object.d.ts", - "../../node_modules/typescript/lib/lib.es2016.array.include.d.ts", - "../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts", - "../../node_modules/typescript/lib/lib.es2015.symbol.d.ts", - "../../node_modules/typescript/lib/lib.es2015.reflect.d.ts", - "../../node_modules/typescript/lib/lib.es2015.proxy.d.ts", - "../../node_modules/typescript/lib/lib.es2015.promise.d.ts", - "../../node_modules/typescript/lib/lib.es2015.iterable.d.ts", - "../../node_modules/typescript/lib/lib.es2015.generator.d.ts", - "../../node_modules/typescript/lib/lib.es2015.collection.d.ts", - "../../node_modules/typescript/lib/lib.es2015.core.d.ts", - "../../node_modules/typescript/lib/lib.es5.d.ts" - ] - }, - "version": "3.7.5" -} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/graphql-playground-html/README.md b/gateway/node_modules/@apollographql/graphql-playground-html/README.md deleted file mode 100644 index 3ccf3fc..0000000 --- a/gateway/node_modules/@apollographql/graphql-playground-html/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# @apollographql/graphql-playground-html - -**NOTE:** This is a fork of [`graphql-playground-html`](https://npm.im/graphql-playground-html) which is meant to be used by Apollo Server and only by Apollo Server. It is not intended to be used directly. Those looking to use GraphQL Playground directly can refer to [the upstream repository](https://github.com/prisma-labs/graphql-playground) for usage instructions. - -> **SECURITY WARNING:** Via the upstream fork, this package had a severe XSS Reflection attack vulnerability until version `1.6.25` of this package. **While we have published a fix, users were only affected if they were using `@apollographql/graphql-playground-html` directly as their own custom middleware.** The direct usage of this package was never recommended as it provided no advantage over the upstream package in that regard. Users of Apollo Server who leverage this package automatically by the dependency declared within Apollo Sever were not affected since Apollo Server never provided dynamic facilities to customize playground options per request. Users of Apollo Server would have had to statically embedded very explicit vulnerabilities (e.g., using malicious, unescaped code, `\n"; -}; -var renderConfig = function (config) { - return '

'; -}; -function renderPlaygroundPage(options) { - var extendedOptions = __assign(__assign({}, options), { canSaveConfig: false }); - // for compatibility - if (options.subscriptionsEndpoint) { - extendedOptions.subscriptionEndpoint = filter(options.subscriptionsEndpoint || ''); - } - if (options.config) { - extendedOptions.configString = JSON.stringify(options.config, null, 2); - } - if (!extendedOptions.endpoint && !extendedOptions.configString) { - /* tslint:disable-next-line */ - console.warn("WARNING: You didn't provide an endpoint and don't have a .graphqlconfig. Make sure you have at least one of them."); - } - else if (extendedOptions.endpoint) { - extendedOptions.endpoint = filter(extendedOptions.endpoint || ''); - } - return "\n \n \n \n \n \n \n " + (filter(extendedOptions.title) || 'GraphQL Playground') + "\n " + (extendedOptions.env === 'react' || extendedOptions.env === 'electron' - ? '' - : getCdnMarkup(extendedOptions)) + "\n \n \n \n " + loading.container + "\n " + renderConfig(extendedOptions) + "\n
\n \n \n \n"; -} -exports.renderPlaygroundPage = renderPlaygroundPage; -//# sourceMappingURL=render-playground-page.js.map \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/graphql-playground-html/dist/render-playground-page.js.map b/gateway/node_modules/@apollographql/graphql-playground-html/dist/render-playground-page.js.map deleted file mode 100644 index b8fb254..0000000 --- a/gateway/node_modules/@apollographql/graphql-playground-html/dist/render-playground-page.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"render-playground-page.js","sourceRoot":"","sources":["../src/render-playground-page.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2BAAgC;AAEhC,2DAAmD;AA0EnD,IAAM,MAAM,GAAG,UAAC,GAAG;IACjB,OAAO,eAAS,CAAC,GAAG,EAAE;QACpB,aAAa;QACb,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,CAAC,QAAQ,CAAC;KAC/B,CAAC,CAAA;AACJ,CAAC,CAAA;AAGD,IAAM,OAAO,GAAG,4BAAgB,EAAE,CAAA;AAElC,IAAM,gBAAgB,GAAG,yCAAyC,CAAC;AACnE,IAAM,YAAY,GAAG,UAAC,EAA0D;QAAxD,OAAO,aAAA,EAAE,cAAiC,EAAjC,MAAM,mBAAG,wBAAwB,KAAA,EAAE,UAAU,gBAAA;IAC5E,IAAM,WAAW,GAAG,UAAC,WAAmB,EAAE,MAAc,IAAK,OAAA,MAAM,CAAI,MAAM,SAAI,WAAW,IAAG,OAAO,CAAC,CAAC,CAAC,MAAI,OAAO,MAAG,CAAC,CAAC,CAAC,EAAE,IAAG,MAAQ,IAAI,EAAE,CAAC,EAAjF,CAAiF,CAAA;IAC9I,OAAO,yDAGK,WAAW,CAAC,gBAAgB,EAAE,4BAA4B,CAAC,yBAEnE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,wCAAmC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,UAAM,CAAC,CAAC,CAAC,EAAE,gBACvG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,wCAAmC,WAAW,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,UAAM,CAAC,CAAC,CAAC,EAAE,oCAEpH,WAAW,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,yBAE1E,CAAA;AAAA,CAAC,CAAA;AAGF,IAAM,YAAY,GAAG,UAAC,MAAM;IAC1B,OAAO,qDAAqD,GAAG,eAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC/F,aAAa;QACb,SAAS,EAAE,EAAE;KACd,CAAC,GAAG,QAAQ,CAAC;AAChB,CAAC,CAAA;AAED,SAAgB,oBAAoB,CAAC,OAA0B;IAC7D,IAAM,eAAe,yBAChB,OAAO,KACV,aAAa,EAAE,KAAK,GACrB,CAAA;IACD,oBAAoB;IACpB,IAAK,OAAe,CAAC,qBAAqB,EAAE;QAC1C,eAAe,CAAC,oBAAoB,GAAG,MAAM,CAAE,OAAe,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;KAC5F;IACD,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;KACvE;IACD,IAAI,CAAC,eAAe,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;QAC9D,8BAA8B;QAC9B,OAAO,CAAC,IAAI,CACV,mHAAmH,CACpH,CAAA;KACF;SACI,IAAI,eAAe,CAAC,QAAQ,EAAE;QACjC,eAAe,CAAC,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;KAClE;IAED,OAAO,wVAOI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,oBAAoB,wBAE9D,eAAe,CAAC,GAAG,KAAK,OAAO,IAAI,eAAe,CAAC,GAAG,KAAK,UAAU;QACnE,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,6rCAkD/B,OAAO,CAAC,SAAS,cACjB,YAAY,CAAC,eAAe,CAAC,4IAIzB,OAAO,CAAC,MAAM,oeAiBvB,CAAA;AACD,CAAC;AA1GD,oDA0GC"} \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/graphql-playground-html/node_modules/.bin/xss b/gateway/node_modules/@apollographql/graphql-playground-html/node_modules/.bin/xss deleted file mode 120000 index 365c504..0000000 --- a/gateway/node_modules/@apollographql/graphql-playground-html/node_modules/.bin/xss +++ /dev/null @@ -1 +0,0 @@ -../../../../xss/bin/xss \ No newline at end of file diff --git a/gateway/node_modules/@apollographql/graphql-playground-html/package.json b/gateway/node_modules/@apollographql/graphql-playground-html/package.json deleted file mode 100644 index b03dab1..0000000 --- a/gateway/node_modules/@apollographql/graphql-playground-html/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "@apollographql/graphql-playground-html", - "version": "1.6.26", - "homepage": "https://github.com/graphcool/graphql-playground/tree/master/packages/graphql-playground-html", - "description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).", - "contributors": [ - "Tim Suchanek ", - "Johannes Schickling ", - "Mohammad Rajabifard " - ], - "repository": "http://github.com/graphcool/graphql-playground.git", - "license": "MIT", - "main": "dist/index.js", - "files": [ - "dist" - ], - "scripts": { - "build": "rimraf dist && tsc", - "prepare": "npm run build" - }, - "devDependencies": { - "@types/node": "10.17.26", - "rimraf": "2.6.2", - "typescript": "3.9.5" - }, - "typings": "dist/index.d.ts", - "typescript": { - "definition": "dist/index.d.ts" - }, - "dependencies": { - "xss": "^1.0.6" - } -} diff --git a/gateway/node_modules/@jest/types/LICENSE b/gateway/node_modules/@jest/types/LICENSE deleted file mode 100644 index b96dcb0..0000000 --- a/gateway/node_modules/@jest/types/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/gateway/node_modules/@jest/types/build/Circus.d.ts b/gateway/node_modules/@jest/types/build/Circus.d.ts deleted file mode 100644 index 512b12b..0000000 --- a/gateway/node_modules/@jest/types/build/Circus.d.ts +++ /dev/null @@ -1,191 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/// -import type * as Global from './Global'; -declare type Process = NodeJS.Process; -export declare type DoneFn = Global.DoneFn; -export declare type BlockFn = Global.BlockFn; -export declare type BlockName = Global.BlockName; -export declare type BlockMode = void | 'skip' | 'only' | 'todo'; -export declare type TestMode = BlockMode; -export declare type TestName = Global.TestName; -export declare type TestFn = Global.TestFn; -export declare type HookFn = Global.HookFn; -export declare type AsyncFn = TestFn | HookFn; -export declare type SharedHookType = 'afterAll' | 'beforeAll'; -export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach'; -export declare type TestContext = Record; -export declare type Exception = any; -export declare type FormattedError = string; -export declare type Hook = { - asyncError: Error; - fn: HookFn; - type: HookType; - parent: DescribeBlock; - timeout: number | undefined | null; -}; -export interface EventHandler { - (event: AsyncEvent, state: State): void | Promise; - (event: SyncEvent, state: State): void; -} -export declare type Event = SyncEvent | AsyncEvent; -interface JestGlobals extends Global.TestFrameworkGlobals { - expect: unknown; -} -export declare type SyncEvent = { - asyncError: Error; - mode: BlockMode; - name: 'start_describe_definition'; - blockName: BlockName; -} | { - mode: BlockMode; - name: 'finish_describe_definition'; - blockName: BlockName; -} | { - asyncError: Error; - name: 'add_hook'; - hookType: HookType; - fn: HookFn; - timeout: number | undefined; -} | { - asyncError: Error; - name: 'add_test'; - testName: TestName; - fn: TestFn; - mode?: TestMode; - timeout: number | undefined; -} | { - name: 'error'; - error: Exception; -}; -export declare type AsyncEvent = { - name: 'setup'; - testNamePattern?: string; - runtimeGlobals: JestGlobals; - parentProcess: Process; -} | { - name: 'include_test_location_in_result'; -} | { - name: 'hook_start'; - hook: Hook; -} | { - name: 'hook_success'; - describeBlock?: DescribeBlock; - test?: TestEntry; - hook: Hook; -} | { - name: 'hook_failure'; - error: string | Exception; - describeBlock?: DescribeBlock; - test?: TestEntry; - hook: Hook; -} | { - name: 'test_fn_start'; - test: TestEntry; -} | { - name: 'test_fn_success'; - test: TestEntry; -} | { - name: 'test_fn_failure'; - error: Exception; - test: TestEntry; -} | { - name: 'test_retry'; - test: TestEntry; -} | { - name: 'test_start'; - test: TestEntry; -} | { - name: 'test_skip'; - test: TestEntry; -} | { - name: 'test_todo'; - test: TestEntry; -} | { - name: 'test_done'; - test: TestEntry; -} | { - name: 'run_describe_start'; - describeBlock: DescribeBlock; -} | { - name: 'run_describe_finish'; - describeBlock: DescribeBlock; -} | { - name: 'run_start'; -} | { - name: 'run_finish'; -} | { - name: 'teardown'; -}; -export declare type MatcherResults = { - actual: unknown; - expected: unknown; - name: string; - pass: boolean; -}; -export declare type TestStatus = 'skip' | 'done' | 'todo'; -export declare type TestResult = { - duration?: number | null; - errors: Array; - errorsDetailed: Array; - invocations: number; - status: TestStatus; - location?: { - column: number; - line: number; - } | null; - testPath: Array; -}; -export declare type RunResult = { - unhandledErrors: Array; - testResults: TestResults; -}; -export declare type TestResults = Array; -export declare type GlobalErrorHandlers = { - uncaughtException: Array<(exception: Exception) => void>; - unhandledRejection: Array<(exception: Exception, promise: Promise) => void>; -}; -export declare type State = { - currentDescribeBlock: DescribeBlock; - currentlyRunningTest?: TestEntry | null; - expand?: boolean; - hasFocusedTests: boolean; - hasStarted: boolean; - originalGlobalErrorHandlers?: GlobalErrorHandlers; - parentProcess: Process | null; - rootDescribeBlock: DescribeBlock; - testNamePattern?: RegExp | null; - testTimeout: number; - unhandledErrors: Array; - includeTestLocationInResult: boolean; -}; -export declare type DescribeBlock = { - type: 'describeBlock'; - children: Array; - hooks: Array; - mode: BlockMode; - name: BlockName; - parent?: DescribeBlock; - /** @deprecated Please get from `children` array instead */ - tests: Array; -}; -export declare type TestError = Exception | [Exception | undefined, Exception]; -export declare type TestEntry = { - type: 'test'; - asyncError: Exception; - errors: Array; - fn: TestFn; - invocations: number; - mode: TestMode; - name: TestName; - parent: DescribeBlock; - startedAt?: number | null; - duration?: number | null; - status?: TestStatus | null; - timeout?: number; -}; -export {}; diff --git a/gateway/node_modules/@jest/types/build/Circus.js b/gateway/node_modules/@jest/types/build/Circus.js deleted file mode 100644 index ad9a93a..0000000 --- a/gateway/node_modules/@jest/types/build/Circus.js +++ /dev/null @@ -1 +0,0 @@ -'use strict'; diff --git a/gateway/node_modules/@jest/types/build/Config.d.ts b/gateway/node_modules/@jest/types/build/Config.d.ts deleted file mode 100644 index 2b85899..0000000 --- a/gateway/node_modules/@jest/types/build/Config.d.ts +++ /dev/null @@ -1,433 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/// -import type { ForegroundColor } from 'chalk'; -import type { ReportOptions } from 'istanbul-reports'; -import type { Arguments } from 'yargs'; -declare type CoverageProvider = 'babel' | 'v8'; -declare type Timers = 'real' | 'fake' | 'modern' | 'legacy'; -export declare type Path = string; -export declare type Glob = string; -export declare type HasteConfig = { - /** Whether to hash files using SHA-1. */ - computeSha1?: boolean; - /** The platform to use as the default, e.g. 'ios'. */ - defaultPlatform?: string | null; - /** Path to a custom implementation of Haste. */ - hasteImplModulePath?: string; - /** All platforms to target, e.g ['ios', 'android']. */ - platforms?: Array; - /** Whether to throw on error on module collision. */ - throwOnModuleCollision?: boolean; -}; -export declare type CoverageReporterName = keyof ReportOptions; -export declare type CoverageReporterWithOptions = K extends CoverageReporterName ? ReportOptions[K] extends never ? never : [K, Partial] : never; -export declare type CoverageReporters = Array; -export declare type ReporterConfig = [string, Record]; -export declare type TransformerConfig = [string, Record]; -export interface ConfigGlobals { - [K: string]: unknown; -} -export declare type DefaultOptions = { - automock: boolean; - bail: number; - cache: boolean; - cacheDirectory: Path; - changedFilesWithAncestor: boolean; - clearMocks: boolean; - collectCoverage: boolean; - coveragePathIgnorePatterns: Array; - coverageReporters: Array; - coverageProvider: CoverageProvider; - errorOnDeprecated: boolean; - expand: boolean; - forceCoverageMatch: Array; - globals: ConfigGlobals; - haste: HasteConfig; - injectGlobals: boolean; - maxConcurrency: number; - maxWorkers: number | string; - moduleDirectories: Array; - moduleFileExtensions: Array; - moduleNameMapper: Record>; - modulePathIgnorePatterns: Array; - noStackTrace: boolean; - notify: boolean; - notifyMode: NotifyMode; - prettierPath: string; - resetMocks: boolean; - resetModules: boolean; - restoreMocks: boolean; - roots: Array; - runTestsByPath: boolean; - runner: 'jest-runner'; - setupFiles: Array; - setupFilesAfterEnv: Array; - skipFilter: boolean; - slowTestThreshold: number; - snapshotSerializers: Array; - testEnvironment: string; - testEnvironmentOptions: Record; - testFailureExitCode: string | number; - testLocationInResults: boolean; - testMatch: Array; - testPathIgnorePatterns: Array; - testRegex: Array; - testRunner: string; - testSequencer: string; - testURL: string; - timers: Timers; - transformIgnorePatterns: Array; - useStderr: boolean; - watch: boolean; - watchPathIgnorePatterns: Array; - watchman: boolean; -}; -export declare type DisplayName = { - name: string; - color: typeof ForegroundColor; -}; -export declare type InitialOptionsWithRootDir = InitialOptions & Required>; -export declare type InitialOptions = Partial<{ - automock: boolean; - bail: boolean | number; - cache: boolean; - cacheDirectory: Path; - clearMocks: boolean; - changedFilesWithAncestor: boolean; - changedSince: string; - collectCoverage: boolean; - collectCoverageFrom: Array; - collectCoverageOnlyFrom: { - [key: string]: boolean; - }; - coverageDirectory: string; - coveragePathIgnorePatterns: Array; - coverageProvider: CoverageProvider; - coverageReporters: CoverageReporters; - coverageThreshold: { - global: { - [key: string]: number; - }; - }; - dependencyExtractor: string; - detectLeaks: boolean; - detectOpenHandles: boolean; - displayName: string | DisplayName; - expand: boolean; - extraGlobals: Array; - filter: Path; - findRelatedTests: boolean; - forceCoverageMatch: Array; - forceExit: boolean; - json: boolean; - globals: ConfigGlobals; - globalSetup: string | null | undefined; - globalTeardown: string | null | undefined; - haste: HasteConfig; - injectGlobals: boolean; - reporters: Array; - logHeapUsage: boolean; - lastCommit: boolean; - listTests: boolean; - mapCoverage: boolean; - maxConcurrency: number; - maxWorkers: number | string; - moduleDirectories: Array; - moduleFileExtensions: Array; - moduleLoader: Path; - moduleNameMapper: { - [key: string]: string | Array; - }; - modulePathIgnorePatterns: Array; - modulePaths: Array; - name: string; - noStackTrace: boolean; - notify: boolean; - notifyMode: string; - onlyChanged: boolean; - onlyFailures: boolean; - outputFile: Path; - passWithNoTests: boolean; - preprocessorIgnorePatterns: Array; - preset: string | null | undefined; - prettierPath: string | null | undefined; - projects: Array; - replname: string | null | undefined; - resetMocks: boolean; - resetModules: boolean; - resolver: Path | null | undefined; - restoreMocks: boolean; - rootDir: Path; - roots: Array; - runner: string; - runTestsByPath: boolean; - scriptPreprocessor: string; - setupFiles: Array; - setupTestFrameworkScriptFile: Path; - setupFilesAfterEnv: Array; - silent: boolean; - skipFilter: boolean; - skipNodeResolution: boolean; - slowTestThreshold: number; - snapshotResolver: Path; - snapshotSerializers: Array; - errorOnDeprecated: boolean; - testEnvironment: string; - testEnvironmentOptions: Record; - testFailureExitCode: string | number; - testLocationInResults: boolean; - testMatch: Array; - testNamePattern: string; - testPathDirs: Array; - testPathIgnorePatterns: Array; - testRegex: string | Array; - testResultsProcessor: string; - testRunner: string; - testSequencer: string; - testURL: string; - testTimeout: number; - timers: Timers; - transform: { - [regex: string]: Path | TransformerConfig; - }; - transformIgnorePatterns: Array; - watchPathIgnorePatterns: Array; - unmockedModulePathPatterns: Array; - updateSnapshot: boolean; - useStderr: boolean; - verbose?: boolean; - watch: boolean; - watchAll: boolean; - watchman: boolean; - watchPlugins: Array]>; -}>; -export declare type SnapshotUpdateState = 'all' | 'new' | 'none'; -declare type NotifyMode = 'always' | 'failure' | 'success' | 'change' | 'success-change' | 'failure-change'; -export declare type CoverageThresholdValue = { - branches?: number; - functions?: number; - lines?: number; - statements?: number; -}; -declare type CoverageThreshold = { - [path: string]: CoverageThresholdValue; - global: CoverageThresholdValue; -}; -export declare type GlobalConfig = { - bail: number; - changedSince?: string; - changedFilesWithAncestor: boolean; - collectCoverage: boolean; - collectCoverageFrom: Array; - collectCoverageOnlyFrom?: { - [key: string]: boolean; - }; - coverageDirectory: string; - coveragePathIgnorePatterns?: Array; - coverageProvider: CoverageProvider; - coverageReporters: CoverageReporters; - coverageThreshold?: CoverageThreshold; - detectLeaks: boolean; - detectOpenHandles: boolean; - enabledTestsMap?: { - [key: string]: { - [key: string]: boolean; - }; - }; - expand: boolean; - filter?: Path; - findRelatedTests: boolean; - forceExit: boolean; - json: boolean; - globalSetup?: string; - globalTeardown?: string; - lastCommit: boolean; - logHeapUsage: boolean; - listTests: boolean; - maxConcurrency: number; - maxWorkers: number; - noStackTrace: boolean; - nonFlagArgs: Array; - noSCM?: boolean; - notify: boolean; - notifyMode: NotifyMode; - outputFile?: Path; - onlyChanged: boolean; - onlyFailures: boolean; - passWithNoTests: boolean; - projects: Array; - replname?: string; - reporters?: Array; - runTestsByPath: boolean; - rootDir: Path; - silent?: boolean; - skipFilter: boolean; - errorOnDeprecated: boolean; - testFailureExitCode: number; - testNamePattern?: string; - testPathPattern: string; - testResultsProcessor?: string; - testSequencer: string; - testTimeout?: number; - updateSnapshot: SnapshotUpdateState; - useStderr: boolean; - verbose?: boolean; - watch: boolean; - watchAll: boolean; - watchman: boolean; - watchPlugins?: Array<{ - path: string; - config: Record; - }> | null; -}; -export declare type ProjectConfig = { - automock: boolean; - cache: boolean; - cacheDirectory: Path; - clearMocks: boolean; - coveragePathIgnorePatterns: Array; - cwd: Path; - dependencyExtractor?: string; - detectLeaks: boolean; - detectOpenHandles: boolean; - displayName?: DisplayName; - errorOnDeprecated: boolean; - extraGlobals: Array; - filter?: Path; - forceCoverageMatch: Array; - globalSetup?: string; - globalTeardown?: string; - globals: ConfigGlobals; - haste: HasteConfig; - injectGlobals: boolean; - moduleDirectories: Array; - moduleFileExtensions: Array; - moduleLoader?: Path; - moduleNameMapper: Array<[string, string]>; - modulePathIgnorePatterns: Array; - modulePaths?: Array; - name: string; - prettierPath: string; - resetMocks: boolean; - resetModules: boolean; - resolver?: Path; - restoreMocks: boolean; - rootDir: Path; - roots: Array; - runner: string; - setupFiles: Array; - setupFilesAfterEnv: Array; - skipFilter: boolean; - skipNodeResolution?: boolean; - slowTestThreshold: number; - snapshotResolver?: Path; - snapshotSerializers: Array; - testEnvironment: string; - testEnvironmentOptions: Record; - testMatch: Array; - testLocationInResults: boolean; - testPathIgnorePatterns: Array; - testRegex: Array; - testRunner: string; - testURL: string; - timers: Timers; - transform: Array<[string, Path, Record]>; - transformIgnorePatterns: Array; - watchPathIgnorePatterns: Array; - unmockedModulePathPatterns?: Array; -}; -export declare type Argv = Arguments; - color: boolean; - colors: boolean; - config: string; - coverage: boolean; - coverageDirectory: string; - coveragePathIgnorePatterns: Array; - coverageReporters: Array; - coverageThreshold: string; - debug: boolean; - env: string; - expand: boolean; - findRelatedTests: boolean; - forceExit: boolean; - globals: string; - globalSetup: string | null | undefined; - globalTeardown: string | null | undefined; - haste: string; - init: boolean; - injectGlobals: boolean; - json: boolean; - lastCommit: boolean; - logHeapUsage: boolean; - maxWorkers: number | string; - moduleDirectories: Array; - moduleFileExtensions: Array; - moduleNameMapper: string; - modulePathIgnorePatterns: Array; - modulePaths: Array; - noStackTrace: boolean; - notify: boolean; - notifyMode: string; - onlyChanged: boolean; - onlyFailures: boolean; - outputFile: string; - preset: string | null | undefined; - projects: Array; - prettierPath: string | null | undefined; - resetMocks: boolean; - resetModules: boolean; - resolver: string | null | undefined; - restoreMocks: boolean; - rootDir: string; - roots: Array; - runInBand: boolean; - selectProjects: Array; - setupFiles: Array; - setupFilesAfterEnv: Array; - showConfig: boolean; - silent: boolean; - snapshotSerializers: Array; - testEnvironment: string; - testFailureExitCode: string | null | undefined; - testMatch: Array; - testNamePattern: string; - testPathIgnorePatterns: Array; - testPathPattern: Array; - testRegex: string | Array; - testResultsProcessor: string; - testRunner: string; - testSequencer: string; - testURL: string; - testTimeout: number | null | undefined; - timers: string; - transform: string; - transformIgnorePatterns: Array; - unmockedModulePathPatterns: Array | null | undefined; - updateSnapshot: boolean; - useStderr: boolean; - verbose: boolean; - version: boolean; - watch: boolean; - watchAll: boolean; - watchman: boolean; - watchPathIgnorePatterns: Array; -}>>; -export {}; diff --git a/gateway/node_modules/@jest/types/build/Config.js b/gateway/node_modules/@jest/types/build/Config.js deleted file mode 100644 index ad9a93a..0000000 --- a/gateway/node_modules/@jest/types/build/Config.js +++ /dev/null @@ -1 +0,0 @@ -'use strict'; diff --git a/gateway/node_modules/@jest/types/build/Global.d.ts b/gateway/node_modules/@jest/types/build/Global.d.ts deleted file mode 100644 index 8670a49..0000000 --- a/gateway/node_modules/@jest/types/build/Global.d.ts +++ /dev/null @@ -1,88 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -/// -import type { CoverageMapData } from 'istanbul-lib-coverage'; -export declare type DoneFn = (reason?: string | Error) => void; -export declare type TestName = string; -export declare type TestFn = (done?: DoneFn) => Promise | void | undefined; -export declare type ConcurrentTestFn = (done?: DoneFn) => Promise; -export declare type BlockFn = () => void; -export declare type BlockName = string; -export declare type HookFn = TestFn; -export declare type Col = unknown; -export declare type Row = Array; -export declare type Table = Array; -export declare type ArrayTable = Table | Row; -export declare type TemplateTable = TemplateStringsArray; -export declare type TemplateData = Array; -export declare type EachTable = ArrayTable | TemplateTable; -export declare type TestCallback = BlockFn | TestFn | ConcurrentTestFn; -export declare type EachTestFn = (...args: Array) => ReturnType; -declare type Jasmine = { - _DEFAULT_TIMEOUT_INTERVAL?: number; - addMatchers: (matchers: Record) => void; -}; -declare type Each = ((table: EachTable, ...taggedTemplateData: Array) => (title: string, test: EachTestFn, timeout?: number) => void) | (() => () => void); -export interface HookBase { - (fn: HookFn, timeout?: number): void; -} -export interface ItBase { - (testName: TestName, fn: TestFn, timeout?: number): void; - each: Each; -} -export interface It extends ItBase { - only: ItBase; - skip: ItBase; - todo: (testName: TestName) => void; -} -export interface ItConcurrentBase { - (testName: string, testFn: ConcurrentTestFn, timeout?: number): void; - each: Each; -} -export interface ItConcurrentExtended extends ItConcurrentBase { - only: ItConcurrentBase; - skip: ItConcurrentBase; -} -export interface ItConcurrent extends It { - concurrent: ItConcurrentExtended; -} -export interface DescribeBase { - (blockName: BlockName, blockFn: BlockFn): void; - each: Each; -} -export interface Describe extends DescribeBase { - only: DescribeBase; - skip: DescribeBase; -} -export interface TestFrameworkGlobals { - it: ItConcurrent; - test: ItConcurrent; - fit: ItBase & { - concurrent?: ItConcurrentBase; - }; - xit: ItBase; - xtest: ItBase; - describe: Describe; - xdescribe: DescribeBase; - fdescribe: DescribeBase; - beforeAll: HookBase; - beforeEach: HookBase; - afterEach: HookBase; - afterAll: HookBase; -} -export interface GlobalAdditions extends TestFrameworkGlobals { - __coverage__: CoverageMapData; - jasmine: Jasmine; - fail: () => void; - pending: () => void; - spyOn: () => void; - spyOnProperty: () => void; -} -export interface Global extends GlobalAdditions, Omit { - [extras: string]: unknown; -} -export {}; diff --git a/gateway/node_modules/@jest/types/build/Global.js b/gateway/node_modules/@jest/types/build/Global.js deleted file mode 100644 index ad9a93a..0000000 --- a/gateway/node_modules/@jest/types/build/Global.js +++ /dev/null @@ -1 +0,0 @@ -'use strict'; diff --git a/gateway/node_modules/@jest/types/build/TestResult.d.ts b/gateway/node_modules/@jest/types/build/TestResult.d.ts deleted file mode 100644 index a05dca9..0000000 --- a/gateway/node_modules/@jest/types/build/TestResult.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -export declare type Milliseconds = number; -declare type Status = 'passed' | 'failed' | 'skipped' | 'pending' | 'todo' | 'disabled'; -declare type Callsite = { - column: number; - line: number; -}; -export declare type AssertionResult = { - ancestorTitles: Array; - duration?: Milliseconds | null; - failureDetails: Array; - failureMessages: Array; - fullName: string; - invocations?: number; - location?: Callsite | null; - numPassingAsserts: number; - status: Status; - title: string; -}; -export declare type SerializableError = { - code?: unknown; - message: string; - stack: string | null | undefined; - type?: string; -}; -export {}; diff --git a/gateway/node_modules/@jest/types/build/TestResult.js b/gateway/node_modules/@jest/types/build/TestResult.js deleted file mode 100644 index ad9a93a..0000000 --- a/gateway/node_modules/@jest/types/build/TestResult.js +++ /dev/null @@ -1 +0,0 @@ -'use strict'; diff --git a/gateway/node_modules/@jest/types/build/Transform.d.ts b/gateway/node_modules/@jest/types/build/Transform.d.ts deleted file mode 100644 index af8063f..0000000 --- a/gateway/node_modules/@jest/types/build/Transform.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -export declare type TransformResult = { - code: string; - originalCode: string; - mapCoverage?: boolean; - sourceMapPath: string | null; -}; diff --git a/gateway/node_modules/@jest/types/build/Transform.js b/gateway/node_modules/@jest/types/build/Transform.js deleted file mode 100644 index ad9a93a..0000000 --- a/gateway/node_modules/@jest/types/build/Transform.js +++ /dev/null @@ -1 +0,0 @@ -'use strict'; diff --git a/gateway/node_modules/@jest/types/build/index.d.ts b/gateway/node_modules/@jest/types/build/index.d.ts deleted file mode 100644 index be82158..0000000 --- a/gateway/node_modules/@jest/types/build/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -import type * as Circus from './Circus'; -import type * as Config from './Config'; -import type * as Global from './Global'; -import type * as TestResult from './TestResult'; -import type * as TransformTypes from './Transform'; -export type { Circus, Config, Global, TestResult, TransformTypes }; diff --git a/gateway/node_modules/@jest/types/build/index.js b/gateway/node_modules/@jest/types/build/index.js deleted file mode 100644 index ad9a93a..0000000 --- a/gateway/node_modules/@jest/types/build/index.js +++ /dev/null @@ -1 +0,0 @@ -'use strict'; diff --git a/gateway/node_modules/@jest/types/node_modules/chalk/index.d.ts b/gateway/node_modules/@jest/types/node_modules/chalk/index.d.ts deleted file mode 100644 index 9cd88f3..0000000 --- a/gateway/node_modules/@jest/types/node_modules/chalk/index.d.ts +++ /dev/null @@ -1,415 +0,0 @@ -/** -Basic foreground colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type ForegroundColor = - | 'black' - | 'red' - | 'green' - | 'yellow' - | 'blue' - | 'magenta' - | 'cyan' - | 'white' - | 'gray' - | 'grey' - | 'blackBright' - | 'redBright' - | 'greenBright' - | 'yellowBright' - | 'blueBright' - | 'magentaBright' - | 'cyanBright' - | 'whiteBright'; - -/** -Basic background colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type BackgroundColor = - | 'bgBlack' - | 'bgRed' - | 'bgGreen' - | 'bgYellow' - | 'bgBlue' - | 'bgMagenta' - | 'bgCyan' - | 'bgWhite' - | 'bgGray' - | 'bgGrey' - | 'bgBlackBright' - | 'bgRedBright' - | 'bgGreenBright' - | 'bgYellowBright' - | 'bgBlueBright' - | 'bgMagentaBright' - | 'bgCyanBright' - | 'bgWhiteBright'; - -/** -Basic colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type Color = ForegroundColor | BackgroundColor; - -declare type Modifiers = - | 'reset' - | 'bold' - | 'dim' - | 'italic' - | 'underline' - | 'inverse' - | 'hidden' - | 'strikethrough' - | 'visible'; - -declare namespace chalk { - /** - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - type Level = 0 | 1 | 2 | 3; - - interface Options { - /** - Specify the color support for Chalk. - - By default, color support is automatically detected based on the environment. - - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - level?: Level; - } - - /** - Return a new Chalk instance. - */ - type Instance = new (options?: Options) => Chalk; - - /** - Detect whether the terminal supports color. - */ - interface ColorSupport { - /** - The color level used by Chalk. - */ - level: Level; - - /** - Return whether Chalk supports basic 16 colors. - */ - hasBasic: boolean; - - /** - Return whether Chalk supports ANSI 256 colors. - */ - has256: boolean; - - /** - Return whether Chalk supports Truecolor 16 million colors. - */ - has16m: boolean; - } - - interface ChalkFunction { - /** - Use a template string. - - @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341)) - - @example - ``` - import chalk = require('chalk'); - - log(chalk` - CPU: {red ${cpu.totalPercent}%} - RAM: {green ${ram.used / ram.total * 100}%} - DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} - `); - ``` - - @example - ``` - import chalk = require('chalk'); - - log(chalk.red.bgBlack`2 + 3 = {bold ${2 + 3}}`) - ``` - */ - (text: TemplateStringsArray, ...placeholders: unknown[]): string; - - (...text: unknown[]): string; - } - - interface Chalk extends ChalkFunction { - /** - Return a new Chalk instance. - */ - Instance: Instance; - - /** - The color support for Chalk. - - By default, color support is automatically detected based on the environment. - - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - level: Level; - - /** - Use HEX value to set text color. - - @param color - Hexadecimal value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.hex('#DEADED'); - ``` - */ - hex(color: string): Chalk; - - /** - Use keyword color value to set text color. - - @param color - Keyword value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.keyword('orange'); - ``` - */ - keyword(color: string): Chalk; - - /** - Use RGB values to set text color. - */ - rgb(red: number, green: number, blue: number): Chalk; - - /** - Use HSL values to set text color. - */ - hsl(hue: number, saturation: number, lightness: number): Chalk; - - /** - Use HSV values to set text color. - */ - hsv(hue: number, saturation: number, value: number): Chalk; - - /** - Use HWB values to set text color. - */ - hwb(hue: number, whiteness: number, blackness: number): Chalk; - - /** - Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color. - - 30 <= code && code < 38 || 90 <= code && code < 98 - For example, 31 for red, 91 for redBright. - */ - ansi(code: number): Chalk; - - /** - Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. - */ - ansi256(index: number): Chalk; - - /** - Use HEX value to set background color. - - @param color - Hexadecimal value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.bgHex('#DEADED'); - ``` - */ - bgHex(color: string): Chalk; - - /** - Use keyword color value to set background color. - - @param color - Keyword value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.bgKeyword('orange'); - ``` - */ - bgKeyword(color: string): Chalk; - - /** - Use RGB values to set background color. - */ - bgRgb(red: number, green: number, blue: number): Chalk; - - /** - Use HSL values to set background color. - */ - bgHsl(hue: number, saturation: number, lightness: number): Chalk; - - /** - Use HSV values to set background color. - */ - bgHsv(hue: number, saturation: number, value: number): Chalk; - - /** - Use HWB values to set background color. - */ - bgHwb(hue: number, whiteness: number, blackness: number): Chalk; - - /** - Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color. - - 30 <= code && code < 38 || 90 <= code && code < 98 - For example, 31 for red, 91 for redBright. - Use the foreground code, not the background code (for example, not 41, nor 101). - */ - bgAnsi(code: number): Chalk; - - /** - Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color. - */ - bgAnsi256(index: number): Chalk; - - /** - Modifier: Resets the current color chain. - */ - readonly reset: Chalk; - - /** - Modifier: Make text bold. - */ - readonly bold: Chalk; - - /** - Modifier: Emitting only a small amount of light. - */ - readonly dim: Chalk; - - /** - Modifier: Make text italic. (Not widely supported) - */ - readonly italic: Chalk; - - /** - Modifier: Make text underline. (Not widely supported) - */ - readonly underline: Chalk; - - /** - Modifier: Inverse background and foreground colors. - */ - readonly inverse: Chalk; - - /** - Modifier: Prints the text, but makes it invisible. - */ - readonly hidden: Chalk; - - /** - Modifier: Puts a horizontal line through the center of the text. (Not widely supported) - */ - readonly strikethrough: Chalk; - - /** - Modifier: Prints the text only when Chalk has a color support level > 0. - Can be useful for things that are purely cosmetic. - */ - readonly visible: Chalk; - - readonly black: Chalk; - readonly red: Chalk; - readonly green: Chalk; - readonly yellow: Chalk; - readonly blue: Chalk; - readonly magenta: Chalk; - readonly cyan: Chalk; - readonly white: Chalk; - - /* - Alias for `blackBright`. - */ - readonly gray: Chalk; - - /* - Alias for `blackBright`. - */ - readonly grey: Chalk; - - readonly blackBright: Chalk; - readonly redBright: Chalk; - readonly greenBright: Chalk; - readonly yellowBright: Chalk; - readonly blueBright: Chalk; - readonly magentaBright: Chalk; - readonly cyanBright: Chalk; - readonly whiteBright: Chalk; - - readonly bgBlack: Chalk; - readonly bgRed: Chalk; - readonly bgGreen: Chalk; - readonly bgYellow: Chalk; - readonly bgBlue: Chalk; - readonly bgMagenta: Chalk; - readonly bgCyan: Chalk; - readonly bgWhite: Chalk; - - /* - Alias for `bgBlackBright`. - */ - readonly bgGray: Chalk; - - /* - Alias for `bgBlackBright`. - */ - readonly bgGrey: Chalk; - - readonly bgBlackBright: Chalk; - readonly bgRedBright: Chalk; - readonly bgGreenBright: Chalk; - readonly bgYellowBright: Chalk; - readonly bgBlueBright: Chalk; - readonly bgMagentaBright: Chalk; - readonly bgCyanBright: Chalk; - readonly bgWhiteBright: Chalk; - } -} - -/** -Main Chalk object that allows to chain styles together. -Call the last one as a method with a string argument. -Order doesn't matter, and later styles take precedent in case of a conflict. -This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`. -*/ -declare const chalk: chalk.Chalk & chalk.ChalkFunction & { - supportsColor: chalk.ColorSupport | false; - Level: chalk.Level; - Color: Color; - ForegroundColor: ForegroundColor; - BackgroundColor: BackgroundColor; - Modifiers: Modifiers; - stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false}; -}; - -export = chalk; diff --git a/gateway/node_modules/@jest/types/node_modules/chalk/license b/gateway/node_modules/@jest/types/node_modules/chalk/license deleted file mode 100644 index e7af2f7..0000000 --- a/gateway/node_modules/@jest/types/node_modules/chalk/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/@jest/types/node_modules/chalk/package.json b/gateway/node_modules/@jest/types/node_modules/chalk/package.json deleted file mode 100644 index 0d99f0f..0000000 --- a/gateway/node_modules/@jest/types/node_modules/chalk/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "chalk", - "version": "4.1.0", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "funding": "https://github.com/chalk/chalk?sponsor=1", - "main": "source", - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && nyc ava && tsd", - "bench": "matcha benchmark.js" - }, - "files": [ - "source", - "index.d.ts" - ], - "keywords": [ - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "str", - "ansi", - "style", - "styles", - "tty", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "devDependencies": { - "ava": "^2.4.0", - "coveralls": "^3.0.7", - "execa": "^4.0.0", - "import-fresh": "^3.1.0", - "matcha": "^0.7.0", - "nyc": "^15.0.0", - "resolve-from": "^5.0.0", - "tsd": "^0.7.4", - "xo": "^0.28.2" - }, - "xo": { - "rules": { - "unicorn/prefer-string-slice": "off", - "unicorn/prefer-includes": "off", - "@typescript-eslint/member-ordering": "off", - "no-redeclare": "off", - "unicorn/string-content": "off", - "unicorn/better-regex": "off" - } - } -} diff --git a/gateway/node_modules/@jest/types/node_modules/chalk/readme.md b/gateway/node_modules/@jest/types/node_modules/chalk/readme.md deleted file mode 100644 index 338f42c..0000000 --- a/gateway/node_modules/@jest/types/node_modules/chalk/readme.md +++ /dev/null @@ -1,293 +0,0 @@ -

-
-
- Chalk -
-
-
-

- -> Terminal string styling done right - -[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) [![run on repl.it](https://repl.it/badge/github/chalk/chalk)](https://repl.it/github/chalk/chalk) - - - -## Highlights - -- Expressive API -- Highly performant -- Ability to nest styles -- [256/Truecolor color support](#256-and-truecolor-color-support) -- Auto-detects color support -- Doesn't extend `String.prototype` -- Clean and focused -- Actively maintained -- [Used by ~50,000 packages](https://www.npmjs.com/browse/depended/chalk) as of January 1, 2020 - -## Install - -```console -$ npm install chalk -``` - -## Usage - -```js -const chalk = require('chalk'); - -console.log(chalk.blue('Hello world!')); -``` - -Chalk comes with an easy to use composable API where you just chain and nest the styles you want. - -```js -const chalk = require('chalk'); -const log = console.log; - -// Combine styled and normal strings -log(chalk.blue('Hello') + ' World' + chalk.red('!')); - -// Compose multiple styles using the chainable API -log(chalk.blue.bgRed.bold('Hello world!')); - -// Pass in multiple arguments -log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); - -// Nest styles -log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); - -// Nest styles of the same type even (color, underline, background) -log(chalk.green( - 'I am a green line ' + - chalk.blue.underline.bold('with a blue substring') + - ' that becomes green again!' -)); - -// ES2015 template literal -log(` -CPU: ${chalk.red('90%')} -RAM: ${chalk.green('40%')} -DISK: ${chalk.yellow('70%')} -`); - -// ES2015 tagged template literal -log(chalk` -CPU: {red ${cpu.totalPercent}%} -RAM: {green ${ram.used / ram.total * 100}%} -DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} -`); - -// Use RGB colors in terminal emulators that support it. -log(chalk.keyword('orange')('Yay for orange colored text!')); -log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); -log(chalk.hex('#DEADED').bold('Bold gray!')); -``` - -Easily define your own themes: - -```js -const chalk = require('chalk'); - -const error = chalk.bold.red; -const warning = chalk.keyword('orange'); - -console.log(error('Error!')); -console.log(warning('Warning!')); -``` - -Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): - -```js -const name = 'Sindre'; -console.log(chalk.green('Hello %s'), name); -//=> 'Hello Sindre' -``` - -## API - -### chalk.` - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
index.js100%(4 / 4)100%(2 / 2)100%(1 / 1)100%(4 / 4)
-
-
- - - - - - diff --git a/gateway/node_modules/unique-filename/coverage/__root__/index.js.html b/gateway/node_modules/unique-filename/coverage/__root__/index.js.html deleted file mode 100644 index 02e5768..0000000 --- a/gateway/node_modules/unique-filename/coverage/__root__/index.js.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - Code coverage report for index.js - - - - - - -
-

Code coverage report for index.js

-

- Statements: 100% (4 / 4)      - Branches: 100% (2 / 2)      - Functions: 100% (1 / 1)      - Lines: 100% (4 / 4)      - Ignored: none      -

-
All files » __root__/ » index.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9  -1 -  -1 -  -1 -6 -  - 
'use strict'
-var path = require('path')
- 
-var uniqueSlug = require('unique-slug')
- 
-module.exports = function (filepath, prefix, uniq) {
-  return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq))
-}
- 
- -
- - - - - - diff --git a/gateway/node_modules/unique-filename/coverage/base.css b/gateway/node_modules/unique-filename/coverage/base.css deleted file mode 100644 index a6a2f32..0000000 --- a/gateway/node_modules/unique-filename/coverage/base.css +++ /dev/null @@ -1,182 +0,0 @@ -body, html { - margin:0; padding: 0; -} -body { - font-family: Helvetica Neue, Helvetica,Arial; - font-size: 10pt; -} -div.header, div.footer { - background: #eee; - padding: 1em; -} -div.header { - z-index: 100; - position: fixed; - top: 0; - border-bottom: 1px solid #666; - width: 100%; -} -div.footer { - border-top: 1px solid #666; -} -div.body { - margin-top: 10em; -} -div.meta { - font-size: 90%; - text-align: center; -} -h1, h2, h3 { - font-weight: normal; -} -h1 { - font-size: 12pt; -} -h2 { - font-size: 10pt; -} -pre { - font-family: Consolas, Menlo, Monaco, monospace; - margin: 0; - padding: 0; - line-height: 1.3; - font-size: 14px; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} - -div.path { font-size: 110%; } -div.path a:link, div.path a:visited { color: #000; } -table.coverage { border-collapse: collapse; margin:0; padding: 0 } - -table.coverage td { - margin: 0; - padding: 0; - color: #111; - vertical-align: top; -} -table.coverage td.line-count { - width: 50px; - text-align: right; - padding-right: 5px; -} -table.coverage td.line-coverage { - color: #777 !important; - text-align: right; - border-left: 1px solid #666; - border-right: 1px solid #666; -} - -table.coverage td.text { -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 40px; -} -table.coverage td span.cline-neutral { - background: #eee; -} -table.coverage td span.cline-yes { - background: #b5d592; - color: #999; -} -table.coverage td span.cline-no { - background: #fc8c84; -} - -.cstat-yes { color: #111; } -.cstat-no { background: #fc8c84; color: #111; } -.fstat-no { background: #ffc520; color: #111 !important; } -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -.missing-if-branch { - display: inline-block; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: black; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} - -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} - -.entity, .metric { font-weight: bold; } -.metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; } -.metric small { font-size: 80%; font-weight: normal; color: #666; } - -div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; } -div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; } -div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; } -div.coverage-summary th.file { border-right: none !important; } -div.coverage-summary th.pic { border-left: none !important; text-align: right; } -div.coverage-summary th.pct { border-right: none !important; } -div.coverage-summary th.abs { border-left: none !important; text-align: right; } -div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; } -div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; } -div.coverage-summary td.file { border-left: 1px solid #666; white-space: nowrap; } -div.coverage-summary td.pic { min-width: 120px !important; } -div.coverage-summary a:link { text-decoration: none; color: #000; } -div.coverage-summary a:visited { text-decoration: none; color: #777; } -div.coverage-summary a:hover { text-decoration: underline; } -div.coverage-summary tfoot td { border-top: 1px solid #666; } - -div.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -div.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -div.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} - -.high { background: #b5d592 !important; } -.medium { background: #ffe87c !important; } -.low { background: #fc8c84 !important; } - -span.cover-fill, span.cover-empty { - display:inline-block; - border:1px solid #444; - background: white; - height: 12px; -} -span.cover-fill { - background: #ccc; - border-right: 1px solid #444; -} -span.cover-empty { - background: white; - border-left: none; -} -span.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } diff --git a/gateway/node_modules/unique-filename/coverage/index.html b/gateway/node_modules/unique-filename/coverage/index.html deleted file mode 100644 index b10d186..0000000 --- a/gateway/node_modules/unique-filename/coverage/index.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - Code coverage report for All files - - - - - - -
-

Code coverage report for All files

-

- Statements: 100% (4 / 4)      - Branches: 100% (2 / 2)      - Functions: 100% (1 / 1)      - Lines: 100% (4 / 4)      - Ignored: none      -

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
__root__/100%(4 / 4)100%(2 / 2)100%(1 / 1)100%(4 / 4)
-
-
- - - - - - diff --git a/gateway/node_modules/unique-filename/coverage/prettify.css b/gateway/node_modules/unique-filename/coverage/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/gateway/node_modules/unique-filename/coverage/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/gateway/node_modules/unique-filename/coverage/prettify.js b/gateway/node_modules/unique-filename/coverage/prettify.js deleted file mode 100644 index ef51e03..0000000 --- a/gateway/node_modules/unique-filename/coverage/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/gateway/node_modules/unique-filename/coverage/sort-arrow-sprite.png b/gateway/node_modules/unique-filename/coverage/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - el = getNthColumn(i).querySelector('.sorter'); - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/gateway/node_modules/unique-filename/index.js b/gateway/node_modules/unique-filename/index.js deleted file mode 100644 index 02bf1e2..0000000 --- a/gateway/node_modules/unique-filename/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var path = require('path') - -var uniqueSlug = require('unique-slug') - -module.exports = function (filepath, prefix, uniq) { - return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq)) -} diff --git a/gateway/node_modules/unique-filename/package.json b/gateway/node_modules/unique-filename/package.json deleted file mode 100644 index bc429aa..0000000 --- a/gateway/node_modules/unique-filename/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "unique-filename", - "version": "1.1.1", - "description": "Generate a unique filename for use in temporary directories or caches.", - "main": "index.js", - "scripts": { - "test": "standard && tap test" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/unique-filename.git" - }, - "keywords": [], - "author": "Rebecca Turner (http://re-becca.org/)", - "license": "ISC", - "bugs": { - "url": "https://github.com/iarna/unique-filename/issues" - }, - "homepage": "https://github.com/iarna/unique-filename", - "devDependencies": { - "standard": "^5.4.1", - "tap": "^2.3.1" - }, - "dependencies": { - "unique-slug": "^2.0.0" - } -} diff --git a/gateway/node_modules/unique-filename/test/index.js b/gateway/node_modules/unique-filename/test/index.js deleted file mode 100644 index 105b4e5..0000000 --- a/gateway/node_modules/unique-filename/test/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'sue strict' -var t = require('tap') -var uniqueFilename = require('../index.js') - -t.plan(6) - -var randomTmpfile = uniqueFilename('tmp') -t.like(randomTmpfile, /^tmp.[a-f0-9]{8}$/, 'random tmp file') - -var randomAgain = uniqueFilename('tmp') -t.notEqual(randomAgain, randomTmpfile, 'random tmp files are not the same') - -var randomPrefixedTmpfile = uniqueFilename('tmp', 'my-test') -t.like(randomPrefixedTmpfile, /^tmp.my-test-[a-f0-9]{8}$/, 'random prefixed tmp file') - -var randomPrefixedAgain = uniqueFilename('tmp', 'my-test') -t.notEqual(randomPrefixedAgain, randomPrefixedTmpfile, 'random prefixed tmp files are not the same') - -var uniqueTmpfile = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') -t.like(uniqueTmpfile, /^tmp.testing-7ddd44c0$/, 'unique filename') - -var uniqueAgain = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') -t.is(uniqueTmpfile, uniqueAgain, 'same unique string component produces same filename') diff --git a/gateway/node_modules/unique-slug/.travis.yml b/gateway/node_modules/unique-slug/.travis.yml deleted file mode 100644 index 5651fce..0000000 --- a/gateway/node_modules/unique-slug/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js -sudo: false -before_install: - - "npm -g install npm" -node_js: - - "6" - - "8" - - "10" - - "lts/*" - - "node" diff --git a/gateway/node_modules/unique-slug/LICENSE b/gateway/node_modules/unique-slug/LICENSE deleted file mode 100644 index 7953647..0000000 --- a/gateway/node_modules/unique-slug/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright npm, Inc - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/gateway/node_modules/unique-slug/README.md b/gateway/node_modules/unique-slug/README.md deleted file mode 100644 index 87f92f1..0000000 --- a/gateway/node_modules/unique-slug/README.md +++ /dev/null @@ -1,19 +0,0 @@ -unique-slug -=========== - -Generate a unique character string suitible for use in files and URLs. - -``` -var uniqueSlug = require('unique-slug') - -var randomSlug = uniqueSlug() -var fileSlug = uniqueSlug('/etc/passwd') -``` - -### uniqueSlug(*str*) → String (8 chars) - -If *str* is passed in then the return value will be its murmur hash in -hex. - -If *str* is not passed in, it will be 4 randomly generated bytes -converted into 8 hexadecimal characters. diff --git a/gateway/node_modules/unique-slug/index.js b/gateway/node_modules/unique-slug/index.js deleted file mode 100644 index fa4761a..0000000 --- a/gateway/node_modules/unique-slug/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -var MurmurHash3 = require('imurmurhash') - -module.exports = function (uniq) { - if (uniq) { - var hash = new MurmurHash3(uniq) - return ('00000000' + hash.result().toString(16)).substr(-8) - } else { - return (Math.random().toString(16) + '0000000').substr(2, 8) - } -} diff --git a/gateway/node_modules/unique-slug/package.json b/gateway/node_modules/unique-slug/package.json deleted file mode 100644 index 2142e68..0000000 --- a/gateway/node_modules/unique-slug/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "unique-slug", - "version": "2.0.2", - "description": "Generate a unique character string suitible for use in files and URLs.", - "main": "index.js", - "scripts": { - "test": "standard && tap --coverage test" - }, - "keywords": [], - "author": "Rebecca Turner (http://re-becca.org)", - "license": "ISC", - "devDependencies": { - "standard": "^12.0.1", - "tap": "^12.7.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/iarna/unique-slug.git" - }, - "dependencies": { - "imurmurhash": "^0.1.4" - } -} diff --git a/gateway/node_modules/unique-slug/test/index.js b/gateway/node_modules/unique-slug/test/index.js deleted file mode 100644 index 0f4ccad..0000000 --- a/gateway/node_modules/unique-slug/test/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' -var t = require('tap') -var uniqueSlug = require('../index.js') - -t.plan(5) -var slugA = uniqueSlug() -t.is(slugA.length, 8, 'random slugs are 8 chars') -t.notEqual(slugA, uniqueSlug(), "two slugs aren't the same") -var base = '/path/to/thingy' -var slugB = uniqueSlug(base) -t.is(slugB.length, 8, 'string based slugs are 8 chars') -t.is(slugB, uniqueSlug(base), 'two string based slugs, from the same string are the same') -t.notEqual(slugB, uniqueSlug(slugA), 'two string based slongs, from diff strings are different') diff --git a/gateway/node_modules/unique-string/index.d.ts b/gateway/node_modules/unique-string/index.d.ts deleted file mode 100644 index 08959a6..0000000 --- a/gateway/node_modules/unique-string/index.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** -Generate a unique random string. - -@returns A 32 character unique string. Matches the length of MD5, which is [unique enough](https://stackoverflow.com/a/2444336/64949) for non-crypto purposes. - -@example -``` -import uniqueString = require('unique-string'); - -uniqueString(); -//=> 'b4de2a49c8ffa3fbee04446f045483b2' -``` -*/ -declare function uniqueString(): string; - -export = uniqueString; diff --git a/gateway/node_modules/unique-string/index.js b/gateway/node_modules/unique-string/index.js deleted file mode 100644 index 5bc7787..0000000 --- a/gateway/node_modules/unique-string/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -const cryptoRandomString = require('crypto-random-string'); - -module.exports = () => cryptoRandomString(32); diff --git a/gateway/node_modules/unique-string/license b/gateway/node_modules/unique-string/license deleted file mode 100644 index e7af2f7..0000000 --- a/gateway/node_modules/unique-string/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/unique-string/package.json b/gateway/node_modules/unique-string/package.json deleted file mode 100644 index 11cbd76..0000000 --- a/gateway/node_modules/unique-string/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "unique-string", - "version": "2.0.0", - "description": "Generate a unique random string", - "license": "MIT", - "repository": "sindresorhus/unique-string", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "unique", - "string", - "random", - "text", - "id", - "identifier", - "slug", - "hex" - ], - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/gateway/node_modules/unique-string/readme.md b/gateway/node_modules/unique-string/readme.md deleted file mode 100644 index 9213f11..0000000 --- a/gateway/node_modules/unique-string/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# unique-string [![Build Status](https://travis-ci.org/sindresorhus/unique-string.svg?branch=master)](https://travis-ci.org/sindresorhus/unique-string) - -> Generate a unique random string - - -## Install - -``` -$ npm install unique-string -``` - - -## Usage - -```js -const uniqueString = require('unique-string'); - -uniqueString(); -//=> 'b4de2a49c8ffa3fbee04446f045483b2' -``` - - -## API - -### uniqueString() - -Returns a 32 character unique string. Matches the length of MD5, which is [unique enough](https://stackoverflow.com/a/2444336/64949) for non-crypto purposes. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/gateway/node_modules/unpipe/HISTORY.md b/gateway/node_modules/unpipe/HISTORY.md deleted file mode 100644 index 85e0f8d..0000000 --- a/gateway/node_modules/unpipe/HISTORY.md +++ /dev/null @@ -1,4 +0,0 @@ -1.0.0 / 2015-06-14 -================== - - * Initial release diff --git a/gateway/node_modules/unpipe/LICENSE b/gateway/node_modules/unpipe/LICENSE deleted file mode 100644 index aed0138..0000000 --- a/gateway/node_modules/unpipe/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/unpipe/README.md b/gateway/node_modules/unpipe/README.md deleted file mode 100644 index e536ad2..0000000 --- a/gateway/node_modules/unpipe/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# unpipe - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Unpipe a stream from all destinations. - -## Installation - -```sh -$ npm install unpipe -``` - -## API - -```js -var unpipe = require('unpipe') -``` - -### unpipe(stream) - -Unpipes all destinations from a given stream. With stream 2+, this is -equivalent to `stream.unpipe()`. When used with streams 1 style streams -(typically Node.js 0.8 and below), this module attempts to undo the -actions done in `stream.pipe(dest)`. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/unpipe.svg -[npm-url]: https://npmjs.org/package/unpipe -[node-image]: https://img.shields.io/node/v/unpipe.svg -[node-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg -[travis-url]: https://travis-ci.org/stream-utils/unpipe -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg -[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master -[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg -[downloads-url]: https://npmjs.org/package/unpipe diff --git a/gateway/node_modules/unpipe/index.js b/gateway/node_modules/unpipe/index.js deleted file mode 100644 index 15c3d97..0000000 --- a/gateway/node_modules/unpipe/index.js +++ /dev/null @@ -1,69 +0,0 @@ -/*! - * unpipe - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = unpipe - -/** - * Determine if there are Node.js pipe-like data listeners. - * @private - */ - -function hasPipeDataListeners(stream) { - var listeners = stream.listeners('data') - - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].name === 'ondata') { - return true - } - } - - return false -} - -/** - * Unpipe a stream from all destinations. - * - * @param {object} stream - * @public - */ - -function unpipe(stream) { - if (!stream) { - throw new TypeError('argument stream is required') - } - - if (typeof stream.unpipe === 'function') { - // new-style - stream.unpipe() - return - } - - // Node.js 0.8 hack - if (!hasPipeDataListeners(stream)) { - return - } - - var listener - var listeners = stream.listeners('close') - - for (var i = 0; i < listeners.length; i++) { - listener = listeners[i] - - if (listener.name !== 'cleanup' && listener.name !== 'onclose') { - continue - } - - // invoke the listener - listener.call(stream) - } -} diff --git a/gateway/node_modules/unpipe/package.json b/gateway/node_modules/unpipe/package.json deleted file mode 100644 index a2b7358..0000000 --- a/gateway/node_modules/unpipe/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "unpipe", - "description": "Unpipe a stream from all destinations", - "version": "1.0.0", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "stream-utils/unpipe", - "devDependencies": { - "istanbul": "0.3.15", - "mocha": "2.2.5", - "readable-stream": "1.1.13" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - } -} diff --git a/gateway/node_modules/update-notifier/check.js b/gateway/node_modules/update-notifier/check.js deleted file mode 100644 index fc0ee9c..0000000 --- a/gateway/node_modules/update-notifier/check.js +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable unicorn/no-process-exit */ -'use strict'; -let updateNotifier = require('.'); - -const options = JSON.parse(process.argv[2]); - -updateNotifier = new updateNotifier.UpdateNotifier(options); - -(async () => { - // Exit process when offline - setTimeout(process.exit, 1000 * 30); - - const update = await updateNotifier.fetchInfo(); - - // Only update the last update check time on success - updateNotifier.config.set('lastUpdateCheck', Date.now()); - - if (update.type && update.type !== 'latest') { - updateNotifier.config.set('update', update); - } - - // Call process exit explicitly to terminate the child process, - // otherwise the child process will run forever, according to the Node.js docs - process.exit(); -})().catch(error => { - console.error(error); - process.exit(1); -}); diff --git a/gateway/node_modules/update-notifier/index.js b/gateway/node_modules/update-notifier/index.js deleted file mode 100644 index d04847e..0000000 --- a/gateway/node_modules/update-notifier/index.js +++ /dev/null @@ -1,187 +0,0 @@ -'use strict'; -const {spawn} = require('child_process'); -const path = require('path'); -const {format} = require('util'); -const importLazy = require('import-lazy')(require); - -const configstore = importLazy('configstore'); -const chalk = importLazy('chalk'); -const semverDiff = importLazy('semver-diff'); -const latestVersion = importLazy('latest-version'); -const isNpm = importLazy('is-npm'); -const isInstalledGlobally = importLazy('is-installed-globally'); -const isYarnGlobal = importLazy('is-yarn-global'); -const hasYarn = importLazy('has-yarn'); -const boxen = importLazy('boxen'); -const xdgBasedir = importLazy('xdg-basedir'); -const isCi = importLazy('is-ci'); -const pupa = importLazy('pupa'); - -const ONE_DAY = 1000 * 60 * 60 * 24; - -class UpdateNotifier { - constructor(options = {}) { - this.options = options; - options.pkg = options.pkg || {}; - options.distTag = options.distTag || 'latest'; - - // Reduce pkg to the essential keys. with fallback to deprecated options - // TODO: Remove deprecated options at some point far into the future - options.pkg = { - name: options.pkg.name || options.packageName, - version: options.pkg.version || options.packageVersion - }; - - if (!options.pkg.name || !options.pkg.version) { - throw new Error('pkg.name and pkg.version required'); - } - - this.packageName = options.pkg.name; - this.packageVersion = options.pkg.version; - this.updateCheckInterval = typeof options.updateCheckInterval === 'number' ? options.updateCheckInterval : ONE_DAY; - this.disabled = 'NO_UPDATE_NOTIFIER' in process.env || - process.env.NODE_ENV === 'test' || - process.argv.includes('--no-update-notifier') || - isCi(); - this.shouldNotifyInNpmScript = options.shouldNotifyInNpmScript; - - if (!this.disabled) { - try { - const ConfigStore = configstore(); - this.config = new ConfigStore(`update-notifier-${this.packageName}`, { - optOut: false, - // Init with the current time so the first check is only - // after the set interval, so not to bother users right away - lastUpdateCheck: Date.now() - }); - } catch (_) { - // Expecting error code EACCES or EPERM - const message = - chalk().yellow(format(' %s update check failed ', options.pkg.name)) + - format('\n Try running with %s or get access ', chalk().cyan('sudo')) + - '\n to the local update config store via \n' + - chalk().cyan(format(' sudo chown -R $USER:$(id -gn $USER) %s ', xdgBasedir().config)); - - process.on('exit', () => { - console.error(boxen()(message, {align: 'center'})); - }); - } - } - } - - check() { - if ( - !this.config || - this.config.get('optOut') || - this.disabled - ) { - return; - } - - this.update = this.config.get('update'); - - if (this.update) { - // Use the real latest version instead of the cached one - this.update.current = this.packageVersion; - - // Clear cached information - this.config.delete('update'); - } - - // Only check for updates on a set interval - if (Date.now() - this.config.get('lastUpdateCheck') < this.updateCheckInterval) { - return; - } - - // Spawn a detached process, passing the options as an environment property - spawn(process.execPath, [path.join(__dirname, 'check.js'), JSON.stringify(this.options)], { - detached: true, - stdio: 'ignore' - }).unref(); - } - - async fetchInfo() { - const {distTag} = this.options; - const latest = await latestVersion()(this.packageName, {version: distTag}); - - return { - latest, - current: this.packageVersion, - type: semverDiff()(this.packageVersion, latest) || distTag, - name: this.packageName - }; - } - - notify(options) { - const suppressForNpm = !this.shouldNotifyInNpmScript && isNpm().isNpmOrYarn; - if (!process.stdout.isTTY || suppressForNpm || !this.update || this.update.current === this.update.latest) { - return this; - } - - options = Object.assign({ - isGlobal: isInstalledGlobally(), - isYarnGlobal: isYarnGlobal()() - }, options); - - let installCommand; - - if (options.isYarnGlobal) { - installCommand = `yarn global add ${this.packageName}`; - } else if (options.isGlobal) { - installCommand = `npm i -g ${this.packageName}`; - } else if (hasYarn()()) { - installCommand = `yarn add ${this.packageName}`; - } else { - installCommand = `npm i ${this.packageName}`; - } - - const defaultTemplate = 'Update available ' + - chalk().dim('{currentVersion}') + - chalk().reset(' → ') + - chalk().green('{latestVersion}') + - ' \nRun ' + chalk().cyan('{updateCommand}') + ' to update'; - - const template = options.message || defaultTemplate; - - options.boxenOptions = options.boxenOptions || { - padding: 1, - margin: 1, - align: 'center', - borderColor: 'yellow', - borderStyle: 'round' - }; - - const message = boxen()( - pupa()(template, { - packageName: this.packageName, - currentVersion: this.update.current, - latestVersion: this.update.latest, - updateCommand: installCommand - }), - options.boxenOptions - ); - - if (options.defer === false) { - console.error(message); - } else { - process.on('exit', () => { - console.error(message); - }); - - process.on('SIGINT', () => { - console.error(''); - process.exit(); - }); - } - - return this; - } -} - -module.exports = options => { - const updateNotifier = new UpdateNotifier(options); - updateNotifier.check(); - return updateNotifier; -}; - -module.exports.UpdateNotifier = UpdateNotifier; diff --git a/gateway/node_modules/update-notifier/license b/gateway/node_modules/update-notifier/license deleted file mode 100644 index cea5a35..0000000 --- a/gateway/node_modules/update-notifier/license +++ /dev/null @@ -1,9 +0,0 @@ -Copyright Google - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gateway/node_modules/update-notifier/node_modules/.bin/is-ci b/gateway/node_modules/update-notifier/node_modules/.bin/is-ci deleted file mode 120000 index 00628fc..0000000 --- a/gateway/node_modules/update-notifier/node_modules/.bin/is-ci +++ /dev/null @@ -1 +0,0 @@ -../../../is-ci/bin.js \ No newline at end of file diff --git a/gateway/node_modules/update-notifier/package.json b/gateway/node_modules/update-notifier/package.json deleted file mode 100644 index 1644157..0000000 --- a/gateway/node_modules/update-notifier/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "update-notifier", - "version": "4.1.3", - "description": "Update notifications for your CLI app", - "license": "BSD-2-Clause", - "repository": "yeoman/update-notifier", - "funding": "https://github.com/yeoman/update-notifier?sponsor=1", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava --timeout=20s -s" - }, - "files": [ - "index.js", - "check.js" - ], - "keywords": [ - "npm", - "update", - "updater", - "notify", - "notifier", - "check", - "checker", - "cli", - "module", - "package", - "version" - ], - "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "devDependencies": { - "ava": "^2.4.0", - "clear-module": "^4.0.0", - "fixture-stdout": "^0.2.1", - "mock-require": "^3.0.3", - "strip-ansi": "^6.0.0", - "xo": "^0.25.0" - }, - "xo": { - "rules": { - "prefer-object-spread": 0 - } - } -} diff --git a/gateway/node_modules/update-notifier/readme.md b/gateway/node_modules/update-notifier/readme.md deleted file mode 100644 index afab894..0000000 --- a/gateway/node_modules/update-notifier/readme.md +++ /dev/null @@ -1,223 +0,0 @@ -# update-notifier [![Build Status](https://travis-ci.org/yeoman/update-notifier.svg?branch=master)](https://travis-ci.org/yeoman/update-notifier) - -> Update notifications for your CLI app - -![](screenshot.png) - -Inform users of your package of updates in a non-intrusive way. - -#### Contents - -- [Install](#install) -- [Usage](#usage) -- [How](#how) -- [API](#api) -- [About](#about) -- [Users](#users) - -## Install - -``` -$ npm install update-notifier -``` - -## Usage - -### Simple - -```js -const updateNotifier = require('update-notifier'); -const pkg = require('./package.json'); - -updateNotifier({pkg}).notify(); -``` - -### Comprehensive - -```js -const updateNotifier = require('update-notifier'); -const pkg = require('./package.json'); - -// Checks for available update and returns an instance -const notifier = updateNotifier({pkg}); - -// Notify using the built-in convenience method -notifier.notify(); - -// `notifier.update` contains some useful info about the update -console.log(notifier.update); -/* -{ - latest: '1.0.1', - current: '1.0.0', - type: 'patch', // Possible values: latest, major, minor, patch, prerelease, build - name: 'pageres' -} -*/ -``` - -### Options and custom message - -```js -const notifier = updateNotifier({ - pkg, - updateCheckInterval: 1000 * 60 * 60 * 24 * 7 // 1 week -}); - -if (notifier.update) { - console.log(`Update available: ${notifier.update.latest}`); -} -``` - -## How - -Whenever you initiate the update notifier and it's not within the interval threshold, it will asynchronously check with npm in the background for available updates, then persist the result. The next time the notifier is initiated, the result will be loaded into the `.update` property. This prevents any impact on your package startup performance. -The update check is done in a unref'ed [child process](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options). This means that if you call `process.exit`, the check will still be performed in its own process. - -The first time the user runs your app, it will check for an update, and even if an update is available, it will wait the specified `updateCheckInterval` before notifying the user. This is done to not be annoying to the user, but might surprise you as an implementer if you're testing whether it works. Check out [`example.js`](example.js) to quickly test out `update-notifier` and see how you can test that it works in your app. - -## API - -### notifier = updateNotifier(options) - -Checks if there is an available update. Accepts options defined below. Returns an instance with an `.update` property if there is an available update, otherwise `undefined`. - -### options - -Type: `object` - -#### pkg - -Type: `object` - -##### name - -*Required*\ -Type: `string` - -##### version - -*Required*\ -Type: `string` - -#### updateCheckInterval - -Type: `number`\ -Default: `1000 * 60 * 60 * 24` *(1 day)* - -How often to check for updates. - -#### shouldNotifyInNpmScript - -Type: `boolean`\ -Default: `false` - -Allows notification to be shown when running as an npm script. - -#### distTag - -Type: `string`\ -Default: `'latest'` - -Which [dist-tag](https://docs.npmjs.com/adding-dist-tags-to-packages) to use to find the latest version. - -### notifier.fetchInfo() - -Check update information. - -Returns an `object` with: - -- `latest` _(String)_ - Latest version. -- `current` _(String)_ - Current version. -- `type` _(String)_ - Type of current update. Possible values: `latest`, `major`, `minor`, `patch`, `prerelease`, `build`. -- `name` _(String)_ - Package name. - -### notifier.notify(options?) - -Convenience method to display a notification message. *(See screenshot)* - -Only notifies if there is an update and the process is [TTY](https://nodejs.org/api/process.html#process_a_note_on_process_i_o). - -#### options - -Type: `object` - -##### defer - -Type: `boolean`\ -Default: `true` - -Defer showing the notification to after the process has exited. - -##### message - -Type: `string`\ -Default: [See above screenshot](https://github.com/yeoman/update-notifier#update-notifier-) - -Message that will be shown when an update is available. - -Available placeholders: - -- `{packageName}` - Package name. -- `{currentVersion}` - Current version. -- `{latestVersion}` - Latest version. -- `{updateCommand}` - Update command. - -```js -notifier.notify({message: 'Run `{updateCommand}` to update.'}); - -// Output: -// Run `npm install update-notifier-tester@1.0.0` to update. -``` - -##### isGlobal - -Type: `boolean`\ -Default: Auto-detect - -Include the `-g` argument in the default message's `npm i` recommendation. You may want to change this if your CLI package can be installed as a dependency of another project, and don't want to recommend a global installation. This option is ignored if you supply your own `message` (see above). - -##### boxenOptions - -Type: `object`\ -Default: `{padding: 1, margin: 1, align: 'center', borderColor: 'yellow', borderStyle: 'round'}` *(See screenshot)* - -Options object that will be passed to [`boxen`](https://github.com/sindresorhus/boxen). - -### User settings - -Users of your module have the ability to opt-out of the update notifier by changing the `optOut` property to `true` in `~/.config/configstore/update-notifier-[your-module-name].json`. The path is available in `notifier.config.path`. - -Users can also opt-out by [setting the environment variable](https://github.com/sindresorhus/guides/blob/master/set-environment-variables.md) `NO_UPDATE_NOTIFIER` with any value or by using the `--no-update-notifier` flag on a per run basis. - -The check is also skipped automatically: - - on CI - - in unit tests (when the `NODE_ENV` environment variable is `test`) - -## About - -The idea for this module came from the desire to apply the browser update strategy to CLI tools, where everyone is always on the latest version. We first tried automatic updating, which we discovered wasn't popular. This is the second iteration of that idea, but limited to just update notifications. - -## Users - -There are a bunch projects using it: - -- [npm](https://github.com/npm/npm) - Package manager for JavaScript -- [Yeoman](https://yeoman.io) - Modern workflows for modern webapps -- [AVA](https://ava.li) - Simple concurrent test runner -- [XO](https://github.com/xojs/xo) - JavaScript happiness style linter -- [Node GH](https://github.com/node-gh/gh) - GitHub command line tool - -[And 2700+ more…](https://www.npmjs.org/browse/depended/update-notifier) - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/gateway/node_modules/url-parse-lax/index.js b/gateway/node_modules/url-parse-lax/index.js deleted file mode 100644 index 5c62a58..0000000 --- a/gateway/node_modules/url-parse-lax/index.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -const url = require('url'); -const prependHttp = require('prepend-http'); - -module.exports = (input, options) => { - if (typeof input !== 'string') { - throw new TypeError(`Expected \`url\` to be of type \`string\`, got \`${typeof input}\` instead.`); - } - - const finalUrl = prependHttp(input, Object.assign({https: true}, options)); - return url.parse(finalUrl); -}; diff --git a/gateway/node_modules/url-parse-lax/license b/gateway/node_modules/url-parse-lax/license deleted file mode 100644 index e7af2f7..0000000 --- a/gateway/node_modules/url-parse-lax/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/url-parse-lax/package.json b/gateway/node_modules/url-parse-lax/package.json deleted file mode 100644 index b3c58f9..0000000 --- a/gateway/node_modules/url-parse-lax/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "url-parse-lax", - "version": "3.0.0", - "description": "Lax url.parse() with support for protocol-less URLs & IPs", - "license": "MIT", - "repository": "sindresorhus/url-parse-lax", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "url", - "uri", - "parse", - "parser", - "loose", - "lax", - "protocol", - "less", - "protocol-less", - "ip", - "ipv4", - "ipv6" - ], - "dependencies": { - "prepend-http": "^2.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } -} diff --git a/gateway/node_modules/url-parse-lax/readme.md b/gateway/node_modules/url-parse-lax/readme.md deleted file mode 100644 index be0d437..0000000 --- a/gateway/node_modules/url-parse-lax/readme.md +++ /dev/null @@ -1,127 +0,0 @@ -# url-parse-lax [![Build Status](https://travis-ci.org/sindresorhus/url-parse-lax.svg?branch=master)](https://travis-ci.org/sindresorhus/url-parse-lax) - -> Lax [`url.parse()`](https://nodejs.org/docs/latest/api/url.html#url_url_parse_urlstr_parsequerystring_slashesdenotehost) with support for protocol-less URLs & IPs - - -## Install - -``` -$ npm install url-parse-lax -``` - - -## Usage - -```js -const urlParseLax = require('url-parse-lax'); - -urlParseLax('sindresorhus.com'); -/* -{ - protocol: 'https:', - slashes: true, - auth: null, - host: 'sindresorhus.com', - port: null, - hostname: 'sindresorhus.com', - hash: null, - search: null, - query: null, - pathname: '/', - path: '/', - href: 'https://sindresorhus.com/' -} -*/ - -urlParseLax('[2001:db8::]:8000'); -/* -{ - protocol: null, - slashes: true, - auth: null, - host: '[2001:db8::]:8000', - port: '8000', - hostname: '2001:db8::', - hash: null, - search: null, - query: null, - pathname: '/', - path: '/', - href: 'http://[2001:db8::]:8000/' -} -*/ -``` - -And with the built-in `url.parse()`: - -```js -const url = require('url'); - -url.parse('sindresorhus.com'); -/* -{ - protocol: null, - slashes: null, - auth: null, - host: null, - port: null, - hostname: null, - hash: null, - search: null, - query: null, - pathname: 'sindresorhus', - path: 'sindresorhus', - href: 'sindresorhus' -} -*/ - -url.parse('[2001:db8::]:8000'); -/* -{ - protocol: null, - slashes: null, - auth: null, - host: null, - port: null, - hostname: null, - hash: null, - search: null, - query: null, - pathname: '[2001:db8::]:8000', - path: '[2001:db8::]:8000', - href: '[2001:db8::]:8000' -} -*/ -``` - - -## API - -### urlParseLax(url, [options]) - -#### url - -Type: `string` - -URL to parse. - -#### options - -Type: `Object` - -##### https - -Type: `boolean`
-Default: `true` - -Prepend `https://` instead of `http://` to protocol-less URLs. - - -## Related - -- [url-format-lax](https://github.com/sindresorhus/url-format-lax) - Lax `url.format()` that formats a hostname and port into IPv6-compatible socket form of `hostname:port` - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/gateway/node_modules/util.promisify/.eslintrc b/gateway/node_modules/util.promisify/.eslintrc deleted file mode 100644 index f8f740d..0000000 --- a/gateway/node_modules/util.promisify/.eslintrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "env": { - "es6": true - }, - - "rules": { - "id-length": [2, { "max": 30 }], - "max-statements": [2, 16], - "multiline-comment-style": 0, - "no-magic-numbers": 0, - "operator-linebreak": [2, "before"] - } -} diff --git a/gateway/node_modules/util.promisify/.github/FUNDING.yml b/gateway/node_modules/util.promisify/.github/FUNDING.yml deleted file mode 100644 index e88860a..0000000 --- a/gateway/node_modules/util.promisify/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/util.promisify -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/gateway/node_modules/util.promisify/.github/workflows/rebase.yml b/gateway/node_modules/util.promisify/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79..0000000 --- a/gateway/node_modules/util.promisify/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/gateway/node_modules/util.promisify/.travis.yml b/gateway/node_modules/util.promisify/.travis.yml deleted file mode 100644 index 42a10fd..0000000 --- a/gateway/node_modules/util.promisify/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml -matrix: - allow_failures: - - node_js: "0.10" - - node_js: "0.8" diff --git a/gateway/node_modules/util.promisify/CHANGELOG.md b/gateway/node_modules/util.promisify/CHANGELOG.md deleted file mode 100644 index a51a7c7..0000000 --- a/gateway/node_modules/util.promisify/CHANGELOG.md +++ /dev/null @@ -1,58 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - -## [v1.0.1](https://github.com/ljharb/util.promisify/compare/v1.0.0...v1.0.1) - 2020-01-16 - -### Fixed - -- [Refactor] remove unnecessary duplication. Fixes #3. [`#3`](https://github.com/ljharb/util.promisify/issues/3) - -### Commits - -- [Tests] use shared travis-ci configs [`f1b5e43`](https://github.com/ljharb/util.promisify/commit/f1b5e43359e74a30f35bd10a33be765de73917c6) -- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `4.9`; use `nvm install-latest-npm`; pin included builds to LTS [`e89390f`](https://github.com/ljharb/util.promisify/commit/e89390f498f7eb5111188fff5260cbb9f5216cd3) -- [meta] add `auto-changelog` [`fe8e751`](https://github.com/ljharb/util.promisify/commit/fe8e751819a1318d3c929b086c70308aed50715d) -- [Tests] up to `node` `v11.0`, `v10.12`, `v8.12` [`e09b894`](https://github.com/ljharb/util.promisify/commit/e09b894291aef2991e5c553f0b64968e03b58262) -- [Refactor] use `callBound` helper from `es-abstract` for robustness [`baa0cf6`](https://github.com/ljharb/util.promisify/commit/baa0cf697068573cbe650e01aa6774154dd3f454) -- [actions] add automatic rebasing / merge commit blocking [`24912f4`](https://github.com/ljharb/util.promisify/commit/24912f41b30d88b8984fb07307f737de6f576873) -- [Docs] Add usage information for the shim/monkey-patch [`38b1ee5`](https://github.com/ljharb/util.promisify/commit/38b1ee56b558019213a6fdc2553796e8cdaf773e) -- [Refactor] use `__proto__` instead of ES6’s `Object.setPrototypeOf` [`02ec7e2`](https://github.com/ljharb/util.promisify/commit/02ec7e241caf8848c1e141c801f98ed31325b59a) -- [meta] create FUNDING.yml [`076b8b5`](https://github.com/ljharb/util.promisify/commit/076b8b5d19783a0e4c932e41782846e431deeb7d) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`4cedaa9`](https://github.com/ljharb/util.promisify/commit/4cedaa9c6b0a77a0416b69d480b3b806c00dec6e) -- Adds usage information to the README [`ddb4556`](https://github.com/ljharb/util.promisify/commit/ddb45562320ab8aea93dc0364640ea21ab68bfbb) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`95362c0`](https://github.com/ljharb/util.promisify/commit/95362c0e93186a30ede6333430ddfa0606a769b4) -- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `eslint` [`fd79a58`](https://github.com/ljharb/util.promisify/commit/fd79a58573186c83d81777fa0b1ad293b2f475e3) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`2cf792b`](https://github.com/ljharb/util.promisify/commit/2cf792b9dcaab24b642ef1de8239ceb089fc5d38) -- [Docs] Link to util.promisify-all [`032ff5c`](https://github.com/ljharb/util.promisify/commit/032ff5c6ee2958a02f56c770337441c3a587b88c) -- [Tests] allow node 0.10 and 0.8 to fail again [`c2f8418`](https://github.com/ljharb/util.promisify/commit/c2f8418dfc36b83cd8a18b86a735c2936c6f5f9e) -- [Tests] remove mistakenly added travis jobs [`13a242f`](https://github.com/ljharb/util.promisify/commit/13a242fb33dcbd4e2872436f2e430e62526fb147) -- [Tests] on `node` `v10.1` [`8244578`](https://github.com/ljharb/util.promisify/commit/82445786197fd3e54aeffaa2fe0f1da38bcafec4) -- [meta] add `funding` field [`e1645ca`](https://github.com/ljharb/util.promisify/commit/e1645ca10648d1ae917e3f5ae954b37de338dc20) -- [New] add `auto` entry point [`2c48047`](https://github.com/ljharb/util.promisify/commit/2c480479d67646fb2bfb92a4e5d50ff14bcdca3c) -- [Fix] use `has-symbols` package to ensure we support Symbol shams too. [`75135c8`](https://github.com/ljharb/util.promisify/commit/75135c8a48ea4e1be1cfe7a95af11905818303e7) -- [Deps] update `es-abstract` [`32aa5cc`](https://github.com/ljharb/util.promisify/commit/32aa5ccd3ee7513edef99ed7d516d6c0f4901883) -- [Dev Deps] update `eslint` [`c3043e6`](https://github.com/ljharb/util.promisify/commit/c3043e6e562847102e9136479268777bc07e9b26) -- [Deps] update `object.getownpropertydescriptors` [`521ed25`](https://github.com/ljharb/util.promisify/commit/521ed25d40dc230b38ac3755036219fbaf94694c) -- [Deps] update `has-symbol` [`16d91ec`](https://github.com/ljharb/util.promisify/commit/16d91ecc0016c31e49b7c3da938c19132c243732) -- [Deps] update `define-properties` [`532915e`](https://github.com/ljharb/util.promisify/commit/532915ed58fe6f0edc3670837b510e09fb39b99a) -- [Tests] `npm` v5+ breaks on node < v4 [`0647c63`](https://github.com/ljharb/util.promisify/commit/0647c63d932451c043c3e8f3b003c636057f035a) - -## v1.0.0 - 2017-05-30 - -### Commits - -- Dotfiles. [`02c20cb`](https://github.com/ljharb/util.promisify/commit/02c20cb4eb01cf656102f57f71635785114f1d09) -- Initial implementation. [`05ff048`](https://github.com/ljharb/util.promisify/commit/05ff0480448f019a85675ce81ecc4e9bdc099286) -- Initial commit [`9472155`](https://github.com/ljharb/util.promisify/commit/947215502491bb1b3238aa0ac5c67258e41db3a8) -- package.json [`e0302c0`](https://github.com/ljharb/util.promisify/commit/e0302c01e5e3b1dd78647303f9a4337b5bb63196) -- Initial readme. [`5df78e1`](https://github.com/ljharb/util.promisify/commit/5df78e16e89e8328c61d6bbac85409a36560fe3b) -- [Dev Deps] add `safe-publish-latest` [`596b6b4`](https://github.com/ljharb/util.promisify/commit/596b6b4fbce79dbaf5fff366454ab5b31d2eb993) -- [Tests] add `npm run lint` [`54c2ccb`](https://github.com/ljharb/util.promisify/commit/54c2ccb85db682fc293b30a0bfece76d0a5c7c60) -- [Dev Deps] add `@es-shims/api` [`d9014f1`](https://github.com/ljharb/util.promisify/commit/d9014f12add2fb3fe743647df614c69ed305a824) -- [Tests] allow 0.10 and 0.8 to fail, for now. [`c5c7b61`](https://github.com/ljharb/util.promisify/commit/c5c7b619b88878fc715d1768b48bd45378c9f807) diff --git a/gateway/node_modules/util.promisify/LICENSE b/gateway/node_modules/util.promisify/LICENSE deleted file mode 100644 index 0a9f7a9..0000000 --- a/gateway/node_modules/util.promisify/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/gateway/node_modules/util.promisify/README.md b/gateway/node_modules/util.promisify/README.md deleted file mode 100644 index 8889043..0000000 --- a/gateway/node_modules/util.promisify/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# util.promisify -Polyfill for util.promisify in node versions < v8 - -node v8.0.0 added support for a built-in `util.promisify`: https://github.com/nodejs/node/pull/12442/ - -This package provides the built-in `util.promisify` in node v8.0.0 and later, and a replacement in other environments. - -## Usage - -**Direct** -```js -const promisify = require('util.promisify'); -// Use `promisify` just like the built-in method on `util` -``` - -**Shim** -```js -require('util.promisify/shim')(); -// `util.promisify` is now defined -const util = require('util'); -// Use `util.promisify` -``` - -Note: this package requires a native ES5 environment, and for `Promise` to be globally available. It will throw upon requiring it if these are not present. - -## Promisifying modules - -If you want to promisify a whole module, like the `fs` module, you can use [`util.promisify-all`](https://www.npmjs.com/package/util.promisify-all). diff --git a/gateway/node_modules/util.promisify/auto.js b/gateway/node_modules/util.promisify/auto.js deleted file mode 100644 index 8ebf606..0000000 --- a/gateway/node_modules/util.promisify/auto.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -require('./shim')(); diff --git a/gateway/node_modules/util.promisify/implementation.js b/gateway/node_modules/util.promisify/implementation.js deleted file mode 100644 index 3cd88f1..0000000 --- a/gateway/node_modules/util.promisify/implementation.js +++ /dev/null @@ -1,88 +0,0 @@ -'use strict'; - -var isES5 = typeof Object.defineProperty === 'function' - && typeof Object.defineProperties === 'function'; - -var hasProto = [].__proto__ === Array.prototype; // eslint-disable-line no-proto - -if (!isES5 || !hasProto) { - throw new TypeError('util.promisify requires a true ES5 environment, that also supports `__proto__`'); -} - -var getOwnPropertyDescriptors = require('object.getownpropertydescriptors'); - -if (typeof Promise !== 'function') { - throw new TypeError('`Promise` must be globally available for util.promisify to work.'); -} - -var callBound = require('es-abstract/helpers/callBound'); - -var $slice = callBound('Array.prototype.slice'); -var $concat = callBound('Array.prototype.concat'); -var $forEach = callBound('Array.prototype.forEach'); - -var hasSymbols = require('has-symbols')(); - -var kCustomPromisifiedSymbol = hasSymbols ? Symbol('util.promisify.custom') : null; -var kCustomPromisifyArgsSymbol = hasSymbols ? Symbol('customPromisifyArgs') : null; - -module.exports = function promisify(orig) { - if (typeof orig !== 'function') { - var error = new TypeError('The "original" argument must be of type function'); - error.name = 'TypeError [ERR_INVALID_ARG_TYPE]'; - error.code = 'ERR_INVALID_ARG_TYPE'; - throw error; - } - - if (hasSymbols && orig[kCustomPromisifiedSymbol]) { - var customFunction = orig[kCustomPromisifiedSymbol]; - if (typeof customFunction !== 'function') { - throw new TypeError('The [util.promisify.custom] property must be a function'); - } - Object.defineProperty(customFunction, kCustomPromisifiedSymbol, { - configurable: true, - enumerable: false, - value: customFunction, - writable: false - }); - return customFunction; - } - - // Names to create an object from in case the callback receives multiple - // arguments, e.g. ['stdout', 'stderr'] for child_process.exec. - var argumentNames = orig[kCustomPromisifyArgsSymbol]; - - var promisified = function fn() { - var args = $slice(arguments); - var self = this; // eslint-disable-line no-invalid-this - return new Promise(function (resolve, reject) { - orig.apply(self, $concat(args, function (err) { - var values = arguments.length > 1 ? $slice(arguments, 1) : []; - if (err) { - reject(err); - } else if (typeof argumentNames !== 'undefined' && values.length > 1) { - var obj = {}; - $forEach(argumentNames, function (name, index) { - obj[name] = values[index]; - }); - resolve(obj); - } else { - resolve(values[0]); - } - })); - }); - }; - - promisified.__proto__ = orig.__proto__; // eslint-disable-line no-proto - - Object.defineProperty(promisified, kCustomPromisifiedSymbol, { - configurable: true, - enumerable: false, - value: promisified, - writable: false - }); - return Object.defineProperties(promisified, getOwnPropertyDescriptors(orig)); -}; - -module.exports.custom = kCustomPromisifiedSymbol; -module.exports.customPromisifyArgs = kCustomPromisifyArgsSymbol; diff --git a/gateway/node_modules/util.promisify/index.js b/gateway/node_modules/util.promisify/index.js deleted file mode 100644 index 55843cf..0000000 --- a/gateway/node_modules/util.promisify/index.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var define = require('define-properties'); -var util = require('util'); - -var implementation = require('./implementation'); -var getPolyfill = require('./polyfill'); -var polyfill = getPolyfill(); -var shim = require('./shim'); - -/* eslint-disable no-unused-vars */ -var boundPromisify = function promisify(orig) { -/* eslint-enable no-unused-vars */ - return polyfill.apply(util, arguments); -}; -define(boundPromisify, { - custom: polyfill.custom, - customPromisifyArgs: polyfill.customPromisifyArgs, - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = boundPromisify; diff --git a/gateway/node_modules/util.promisify/package.json b/gateway/node_modules/util.promisify/package.json deleted file mode 100644 index 71886cc..0000000 --- a/gateway/node_modules/util.promisify/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "util.promisify", - "version": "1.0.1", - "description": "Polyfill/shim for util.promisify in node versions < v8", - "main": "index.js", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "devDependencies": { - "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^15.1.0", - "auto-changelog": "^1.16.2", - "eslint": "^6.8.0", - "safe-publish-latest": "^1.1.4" - }, - "scripts": { - "prepublish": "safe-publish-latest", - "lint": "eslint .", - "pretest": "npm run lint", - "tests-only": "es-shim-api --bound", - "test": "npm run tests-only", - "posttest": "npx aud", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/util.promisify.git" - }, - "keywords": [ - "promisify", - "promise", - "util", - "polyfill", - "shim", - "util.promisify" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/util.promisify/issues" - }, - "homepage": "https://github.com/ljharb/util.promisify#readme", - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false - } -} diff --git a/gateway/node_modules/util.promisify/polyfill.js b/gateway/node_modules/util.promisify/polyfill.js deleted file mode 100644 index e8484b8..0000000 --- a/gateway/node_modules/util.promisify/polyfill.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var util = require('util'); -var implementation = require('./implementation'); - -module.exports = function getPolyfill() { - if (typeof util.promisify === 'function') { - return util.promisify; - } - return implementation; -}; diff --git a/gateway/node_modules/util.promisify/shim.js b/gateway/node_modules/util.promisify/shim.js deleted file mode 100644 index eca1524..0000000 --- a/gateway/node_modules/util.promisify/shim.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var util = require('util'); -var getPolyfill = require('./polyfill'); - -module.exports = function shimUtilPromisify() { - var polyfill = getPolyfill(); - if (polyfill !== util.promisify) { - Object.defineProperty(util, 'promisify', { - configurable: true, - enumerable: true, - value: polyfill, - writable: true - }); - } - return polyfill; -}; diff --git a/gateway/node_modules/utils-merge/.npmignore b/gateway/node_modules/utils-merge/.npmignore deleted file mode 100644 index 3e53844..0000000 --- a/gateway/node_modules/utils-merge/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -CONTRIBUTING.md -Makefile -docs/ -examples/ -reports/ -test/ - -.jshintrc -.travis.yml diff --git a/gateway/node_modules/utils-merge/LICENSE b/gateway/node_modules/utils-merge/LICENSE deleted file mode 100644 index 76f6d08..0000000 --- a/gateway/node_modules/utils-merge/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2017 Jared Hanson - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/utils-merge/README.md b/gateway/node_modules/utils-merge/README.md deleted file mode 100644 index 0cb7117..0000000 --- a/gateway/node_modules/utils-merge/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# utils-merge - -[![Version](https://img.shields.io/npm/v/utils-merge.svg?label=version)](https://www.npmjs.com/package/utils-merge) -[![Build](https://img.shields.io/travis/jaredhanson/utils-merge.svg)](https://travis-ci.org/jaredhanson/utils-merge) -[![Quality](https://img.shields.io/codeclimate/github/jaredhanson/utils-merge.svg?label=quality)](https://codeclimate.com/github/jaredhanson/utils-merge) -[![Coverage](https://img.shields.io/coveralls/jaredhanson/utils-merge.svg)](https://coveralls.io/r/jaredhanson/utils-merge) -[![Dependencies](https://img.shields.io/david/jaredhanson/utils-merge.svg)](https://david-dm.org/jaredhanson/utils-merge) - - -Merges the properties from a source object into a destination object. - -## Install - -```bash -$ npm install utils-merge -``` - -## Usage - -```javascript -var a = { foo: 'bar' } - , b = { bar: 'baz' }; - -merge(a, b); -// => { foo: 'bar', bar: 'baz' } -``` - -## License - -[The MIT License](http://opensource.org/licenses/MIT) - -Copyright (c) 2013-2017 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> - - Sponsor diff --git a/gateway/node_modules/utils-merge/index.js b/gateway/node_modules/utils-merge/index.js deleted file mode 100644 index 4265c69..0000000 --- a/gateway/node_modules/utils-merge/index.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Merge object b with object a. - * - * var a = { foo: 'bar' } - * , b = { bar: 'baz' }; - * - * merge(a, b); - * // => { foo: 'bar', bar: 'baz' } - * - * @param {Object} a - * @param {Object} b - * @return {Object} - * @api public - */ - -exports = module.exports = function(a, b){ - if (a && b) { - for (var key in b) { - a[key] = b[key]; - } - } - return a; -}; diff --git a/gateway/node_modules/utils-merge/package.json b/gateway/node_modules/utils-merge/package.json deleted file mode 100644 index e36b078..0000000 --- a/gateway/node_modules/utils-merge/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "utils-merge", - "version": "1.0.1", - "description": "merge() utility function", - "keywords": [ - "util" - ], - "author": { - "name": "Jared Hanson", - "email": "jaredhanson@gmail.com", - "url": "http://www.jaredhanson.net/" - }, - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/utils-merge.git" - }, - "bugs": { - "url": "http://github.com/jaredhanson/utils-merge/issues" - }, - "license": "MIT", - "licenses": [ - { - "type": "MIT", - "url": "http://opensource.org/licenses/MIT" - } - ], - "main": "./index", - "dependencies": {}, - "devDependencies": { - "make-node": "0.3.x", - "mocha": "1.x.x", - "chai": "1.x.x" - }, - "engines": { - "node": ">= 0.4.0" - }, - "scripts": { - "test": "node_modules/.bin/mocha --reporter spec --require test/bootstrap/node test/*.test.js" - } -} diff --git a/gateway/node_modules/uuid/AUTHORS b/gateway/node_modules/uuid/AUTHORS deleted file mode 100644 index 5a10523..0000000 --- a/gateway/node_modules/uuid/AUTHORS +++ /dev/null @@ -1,5 +0,0 @@ -Robert Kieffer -Christoph Tavan -AJ ONeal -Vincent Voyer -Roman Shtylman diff --git a/gateway/node_modules/uuid/CHANGELOG.md b/gateway/node_modules/uuid/CHANGELOG.md deleted file mode 100644 index f811b8a..0000000 --- a/gateway/node_modules/uuid/CHANGELOG.md +++ /dev/null @@ -1,119 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -## [3.4.0](https://github.com/uuidjs/uuid/compare/v3.3.3...v3.4.0) (2020-01-16) - - -### Features - -* rename repository to github:uuidjs/uuid ([#351](https://github.com/uuidjs/uuid/issues/351)) ([e2d7314](https://github.com/uuidjs/uuid/commit/e2d7314)), closes [#338](https://github.com/uuidjs/uuid/issues/338) - -### [3.3.3](https://github.com/uuidjs/uuid/compare/v3.3.2...v3.3.3) (2019-08-19) - - -## [3.3.2](https://github.com/uuidjs/uuid/compare/v3.3.1...v3.3.2) (2018-06-28) - - -### Bug Fixes - -* typo ([305d877](https://github.com/uuidjs/uuid/commit/305d877)) - - - - -## [3.3.1](https://github.com/uuidjs/uuid/compare/v3.3.0...v3.3.1) (2018-06-28) - - -### Bug Fixes - -* fix [#284](https://github.com/uuidjs/uuid/issues/284) by setting function name in try-catch ([f2a60f2](https://github.com/uuidjs/uuid/commit/f2a60f2)) - - - - -# [3.3.0](https://github.com/uuidjs/uuid/compare/v3.2.1...v3.3.0) (2018-06-22) - - -### Bug Fixes - -* assignment to readonly property to allow running in strict mode ([#270](https://github.com/uuidjs/uuid/issues/270)) ([d062fdc](https://github.com/uuidjs/uuid/commit/d062fdc)) -* fix [#229](https://github.com/uuidjs/uuid/issues/229) ([c9684d4](https://github.com/uuidjs/uuid/commit/c9684d4)) -* Get correct version of IE11 crypto ([#274](https://github.com/uuidjs/uuid/issues/274)) ([153d331](https://github.com/uuidjs/uuid/commit/153d331)) -* mem issue when generating uuid ([#267](https://github.com/uuidjs/uuid/issues/267)) ([c47702c](https://github.com/uuidjs/uuid/commit/c47702c)) - -### Features - -* enforce Conventional Commit style commit messages ([#282](https://github.com/uuidjs/uuid/issues/282)) ([cc9a182](https://github.com/uuidjs/uuid/commit/cc9a182)) - - - -## [3.2.1](https://github.com/uuidjs/uuid/compare/v3.2.0...v3.2.1) (2018-01-16) - - -### Bug Fixes - -* use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b)) - - - - -# [3.2.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.2.0) (2018-01-16) - - -### Bug Fixes - -* remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/uuidjs/uuid/commit/09fa824)) -* use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b)) - - -### Features - -* Add v3 Support ([#217](https://github.com/uuidjs/uuid/issues/217)) ([d94f726](https://github.com/uuidjs/uuid/commit/d94f726)) - - -# [3.1.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.0.1) (2017-06-17) - -### Bug Fixes - -* (fix) Add .npmignore file to exclude test/ and other non-essential files from packing. (#183) -* Fix typo (#178) -* Simple typo fix (#165) - -### Features -* v5 support in CLI (#197) -* V5 support (#188) - - -# 3.0.1 (2016-11-28) - -* split uuid versions into separate files - - -# 3.0.0 (2016-11-17) - -* remove .parse and .unparse - - -# 2.0.0 - -* Removed uuid.BufferClass - - -# 1.4.0 - -* Improved module context detection -* Removed public RNG functions - - -# 1.3.2 - -* Improve tests and handling of v1() options (Issue #24) -* Expose RNG option to allow for perf testing with different generators - - -# 1.3.0 - -* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)! -* Support for node.js crypto API -* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code diff --git a/gateway/node_modules/uuid/LICENSE.md b/gateway/node_modules/uuid/LICENSE.md deleted file mode 100644 index 8c84e39..0000000 --- a/gateway/node_modules/uuid/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2010-2016 Robert Kieffer and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/gateway/node_modules/uuid/README.md b/gateway/node_modules/uuid/README.md deleted file mode 100644 index 1752e47..0000000 --- a/gateway/node_modules/uuid/README.md +++ /dev/null @@ -1,276 +0,0 @@ - - -# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) # - -Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS. - -Features: - -* Support for version 1, 3, 4 and 5 UUIDs -* Cross-platform -* Uses cryptographically-strong random number APIs (when available) -* Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883)) - -[**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be -supported after version 3.x of this module. Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.] - -## Quickstart - CommonJS (Recommended) - -```shell -npm install uuid -``` - -Then generate your uuid version of choice ... - -Version 1 (timestamp): - -```javascript -const uuidv1 = require('uuid/v1'); -uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d' - -``` - -Version 3 (namespace): - -```javascript -const uuidv3 = require('uuid/v3'); - -// ... using predefined DNS namespace (for domain names) -uuidv3('hello.example.com', uuidv3.DNS); // ⇨ '9125a8dc-52ee-365b-a5aa-81b0b3681cf6' - -// ... using predefined URL namespace (for, well, URLs) -uuidv3('http://example.com/hello', uuidv3.URL); // ⇨ 'c6235813-3ba4-3801-ae84-e0a6ebb7d138' - -// ... using a custom namespace -// -// Note: Custom namespaces should be a UUID string specific to your application! -// E.g. the one here was generated using this modules `uuid` CLI. -const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341'; -uuidv3('Hello, World!', MY_NAMESPACE); // ⇨ 'e8b5a51d-11c8-3310-a6ab-367563f20686' - -``` - -Version 4 (random): - -```javascript -const uuidv4 = require('uuid/v4'); -uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' - -``` - -Version 5 (namespace): - -```javascript -const uuidv5 = require('uuid/v5'); - -// ... using predefined DNS namespace (for domain names) -uuidv5('hello.example.com', uuidv5.DNS); // ⇨ 'fdda765f-fc57-5604-a269-52a7df8164ec' - -// ... using predefined URL namespace (for, well, URLs) -uuidv5('http://example.com/hello', uuidv5.URL); // ⇨ '3bbcee75-cecc-5b56-8031-b6641c1ed1f1' - -// ... using a custom namespace -// -// Note: Custom namespaces should be a UUID string specific to your application! -// E.g. the one here was generated using this modules `uuid` CLI. -const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341'; -uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681' - -``` - -## API - -### Version 1 - -```javascript -const uuidv1 = require('uuid/v1'); - -// Incantations -uuidv1(); -uuidv1(options); -uuidv1(options, buffer, offset); -``` - -Generate and return a RFC4122 v1 (timestamp-based) UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1. - * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used. - * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used. - * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Note: The default [node id](https://tools.ietf.org/html/rfc4122#section-4.1.6) (the last 12 digits in the UUID) is generated once, randomly, on process startup, and then remains unchanged for the duration of the process. - -Example: Generate string UUID with fully-specified options - -```javascript -const v1options = { - node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], - clockseq: 0x1234, - msecs: new Date('2011-11-01').getTime(), - nsecs: 5678 -}; -uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab' - -``` - -Example: In-place generation of two binary IDs - -```javascript -// Generate two ids in an array -const arr = new Array(); -uuidv1(null, arr, 0); // ⇨ - // [ - // 44, 94, 164, 192, 64, 103, - // 17, 233, 146, 52, 155, 29, - // 235, 77, 59, 125 - // ] -uuidv1(null, arr, 16); // ⇨ - // [ - // 44, 94, 164, 192, 64, 103, 17, 233, - // 146, 52, 155, 29, 235, 77, 59, 125, - // 44, 94, 164, 193, 64, 103, 17, 233, - // 146, 52, 155, 29, 235, 77, 59, 125 - // ] - -``` - -### Version 3 - -```javascript -const uuidv3 = require('uuid/v3'); - -// Incantations -uuidv3(name, namespace); -uuidv3(name, namespace, buffer); -uuidv3(name, namespace, buffer, offset); -``` - -Generate and return a RFC4122 v3 UUID. - -* `name` - (String | Array[]) "name" to create UUID with -* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0 - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: - -```javascript -uuidv3('hello world', MY_NAMESPACE); // ⇨ '042ffd34-d989-321c-ad06-f60826172424' - -``` - -### Version 4 - -```javascript -const uuidv4 = require('uuid/v4') - -// Incantations -uuidv4(); -uuidv4(options); -uuidv4(options, buffer, offset); -``` - -Generate and return a RFC4122 v4 UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values - * `rng` - (Function) Random # generator function that returns an Array[16] of byte values (0-255) -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: Generate string UUID with predefined `random` values - -```javascript -const v4options = { - random: [ - 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, - 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36 - ] -}; -uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836' - -``` - -Example: Generate two IDs in a single buffer - -```javascript -const buffer = new Array(); -uuidv4(null, buffer, 0); // ⇨ - // [ - // 155, 29, 235, 77, 59, - // 125, 75, 173, 155, 221, - // 43, 13, 123, 61, 203, - // 109 - // ] -uuidv4(null, buffer, 16); // ⇨ - // [ - // 155, 29, 235, 77, 59, 125, 75, 173, - // 155, 221, 43, 13, 123, 61, 203, 109, - // 27, 157, 107, 205, 187, 253, 75, 45, - // 155, 93, 171, 141, 251, 189, 75, 237 - // ] - -``` - -### Version 5 - -```javascript -const uuidv5 = require('uuid/v5'); - -// Incantations -uuidv5(name, namespace); -uuidv5(name, namespace, buffer); -uuidv5(name, namespace, buffer, offset); -``` - -Generate and return a RFC4122 v5 UUID. - -* `name` - (String | Array[]) "name" to create UUID with -* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0 - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: - -```javascript -uuidv5('hello world', MY_NAMESPACE); // ⇨ '9f282611-e0fd-5650-8953-89c8e342da0b' - -``` - -## Command Line - -UUIDs can be generated from the command line with the `uuid` command. - -```shell -$ uuid -ddeb27fb-d9a0-4624-be4d-4615062daed4 - -$ uuid v1 -02d37060-d446-11e7-a9fa-7bdae751ebe1 -``` - -Type `uuid --help` for usage details - -## Testing - -```shell -npm test -``` - ----- -Markdown generated from [README_js.md](README_js.md) by [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](https://github.com/broofa/runmd) \ No newline at end of file diff --git a/gateway/node_modules/uuid/bin/uuid b/gateway/node_modules/uuid/bin/uuid deleted file mode 100755 index 502626e..0000000 --- a/gateway/node_modules/uuid/bin/uuid +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env node -var assert = require('assert'); - -function usage() { - console.log('Usage:'); - console.log(' uuid'); - console.log(' uuid v1'); - console.log(' uuid v3 '); - console.log(' uuid v4'); - console.log(' uuid v5 '); - console.log(' uuid --help'); - console.log('\nNote: may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122'); -} - -var args = process.argv.slice(2); - -if (args.indexOf('--help') >= 0) { - usage(); - process.exit(0); -} -var version = args.shift() || 'v4'; - -switch (version) { - case 'v1': - var uuidV1 = require('../v1'); - console.log(uuidV1()); - break; - - case 'v3': - var uuidV3 = require('../v3'); - - var name = args.shift(); - var namespace = args.shift(); - assert(name != null, 'v3 name not specified'); - assert(namespace != null, 'v3 namespace not specified'); - - if (namespace == 'URL') namespace = uuidV3.URL; - if (namespace == 'DNS') namespace = uuidV3.DNS; - - console.log(uuidV3(name, namespace)); - break; - - case 'v4': - var uuidV4 = require('../v4'); - console.log(uuidV4()); - break; - - case 'v5': - var uuidV5 = require('../v5'); - - var name = args.shift(); - var namespace = args.shift(); - assert(name != null, 'v5 name not specified'); - assert(namespace != null, 'v5 namespace not specified'); - - if (namespace == 'URL') namespace = uuidV5.URL; - if (namespace == 'DNS') namespace = uuidV5.DNS; - - console.log(uuidV5(name, namespace)); - break; - - default: - usage(); - process.exit(1); -} diff --git a/gateway/node_modules/uuid/index.js b/gateway/node_modules/uuid/index.js deleted file mode 100644 index e96791a..0000000 --- a/gateway/node_modules/uuid/index.js +++ /dev/null @@ -1,8 +0,0 @@ -var v1 = require('./v1'); -var v4 = require('./v4'); - -var uuid = v4; -uuid.v1 = v1; -uuid.v4 = v4; - -module.exports = uuid; diff --git a/gateway/node_modules/uuid/lib/bytesToUuid.js b/gateway/node_modules/uuid/lib/bytesToUuid.js deleted file mode 100644 index 24b6041..0000000 --- a/gateway/node_modules/uuid/lib/bytesToUuid.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -var byteToHex = []; -for (var i = 0; i < 256; ++i) { - byteToHex[i] = (i + 0x100).toString(16).substr(1); -} - -function bytesToUuid(buf, offset) { - var i = offset || 0; - var bth = byteToHex; - // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([ - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]] - ]).join(''); -} - -module.exports = bytesToUuid; diff --git a/gateway/node_modules/uuid/lib/md5-browser.js b/gateway/node_modules/uuid/lib/md5-browser.js deleted file mode 100644 index 9b3b6c7..0000000 --- a/gateway/node_modules/uuid/lib/md5-browser.js +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Browser-compatible JavaScript MD5 - * - * Modification of JavaScript MD5 - * https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2011, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * https://opensource.org/licenses/MIT - * - * Based on - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ - -'use strict'; - -function md5(bytes) { - if (typeof(bytes) == 'string') { - var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape - bytes = new Array(msg.length); - for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i); - } - - return md5ToHexEncodedArray( - wordsToMd5( - bytesToWords(bytes) - , bytes.length * 8) - ); -} - - -/* -* Convert an array of little-endian words to an array of bytes -*/ -function md5ToHexEncodedArray(input) { - var i; - var x; - var output = []; - var length32 = input.length * 32; - var hexTab = '0123456789abcdef'; - var hex; - - for (i = 0; i < length32; i += 8) { - x = (input[i >> 5] >>> (i % 32)) & 0xFF; - - hex = parseInt(hexTab.charAt((x >>> 4) & 0x0F) + hexTab.charAt(x & 0x0F), 16); - - output.push(hex); - } - return output; -} - -/* -* Calculate the MD5 of an array of little-endian words, and a bit length. -*/ -function wordsToMd5(x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << (len % 32); - x[(((len + 64) >>> 9) << 4) + 14] = len; - - var i; - var olda; - var oldb; - var oldc; - var oldd; - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - - var d = 271733878; - - for (i = 0; i < x.length; i += 16) { - olda = a; - oldb = b; - oldc = c; - oldd = d; - - a = md5ff(a, b, c, d, x[i], 7, -680876936); - d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); - - a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5gg(b, c, d, a, x[i], 20, -373897302); - a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); - - a = md5hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5hh(d, a, b, c, x[i], 11, -358537222); - c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); - - a = md5ii(a, b, c, d, x[i], 6, -198630844); - d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); - - a = safeAdd(a, olda); - b = safeAdd(b, oldb); - c = safeAdd(c, oldc); - d = safeAdd(d, oldd); - } - return [a, b, c, d]; -} - -/* -* Convert an array bytes to an array of little-endian words -* Characters >255 have their high-byte silently ignored. -*/ -function bytesToWords(input) { - var i; - var output = []; - output[(input.length >> 2) - 1] = undefined; - for (i = 0; i < output.length; i += 1) { - output[i] = 0; - } - var length8 = input.length * 8; - for (i = 0; i < length8; i += 8) { - output[i >> 5] |= (input[(i / 8)] & 0xFF) << (i % 32); - } - - return output; -} - -/* -* Add integers, wrapping at 2^32. This uses 16-bit operations internally -* to work around bugs in some JS interpreters. -*/ -function safeAdd(x, y) { - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); -} - -/* -* Bitwise rotate a 32-bit number to the left. -*/ -function bitRotateLeft(num, cnt) { - return (num << cnt) | (num >>> (32 - cnt)); -} - -/* -* These functions implement the four basic operations the algorithm uses. -*/ -function md5cmn(q, a, b, x, s, t) { - return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); -} -function md5ff(a, b, c, d, x, s, t) { - return md5cmn((b & c) | ((~b) & d), a, b, x, s, t); -} -function md5gg(a, b, c, d, x, s, t) { - return md5cmn((b & d) | (c & (~d)), a, b, x, s, t); -} -function md5hh(a, b, c, d, x, s, t) { - return md5cmn(b ^ c ^ d, a, b, x, s, t); -} -function md5ii(a, b, c, d, x, s, t) { - return md5cmn(c ^ (b | (~d)), a, b, x, s, t); -} - -module.exports = md5; diff --git a/gateway/node_modules/uuid/lib/md5.js b/gateway/node_modules/uuid/lib/md5.js deleted file mode 100644 index 7044b87..0000000 --- a/gateway/node_modules/uuid/lib/md5.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var crypto = require('crypto'); - -function md5(bytes) { - if (typeof Buffer.from === 'function') { - // Modern Buffer API - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - } else { - // Pre-v4 Buffer API - if (Array.isArray(bytes)) { - bytes = new Buffer(bytes); - } else if (typeof bytes === 'string') { - bytes = new Buffer(bytes, 'utf8'); - } - } - - return crypto.createHash('md5').update(bytes).digest(); -} - -module.exports = md5; diff --git a/gateway/node_modules/uuid/lib/rng-browser.js b/gateway/node_modules/uuid/lib/rng-browser.js deleted file mode 100644 index 6361fb8..0000000 --- a/gateway/node_modules/uuid/lib/rng-browser.js +++ /dev/null @@ -1,34 +0,0 @@ -// Unique ID creation requires a high quality random # generator. In the -// browser this is a little complicated due to unknown quality of Math.random() -// and inconsistent support for the `crypto` API. We do the best we can via -// feature-detection - -// getRandomValues needs to be invoked in a context where "this" is a Crypto -// implementation. Also, find the complete implementation of crypto on IE11. -var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || - (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); - -if (getRandomValues) { - // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto - var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef - - module.exports = function whatwgRNG() { - getRandomValues(rnds8); - return rnds8; - }; -} else { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var rnds = new Array(16); - - module.exports = function mathRNG() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) r = Math.random() * 0x100000000; - rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return rnds; - }; -} diff --git a/gateway/node_modules/uuid/lib/rng.js b/gateway/node_modules/uuid/lib/rng.js deleted file mode 100644 index 58f0dc9..0000000 --- a/gateway/node_modules/uuid/lib/rng.js +++ /dev/null @@ -1,8 +0,0 @@ -// Unique ID creation requires a high quality random # generator. In node.js -// this is pretty straight-forward - we use the crypto API. - -var crypto = require('crypto'); - -module.exports = function nodeRNG() { - return crypto.randomBytes(16); -}; diff --git a/gateway/node_modules/uuid/lib/sha1-browser.js b/gateway/node_modules/uuid/lib/sha1-browser.js deleted file mode 100644 index 5758ed7..0000000 --- a/gateway/node_modules/uuid/lib/sha1-browser.js +++ /dev/null @@ -1,89 +0,0 @@ -// Adapted from Chris Veness' SHA1 code at -// http://www.movable-type.co.uk/scripts/sha1.html -'use strict'; - -function f(s, x, y, z) { - switch (s) { - case 0: return (x & y) ^ (~x & z); - case 1: return x ^ y ^ z; - case 2: return (x & y) ^ (x & z) ^ (y & z); - case 3: return x ^ y ^ z; - } -} - -function ROTL(x, n) { - return (x << n) | (x>>> (32 - n)); -} - -function sha1(bytes) { - var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; - var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; - - if (typeof(bytes) == 'string') { - var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape - bytes = new Array(msg.length); - for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i); - } - - bytes.push(0x80); - - var l = bytes.length/4 + 2; - var N = Math.ceil(l/16); - var M = new Array(N); - - for (var i=0; i>> 0; - e = d; - d = c; - c = ROTL(b, 30) >>> 0; - b = a; - a = T; - } - - H[0] = (H[0] + a) >>> 0; - H[1] = (H[1] + b) >>> 0; - H[2] = (H[2] + c) >>> 0; - H[3] = (H[3] + d) >>> 0; - H[4] = (H[4] + e) >>> 0; - } - - return [ - H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, - H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, - H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, - H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, - H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff - ]; -} - -module.exports = sha1; diff --git a/gateway/node_modules/uuid/lib/sha1.js b/gateway/node_modules/uuid/lib/sha1.js deleted file mode 100644 index 0b54b25..0000000 --- a/gateway/node_modules/uuid/lib/sha1.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var crypto = require('crypto'); - -function sha1(bytes) { - if (typeof Buffer.from === 'function') { - // Modern Buffer API - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - } else { - // Pre-v4 Buffer API - if (Array.isArray(bytes)) { - bytes = new Buffer(bytes); - } else if (typeof bytes === 'string') { - bytes = new Buffer(bytes, 'utf8'); - } - } - - return crypto.createHash('sha1').update(bytes).digest(); -} - -module.exports = sha1; diff --git a/gateway/node_modules/uuid/lib/v35.js b/gateway/node_modules/uuid/lib/v35.js deleted file mode 100644 index 8b066cc..0000000 --- a/gateway/node_modules/uuid/lib/v35.js +++ /dev/null @@ -1,57 +0,0 @@ -var bytesToUuid = require('./bytesToUuid'); - -function uuidToBytes(uuid) { - // Note: We assume we're being passed a valid uuid string - var bytes = []; - uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) { - bytes.push(parseInt(hex, 16)); - }); - - return bytes; -} - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - var bytes = new Array(str.length); - for (var i = 0; i < str.length; i++) { - bytes[i] = str.charCodeAt(i); - } - return bytes; -} - -module.exports = function(name, version, hashfunc) { - var generateUUID = function(value, namespace, buf, offset) { - var off = buf && offset || 0; - - if (typeof(value) == 'string') value = stringToBytes(value); - if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace); - - if (!Array.isArray(value)) throw TypeError('value must be an array of bytes'); - if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); - - // Per 4.3 - var bytes = hashfunc(namespace.concat(value)); - bytes[6] = (bytes[6] & 0x0f) | version; - bytes[8] = (bytes[8] & 0x3f) | 0x80; - - if (buf) { - for (var idx = 0; idx < 16; ++idx) { - buf[off+idx] = bytes[idx]; - } - } - - return buf || bytesToUuid(bytes); - }; - - // Function#name is not settable on some platforms (#270) - try { - generateUUID.name = name; - } catch (err) { - } - - // Pre-defined namespaces, per Appendix C - generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; - generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; - - return generateUUID; -}; diff --git a/gateway/node_modules/uuid/package.json b/gateway/node_modules/uuid/package.json deleted file mode 100644 index efc07b8..0000000 --- a/gateway/node_modules/uuid/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "uuid", - "version": "3.4.0", - "description": "RFC4122 (v1, v4, and v5) UUIDs", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "keywords": [ - "uuid", - "guid", - "rfc4122" - ], - "license": "MIT", - "bin": { - "uuid": "./bin/uuid" - }, - "devDependencies": { - "@commitlint/cli": "~8.2.0", - "@commitlint/config-conventional": "~8.2.0", - "eslint": "~6.4.0", - "husky": "~3.0.5", - "mocha": "6.2.0", - "runmd": "1.2.1", - "standard-version": "7.0.0" - }, - "scripts": { - "lint": "eslint .", - "test": "npm run lint && mocha test/test.js", - "md": "runmd --watch --output=README.md README_js.md", - "release": "standard-version", - "prepare": "runmd --output=README.md README_js.md" - }, - "browser": { - "./lib/rng.js": "./lib/rng-browser.js", - "./lib/sha1.js": "./lib/sha1-browser.js", - "./lib/md5.js": "./lib/md5-browser.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/uuidjs/uuid.git" - }, - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" - } - } -} diff --git a/gateway/node_modules/uuid/v1.js b/gateway/node_modules/uuid/v1.js deleted file mode 100644 index 8c245de..0000000 --- a/gateway/node_modules/uuid/v1.js +++ /dev/null @@ -1,109 +0,0 @@ -var rng = require('./lib/rng'); -var bytesToUuid = require('./lib/bytesToUuid'); - -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html - -var _nodeId; -var _clockseq; - -// Previous uuid creation time -var _lastMSecs = 0; -var _lastNSecs = 0; - -// See https://github.com/uuidjs/uuid for API details -function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || []; - - options = options || {}; - var node = options.node || _nodeId; - var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; - - // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - if (node == null || clockseq == null) { - var seedBytes = rng(); - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [ - seedBytes[0] | 0x01, - seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] - ]; - } - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } - - // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); - - // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; - - // Time since last uuid creation (in msecs) - var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; - - // Per 4.2.1.2, Bump clockseq on clock regression - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } - - // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } - - // Per 4.2.1.2 Throw error if too many uuids are requested - if (nsecs >= 10000) { - throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - msecs += 12219292800000; - - // `time_low` - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; - - // `time_mid` - var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; - - // `time_high_and_version` - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - b[i++] = tmh >>> 16 & 0xff; - - // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - b[i++] = clockseq >>> 8 | 0x80; - - // `clock_seq_low` - b[i++] = clockseq & 0xff; - - // `node` - for (var n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf ? buf : bytesToUuid(b); -} - -module.exports = v1; diff --git a/gateway/node_modules/uuid/v3.js b/gateway/node_modules/uuid/v3.js deleted file mode 100644 index ee7e14c..0000000 --- a/gateway/node_modules/uuid/v3.js +++ /dev/null @@ -1,4 +0,0 @@ -var v35 = require('./lib/v35.js'); -var md5 = require('./lib/md5'); - -module.exports = v35('v3', 0x30, md5); \ No newline at end of file diff --git a/gateway/node_modules/uuid/v4.js b/gateway/node_modules/uuid/v4.js deleted file mode 100644 index 1f07be1..0000000 --- a/gateway/node_modules/uuid/v4.js +++ /dev/null @@ -1,29 +0,0 @@ -var rng = require('./lib/rng'); -var bytesToUuid = require('./lib/bytesToUuid'); - -function v4(options, buf, offset) { - var i = buf && offset || 0; - - if (typeof(options) == 'string') { - buf = options === 'binary' ? new Array(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ++ii) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || bytesToUuid(rnds); -} - -module.exports = v4; diff --git a/gateway/node_modules/uuid/v5.js b/gateway/node_modules/uuid/v5.js deleted file mode 100644 index 4945baf..0000000 --- a/gateway/node_modules/uuid/v5.js +++ /dev/null @@ -1,3 +0,0 @@ -var v35 = require('./lib/v35.js'); -var sha1 = require('./lib/sha1'); -module.exports = v35('v5', 0x50, sha1); diff --git a/gateway/node_modules/vary/HISTORY.md b/gateway/node_modules/vary/HISTORY.md deleted file mode 100644 index f6cbcf7..0000000 --- a/gateway/node_modules/vary/HISTORY.md +++ /dev/null @@ -1,39 +0,0 @@ -1.1.2 / 2017-09-23 -================== - - * perf: improve header token parsing speed - -1.1.1 / 2017-03-20 -================== - - * perf: hoist regular expression - -1.1.0 / 2015-09-29 -================== - - * Only accept valid field names in the `field` argument - - Ensures the resulting string is a valid HTTP header value - -1.0.1 / 2015-07-08 -================== - - * Fix setting empty header from empty `field` - * perf: enable strict mode - * perf: remove argument reassignments - -1.0.0 / 2014-08-10 -================== - - * Accept valid `Vary` header string as `field` - * Add `vary.append` for low-level string manipulation - * Move to `jshttp` orgainzation - -0.1.0 / 2014-06-05 -================== - - * Support array of fields to set - -0.0.0 / 2014-06-04 -================== - - * Initial release diff --git a/gateway/node_modules/vary/LICENSE b/gateway/node_modules/vary/LICENSE deleted file mode 100644 index 84441fb..0000000 --- a/gateway/node_modules/vary/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2017 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/vary/README.md b/gateway/node_modules/vary/README.md deleted file mode 100644 index cc000b3..0000000 --- a/gateway/node_modules/vary/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# vary - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Manipulate the HTTP Vary header - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```sh -$ npm install vary -``` - -## API - - - -```js -var vary = require('vary') -``` - -### vary(res, field) - -Adds the given header `field` to the `Vary` response header of `res`. -This can be a string of a single field, a string of a valid `Vary` -header, or an array of multiple fields. - -This will append the header if not already listed, otherwise leaves -it listed in the current location. - - - -```js -// Append "Origin" to the Vary header of the response -vary(res, 'Origin') -``` - -### vary.append(header, field) - -Adds the given header `field` to the `Vary` response header string `header`. -This can be a string of a single field, a string of a valid `Vary` header, -or an array of multiple fields. - -This will append the header if not already listed, otherwise leaves -it listed in the current location. The new header string is returned. - - - -```js -// Get header string appending "Origin" to "Accept, User-Agent" -vary.append('Accept, User-Agent', 'Origin') -``` - -## Examples - -### Updating the Vary header when content is based on it - -```js -var http = require('http') -var vary = require('vary') - -http.createServer(function onRequest (req, res) { - // about to user-agent sniff - vary(res, 'User-Agent') - - var ua = req.headers['user-agent'] || '' - var isMobile = /mobi|android|touch|mini/i.test(ua) - - // serve site, depending on isMobile - res.setHeader('Content-Type', 'text/html') - res.end('You are (probably) ' + (isMobile ? '' : 'not ') + 'a mobile user') -}) -``` - -## Testing - -```sh -$ npm test -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/vary.svg -[npm-url]: https://npmjs.org/package/vary -[node-version-image]: https://img.shields.io/node/v/vary.svg -[node-version-url]: https://nodejs.org/en/download -[travis-image]: https://img.shields.io/travis/jshttp/vary/master.svg -[travis-url]: https://travis-ci.org/jshttp/vary -[coveralls-image]: https://img.shields.io/coveralls/jshttp/vary/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/vary -[downloads-image]: https://img.shields.io/npm/dm/vary.svg -[downloads-url]: https://npmjs.org/package/vary diff --git a/gateway/node_modules/vary/index.js b/gateway/node_modules/vary/index.js deleted file mode 100644 index 5b5e741..0000000 --- a/gateway/node_modules/vary/index.js +++ /dev/null @@ -1,149 +0,0 @@ -/*! - * vary - * Copyright(c) 2014-2017 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = vary -module.exports.append = append - -/** - * RegExp to match field-name in RFC 7230 sec 3.2 - * - * field-name = token - * token = 1*tchar - * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" - * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" - * / DIGIT / ALPHA - * ; any VCHAR, except delimiters - */ - -var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/ - -/** - * Append a field to a vary header. - * - * @param {String} header - * @param {String|Array} field - * @return {String} - * @public - */ - -function append (header, field) { - if (typeof header !== 'string') { - throw new TypeError('header argument is required') - } - - if (!field) { - throw new TypeError('field argument is required') - } - - // get fields array - var fields = !Array.isArray(field) - ? parse(String(field)) - : field - - // assert on invalid field names - for (var j = 0; j < fields.length; j++) { - if (!FIELD_NAME_REGEXP.test(fields[j])) { - throw new TypeError('field argument contains an invalid header name') - } - } - - // existing, unspecified vary - if (header === '*') { - return header - } - - // enumerate current values - var val = header - var vals = parse(header.toLowerCase()) - - // unspecified vary - if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) { - return '*' - } - - for (var i = 0; i < fields.length; i++) { - var fld = fields[i].toLowerCase() - - // append value (case-preserving) - if (vals.indexOf(fld) === -1) { - vals.push(fld) - val = val - ? val + ', ' + fields[i] - : fields[i] - } - } - - return val -} - -/** - * Parse a vary header into an array. - * - * @param {String} header - * @return {Array} - * @private - */ - -function parse (header) { - var end = 0 - var list = [] - var start = 0 - - // gather tokens - for (var i = 0, len = header.length; i < len; i++) { - switch (header.charCodeAt(i)) { - case 0x20: /* */ - if (start === end) { - start = end = i + 1 - } - break - case 0x2c: /* , */ - list.push(header.substring(start, end)) - start = end = i + 1 - break - default: - end = i + 1 - break - } - } - - // final token - list.push(header.substring(start, end)) - - return list -} - -/** - * Mark that a request is varied on a header field. - * - * @param {Object} res - * @param {String|Array} field - * @public - */ - -function vary (res, field) { - if (!res || !res.getHeader || !res.setHeader) { - // quack quack - throw new TypeError('res argument is required') - } - - // get existing header - var val = res.getHeader('Vary') || '' - var header = Array.isArray(val) - ? val.join(', ') - : String(val) - - // set new header - if ((val = append(header, field))) { - res.setHeader('Vary', val) - } -} diff --git a/gateway/node_modules/vary/package.json b/gateway/node_modules/vary/package.json deleted file mode 100644 index 028f72a..0000000 --- a/gateway/node_modules/vary/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "vary", - "description": "Manipulate the HTTP Vary header", - "version": "1.1.2", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "http", - "res", - "vary" - ], - "repository": "jshttp/vary", - "devDependencies": { - "beautify-benchmark": "0.2.4", - "benchmark": "2.1.4", - "eslint": "3.19.0", - "eslint-config-standard": "10.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-markdown": "1.0.0-beta.6", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "istanbul": "0.4.5", - "mocha": "2.5.3", - "supertest": "1.1.0" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "bench": "node benchmark/index.js", - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - } -} diff --git a/gateway/node_modules/widest-line/index.d.ts b/gateway/node_modules/widest-line/index.d.ts deleted file mode 100644 index 845ceaa..0000000 --- a/gateway/node_modules/widest-line/index.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -declare const widestLine: { - /** - Get the visual width of the widest line in a string - the number of columns required to display it. - - @example - ``` - import widestLine = require('widest-line'); - - widestLine('古\n\u001B[1m@\u001B[22m'); - //=> 2 - ``` - */ - (input: string): number; - - // TODO: remove this in the next major version, refactor definition to: - // declare function widestLine(input: string): number; - // export = widestLine; - default: typeof widestLine; -}; - -export = widestLine; diff --git a/gateway/node_modules/widest-line/index.js b/gateway/node_modules/widest-line/index.js deleted file mode 100644 index 98f8ce4..0000000 --- a/gateway/node_modules/widest-line/index.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; -const stringWidth = require('string-width'); - -const widestLine = input => { - let max = 0; - - for (const line of input.split('\n')) { - max = Math.max(max, stringWidth(line)); - } - - return max; -}; - -module.exports = widestLine; -// TODO: remove this in the next major version -module.exports.default = widestLine; diff --git a/gateway/node_modules/widest-line/license b/gateway/node_modules/widest-line/license deleted file mode 100644 index e7af2f7..0000000 --- a/gateway/node_modules/widest-line/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/widest-line/package.json b/gateway/node_modules/widest-line/package.json deleted file mode 100644 index 9bf55de..0000000 --- a/gateway/node_modules/widest-line/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "widest-line", - "version": "3.1.0", - "description": "Get the visual width of the widest line in a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/widest-line", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "string", - "character", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "dependencies": { - "string-width": "^4.0.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } -} diff --git a/gateway/node_modules/widest-line/readme.md b/gateway/node_modules/widest-line/readme.md deleted file mode 100644 index 20e02d5..0000000 --- a/gateway/node_modules/widest-line/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# widest-line [![Build Status](https://travis-ci.org/sindresorhus/widest-line.svg?branch=master)](https://travis-ci.org/sindresorhus/widest-line) - -> Get the visual width of the widest line in a string - the number of columns required to display it - -Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. - -Useful to be able to know the maximum width a string will take up in the terminal. - - -## Install - -``` -$ npm install widest-line -``` - - -## Usage - -```js -const widestLine = require('widest-line'); - -widestLine('古\n\u001B[1m@\u001B[22m'); -//=> 2 -``` - - -## Related - -- [string-width](https://github.com/sindresorhus/string-width) - Get the visual width of a string - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/gateway/node_modules/wrappy/LICENSE b/gateway/node_modules/wrappy/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/gateway/node_modules/wrappy/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/gateway/node_modules/wrappy/README.md b/gateway/node_modules/wrappy/README.md deleted file mode 100644 index 98eab25..0000000 --- a/gateway/node_modules/wrappy/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# wrappy - -Callback wrapping utility - -## USAGE - -```javascript -var wrappy = require("wrappy") - -// var wrapper = wrappy(wrapperFunction) - -// make sure a cb is called only once -// See also: http://npm.im/once for this specific use case -var once = wrappy(function (cb) { - var called = false - return function () { - if (called) return - called = true - return cb.apply(this, arguments) - } -}) - -function printBoo () { - console.log('boo') -} -// has some rando property -printBoo.iAmBooPrinter = true - -var onlyPrintOnce = once(printBoo) - -onlyPrintOnce() // prints 'boo' -onlyPrintOnce() // does nothing - -// random property is retained! -assert.equal(onlyPrintOnce.iAmBooPrinter, true) -``` diff --git a/gateway/node_modules/wrappy/package.json b/gateway/node_modules/wrappy/package.json deleted file mode 100644 index 1307520..0000000 --- a/gateway/node_modules/wrappy/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "wrappy", - "version": "1.0.2", - "description": "Callback wrapping utility", - "main": "wrappy.js", - "files": [ - "wrappy.js" - ], - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "^2.3.1" - }, - "scripts": { - "test": "tap --coverage test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/npm/wrappy" - }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/wrappy/issues" - }, - "homepage": "https://github.com/npm/wrappy" -} diff --git a/gateway/node_modules/wrappy/wrappy.js b/gateway/node_modules/wrappy/wrappy.js deleted file mode 100644 index bb7e7d6..0000000 --- a/gateway/node_modules/wrappy/wrappy.js +++ /dev/null @@ -1,33 +0,0 @@ -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} diff --git a/gateway/node_modules/write-file-atomic/CHANGELOG.md b/gateway/node_modules/write-file-atomic/CHANGELOG.md deleted file mode 100644 index d1a6c1b..0000000 --- a/gateway/node_modules/write-file-atomic/CHANGELOG.md +++ /dev/null @@ -1,32 +0,0 @@ -# 3.0.0 - -* Implement options.tmpfileCreated callback. -* Drop Node.js 6, modernize code, return Promise from async function. -* Support write TypedArray's like in node fs.writeFile. -* Remove graceful-fs dependency. - -# 2.4.3 - -* Ignore errors raised by `fs.closeSync` when cleaning up after a write - error. - -# 2.4.2 - -* A pair of patches to fix some fd leaks. We would leak fds with sync use - when errors occured and with async use any time fsync was not in use. (#34) - -# 2.4.1 - -* Fix a bug where `signal-exit` instances would be leaked. This was fixed when addressing #35. - -# 2.4.0 - -## Features - -* Allow chown and mode options to be set to false to disable the defaulting behavior. (#20) -* Support passing encoding strings in options slot for compat with Node.js API. (#31) -* Add support for running inside of worker threads (#37) - -## Fixes - -* Remove unneeded call when returning success (#36) diff --git a/gateway/node_modules/write-file-atomic/LICENSE b/gateway/node_modules/write-file-atomic/LICENSE deleted file mode 100644 index 95e65a7..0000000 --- a/gateway/node_modules/write-file-atomic/LICENSE +++ /dev/null @@ -1,6 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/gateway/node_modules/write-file-atomic/README.md b/gateway/node_modules/write-file-atomic/README.md deleted file mode 100644 index caea799..0000000 --- a/gateway/node_modules/write-file-atomic/README.md +++ /dev/null @@ -1,72 +0,0 @@ -write-file-atomic ------------------ - -This is an extension for node's `fs.writeFile` that makes its operation -atomic and allows you set ownership (uid/gid of the file). - -### var writeFileAtomic = require('write-file-atomic')
writeFileAtomic(filename, data, [options], [callback]) - -* filename **String** -* data **String** | **Buffer** -* options **Object** | **String** - * chown **Object** default, uid & gid of existing file, if any - * uid **Number** - * gid **Number** - * encoding **String** | **Null** default = 'utf8' - * fsync **Boolean** default = true - * mode **Number** default, from existing file, if any - * tmpfileCreated **Function** called when the tmpfile is created -* callback **Function** - -Atomically and asynchronously writes data to a file, replacing the file if it already -exists. data can be a string or a buffer. - -The file is initially named `filename + "." + murmurhex(__filename, process.pid, ++invocations)`. -Note that `require('worker_threads').threadId` is used in addition to `process.pid` if running inside of a worker thread. -If writeFile completes successfully then, if passed the **chown** option it will change -the ownership of the file. Finally it renames the file back to the filename you specified. If -it encounters errors at any of these steps it will attempt to unlink the temporary file and then -pass the error back to the caller. -If multiple writes are concurrently issued to the same file, the write operations are put into a queue and serialized in the order they were called, using Promises. Writes to different files are still executed in parallel. - -If provided, the **chown** option requires both **uid** and **gid** properties or else -you'll get an error. If **chown** is not specified it will default to using -the owner of the previous file. To prevent chown from being ran you can -also pass `false`, in which case the file will be created with the current user's credentials. - -If **mode** is not specified, it will default to using the permissions from -an existing file, if any. Expicitly setting this to `false` remove this default, resulting -in a file created with the system default permissions. - -If options is a String, it's assumed to be the **encoding** option. The **encoding** option is ignored if **data** is a buffer. It defaults to 'utf8'. - -If the **fsync** option is **false**, writeFile will skip the final fsync call. - -If the **tmpfileCreated** option is specified it will be called with the name of the tmpfile when created. - -Example: - -```javascript -writeFileAtomic('message.txt', 'Hello Node', {chown:{uid:100,gid:50}}, function (err) { - if (err) throw err; - console.log('It\'s saved!'); -}); -``` - -This function also supports async/await: - -```javascript -(async () => { - try { - await writeFileAtomic('message.txt', 'Hello Node', {chown:{uid:100,gid:50}}); - console.log('It\'s saved!'); - } catch (err) { - console.error(err); - process.exit(1); - } -})(); -``` - -### var writeFileAtomicSync = require('write-file-atomic').sync
writeFileAtomicSync(filename, data, [options]) - -The synchronous version of **writeFileAtomic**. diff --git a/gateway/node_modules/write-file-atomic/index.js b/gateway/node_modules/write-file-atomic/index.js deleted file mode 100644 index df5b72a..0000000 --- a/gateway/node_modules/write-file-atomic/index.js +++ /dev/null @@ -1,259 +0,0 @@ -'use strict' -module.exports = writeFile -module.exports.sync = writeFileSync -module.exports._getTmpname = getTmpname // for testing -module.exports._cleanupOnExit = cleanupOnExit - -const fs = require('fs') -const MurmurHash3 = require('imurmurhash') -const onExit = require('signal-exit') -const path = require('path') -const isTypedArray = require('is-typedarray') -const typedArrayToBuffer = require('typedarray-to-buffer') -const { promisify } = require('util') -const activeFiles = {} - -// if we run inside of a worker_thread, `process.pid` is not unique -/* istanbul ignore next */ -const threadId = (function getId () { - try { - const workerThreads = require('worker_threads') - - /// if we are in main thread, this is set to `0` - return workerThreads.threadId - } catch (e) { - // worker_threads are not available, fallback to 0 - return 0 - } -})() - -let invocations = 0 -function getTmpname (filename) { - return filename + '.' + - MurmurHash3(__filename) - .hash(String(process.pid)) - .hash(String(threadId)) - .hash(String(++invocations)) - .result() -} - -function cleanupOnExit (tmpfile) { - return () => { - try { - fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile) - } catch (_) {} - } -} - -function serializeActiveFile (absoluteName) { - return new Promise(resolve => { - // make a queue if it doesn't already exist - if (!activeFiles[absoluteName]) activeFiles[absoluteName] = [] - - activeFiles[absoluteName].push(resolve) // add this job to the queue - if (activeFiles[absoluteName].length === 1) resolve() // kick off the first one - }) -} - -// https://github.com/isaacs/node-graceful-fs/blob/master/polyfills.js#L315-L342 -function isChownErrOk (err) { - if (err.code === 'ENOSYS') { - return true - } - - const nonroot = !process.getuid || process.getuid() !== 0 - if (nonroot) { - if (err.code === 'EINVAL' || err.code === 'EPERM') { - return true - } - } - - return false -} - -async function writeFileAsync (filename, data, options = {}) { - if (typeof options === 'string') { - options = { encoding: options } - } - - let fd - let tmpfile - /* istanbul ignore next -- The closure only gets called when onExit triggers */ - const removeOnExitHandler = onExit(cleanupOnExit(() => tmpfile)) - const absoluteName = path.resolve(filename) - - try { - await serializeActiveFile(absoluteName) - const truename = await promisify(fs.realpath)(filename).catch(() => filename) - tmpfile = getTmpname(truename) - - if (!options.mode || !options.chown) { - // Either mode or chown is not explicitly set - // Default behavior is to copy it from original file - const stats = await promisify(fs.stat)(truename).catch(() => {}) - if (stats) { - if (options.mode == null) { - options.mode = stats.mode - } - - if (options.chown == null && process.getuid) { - options.chown = { uid: stats.uid, gid: stats.gid } - } - } - } - - fd = await promisify(fs.open)(tmpfile, 'w', options.mode) - if (options.tmpfileCreated) { - await options.tmpfileCreated(tmpfile) - } - if (isTypedArray(data)) { - data = typedArrayToBuffer(data) - } - if (Buffer.isBuffer(data)) { - await promisify(fs.write)(fd, data, 0, data.length, 0) - } else if (data != null) { - await promisify(fs.write)(fd, String(data), 0, String(options.encoding || 'utf8')) - } - - if (options.fsync !== false) { - await promisify(fs.fsync)(fd) - } - - await promisify(fs.close)(fd) - fd = null - - if (options.chown) { - await promisify(fs.chown)(tmpfile, options.chown.uid, options.chown.gid).catch(err => { - if (!isChownErrOk(err)) { - throw err - } - }) - } - - if (options.mode) { - await promisify(fs.chmod)(tmpfile, options.mode).catch(err => { - if (!isChownErrOk(err)) { - throw err - } - }) - } - - await promisify(fs.rename)(tmpfile, truename) - } finally { - if (fd) { - await promisify(fs.close)(fd).catch( - /* istanbul ignore next */ - () => {} - ) - } - removeOnExitHandler() - await promisify(fs.unlink)(tmpfile).catch(() => {}) - activeFiles[absoluteName].shift() // remove the element added by serializeSameFile - if (activeFiles[absoluteName].length > 0) { - activeFiles[absoluteName][0]() // start next job if one is pending - } else delete activeFiles[absoluteName] - } -} - -function writeFile (filename, data, options, callback) { - if (options instanceof Function) { - callback = options - options = {} - } - - const promise = writeFileAsync(filename, data, options) - if (callback) { - promise.then(callback, callback) - } - - return promise -} - -function writeFileSync (filename, data, options) { - if (typeof options === 'string') options = { encoding: options } - else if (!options) options = {} - try { - filename = fs.realpathSync(filename) - } catch (ex) { - // it's ok, it'll happen on a not yet existing file - } - const tmpfile = getTmpname(filename) - - if (!options.mode || !options.chown) { - // Either mode or chown is not explicitly set - // Default behavior is to copy it from original file - try { - const stats = fs.statSync(filename) - options = Object.assign({}, options) - if (!options.mode) { - options.mode = stats.mode - } - if (!options.chown && process.getuid) { - options.chown = { uid: stats.uid, gid: stats.gid } - } - } catch (ex) { - // ignore stat errors - } - } - - let fd - const cleanup = cleanupOnExit(tmpfile) - const removeOnExitHandler = onExit(cleanup) - - let threw = true - try { - fd = fs.openSync(tmpfile, 'w', options.mode || 0o666) - if (options.tmpfileCreated) { - options.tmpfileCreated(tmpfile) - } - if (isTypedArray(data)) { - data = typedArrayToBuffer(data) - } - if (Buffer.isBuffer(data)) { - fs.writeSync(fd, data, 0, data.length, 0) - } else if (data != null) { - fs.writeSync(fd, String(data), 0, String(options.encoding || 'utf8')) - } - if (options.fsync !== false) { - fs.fsyncSync(fd) - } - - fs.closeSync(fd) - fd = null - - if (options.chown) { - try { - fs.chownSync(tmpfile, options.chown.uid, options.chown.gid) - } catch (err) { - if (!isChownErrOk(err)) { - throw err - } - } - } - - if (options.mode) { - try { - fs.chmodSync(tmpfile, options.mode) - } catch (err) { - if (!isChownErrOk(err)) { - throw err - } - } - } - - fs.renameSync(tmpfile, filename) - threw = false - } finally { - if (fd) { - try { - fs.closeSync(fd) - } catch (ex) { - // ignore close errors at this stage, error may have closed fd already. - } - } - removeOnExitHandler() - if (threw) { - cleanup() - } - } -} diff --git a/gateway/node_modules/write-file-atomic/package.json b/gateway/node_modules/write-file-atomic/package.json deleted file mode 100644 index 98a29a0..0000000 --- a/gateway/node_modules/write-file-atomic/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "write-file-atomic", - "version": "3.0.3", - "description": "Write files in an atomic fashion w/configurable ownership", - "main": "index.js", - "scripts": { - "test": "tap", - "posttest": "npm run lint", - "lint": "standard", - "postlint": "rimraf chowncopy good nochmod nochown nofsync nofsyncopt noopen norename \"norename nounlink\" nowrite", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags" - }, - "repository": { - "type": "git", - "url": "git://github.com/npm/write-file-atomic.git" - }, - "keywords": [ - "writeFile", - "atomic" - ], - "author": "Rebecca Turner (http://re-becca.org)", - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/write-file-atomic/issues" - }, - "homepage": "https://github.com/npm/write-file-atomic", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - }, - "devDependencies": { - "mkdirp": "^0.5.1", - "require-inject": "^1.4.4", - "rimraf": "^2.6.3", - "standard": "^14.3.1", - "tap": "^14.10.6" - }, - "files": [ - "index.js" - ], - "tap": { - "100": true - } -} diff --git a/gateway/node_modules/ws/LICENSE b/gateway/node_modules/ws/LICENSE deleted file mode 100644 index a145cd1..0000000 --- a/gateway/node_modules/ws/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011 Einar Otto Stangvik - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/gateway/node_modules/ws/README.md b/gateway/node_modules/ws/README.md deleted file mode 100644 index 2b5c611..0000000 --- a/gateway/node_modules/ws/README.md +++ /dev/null @@ -1,449 +0,0 @@ -# ws: a Node.js WebSocket library - -[![Version npm](https://img.shields.io/npm/v/ws.svg?logo=npm)](https://www.npmjs.com/package/ws) -[![Linux Build](https://img.shields.io/travis/websockets/ws/master.svg?logo=travis)](https://travis-ci.org/websockets/ws) -[![Windows Build](https://img.shields.io/appveyor/ci/lpinca/ws/master.svg?logo=appveyor)](https://ci.appveyor.com/project/lpinca/ws) -[![Coverage Status](https://img.shields.io/coveralls/websockets/ws/master.svg)](https://coveralls.io/github/websockets/ws) - -ws is a simple to use, blazing fast, and thoroughly tested WebSocket client and -server implementation. - -Passes the quite extensive Autobahn test suite: [server][server-report], -[client][client-report]. - -**Note**: This module does not work in the browser. The client in the docs is a -reference to a back end with the role of a client in the WebSocket -communication. Browser clients must use the native -[`WebSocket`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) -object. To make the same code work seamlessly on Node.js and the browser, you -can use one of the many wrappers available on npm, like -[isomorphic-ws](https://github.com/heineiuo/isomorphic-ws). - -## Table of Contents - -- [Protocol support](#protocol-support) -- [Installing](#installing) - - [Opt-in for performance and spec compliance](#opt-in-for-performance-and-spec-compliance) -- [API docs](#api-docs) -- [WebSocket compression](#websocket-compression) -- [Usage examples](#usage-examples) - - [Sending and receiving text data](#sending-and-receiving-text-data) - - [Sending binary data](#sending-binary-data) - - [Simple server](#simple-server) - - [External HTTP/S server](#external-https-server) - - [Multiple servers sharing a single HTTP/S server](#multiple-servers-sharing-a-single-https-server) - - [Server broadcast](#server-broadcast) - - [echo.websocket.org demo](#echowebsocketorg-demo) - - [Other examples](#other-examples) -- [Error handling best practices](#error-handling-best-practices) -- [FAQ](#faq) - - [How to get the IP address of the client?](#how-to-get-the-ip-address-of-the-client) - - [How to detect and close broken connections?](#how-to-detect-and-close-broken-connections) - - [How to connect via a proxy?](#how-to-connect-via-a-proxy) -- [Changelog](#changelog) -- [License](#license) - -## Protocol support - -- **HyBi drafts 07-12** (Use the option `protocolVersion: 8`) -- **HyBi drafts 13-17** (Current default, alternatively option - `protocolVersion: 13`) - -## Installing - -``` -npm install ws -``` - -### Opt-in for performance and spec compliance - -There are 2 optional modules that can be installed along side with the ws -module. These modules are binary addons which improve certain operations. -Prebuilt binaries are available for the most popular platforms so you don't -necessarily need to have a C++ compiler installed on your machine. - -- `npm install --save-optional bufferutil`: Allows to efficiently perform - operations such as masking and unmasking the data payload of the WebSocket - frames. -- `npm install --save-optional utf-8-validate`: Allows to efficiently check if a - message contains valid UTF-8 as required by the spec. - -## API docs - -See [`/doc/ws.md`](./doc/ws.md) for Node.js-like docs for the ws classes. - -## WebSocket compression - -ws supports the [permessage-deflate extension][permessage-deflate] which enables -the client and server to negotiate a compression algorithm and its parameters, -and then selectively apply it to the data payloads of each WebSocket message. - -The extension is disabled by default on the server and enabled by default on the -client. It adds a significant overhead in terms of performance and memory -consumption so we suggest to enable it only if it is really needed. - -Note that Node.js has a variety of issues with high-performance compression, -where increased concurrency, especially on Linux, can lead to [catastrophic -memory fragmentation][node-zlib-bug] and slow performance. If you intend to use -permessage-deflate in production, it is worthwhile to set up a test -representative of your workload and ensure Node.js/zlib will handle it with -acceptable performance and memory usage. - -Tuning of permessage-deflate can be done via the options defined below. You can -also use `zlibDeflateOptions` and `zlibInflateOptions`, which is passed directly -into the creation of [raw deflate/inflate streams][node-zlib-deflaterawdocs]. - -See [the docs][ws-server-options] for more options. - -```js -const WebSocket = require('ws'); - -const wss = new WebSocket.Server({ - port: 8080, - perMessageDeflate: { - zlibDeflateOptions: { - // See zlib defaults. - chunkSize: 1024, - memLevel: 7, - level: 3 - }, - zlibInflateOptions: { - chunkSize: 10 * 1024 - }, - // Other options settable: - clientNoContextTakeover: true, // Defaults to negotiated value. - serverNoContextTakeover: true, // Defaults to negotiated value. - serverMaxWindowBits: 10, // Defaults to negotiated value. - // Below options specified as default values. - concurrencyLimit: 10, // Limits zlib concurrency for perf. - threshold: 1024 // Size (in bytes) below which messages - // should not be compressed. - } -}); -``` - -The client will only use the extension if it is supported and enabled on the -server. To always disable the extension on the client set the -`perMessageDeflate` option to `false`. - -```js -const WebSocket = require('ws'); - -const ws = new WebSocket('ws://www.host.com/path', { - perMessageDeflate: false -}); -``` - -## Usage examples - -### Sending and receiving text data - -```js -const WebSocket = require('ws'); - -const ws = new WebSocket('ws://www.host.com/path'); - -ws.on('open', function open() { - ws.send('something'); -}); - -ws.on('message', function incoming(data) { - console.log(data); -}); -``` - -### Sending binary data - -```js -const WebSocket = require('ws'); - -const ws = new WebSocket('ws://www.host.com/path'); - -ws.on('open', function open() { - const array = new Float32Array(5); - - for (var i = 0; i < array.length; ++i) { - array[i] = i / 2; - } - - ws.send(array); -}); -``` - -### Simple server - -```js -const WebSocket = require('ws'); - -const wss = new WebSocket.Server({ port: 8080 }); - -wss.on('connection', function connection(ws) { - ws.on('message', function incoming(message) { - console.log('received: %s', message); - }); - - ws.send('something'); -}); -``` - -### External HTTP/S server - -```js -const fs = require('fs'); -const https = require('https'); -const WebSocket = require('ws'); - -const server = new https.createServer({ - cert: fs.readFileSync('/path/to/cert.pem'), - key: fs.readFileSync('/path/to/key.pem') -}); -const wss = new WebSocket.Server({ server }); - -wss.on('connection', function connection(ws) { - ws.on('message', function incoming(message) { - console.log('received: %s', message); - }); - - ws.send('something'); -}); - -server.listen(8080); -``` - -### Multiple servers sharing a single HTTP/S server - -```js -const http = require('http'); -const WebSocket = require('ws'); - -const server = http.createServer(); -const wss1 = new WebSocket.Server({ noServer: true }); -const wss2 = new WebSocket.Server({ noServer: true }); - -wss1.on('connection', function connection(ws) { - // ... -}); - -wss2.on('connection', function connection(ws) { - // ... -}); - -server.on('upgrade', function upgrade(request, socket, head) { - const pathname = url.parse(request.url).pathname; - - if (pathname === '/foo') { - wss1.handleUpgrade(request, socket, head, function done(ws) { - wss1.emit('connection', ws, request); - }); - } else if (pathname === '/bar') { - wss2.handleUpgrade(request, socket, head, function done(ws) { - wss2.emit('connection', ws, request); - }); - } else { - socket.destroy(); - } -}); - -server.listen(8080); -``` - -### Server broadcast - -```js -const WebSocket = require('ws'); - -const wss = new WebSocket.Server({ port: 8080 }); - -// Broadcast to all. -wss.broadcast = function broadcast(data) { - wss.clients.forEach(function each(client) { - if (client.readyState === WebSocket.OPEN) { - client.send(data); - } - }); -}; - -wss.on('connection', function connection(ws) { - ws.on('message', function incoming(data) { - // Broadcast to everyone else. - wss.clients.forEach(function each(client) { - if (client !== ws && client.readyState === WebSocket.OPEN) { - client.send(data); - } - }); - }); -}); -``` - -### echo.websocket.org demo - -```js -const WebSocket = require('ws'); - -const ws = new WebSocket('wss://echo.websocket.org/', { - origin: 'https://websocket.org' -}); - -ws.on('open', function open() { - console.log('connected'); - ws.send(Date.now()); -}); - -ws.on('close', function close() { - console.log('disconnected'); -}); - -ws.on('message', function incoming(data) { - console.log(`Roundtrip time: ${Date.now() - data} ms`); - - setTimeout(function timeout() { - ws.send(Date.now()); - }, 500); -}); -``` - -### Other examples - -For a full example with a browser client communicating with a ws server, see the -examples folder. - -Otherwise, see the test cases. - -## Error handling best practices - -```js -// If the WebSocket is closed before the following send is attempted -ws.send('something'); - -// Errors (both immediate and async write errors) can be detected in an optional -// callback. The callback is also the only way of being notified that data has -// actually been sent. -ws.send('something', function ack(error) { - // If error is not defined, the send has been completed, otherwise the error - // object will indicate what failed. -}); - -// Immediate errors can also be handled with `try...catch`, but **note** that -// since sends are inherently asynchronous, socket write failures will *not* be -// captured when this technique is used. -try { - ws.send('something'); -} catch (e) { - /* handle error */ -} -``` - -## FAQ - -### How to get the IP address of the client? - -The remote IP address can be obtained from the raw socket. - -```js -const WebSocket = require('ws'); - -const wss = new WebSocket.Server({ port: 8080 }); - -wss.on('connection', function connection(ws, req) { - const ip = req.connection.remoteAddress; -}); -``` - -When the server runs behind a proxy like NGINX, the de-facto standard is to use -the `X-Forwarded-For` header. - -```js -wss.on('connection', function connection(ws, req) { - const ip = req.headers['x-forwarded-for'].split(/\s*,\s*/)[0]; -}); -``` - -### How to detect and close broken connections? - -Sometimes the link between the server and the client can be interrupted in a way -that keeps both the server and the client unaware of the broken state of the -connection (e.g. when pulling the cord). - -In these cases ping messages can be used as a means to verify that the remote -endpoint is still responsive. - -```js -const WebSocket = require('ws'); - -function noop() {} - -function heartbeat() { - this.isAlive = true; -} - -const wss = new WebSocket.Server({ port: 8080 }); - -wss.on('connection', function connection(ws) { - ws.isAlive = true; - ws.on('pong', heartbeat); -}); - -const interval = setInterval(function ping() { - wss.clients.forEach(function each(ws) { - if (ws.isAlive === false) return ws.terminate(); - - ws.isAlive = false; - ws.ping(noop); - }); -}, 30000); -``` - -Pong messages are automatically sent in response to ping messages as required by -the spec. - -Just like the server example above your clients might as well lose connection -without knowing it. You might want to add a ping listener on your clients to -prevent that. A simple implementation would be: - -```js -const WebSocket = require('ws'); - -function heartbeat() { - clearTimeout(this.pingTimeout); - - // Use `WebSocket#terminate()` and not `WebSocket#close()`. Delay should be - // equal to the interval at which your server sends out pings plus a - // conservative assumption of the latency. - this.pingTimeout = setTimeout(() => { - this.terminate(); - }, 30000 + 1000); -} - -const client = new WebSocket('wss://echo.websocket.org/'); - -client.on('open', heartbeat); -client.on('ping', heartbeat); -client.on('close', function clear() { - clearTimeout(this.pingTimeout); -}); -``` - -### How to connect via a proxy? - -Use a custom `http.Agent` implementation like [https-proxy-agent][] or -[socks-proxy-agent][]. - -## Changelog - -We're using the GitHub [releases][changelog] for changelog entries. - -## License - -[MIT](LICENSE) - -[https-proxy-agent]: https://github.com/TooTallNate/node-https-proxy-agent -[socks-proxy-agent]: https://github.com/TooTallNate/node-socks-proxy-agent -[client-report]: http://websockets.github.io/ws/autobahn/clients/ -[server-report]: http://websockets.github.io/ws/autobahn/servers/ -[permessage-deflate]: https://tools.ietf.org/html/rfc7692 -[changelog]: https://github.com/websockets/ws/releases -[node-zlib-bug]: https://github.com/nodejs/node/issues/8871 -[node-zlib-deflaterawdocs]: - https://nodejs.org/api/zlib.html#zlib_zlib_createdeflateraw_options -[ws-server-options]: - https://github.com/websockets/ws/blob/master/doc/ws.md#new-websocketserveroptions-callback diff --git a/gateway/node_modules/ws/browser.js b/gateway/node_modules/ws/browser.js deleted file mode 100644 index 7820779..0000000 --- a/gateway/node_modules/ws/browser.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -module.exports = function() { - throw new Error( - 'ws does not work in the browser. Browser clients must use the native ' + - 'WebSocket object' - ); -}; diff --git a/gateway/node_modules/ws/index.js b/gateway/node_modules/ws/index.js deleted file mode 100644 index b8d6be1..0000000 --- a/gateway/node_modules/ws/index.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -const WebSocket = require('./lib/websocket'); - -WebSocket.Server = require('./lib/websocket-server'); -WebSocket.Receiver = require('./lib/receiver'); -WebSocket.Sender = require('./lib/sender'); - -module.exports = WebSocket; diff --git a/gateway/node_modules/ws/lib/buffer-util.js b/gateway/node_modules/ws/lib/buffer-util.js deleted file mode 100644 index 8fcb88f..0000000 --- a/gateway/node_modules/ws/lib/buffer-util.js +++ /dev/null @@ -1,144 +0,0 @@ -'use strict'; - -const { EMPTY_BUFFER } = require('./constants'); - -/** - * Merges an array of buffers into a new buffer. - * - * @param {Buffer[]} list The array of buffers to concat - * @param {Number} totalLength The total length of buffers in the list - * @return {Buffer} The resulting buffer - * @public - */ -function concat(list, totalLength) { - if (list.length === 0) return EMPTY_BUFFER; - if (list.length === 1) return list[0]; - - const target = Buffer.allocUnsafe(totalLength); - var offset = 0; - - for (var i = 0; i < list.length; i++) { - const buf = list[i]; - buf.copy(target, offset); - offset += buf.length; - } - - return target; -} - -/** - * Masks a buffer using the given mask. - * - * @param {Buffer} source The buffer to mask - * @param {Buffer} mask The mask to use - * @param {Buffer} output The buffer where to store the result - * @param {Number} offset The offset at which to start writing - * @param {Number} length The number of bytes to mask. - * @public - */ -function _mask(source, mask, output, offset, length) { - for (var i = 0; i < length; i++) { - output[offset + i] = source[i] ^ mask[i & 3]; - } -} - -/** - * Unmasks a buffer using the given mask. - * - * @param {Buffer} buffer The buffer to unmask - * @param {Buffer} mask The mask to use - * @public - */ -function _unmask(buffer, mask) { - // Required until https://github.com/nodejs/node/issues/9006 is resolved. - const length = buffer.length; - for (var i = 0; i < length; i++) { - buffer[i] ^= mask[i & 3]; - } -} - -/** - * Converts a buffer to an `ArrayBuffer`. - * - * @param {Buffer} buf The buffer to convert - * @return {ArrayBuffer} Converted buffer - * @public - */ -function toArrayBuffer(buf) { - if (buf.byteLength === buf.buffer.byteLength) { - return buf.buffer; - } - - return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); -} - -/** - * Converts `data` to a `Buffer`. - * - * @param {*} data The data to convert - * @return {Buffer} The buffer - * @throws {TypeError} - * @public - */ -function toBuffer(data) { - toBuffer.readOnly = true; - - if (Buffer.isBuffer(data)) return data; - - var buf; - - if (data instanceof ArrayBuffer) { - buf = Buffer.from(data); - } else if (ArrayBuffer.isView(data)) { - buf = viewToBuffer(data); - } else { - buf = Buffer.from(data); - toBuffer.readOnly = false; - } - - return buf; -} - -/** - * Converts an `ArrayBuffer` view into a buffer. - * - * @param {(DataView|TypedArray)} view The view to convert - * @return {Buffer} Converted view - * @private - */ -function viewToBuffer(view) { - const buf = Buffer.from(view.buffer); - - if (view.byteLength !== view.buffer.byteLength) { - return buf.slice(view.byteOffset, view.byteOffset + view.byteLength); - } - - return buf; -} - -try { - const bufferUtil = require('bufferutil'); - const bu = bufferUtil.BufferUtil || bufferUtil; - - module.exports = { - concat, - mask(source, mask, output, offset, length) { - if (length < 48) _mask(source, mask, output, offset, length); - else bu.mask(source, mask, output, offset, length); - }, - toArrayBuffer, - toBuffer, - unmask(buffer, mask) { - if (buffer.length < 32) _unmask(buffer, mask); - else bu.unmask(buffer, mask); - } - }; -} catch (e) /* istanbul ignore next */ { - module.exports = { - concat, - mask: _mask, - toArrayBuffer, - toBuffer, - unmask: _unmask - }; -} diff --git a/gateway/node_modules/ws/lib/constants.js b/gateway/node_modules/ws/lib/constants.js deleted file mode 100644 index 4082981..0000000 --- a/gateway/node_modules/ws/lib/constants.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = { - BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'], - GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', - kStatusCode: Symbol('status-code'), - kWebSocket: Symbol('websocket'), - EMPTY_BUFFER: Buffer.alloc(0), - NOOP: () => {} -}; diff --git a/gateway/node_modules/ws/lib/event-target.js b/gateway/node_modules/ws/lib/event-target.js deleted file mode 100644 index 44c81d9..0000000 --- a/gateway/node_modules/ws/lib/event-target.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -/** - * Class representing an event. - * - * @private - */ -class Event { - /** - * Create a new `Event`. - * - * @param {String} type The name of the event - * @param {Object} target A reference to the target to which the event was dispatched - */ - constructor(type, target) { - this.target = target; - this.type = type; - } -} - -/** - * Class representing a message event. - * - * @extends Event - * @private - */ -class MessageEvent extends Event { - /** - * Create a new `MessageEvent`. - * - * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data - * @param {WebSocket} target A reference to the target to which the event was dispatched - */ - constructor(data, target) { - super('message', target); - - this.data = data; - } -} - -/** - * Class representing a close event. - * - * @extends Event - * @private - */ -class CloseEvent extends Event { - /** - * Create a new `CloseEvent`. - * - * @param {Number} code The status code explaining why the connection is being closed - * @param {String} reason A human-readable string explaining why the connection is closing - * @param {WebSocket} target A reference to the target to which the event was dispatched - */ - constructor(code, reason, target) { - super('close', target); - - this.wasClean = target._closeFrameReceived && target._closeFrameSent; - this.reason = reason; - this.code = code; - } -} - -/** - * Class representing an open event. - * - * @extends Event - * @private - */ -class OpenEvent extends Event { - /** - * Create a new `OpenEvent`. - * - * @param {WebSocket} target A reference to the target to which the event was dispatched - */ - constructor(target) { - super('open', target); - } -} - -/** - * Class representing an error event. - * - * @extends Event - * @private - */ -class ErrorEvent extends Event { - /** - * Create a new `ErrorEvent`. - * - * @param {Object} error The error that generated this event - * @param {WebSocket} target A reference to the target to which the event was dispatched - */ - constructor(error, target) { - super('error', target); - - this.message = error.message; - this.error = error; - } -} - -/** - * This provides methods for emulating the `EventTarget` interface. It's not - * meant to be used directly. - * - * @mixin - */ -const EventTarget = { - /** - * Register an event listener. - * - * @param {String} method A string representing the event type to listen for - * @param {Function} listener The listener to add - * @public - */ - addEventListener(method, listener) { - if (typeof listener !== 'function') return; - - function onMessage(data) { - listener.call(this, new MessageEvent(data, this)); - } - - function onClose(code, message) { - listener.call(this, new CloseEvent(code, message, this)); - } - - function onError(error) { - listener.call(this, new ErrorEvent(error, this)); - } - - function onOpen() { - listener.call(this, new OpenEvent(this)); - } - - if (method === 'message') { - onMessage._listener = listener; - this.on(method, onMessage); - } else if (method === 'close') { - onClose._listener = listener; - this.on(method, onClose); - } else if (method === 'error') { - onError._listener = listener; - this.on(method, onError); - } else if (method === 'open') { - onOpen._listener = listener; - this.on(method, onOpen); - } else { - this.on(method, listener); - } - }, - - /** - * Remove an event listener. - * - * @param {String} method A string representing the event type to remove - * @param {Function} listener The listener to remove - * @public - */ - removeEventListener(method, listener) { - const listeners = this.listeners(method); - - for (var i = 0; i < listeners.length; i++) { - if (listeners[i] === listener || listeners[i]._listener === listener) { - this.removeListener(method, listeners[i]); - } - } - } -}; - -module.exports = EventTarget; diff --git a/gateway/node_modules/ws/lib/extension.js b/gateway/node_modules/ws/lib/extension.js deleted file mode 100644 index 47096b9..0000000 --- a/gateway/node_modules/ws/lib/extension.js +++ /dev/null @@ -1,222 +0,0 @@ -'use strict'; - -// -// Allowed token characters: -// -// '!', '#', '$', '%', '&', ''', '*', '+', '-', -// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~' -// -// tokenChars[32] === 0 // ' ' -// tokenChars[33] === 1 // '!' -// tokenChars[34] === 0 // '"' -// ... -// -// prettier-ignore -const tokenChars = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31 - 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63 - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127 -]; - -/** - * Adds an offer to the map of extension offers or a parameter to the map of - * parameters. - * - * @param {Object} dest The map of extension offers or parameters - * @param {String} name The extension or parameter name - * @param {(Object|Boolean|String)} elem The extension parameters or the - * parameter value - * @private - */ -function push(dest, name, elem) { - if (Object.prototype.hasOwnProperty.call(dest, name)) dest[name].push(elem); - else dest[name] = [elem]; -} - -/** - * Parses the `Sec-WebSocket-Extensions` header into an object. - * - * @param {String} header The field value of the header - * @return {Object} The parsed object - * @public - */ -function parse(header) { - const offers = {}; - - if (header === undefined || header === '') return offers; - - var params = {}; - var mustUnescape = false; - var isEscaping = false; - var inQuotes = false; - var extensionName; - var paramName; - var start = -1; - var end = -1; - - for (var i = 0; i < header.length; i++) { - const code = header.charCodeAt(i); - - if (extensionName === undefined) { - if (end === -1 && tokenChars[code] === 1) { - if (start === -1) start = i; - } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\t' */) { - if (end === -1 && start !== -1) end = i; - } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) { - if (start === -1) { - throw new SyntaxError(`Unexpected character at index ${i}`); - } - - if (end === -1) end = i; - const name = header.slice(start, end); - if (code === 0x2c) { - push(offers, name, params); - params = {}; - } else { - extensionName = name; - } - - start = end = -1; - } else { - throw new SyntaxError(`Unexpected character at index ${i}`); - } - } else if (paramName === undefined) { - if (end === -1 && tokenChars[code] === 1) { - if (start === -1) start = i; - } else if (code === 0x20 || code === 0x09) { - if (end === -1 && start !== -1) end = i; - } else if (code === 0x3b || code === 0x2c) { - if (start === -1) { - throw new SyntaxError(`Unexpected character at index ${i}`); - } - - if (end === -1) end = i; - push(params, header.slice(start, end), true); - if (code === 0x2c) { - push(offers, extensionName, params); - params = {}; - extensionName = undefined; - } - - start = end = -1; - } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) { - paramName = header.slice(start, i); - start = end = -1; - } else { - throw new SyntaxError(`Unexpected character at index ${i}`); - } - } else { - // - // The value of a quoted-string after unescaping must conform to the - // token ABNF, so only token characters are valid. - // Ref: https://tools.ietf.org/html/rfc6455#section-9.1 - // - if (isEscaping) { - if (tokenChars[code] !== 1) { - throw new SyntaxError(`Unexpected character at index ${i}`); - } - if (start === -1) start = i; - else if (!mustUnescape) mustUnescape = true; - isEscaping = false; - } else if (inQuotes) { - if (tokenChars[code] === 1) { - if (start === -1) start = i; - } else if (code === 0x22 /* '"' */ && start !== -1) { - inQuotes = false; - end = i; - } else if (code === 0x5c /* '\' */) { - isEscaping = true; - } else { - throw new SyntaxError(`Unexpected character at index ${i}`); - } - } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) { - inQuotes = true; - } else if (end === -1 && tokenChars[code] === 1) { - if (start === -1) start = i; - } else if (start !== -1 && (code === 0x20 || code === 0x09)) { - if (end === -1) end = i; - } else if (code === 0x3b || code === 0x2c) { - if (start === -1) { - throw new SyntaxError(`Unexpected character at index ${i}`); - } - - if (end === -1) end = i; - var value = header.slice(start, end); - if (mustUnescape) { - value = value.replace(/\\/g, ''); - mustUnescape = false; - } - push(params, paramName, value); - if (code === 0x2c) { - push(offers, extensionName, params); - params = {}; - extensionName = undefined; - } - - paramName = undefined; - start = end = -1; - } else { - throw new SyntaxError(`Unexpected character at index ${i}`); - } - } - } - - if (start === -1 || inQuotes) { - throw new SyntaxError('Unexpected end of input'); - } - - if (end === -1) end = i; - const token = header.slice(start, end); - if (extensionName === undefined) { - push(offers, token, {}); - } else { - if (paramName === undefined) { - push(params, token, true); - } else if (mustUnescape) { - push(params, paramName, token.replace(/\\/g, '')); - } else { - push(params, paramName, token); - } - push(offers, extensionName, params); - } - - return offers; -} - -/** - * Builds the `Sec-WebSocket-Extensions` header field value. - * - * @param {Object} extensions The map of extensions and parameters to format - * @return {String} A string representing the given object - * @public - */ -function format(extensions) { - return Object.keys(extensions) - .map((extension) => { - var configurations = extensions[extension]; - if (!Array.isArray(configurations)) configurations = [configurations]; - return configurations - .map((params) => { - return [extension] - .concat( - Object.keys(params).map((k) => { - var values = params[k]; - if (!Array.isArray(values)) values = [values]; - return values - .map((v) => (v === true ? k : `${k}=${v}`)) - .join('; '); - }) - ) - .join('; '); - }) - .join(', '); - }) - .join(', '); -} - -module.exports = { format, parse }; diff --git a/gateway/node_modules/ws/lib/permessage-deflate.js b/gateway/node_modules/ws/lib/permessage-deflate.js deleted file mode 100644 index 9c88764..0000000 --- a/gateway/node_modules/ws/lib/permessage-deflate.js +++ /dev/null @@ -1,502 +0,0 @@ -'use strict'; - -const Limiter = require('async-limiter'); -const zlib = require('zlib'); - -const bufferUtil = require('./buffer-util'); -const { kStatusCode, NOOP } = require('./constants'); - -const TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]); -const EMPTY_BLOCK = Buffer.from([0x00]); - -const kPerMessageDeflate = Symbol('permessage-deflate'); -const kTotalLength = Symbol('total-length'); -const kCallback = Symbol('callback'); -const kBuffers = Symbol('buffers'); -const kError = Symbol('error'); - -// -// We limit zlib concurrency, which prevents severe memory fragmentation -// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913 -// and https://github.com/websockets/ws/issues/1202 -// -// Intentionally global; it's the global thread pool that's an issue. -// -let zlibLimiter; - -/** - * permessage-deflate implementation. - */ -class PerMessageDeflate { - /** - * Creates a PerMessageDeflate instance. - * - * @param {Object} options Configuration options - * @param {Boolean} options.serverNoContextTakeover Request/accept disabling - * of server context takeover - * @param {Boolean} options.clientNoContextTakeover Advertise/acknowledge - * disabling of client context takeover - * @param {(Boolean|Number)} options.serverMaxWindowBits Request/confirm the - * use of a custom server window size - * @param {(Boolean|Number)} options.clientMaxWindowBits Advertise support - * for, or request, a custom client window size - * @param {Object} options.zlibDeflateOptions Options to pass to zlib on deflate - * @param {Object} options.zlibInflateOptions Options to pass to zlib on inflate - * @param {Number} options.threshold Size (in bytes) below which messages - * should not be compressed - * @param {Number} options.concurrencyLimit The number of concurrent calls to - * zlib - * @param {Boolean} isServer Create the instance in either server or client - * mode - * @param {Number} maxPayload The maximum allowed message length - */ - constructor(options, isServer, maxPayload) { - this._maxPayload = maxPayload | 0; - this._options = options || {}; - this._threshold = - this._options.threshold !== undefined ? this._options.threshold : 1024; - this._isServer = !!isServer; - this._deflate = null; - this._inflate = null; - - this.params = null; - - if (!zlibLimiter) { - const concurrency = - this._options.concurrencyLimit !== undefined - ? this._options.concurrencyLimit - : 10; - zlibLimiter = new Limiter({ concurrency }); - } - } - - /** - * @type {String} - */ - static get extensionName() { - return 'permessage-deflate'; - } - - /** - * Create an extension negotiation offer. - * - * @return {Object} Extension parameters - * @public - */ - offer() { - const params = {}; - - if (this._options.serverNoContextTakeover) { - params.server_no_context_takeover = true; - } - if (this._options.clientNoContextTakeover) { - params.client_no_context_takeover = true; - } - if (this._options.serverMaxWindowBits) { - params.server_max_window_bits = this._options.serverMaxWindowBits; - } - if (this._options.clientMaxWindowBits) { - params.client_max_window_bits = this._options.clientMaxWindowBits; - } else if (this._options.clientMaxWindowBits == null) { - params.client_max_window_bits = true; - } - - return params; - } - - /** - * Accept an extension negotiation offer/response. - * - * @param {Array} configurations The extension negotiation offers/reponse - * @return {Object} Accepted configuration - * @public - */ - accept(configurations) { - configurations = this.normalizeParams(configurations); - - this.params = this._isServer - ? this.acceptAsServer(configurations) - : this.acceptAsClient(configurations); - - return this.params; - } - - /** - * Releases all resources used by the extension. - * - * @public - */ - cleanup() { - if (this._inflate) { - this._inflate.close(); - this._inflate = null; - } - - if (this._deflate) { - this._deflate.close(); - this._deflate = null; - } - } - - /** - * Accept an extension negotiation offer. - * - * @param {Array} offers The extension negotiation offers - * @return {Object} Accepted configuration - * @private - */ - acceptAsServer(offers) { - const opts = this._options; - const accepted = offers.find((params) => { - if ( - (opts.serverNoContextTakeover === false && - params.server_no_context_takeover) || - (params.server_max_window_bits && - (opts.serverMaxWindowBits === false || - (typeof opts.serverMaxWindowBits === 'number' && - opts.serverMaxWindowBits > params.server_max_window_bits))) || - (typeof opts.clientMaxWindowBits === 'number' && - !params.client_max_window_bits) - ) { - return false; - } - - return true; - }); - - if (!accepted) { - throw new Error('None of the extension offers can be accepted'); - } - - if (opts.serverNoContextTakeover) { - accepted.server_no_context_takeover = true; - } - if (opts.clientNoContextTakeover) { - accepted.client_no_context_takeover = true; - } - if (typeof opts.serverMaxWindowBits === 'number') { - accepted.server_max_window_bits = opts.serverMaxWindowBits; - } - if (typeof opts.clientMaxWindowBits === 'number') { - accepted.client_max_window_bits = opts.clientMaxWindowBits; - } else if ( - accepted.client_max_window_bits === true || - opts.clientMaxWindowBits === false - ) { - delete accepted.client_max_window_bits; - } - - return accepted; - } - - /** - * Accept the extension negotiation response. - * - * @param {Array} response The extension negotiation response - * @return {Object} Accepted configuration - * @private - */ - acceptAsClient(response) { - const params = response[0]; - - if ( - this._options.clientNoContextTakeover === false && - params.client_no_context_takeover - ) { - throw new Error('Unexpected parameter "client_no_context_takeover"'); - } - - if (!params.client_max_window_bits) { - if (typeof this._options.clientMaxWindowBits === 'number') { - params.client_max_window_bits = this._options.clientMaxWindowBits; - } - } else if ( - this._options.clientMaxWindowBits === false || - (typeof this._options.clientMaxWindowBits === 'number' && - params.client_max_window_bits > this._options.clientMaxWindowBits) - ) { - throw new Error( - 'Unexpected or invalid parameter "client_max_window_bits"' - ); - } - - return params; - } - - /** - * Normalize parameters. - * - * @param {Array} configurations The extension negotiation offers/reponse - * @return {Array} The offers/response with normalized parameters - * @private - */ - normalizeParams(configurations) { - configurations.forEach((params) => { - Object.keys(params).forEach((key) => { - var value = params[key]; - - if (value.length > 1) { - throw new Error(`Parameter "${key}" must have only a single value`); - } - - value = value[0]; - - if (key === 'client_max_window_bits') { - if (value !== true) { - const num = +value; - if (!Number.isInteger(num) || num < 8 || num > 15) { - throw new TypeError( - `Invalid value for parameter "${key}": ${value}` - ); - } - value = num; - } else if (!this._isServer) { - throw new TypeError( - `Invalid value for parameter "${key}": ${value}` - ); - } - } else if (key === 'server_max_window_bits') { - const num = +value; - if (!Number.isInteger(num) || num < 8 || num > 15) { - throw new TypeError( - `Invalid value for parameter "${key}": ${value}` - ); - } - value = num; - } else if ( - key === 'client_no_context_takeover' || - key === 'server_no_context_takeover' - ) { - if (value !== true) { - throw new TypeError( - `Invalid value for parameter "${key}": ${value}` - ); - } - } else { - throw new Error(`Unknown parameter "${key}"`); - } - - params[key] = value; - }); - }); - - return configurations; - } - - /** - * Decompress data. Concurrency limited by async-limiter. - * - * @param {Buffer} data Compressed data - * @param {Boolean} fin Specifies whether or not this is the last fragment - * @param {Function} callback Callback - * @public - */ - decompress(data, fin, callback) { - zlibLimiter.push((done) => { - this._decompress(data, fin, (err, result) => { - done(); - callback(err, result); - }); - }); - } - - /** - * Compress data. Concurrency limited by async-limiter. - * - * @param {Buffer} data Data to compress - * @param {Boolean} fin Specifies whether or not this is the last fragment - * @param {Function} callback Callback - * @public - */ - compress(data, fin, callback) { - zlibLimiter.push((done) => { - this._compress(data, fin, (err, result) => { - done(); - callback(err, result); - }); - }); - } - - /** - * Decompress data. - * - * @param {Buffer} data Compressed data - * @param {Boolean} fin Specifies whether or not this is the last fragment - * @param {Function} callback Callback - * @private - */ - _decompress(data, fin, callback) { - const endpoint = this._isServer ? 'client' : 'server'; - - if (!this._inflate) { - const key = `${endpoint}_max_window_bits`; - const windowBits = - typeof this.params[key] !== 'number' - ? zlib.Z_DEFAULT_WINDOWBITS - : this.params[key]; - - this._inflate = zlib.createInflateRaw( - Object.assign({}, this._options.zlibInflateOptions, { windowBits }) - ); - this._inflate[kPerMessageDeflate] = this; - this._inflate[kTotalLength] = 0; - this._inflate[kBuffers] = []; - this._inflate.on('error', inflateOnError); - this._inflate.on('data', inflateOnData); - } - - this._inflate[kCallback] = callback; - - this._inflate.write(data); - if (fin) this._inflate.write(TRAILER); - - this._inflate.flush(() => { - const err = this._inflate[kError]; - - if (err) { - this._inflate.close(); - this._inflate = null; - callback(err); - return; - } - - const data = bufferUtil.concat( - this._inflate[kBuffers], - this._inflate[kTotalLength] - ); - - if (fin && this.params[`${endpoint}_no_context_takeover`]) { - this._inflate.close(); - this._inflate = null; - } else { - this._inflate[kTotalLength] = 0; - this._inflate[kBuffers] = []; - } - - callback(null, data); - }); - } - - /** - * Compress data. - * - * @param {Buffer} data Data to compress - * @param {Boolean} fin Specifies whether or not this is the last fragment - * @param {Function} callback Callback - * @private - */ - _compress(data, fin, callback) { - if (!data || data.length === 0) { - process.nextTick(callback, null, EMPTY_BLOCK); - return; - } - - const endpoint = this._isServer ? 'server' : 'client'; - - if (!this._deflate) { - const key = `${endpoint}_max_window_bits`; - const windowBits = - typeof this.params[key] !== 'number' - ? zlib.Z_DEFAULT_WINDOWBITS - : this.params[key]; - - this._deflate = zlib.createDeflateRaw( - Object.assign({}, this._options.zlibDeflateOptions, { windowBits }) - ); - - this._deflate[kTotalLength] = 0; - this._deflate[kBuffers] = []; - - // - // An `'error'` event is emitted, only on Node.js < 10.0.0, if the - // `zlib.DeflateRaw` instance is closed while data is being processed. - // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong - // time due to an abnormal WebSocket closure. - // - this._deflate.on('error', NOOP); - this._deflate.on('data', deflateOnData); - } - - this._deflate.write(data); - this._deflate.flush(zlib.Z_SYNC_FLUSH, () => { - if (!this._deflate) { - // - // This `if` statement is only needed for Node.js < 10.0.0 because as of - // commit https://github.com/nodejs/node/commit/5e3f5164, the flush - // callback is no longer called if the deflate stream is closed while - // data is being processed. - // - return; - } - - var data = bufferUtil.concat( - this._deflate[kBuffers], - this._deflate[kTotalLength] - ); - - if (fin) data = data.slice(0, data.length - 4); - - if (fin && this.params[`${endpoint}_no_context_takeover`]) { - this._deflate.close(); - this._deflate = null; - } else { - this._deflate[kTotalLength] = 0; - this._deflate[kBuffers] = []; - } - - callback(null, data); - }); - } -} - -module.exports = PerMessageDeflate; - -/** - * The listener of the `zlib.DeflateRaw` stream `'data'` event. - * - * @param {Buffer} chunk A chunk of data - * @private - */ -function deflateOnData(chunk) { - this[kBuffers].push(chunk); - this[kTotalLength] += chunk.length; -} - -/** - * The listener of the `zlib.InflateRaw` stream `'data'` event. - * - * @param {Buffer} chunk A chunk of data - * @private - */ -function inflateOnData(chunk) { - this[kTotalLength] += chunk.length; - - if ( - this[kPerMessageDeflate]._maxPayload < 1 || - this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload - ) { - this[kBuffers].push(chunk); - return; - } - - this[kError] = new RangeError('Max payload size exceeded'); - this[kError][kStatusCode] = 1009; - this.removeListener('data', inflateOnData); - this.reset(); -} - -/** - * The listener of the `zlib.InflateRaw` stream `'error'` event. - * - * @param {Error} err The emitted error - * @private - */ -function inflateOnError(err) { - // - // There is no need to call `Zlib#close()` as the handle is automatically - // closed when an error is emitted. - // - this[kPerMessageDeflate]._inflate = null; - err[kStatusCode] = 1007; - this[kCallback](err); -} diff --git a/gateway/node_modules/ws/lib/receiver.js b/gateway/node_modules/ws/lib/receiver.js deleted file mode 100644 index 0a8d76d..0000000 --- a/gateway/node_modules/ws/lib/receiver.js +++ /dev/null @@ -1,492 +0,0 @@ -'use strict'; - -const { Writable } = require('stream'); - -const PerMessageDeflate = require('./permessage-deflate'); -const { - BINARY_TYPES, - EMPTY_BUFFER, - kStatusCode, - kWebSocket -} = require('./constants'); -const { concat, toArrayBuffer, unmask } = require('./buffer-util'); -const { isValidStatusCode, isValidUTF8 } = require('./validation'); - -const GET_INFO = 0; -const GET_PAYLOAD_LENGTH_16 = 1; -const GET_PAYLOAD_LENGTH_64 = 2; -const GET_MASK = 3; -const GET_DATA = 4; -const INFLATING = 5; - -/** - * HyBi Receiver implementation. - * - * @extends stream.Writable - */ -class Receiver extends Writable { - /** - * Creates a Receiver instance. - * - * @param {String} binaryType The type for binary data - * @param {Object} extensions An object containing the negotiated extensions - * @param {Number} maxPayload The maximum allowed message length - */ - constructor(binaryType, extensions, maxPayload) { - super(); - - this._binaryType = binaryType || BINARY_TYPES[0]; - this[kWebSocket] = undefined; - this._extensions = extensions || {}; - this._maxPayload = maxPayload | 0; - - this._bufferedBytes = 0; - this._buffers = []; - - this._compressed = false; - this._payloadLength = 0; - this._mask = undefined; - this._fragmented = 0; - this._masked = false; - this._fin = false; - this._opcode = 0; - - this._totalPayloadLength = 0; - this._messageLength = 0; - this._fragments = []; - - this._state = GET_INFO; - this._loop = false; - } - - /** - * Implements `Writable.prototype._write()`. - * - * @param {Buffer} chunk The chunk of data to write - * @param {String} encoding The character encoding of `chunk` - * @param {Function} cb Callback - */ - _write(chunk, encoding, cb) { - if (this._opcode === 0x08 && this._state == GET_INFO) return cb(); - - this._bufferedBytes += chunk.length; - this._buffers.push(chunk); - this.startLoop(cb); - } - - /** - * Consumes `n` bytes from the buffered data. - * - * @param {Number} n The number of bytes to consume - * @return {Buffer} The consumed bytes - * @private - */ - consume(n) { - this._bufferedBytes -= n; - - if (n === this._buffers[0].length) return this._buffers.shift(); - - if (n < this._buffers[0].length) { - const buf = this._buffers[0]; - this._buffers[0] = buf.slice(n); - return buf.slice(0, n); - } - - const dst = Buffer.allocUnsafe(n); - - do { - const buf = this._buffers[0]; - - if (n >= buf.length) { - this._buffers.shift().copy(dst, dst.length - n); - } else { - buf.copy(dst, dst.length - n, 0, n); - this._buffers[0] = buf.slice(n); - } - - n -= buf.length; - } while (n > 0); - - return dst; - } - - /** - * Starts the parsing loop. - * - * @param {Function} cb Callback - * @private - */ - startLoop(cb) { - var err; - this._loop = true; - - do { - switch (this._state) { - case GET_INFO: - err = this.getInfo(); - break; - case GET_PAYLOAD_LENGTH_16: - err = this.getPayloadLength16(); - break; - case GET_PAYLOAD_LENGTH_64: - err = this.getPayloadLength64(); - break; - case GET_MASK: - this.getMask(); - break; - case GET_DATA: - err = this.getData(cb); - break; - default: - // `INFLATING` - this._loop = false; - return; - } - } while (this._loop); - - cb(err); - } - - /** - * Reads the first two bytes of a frame. - * - * @return {(RangeError|undefined)} A possible error - * @private - */ - getInfo() { - if (this._bufferedBytes < 2) { - this._loop = false; - return; - } - - const buf = this.consume(2); - - if ((buf[0] & 0x30) !== 0x00) { - this._loop = false; - return error(RangeError, 'RSV2 and RSV3 must be clear', true, 1002); - } - - const compressed = (buf[0] & 0x40) === 0x40; - - if (compressed && !this._extensions[PerMessageDeflate.extensionName]) { - this._loop = false; - return error(RangeError, 'RSV1 must be clear', true, 1002); - } - - this._fin = (buf[0] & 0x80) === 0x80; - this._opcode = buf[0] & 0x0f; - this._payloadLength = buf[1] & 0x7f; - - if (this._opcode === 0x00) { - if (compressed) { - this._loop = false; - return error(RangeError, 'RSV1 must be clear', true, 1002); - } - - if (!this._fragmented) { - this._loop = false; - return error(RangeError, 'invalid opcode 0', true, 1002); - } - - this._opcode = this._fragmented; - } else if (this._opcode === 0x01 || this._opcode === 0x02) { - if (this._fragmented) { - this._loop = false; - return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002); - } - - this._compressed = compressed; - } else if (this._opcode > 0x07 && this._opcode < 0x0b) { - if (!this._fin) { - this._loop = false; - return error(RangeError, 'FIN must be set', true, 1002); - } - - if (compressed) { - this._loop = false; - return error(RangeError, 'RSV1 must be clear', true, 1002); - } - - if (this._payloadLength > 0x7d) { - this._loop = false; - return error( - RangeError, - `invalid payload length ${this._payloadLength}`, - true, - 1002 - ); - } - } else { - this._loop = false; - return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002); - } - - if (!this._fin && !this._fragmented) this._fragmented = this._opcode; - this._masked = (buf[1] & 0x80) === 0x80; - - if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16; - else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64; - else return this.haveLength(); - } - - /** - * Gets extended payload length (7+16). - * - * @return {(RangeError|undefined)} A possible error - * @private - */ - getPayloadLength16() { - if (this._bufferedBytes < 2) { - this._loop = false; - return; - } - - this._payloadLength = this.consume(2).readUInt16BE(0); - return this.haveLength(); - } - - /** - * Gets extended payload length (7+64). - * - * @return {(RangeError|undefined)} A possible error - * @private - */ - getPayloadLength64() { - if (this._bufferedBytes < 8) { - this._loop = false; - return; - } - - const buf = this.consume(8); - const num = buf.readUInt32BE(0); - - // - // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned - // if payload length is greater than this number. - // - if (num > Math.pow(2, 53 - 32) - 1) { - this._loop = false; - return error( - RangeError, - 'Unsupported WebSocket frame: payload length > 2^53 - 1', - false, - 1009 - ); - } - - this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4); - return this.haveLength(); - } - - /** - * Payload length has been read. - * - * @return {(RangeError|undefined)} A possible error - * @private - */ - haveLength() { - if (this._payloadLength && this._opcode < 0x08) { - this._totalPayloadLength += this._payloadLength; - if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) { - this._loop = false; - return error(RangeError, 'Max payload size exceeded', false, 1009); - } - } - - if (this._masked) this._state = GET_MASK; - else this._state = GET_DATA; - } - - /** - * Reads mask bytes. - * - * @private - */ - getMask() { - if (this._bufferedBytes < 4) { - this._loop = false; - return; - } - - this._mask = this.consume(4); - this._state = GET_DATA; - } - - /** - * Reads data bytes. - * - * @param {Function} cb Callback - * @return {(Error|RangeError|undefined)} A possible error - * @private - */ - getData(cb) { - var data = EMPTY_BUFFER; - - if (this._payloadLength) { - if (this._bufferedBytes < this._payloadLength) { - this._loop = false; - return; - } - - data = this.consume(this._payloadLength); - if (this._masked) unmask(data, this._mask); - } - - if (this._opcode > 0x07) return this.controlMessage(data); - - if (this._compressed) { - this._state = INFLATING; - this.decompress(data, cb); - return; - } - - if (data.length) { - // - // This message is not compressed so its lenght is the sum of the payload - // length of all fragments. - // - this._messageLength = this._totalPayloadLength; - this._fragments.push(data); - } - - return this.dataMessage(); - } - - /** - * Decompresses data. - * - * @param {Buffer} data Compressed data - * @param {Function} cb Callback - * @private - */ - decompress(data, cb) { - const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; - - perMessageDeflate.decompress(data, this._fin, (err, buf) => { - if (err) return cb(err); - - if (buf.length) { - this._messageLength += buf.length; - if (this._messageLength > this._maxPayload && this._maxPayload > 0) { - return cb( - error(RangeError, 'Max payload size exceeded', false, 1009) - ); - } - - this._fragments.push(buf); - } - - const er = this.dataMessage(); - if (er) return cb(er); - - this.startLoop(cb); - }); - } - - /** - * Handles a data message. - * - * @return {(Error|undefined)} A possible error - * @private - */ - dataMessage() { - if (this._fin) { - const messageLength = this._messageLength; - const fragments = this._fragments; - - this._totalPayloadLength = 0; - this._messageLength = 0; - this._fragmented = 0; - this._fragments = []; - - if (this._opcode === 2) { - var data; - - if (this._binaryType === 'nodebuffer') { - data = concat(fragments, messageLength); - } else if (this._binaryType === 'arraybuffer') { - data = toArrayBuffer(concat(fragments, messageLength)); - } else { - data = fragments; - } - - this.emit('message', data); - } else { - const buf = concat(fragments, messageLength); - - if (!isValidUTF8(buf)) { - this._loop = false; - return error(Error, 'invalid UTF-8 sequence', true, 1007); - } - - this.emit('message', buf.toString()); - } - } - - this._state = GET_INFO; - } - - /** - * Handles a control message. - * - * @param {Buffer} data Data to handle - * @return {(Error|RangeError|undefined)} A possible error - * @private - */ - controlMessage(data) { - if (this._opcode === 0x08) { - this._loop = false; - - if (data.length === 0) { - this.emit('conclude', 1005, ''); - this.end(); - } else if (data.length === 1) { - return error(RangeError, 'invalid payload length 1', true, 1002); - } else { - const code = data.readUInt16BE(0); - - if (!isValidStatusCode(code)) { - return error(RangeError, `invalid status code ${code}`, true, 1002); - } - - const buf = data.slice(2); - - if (!isValidUTF8(buf)) { - return error(Error, 'invalid UTF-8 sequence', true, 1007); - } - - this.emit('conclude', code, buf.toString()); - this.end(); - } - } else if (this._opcode === 0x09) { - this.emit('ping', data); - } else { - this.emit('pong', data); - } - - this._state = GET_INFO; - } -} - -module.exports = Receiver; - -/** - * Builds an error object. - * - * @param {(Error|RangeError)} ErrorCtor The error constructor - * @param {String} message The error message - * @param {Boolean} prefix Specifies whether or not to add a default prefix to - * `message` - * @param {Number} statusCode The status code - * @return {(Error|RangeError)} The error - * @private - */ -function error(ErrorCtor, message, prefix, statusCode) { - const err = new ErrorCtor( - prefix ? `Invalid WebSocket frame: ${message}` : message - ); - - Error.captureStackTrace(err, error); - err[kStatusCode] = statusCode; - return err; -} diff --git a/gateway/node_modules/ws/lib/sender.js b/gateway/node_modules/ws/lib/sender.js deleted file mode 100644 index 51158b1..0000000 --- a/gateway/node_modules/ws/lib/sender.js +++ /dev/null @@ -1,358 +0,0 @@ -'use strict'; - -const { randomBytes } = require('crypto'); - -const PerMessageDeflate = require('./permessage-deflate'); -const { EMPTY_BUFFER } = require('./constants'); -const { isValidStatusCode } = require('./validation'); -const { mask: applyMask, toBuffer } = require('./buffer-util'); - -/** - * HyBi Sender implementation. - */ -class Sender { - /** - * Creates a Sender instance. - * - * @param {net.Socket} socket The connection socket - * @param {Object} extensions An object containing the negotiated extensions - */ - constructor(socket, extensions) { - this._extensions = extensions || {}; - this._socket = socket; - - this._firstFragment = true; - this._compress = false; - - this._bufferedBytes = 0; - this._deflating = false; - this._queue = []; - } - - /** - * Frames a piece of data according to the HyBi WebSocket protocol. - * - * @param {Buffer} data The data to frame - * @param {Object} options Options object - * @param {Number} options.opcode The opcode - * @param {Boolean} options.readOnly Specifies whether `data` can be modified - * @param {Boolean} options.fin Specifies whether or not to set the FIN bit - * @param {Boolean} options.mask Specifies whether or not to mask `data` - * @param {Boolean} options.rsv1 Specifies whether or not to set the RSV1 bit - * @return {Buffer[]} The framed data as a list of `Buffer` instances - * @public - */ - static frame(data, options) { - const merge = options.mask && options.readOnly; - var offset = options.mask ? 6 : 2; - var payloadLength = data.length; - - if (data.length >= 65536) { - offset += 8; - payloadLength = 127; - } else if (data.length > 125) { - offset += 2; - payloadLength = 126; - } - - const target = Buffer.allocUnsafe(merge ? data.length + offset : offset); - - target[0] = options.fin ? options.opcode | 0x80 : options.opcode; - if (options.rsv1) target[0] |= 0x40; - - target[1] = payloadLength; - - if (payloadLength === 126) { - target.writeUInt16BE(data.length, 2); - } else if (payloadLength === 127) { - target.writeUInt32BE(0, 2); - target.writeUInt32BE(data.length, 6); - } - - if (!options.mask) return [target, data]; - - const mask = randomBytes(4); - - target[1] |= 0x80; - target[offset - 4] = mask[0]; - target[offset - 3] = mask[1]; - target[offset - 2] = mask[2]; - target[offset - 1] = mask[3]; - - if (merge) { - applyMask(data, mask, target, offset, data.length); - return [target]; - } - - applyMask(data, mask, data, 0, data.length); - return [target, data]; - } - - /** - * Sends a close message to the other peer. - * - * @param {(Number|undefined)} code The status code component of the body - * @param {String} data The message component of the body - * @param {Boolean} mask Specifies whether or not to mask the message - * @param {Function} cb Callback - * @public - */ - close(code, data, mask, cb) { - var buf; - - if (code === undefined) { - buf = EMPTY_BUFFER; - } else if (typeof code !== 'number' || !isValidStatusCode(code)) { - throw new TypeError('First argument must be a valid error code number'); - } else if (data === undefined || data === '') { - buf = Buffer.allocUnsafe(2); - buf.writeUInt16BE(code, 0); - } else { - buf = Buffer.allocUnsafe(2 + Buffer.byteLength(data)); - buf.writeUInt16BE(code, 0); - buf.write(data, 2); - } - - if (this._deflating) { - this.enqueue([this.doClose, buf, mask, cb]); - } else { - this.doClose(buf, mask, cb); - } - } - - /** - * Frames and sends a close message. - * - * @param {Buffer} data The message to send - * @param {Boolean} mask Specifies whether or not to mask `data` - * @param {Function} cb Callback - * @private - */ - doClose(data, mask, cb) { - this.sendFrame( - Sender.frame(data, { - fin: true, - rsv1: false, - opcode: 0x08, - mask, - readOnly: false - }), - cb - ); - } - - /** - * Sends a ping message to the other peer. - * - * @param {*} data The message to send - * @param {Boolean} mask Specifies whether or not to mask `data` - * @param {Function} cb Callback - * @public - */ - ping(data, mask, cb) { - const buf = toBuffer(data); - - if (this._deflating) { - this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]); - } else { - this.doPing(buf, mask, toBuffer.readOnly, cb); - } - } - - /** - * Frames and sends a ping message. - * - * @param {*} data The message to send - * @param {Boolean} mask Specifies whether or not to mask `data` - * @param {Boolean} readOnly Specifies whether `data` can be modified - * @param {Function} cb Callback - * @private - */ - doPing(data, mask, readOnly, cb) { - this.sendFrame( - Sender.frame(data, { - fin: true, - rsv1: false, - opcode: 0x09, - mask, - readOnly - }), - cb - ); - } - - /** - * Sends a pong message to the other peer. - * - * @param {*} data The message to send - * @param {Boolean} mask Specifies whether or not to mask `data` - * @param {Function} cb Callback - * @public - */ - pong(data, mask, cb) { - const buf = toBuffer(data); - - if (this._deflating) { - this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]); - } else { - this.doPong(buf, mask, toBuffer.readOnly, cb); - } - } - - /** - * Frames and sends a pong message. - * - * @param {*} data The message to send - * @param {Boolean} mask Specifies whether or not to mask `data` - * @param {Boolean} readOnly Specifies whether `data` can be modified - * @param {Function} cb Callback - * @private - */ - doPong(data, mask, readOnly, cb) { - this.sendFrame( - Sender.frame(data, { - fin: true, - rsv1: false, - opcode: 0x0a, - mask, - readOnly - }), - cb - ); - } - - /** - * Sends a data message to the other peer. - * - * @param {*} data The message to send - * @param {Object} options Options object - * @param {Boolean} options.compress Specifies whether or not to compress `data` - * @param {Boolean} options.binary Specifies whether `data` is binary or text - * @param {Boolean} options.fin Specifies whether the fragment is the last one - * @param {Boolean} options.mask Specifies whether or not to mask `data` - * @param {Function} cb Callback - * @public - */ - send(data, options, cb) { - const buf = toBuffer(data); - const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; - var opcode = options.binary ? 2 : 1; - var rsv1 = options.compress; - - if (this._firstFragment) { - this._firstFragment = false; - if (rsv1 && perMessageDeflate) { - rsv1 = buf.length >= perMessageDeflate._threshold; - } - this._compress = rsv1; - } else { - rsv1 = false; - opcode = 0; - } - - if (options.fin) this._firstFragment = true; - - if (perMessageDeflate) { - const opts = { - fin: options.fin, - rsv1, - opcode, - mask: options.mask, - readOnly: toBuffer.readOnly - }; - - if (this._deflating) { - this.enqueue([this.dispatch, buf, this._compress, opts, cb]); - } else { - this.dispatch(buf, this._compress, opts, cb); - } - } else { - this.sendFrame( - Sender.frame(buf, { - fin: options.fin, - rsv1: false, - opcode, - mask: options.mask, - readOnly: toBuffer.readOnly - }), - cb - ); - } - } - - /** - * Dispatches a data message. - * - * @param {Buffer} data The message to send - * @param {Boolean} compress Specifies whether or not to compress `data` - * @param {Object} options Options object - * @param {Number} options.opcode The opcode - * @param {Boolean} options.readOnly Specifies whether `data` can be modified - * @param {Boolean} options.fin Specifies whether or not to set the FIN bit - * @param {Boolean} options.mask Specifies whether or not to mask `data` - * @param {Boolean} options.rsv1 Specifies whether or not to set the RSV1 bit - * @param {Function} cb Callback - * @private - */ - dispatch(data, compress, options, cb) { - if (!compress) { - this.sendFrame(Sender.frame(data, options), cb); - return; - } - - const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; - - this._deflating = true; - perMessageDeflate.compress(data, options.fin, (_, buf) => { - this._deflating = false; - options.readOnly = false; - this.sendFrame(Sender.frame(buf, options), cb); - this.dequeue(); - }); - } - - /** - * Executes queued send operations. - * - * @private - */ - dequeue() { - while (!this._deflating && this._queue.length) { - const params = this._queue.shift(); - - this._bufferedBytes -= params[1].length; - params[0].apply(this, params.slice(1)); - } - } - - /** - * Enqueues a send operation. - * - * @param {Array} params Send operation parameters. - * @private - */ - enqueue(params) { - this._bufferedBytes += params[1].length; - this._queue.push(params); - } - - /** - * Sends a frame. - * - * @param {Buffer[]} list The frame to send - * @param {Function} cb Callback - * @private - */ - sendFrame(list, cb) { - if (list.length === 2) { - this._socket.cork(); - this._socket.write(list[0]); - this._socket.write(list[1], cb); - this._socket.uncork(); - } else { - this._socket.write(list[0], cb); - } - } -} - -module.exports = Sender; diff --git a/gateway/node_modules/ws/lib/validation.js b/gateway/node_modules/ws/lib/validation.js deleted file mode 100644 index 479a7db..0000000 --- a/gateway/node_modules/ws/lib/validation.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -try { - const isValidUTF8 = require('utf-8-validate'); - - exports.isValidUTF8 = - typeof isValidUTF8 === 'object' - ? isValidUTF8.Validation.isValidUTF8 // utf-8-validate@<3.0.0 - : isValidUTF8; -} catch (e) /* istanbul ignore next */ { - exports.isValidUTF8 = () => true; -} - -/** - * Checks if a status code is allowed in a close frame. - * - * @param {Number} code The status code - * @return {Boolean} `true` if the status code is valid, else `false` - * @public - */ -exports.isValidStatusCode = (code) => { - return ( - (code >= 1000 && - code <= 1013 && - code !== 1004 && - code !== 1005 && - code !== 1006) || - (code >= 3000 && code <= 4999) - ); -}; diff --git a/gateway/node_modules/ws/lib/websocket-server.js b/gateway/node_modules/ws/lib/websocket-server.js deleted file mode 100644 index 9b061d9..0000000 --- a/gateway/node_modules/ws/lib/websocket-server.js +++ /dev/null @@ -1,401 +0,0 @@ -'use strict'; - -const EventEmitter = require('events'); -const crypto = require('crypto'); -const http = require('http'); - -const PerMessageDeflate = require('./permessage-deflate'); -const extension = require('./extension'); -const WebSocket = require('./websocket'); -const { GUID } = require('./constants'); - -const keyRegex = /^[+/0-9A-Za-z]{22}==$/; - -/** - * Class representing a WebSocket server. - * - * @extends EventEmitter - */ -class WebSocketServer extends EventEmitter { - /** - * Create a `WebSocketServer` instance. - * - * @param {Object} options Configuration options - * @param {Number} options.backlog The maximum length of the queue of pending - * connections - * @param {Boolean} options.clientTracking Specifies whether or not to track - * clients - * @param {Function} options.handleProtocols An hook to handle protocols - * @param {String} options.host The hostname where to bind the server - * @param {Number} options.maxPayload The maximum allowed message size - * @param {Boolean} options.noServer Enable no server mode - * @param {String} options.path Accept only connections matching this path - * @param {(Boolean|Object)} options.perMessageDeflate Enable/disable - * permessage-deflate - * @param {Number} options.port The port where to bind the server - * @param {http.Server} options.server A pre-created HTTP/S server to use - * @param {Function} options.verifyClient An hook to reject connections - * @param {Function} callback A listener for the `listening` event - */ - constructor(options, callback) { - super(); - - options = Object.assign( - { - maxPayload: 100 * 1024 * 1024, - perMessageDeflate: false, - handleProtocols: null, - clientTracking: true, - verifyClient: null, - noServer: false, - backlog: null, // use default (511 as implemented in net.js) - server: null, - host: null, - path: null, - port: null - }, - options - ); - - if (options.port == null && !options.server && !options.noServer) { - throw new TypeError( - 'One of the "port", "server", or "noServer" options must be specified' - ); - } - - if (options.port != null) { - this._server = http.createServer((req, res) => { - const body = http.STATUS_CODES[426]; - - res.writeHead(426, { - 'Content-Length': body.length, - 'Content-Type': 'text/plain' - }); - res.end(body); - }); - this._server.listen( - options.port, - options.host, - options.backlog, - callback - ); - } else if (options.server) { - this._server = options.server; - } - - if (this._server) { - this._removeListeners = addListeners(this._server, { - listening: this.emit.bind(this, 'listening'), - error: this.emit.bind(this, 'error'), - upgrade: (req, socket, head) => { - this.handleUpgrade(req, socket, head, (ws) => { - this.emit('connection', ws, req); - }); - } - }); - } - - if (options.perMessageDeflate === true) options.perMessageDeflate = {}; - if (options.clientTracking) this.clients = new Set(); - this.options = options; - } - - /** - * Returns the bound address, the address family name, and port of the server - * as reported by the operating system if listening on an IP socket. - * If the server is listening on a pipe or UNIX domain socket, the name is - * returned as a string. - * - * @return {(Object|String|null)} The address of the server - * @public - */ - address() { - if (this.options.noServer) { - throw new Error('The server is operating in "noServer" mode'); - } - - if (!this._server) return null; - return this._server.address(); - } - - /** - * Close the server. - * - * @param {Function} cb Callback - * @public - */ - close(cb) { - if (cb) this.once('close', cb); - - // - // Terminate all associated clients. - // - if (this.clients) { - for (const client of this.clients) client.terminate(); - } - - const server = this._server; - - if (server) { - this._removeListeners(); - this._removeListeners = this._server = null; - - // - // Close the http server if it was internally created. - // - if (this.options.port != null) { - server.close(() => this.emit('close')); - return; - } - } - - process.nextTick(emitClose, this); - } - - /** - * See if a given request should be handled by this server instance. - * - * @param {http.IncomingMessage} req Request object to inspect - * @return {Boolean} `true` if the request is valid, else `false` - * @public - */ - shouldHandle(req) { - if (this.options.path) { - const index = req.url.indexOf('?'); - const pathname = index !== -1 ? req.url.slice(0, index) : req.url; - - if (pathname !== this.options.path) return false; - } - - return true; - } - - /** - * Handle a HTTP Upgrade request. - * - * @param {http.IncomingMessage} req The request object - * @param {net.Socket} socket The network socket between the server and client - * @param {Buffer} head The first packet of the upgraded stream - * @param {Function} cb Callback - * @public - */ - handleUpgrade(req, socket, head, cb) { - socket.on('error', socketOnError); - - const key = - req.headers['sec-websocket-key'] !== undefined - ? req.headers['sec-websocket-key'].trim() - : false; - const version = +req.headers['sec-websocket-version']; - const extensions = {}; - - if ( - req.method !== 'GET' || - req.headers.upgrade.toLowerCase() !== 'websocket' || - !key || - !keyRegex.test(key) || - (version !== 8 && version !== 13) || - !this.shouldHandle(req) - ) { - return abortHandshake(socket, 400); - } - - if (this.options.perMessageDeflate) { - const perMessageDeflate = new PerMessageDeflate( - this.options.perMessageDeflate, - true, - this.options.maxPayload - ); - - try { - const offers = extension.parse(req.headers['sec-websocket-extensions']); - - if (offers[PerMessageDeflate.extensionName]) { - perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]); - extensions[PerMessageDeflate.extensionName] = perMessageDeflate; - } - } catch (err) { - return abortHandshake(socket, 400); - } - } - - // - // Optionally call external client verification handler. - // - if (this.options.verifyClient) { - const info = { - origin: - req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`], - secure: !!(req.connection.authorized || req.connection.encrypted), - req - }; - - if (this.options.verifyClient.length === 2) { - this.options.verifyClient(info, (verified, code, message, headers) => { - if (!verified) { - return abortHandshake(socket, code || 401, message, headers); - } - - this.completeUpgrade(key, extensions, req, socket, head, cb); - }); - return; - } - - if (!this.options.verifyClient(info)) return abortHandshake(socket, 401); - } - - this.completeUpgrade(key, extensions, req, socket, head, cb); - } - - /** - * Upgrade the connection to WebSocket. - * - * @param {String} key The value of the `Sec-WebSocket-Key` header - * @param {Object} extensions The accepted extensions - * @param {http.IncomingMessage} req The request object - * @param {net.Socket} socket The network socket between the server and client - * @param {Buffer} head The first packet of the upgraded stream - * @param {Function} cb Callback - * @private - */ - completeUpgrade(key, extensions, req, socket, head, cb) { - // - // Destroy the socket if the client has already sent a FIN packet. - // - if (!socket.readable || !socket.writable) return socket.destroy(); - - const digest = crypto - .createHash('sha1') - .update(key + GUID) - .digest('base64'); - - const headers = [ - 'HTTP/1.1 101 Switching Protocols', - 'Upgrade: websocket', - 'Connection: Upgrade', - `Sec-WebSocket-Accept: ${digest}` - ]; - - const ws = new WebSocket(null); - var protocol = req.headers['sec-websocket-protocol']; - - if (protocol) { - protocol = protocol.trim().split(/ *, */); - - // - // Optionally call external protocol selection handler. - // - if (this.options.handleProtocols) { - protocol = this.options.handleProtocols(protocol, req); - } else { - protocol = protocol[0]; - } - - if (protocol) { - headers.push(`Sec-WebSocket-Protocol: ${protocol}`); - ws.protocol = protocol; - } - } - - if (extensions[PerMessageDeflate.extensionName]) { - const params = extensions[PerMessageDeflate.extensionName].params; - const value = extension.format({ - [PerMessageDeflate.extensionName]: [params] - }); - headers.push(`Sec-WebSocket-Extensions: ${value}`); - ws._extensions = extensions; - } - - // - // Allow external modification/inspection of handshake headers. - // - this.emit('headers', headers, req); - - socket.write(headers.concat('\r\n').join('\r\n')); - socket.removeListener('error', socketOnError); - - ws.setSocket(socket, head, this.options.maxPayload); - - if (this.clients) { - this.clients.add(ws); - ws.on('close', () => this.clients.delete(ws)); - } - - cb(ws); - } -} - -module.exports = WebSocketServer; - -/** - * Add event listeners on an `EventEmitter` using a map of - * pairs. - * - * @param {EventEmitter} server The event emitter - * @param {Object.} map The listeners to add - * @return {Function} A function that will remove the added listeners when called - * @private - */ -function addListeners(server, map) { - for (const event of Object.keys(map)) server.on(event, map[event]); - - return function removeListeners() { - for (const event of Object.keys(map)) { - server.removeListener(event, map[event]); - } - }; -} - -/** - * Emit a `'close'` event on an `EventEmitter`. - * - * @param {EventEmitter} server The event emitter - * @private - */ -function emitClose(server) { - server.emit('close'); -} - -/** - * Handle premature socket errors. - * - * @private - */ -function socketOnError() { - this.destroy(); -} - -/** - * Close the connection when preconditions are not fulfilled. - * - * @param {net.Socket} socket The socket of the upgrade request - * @param {Number} code The HTTP response status code - * @param {String} [message] The HTTP response body - * @param {Object} [headers] Additional HTTP response headers - * @private - */ -function abortHandshake(socket, code, message, headers) { - if (socket.writable) { - message = message || http.STATUS_CODES[code]; - headers = Object.assign( - { - Connection: 'close', - 'Content-type': 'text/html', - 'Content-Length': Buffer.byteLength(message) - }, - headers - ); - - socket.write( - `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n` + - Object.keys(headers) - .map((h) => `${h}: ${headers[h]}`) - .join('\r\n') + - '\r\n\r\n' + - message - ); - } - - socket.removeListener('error', socketOnError); - socket.destroy(); -} diff --git a/gateway/node_modules/ws/lib/websocket.js b/gateway/node_modules/ws/lib/websocket.js deleted file mode 100644 index af81084..0000000 --- a/gateway/node_modules/ws/lib/websocket.js +++ /dev/null @@ -1,895 +0,0 @@ -'use strict'; - -const EventEmitter = require('events'); -const crypto = require('crypto'); -const https = require('https'); -const http = require('http'); -const net = require('net'); -const tls = require('tls'); -const url = require('url'); - -const PerMessageDeflate = require('./permessage-deflate'); -const EventTarget = require('./event-target'); -const extension = require('./extension'); -const Receiver = require('./receiver'); -const Sender = require('./sender'); -const { - BINARY_TYPES, - EMPTY_BUFFER, - GUID, - kStatusCode, - kWebSocket, - NOOP -} = require('./constants'); - -const readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; -const protocolVersions = [8, 13]; -const closeTimeout = 30 * 1000; - -/** - * Class representing a WebSocket. - * - * @extends EventEmitter - */ -class WebSocket extends EventEmitter { - /** - * Create a new `WebSocket`. - * - * @param {(String|url.Url|url.URL)} address The URL to which to connect - * @param {(String|String[])} protocols The subprotocols - * @param {Object} options Connection options - */ - constructor(address, protocols, options) { - super(); - - this.readyState = WebSocket.CONNECTING; - this.protocol = ''; - - this._binaryType = BINARY_TYPES[0]; - this._closeFrameReceived = false; - this._closeFrameSent = false; - this._closeMessage = ''; - this._closeTimer = null; - this._closeCode = 1006; - this._extensions = {}; - this._receiver = null; - this._sender = null; - this._socket = null; - - if (address !== null) { - this._isServer = false; - this._redirects = 0; - - if (Array.isArray(protocols)) { - protocols = protocols.join(', '); - } else if (typeof protocols === 'object' && protocols !== null) { - options = protocols; - protocols = undefined; - } - - initAsClient(this, address, protocols, options); - } else { - this._isServer = true; - } - } - - get CONNECTING() { - return WebSocket.CONNECTING; - } - get CLOSING() { - return WebSocket.CLOSING; - } - get CLOSED() { - return WebSocket.CLOSED; - } - get OPEN() { - return WebSocket.OPEN; - } - - /** - * This deviates from the WHATWG interface since ws doesn't support the - * required default "blob" type (instead we define a custom "nodebuffer" - * type). - * - * @type {String} - */ - get binaryType() { - return this._binaryType; - } - - set binaryType(type) { - if (!BINARY_TYPES.includes(type)) return; - - this._binaryType = type; - - // - // Allow to change `binaryType` on the fly. - // - if (this._receiver) this._receiver._binaryType = type; - } - - /** - * @type {Number} - */ - get bufferedAmount() { - if (!this._socket) return 0; - - // - // `socket.bufferSize` is `undefined` if the socket is closed. - // - return (this._socket.bufferSize || 0) + this._sender._bufferedBytes; - } - - /** - * @type {String} - */ - get extensions() { - return Object.keys(this._extensions).join(); - } - - /** - * Set up the socket and the internal resources. - * - * @param {net.Socket} socket The network socket between the server and client - * @param {Buffer} head The first packet of the upgraded stream - * @param {Number} maxPayload The maximum allowed message size - * @private - */ - setSocket(socket, head, maxPayload) { - const receiver = new Receiver( - this._binaryType, - this._extensions, - maxPayload - ); - - this._sender = new Sender(socket, this._extensions); - this._receiver = receiver; - this._socket = socket; - - receiver[kWebSocket] = this; - socket[kWebSocket] = this; - - receiver.on('conclude', receiverOnConclude); - receiver.on('drain', receiverOnDrain); - receiver.on('error', receiverOnError); - receiver.on('message', receiverOnMessage); - receiver.on('ping', receiverOnPing); - receiver.on('pong', receiverOnPong); - - socket.setTimeout(0); - socket.setNoDelay(); - - if (head.length > 0) socket.unshift(head); - - socket.on('close', socketOnClose); - socket.on('data', socketOnData); - socket.on('end', socketOnEnd); - socket.on('error', socketOnError); - - this.readyState = WebSocket.OPEN; - this.emit('open'); - } - - /** - * Emit the `'close'` event. - * - * @private - */ - emitClose() { - this.readyState = WebSocket.CLOSED; - - if (!this._socket) { - this.emit('close', this._closeCode, this._closeMessage); - return; - } - - if (this._extensions[PerMessageDeflate.extensionName]) { - this._extensions[PerMessageDeflate.extensionName].cleanup(); - } - - this._receiver.removeAllListeners(); - this.emit('close', this._closeCode, this._closeMessage); - } - - /** - * Start a closing handshake. - * - * +----------+ +-----------+ +----------+ - * - - -|ws.close()|-->|close frame|-->|ws.close()|- - - - * | +----------+ +-----------+ +----------+ | - * +----------+ +-----------+ | - * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING - * +----------+ +-----------+ | - * | | | +---+ | - * +------------------------+-->|fin| - - - - - * | +---+ | +---+ - * - - - - -|fin|<---------------------+ - * +---+ - * - * @param {Number} code Status code explaining why the connection is closing - * @param {String} data A string explaining why the connection is closing - * @public - */ - close(code, data) { - if (this.readyState === WebSocket.CLOSED) return; - if (this.readyState === WebSocket.CONNECTING) { - const msg = 'WebSocket was closed before the connection was established'; - return abortHandshake(this, this._req, msg); - } - - if (this.readyState === WebSocket.CLOSING) { - if (this._closeFrameSent && this._closeFrameReceived) this._socket.end(); - return; - } - - this.readyState = WebSocket.CLOSING; - this._sender.close(code, data, !this._isServer, (err) => { - // - // This error is handled by the `'error'` listener on the socket. We only - // want to know if the close frame has been sent here. - // - if (err) return; - - this._closeFrameSent = true; - if (this._closeFrameReceived) this._socket.end(); - }); - - // - // Specify a timeout for the closing handshake to complete. - // - this._closeTimer = setTimeout( - this._socket.destroy.bind(this._socket), - closeTimeout - ); - } - - /** - * Send a ping. - * - * @param {*} data The data to send - * @param {Boolean} mask Indicates whether or not to mask `data` - * @param {Function} cb Callback which is executed when the ping is sent - * @public - */ - ping(data, mask, cb) { - if (typeof data === 'function') { - cb = data; - data = mask = undefined; - } else if (typeof mask === 'function') { - cb = mask; - mask = undefined; - } - - if (this.readyState !== WebSocket.OPEN) { - const err = new Error( - `WebSocket is not open: readyState ${this.readyState} ` + - `(${readyStates[this.readyState]})` - ); - - if (cb) return cb(err); - throw err; - } - - if (typeof data === 'number') data = data.toString(); - if (mask === undefined) mask = !this._isServer; - this._sender.ping(data || EMPTY_BUFFER, mask, cb); - } - - /** - * Send a pong. - * - * @param {*} data The data to send - * @param {Boolean} mask Indicates whether or not to mask `data` - * @param {Function} cb Callback which is executed when the pong is sent - * @public - */ - pong(data, mask, cb) { - if (typeof data === 'function') { - cb = data; - data = mask = undefined; - } else if (typeof mask === 'function') { - cb = mask; - mask = undefined; - } - - if (this.readyState !== WebSocket.OPEN) { - const err = new Error( - `WebSocket is not open: readyState ${this.readyState} ` + - `(${readyStates[this.readyState]})` - ); - - if (cb) return cb(err); - throw err; - } - - if (typeof data === 'number') data = data.toString(); - if (mask === undefined) mask = !this._isServer; - this._sender.pong(data || EMPTY_BUFFER, mask, cb); - } - - /** - * Send a data message. - * - * @param {*} data The message to send - * @param {Object} options Options object - * @param {Boolean} options.compress Specifies whether or not to compress `data` - * @param {Boolean} options.binary Specifies whether `data` is binary or text - * @param {Boolean} options.fin Specifies whether the fragment is the last one - * @param {Boolean} options.mask Specifies whether or not to mask `data` - * @param {Function} cb Callback which is executed when data is written out - * @public - */ - send(data, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - if (this.readyState !== WebSocket.OPEN) { - const err = new Error( - `WebSocket is not open: readyState ${this.readyState} ` + - `(${readyStates[this.readyState]})` - ); - - if (cb) return cb(err); - throw err; - } - - if (typeof data === 'number') data = data.toString(); - - const opts = Object.assign( - { - binary: typeof data !== 'string', - mask: !this._isServer, - compress: true, - fin: true - }, - options - ); - - if (!this._extensions[PerMessageDeflate.extensionName]) { - opts.compress = false; - } - - this._sender.send(data || EMPTY_BUFFER, opts, cb); - } - - /** - * Forcibly close the connection. - * - * @public - */ - terminate() { - if (this.readyState === WebSocket.CLOSED) return; - if (this.readyState === WebSocket.CONNECTING) { - const msg = 'WebSocket was closed before the connection was established'; - return abortHandshake(this, this._req, msg); - } - - if (this._socket) { - this.readyState = WebSocket.CLOSING; - this._socket.destroy(); - } - } -} - -readyStates.forEach((readyState, i) => { - WebSocket[readyState] = i; -}); - -// -// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes. -// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface -// -['open', 'error', 'close', 'message'].forEach((method) => { - Object.defineProperty(WebSocket.prototype, `on${method}`, { - /** - * Return the listener of the event. - * - * @return {(Function|undefined)} The event listener or `undefined` - * @public - */ - get() { - const listeners = this.listeners(method); - for (var i = 0; i < listeners.length; i++) { - if (listeners[i]._listener) return listeners[i]._listener; - } - - return undefined; - }, - /** - * Add a listener for the event. - * - * @param {Function} listener The listener to add - * @public - */ - set(listener) { - const listeners = this.listeners(method); - for (var i = 0; i < listeners.length; i++) { - // - // Remove only the listeners added via `addEventListener`. - // - if (listeners[i]._listener) this.removeListener(method, listeners[i]); - } - this.addEventListener(method, listener); - } - }); -}); - -WebSocket.prototype.addEventListener = EventTarget.addEventListener; -WebSocket.prototype.removeEventListener = EventTarget.removeEventListener; - -module.exports = WebSocket; - -/** - * Initialize a WebSocket client. - * - * @param {WebSocket} websocket The client to initialize - * @param {(String|url.Url|url.URL)} address The URL to which to connect - * @param {String} protocols The subprotocols - * @param {Object} options Connection options - * @param {(Boolean|Object)} options.perMessageDeflate Enable/disable - * permessage-deflate - * @param {Number} options.handshakeTimeout Timeout in milliseconds for the - * handshake request - * @param {Number} options.protocolVersion Value of the `Sec-WebSocket-Version` - * header - * @param {String} options.origin Value of the `Origin` or - * `Sec-WebSocket-Origin` header - * @param {Number} options.maxPayload The maximum allowed message size - * @param {Boolean} options.followRedirects Whether or not to follow redirects - * @param {Number} options.maxRedirects The maximum number of redirects allowed - * @private - */ -function initAsClient(websocket, address, protocols, options) { - const opts = Object.assign( - { - protocolVersion: protocolVersions[1], - maxPayload: 100 * 1024 * 1024, - perMessageDeflate: true, - followRedirects: false, - maxRedirects: 10 - }, - options, - { - createConnection: undefined, - socketPath: undefined, - hostname: undefined, - protocol: undefined, - timeout: undefined, - method: undefined, - auth: undefined, - host: undefined, - path: undefined, - port: undefined - } - ); - - if (!protocolVersions.includes(opts.protocolVersion)) { - throw new RangeError( - `Unsupported protocol version: ${opts.protocolVersion} ` + - `(supported versions: ${protocolVersions.join(', ')})` - ); - } - - var parsedUrl; - - if (typeof address === 'object' && address.href !== undefined) { - parsedUrl = address; - websocket.url = address.href; - } else { - // - // The WHATWG URL constructor is not available on Node.js < 6.13.0 - // - parsedUrl = url.URL ? new url.URL(address) : url.parse(address); - websocket.url = address; - } - - const isUnixSocket = parsedUrl.protocol === 'ws+unix:'; - - if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) { - throw new Error(`Invalid URL: ${websocket.url}`); - } - - const isSecure = - parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:'; - const defaultPort = isSecure ? 443 : 80; - const key = crypto.randomBytes(16).toString('base64'); - const get = isSecure ? https.get : http.get; - const path = parsedUrl.search - ? `${parsedUrl.pathname || '/'}${parsedUrl.search}` - : parsedUrl.pathname || '/'; - var perMessageDeflate; - - opts.createConnection = isSecure ? tlsConnect : netConnect; - opts.defaultPort = opts.defaultPort || defaultPort; - opts.port = parsedUrl.port || defaultPort; - opts.host = parsedUrl.hostname.startsWith('[') - ? parsedUrl.hostname.slice(1, -1) - : parsedUrl.hostname; - opts.headers = Object.assign( - { - 'Sec-WebSocket-Version': opts.protocolVersion, - 'Sec-WebSocket-Key': key, - Connection: 'Upgrade', - Upgrade: 'websocket' - }, - opts.headers - ); - opts.path = path; - opts.timeout = opts.handshakeTimeout; - - if (opts.perMessageDeflate) { - perMessageDeflate = new PerMessageDeflate( - opts.perMessageDeflate !== true ? opts.perMessageDeflate : {}, - false, - opts.maxPayload - ); - opts.headers['Sec-WebSocket-Extensions'] = extension.format({ - [PerMessageDeflate.extensionName]: perMessageDeflate.offer() - }); - } - if (protocols) { - opts.headers['Sec-WebSocket-Protocol'] = protocols; - } - if (opts.origin) { - if (opts.protocolVersion < 13) { - opts.headers['Sec-WebSocket-Origin'] = opts.origin; - } else { - opts.headers.Origin = opts.origin; - } - } - if (parsedUrl.auth) { - opts.auth = parsedUrl.auth; - } else if (parsedUrl.username || parsedUrl.password) { - opts.auth = `${parsedUrl.username}:${parsedUrl.password}`; - } - - if (isUnixSocket) { - const parts = path.split(':'); - - opts.socketPath = parts[0]; - opts.path = parts[1]; - } - - var req = (websocket._req = get(opts)); - - if (opts.timeout) { - req.on('timeout', () => { - abortHandshake(websocket, req, 'Opening handshake has timed out'); - }); - } - - req.on('error', (err) => { - if (websocket._req.aborted) return; - - req = websocket._req = null; - websocket.readyState = WebSocket.CLOSING; - websocket.emit('error', err); - websocket.emitClose(); - }); - - req.on('response', (res) => { - const location = res.headers.location; - const statusCode = res.statusCode; - - if ( - location && - opts.followRedirects && - statusCode >= 300 && - statusCode < 400 - ) { - if (++websocket._redirects > opts.maxRedirects) { - abortHandshake(websocket, req, 'Maximum redirects exceeded'); - return; - } - - req.abort(); - - const addr = url.URL - ? new url.URL(location, address) - : url.resolve(address, location); - - initAsClient(websocket, addr, protocols, options); - } else if (!websocket.emit('unexpected-response', req, res)) { - abortHandshake( - websocket, - req, - `Unexpected server response: ${res.statusCode}` - ); - } - }); - - req.on('upgrade', (res, socket, head) => { - websocket.emit('upgrade', res); - - // - // The user may have closed the connection from a listener of the `upgrade` - // event. - // - if (websocket.readyState !== WebSocket.CONNECTING) return; - - req = websocket._req = null; - - const digest = crypto - .createHash('sha1') - .update(key + GUID) - .digest('base64'); - - if (res.headers['sec-websocket-accept'] !== digest) { - abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header'); - return; - } - - const serverProt = res.headers['sec-websocket-protocol']; - const protList = (protocols || '').split(/, */); - var protError; - - if (!protocols && serverProt) { - protError = 'Server sent a subprotocol but none was requested'; - } else if (protocols && !serverProt) { - protError = 'Server sent no subprotocol'; - } else if (serverProt && !protList.includes(serverProt)) { - protError = 'Server sent an invalid subprotocol'; - } - - if (protError) { - abortHandshake(websocket, socket, protError); - return; - } - - if (serverProt) websocket.protocol = serverProt; - - if (perMessageDeflate) { - try { - const extensions = extension.parse( - res.headers['sec-websocket-extensions'] - ); - - if (extensions[PerMessageDeflate.extensionName]) { - perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]); - websocket._extensions[ - PerMessageDeflate.extensionName - ] = perMessageDeflate; - } - } catch (err) { - abortHandshake( - websocket, - socket, - 'Invalid Sec-WebSocket-Extensions header' - ); - return; - } - } - - websocket.setSocket(socket, head, opts.maxPayload); - }); -} - -/** - * Create a `net.Socket` and initiate a connection. - * - * @param {Object} options Connection options - * @return {net.Socket} The newly created socket used to start the connection - * @private - */ -function netConnect(options) { - // - // Override `options.path` only if `options` is a copy of the original options - // object. This is always true on Node.js >= 8 but not on Node.js 6 where - // `options.socketPath` might be `undefined` even if the `socketPath` option - // was originally set. - // - if (options.protocolVersion) options.path = options.socketPath; - return net.connect(options); -} - -/** - * Create a `tls.TLSSocket` and initiate a connection. - * - * @param {Object} options Connection options - * @return {tls.TLSSocket} The newly created socket used to start the connection - * @private - */ -function tlsConnect(options) { - options.path = undefined; - options.servername = options.servername || options.host; - return tls.connect(options); -} - -/** - * Abort the handshake and emit an error. - * - * @param {WebSocket} websocket The WebSocket instance - * @param {(http.ClientRequest|net.Socket)} stream The request to abort or the - * socket to destroy - * @param {String} message The error message - * @private - */ -function abortHandshake(websocket, stream, message) { - websocket.readyState = WebSocket.CLOSING; - - const err = new Error(message); - Error.captureStackTrace(err, abortHandshake); - - if (stream.setHeader) { - stream.abort(); - stream.once('abort', websocket.emitClose.bind(websocket)); - websocket.emit('error', err); - } else { - stream.destroy(err); - stream.once('error', websocket.emit.bind(websocket, 'error')); - stream.once('close', websocket.emitClose.bind(websocket)); - } -} - -/** - * The listener of the `Receiver` `'conclude'` event. - * - * @param {Number} code The status code - * @param {String} reason The reason for closing - * @private - */ -function receiverOnConclude(code, reason) { - const websocket = this[kWebSocket]; - - websocket._socket.removeListener('data', socketOnData); - websocket._socket.resume(); - - websocket._closeFrameReceived = true; - websocket._closeMessage = reason; - websocket._closeCode = code; - - if (code === 1005) websocket.close(); - else websocket.close(code, reason); -} - -/** - * The listener of the `Receiver` `'drain'` event. - * - * @private - */ -function receiverOnDrain() { - this[kWebSocket]._socket.resume(); -} - -/** - * The listener of the `Receiver` `'error'` event. - * - * @param {(RangeError|Error)} err The emitted error - * @private - */ -function receiverOnError(err) { - const websocket = this[kWebSocket]; - - websocket._socket.removeListener('data', socketOnData); - - websocket.readyState = WebSocket.CLOSING; - websocket._closeCode = err[kStatusCode]; - websocket.emit('error', err); - websocket._socket.destroy(); -} - -/** - * The listener of the `Receiver` `'finish'` event. - * - * @private - */ -function receiverOnFinish() { - this[kWebSocket].emitClose(); -} - -/** - * The listener of the `Receiver` `'message'` event. - * - * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message - * @private - */ -function receiverOnMessage(data) { - this[kWebSocket].emit('message', data); -} - -/** - * The listener of the `Receiver` `'ping'` event. - * - * @param {Buffer} data The data included in the ping frame - * @private - */ -function receiverOnPing(data) { - const websocket = this[kWebSocket]; - - websocket.pong(data, !websocket._isServer, NOOP); - websocket.emit('ping', data); -} - -/** - * The listener of the `Receiver` `'pong'` event. - * - * @param {Buffer} data The data included in the pong frame - * @private - */ -function receiverOnPong(data) { - this[kWebSocket].emit('pong', data); -} - -/** - * The listener of the `net.Socket` `'close'` event. - * - * @private - */ -function socketOnClose() { - const websocket = this[kWebSocket]; - - this.removeListener('close', socketOnClose); - this.removeListener('end', socketOnEnd); - - websocket.readyState = WebSocket.CLOSING; - - // - // The close frame might not have been received or the `'end'` event emitted, - // for example, if the socket was destroyed due to an error. Ensure that the - // `receiver` stream is closed after writing any remaining buffered data to - // it. If the readable side of the socket is in flowing mode then there is no - // buffered data as everything has been already written and `readable.read()` - // will return `null`. If instead, the socket is paused, any possible buffered - // data will be read as a single chunk and emitted synchronously in a single - // `'data'` event. - // - websocket._socket.read(); - websocket._receiver.end(); - - this.removeListener('data', socketOnData); - this[kWebSocket] = undefined; - - clearTimeout(websocket._closeTimer); - - if ( - websocket._receiver._writableState.finished || - websocket._receiver._writableState.errorEmitted - ) { - websocket.emitClose(); - } else { - websocket._receiver.on('error', receiverOnFinish); - websocket._receiver.on('finish', receiverOnFinish); - } -} - -/** - * The listener of the `net.Socket` `'data'` event. - * - * @param {Buffer} chunk A chunk of data - * @private - */ -function socketOnData(chunk) { - if (!this[kWebSocket]._receiver.write(chunk)) { - this.pause(); - } -} - -/** - * The listener of the `net.Socket` `'end'` event. - * - * @private - */ -function socketOnEnd() { - const websocket = this[kWebSocket]; - - websocket.readyState = WebSocket.CLOSING; - websocket._receiver.end(); - this.end(); -} - -/** - * The listener of the `net.Socket` `'error'` event. - * - * @private - */ -function socketOnError() { - const websocket = this[kWebSocket]; - - this.removeListener('error', socketOnError); - this.on('error', NOOP); - - websocket.readyState = WebSocket.CLOSING; - this.destroy(); -} diff --git a/gateway/node_modules/ws/package.json b/gateway/node_modules/ws/package.json deleted file mode 100644 index 4e0af13..0000000 --- a/gateway/node_modules/ws/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "ws", - "version": "6.2.1", - "description": "Simple to use, blazing fast and thoroughly tested websocket client and server for Node.js", - "keywords": [ - "HyBi", - "Push", - "RFC-6455", - "WebSocket", - "WebSockets", - "real-time" - ], - "homepage": "https://github.com/websockets/ws", - "bugs": "https://github.com/websockets/ws/issues", - "repository": "websockets/ws", - "author": "Einar Otto Stangvik (http://2x.io)", - "license": "MIT", - "main": "index.js", - "browser": "browser.js", - "files": [ - "browser.js", - "index.js", - "lib/*.js" - ], - "scripts": { - "test": "npm run lint && nyc --reporter=html --reporter=text mocha test/*.test.js", - "integration": "npm run lint && mocha test/*.integration.js", - "lint": "eslint --ignore-path .gitignore . && prettier --check --ignore-path .gitignore \"**/*.{json,md,yml}\"" - }, - "dependencies": { - "async-limiter": "~1.0.0" - }, - "devDependencies": { - "benchmark": "~2.1.4", - "bufferutil": "~4.0.0", - "coveralls": "~3.0.3", - "eslint": "~5.15.0", - "eslint-config-prettier": "~4.1.0", - "eslint-plugin-prettier": "~3.0.0", - "mocha": "~6.0.0", - "nyc": "~13.3.0", - "prettier": "~1.16.1", - "utf-8-validate": "~5.0.0" - } -} diff --git a/gateway/node_modules/xdg-basedir/index.d.ts b/gateway/node_modules/xdg-basedir/index.d.ts deleted file mode 100644 index c70b7d4..0000000 --- a/gateway/node_modules/xdg-basedir/index.d.ts +++ /dev/null @@ -1,81 +0,0 @@ -declare const xdgBasedir: { - /** - Directory for user-specific data files. - - @example - ```js - import xdgBasedir = require('xdg-basedir'); - - xdgBasedir.data; - //=> '/home/sindresorhus/.local/share' - ``` - */ - readonly data?: string; - - /** - Directory for user-specific configuration files. - - @example - ```js - import xdgBasedir = require('xdg-basedir'); - - xdgBasedir.config; - //=> '/home/sindresorhus/.config' - ``` - */ - readonly config?: string; - - /** - Directory for user-specific non-essential data files. - - @example - ```js - import xdgBasedir = require('xdg-basedir'); - - xdgBasedir.cache; - //=> '/home/sindresorhus/.cache' - ``` - */ - readonly cache?: string; - - /** - Directory for user-specific non-essential runtime files and other file objects (such as sockets, named pipes, etc). - - @example - ```js - import xdgBasedir = require('xdg-basedir'); - - xdgBasedir.runtime; - //=> '/run/user/sindresorhus' - ``` - */ - readonly runtime?: string; - - /** - Preference-ordered array of base directories to search for data files in addition to `.data`. - - @example - ```js - import xdgBasedir = require('xdg-basedir'); - - xdgBasedir.dataDirs - //=> ['/home/sindresorhus/.local/share', '/usr/local/share/', '/usr/share/'] - ``` - */ - readonly dataDirs: readonly string[]; - - /** - Preference-ordered array of base directories to search for configuration files in addition to `.config`. - - @example - ```js - import xdgBasedir = require('xdg-basedir'); - - xdgBasedir.configDirs; - //=> ['/home/sindresorhus/.config', '/etc/xdg'] - ``` - */ - readonly configDirs: readonly string[]; -}; - -export = xdgBasedir; diff --git a/gateway/node_modules/xdg-basedir/index.js b/gateway/node_modules/xdg-basedir/index.js deleted file mode 100644 index 0da1f2f..0000000 --- a/gateway/node_modules/xdg-basedir/index.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; -const os = require('os'); -const path = require('path'); - -const homeDirectory = os.homedir(); -const {env} = process; - -exports.data = env.XDG_DATA_HOME || - (homeDirectory ? path.join(homeDirectory, '.local', 'share') : undefined); - -exports.config = env.XDG_CONFIG_HOME || - (homeDirectory ? path.join(homeDirectory, '.config') : undefined); - -exports.cache = env.XDG_CACHE_HOME || (homeDirectory ? path.join(homeDirectory, '.cache') : undefined); - -exports.runtime = env.XDG_RUNTIME_DIR || undefined; - -exports.dataDirs = (env.XDG_DATA_DIRS || '/usr/local/share/:/usr/share/').split(':'); - -if (exports.data) { - exports.dataDirs.unshift(exports.data); -} - -exports.configDirs = (env.XDG_CONFIG_DIRS || '/etc/xdg').split(':'); - -if (exports.config) { - exports.configDirs.unshift(exports.config); -} diff --git a/gateway/node_modules/xdg-basedir/license b/gateway/node_modules/xdg-basedir/license deleted file mode 100644 index e7af2f7..0000000 --- a/gateway/node_modules/xdg-basedir/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/xdg-basedir/package.json b/gateway/node_modules/xdg-basedir/package.json deleted file mode 100644 index c906ded..0000000 --- a/gateway/node_modules/xdg-basedir/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "xdg-basedir", - "version": "4.0.0", - "description": "Get XDG Base Directory paths", - "license": "MIT", - "repository": "sindresorhus/xdg-basedir", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "xdg", - "base", - "directory", - "basedir", - "path", - "data", - "config", - "cache", - "linux", - "unix", - "spec" - ], - "devDependencies": { - "ava": "^1.4.1", - "import-fresh": "^3.0.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/gateway/node_modules/xdg-basedir/readme.md b/gateway/node_modules/xdg-basedir/readme.md deleted file mode 100644 index f7aca05..0000000 --- a/gateway/node_modules/xdg-basedir/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -# xdg-basedir [![Build Status](https://travis-ci.org/sindresorhus/xdg-basedir.svg?branch=master)](https://travis-ci.org/sindresorhus/xdg-basedir) - -> Get [XDG Base Directory](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) paths - - -## Install - -``` -$ npm install xdg-basedir -``` - - -## Usage - -```js -const xdgBasedir = require('xdg-basedir'); - -xdgBasedir.data; -//=> '/home/sindresorhus/.local/share' - -xdgBasedir.config; -//=> '/home/sindresorhus/.config' - -xdgBasedir.dataDirs -//=> ['/home/sindresorhus/.local/share', '/usr/local/share/', '/usr/share/'] -``` - - -## API - -The properties `.data`, `.config`, `.cache`, `.runtime` will return `null` in the uncommon case that both the XDG environment variable is not set and the users home directory can't be found. You need to handle this case. A common solution is to [fall back to a temp directory](https://github.com/yeoman/configstore/blob/b82690fc401318ad18dcd7d151a0003a4898a314/index.js#L15). - -### .data - -Directory for user-specific data files. - -### .config - -Directory for user-specific configuration files. - -### .cache - -Directory for user-specific non-essential data files. - -### .runtime - -Directory for user-specific non-essential runtime files and other file objects (such as sockets, named pipes, etc). - -### .dataDirs - -Preference-ordered array of base directories to search for data files in addition to `.data`. - -### .configDirs - -Preference-ordered array of base directories to search for configuration files in addition to `.config`. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/gateway/node_modules/xss/CHANGELOG.md b/gateway/node_modules/xss/CHANGELOG.md deleted file mode 100644 index ce5691a..0000000 --- a/gateway/node_modules/xss/CHANGELOG.md +++ /dev/null @@ -1,8 +0,0 @@ -## v1.0.8 (2020-07-27) - -[Allow default imports in TS #200](https://github.com/leizongmin/js-xss/pull/200) by @danvk -[Update handling of quoteStart to prevent sanitization bypass #201](https://github.com/leizongmin/js-xss/pull/201) by @TomAnthony - -## v1.0.7 (2020-06-08) - -[added support for src embedded image, ftp and relative urls](https://github.com/leizongmin/js-xss/pull/189) by @sijanec diff --git a/gateway/node_modules/xss/LICENSE b/gateway/node_modules/xss/LICENSE deleted file mode 100644 index f840eb4..0000000 --- a/gateway/node_modules/xss/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2012-2018 Zongmin Lei(雷宗民) -http://ucdok.com - -The MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/gateway/node_modules/xss/README.md b/gateway/node_modules/xss/README.md deleted file mode 100644 index 6d07b84..0000000 --- a/gateway/node_modules/xss/README.md +++ /dev/null @@ -1,499 +0,0 @@ -[![NPM version][npm-image]][npm-url] -[![build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![David deps][david-image]][david-url] -[![node version][node-image]][node-url] -[![npm download][download-image]][download-url] -[![npm license][license-image]][download-url] - -[npm-image]: https://img.shields.io/npm/v/xss.svg?style=flat-square -[npm-url]: https://npmjs.org/package/xss -[travis-image]: https://img.shields.io/travis/leizongmin/js-xss.svg?style=flat-square -[travis-url]: https://travis-ci.org/leizongmin/js-xss -[coveralls-image]: https://img.shields.io/coveralls/leizongmin/js-xss.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/leizongmin/js-xss?branch=master -[david-image]: https://img.shields.io/david/leizongmin/js-xss.svg?style=flat-square -[david-url]: https://david-dm.org/leizongmin/js-xss -[node-image]: https://img.shields.io/badge/node.js-%3E=_0.10-green.svg?style=flat-square -[node-url]: http://nodejs.org/download/ -[download-image]: https://img.shields.io/npm/dm/xss.svg?style=flat-square -[download-url]: https://npmjs.org/package/xss -[license-image]: https://img.shields.io/npm/l/xss.svg - -# Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist. - -[![Greenkeeper badge](https://badges.greenkeeper.io/leizongmin/js-xss.svg)](https://greenkeeper.io/) - -![xss](https://nodei.co/npm/xss.png?downloads=true&stars=true) - ---- - -`xss` is a module used to filter input from users to prevent XSS attacks. -([What is XSS attack?](http://en.wikipedia.org/wiki/Cross-site_scripting)) - -**Project Homepage:** http://jsxss.com - -**Try Online:** http://jsxss.com/en/try.html - -**[中文版文档](https://github.com/leizongmin/js-xss/blob/master/README.zh.md)** - ---- - -## Features - -* Specifies HTML tags and their attributes allowed with whitelist -* Handle any tags or attributes using custom function. - -## Reference - -* [XSS Filter Evasion Cheat Sheet](https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet) -* [Data URI scheme](http://en.wikipedia.org/wiki/Data_URI_scheme) -* [XSS with Data URI Scheme](http://hi.baidu.com/badzzzz/item/bdbafe83144619c199255f7b) - -## Benchmark (for references only) - -* the xss module: 22.53 MB/s -* `xss()` function from module `validator@0.3.7`: 6.9 MB/s - -For test code please refer to `benchmark` directory. - -## They are using xss module - -* **nodeclub** - A Node.js bbs using MongoDB - https://github.com/cnodejs/nodeclub -* **cnpmjs.org** - Private npm registry and web for Enterprise - https://github.com/cnpm/cnpmjs.org - -## Install - -### NPM - -```bash -npm install xss -``` - -### Bower - -```bash -bower install xss -``` - -Or - -```bash -bower install https://github.com/leizongmin/js-xss.git -``` - -## Usages - -### On Node.js - -```javascript -var xss = require("xss"); -var html = xss(''); -console.log(html); -``` - -### On Browser - -Shim mode (reference file `test/test.html`): - -```html - - -``` - -AMD mode - shim: - -```html - -``` - -**Notes: please don't use the URL https://rawgit.com/leizongmin/js-xss/master/dist/xss.js in production environment.** - -## Command Line Tool - -### Process File - -You can use the xss command line tool to process a file. Usage: - -```bash -xss -i -o -``` - -Example: - -```bash -xss -i origin.html -o target.html -``` - -### Active Test - -Run the following command, them you can type HTML -code in the command-line, and check the filtered output: - -```bash -xss -t -``` - -For more details, please run `$ xss -h` to see it. - -## Custom filter rules - -When using the `xss()` function, the second parameter could be used to specify -custom rules: - -```javascript -options = {}; // Custom rules -html = xss('', options); -``` - -To avoid passing `options` every time, you can also do it in a faster way by -creating a `FilterXSS` instance: - -```javascript -options = {}; // Custom rules -myxss = new xss.FilterXSS(options); -// then apply myxss.process() -html = myxss.process(''); -``` - -Details of parameters in `options` would be described below. - -### Whitelist - -By specifying a `whiteList`, e.g. `{ 'tagName': [ 'attr-1', 'attr-2' ] }`. Tags -and attributes not in the whitelist would be filter out. For example: - -```javascript -// only tag a and its attributes href, title, target are allowed -var options = { - whiteList: { - a: ["href", "title", "target"] - } -}; -// With the configuration specified above, the following HTML: -// Hello -// would become: -// Hello -``` - -For the default whitelist, please refer `xss.whiteList`. - -### Customize the handler function for matched tags - -By specifying the handler function with `onTag`: - -```javascript -function onTag(tag, html, options) { - // tag is the name of current tag, e.g. 'a' for tag - // html is the HTML of this tag, e.g. '' for tag - // options is some addition informations: - // isWhite boolean, whether the tag is in whitelist - // isClosing boolean, whether the tag is a closing tag, e.g. true for - // position integer, the position of the tag in output result - // sourcePosition integer, the position of the tag in input HTML source - // If a string is returned, the current tag would be replaced with the string - // If return nothing, the default measure would be taken: - // If in whitelist: filter attributes using onTagAttr, as described below - // If not in whitelist: handle by onIgnoreTag, as described below -} -``` - -### Customize the handler function for attributes of matched tags - -By specifying the handler function with `onTagAttr`: - -```javascript -function onTagAttr(tag, name, value, isWhiteAttr) { - // tag is the name of current tag, e.g. 'a' for tag - // name is the name of current attribute, e.g. 'href' for href="#" - // isWhiteAttr whether the attribute is in whitelist - // If a string is returned, the attribute would be replaced with the string - // If return nothing, the default measure would be taken: - // If in whitelist: filter the value using safeAttrValue as described below - // If not in whitelist: handle by onIgnoreTagAttr, as described below -} -``` - -### Customize the handler function for tags not in the whitelist - -By specifying the handler function with `onIgnoreTag`: - -```javascript -function onIgnoreTag(tag, html, options) { - // Parameters are the same with onTag - // If a string is returned, the tag would be replaced with the string - // If return nothing, the default measure would be taken (specifies using - // escape, as described below) -} -``` - -### Customize the handler function for attributes not in the whitelist - -By specifying the handler function with `onIgnoreTagAttr`: - -```javascript -function onIgnoreTagAttr(tag, name, value, isWhiteAttr) { - // Parameters are the same with onTagAttr - // If a string is returned, the value would be replaced with this string - // If return nothing, then keep default (remove the attribute) -} -``` - -### Customize escaping function for HTML - -By specifying the handler function with `escapeHtml`. Following is the default -function **(Modification is not recommended)**: - -```javascript -function escapeHtml(html) { - return html.replace(//g, ">"); -} -``` - -### Customize escaping function for value of attributes - -By specifying the handler function with `safeAttrValue`: - -```javascript -function safeAttrValue(tag, name, value) { - // Parameters are the same with onTagAttr (without options) - // Return the value as a string -} -``` - -### Customize CSS filter - -If you allow the attribute `style`, the value will be processed by [cssfilter](https://github.com/leizongmin/js-css-filter) module. The cssfilter module includes a default css whitelist. You can specify the options for cssfilter module like this: - -```javascript -myxss = new xss.FilterXSS({ - css: { - whiteList: { - position: /^fixed|relative$/, - top: true, - left: true - } - } -}); -html = myxss.process(''); -``` - -If you don't want to filter out the `style` content, just specify `false` to the `css` option: - -```javascript -myxss = new xss.FilterXSS({ - css: false -}); -``` - -For more help, please see https://github.com/leizongmin/js-css-filter - -### Quick Start - -#### Filter out tags not in the whitelist - -By using `stripIgnoreTag` parameter: - -* `true` filter out tags not in the whitelist -* `false`: by default: escape the tag using configured `escape` function - -Example: - -If `stripIgnoreTag = true` is set, the following code: - -```html -code: -``` - -would output filtered: - -```html -code:alert(/xss/); -``` - -#### Filter out tags and tag bodies not in the whitelist - -By using `stripIgnoreTagBody` parameter: - -* `false|null|undefined` by default: do nothing -* `'*'|true`: filter out all tags not in the whitelist -* `['tag1', 'tag2']`: filter out only specified tags not in the whitelist - -Example: - -If `stripIgnoreTagBody = ['script']` is set, the following code: - -```html -code: -``` - -would output filtered: - -```html -code: -``` - -#### Filter out HTML comments - -By using `allowCommentTag` parameter: - -* `true`: do nothing -* `false` by default: filter out HTML comments - -Example: - -If `allowCommentTag = false` is set, the following code: - -```html -code: END -``` - -would output filtered: - -```html -code: END -``` - -## Examples - -### Allow attributes of whitelist tags start with `data-` - -```javascript -var source = '
hello
'; -var html = xss(source, { - onIgnoreTagAttr: function(tag, name, value, isWhiteAttr) { - if (name.substr(0, 5) === "data-") { - // escape its value using built-in escapeAttrValue function - return name + '="' + xss.escapeAttrValue(value) + '"'; - } - } -}); - -console.log("%s\nconvert to:\n%s", source, html); -``` - -Result: - -```html -
hello
-convert to: -
hello
-``` - -### Allow tags start with `x-` - -```javascript -var source = "hewwww
"; -var html = xss(source, { - onIgnoreTag: function(tag, html, options) { - if (tag.substr(0, 2) === "x-") { - // do not filter its attributes - return html; - } - } -}); - -console.log("%s\nconvert to:\n%s", source, html); -``` - -Result: - -```html -hewwww -convert to: -<x>hewwww -``` - -### Parse images in HTML - -```javascript -var source = - 'abcd'; -var list = []; -var html = xss(source, { - onTagAttr: function(tag, name, value, isWhiteAttr) { - if (tag === "img" && name === "src") { - // Use the built-in friendlyAttrValue function to escape attribute - // values. It supports converting entity tags such as < to printable - // characters such as < - list.push(xss.friendlyAttrValue(value)); - } - // Return nothing, means keep the default handling measure - } -}); - -console.log("image list:\n%s", list.join(", ")); -``` - -Result: - -```html -image list: -img1, img2, img3, img4 -``` - -### Filter out HTML tags (keeps only plain text) - -```javascript -var source = "helloend"; -var html = xss(source, { - whiteList: [], // empty, means filter out all tags - stripIgnoreTag: true, // filter out all HTML not in the whitelist - stripIgnoreTagBody: ["script"] // the script tag is a special case, we need - // to filter out its content -}); - -console.log("text: %s", html); -``` - -Result: - -```html -text: helloend -``` - -## License - -```text -Copyright (c) 2012-2018 Zongmin Lei(雷宗民) -http://ucdok.com - -The MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -``` diff --git a/gateway/node_modules/xss/README.zh.md b/gateway/node_modules/xss/README.zh.md deleted file mode 100644 index 0111746..0000000 --- a/gateway/node_modules/xss/README.zh.md +++ /dev/null @@ -1,485 +0,0 @@ -[![NPM version][npm-image]][npm-url] -[![build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![David deps][david-image]][david-url] -[![node version][node-image]][node-url] -[![npm download][download-image]][download-url] -[![npm license][license-image]][download-url] - -[npm-image]: https://img.shields.io/npm/v/xss.svg?style=flat-square -[npm-url]: https://npmjs.org/package/xss -[travis-image]: https://img.shields.io/travis/leizongmin/js-xss.svg?style=flat-square -[travis-url]: https://travis-ci.org/leizongmin/js-xss -[coveralls-image]: https://img.shields.io/coveralls/leizongmin/js-xss.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/leizongmin/js-xss?branch=master -[david-image]: https://img.shields.io/david/leizongmin/js-xss.svg?style=flat-square -[david-url]: https://david-dm.org/leizongmin/js-xss -[node-image]: https://img.shields.io/badge/node.js-%3E=_0.10-green.svg?style=flat-square -[node-url]: http://nodejs.org/download/ -[download-image]: https://img.shields.io/npm/dm/xss.svg?style=flat-square -[download-url]: https://npmjs.org/package/xss -[license-image]: https://img.shields.io/npm/l/xss.svg - -# 根据白名单过滤 HTML(防止 XSS 攻击) - -![xss](https://nodei.co/npm/xss.png?downloads=true&stars=true) - ---- - -`xss`是一个用于对用户输入的内容进行过滤,以避免遭受 XSS 攻击的模块([什么是 XSS 攻击?](http://baike.baidu.com/view/2161269.htm))。主要用于论坛、博客、网上商店等等一些可允许用户录入页面排版、格式控制相关的 HTML 的场景,`xss`模块通过白名单来控制允许的标签及相关的标签属性,另外还提供了一系列的接口以便用户扩展,比其他同类模块更为灵活。 - -**项目主页:** http://jsxss.com - -**在线测试:** http://jsxss.com/zh/try.html - ---- - -## 特性 - -* 白名单控制允许的 HTML 标签及各标签的属性 -* 通过自定义处理函数,可对任意标签及其属性进行处理 - -## 参考资料 - -* [XSS 与字符编码的那些事儿 ---科普文](http://drops.wooyun.org/tips/689) -* [腾讯实例教程:那些年我们一起学 XSS](http://www.wooyun.org/whitehats/%E5%BF%83%E4%BC%A4%E7%9A%84%E7%98%A6%E5%AD%90) -* [mXSS 攻击的成因及常见种类](http://drops.wooyun.org/tips/956) -* [XSS Filter Evasion Cheat Sheet](https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet) -* [Data URI scheme](http://en.wikipedia.org/wiki/Data_URI_scheme) -* [XSS with Data URI Scheme](http://hi.baidu.com/badzzzz/item/bdbafe83144619c199255f7b) - -## 性能(仅作参考) - -* xss 模块:22.53 MB/s -* validator@0.3.7 模块的 xss()函数:6.9 MB/s - -测试代码参考 benchmark 目录 - -## 安装 - -### NPM - -```bash -npm install xss -``` - -### Bower - -```bash -bower install xss -``` - -或者 - -```bash -bower install https://github.com/leizongmin/js-xss.git -``` - -## 使用方法 - -### 在 Node.js 中使用 - -```javascript -var xss = require("xss"); -var html = xss(''); -console.log(html); -``` - -### 在浏览器端使用 - -Shim 模式(参考文件 `test/test.html`): - -```html - - -``` - -AMD 模式(参考文件 `test/test_amd.html`): - -```html - -``` - -**说明:请勿将 URL https://rawgit.com/leizongmin/js-xss/master/dist/xss.js 用于生产环境。** - -### 使用命令行工具来对文件进行 XSS 处理 - -### 处理文件 - -可通过内置的 `xss` 命令来对输入的文件进行 XSS 处理。使用方法: - -```bash -xss -i <源文件> -o <目标文件> -``` - -例: - -```bash -xss -i origin.html -o target.html -``` - -### 在线测试 - -执行以下命令,可在命令行中输入 HTML 代码,并看到过滤后的代码: - -```bash -xss -t -``` - -详细命令行参数说明,请输入 `$ xss -h` 来查看。 - -## 自定义过滤规则 - -在调用 `xss()` 函数进行过滤时,可通过第二个参数来设置自定义规则: - -```javascript -options = {}; // 自定义规则 -html = xss('', options); -``` - -如果不想每次都传入一个 `options` 参数,可以创建一个 `FilterXSS` 实例(使用这种方法速度更快): - -``` -options = {}; // 自定义规则 -myxss = new xss.FilterXSS(options); -// 以后直接调用 myxss.process() 来处理即可 -html = myxss.process(''); -``` - -`options` 参数的详细说明见下文。 - -### 白名单 - -通过 `whiteList` 来指定,格式为:`{'标签名': ['属性1', '属性2']}`。不在白名单上的标签将被过滤,不在白名单上的属性也会被过滤。以下是示例: - -```javascript -// 只允许a标签,该标签只允许href, title, target这三个属性 -var options = { - whiteList: { - a: ["href", "title", "target"] - } -}; -// 使用以上配置后,下面的HTML -// 大家好 -// 将被过滤为 -// 大家好 -``` - -默认白名单参考 `xss.whiteList`。 - -### 自定义匹配到标签时的处理方法 - -通过 `onTag` 来指定相应的处理函数。以下是详细说明: - -```javascript -function onTag(tag, html, options) { - // tag是当前的标签名称,比如标签,则tag的值是'a' - // html是该标签的HTML,比如标签,则html的值是'' - // options是一些附加的信息,具体如下: - // isWhite boolean类型,表示该标签是否在白名单上 - // isClosing boolean类型,表示该标签是否为闭合标签,比如时为true - // position integer类型,表示当前标签在输出的结果中的起始位置 - // sourcePosition integer类型,表示当前标签在原HTML中的起始位置 - // 如果返回一个字符串,则当前标签将被替换为该字符串 - // 如果不返回任何值,则使用默认的处理方法: - // 在白名单上: 通过onTagAttr来过滤属性,详见下文 - // 不在白名单上:通过onIgnoreTag指定,详见下文 -} -``` - -### 自定义匹配到标签的属性时的处理方法 - -通过 `onTagAttr` 来指定相应的处理函数。以下是详细说明: - -```javascript -function onTagAttr(tag, name, value, isWhiteAttr) { - // tag是当前的标签名称,比如标签,则tag的值是'a' - // name是当前属性的名称,比如href="#",则name的值是'href' - // value是当前属性的值,比如href="#",则value的值是'#' - // isWhiteAttr是否为白名单上的属性 - // 如果返回一个字符串,则当前属性值将被替换为该字符串 - // 如果不返回任何值,则使用默认的处理方法 - // 在白名单上: 调用safeAttrValue来过滤属性值,并输出该属性,详见下文 - // 不在白名单上:通过onIgnoreTagAttr指定,详见下文 -} -``` - -### 自定义匹配到不在白名单上的标签时的处理方法 - -通过 `onIgnoreTag` 来指定相应的处理函数。以下是详细说明: - -```javascript -function onIgnoreTag(tag, html, options) { - // 参数说明与onTag相同 - // 如果返回一个字符串,则当前标签将被替换为该字符串 - // 如果不返回任何值,则使用默认的处理方法(通过escape指定,详见下文) -} -``` - -### 自定义匹配到不在白名单上的属性时的处理方法 - -通过 `onIgnoreTagAttr` 来指定相应的处理函数。以下是详细说明: - -```javascript -function onIgnoreTagAttr(tag, name, value, isWhiteAttr) { - // 参数说明与onTagAttr相同 - // 如果返回一个字符串,则当前属性值将被替换为该字符串 - // 如果不返回任何值,则使用默认的处理方法(删除该属) -} -``` - -### 自定义 HTML 转义函数 - -通过 `escapeHtml` 来指定相应的处理函数。以下是默认代码 **(不建议修改)** : - -```javascript -function escapeHtml(html) { - return html.replace(//g, ">"); -} -``` - -### 自定义标签属性值的转义函数 - -通过 `safeAttrValue` 来指定相应的处理函数。以下是详细说明: - -```javascript -function safeAttrValue(tag, name, value) { - // 参数说明与onTagAttr相同(没有options参数) - // 返回一个字符串表示该属性值 -} -``` - -### 自定义 CSS 过滤器 - -如果配置中允许了标签的 `style` 属性,则它的值会通过[cssfilter](https://github.com/leizongmin/js-css-filter) 模块处理。 -`cssfilter` 模块包含了一个默认的 CSS 白名单,你可以通过以下的方式配置: - -```javascript -myxss = new xss.FilterXSS({ - css: { - whiteList: { - position: /^fixed|relative$/, - top: true, - left: true - } - } -}); -html = myxss.process(''); -``` - -如果不想使用 CSS 过滤器来处理 `style` 属性的内容,可指定 `css` 选项的值为 `false`: - -```javascript -myxss = new xss.FilterXSS({ - css: false -}); -``` - -要获取更多的帮助信息可看这里:https://github.com/leizongmin/js-css-filter - -### 快捷配置 - -#### 去掉不在白名单上的标签 - -通过 `stripIgnoreTag` 来设置: - -* `true`:去掉不在白名单上的标签 -* `false`:(默认),使用配置的`escape`函数对该标签进行转义 - -示例: - -当设置 `stripIgnoreTag = true`时,以下代码 - -```html -code: -``` - -过滤后将输出 - -```html -code:alert(/xss/); -``` - -#### 去掉不在白名单上的标签及标签体 - -通过 `stripIgnoreTagBody` 来设置: - -* `false|null|undefined`:(默认),不特殊处理 -* `'*'|true`:去掉所有不在白名单上的标签 -* `['tag1', 'tag2']`:仅去掉指定的不在白名单上的标签 - -示例: - -当设置 `stripIgnoreTagBody = ['script']`时,以下代码 - -```html -code: -``` - -过滤后将输出 - -```html -code: -``` - -#### 去掉 HTML 备注 - -通过 `allowCommentTag` 来设置: - -* `true`:不处理 -* `false`:(默认),自动去掉 HTML 中的备注 - -示例: - -当设置 `allowCommentTag = false` 时,以下代码 - -```html -code: END -``` - -过滤后将输出 - -```html -code: END -``` - -## 应用实例 - -### 允许标签以 data-开头的属性 - -```javascript -var source = '
hello
'; -var html = xss(source, { - onIgnoreTagAttr: function(tag, name, value, isWhiteAttr) { - if (name.substr(0, 5) === "data-") { - // 通过内置的escapeAttrValue函数来对属性值进行转义 - return name + '="' + xss.escapeAttrValue(value) + '"'; - } - } -}); - -console.log("%s\nconvert to:\n%s", source, html); -``` - -运行结果: - -```html -
hello
-convert to: -
hello
-``` - -### 允许名称以 x-开头的标签 - -```javascript -var source = "hewwww
"; -var html = xss(source, { - onIgnoreTag: function(tag, html, options) { - if (tag.substr(0, 2) === "x-") { - // 不对其属性列表进行过滤 - return html; - } - } -}); - -console.log("%s\nconvert to:\n%s", source, html); -``` - -运行结果: - -```html -hewwww -convert to: -<x>hewwww -``` - -### 分析 HTML 代码中的图片列表 - -```javascript -var source = - 'abcd'; -var list = []; -var html = xss(source, { - onTagAttr: function(tag, name, value, isWhiteAttr) { - if (tag === "img" && name === "src") { - // 使用内置的friendlyAttrValue函数来对属性值进行转义,可将<这类的实体标记转换成打印字符< - list.push(xss.friendlyAttrValue(value)); - } - // 不返回任何值,表示还是按照默认的方法处理 - } -}); - -console.log("image list:\n%s", list.join(", ")); -``` - -运行结果: - -```html -image list: -img1, img2, img3, img4 -``` - -### 去除 HTML 标签(只保留文本内容) - -```javascript -var source = "helloend"; -var html = xss(source, { - whiteList: [], // 白名单为空,表示过滤所有标签 - stripIgnoreTag: true, // 过滤所有非白名单标签的HTML - stripIgnoreTagBody: ["script"] // script标签较特殊,需要过滤标签中间的内容 -}); - -console.log("text: %s", html); -``` - -运行结果: - -```html -text: helloend -``` - -## 授权协议 - -```text -Copyright (c) 2012-2018 Zongmin Lei(雷宗民) -http://ucdok.com - -The MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -``` diff --git a/gateway/node_modules/xss/bin/xss b/gateway/node_modules/xss/bin/xss deleted file mode 100755 index 35e902f..0000000 --- a/gateway/node_modules/xss/bin/xss +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env node - -/** - * 命令行工具 - * - * @author Zongmin Lei - */ - -var fs = require('fs'); -var path = require('path'); -var program = require('commander'); -var xss = require('../'); -var packageInfo = require('../package.json'); - -program - .version(packageInfo.version) - .option('-t, --test', 'active test') - .option('-i, --input ', 'input file name') - .option('-o, --output ', 'output filename') - .option('-c, --config ', 'load custom config') - .option('-s, --strip-ignore-tag', 'set stripIgnoreTag=true') - .option('-b, --strip-ignore-tag-body', 'set stripIgnoreTagBody=true'); - -program.on('--help', function () { - console.log(' Examples:'); - console.log(''); - console.log(' $ xss -t'); - console.log(' $ xss -i origin.html'); - console.log(' $ xss -i origin.html -o targer.html'); - console.log(' $ xss -i origin.html -c config.js'); - console.log(' $ xss -i origin.html -s'); - console.log(' $ xss -i origin.html -s -b'); - console.log(''); - console.log(' For more details, please see: https://npmjs.org/package/xss') -}); - -program.parse(process.argv); - -if (program.test) { - require('../lib/cli'); - return; -} - -var config = {}; -if (program.config) { - config = require(path.resolve(program.config)); -} -if (program.input) { - var input = fs.readFileSync(program.input, 'utf8'); -} else { - program.help(); -} - -if (program['strip-ignore-tag']) { - config.stripIgnoreTag = true; -} -if (program['strip-ignore-tag-body']) { - config.stripIgnoreTagBody = true; -} - -var output = xss(input, config); - -if (program.output) { - fs.writeFileSync(program.output, output); -} else { - console.log(output); -} diff --git a/gateway/node_modules/xss/dist/test.html b/gateway/node_modules/xss/dist/test.html deleted file mode 100644 index cae361e..0000000 --- a/gateway/node_modules/xss/dist/test.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - 测试 - - - -

-
-
-
-
\ No newline at end of file
diff --git a/gateway/node_modules/xss/dist/xss.js b/gateway/node_modules/xss/dist/xss.js
deleted file mode 100644
index ff25295..0000000
--- a/gateway/node_modules/xss/dist/xss.js
+++ /dev/null
@@ -1,1621 +0,0 @@
-(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i
- */
-
-var FilterCSS = require("cssfilter").FilterCSS;
-var getDefaultCSSWhiteList = require("cssfilter").getDefaultWhiteList;
-var _ = require("./util");
-
-function getDefaultWhiteList() {
-  return {
-    a: ["target", "href", "title"],
-    abbr: ["title"],
-    address: [],
-    area: ["shape", "coords", "href", "alt"],
-    article: [],
-    aside: [],
-    audio: ["autoplay", "controls", "loop", "preload", "src"],
-    b: [],
-    bdi: ["dir"],
-    bdo: ["dir"],
-    big: [],
-    blockquote: ["cite"],
-    br: [],
-    caption: [],
-    center: [],
-    cite: [],
-    code: [],
-    col: ["align", "valign", "span", "width"],
-    colgroup: ["align", "valign", "span", "width"],
-    dd: [],
-    del: ["datetime"],
-    details: ["open"],
-    div: [],
-    dl: [],
-    dt: [],
-    em: [],
-    font: ["color", "size", "face"],
-    footer: [],
-    h1: [],
-    h2: [],
-    h3: [],
-    h4: [],
-    h5: [],
-    h6: [],
-    header: [],
-    hr: [],
-    i: [],
-    img: ["src", "alt", "title", "width", "height"],
-    ins: ["datetime"],
-    li: [],
-    mark: [],
-    nav: [],
-    ol: [],
-    p: [],
-    pre: [],
-    s: [],
-    section: [],
-    small: [],
-    span: [],
-    sub: [],
-    sup: [],
-    strong: [],
-    table: ["width", "border", "align", "valign"],
-    tbody: ["align", "valign"],
-    td: ["width", "rowspan", "colspan", "align", "valign"],
-    tfoot: ["align", "valign"],
-    th: ["width", "rowspan", "colspan", "align", "valign"],
-    thead: ["align", "valign"],
-    tr: ["rowspan", "align", "valign"],
-    tt: [],
-    u: [],
-    ul: [],
-    video: ["autoplay", "controls", "loop", "preload", "src", "height", "width"]
-  };
-}
-
-var defaultCSSFilter = new FilterCSS();
-
-/**
- * default onTag function
- *
- * @param {String} tag
- * @param {String} html
- * @param {Object} options
- * @return {String}
- */
-function onTag(tag, html, options) {
-  // do nothing
-}
-
-/**
- * default onIgnoreTag function
- *
- * @param {String} tag
- * @param {String} html
- * @param {Object} options
- * @return {String}
- */
-function onIgnoreTag(tag, html, options) {
-  // do nothing
-}
-
-/**
- * default onTagAttr function
- *
- * @param {String} tag
- * @param {String} name
- * @param {String} value
- * @return {String}
- */
-function onTagAttr(tag, name, value) {
-  // do nothing
-}
-
-/**
- * default onIgnoreTagAttr function
- *
- * @param {String} tag
- * @param {String} name
- * @param {String} value
- * @return {String}
- */
-function onIgnoreTagAttr(tag, name, value) {
-  // do nothing
-}
-
-/**
- * default escapeHtml function
- *
- * @param {String} html
- */
-function escapeHtml(html) {
-  return html.replace(REGEXP_LT, "<").replace(REGEXP_GT, ">");
-}
-
-/**
- * default safeAttrValue function
- *
- * @param {String} tag
- * @param {String} name
- * @param {String} value
- * @param {Object} cssFilter
- * @return {String}
- */
-function safeAttrValue(tag, name, value, cssFilter) {
-  // unescape attribute value firstly
-  value = friendlyAttrValue(value);
-
-  if (name === "href" || name === "src") {
-    // filter `href` and `src` attribute
-    // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`
-    value = _.trim(value);
-    if (value === "#") return "#";
-    if (
-      !(
-        value.substr(0, 7) === "http://" ||
-        value.substr(0, 8) === "https://" ||
-        value.substr(0, 7) === "mailto:" ||
-        value.substr(0, 4) === "tel:" ||
-        value.substr(0, 11) === "data:image/" ||
-        value.substr(0, 6) === "ftp://" ||
-        value.substr(0, 2) === "./" ||
-        value.substr(0, 3) === "../" ||
-        value[0] === "#" ||
-        value[0] === "/"
-      )
-    ) {
-      return "";
-    }
-  } else if (name === "background") {
-    // filter `background` attribute (maybe no use)
-    // `javascript:`
-    REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
-    if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
-      return "";
-    }
-  } else if (name === "style") {
-    // `expression()`
-    REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;
-    if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {
-      return "";
-    }
-    // `url()`
-    REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;
-    if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {
-      REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
-      if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
-        return "";
-      }
-    }
-    if (cssFilter !== false) {
-      cssFilter = cssFilter || defaultCSSFilter;
-      value = cssFilter.process(value);
-    }
-  }
-
-  // escape `<>"` before returns
-  value = escapeAttrValue(value);
-  return value;
-}
-
-// RegExp list
-var REGEXP_LT = //g;
-var REGEXP_QUOTE = /"/g;
-var REGEXP_QUOTE_2 = /"/g;
-var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;
-var REGEXP_ATTR_VALUE_COLON = /:?/gim;
-var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;
-var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\/\*|\*\//gm;
-var REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi;
-var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi;
-var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi;
-var REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi;
-var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi;
-
-/**
- * escape doube quote
- *
- * @param {String} str
- * @return {String} str
- */
-function escapeQuote(str) {
-  return str.replace(REGEXP_QUOTE, """);
-}
-
-/**
- * unescape double quote
- *
- * @param {String} str
- * @return {String} str
- */
-function unescapeQuote(str) {
-  return str.replace(REGEXP_QUOTE_2, '"');
-}
-
-/**
- * escape html entities
- *
- * @param {String} str
- * @return {String}
- */
-function escapeHtmlEntities(str) {
-  return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {
-    return code[0] === "x" || code[0] === "X"
-      ? String.fromCharCode(parseInt(code.substr(1), 16))
-      : String.fromCharCode(parseInt(code, 10));
-  });
-}
-
-/**
- * escape html5 new danger entities
- *
- * @param {String} str
- * @return {String}
- */
-function escapeDangerHtml5Entities(str) {
-  return str
-    .replace(REGEXP_ATTR_VALUE_COLON, ":")
-    .replace(REGEXP_ATTR_VALUE_NEWLINE, " ");
-}
-
-/**
- * clear nonprintable characters
- *
- * @param {String} str
- * @return {String}
- */
-function clearNonPrintableCharacter(str) {
-  var str2 = "";
-  for (var i = 0, len = str.length; i < len; i++) {
-    str2 += str.charCodeAt(i) < 32 ? " " : str.charAt(i);
-  }
-  return _.trim(str2);
-}
-
-/**
- * get friendly attribute value
- *
- * @param {String} str
- * @return {String}
- */
-function friendlyAttrValue(str) {
-  str = unescapeQuote(str);
-  str = escapeHtmlEntities(str);
-  str = escapeDangerHtml5Entities(str);
-  str = clearNonPrintableCharacter(str);
-  return str;
-}
-
-/**
- * unescape attribute value
- *
- * @param {String} str
- * @return {String}
- */
-function escapeAttrValue(str) {
-  str = escapeQuote(str);
-  str = escapeHtml(str);
-  return str;
-}
-
-/**
- * `onIgnoreTag` function for removing all the tags that are not in whitelist
- */
-function onIgnoreTagStripAll() {
-  return "";
-}
-
-/**
- * remove tag body
- * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)
- *
- * @param {array} tags
- * @param {function} next
- */
-function StripTagBody(tags, next) {
-  if (typeof next !== "function") {
-    next = function() {};
-  }
-
-  var isRemoveAllTag = !Array.isArray(tags);
-  function isRemoveTag(tag) {
-    if (isRemoveAllTag) return true;
-    return _.indexOf(tags, tag) !== -1;
-  }
-
-  var removeList = [];
-  var posStart = false;
-
-  return {
-    onIgnoreTag: function(tag, html, options) {
-      if (isRemoveTag(tag)) {
-        if (options.isClosing) {
-          var ret = "[/removed]";
-          var end = options.position + ret.length;
-          removeList.push([
-            posStart !== false ? posStart : options.position,
-            end
-          ]);
-          posStart = false;
-          return ret;
-        } else {
-          if (!posStart) {
-            posStart = options.position;
-          }
-          return "[removed]";
-        }
-      } else {
-        return next(tag, html, options);
-      }
-    },
-    remove: function(html) {
-      var rethtml = "";
-      var lastPos = 0;
-      _.forEach(removeList, function(pos) {
-        rethtml += html.slice(lastPos, pos[0]);
-        lastPos = pos[1];
-      });
-      rethtml += html.slice(lastPos);
-      return rethtml;
-    }
-  };
-}
-
-/**
- * remove html comments
- *
- * @param {String} html
- * @return {String}
- */
-function stripCommentTag(html) {
-  return html.replace(STRIP_COMMENT_TAG_REGEXP, "");
-}
-var STRIP_COMMENT_TAG_REGEXP = //g;
-
-/**
- * remove invisible characters
- *
- * @param {String} html
- * @return {String}
- */
-function stripBlankChar(html) {
-  var chars = html.split("");
-  chars = chars.filter(function(char) {
-    var c = char.charCodeAt(0);
-    if (c === 127) return false;
-    if (c <= 31) {
-      if (c === 10 || c === 13) return true;
-      return false;
-    }
-    return true;
-  });
-  return chars.join("");
-}
-
-exports.whiteList = getDefaultWhiteList();
-exports.getDefaultWhiteList = getDefaultWhiteList;
-exports.onTag = onTag;
-exports.onIgnoreTag = onIgnoreTag;
-exports.onTagAttr = onTagAttr;
-exports.onIgnoreTagAttr = onIgnoreTagAttr;
-exports.safeAttrValue = safeAttrValue;
-exports.escapeHtml = escapeHtml;
-exports.escapeQuote = escapeQuote;
-exports.unescapeQuote = unescapeQuote;
-exports.escapeHtmlEntities = escapeHtmlEntities;
-exports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;
-exports.clearNonPrintableCharacter = clearNonPrintableCharacter;
-exports.friendlyAttrValue = friendlyAttrValue;
-exports.escapeAttrValue = escapeAttrValue;
-exports.onIgnoreTagStripAll = onIgnoreTagStripAll;
-exports.StripTagBody = StripTagBody;
-exports.stripCommentTag = stripCommentTag;
-exports.stripBlankChar = stripBlankChar;
-exports.cssFilter = defaultCSSFilter;
-exports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;
-
-},{"./util":4,"cssfilter":8}],2:[function(require,module,exports){
-/**
- * xss
- *
- * @author Zongmin Lei
- */
-
-var DEFAULT = require("./default");
-var parser = require("./parser");
-var FilterXSS = require("./xss");
-
-/**
- * filter xss function
- *
- * @param {String} html
- * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }
- * @return {String}
- */
-function filterXSS(html, options) {
-  var xss = new FilterXSS(options);
-  return xss.process(html);
-}
-
-exports = module.exports = filterXSS;
-exports.filterXSS = filterXSS;
-exports.FilterXSS = FilterXSS;
-for (var i in DEFAULT) exports[i] = DEFAULT[i];
-for (var i in parser) exports[i] = parser[i];
-
-// using `xss` on the browser, output `filterXSS` to the globals
-if (typeof window !== "undefined") {
-  window.filterXSS = module.exports;
-}
-
-// using `xss` on the WebWorker, output `filterXSS` to the globals
-function isWorkerEnv() {
-  return typeof self !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined' && self instanceof DedicatedWorkerGlobalScope;
-}
-if (isWorkerEnv()) {
-  self.filterXSS = module.exports;
-}
-
-},{"./default":1,"./parser":3,"./xss":5}],3:[function(require,module,exports){
-/**
- * Simple HTML Parser
- *
- * @author Zongmin Lei
- */
-
-var _ = require("./util");
-
-/**
- * get tag name
- *
- * @param {String} html e.g. '
' - * @return {String} - */ -function getTagName(html) { - var i = _.spaceIndex(html); - if (i === -1) { - var tagName = html.slice(1, -1); - } else { - var tagName = html.slice(1, i + 1); - } - tagName = _.trim(tagName).toLowerCase(); - if (tagName.slice(0, 1) === "/") tagName = tagName.slice(1); - if (tagName.slice(-1) === "/") tagName = tagName.slice(0, -1); - return tagName; -} - -/** - * is close tag? - * - * @param {String} html 如:'' - * @return {Boolean} - */ -function isClosing(html) { - return html.slice(0, 2) === "") { - rethtml += escapeHtml(html.slice(lastPos, tagStart)); - currentHtml = html.slice(tagStart, currentPos + 1); - currentTagName = getTagName(currentHtml); - rethtml += onTag( - tagStart, - rethtml.length, - currentTagName, - currentHtml, - isClosing(currentHtml) - ); - lastPos = currentPos + 1; - tagStart = false; - continue; - } - if ((c === '"' || c === "'")) { - var i = 1; - var ic = html.charAt(currentPos - i); - - while ((ic === " ") || (ic === "=")) { - if (ic === "=") { - quoteStart = c; - continue chariterator; - } - ic = html.charAt(currentPos - ++i); - } - } - } else { - if (c === quoteStart) { - quoteStart = false; - continue; - } - } - } - } - if (lastPos < html.length) { - rethtml += escapeHtml(html.substr(lastPos)); - } - - return rethtml; -} - -var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\.\-]/gim; - -/** - * parse input attributes and returns processed attributes - * - * @param {String} html e.g. `href="#" target="_blank"` - * @param {Function} onAttr e.g. `function (name, value)` - * @return {String} - */ -function parseAttr(html, onAttr) { - "use strict"; - - var lastPos = 0; - var retAttrs = []; - var tmpName = false; - var len = html.length; - - function addAttr(name, value) { - name = _.trim(name); - name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase(); - if (name.length < 1) return; - var ret = onAttr(name, value || ""); - if (ret) retAttrs.push(ret); - } - - // 逐个分析字符 - for (var i = 0; i < len; i++) { - var c = html.charAt(i); - var v, j; - if (tmpName === false && c === "=") { - tmpName = html.slice(lastPos, i); - lastPos = i + 1; - continue; - } - if (tmpName !== false) { - if ( - i === lastPos && - (c === '"' || c === "'") && - html.charAt(i - 1) === "=" - ) { - j = html.indexOf(c, i + 1); - if (j === -1) { - break; - } else { - v = _.trim(html.slice(lastPos + 1, j)); - addAttr(tmpName, v); - tmpName = false; - i = j; - lastPos = i + 1; - continue; - } - } - } - if (/\s|\n|\t/.test(c)) { - html = html.replace(/\s|\n|\t/g, " "); - if (tmpName === false) { - j = findNextEqual(html, i); - if (j === -1) { - v = _.trim(html.slice(lastPos, i)); - addAttr(v); - tmpName = false; - lastPos = i + 1; - continue; - } else { - i = j - 1; - continue; - } - } else { - j = findBeforeEqual(html, i - 1); - if (j === -1) { - v = _.trim(html.slice(lastPos, i)); - v = stripQuoteWrap(v); - addAttr(tmpName, v); - tmpName = false; - lastPos = i + 1; - continue; - } else { - continue; - } - } - } - } - - if (lastPos < html.length) { - if (tmpName === false) { - addAttr(html.slice(lastPos)); - } else { - addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos)))); - } - } - - return _.trim(retAttrs.join(" ")); -} - -function findNextEqual(str, i) { - for (; i < str.length; i++) { - var c = str[i]; - if (c === " ") continue; - if (c === "=") return i; - return -1; - } -} - -function findBeforeEqual(str, i) { - for (; i > 0; i--) { - var c = str[i]; - if (c === " ") continue; - if (c === "=") return i; - return -1; - } -} - -function isQuoteWrapString(text) { - if ( - (text[0] === '"' && text[text.length - 1] === '"') || - (text[0] === "'" && text[text.length - 1] === "'") - ) { - return true; - } else { - return false; - } -} - -function stripQuoteWrap(text) { - if (isQuoteWrapString(text)) { - return text.substr(1, text.length - 2); - } else { - return text; - } -} - -exports.parseTag = parseTag; -exports.parseAttr = parseAttr; - -},{"./util":4}],4:[function(require,module,exports){ -module.exports = { - indexOf: function(arr, item) { - var i, j; - if (Array.prototype.indexOf) { - return arr.indexOf(item); - } - for (i = 0, j = arr.length; i < j; i++) { - if (arr[i] === item) { - return i; - } - } - return -1; - }, - forEach: function(arr, fn, scope) { - var i, j; - if (Array.prototype.forEach) { - return arr.forEach(fn, scope); - } - for (i = 0, j = arr.length; i < j; i++) { - fn.call(scope, arr[i], i, arr); - } - }, - trim: function(str) { - if (String.prototype.trim) { - return str.trim(); - } - return str.replace(/(^\s*)|(\s*$)/g, ""); - }, - spaceIndex: function(str) { - var reg = /\s|\n|\t/; - var match = reg.exec(str); - return match ? match.index : -1; - } -}; - -},{}],5:[function(require,module,exports){ -/** - * filter xss - * - * @author Zongmin Lei - */ - -var FilterCSS = require("cssfilter").FilterCSS; -var DEFAULT = require("./default"); -var parser = require("./parser"); -var parseTag = parser.parseTag; -var parseAttr = parser.parseAttr; -var _ = require("./util"); - -/** - * returns `true` if the input value is `undefined` or `null` - * - * @param {Object} obj - * @return {Boolean} - */ -function isNull(obj) { - return obj === undefined || obj === null; -} - -/** - * get attributes for a tag - * - * @param {String} html - * @return {Object} - * - {String} html - * - {Boolean} closing - */ -function getAttrs(html) { - var i = _.spaceIndex(html); - if (i === -1) { - return { - html: "", - closing: html[html.length - 2] === "/" - }; - } - html = _.trim(html.slice(i + 1, -1)); - var isClosing = html[html.length - 1] === "/"; - if (isClosing) html = _.trim(html.slice(0, -1)); - return { - html: html, - closing: isClosing - }; -} - -/** - * shallow copy - * - * @param {Object} obj - * @return {Object} - */ -function shallowCopyObject(obj) { - var ret = {}; - for (var i in obj) { - ret[i] = obj[i]; - } - return ret; -} - -/** - * FilterXSS class - * - * @param {Object} options - * whiteList, onTag, onTagAttr, onIgnoreTag, - * onIgnoreTagAttr, safeAttrValue, escapeHtml - * stripIgnoreTagBody, allowCommentTag, stripBlankChar - * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter` - */ -function FilterXSS(options) { - options = shallowCopyObject(options || {}); - - if (options.stripIgnoreTag) { - if (options.onIgnoreTag) { - console.error( - 'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time' - ); - } - options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll; - } - - options.whiteList = options.whiteList || DEFAULT.whiteList; - options.onTag = options.onTag || DEFAULT.onTag; - options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr; - options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag; - options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr; - options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; - options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml; - this.options = options; - - if (options.css === false) { - this.cssFilter = false; - } else { - options.css = options.css || {}; - this.cssFilter = new FilterCSS(options.css); - } -} - -/** - * start process and returns result - * - * @param {String} html - * @return {String} - */ -FilterXSS.prototype.process = function(html) { - // compatible with the input - html = html || ""; - html = html.toString(); - if (!html) return ""; - - var me = this; - var options = me.options; - var whiteList = options.whiteList; - var onTag = options.onTag; - var onIgnoreTag = options.onIgnoreTag; - var onTagAttr = options.onTagAttr; - var onIgnoreTagAttr = options.onIgnoreTagAttr; - var safeAttrValue = options.safeAttrValue; - var escapeHtml = options.escapeHtml; - var cssFilter = me.cssFilter; - - // remove invisible characters - if (options.stripBlankChar) { - html = DEFAULT.stripBlankChar(html); - } - - // remove html comments - if (!options.allowCommentTag) { - html = DEFAULT.stripCommentTag(html); - } - - // if enable stripIgnoreTagBody - var stripIgnoreTagBody = false; - if (options.stripIgnoreTagBody) { - var stripIgnoreTagBody = DEFAULT.StripTagBody( - options.stripIgnoreTagBody, - onIgnoreTag - ); - onIgnoreTag = stripIgnoreTagBody.onIgnoreTag; - } - - var retHtml = parseTag( - html, - function(sourcePosition, position, tag, html, isClosing) { - var info = { - sourcePosition: sourcePosition, - position: position, - isClosing: isClosing, - isWhite: whiteList.hasOwnProperty(tag) - }; - - // call `onTag()` - var ret = onTag(tag, html, info); - if (!isNull(ret)) return ret; - - if (info.isWhite) { - if (info.isClosing) { - return ""; - } - - var attrs = getAttrs(html); - var whiteAttrList = whiteList[tag]; - var attrsHtml = parseAttr(attrs.html, function(name, value) { - // call `onTagAttr()` - var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1; - var ret = onTagAttr(tag, name, value, isWhiteAttr); - if (!isNull(ret)) return ret; - - if (isWhiteAttr) { - // call `safeAttrValue()` - value = safeAttrValue(tag, name, value, cssFilter); - if (value) { - return name + '="' + value + '"'; - } else { - return name; - } - } else { - // call `onIgnoreTagAttr()` - var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr); - if (!isNull(ret)) return ret; - return; - } - }); - - // build new tag html - var html = "<" + tag; - if (attrsHtml) html += " " + attrsHtml; - if (attrs.closing) html += " /"; - html += ">"; - return html; - } else { - // call `onIgnoreTag()` - var ret = onIgnoreTag(tag, html, info); - if (!isNull(ret)) return ret; - return escapeHtml(html); - } - }, - escapeHtml - ); - - // if enable stripIgnoreTagBody - if (stripIgnoreTagBody) { - retHtml = stripIgnoreTagBody.remove(retHtml); - } - - return retHtml; -}; - -module.exports = FilterXSS; - -},{"./default":1,"./parser":3,"./util":4,"cssfilter":8}],6:[function(require,module,exports){ -/** - * cssfilter - * - * @author 老雷 - */ - -var DEFAULT = require('./default'); -var parseStyle = require('./parser'); -var _ = require('./util'); - - -/** - * 返回值是否为空 - * - * @param {Object} obj - * @return {Boolean} - */ -function isNull (obj) { - return (obj === undefined || obj === null); -} - -/** - * 浅拷贝对象 - * - * @param {Object} obj - * @return {Object} - */ -function shallowCopyObject (obj) { - var ret = {}; - for (var i in obj) { - ret[i] = obj[i]; - } - return ret; -} - -/** - * 创建CSS过滤器 - * - * @param {Object} options - * - {Object} whiteList - * - {Function} onAttr - * - {Function} onIgnoreAttr - * - {Function} safeAttrValue - */ -function FilterCSS (options) { - options = shallowCopyObject(options || {}); - options.whiteList = options.whiteList || DEFAULT.whiteList; - options.onAttr = options.onAttr || DEFAULT.onAttr; - options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr; - options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; - this.options = options; -} - -FilterCSS.prototype.process = function (css) { - // 兼容各种奇葩输入 - css = css || ''; - css = css.toString(); - if (!css) return ''; - - var me = this; - var options = me.options; - var whiteList = options.whiteList; - var onAttr = options.onAttr; - var onIgnoreAttr = options.onIgnoreAttr; - var safeAttrValue = options.safeAttrValue; - - var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) { - - var check = whiteList[name]; - var isWhite = false; - if (check === true) isWhite = check; - else if (typeof check === 'function') isWhite = check(value); - else if (check instanceof RegExp) isWhite = check.test(value); - if (isWhite !== true) isWhite = false; - - // 如果过滤后 value 为空则直接忽略 - value = safeAttrValue(name, value); - if (!value) return; - - var opts = { - position: position, - sourcePosition: sourcePosition, - source: source, - isWhite: isWhite - }; - - if (isWhite) { - - var ret = onAttr(name, value, opts); - if (isNull(ret)) { - return name + ':' + value; - } else { - return ret; - } - - } else { - - var ret = onIgnoreAttr(name, value, opts); - if (!isNull(ret)) { - return ret; - } - - } - }); - - return retCSS; -}; - - -module.exports = FilterCSS; - -},{"./default":7,"./parser":9,"./util":10}],7:[function(require,module,exports){ -/** - * cssfilter - * - * @author 老雷 - */ - -function getDefaultWhiteList () { - // 白名单值说明: - // true: 允许该属性 - // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许 - // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许 - // 除上面列出的值外均表示不允许 - var whiteList = {}; - - whiteList['align-content'] = false; // default: auto - whiteList['align-items'] = false; // default: auto - whiteList['align-self'] = false; // default: auto - whiteList['alignment-adjust'] = false; // default: auto - whiteList['alignment-baseline'] = false; // default: baseline - whiteList['all'] = false; // default: depending on individual properties - whiteList['anchor-point'] = false; // default: none - whiteList['animation'] = false; // default: depending on individual properties - whiteList['animation-delay'] = false; // default: 0 - whiteList['animation-direction'] = false; // default: normal - whiteList['animation-duration'] = false; // default: 0 - whiteList['animation-fill-mode'] = false; // default: none - whiteList['animation-iteration-count'] = false; // default: 1 - whiteList['animation-name'] = false; // default: none - whiteList['animation-play-state'] = false; // default: running - whiteList['animation-timing-function'] = false; // default: ease - whiteList['azimuth'] = false; // default: center - whiteList['backface-visibility'] = false; // default: visible - whiteList['background'] = true; // default: depending on individual properties - whiteList['background-attachment'] = true; // default: scroll - whiteList['background-clip'] = true; // default: border-box - whiteList['background-color'] = true; // default: transparent - whiteList['background-image'] = true; // default: none - whiteList['background-origin'] = true; // default: padding-box - whiteList['background-position'] = true; // default: 0% 0% - whiteList['background-repeat'] = true; // default: repeat - whiteList['background-size'] = true; // default: auto - whiteList['baseline-shift'] = false; // default: baseline - whiteList['binding'] = false; // default: none - whiteList['bleed'] = false; // default: 6pt - whiteList['bookmark-label'] = false; // default: content() - whiteList['bookmark-level'] = false; // default: none - whiteList['bookmark-state'] = false; // default: open - whiteList['border'] = true; // default: depending on individual properties - whiteList['border-bottom'] = true; // default: depending on individual properties - whiteList['border-bottom-color'] = true; // default: current color - whiteList['border-bottom-left-radius'] = true; // default: 0 - whiteList['border-bottom-right-radius'] = true; // default: 0 - whiteList['border-bottom-style'] = true; // default: none - whiteList['border-bottom-width'] = true; // default: medium - whiteList['border-collapse'] = true; // default: separate - whiteList['border-color'] = true; // default: depending on individual properties - whiteList['border-image'] = true; // default: none - whiteList['border-image-outset'] = true; // default: 0 - whiteList['border-image-repeat'] = true; // default: stretch - whiteList['border-image-slice'] = true; // default: 100% - whiteList['border-image-source'] = true; // default: none - whiteList['border-image-width'] = true; // default: 1 - whiteList['border-left'] = true; // default: depending on individual properties - whiteList['border-left-color'] = true; // default: current color - whiteList['border-left-style'] = true; // default: none - whiteList['border-left-width'] = true; // default: medium - whiteList['border-radius'] = true; // default: 0 - whiteList['border-right'] = true; // default: depending on individual properties - whiteList['border-right-color'] = true; // default: current color - whiteList['border-right-style'] = true; // default: none - whiteList['border-right-width'] = true; // default: medium - whiteList['border-spacing'] = true; // default: 0 - whiteList['border-style'] = true; // default: depending on individual properties - whiteList['border-top'] = true; // default: depending on individual properties - whiteList['border-top-color'] = true; // default: current color - whiteList['border-top-left-radius'] = true; // default: 0 - whiteList['border-top-right-radius'] = true; // default: 0 - whiteList['border-top-style'] = true; // default: none - whiteList['border-top-width'] = true; // default: medium - whiteList['border-width'] = true; // default: depending on individual properties - whiteList['bottom'] = false; // default: auto - whiteList['box-decoration-break'] = true; // default: slice - whiteList['box-shadow'] = true; // default: none - whiteList['box-sizing'] = true; // default: content-box - whiteList['box-snap'] = true; // default: none - whiteList['box-suppress'] = true; // default: show - whiteList['break-after'] = true; // default: auto - whiteList['break-before'] = true; // default: auto - whiteList['break-inside'] = true; // default: auto - whiteList['caption-side'] = false; // default: top - whiteList['chains'] = false; // default: none - whiteList['clear'] = true; // default: none - whiteList['clip'] = false; // default: auto - whiteList['clip-path'] = false; // default: none - whiteList['clip-rule'] = false; // default: nonzero - whiteList['color'] = true; // default: implementation dependent - whiteList['color-interpolation-filters'] = true; // default: auto - whiteList['column-count'] = false; // default: auto - whiteList['column-fill'] = false; // default: balance - whiteList['column-gap'] = false; // default: normal - whiteList['column-rule'] = false; // default: depending on individual properties - whiteList['column-rule-color'] = false; // default: current color - whiteList['column-rule-style'] = false; // default: medium - whiteList['column-rule-width'] = false; // default: medium - whiteList['column-span'] = false; // default: none - whiteList['column-width'] = false; // default: auto - whiteList['columns'] = false; // default: depending on individual properties - whiteList['contain'] = false; // default: none - whiteList['content'] = false; // default: normal - whiteList['counter-increment'] = false; // default: none - whiteList['counter-reset'] = false; // default: none - whiteList['counter-set'] = false; // default: none - whiteList['crop'] = false; // default: auto - whiteList['cue'] = false; // default: depending on individual properties - whiteList['cue-after'] = false; // default: none - whiteList['cue-before'] = false; // default: none - whiteList['cursor'] = false; // default: auto - whiteList['direction'] = false; // default: ltr - whiteList['display'] = true; // default: depending on individual properties - whiteList['display-inside'] = true; // default: auto - whiteList['display-list'] = true; // default: none - whiteList['display-outside'] = true; // default: inline-level - whiteList['dominant-baseline'] = false; // default: auto - whiteList['elevation'] = false; // default: level - whiteList['empty-cells'] = false; // default: show - whiteList['filter'] = false; // default: none - whiteList['flex'] = false; // default: depending on individual properties - whiteList['flex-basis'] = false; // default: auto - whiteList['flex-direction'] = false; // default: row - whiteList['flex-flow'] = false; // default: depending on individual properties - whiteList['flex-grow'] = false; // default: 0 - whiteList['flex-shrink'] = false; // default: 1 - whiteList['flex-wrap'] = false; // default: nowrap - whiteList['float'] = false; // default: none - whiteList['float-offset'] = false; // default: 0 0 - whiteList['flood-color'] = false; // default: black - whiteList['flood-opacity'] = false; // default: 1 - whiteList['flow-from'] = false; // default: none - whiteList['flow-into'] = false; // default: none - whiteList['font'] = true; // default: depending on individual properties - whiteList['font-family'] = true; // default: implementation dependent - whiteList['font-feature-settings'] = true; // default: normal - whiteList['font-kerning'] = true; // default: auto - whiteList['font-language-override'] = true; // default: normal - whiteList['font-size'] = true; // default: medium - whiteList['font-size-adjust'] = true; // default: none - whiteList['font-stretch'] = true; // default: normal - whiteList['font-style'] = true; // default: normal - whiteList['font-synthesis'] = true; // default: weight style - whiteList['font-variant'] = true; // default: normal - whiteList['font-variant-alternates'] = true; // default: normal - whiteList['font-variant-caps'] = true; // default: normal - whiteList['font-variant-east-asian'] = true; // default: normal - whiteList['font-variant-ligatures'] = true; // default: normal - whiteList['font-variant-numeric'] = true; // default: normal - whiteList['font-variant-position'] = true; // default: normal - whiteList['font-weight'] = true; // default: normal - whiteList['grid'] = false; // default: depending on individual properties - whiteList['grid-area'] = false; // default: depending on individual properties - whiteList['grid-auto-columns'] = false; // default: auto - whiteList['grid-auto-flow'] = false; // default: none - whiteList['grid-auto-rows'] = false; // default: auto - whiteList['grid-column'] = false; // default: depending on individual properties - whiteList['grid-column-end'] = false; // default: auto - whiteList['grid-column-start'] = false; // default: auto - whiteList['grid-row'] = false; // default: depending on individual properties - whiteList['grid-row-end'] = false; // default: auto - whiteList['grid-row-start'] = false; // default: auto - whiteList['grid-template'] = false; // default: depending on individual properties - whiteList['grid-template-areas'] = false; // default: none - whiteList['grid-template-columns'] = false; // default: none - whiteList['grid-template-rows'] = false; // default: none - whiteList['hanging-punctuation'] = false; // default: none - whiteList['height'] = true; // default: auto - whiteList['hyphens'] = false; // default: manual - whiteList['icon'] = false; // default: auto - whiteList['image-orientation'] = false; // default: auto - whiteList['image-resolution'] = false; // default: normal - whiteList['ime-mode'] = false; // default: auto - whiteList['initial-letters'] = false; // default: normal - whiteList['inline-box-align'] = false; // default: last - whiteList['justify-content'] = false; // default: auto - whiteList['justify-items'] = false; // default: auto - whiteList['justify-self'] = false; // default: auto - whiteList['left'] = false; // default: auto - whiteList['letter-spacing'] = true; // default: normal - whiteList['lighting-color'] = true; // default: white - whiteList['line-box-contain'] = false; // default: block inline replaced - whiteList['line-break'] = false; // default: auto - whiteList['line-grid'] = false; // default: match-parent - whiteList['line-height'] = false; // default: normal - whiteList['line-snap'] = false; // default: none - whiteList['line-stacking'] = false; // default: depending on individual properties - whiteList['line-stacking-ruby'] = false; // default: exclude-ruby - whiteList['line-stacking-shift'] = false; // default: consider-shifts - whiteList['line-stacking-strategy'] = false; // default: inline-line-height - whiteList['list-style'] = true; // default: depending on individual properties - whiteList['list-style-image'] = true; // default: none - whiteList['list-style-position'] = true; // default: outside - whiteList['list-style-type'] = true; // default: disc - whiteList['margin'] = true; // default: depending on individual properties - whiteList['margin-bottom'] = true; // default: 0 - whiteList['margin-left'] = true; // default: 0 - whiteList['margin-right'] = true; // default: 0 - whiteList['margin-top'] = true; // default: 0 - whiteList['marker-offset'] = false; // default: auto - whiteList['marker-side'] = false; // default: list-item - whiteList['marks'] = false; // default: none - whiteList['mask'] = false; // default: border-box - whiteList['mask-box'] = false; // default: see individual properties - whiteList['mask-box-outset'] = false; // default: 0 - whiteList['mask-box-repeat'] = false; // default: stretch - whiteList['mask-box-slice'] = false; // default: 0 fill - whiteList['mask-box-source'] = false; // default: none - whiteList['mask-box-width'] = false; // default: auto - whiteList['mask-clip'] = false; // default: border-box - whiteList['mask-image'] = false; // default: none - whiteList['mask-origin'] = false; // default: border-box - whiteList['mask-position'] = false; // default: center - whiteList['mask-repeat'] = false; // default: no-repeat - whiteList['mask-size'] = false; // default: border-box - whiteList['mask-source-type'] = false; // default: auto - whiteList['mask-type'] = false; // default: luminance - whiteList['max-height'] = true; // default: none - whiteList['max-lines'] = false; // default: none - whiteList['max-width'] = true; // default: none - whiteList['min-height'] = true; // default: 0 - whiteList['min-width'] = true; // default: 0 - whiteList['move-to'] = false; // default: normal - whiteList['nav-down'] = false; // default: auto - whiteList['nav-index'] = false; // default: auto - whiteList['nav-left'] = false; // default: auto - whiteList['nav-right'] = false; // default: auto - whiteList['nav-up'] = false; // default: auto - whiteList['object-fit'] = false; // default: fill - whiteList['object-position'] = false; // default: 50% 50% - whiteList['opacity'] = false; // default: 1 - whiteList['order'] = false; // default: 0 - whiteList['orphans'] = false; // default: 2 - whiteList['outline'] = false; // default: depending on individual properties - whiteList['outline-color'] = false; // default: invert - whiteList['outline-offset'] = false; // default: 0 - whiteList['outline-style'] = false; // default: none - whiteList['outline-width'] = false; // default: medium - whiteList['overflow'] = false; // default: depending on individual properties - whiteList['overflow-wrap'] = false; // default: normal - whiteList['overflow-x'] = false; // default: visible - whiteList['overflow-y'] = false; // default: visible - whiteList['padding'] = true; // default: depending on individual properties - whiteList['padding-bottom'] = true; // default: 0 - whiteList['padding-left'] = true; // default: 0 - whiteList['padding-right'] = true; // default: 0 - whiteList['padding-top'] = true; // default: 0 - whiteList['page'] = false; // default: auto - whiteList['page-break-after'] = false; // default: auto - whiteList['page-break-before'] = false; // default: auto - whiteList['page-break-inside'] = false; // default: auto - whiteList['page-policy'] = false; // default: start - whiteList['pause'] = false; // default: implementation dependent - whiteList['pause-after'] = false; // default: implementation dependent - whiteList['pause-before'] = false; // default: implementation dependent - whiteList['perspective'] = false; // default: none - whiteList['perspective-origin'] = false; // default: 50% 50% - whiteList['pitch'] = false; // default: medium - whiteList['pitch-range'] = false; // default: 50 - whiteList['play-during'] = false; // default: auto - whiteList['position'] = false; // default: static - whiteList['presentation-level'] = false; // default: 0 - whiteList['quotes'] = false; // default: text - whiteList['region-fragment'] = false; // default: auto - whiteList['resize'] = false; // default: none - whiteList['rest'] = false; // default: depending on individual properties - whiteList['rest-after'] = false; // default: none - whiteList['rest-before'] = false; // default: none - whiteList['richness'] = false; // default: 50 - whiteList['right'] = false; // default: auto - whiteList['rotation'] = false; // default: 0 - whiteList['rotation-point'] = false; // default: 50% 50% - whiteList['ruby-align'] = false; // default: auto - whiteList['ruby-merge'] = false; // default: separate - whiteList['ruby-position'] = false; // default: before - whiteList['shape-image-threshold'] = false; // default: 0.0 - whiteList['shape-outside'] = false; // default: none - whiteList['shape-margin'] = false; // default: 0 - whiteList['size'] = false; // default: auto - whiteList['speak'] = false; // default: auto - whiteList['speak-as'] = false; // default: normal - whiteList['speak-header'] = false; // default: once - whiteList['speak-numeral'] = false; // default: continuous - whiteList['speak-punctuation'] = false; // default: none - whiteList['speech-rate'] = false; // default: medium - whiteList['stress'] = false; // default: 50 - whiteList['string-set'] = false; // default: none - whiteList['tab-size'] = false; // default: 8 - whiteList['table-layout'] = false; // default: auto - whiteList['text-align'] = true; // default: start - whiteList['text-align-last'] = true; // default: auto - whiteList['text-combine-upright'] = true; // default: none - whiteList['text-decoration'] = true; // default: none - whiteList['text-decoration-color'] = true; // default: currentColor - whiteList['text-decoration-line'] = true; // default: none - whiteList['text-decoration-skip'] = true; // default: objects - whiteList['text-decoration-style'] = true; // default: solid - whiteList['text-emphasis'] = true; // default: depending on individual properties - whiteList['text-emphasis-color'] = true; // default: currentColor - whiteList['text-emphasis-position'] = true; // default: over right - whiteList['text-emphasis-style'] = true; // default: none - whiteList['text-height'] = true; // default: auto - whiteList['text-indent'] = true; // default: 0 - whiteList['text-justify'] = true; // default: auto - whiteList['text-orientation'] = true; // default: mixed - whiteList['text-overflow'] = true; // default: clip - whiteList['text-shadow'] = true; // default: none - whiteList['text-space-collapse'] = true; // default: collapse - whiteList['text-transform'] = true; // default: none - whiteList['text-underline-position'] = true; // default: auto - whiteList['text-wrap'] = true; // default: normal - whiteList['top'] = false; // default: auto - whiteList['transform'] = false; // default: none - whiteList['transform-origin'] = false; // default: 50% 50% 0 - whiteList['transform-style'] = false; // default: flat - whiteList['transition'] = false; // default: depending on individual properties - whiteList['transition-delay'] = false; // default: 0s - whiteList['transition-duration'] = false; // default: 0s - whiteList['transition-property'] = false; // default: all - whiteList['transition-timing-function'] = false; // default: ease - whiteList['unicode-bidi'] = false; // default: normal - whiteList['vertical-align'] = false; // default: baseline - whiteList['visibility'] = false; // default: visible - whiteList['voice-balance'] = false; // default: center - whiteList['voice-duration'] = false; // default: auto - whiteList['voice-family'] = false; // default: implementation dependent - whiteList['voice-pitch'] = false; // default: medium - whiteList['voice-range'] = false; // default: medium - whiteList['voice-rate'] = false; // default: normal - whiteList['voice-stress'] = false; // default: normal - whiteList['voice-volume'] = false; // default: medium - whiteList['volume'] = false; // default: medium - whiteList['white-space'] = false; // default: normal - whiteList['widows'] = false; // default: 2 - whiteList['width'] = true; // default: auto - whiteList['will-change'] = false; // default: auto - whiteList['word-break'] = true; // default: normal - whiteList['word-spacing'] = true; // default: normal - whiteList['word-wrap'] = true; // default: normal - whiteList['wrap-flow'] = false; // default: auto - whiteList['wrap-through'] = false; // default: wrap - whiteList['writing-mode'] = false; // default: horizontal-tb - whiteList['z-index'] = false; // default: auto - - return whiteList; -} - - -/** - * 匹配到白名单上的一个属性时 - * - * @param {String} name - * @param {String} value - * @param {Object} options - * @return {String} - */ -function onAttr (name, value, options) { - // do nothing -} - -/** - * 匹配到不在白名单上的一个属性时 - * - * @param {String} name - * @param {String} value - * @param {Object} options - * @return {String} - */ -function onIgnoreAttr (name, value, options) { - // do nothing -} - -var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img; - -/** - * 过滤属性值 - * - * @param {String} name - * @param {String} value - * @return {String} - */ -function safeAttrValue(name, value) { - if (REGEXP_URL_JAVASCRIPT.test(value)) return ''; - return value; -} - - -exports.whiteList = getDefaultWhiteList(); -exports.getDefaultWhiteList = getDefaultWhiteList; -exports.onAttr = onAttr; -exports.onIgnoreAttr = onIgnoreAttr; -exports.safeAttrValue = safeAttrValue; - -},{}],8:[function(require,module,exports){ -/** - * cssfilter - * - * @author 老雷 - */ - -var DEFAULT = require('./default'); -var FilterCSS = require('./css'); - - -/** - * XSS过滤 - * - * @param {String} css 要过滤的CSS代码 - * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr - * @return {String} - */ -function filterCSS (html, options) { - var xss = new FilterCSS(options); - return xss.process(html); -} - - -// 输出 -exports = module.exports = filterCSS; -exports.FilterCSS = FilterCSS; -for (var i in DEFAULT) exports[i] = DEFAULT[i]; - -// 在浏览器端使用 -if (typeof window !== 'undefined') { - window.filterCSS = module.exports; -} - -},{"./css":6,"./default":7}],9:[function(require,module,exports){ -/** - * cssfilter - * - * @author 老雷 - */ - -var _ = require('./util'); - - -/** - * 解析style - * - * @param {String} css - * @param {Function} onAttr 处理属性的函数 - * 参数格式: function (sourcePosition, position, name, value, source) - * @return {String} - */ -function parseStyle (css, onAttr) { - css = _.trimRight(css); - if (css[css.length - 1] !== ';') css += ';'; - var cssLength = css.length; - var isParenthesisOpen = false; - var lastPos = 0; - var i = 0; - var retCSS = ''; - - function addNewAttr () { - // 如果没有正常的闭合圆括号,则直接忽略当前属性 - if (!isParenthesisOpen) { - var source = _.trim(css.slice(lastPos, i)); - var j = source.indexOf(':'); - if (j !== -1) { - var name = _.trim(source.slice(0, j)); - var value = _.trim(source.slice(j + 1)); - // 必须有属性名称 - if (name) { - var ret = onAttr(lastPos, retCSS.length, name, value, source); - if (ret) retCSS += ret + '; '; - } - } - } - lastPos = i + 1; - } - - for (; i < cssLength; i++) { - var c = css[i]; - if (c === '/' && css[i + 1] === '*') { - // 备注开始 - var j = css.indexOf('*/', i + 2); - // 如果没有正常的备注结束,则后面的部分全部跳过 - if (j === -1) break; - // 直接将当前位置调到备注结尾,并且初始化状态 - i = j + 1; - lastPos = i + 1; - isParenthesisOpen = false; - } else if (c === '(') { - isParenthesisOpen = true; - } else if (c === ')') { - isParenthesisOpen = false; - } else if (c === ';') { - if (isParenthesisOpen) { - // 在圆括号里面,忽略 - } else { - addNewAttr(); - } - } else if (c === '\n') { - addNewAttr(); - } - } - - return _.trim(retCSS); -} - -module.exports = parseStyle; - -},{"./util":10}],10:[function(require,module,exports){ -module.exports = { - indexOf: function (arr, item) { - var i, j; - if (Array.prototype.indexOf) { - return arr.indexOf(item); - } - for (i = 0, j = arr.length; i < j; i++) { - if (arr[i] === item) { - return i; - } - } - return -1; - }, - forEach: function (arr, fn, scope) { - var i, j; - if (Array.prototype.forEach) { - return arr.forEach(fn, scope); - } - for (i = 0, j = arr.length; i < j; i++) { - fn.call(scope, arr[i], i, arr); - } - }, - trim: function (str) { - if (String.prototype.trim) { - return str.trim(); - } - return str.replace(/(^\s*)|(\s*$)/g, ''); - }, - trimRight: function (str) { - if (String.prototype.trimRight) { - return str.trimRight(); - } - return str.replace(/(\s*$)/g, ''); - } -}; - -},{}]},{},[2]); diff --git a/gateway/node_modules/xss/dist/xss.min.js b/gateway/node_modules/xss/dist/xss.min.js deleted file mode 100644 index 31217e6..0000000 --- a/gateway/node_modules/xss/dist/xss.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i/g;var REGEXP_QUOTE=/"/g;var REGEXP_QUOTE_2=/"/g;var REGEXP_ATTR_VALUE_1=/&#([a-zA-Z0-9]*);?/gim;var REGEXP_ATTR_VALUE_COLON=/:?/gim;var REGEXP_ATTR_VALUE_NEWLINE=/&newline;?/gim;var REGEXP_DEFAULT_ON_TAG_ATTR_3=/\/\*|\*\//gm;var REGEXP_DEFAULT_ON_TAG_ATTR_4=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_5=/^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_6=/^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi;var REGEXP_DEFAULT_ON_TAG_ATTR_7=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_8=/u\s*r\s*l\s*\(.*/gi;function escapeQuote(str){return str.replace(REGEXP_QUOTE,""")}function unescapeQuote(str){return str.replace(REGEXP_QUOTE_2,'"')}function escapeHtmlEntities(str){return str.replace(REGEXP_ATTR_VALUE_1,function replaceUnicode(str,code){return code[0]==="x"||code[0]==="X"?String.fromCharCode(parseInt(code.substr(1),16)):String.fromCharCode(parseInt(code,10))})}function escapeDangerHtml5Entities(str){return str.replace(REGEXP_ATTR_VALUE_COLON,":").replace(REGEXP_ATTR_VALUE_NEWLINE," ")}function clearNonPrintableCharacter(str){var str2="";for(var i=0,len=str.length;i/g;function stripBlankChar(html){var chars=html.split("");chars=chars.filter(function(char){var c=char.charCodeAt(0);if(c===127)return false;if(c<=31){if(c===10||c===13)return true;return false}return true});return chars.join("")}exports.whiteList=getDefaultWhiteList();exports.getDefaultWhiteList=getDefaultWhiteList;exports.onTag=onTag;exports.onIgnoreTag=onIgnoreTag;exports.onTagAttr=onTagAttr;exports.onIgnoreTagAttr=onIgnoreTagAttr;exports.safeAttrValue=safeAttrValue;exports.escapeHtml=escapeHtml;exports.escapeQuote=escapeQuote;exports.unescapeQuote=unescapeQuote;exports.escapeHtmlEntities=escapeHtmlEntities;exports.escapeDangerHtml5Entities=escapeDangerHtml5Entities;exports.clearNonPrintableCharacter=clearNonPrintableCharacter;exports.friendlyAttrValue=friendlyAttrValue;exports.escapeAttrValue=escapeAttrValue;exports.onIgnoreTagStripAll=onIgnoreTagStripAll;exports.StripTagBody=StripTagBody;exports.stripCommentTag=stripCommentTag;exports.stripBlankChar=stripBlankChar;exports.cssFilter=defaultCSSFilter;exports.getDefaultCSSWhiteList=getDefaultCSSWhiteList},{"./util":4,cssfilter:8}],2:[function(require,module,exports){var DEFAULT=require("./default");var parser=require("./parser");var FilterXSS=require("./xss");function filterXSS(html,options){var xss=new FilterXSS(options);return xss.process(html)}exports=module.exports=filterXSS;exports.filterXSS=filterXSS;exports.FilterXSS=FilterXSS;for(var i in DEFAULT)exports[i]=DEFAULT[i];for(var i in parser)exports[i]=parser[i];if(typeof window!=="undefined"){window.filterXSS=module.exports}function isWorkerEnv(){return typeof self!=="undefined"&&typeof DedicatedWorkerGlobalScope!=="undefined"&&self instanceof DedicatedWorkerGlobalScope}if(isWorkerEnv()){self.filterXSS=module.exports}},{"./default":1,"./parser":3,"./xss":5}],3:[function(require,module,exports){var _=require("./util");function getTagName(html){var i=_.spaceIndex(html);if(i===-1){var tagName=html.slice(1,-1)}else{var tagName=html.slice(1,i+1)}tagName=_.trim(tagName).toLowerCase();if(tagName.slice(0,1)==="/")tagName=tagName.slice(1);if(tagName.slice(-1)==="/")tagName=tagName.slice(0,-1);return tagName}function isClosing(html){return html.slice(0,2)===""){rethtml+=escapeHtml(html.slice(lastPos,tagStart));currentHtml=html.slice(tagStart,currentPos+1);currentTagName=getTagName(currentHtml);rethtml+=onTag(tagStart,rethtml.length,currentTagName,currentHtml,isClosing(currentHtml));lastPos=currentPos+1;tagStart=false;continue}if(c==='"'||c==="'"){var i=1;var ic=html.charAt(currentPos-i);while(ic===" "||ic==="="){if(ic==="="){quoteStart=c;continue chariterator}ic=html.charAt(currentPos-++i)}}}else{if(c===quoteStart){quoteStart=false;continue}}}}if(lastPos0;i--){var c=str[i];if(c===" ")continue;if(c==="=")return i;return-1}}function isQuoteWrapString(text){if(text[0]==='"'&&text[text.length-1]==='"'||text[0]==="'"&&text[text.length-1]==="'"){return true}else{return false}}function stripQuoteWrap(text){if(isQuoteWrapString(text)){return text.substr(1,text.length-2)}else{return text}}exports.parseTag=parseTag;exports.parseAttr=parseAttr},{"./util":4}],4:[function(require,module,exports){module.exports={indexOf:function(arr,item){var i,j;if(Array.prototype.indexOf){return arr.indexOf(item)}for(i=0,j=arr.length;i"}var attrs=getAttrs(html);var whiteAttrList=whiteList[tag];var attrsHtml=parseAttr(attrs.html,function(name,value){var isWhiteAttr=_.indexOf(whiteAttrList,name)!==-1;var ret=onTagAttr(tag,name,value,isWhiteAttr);if(!isNull(ret))return ret;if(isWhiteAttr){value=safeAttrValue(tag,name,value,cssFilter);if(value){return name+'="'+value+'"'}else{return name}}else{var ret=onIgnoreTagAttr(tag,name,value,isWhiteAttr);if(!isNull(ret))return ret;return}});var html="<"+tag;if(attrsHtml)html+=" "+attrsHtml;if(attrs.closing)html+=" /";html+=">";return html}else{var ret=onIgnoreTag(tag,html,info);if(!isNull(ret))return ret;return escapeHtml(html)}},escapeHtml);if(stripIgnoreTagBody){retHtml=stripIgnoreTagBody.remove(retHtml)}return retHtml};module.exports=FilterXSS},{"./default":1,"./parser":3,"./util":4,cssfilter:8}],6:[function(require,module,exports){var DEFAULT=require("./default");var parseStyle=require("./parser");var _=require("./util");function isNull(obj){return obj===undefined||obj===null}function shallowCopyObject(obj){var ret={};for(var i in obj){ret[i]=obj[i]}return ret}function FilterCSS(options){options=shallowCopyObject(options||{});options.whiteList=options.whiteList||DEFAULT.whiteList;options.onAttr=options.onAttr||DEFAULT.onAttr;options.onIgnoreAttr=options.onIgnoreAttr||DEFAULT.onIgnoreAttr;options.safeAttrValue=options.safeAttrValue||DEFAULT.safeAttrValue;this.options=options}FilterCSS.prototype.process=function(css){css=css||"";css=css.toString();if(!css)return"";var me=this;var options=me.options;var whiteList=options.whiteList;var onAttr=options.onAttr;var onIgnoreAttr=options.onIgnoreAttr;var safeAttrValue=options.safeAttrValue;var retCSS=parseStyle(css,function(sourcePosition,position,name,value,source){var check=whiteList[name];var isWhite=false;if(check===true)isWhite=check;else if(typeof check==="function")isWhite=check(value);else if(check instanceof RegExp)isWhite=check.test(value);if(isWhite!==true)isWhite=false;value=safeAttrValue(name,value);if(!value)return;var opts={position:position,sourcePosition:sourcePosition,source:source,isWhite:isWhite};if(isWhite){var ret=onAttr(name,value,opts);if(isNull(ret)){return name+":"+value}else{return ret}}else{var ret=onIgnoreAttr(name,value,opts);if(!isNull(ret)){return ret}}});return retCSS};module.exports=FilterCSS},{"./default":7,"./parser":9,"./util":10}],7:[function(require,module,exports){function getDefaultWhiteList(){var whiteList={};whiteList["align-content"]=false;whiteList["align-items"]=false;whiteList["align-self"]=false;whiteList["alignment-adjust"]=false;whiteList["alignment-baseline"]=false;whiteList["all"]=false;whiteList["anchor-point"]=false;whiteList["animation"]=false;whiteList["animation-delay"]=false;whiteList["animation-direction"]=false;whiteList["animation-duration"]=false;whiteList["animation-fill-mode"]=false;whiteList["animation-iteration-count"]=false;whiteList["animation-name"]=false;whiteList["animation-play-state"]=false;whiteList["animation-timing-function"]=false;whiteList["azimuth"]=false;whiteList["backface-visibility"]=false;whiteList["background"]=true;whiteList["background-attachment"]=true;whiteList["background-clip"]=true;whiteList["background-color"]=true;whiteList["background-image"]=true;whiteList["background-origin"]=true;whiteList["background-position"]=true;whiteList["background-repeat"]=true;whiteList["background-size"]=true;whiteList["baseline-shift"]=false;whiteList["binding"]=false;whiteList["bleed"]=false;whiteList["bookmark-label"]=false;whiteList["bookmark-level"]=false;whiteList["bookmark-state"]=false;whiteList["border"]=true;whiteList["border-bottom"]=true;whiteList["border-bottom-color"]=true;whiteList["border-bottom-left-radius"]=true;whiteList["border-bottom-right-radius"]=true;whiteList["border-bottom-style"]=true;whiteList["border-bottom-width"]=true;whiteList["border-collapse"]=true;whiteList["border-color"]=true;whiteList["border-image"]=true;whiteList["border-image-outset"]=true;whiteList["border-image-repeat"]=true;whiteList["border-image-slice"]=true;whiteList["border-image-source"]=true;whiteList["border-image-width"]=true;whiteList["border-left"]=true;whiteList["border-left-color"]=true;whiteList["border-left-style"]=true;whiteList["border-left-width"]=true;whiteList["border-radius"]=true;whiteList["border-right"]=true;whiteList["border-right-color"]=true;whiteList["border-right-style"]=true;whiteList["border-right-width"]=true;whiteList["border-spacing"]=true;whiteList["border-style"]=true;whiteList["border-top"]=true;whiteList["border-top-color"]=true;whiteList["border-top-left-radius"]=true;whiteList["border-top-right-radius"]=true;whiteList["border-top-style"]=true;whiteList["border-top-width"]=true;whiteList["border-width"]=true;whiteList["bottom"]=false;whiteList["box-decoration-break"]=true;whiteList["box-shadow"]=true;whiteList["box-sizing"]=true;whiteList["box-snap"]=true;whiteList["box-suppress"]=true;whiteList["break-after"]=true;whiteList["break-before"]=true;whiteList["break-inside"]=true;whiteList["caption-side"]=false;whiteList["chains"]=false;whiteList["clear"]=true;whiteList["clip"]=false;whiteList["clip-path"]=false;whiteList["clip-rule"]=false;whiteList["color"]=true;whiteList["color-interpolation-filters"]=true;whiteList["column-count"]=false;whiteList["column-fill"]=false;whiteList["column-gap"]=false;whiteList["column-rule"]=false;whiteList["column-rule-color"]=false;whiteList["column-rule-style"]=false;whiteList["column-rule-width"]=false;whiteList["column-span"]=false;whiteList["column-width"]=false;whiteList["columns"]=false;whiteList["contain"]=false;whiteList["content"]=false;whiteList["counter-increment"]=false;whiteList["counter-reset"]=false;whiteList["counter-set"]=false;whiteList["crop"]=false;whiteList["cue"]=false;whiteList["cue-after"]=false;whiteList["cue-before"]=false;whiteList["cursor"]=false;whiteList["direction"]=false;whiteList["display"]=true;whiteList["display-inside"]=true;whiteList["display-list"]=true;whiteList["display-outside"]=true;whiteList["dominant-baseline"]=false;whiteList["elevation"]=false;whiteList["empty-cells"]=false;whiteList["filter"]=false;whiteList["flex"]=false;whiteList["flex-basis"]=false;whiteList["flex-direction"]=false;whiteList["flex-flow"]=false;whiteList["flex-grow"]=false;whiteList["flex-shrink"]=false;whiteList["flex-wrap"]=false;whiteList["float"]=false;whiteList["float-offset"]=false;whiteList["flood-color"]=false;whiteList["flood-opacity"]=false;whiteList["flow-from"]=false;whiteList["flow-into"]=false;whiteList["font"]=true;whiteList["font-family"]=true;whiteList["font-feature-settings"]=true;whiteList["font-kerning"]=true;whiteList["font-language-override"]=true;whiteList["font-size"]=true;whiteList["font-size-adjust"]=true;whiteList["font-stretch"]=true;whiteList["font-style"]=true;whiteList["font-synthesis"]=true;whiteList["font-variant"]=true;whiteList["font-variant-alternates"]=true;whiteList["font-variant-caps"]=true;whiteList["font-variant-east-asian"]=true;whiteList["font-variant-ligatures"]=true;whiteList["font-variant-numeric"]=true;whiteList["font-variant-position"]=true;whiteList["font-weight"]=true;whiteList["grid"]=false;whiteList["grid-area"]=false;whiteList["grid-auto-columns"]=false;whiteList["grid-auto-flow"]=false;whiteList["grid-auto-rows"]=false;whiteList["grid-column"]=false;whiteList["grid-column-end"]=false;whiteList["grid-column-start"]=false;whiteList["grid-row"]=false;whiteList["grid-row-end"]=false;whiteList["grid-row-start"]=false;whiteList["grid-template"]=false;whiteList["grid-template-areas"]=false;whiteList["grid-template-columns"]=false;whiteList["grid-template-rows"]=false;whiteList["hanging-punctuation"]=false;whiteList["height"]=true;whiteList["hyphens"]=false;whiteList["icon"]=false;whiteList["image-orientation"]=false;whiteList["image-resolution"]=false;whiteList["ime-mode"]=false;whiteList["initial-letters"]=false;whiteList["inline-box-align"]=false;whiteList["justify-content"]=false;whiteList["justify-items"]=false;whiteList["justify-self"]=false;whiteList["left"]=false;whiteList["letter-spacing"]=true;whiteList["lighting-color"]=true;whiteList["line-box-contain"]=false;whiteList["line-break"]=false;whiteList["line-grid"]=false;whiteList["line-height"]=false;whiteList["line-snap"]=false;whiteList["line-stacking"]=false;whiteList["line-stacking-ruby"]=false;whiteList["line-stacking-shift"]=false;whiteList["line-stacking-strategy"]=false;whiteList["list-style"]=true;whiteList["list-style-image"]=true;whiteList["list-style-position"]=true;whiteList["list-style-type"]=true;whiteList["margin"]=true;whiteList["margin-bottom"]=true;whiteList["margin-left"]=true;whiteList["margin-right"]=true;whiteList["margin-top"]=true;whiteList["marker-offset"]=false;whiteList["marker-side"]=false;whiteList["marks"]=false;whiteList["mask"]=false;whiteList["mask-box"]=false;whiteList["mask-box-outset"]=false;whiteList["mask-box-repeat"]=false;whiteList["mask-box-slice"]=false;whiteList["mask-box-source"]=false;whiteList["mask-box-width"]=false;whiteList["mask-clip"]=false;whiteList["mask-image"]=false;whiteList["mask-origin"]=false;whiteList["mask-position"]=false;whiteList["mask-repeat"]=false;whiteList["mask-size"]=false;whiteList["mask-source-type"]=false;whiteList["mask-type"]=false;whiteList["max-height"]=true;whiteList["max-lines"]=false;whiteList["max-width"]=true;whiteList["min-height"]=true;whiteList["min-width"]=true;whiteList["move-to"]=false;whiteList["nav-down"]=false;whiteList["nav-index"]=false;whiteList["nav-left"]=false;whiteList["nav-right"]=false;whiteList["nav-up"]=false;whiteList["object-fit"]=false;whiteList["object-position"]=false;whiteList["opacity"]=false;whiteList["order"]=false;whiteList["orphans"]=false;whiteList["outline"]=false;whiteList["outline-color"]=false;whiteList["outline-offset"]=false;whiteList["outline-style"]=false;whiteList["outline-width"]=false;whiteList["overflow"]=false;whiteList["overflow-wrap"]=false;whiteList["overflow-x"]=false;whiteList["overflow-y"]=false;whiteList["padding"]=true;whiteList["padding-bottom"]=true;whiteList["padding-left"]=true;whiteList["padding-right"]=true;whiteList["padding-top"]=true;whiteList["page"]=false;whiteList["page-break-after"]=false;whiteList["page-break-before"]=false;whiteList["page-break-inside"]=false;whiteList["page-policy"]=false;whiteList["pause"]=false;whiteList["pause-after"]=false;whiteList["pause-before"]=false;whiteList["perspective"]=false;whiteList["perspective-origin"]=false;whiteList["pitch"]=false;whiteList["pitch-range"]=false;whiteList["play-during"]=false;whiteList["position"]=false;whiteList["presentation-level"]=false;whiteList["quotes"]=false;whiteList["region-fragment"]=false;whiteList["resize"]=false;whiteList["rest"]=false;whiteList["rest-after"]=false;whiteList["rest-before"]=false;whiteList["richness"]=false;whiteList["right"]=false;whiteList["rotation"]=false;whiteList["rotation-point"]=false;whiteList["ruby-align"]=false;whiteList["ruby-merge"]=false;whiteList["ruby-position"]=false;whiteList["shape-image-threshold"]=false;whiteList["shape-outside"]=false;whiteList["shape-margin"]=false;whiteList["size"]=false;whiteList["speak"]=false;whiteList["speak-as"]=false;whiteList["speak-header"]=false;whiteList["speak-numeral"]=false;whiteList["speak-punctuation"]=false;whiteList["speech-rate"]=false;whiteList["stress"]=false;whiteList["string-set"]=false;whiteList["tab-size"]=false;whiteList["table-layout"]=false;whiteList["text-align"]=true;whiteList["text-align-last"]=true;whiteList["text-combine-upright"]=true;whiteList["text-decoration"]=true;whiteList["text-decoration-color"]=true;whiteList["text-decoration-line"]=true;whiteList["text-decoration-skip"]=true;whiteList["text-decoration-style"]=true;whiteList["text-emphasis"]=true;whiteList["text-emphasis-color"]=true;whiteList["text-emphasis-position"]=true;whiteList["text-emphasis-style"]=true;whiteList["text-height"]=true;whiteList["text-indent"]=true;whiteList["text-justify"]=true;whiteList["text-orientation"]=true;whiteList["text-overflow"]=true;whiteList["text-shadow"]=true;whiteList["text-space-collapse"]=true;whiteList["text-transform"]=true;whiteList["text-underline-position"]=true;whiteList["text-wrap"]=true;whiteList["top"]=false;whiteList["transform"]=false;whiteList["transform-origin"]=false;whiteList["transform-style"]=false;whiteList["transition"]=false;whiteList["transition-delay"]=false;whiteList["transition-duration"]=false;whiteList["transition-property"]=false;whiteList["transition-timing-function"]=false;whiteList["unicode-bidi"]=false;whiteList["vertical-align"]=false;whiteList["visibility"]=false;whiteList["voice-balance"]=false;whiteList["voice-duration"]=false;whiteList["voice-family"]=false;whiteList["voice-pitch"]=false;whiteList["voice-range"]=false;whiteList["voice-rate"]=false;whiteList["voice-stress"]=false;whiteList["voice-volume"]=false;whiteList["volume"]=false;whiteList["white-space"]=false;whiteList["widows"]=false;whiteList["width"]=true;whiteList["will-change"]=false;whiteList["word-break"]=true;whiteList["word-spacing"]=true;whiteList["word-wrap"]=true;whiteList["wrap-flow"]=false;whiteList["wrap-through"]=false;whiteList["writing-mode"]=false;whiteList["z-index"]=false;return whiteList}function onAttr(name,value,options){}function onIgnoreAttr(name,value,options){}var REGEXP_URL_JAVASCRIPT=/javascript\s*\:/gim;function safeAttrValue(name,value){if(REGEXP_URL_JAVASCRIPT.test(value))return"";return value}exports.whiteList=getDefaultWhiteList();exports.getDefaultWhiteList=getDefaultWhiteList;exports.onAttr=onAttr;exports.onIgnoreAttr=onIgnoreAttr;exports.safeAttrValue=safeAttrValue},{}],8:[function(require,module,exports){var DEFAULT=require("./default");var FilterCSS=require("./css");function filterCSS(html,options){var xss=new FilterCSS(options);return xss.process(html)}exports=module.exports=filterCSS;exports.FilterCSS=FilterCSS;for(var i in DEFAULT)exports[i]=DEFAULT[i];if(typeof window!=="undefined"){window.filterCSS=module.exports}},{"./css":6,"./default":7}],9:[function(require,module,exports){var _=require("./util");function parseStyle(css,onAttr){css=_.trimRight(css);if(css[css.length-1]!==";")css+=";";var cssLength=css.length;var isParenthesisOpen=false;var lastPos=0;var i=0;var retCSS="";function addNewAttr(){if(!isParenthesisOpen){var source=_.trim(css.slice(lastPos,i));var j=source.indexOf(":");if(j!==-1){var name=_.trim(source.slice(0,j));var value=_.trim(source.slice(j+1));if(name){var ret=onAttr(lastPos,retCSS.length,name,value,source);if(ret)retCSS+=ret+"; "}}}lastPos=i+1}for(;i - */ - -var xss = require("./"); -var readline = require("readline"); - -var rl = readline.createInterface({ - input: process.stdin, - output: process.stdout -}); - -console.log('Enter a blank line to do xss(), enter "@quit" to exit.\n'); - -function take(c, n) { - var ret = ""; - for (var i = 0; i < n; i++) { - ret += c; - } - return ret; -} - -function setPrompt(line) { - line = line.toString(); - rl.setPrompt("[" + line + "]" + take(" ", 5 - line.length)); - rl.prompt(); -} - -setPrompt(1); - -var html = []; -rl.on("line", function(line) { - if (line === "@quit") return process.exit(); - if (line === "") { - console.log(""); - console.log(xss(html.join("\r\n"))); - console.log(""); - html = []; - } else { - html.push(line); - } - setPrompt(html.length + 1); -}); diff --git a/gateway/node_modules/xss/lib/default.js b/gateway/node_modules/xss/lib/default.js deleted file mode 100644 index 55c506c..0000000 --- a/gateway/node_modules/xss/lib/default.js +++ /dev/null @@ -1,419 +0,0 @@ -/** - * default settings - * - * @author Zongmin Lei - */ - -var FilterCSS = require("cssfilter").FilterCSS; -var getDefaultCSSWhiteList = require("cssfilter").getDefaultWhiteList; -var _ = require("./util"); - -function getDefaultWhiteList() { - return { - a: ["target", "href", "title"], - abbr: ["title"], - address: [], - area: ["shape", "coords", "href", "alt"], - article: [], - aside: [], - audio: ["autoplay", "controls", "loop", "preload", "src"], - b: [], - bdi: ["dir"], - bdo: ["dir"], - big: [], - blockquote: ["cite"], - br: [], - caption: [], - center: [], - cite: [], - code: [], - col: ["align", "valign", "span", "width"], - colgroup: ["align", "valign", "span", "width"], - dd: [], - del: ["datetime"], - details: ["open"], - div: [], - dl: [], - dt: [], - em: [], - font: ["color", "size", "face"], - footer: [], - h1: [], - h2: [], - h3: [], - h4: [], - h5: [], - h6: [], - header: [], - hr: [], - i: [], - img: ["src", "alt", "title", "width", "height"], - ins: ["datetime"], - li: [], - mark: [], - nav: [], - ol: [], - p: [], - pre: [], - s: [], - section: [], - small: [], - span: [], - sub: [], - sup: [], - strong: [], - table: ["width", "border", "align", "valign"], - tbody: ["align", "valign"], - td: ["width", "rowspan", "colspan", "align", "valign"], - tfoot: ["align", "valign"], - th: ["width", "rowspan", "colspan", "align", "valign"], - thead: ["align", "valign"], - tr: ["rowspan", "align", "valign"], - tt: [], - u: [], - ul: [], - video: ["autoplay", "controls", "loop", "preload", "src", "height", "width"] - }; -} - -var defaultCSSFilter = new FilterCSS(); - -/** - * default onTag function - * - * @param {String} tag - * @param {String} html - * @param {Object} options - * @return {String} - */ -function onTag(tag, html, options) { - // do nothing -} - -/** - * default onIgnoreTag function - * - * @param {String} tag - * @param {String} html - * @param {Object} options - * @return {String} - */ -function onIgnoreTag(tag, html, options) { - // do nothing -} - -/** - * default onTagAttr function - * - * @param {String} tag - * @param {String} name - * @param {String} value - * @return {String} - */ -function onTagAttr(tag, name, value) { - // do nothing -} - -/** - * default onIgnoreTagAttr function - * - * @param {String} tag - * @param {String} name - * @param {String} value - * @return {String} - */ -function onIgnoreTagAttr(tag, name, value) { - // do nothing -} - -/** - * default escapeHtml function - * - * @param {String} html - */ -function escapeHtml(html) { - return html.replace(REGEXP_LT, "<").replace(REGEXP_GT, ">"); -} - -/** - * default safeAttrValue function - * - * @param {String} tag - * @param {String} name - * @param {String} value - * @param {Object} cssFilter - * @return {String} - */ -function safeAttrValue(tag, name, value, cssFilter) { - // unescape attribute value firstly - value = friendlyAttrValue(value); - - if (name === "href" || name === "src") { - // filter `href` and `src` attribute - // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#` - value = _.trim(value); - if (value === "#") return "#"; - if ( - !( - value.substr(0, 7) === "http://" || - value.substr(0, 8) === "https://" || - value.substr(0, 7) === "mailto:" || - value.substr(0, 4) === "tel:" || - value.substr(0, 11) === "data:image/" || - value.substr(0, 6) === "ftp://" || - value.substr(0, 2) === "./" || - value.substr(0, 3) === "../" || - value[0] === "#" || - value[0] === "/" - ) - ) { - return ""; - } - } else if (name === "background") { - // filter `background` attribute (maybe no use) - // `javascript:` - REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { - return ""; - } - } else if (name === "style") { - // `expression()` - REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) { - return ""; - } - // `url()` - REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) { - REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; - if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { - return ""; - } - } - if (cssFilter !== false) { - cssFilter = cssFilter || defaultCSSFilter; - value = cssFilter.process(value); - } - } - - // escape `<>"` before returns - value = escapeAttrValue(value); - return value; -} - -// RegExp list -var REGEXP_LT = //g; -var REGEXP_QUOTE = /"/g; -var REGEXP_QUOTE_2 = /"/g; -var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim; -var REGEXP_ATTR_VALUE_COLON = /:?/gim; -var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim; -var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\/\*|\*\//gm; -var REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi; -var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi; -var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi; -var REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi; -var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi; - -/** - * escape doube quote - * - * @param {String} str - * @return {String} str - */ -function escapeQuote(str) { - return str.replace(REGEXP_QUOTE, """); -} - -/** - * unescape double quote - * - * @param {String} str - * @return {String} str - */ -function unescapeQuote(str) { - return str.replace(REGEXP_QUOTE_2, '"'); -} - -/** - * escape html entities - * - * @param {String} str - * @return {String} - */ -function escapeHtmlEntities(str) { - return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) { - return code[0] === "x" || code[0] === "X" - ? String.fromCharCode(parseInt(code.substr(1), 16)) - : String.fromCharCode(parseInt(code, 10)); - }); -} - -/** - * escape html5 new danger entities - * - * @param {String} str - * @return {String} - */ -function escapeDangerHtml5Entities(str) { - return str - .replace(REGEXP_ATTR_VALUE_COLON, ":") - .replace(REGEXP_ATTR_VALUE_NEWLINE, " "); -} - -/** - * clear nonprintable characters - * - * @param {String} str - * @return {String} - */ -function clearNonPrintableCharacter(str) { - var str2 = ""; - for (var i = 0, len = str.length; i < len; i++) { - str2 += str.charCodeAt(i) < 32 ? " " : str.charAt(i); - } - return _.trim(str2); -} - -/** - * get friendly attribute value - * - * @param {String} str - * @return {String} - */ -function friendlyAttrValue(str) { - str = unescapeQuote(str); - str = escapeHtmlEntities(str); - str = escapeDangerHtml5Entities(str); - str = clearNonPrintableCharacter(str); - return str; -} - -/** - * unescape attribute value - * - * @param {String} str - * @return {String} - */ -function escapeAttrValue(str) { - str = escapeQuote(str); - str = escapeHtml(str); - return str; -} - -/** - * `onIgnoreTag` function for removing all the tags that are not in whitelist - */ -function onIgnoreTagStripAll() { - return ""; -} - -/** - * remove tag body - * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional) - * - * @param {array} tags - * @param {function} next - */ -function StripTagBody(tags, next) { - if (typeof next !== "function") { - next = function() {}; - } - - var isRemoveAllTag = !Array.isArray(tags); - function isRemoveTag(tag) { - if (isRemoveAllTag) return true; - return _.indexOf(tags, tag) !== -1; - } - - var removeList = []; - var posStart = false; - - return { - onIgnoreTag: function(tag, html, options) { - if (isRemoveTag(tag)) { - if (options.isClosing) { - var ret = "[/removed]"; - var end = options.position + ret.length; - removeList.push([ - posStart !== false ? posStart : options.position, - end - ]); - posStart = false; - return ret; - } else { - if (!posStart) { - posStart = options.position; - } - return "[removed]"; - } - } else { - return next(tag, html, options); - } - }, - remove: function(html) { - var rethtml = ""; - var lastPos = 0; - _.forEach(removeList, function(pos) { - rethtml += html.slice(lastPos, pos[0]); - lastPos = pos[1]; - }); - rethtml += html.slice(lastPos); - return rethtml; - } - }; -} - -/** - * remove html comments - * - * @param {String} html - * @return {String} - */ -function stripCommentTag(html) { - return html.replace(STRIP_COMMENT_TAG_REGEXP, ""); -} -var STRIP_COMMENT_TAG_REGEXP = //g; - -/** - * remove invisible characters - * - * @param {String} html - * @return {String} - */ -function stripBlankChar(html) { - var chars = html.split(""); - chars = chars.filter(function(char) { - var c = char.charCodeAt(0); - if (c === 127) return false; - if (c <= 31) { - if (c === 10 || c === 13) return true; - return false; - } - return true; - }); - return chars.join(""); -} - -exports.whiteList = getDefaultWhiteList(); -exports.getDefaultWhiteList = getDefaultWhiteList; -exports.onTag = onTag; -exports.onIgnoreTag = onIgnoreTag; -exports.onTagAttr = onTagAttr; -exports.onIgnoreTagAttr = onIgnoreTagAttr; -exports.safeAttrValue = safeAttrValue; -exports.escapeHtml = escapeHtml; -exports.escapeQuote = escapeQuote; -exports.unescapeQuote = unescapeQuote; -exports.escapeHtmlEntities = escapeHtmlEntities; -exports.escapeDangerHtml5Entities = escapeDangerHtml5Entities; -exports.clearNonPrintableCharacter = clearNonPrintableCharacter; -exports.friendlyAttrValue = friendlyAttrValue; -exports.escapeAttrValue = escapeAttrValue; -exports.onIgnoreTagStripAll = onIgnoreTagStripAll; -exports.StripTagBody = StripTagBody; -exports.stripCommentTag = stripCommentTag; -exports.stripBlankChar = stripBlankChar; -exports.cssFilter = defaultCSSFilter; -exports.getDefaultCSSWhiteList = getDefaultCSSWhiteList; diff --git a/gateway/node_modules/xss/lib/index.js b/gateway/node_modules/xss/lib/index.js deleted file mode 100644 index e0c1a06..0000000 --- a/gateway/node_modules/xss/lib/index.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * xss - * - * @author Zongmin Lei - */ - -var DEFAULT = require("./default"); -var parser = require("./parser"); -var FilterXSS = require("./xss"); - -/** - * filter xss function - * - * @param {String} html - * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml } - * @return {String} - */ -function filterXSS(html, options) { - var xss = new FilterXSS(options); - return xss.process(html); -} - -exports = module.exports = filterXSS; -exports.filterXSS = filterXSS; -exports.FilterXSS = FilterXSS; -for (var i in DEFAULT) exports[i] = DEFAULT[i]; -for (var i in parser) exports[i] = parser[i]; - -// using `xss` on the browser, output `filterXSS` to the globals -if (typeof window !== "undefined") { - window.filterXSS = module.exports; -} - -// using `xss` on the WebWorker, output `filterXSS` to the globals -function isWorkerEnv() { - return typeof self !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined' && self instanceof DedicatedWorkerGlobalScope; -} -if (isWorkerEnv()) { - self.filterXSS = module.exports; -} diff --git a/gateway/node_modules/xss/lib/parser.js b/gateway/node_modules/xss/lib/parser.js deleted file mode 100644 index 787c304..0000000 --- a/gateway/node_modules/xss/lib/parser.js +++ /dev/null @@ -1,247 +0,0 @@ -/** - * Simple HTML Parser - * - * @author Zongmin Lei - */ - -var _ = require("./util"); - -/** - * get tag name - * - * @param {String} html e.g. '' - * @return {String} - */ -function getTagName(html) { - var i = _.spaceIndex(html); - if (i === -1) { - var tagName = html.slice(1, -1); - } else { - var tagName = html.slice(1, i + 1); - } - tagName = _.trim(tagName).toLowerCase(); - if (tagName.slice(0, 1) === "/") tagName = tagName.slice(1); - if (tagName.slice(-1) === "/") tagName = tagName.slice(0, -1); - return tagName; -} - -/** - * is close tag? - * - * @param {String} html 如:'' - * @return {Boolean} - */ -function isClosing(html) { - return html.slice(0, 2) === "") { - rethtml += escapeHtml(html.slice(lastPos, tagStart)); - currentHtml = html.slice(tagStart, currentPos + 1); - currentTagName = getTagName(currentHtml); - rethtml += onTag( - tagStart, - rethtml.length, - currentTagName, - currentHtml, - isClosing(currentHtml) - ); - lastPos = currentPos + 1; - tagStart = false; - continue; - } - if ((c === '"' || c === "'")) { - var i = 1; - var ic = html.charAt(currentPos - i); - - while ((ic === " ") || (ic === "=")) { - if (ic === "=") { - quoteStart = c; - continue chariterator; - } - ic = html.charAt(currentPos - ++i); - } - } - } else { - if (c === quoteStart) { - quoteStart = false; - continue; - } - } - } - } - if (lastPos < html.length) { - rethtml += escapeHtml(html.substr(lastPos)); - } - - return rethtml; -} - -var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\.\-]/gim; - -/** - * parse input attributes and returns processed attributes - * - * @param {String} html e.g. `href="#" target="_blank"` - * @param {Function} onAttr e.g. `function (name, value)` - * @return {String} - */ -function parseAttr(html, onAttr) { - "use strict"; - - var lastPos = 0; - var retAttrs = []; - var tmpName = false; - var len = html.length; - - function addAttr(name, value) { - name = _.trim(name); - name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase(); - if (name.length < 1) return; - var ret = onAttr(name, value || ""); - if (ret) retAttrs.push(ret); - } - - // 逐个分析字符 - for (var i = 0; i < len; i++) { - var c = html.charAt(i); - var v, j; - if (tmpName === false && c === "=") { - tmpName = html.slice(lastPos, i); - lastPos = i + 1; - continue; - } - if (tmpName !== false) { - if ( - i === lastPos && - (c === '"' || c === "'") && - html.charAt(i - 1) === "=" - ) { - j = html.indexOf(c, i + 1); - if (j === -1) { - break; - } else { - v = _.trim(html.slice(lastPos + 1, j)); - addAttr(tmpName, v); - tmpName = false; - i = j; - lastPos = i + 1; - continue; - } - } - } - if (/\s|\n|\t/.test(c)) { - html = html.replace(/\s|\n|\t/g, " "); - if (tmpName === false) { - j = findNextEqual(html, i); - if (j === -1) { - v = _.trim(html.slice(lastPos, i)); - addAttr(v); - tmpName = false; - lastPos = i + 1; - continue; - } else { - i = j - 1; - continue; - } - } else { - j = findBeforeEqual(html, i - 1); - if (j === -1) { - v = _.trim(html.slice(lastPos, i)); - v = stripQuoteWrap(v); - addAttr(tmpName, v); - tmpName = false; - lastPos = i + 1; - continue; - } else { - continue; - } - } - } - } - - if (lastPos < html.length) { - if (tmpName === false) { - addAttr(html.slice(lastPos)); - } else { - addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos)))); - } - } - - return _.trim(retAttrs.join(" ")); -} - -function findNextEqual(str, i) { - for (; i < str.length; i++) { - var c = str[i]; - if (c === " ") continue; - if (c === "=") return i; - return -1; - } -} - -function findBeforeEqual(str, i) { - for (; i > 0; i--) { - var c = str[i]; - if (c === " ") continue; - if (c === "=") return i; - return -1; - } -} - -function isQuoteWrapString(text) { - if ( - (text[0] === '"' && text[text.length - 1] === '"') || - (text[0] === "'" && text[text.length - 1] === "'") - ) { - return true; - } else { - return false; - } -} - -function stripQuoteWrap(text) { - if (isQuoteWrapString(text)) { - return text.substr(1, text.length - 2); - } else { - return text; - } -} - -exports.parseTag = parseTag; -exports.parseAttr = parseAttr; diff --git a/gateway/node_modules/xss/lib/util.js b/gateway/node_modules/xss/lib/util.js deleted file mode 100644 index 1dcd7fa..0000000 --- a/gateway/node_modules/xss/lib/util.js +++ /dev/null @@ -1,34 +0,0 @@ -module.exports = { - indexOf: function(arr, item) { - var i, j; - if (Array.prototype.indexOf) { - return arr.indexOf(item); - } - for (i = 0, j = arr.length; i < j; i++) { - if (arr[i] === item) { - return i; - } - } - return -1; - }, - forEach: function(arr, fn, scope) { - var i, j; - if (Array.prototype.forEach) { - return arr.forEach(fn, scope); - } - for (i = 0, j = arr.length; i < j; i++) { - fn.call(scope, arr[i], i, arr); - } - }, - trim: function(str) { - if (String.prototype.trim) { - return str.trim(); - } - return str.replace(/(^\s*)|(\s*$)/g, ""); - }, - spaceIndex: function(str) { - var reg = /\s|\n|\t/; - var match = reg.exec(str); - return match ? match.index : -1; - } -}; diff --git a/gateway/node_modules/xss/lib/xss.js b/gateway/node_modules/xss/lib/xss.js deleted file mode 100644 index 74d2e42..0000000 --- a/gateway/node_modules/xss/lib/xss.js +++ /dev/null @@ -1,211 +0,0 @@ -/** - * filter xss - * - * @author Zongmin Lei - */ - -var FilterCSS = require("cssfilter").FilterCSS; -var DEFAULT = require("./default"); -var parser = require("./parser"); -var parseTag = parser.parseTag; -var parseAttr = parser.parseAttr; -var _ = require("./util"); - -/** - * returns `true` if the input value is `undefined` or `null` - * - * @param {Object} obj - * @return {Boolean} - */ -function isNull(obj) { - return obj === undefined || obj === null; -} - -/** - * get attributes for a tag - * - * @param {String} html - * @return {Object} - * - {String} html - * - {Boolean} closing - */ -function getAttrs(html) { - var i = _.spaceIndex(html); - if (i === -1) { - return { - html: "", - closing: html[html.length - 2] === "/" - }; - } - html = _.trim(html.slice(i + 1, -1)); - var isClosing = html[html.length - 1] === "/"; - if (isClosing) html = _.trim(html.slice(0, -1)); - return { - html: html, - closing: isClosing - }; -} - -/** - * shallow copy - * - * @param {Object} obj - * @return {Object} - */ -function shallowCopyObject(obj) { - var ret = {}; - for (var i in obj) { - ret[i] = obj[i]; - } - return ret; -} - -/** - * FilterXSS class - * - * @param {Object} options - * whiteList, onTag, onTagAttr, onIgnoreTag, - * onIgnoreTagAttr, safeAttrValue, escapeHtml - * stripIgnoreTagBody, allowCommentTag, stripBlankChar - * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter` - */ -function FilterXSS(options) { - options = shallowCopyObject(options || {}); - - if (options.stripIgnoreTag) { - if (options.onIgnoreTag) { - console.error( - 'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time' - ); - } - options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll; - } - - options.whiteList = options.whiteList || DEFAULT.whiteList; - options.onTag = options.onTag || DEFAULT.onTag; - options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr; - options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag; - options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr; - options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; - options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml; - this.options = options; - - if (options.css === false) { - this.cssFilter = false; - } else { - options.css = options.css || {}; - this.cssFilter = new FilterCSS(options.css); - } -} - -/** - * start process and returns result - * - * @param {String} html - * @return {String} - */ -FilterXSS.prototype.process = function(html) { - // compatible with the input - html = html || ""; - html = html.toString(); - if (!html) return ""; - - var me = this; - var options = me.options; - var whiteList = options.whiteList; - var onTag = options.onTag; - var onIgnoreTag = options.onIgnoreTag; - var onTagAttr = options.onTagAttr; - var onIgnoreTagAttr = options.onIgnoreTagAttr; - var safeAttrValue = options.safeAttrValue; - var escapeHtml = options.escapeHtml; - var cssFilter = me.cssFilter; - - // remove invisible characters - if (options.stripBlankChar) { - html = DEFAULT.stripBlankChar(html); - } - - // remove html comments - if (!options.allowCommentTag) { - html = DEFAULT.stripCommentTag(html); - } - - // if enable stripIgnoreTagBody - var stripIgnoreTagBody = false; - if (options.stripIgnoreTagBody) { - var stripIgnoreTagBody = DEFAULT.StripTagBody( - options.stripIgnoreTagBody, - onIgnoreTag - ); - onIgnoreTag = stripIgnoreTagBody.onIgnoreTag; - } - - var retHtml = parseTag( - html, - function(sourcePosition, position, tag, html, isClosing) { - var info = { - sourcePosition: sourcePosition, - position: position, - isClosing: isClosing, - isWhite: whiteList.hasOwnProperty(tag) - }; - - // call `onTag()` - var ret = onTag(tag, html, info); - if (!isNull(ret)) return ret; - - if (info.isWhite) { - if (info.isClosing) { - return ""; - } - - var attrs = getAttrs(html); - var whiteAttrList = whiteList[tag]; - var attrsHtml = parseAttr(attrs.html, function(name, value) { - // call `onTagAttr()` - var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1; - var ret = onTagAttr(tag, name, value, isWhiteAttr); - if (!isNull(ret)) return ret; - - if (isWhiteAttr) { - // call `safeAttrValue()` - value = safeAttrValue(tag, name, value, cssFilter); - if (value) { - return name + '="' + value + '"'; - } else { - return name; - } - } else { - // call `onIgnoreTagAttr()` - var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr); - if (!isNull(ret)) return ret; - return; - } - }); - - // build new tag html - var html = "<" + tag; - if (attrsHtml) html += " " + attrsHtml; - if (attrs.closing) html += " /"; - html += ">"; - return html; - } else { - // call `onIgnoreTag()` - var ret = onIgnoreTag(tag, html, info); - if (!isNull(ret)) return ret; - return escapeHtml(html); - } - }, - escapeHtml - ); - - // if enable stripIgnoreTagBody - if (stripIgnoreTagBody) { - retHtml = stripIgnoreTagBody.remove(retHtml); - } - - return retHtml; -}; - -module.exports = FilterXSS; diff --git a/gateway/node_modules/xss/package.json b/gateway/node_modules/xss/package.json deleted file mode 100644 index cc26267..0000000 --- a/gateway/node_modules/xss/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "xss", - "main": "./lib/index.js", - "typings": "./typings/xss.d.ts", - "version": "1.0.8", - "description": "Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist", - "author": "Zongmin Lei (http://ucdok.com)", - "repository": { - "type": "git", - "url": "git://github.com/leizongmin/js-xss.git" - }, - "engines": { - "node": ">= 0.10.0" - }, - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "devDependencies": { - "browserify": "^16.5.1", - "coveralls": "^3.1.0", - "debug": "^4.1.1", - "mocha": "^6.2.3", - "nyc": "^15.1.0", - "uglify-js": "^3.9.4" - }, - "files": [ - "lib", - "bin/xss", - "dist", - "typings/*.d.ts" - ], - "bin": { - "xss": "./bin/xss" - }, - "scripts": { - "test": "export DEBUG=xss:* && mocha -t 5000", - "test-cov": "nyc --reporter=lcov mocha --exit \"test/*.js\" && nyc report", - "coveralls": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", - "build": "./bin/build", - "prepublish": "npm run test && npm run build" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/leizongmin/js-xss/issues" - }, - "homepage": "https://github.com/leizongmin/js-xss", - "keywords": [ - "sanitization", - "xss", - "sanitize", - "sanitisation", - "input", - "security", - "escape", - "encode", - "filter", - "validator", - "html", - "injection", - "whitelist" - ] -} diff --git a/gateway/node_modules/xss/typings/xss.d.ts b/gateway/node_modules/xss/typings/xss.d.ts deleted file mode 100644 index 253675b..0000000 --- a/gateway/node_modules/xss/typings/xss.d.ts +++ /dev/null @@ -1,193 +0,0 @@ -/** - * xss - * - * @author Zongmin Lei - */ - -declare module "xss" { - global { - function filterXSS(html: string, options?: IFilterXSSOptions): string; - - namespace XSS { - export interface IFilterXSSOptions { - whiteList?: IWhiteList; - onTag?: OnTagHandler; - onTagAttr?: OnTagAttrHandler; - onIgnoreTag?: OnTagHandler; - onIgnoreTagAttr?: OnTagAttrHandler; - safeAttrValue?: SafeAttrValueHandler; - escapeHtml?: EscapeHandler; - stripIgnoreTag?: boolean; - stripIgnoreTagBody?: boolean | string[]; - allowCommentTag?: boolean; - stripBlankChar?: boolean; - css?: {} | boolean; - } - - interface IWhiteList { - a?: string[]; - abbr?: string[]; - address?: string[]; - area?: string[]; - article?: string[]; - aside?: string[]; - audio?: string[]; - b?: string[]; - bdi?: string[]; - bdo?: string[]; - big?: string[]; - blockquote?: string[]; - br?: string[]; - caption?: string[]; - center?: string[]; - cite?: string[]; - code?: string[]; - col?: string[]; - colgroup?: string[]; - dd?: string[]; - del?: string[]; - details?: string[]; - div?: string[]; - dl?: string[]; - dt?: string[]; - em?: string[]; - font?: string[]; - footer?: string[]; - h1?: string[]; - h2?: string[]; - h3?: string[]; - h4?: string[]; - h5?: string[]; - h6?: string[]; - header?: string[]; - hr?: string[]; - i?: string[]; - img?: string[]; - ins?: string[]; - li?: string[]; - mark?: string[]; - nav?: string[]; - ol?: string[]; - p?: string[]; - pre?: string[]; - s?: string[]; - section?: string[]; - small?: string[]; - span?: string[]; - sub?: string[]; - sup?: string[]; - strong?: string[]; - table?: string[]; - tbody?: string[]; - td?: string[]; - tfoot?: string[]; - th?: string[]; - thead?: string[]; - tr?: string[]; - tt?: string[]; - u?: string[]; - ul?: string[]; - video?: string[]; - } - - type OnTagHandler = ( - tag: string, - html: string, - options: {} - ) => string | void; - - type OnTagAttrHandler = ( - tag: string, - name: string, - value: string, - isWhiteAttr: boolean - ) => string | void; - - type SafeAttrValueHandler = ( - tag: string, - name: string, - value: string, - cssFilter: ICSSFilter - ) => string; - - type EscapeHandler = (str: string) => string; - - interface ICSSFilter { - process(value: string): string; - } - } - } - export interface IFilterXSSOptions extends XSS.IFilterXSSOptions {} - - export interface IWhiteList extends XSS.IWhiteList {} - - export type OnTagHandler = XSS.OnTagHandler; - - export type OnTagAttrHandler = XSS.OnTagAttrHandler; - - export type SafeAttrValueHandler = XSS.SafeAttrValueHandler; - - export type EscapeHandler = XSS.EscapeHandler; - - export interface ICSSFilter extends XSS.ICSSFilter {} - - export function StripTagBody( - tags: string[], - next: () => void - ): { - onIgnoreTag( - tag: string, - html: string, - options: { - position: number; - isClosing: boolean; - } - ): string; - remove(html: string): string; - }; - - export class FilterXSS { - constructor(options?: IFilterXSSOptions); - process(html: string): string; - } - - export function filterXSS(html: string, options?: IFilterXSSOptions): string; - export function parseTag( - html: string, - onTag: ( - sourcePosition: number, - position: number, - tag: string, - html: string, - isClosing: boolean - ) => string, - escapeHtml: EscapeHandler - ): string; - export function parseAttr( - html: string, - onAttr: (name: string, value: string) => string - ): string; - export const whiteList: IWhiteList; - export function getDefaultWhiteList(): IWhiteList; - export const onTag: OnTagHandler; - export const onIgnoreTag: OnTagHandler; - export const onTagAttr: OnTagAttrHandler; - export const onIgnoreTagAttr: OnTagAttrHandler; - export const safeAttrValue: SafeAttrValueHandler; - export const escapeHtml: EscapeHandler; - export const escapeQuote: EscapeHandler; - export const unescapeQuote: EscapeHandler; - export const escapeHtmlEntities: EscapeHandler; - export const escapeDangerHtml5Entities: EscapeHandler; - export const clearNonPrintableCharacter: EscapeHandler; - export const friendlyAttrValue: EscapeHandler; - export const escapeAttrValue: EscapeHandler; - export function onIgnoreTagStripAll(): string; - export const stripCommentTag: EscapeHandler; - export const stripBlankChar: EscapeHandler; - export const cssFilter: ICSSFilter; - export function getDefaultCSSWhiteList(): ICSSFilter; - - const xss: (html: string, options?: IFilterXSSOptions) => string; - export default xss; -} diff --git a/gateway/node_modules/yallist/LICENSE b/gateway/node_modules/yallist/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/gateway/node_modules/yallist/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/gateway/node_modules/yallist/README.md b/gateway/node_modules/yallist/README.md deleted file mode 100644 index f586101..0000000 --- a/gateway/node_modules/yallist/README.md +++ /dev/null @@ -1,204 +0,0 @@ -# yallist - -Yet Another Linked List - -There are many doubly-linked list implementations like it, but this -one is mine. - -For when an array would be too big, and a Map can't be iterated in -reverse order. - - -[![Build Status](https://travis-ci.org/isaacs/yallist.svg?branch=master)](https://travis-ci.org/isaacs/yallist) [![Coverage Status](https://coveralls.io/repos/isaacs/yallist/badge.svg?service=github)](https://coveralls.io/github/isaacs/yallist) - -## basic usage - -```javascript -var yallist = require('yallist') -var myList = yallist.create([1, 2, 3]) -myList.push('foo') -myList.unshift('bar') -// of course pop() and shift() are there, too -console.log(myList.toArray()) // ['bar', 1, 2, 3, 'foo'] -myList.forEach(function (k) { - // walk the list head to tail -}) -myList.forEachReverse(function (k, index, list) { - // walk the list tail to head -}) -var myDoubledList = myList.map(function (k) { - return k + k -}) -// now myDoubledList contains ['barbar', 2, 4, 6, 'foofoo'] -// mapReverse is also a thing -var myDoubledListReverse = myList.mapReverse(function (k) { - return k + k -}) // ['foofoo', 6, 4, 2, 'barbar'] - -var reduced = myList.reduce(function (set, entry) { - set += entry - return set -}, 'start') -console.log(reduced) // 'startfoo123bar' -``` - -## api - -The whole API is considered "public". - -Functions with the same name as an Array method work more or less the -same way. - -There's reverse versions of most things because that's the point. - -### Yallist - -Default export, the class that holds and manages a list. - -Call it with either a forEach-able (like an array) or a set of -arguments, to initialize the list. - -The Array-ish methods all act like you'd expect. No magic length, -though, so if you change that it won't automatically prune or add -empty spots. - -### Yallist.create(..) - -Alias for Yallist function. Some people like factories. - -#### yallist.head - -The first node in the list - -#### yallist.tail - -The last node in the list - -#### yallist.length - -The number of nodes in the list. (Change this at your peril. It is -not magic like Array length.) - -#### yallist.toArray() - -Convert the list to an array. - -#### yallist.forEach(fn, [thisp]) - -Call a function on each item in the list. - -#### yallist.forEachReverse(fn, [thisp]) - -Call a function on each item in the list, in reverse order. - -#### yallist.get(n) - -Get the data at position `n` in the list. If you use this a lot, -probably better off just using an Array. - -#### yallist.getReverse(n) - -Get the data at position `n`, counting from the tail. - -#### yallist.map(fn, thisp) - -Create a new Yallist with the result of calling the function on each -item. - -#### yallist.mapReverse(fn, thisp) - -Same as `map`, but in reverse. - -#### yallist.pop() - -Get the data from the list tail, and remove the tail from the list. - -#### yallist.push(item, ...) - -Insert one or more items to the tail of the list. - -#### yallist.reduce(fn, initialValue) - -Like Array.reduce. - -#### yallist.reduceReverse - -Like Array.reduce, but in reverse. - -#### yallist.reverse - -Reverse the list in place. - -#### yallist.shift() - -Get the data from the list head, and remove the head from the list. - -#### yallist.slice([from], [to]) - -Just like Array.slice, but returns a new Yallist. - -#### yallist.sliceReverse([from], [to]) - -Just like yallist.slice, but the result is returned in reverse. - -#### yallist.toArray() - -Create an array representation of the list. - -#### yallist.toArrayReverse() - -Create a reversed array representation of the list. - -#### yallist.unshift(item, ...) - -Insert one or more items to the head of the list. - -#### yallist.unshiftNode(node) - -Move a Node object to the front of the list. (That is, pull it out of -wherever it lives, and make it the new head.) - -If the node belongs to a different list, then that list will remove it -first. - -#### yallist.pushNode(node) - -Move a Node object to the end of the list. (That is, pull it out of -wherever it lives, and make it the new tail.) - -If the node belongs to a list already, then that list will remove it -first. - -#### yallist.removeNode(node) - -Remove a node from the list, preserving referential integrity of head -and tail and other nodes. - -Will throw an error if you try to have a list remove a node that -doesn't belong to it. - -### Yallist.Node - -The class that holds the data and is actually the list. - -Call with `var n = new Node(value, previousNode, nextNode)` - -Note that if you do direct operations on Nodes themselves, it's very -easy to get into weird states where the list is broken. Be careful :) - -#### node.next - -The next node in the list. - -#### node.prev - -The previous node in the list. - -#### node.value - -The data the node contains. - -#### node.list - -The list to which this node belongs. (Null if it does not belong to -any list.) diff --git a/gateway/node_modules/yallist/iterator.js b/gateway/node_modules/yallist/iterator.js deleted file mode 100644 index d41c97a..0000000 --- a/gateway/node_modules/yallist/iterator.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -module.exports = function (Yallist) { - Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value - } - } -} diff --git a/gateway/node_modules/yallist/package.json b/gateway/node_modules/yallist/package.json deleted file mode 100644 index 8a08386..0000000 --- a/gateway/node_modules/yallist/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "yallist", - "version": "4.0.0", - "description": "Yet Another Linked List", - "main": "yallist.js", - "directories": { - "test": "test" - }, - "files": [ - "yallist.js", - "iterator.js" - ], - "dependencies": {}, - "devDependencies": { - "tap": "^12.1.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/yallist.git" - }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" -} diff --git a/gateway/node_modules/yallist/yallist.js b/gateway/node_modules/yallist/yallist.js deleted file mode 100644 index 4e83ab1..0000000 --- a/gateway/node_modules/yallist/yallist.js +++ /dev/null @@ -1,426 +0,0 @@ -'use strict' -module.exports = Yallist - -Yallist.Node = Node -Yallist.create = Yallist - -function Yallist (list) { - var self = this - if (!(self instanceof Yallist)) { - self = new Yallist() - } - - self.tail = null - self.head = null - self.length = 0 - - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item) - }) - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]) - } - } - - return self -} - -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list') - } - - var next = node.next - var prev = node.prev - - if (next) { - next.prev = prev - } - - if (prev) { - prev.next = next - } - - if (node === this.head) { - this.head = next - } - if (node === this.tail) { - this.tail = prev - } - - node.list.length-- - node.next = null - node.prev = null - node.list = null - - return next -} - -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var head = this.head - node.list = this - node.next = head - if (head) { - head.prev = node - } - - this.head = node - if (!this.tail) { - this.tail = node - } - this.length++ -} - -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var tail = this.tail - node.list = this - node.prev = tail - if (tail) { - tail.next = node - } - - this.tail = node - if (!this.head) { - this.head = node - } - this.length++ -} - -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined - } - - var res = this.tail.value - this.tail = this.tail.prev - if (this.tail) { - this.tail.next = null - } else { - this.head = null - } - this.length-- - return res -} - -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined - } - - var res = this.head.value - this.head = this.head.next - if (this.head) { - this.head.prev = null - } else { - this.tail = null - } - this.length-- - return res -} - -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this) - walker = walker.next - } -} - -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this) - walker = walker.prev - } -} - -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.next - } - return res -} - -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.prev - } - return res -} - -Yallist.prototype.reduce = function (fn, initial) { - var acc - var walker = this.head - if (arguments.length > 1) { - acc = initial - } else if (this.head) { - walker = this.head.next - acc = this.head.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i) - walker = walker.next - } - - return acc -} - -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc - var walker = this.tail - if (arguments.length > 1) { - acc = initial - } else if (this.tail) { - walker = this.tail.prev - acc = this.tail.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i) - walker = walker.prev - } - - return acc -} - -Yallist.prototype.toArray = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value - walker = walker.next - } - return arr -} - -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value - walker = walker.prev - } - return arr -} - -Yallist.prototype.slice = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next - } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.splice = function (start, deleteCount, ...nodes) { - if (start > this.length) { - start = this.length - 1 - } - if (start < 0) { - start = this.length + start; - } - - for (var i = 0, walker = this.head; walker !== null && i < start; i++) { - walker = walker.next - } - - var ret = [] - for (var i = 0; walker && i < deleteCount; i++) { - ret.push(walker.value) - walker = this.removeNode(walker) - } - if (walker === null) { - walker = this.tail - } - - if (walker !== this.head && walker !== this.tail) { - walker = walker.prev - } - - for (var i = 0; i < nodes.length; i++) { - walker = insert(this, walker, nodes[i]) - } - return ret; -} - -Yallist.prototype.reverse = function () { - var head = this.head - var tail = this.tail - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev - walker.prev = walker.next - walker.next = p - } - this.head = tail - this.tail = head - return this -} - -function insert (self, node, value) { - var inserted = node === self.head ? - new Node(value, null, node, self) : - new Node(value, node, node.next, self) - - if (inserted.next === null) { - self.tail = inserted - } - if (inserted.prev === null) { - self.head = inserted - } - - self.length++ - - return inserted -} - -function push (self, item) { - self.tail = new Node(item, self.tail, null, self) - if (!self.head) { - self.head = self.tail - } - self.length++ -} - -function unshift (self, item) { - self.head = new Node(item, null, self.head, self) - if (!self.tail) { - self.tail = self.head - } - self.length++ -} - -function Node (value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list) - } - - this.list = list - this.value = value - - if (prev) { - prev.next = this - this.prev = prev - } else { - this.prev = null - } - - if (next) { - next.prev = this - this.next = next - } else { - this.next = null - } -} - -try { - // add if support for Symbol.iterator is present - require('./iterator.js')(Yallist) -} catch (er) {} diff --git a/gateway/node_modules/zen-observable-ts/CHANGELOG.md b/gateway/node_modules/zen-observable-ts/CHANGELOG.md deleted file mode 100644 index 116b7d9..0000000 --- a/gateway/node_modules/zen-observable-ts/CHANGELOG.md +++ /dev/null @@ -1,28 +0,0 @@ -# Change log - ----- - -**NOTE:** This changelog is no longer maintained. Changes are now tracked in -the top level [`CHANGELOG.md`](https://github.com/apollographql/apollo-link/blob/master/CHANGELOG.md). - ----- - -### 0.8.11 - -- No changes - -### 0.8.10 -- Added `graphql` 14 to peer and dev deps; Updated `@types/graphql` to 14
- [@hwillson](http://github.com/hwillson) in [#789](https://github.com/apollographql/apollo-link/pull/789) - -### 0.8.9 -- fix to stop combining require and export [PR#559](https://github.com/apollographql/apollo-link/pull/559) - -### 0.8.8 -- revert to zen-observable 0.7 - -### 0.8.7 -- fixed typings - -### 0.8.6 -- initial publishing mirrors `zen-observable`'s versioning diff --git a/gateway/node_modules/zen-observable-ts/LICENSE b/gateway/node_modules/zen-observable-ts/LICENSE deleted file mode 100644 index 84df905..0000000 --- a/gateway/node_modules/zen-observable-ts/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2018 zenparsing (Kevin Smith) -Copyright (c) 2016 - 2018 Meteor Development Group, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/zen-observable-ts/lib/bundle.cjs.js b/gateway/node_modules/zen-observable-ts/lib/bundle.cjs.js deleted file mode 100644 index 4edc07a..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/bundle.cjs.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var zenObservable = _interopDefault(require('zen-observable')); - -var Observable = zenObservable; - -exports.Observable = Observable; -exports.default = Observable; -//# sourceMappingURL=bundle.cjs.js.map diff --git a/gateway/node_modules/zen-observable-ts/lib/bundle.cjs.js.map b/gateway/node_modules/zen-observable-ts/lib/bundle.cjs.js.map deleted file mode 100644 index cb4d0b7..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/bundle.cjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle.cjs.js","sources":["bundle.esm.js"],"sourcesContent":["import zenObservable from 'zen-observable';\n\nvar Observable = zenObservable;\n\nexport default Observable;\nexport { Observable };\n//# sourceMappingURL=bundle.esm.js.map\n"],"names":[],"mappings":";;;;;;;;AAEG,IAAC,UAAU,GAAG;;;;;"} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/bundle.esm.js b/gateway/node_modules/zen-observable-ts/lib/bundle.esm.js deleted file mode 100644 index b00615b..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/bundle.esm.js +++ /dev/null @@ -1,7 +0,0 @@ -import zenObservable from 'zen-observable'; - -var Observable = zenObservable; - -export default Observable; -export { Observable }; -//# sourceMappingURL=bundle.esm.js.map diff --git a/gateway/node_modules/zen-observable-ts/lib/bundle.esm.js.map b/gateway/node_modules/zen-observable-ts/lib/bundle.esm.js.map deleted file mode 100644 index f3af6e2..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/bundle.esm.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle.esm.js","sources":["../src/zenObservable.ts"],"sourcesContent":["/* tslint:disable */\n\nimport zenObservable from 'zen-observable';\n\nnamespace Observable {\n\n}\n\nimport { ZenObservable } from './types';\n\nexport { ZenObservable };\n\nexport type Observer = ZenObservable.Observer;\nexport type Subscriber = ZenObservable.Subscriber;\nexport type ObservableLike = ZenObservable.ObservableLike;\n\nexport const Observable: {\n new (subscriber: Subscriber): Observable;\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n} = zenObservable;\n\nexport interface Observable {\n subscribe(\n observerOrNext: ((value: T) => void) | ZenObservable.Observer,\n error?: (error: any) => void,\n complete?: () => void,\n ): ZenObservable.Subscription;\n\n forEach(fn: (value: T) => void): Promise;\n\n map(fn: (value: T) => R): Observable;\n\n filter(fn: (value: T) => boolean): Observable;\n\n reduce(\n fn: (previousValue: R | T, currentValue: T) => R | T,\n initialValue?: R | T,\n ): Observable;\n\n flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable;\n\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n}\n"],"names":[],"mappings":";;IAgBa,UAAU,GAMd;;;;;"} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/bundle.umd.js b/gateway/node_modules/zen-observable-ts/lib/bundle.umd.js deleted file mode 100644 index 6697a28..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/bundle.umd.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('zen-observable')) : - typeof define === 'function' && define.amd ? define(['exports', 'zen-observable'], factory) : - (global = global || self, factory((global.apolloLink = global.apolloLink || {}, global.apolloLink.zenObservable = {}), global.Observable)); -}(this, (function (exports, zenObservable) { 'use strict'; - - zenObservable = zenObservable && zenObservable.hasOwnProperty('default') ? zenObservable['default'] : zenObservable; - - var Observable = zenObservable; - - exports.Observable = Observable; - exports.default = Observable; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); -//# sourceMappingURL=bundle.umd.js.map diff --git a/gateway/node_modules/zen-observable-ts/lib/bundle.umd.js.map b/gateway/node_modules/zen-observable-ts/lib/bundle.umd.js.map deleted file mode 100644 index 0226762..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/bundle.umd.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle.umd.js","sources":["../src/zenObservable.ts"],"sourcesContent":["/* tslint:disable */\n\nimport zenObservable from 'zen-observable';\n\nnamespace Observable {\n\n}\n\nimport { ZenObservable } from './types';\n\nexport { ZenObservable };\n\nexport type Observer = ZenObservable.Observer;\nexport type Subscriber = ZenObservable.Subscriber;\nexport type ObservableLike = ZenObservable.ObservableLike;\n\nexport const Observable: {\n new (subscriber: Subscriber): Observable;\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n} = zenObservable;\n\nexport interface Observable {\n subscribe(\n observerOrNext: ((value: T) => void) | ZenObservable.Observer,\n error?: (error: any) => void,\n complete?: () => void,\n ): ZenObservable.Subscription;\n\n forEach(fn: (value: T) => void): Promise;\n\n map(fn: (value: T) => R): Observable;\n\n filter(fn: (value: T) => boolean): Observable;\n\n reduce(\n fn: (previousValue: R | T, currentValue: T) => R | T,\n initialValue?: R | T,\n ): Observable;\n\n flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable;\n\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n}\n"],"names":[],"mappings":";;;;;;;;MAgBa,UAAU,GAMd;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/index.d.ts b/gateway/node_modules/zen-observable-ts/lib/index.d.ts deleted file mode 100644 index 6b55561..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Observable } from './zenObservable'; -export * from './zenObservable'; -export default Observable; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/index.d.ts.map b/gateway/node_modules/zen-observable-ts/lib/index.d.ts.map deleted file mode 100644 index 7f79172..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,cAAc,iBAAiB,CAAC;AAChC,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/index.js b/gateway/node_modules/zen-observable-ts/lib/index.js deleted file mode 100644 index 86761b0..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/index.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var zenObservable_1 = require("./zenObservable"); -tslib_1.__exportStar(require("./zenObservable"), exports); -exports.default = zenObservable_1.Observable; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/index.js.map b/gateway/node_modules/zen-observable-ts/lib/index.js.map deleted file mode 100644 index c2112a7..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,0DAAgC;AAChC,kBAAe,0BAAU,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/types.d.ts b/gateway/node_modules/zen-observable-ts/lib/types.d.ts deleted file mode 100644 index 80bfde6..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/types.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -export declare namespace ZenObservable { - interface SubscriptionObserver { - closed: boolean; - next(value: T): void; - error(errorValue: any): void; - complete(): void; - } - interface Subscription { - closed: boolean; - unsubscribe(): void; - } - interface Observer { - start?(subscription: Subscription): any; - next?(value: T): void; - error?(errorValue: any): void; - complete?(): void; - } - type Subscriber = (observer: SubscriptionObserver) => void | (() => void) | Subscription; - interface ObservableLike { - subscribe?: Subscriber; - } -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/types.d.ts.map b/gateway/node_modules/zen-observable-ts/lib/types.d.ts.map deleted file mode 100644 index 1494bc5..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["src/types.ts"],"names":[],"mappings":"AAAA,yBAAiB,aAAa,CAAC;IAC7B,UAAiB,oBAAoB,CAAC,CAAC;QACrC,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC;QAC7B,QAAQ,IAAI,IAAI,CAAC;KAClB;IAED,UAAiB,YAAY;QAC3B,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,IAAI,IAAI,CAAC;KACrB;IAED,UAAiB,QAAQ,CAAC,CAAC;QACzB,KAAK,CAAC,CAAC,YAAY,EAAE,YAAY,GAAG,GAAG,CAAC;QACxC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,IAAI,IAAI,CAAC;KACnB;IAED,KAAY,UAAU,CAAC,CAAC,IAAI,CAC1B,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAC9B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,YAAY,CAAC;IAExC,UAAiB,cAAc,CAAC,CAAC;QAC/B,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;KAC3B;CACF"} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/types.js b/gateway/node_modules/zen-observable-ts/lib/types.js deleted file mode 100644 index 11e638d..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/types.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/types.js.map b/gateway/node_modules/zen-observable-ts/lib/types.js.map deleted file mode 100644 index c768b79..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/zenObservable.d.ts b/gateway/node_modules/zen-observable-ts/lib/zenObservable.d.ts deleted file mode 100644 index 2142733..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/zenObservable.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ZenObservable } from './types'; -export { ZenObservable }; -export declare type Observer = ZenObservable.Observer; -export declare type Subscriber = ZenObservable.Subscriber; -export declare type ObservableLike = ZenObservable.ObservableLike; -export declare const Observable: { - new (subscriber: Subscriber): Observable; - from(observable: Observable | ZenObservable.ObservableLike | ArrayLike): Observable; - of(...args: Array): Observable; -}; -export interface Observable { - subscribe(observerOrNext: ((value: T) => void) | ZenObservable.Observer, error?: (error: any) => void, complete?: () => void): ZenObservable.Subscription; - forEach(fn: (value: T) => void): Promise; - map(fn: (value: T) => R): Observable; - filter(fn: (value: T) => boolean): Observable; - reduce(fn: (previousValue: R | T, currentValue: T) => R | T, initialValue?: R | T): Observable; - flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable; - from(observable: Observable | ZenObservable.ObservableLike | ArrayLike): Observable; - of(...args: Array): Observable; -} -//# sourceMappingURL=zenObservable.d.ts.map \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/zenObservable.d.ts.map b/gateway/node_modules/zen-observable-ts/lib/zenObservable.d.ts.map deleted file mode 100644 index 54855d1..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/zenObservable.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"zenObservable.d.ts","sourceRoot":"","sources":["src/zenObservable.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,oBAAY,QAAQ,CAAC,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpD,oBAAY,UAAU,CAAC,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxD,oBAAY,cAAc,CAAC,CAAC,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEhE,eAAO,MAAM,UAAU,EAAE;IACvB,KAAK,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,EACJ,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GACzE,UAAU,CAAC,CAAC,CAAC,CAAC;IACjB,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEvB,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,SAAS,CACP,cAAc,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAChE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,EAC5B,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,aAAa,CAAC,YAAY,CAAC;IAE9B,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE3C,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,CAAC,CAAC,GAAG,CAAC,EACV,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EACpD,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GACnB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAErB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC,CAAC,EACJ,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GACzE,UAAU,CAAC,CAAC,CAAC,CAAC;IACjB,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CACzC"} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/zenObservable.js b/gateway/node_modules/zen-observable-ts/lib/zenObservable.js deleted file mode 100644 index 747d83d..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/zenObservable.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var zen_observable_1 = tslib_1.__importDefault(require("zen-observable")); -exports.Observable = zen_observable_1.default; -//# sourceMappingURL=zenObservable.js.map \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/lib/zenObservable.js.map b/gateway/node_modules/zen-observable-ts/lib/zenObservable.js.map deleted file mode 100644 index 86e8589..0000000 --- a/gateway/node_modules/zen-observable-ts/lib/zenObservable.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"zenObservable.js","sourceRoot":"","sources":["../src/zenObservable.ts"],"names":[],"mappings":";;;AAEA,0EAA2C;AAc9B,QAAA,UAAU,GAMd,wBAAa,CAAC"} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable-ts/package.json b/gateway/node_modules/zen-observable-ts/package.json deleted file mode 100644 index 85d417d..0000000 --- a/gateway/node_modules/zen-observable-ts/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "zen-observable-ts", - "version": "0.8.21", - "description": "An Implementation of ES Observables in Typescript", - "author": "Evans Hauser ", - "contributors": [], - "license": "MIT", - "main": "./lib/index.js", - "module": "./lib/bundle.esm.js", - "typings": "./lib/index.d.ts", - "sideEffects": false, - "repository": { - "type": "git", - "url": "git+https://github.com/apollographql/apollo-link.git" - }, - "bugs": { - "url": "https://github.com/apollographql/apollo-link/issues" - }, - "homepage": "https://github.com/zenparsing/zen-observable", - "scripts": { - "build": "tsc && rollup -c", - "clean": "rimraf lib/* && rimraf coverage/*", - "coverage": "jest --coverage", - "filesize": "../../scripts/minify", - "lint": "tslint -c \"../../tslint.json\" -p tsconfig.json -c ../../tslint.json src/*.ts", - "prebuild": "npm run clean", - "prepare": "npm run build", - "test": "npm run lint && jest", - "watch": "tsc -w -p ." - }, - "devDependencies": { - "@types/jest": "24.9.0", - "jest": "24.9.0", - "rimraf": "2.7.1", - "rollup": "1.29.1", - "ts-jest": "22.4.6", - "tslint": "5.20.1", - "typescript": "3.0.3" - }, - "jest": { - "transform": { - ".(ts|tsx)": "ts-jest" - }, - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js", - "json" - ], - "testURL": "http://localhost" - }, - "dependencies": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" - }, - "gitHead": "1012934b4fd9ab436c4fdcd5e9b1bb1e4c1b0d98" -} diff --git a/gateway/node_modules/zen-observable/.editorconfig b/gateway/node_modules/zen-observable/.editorconfig deleted file mode 100644 index d4eed84..0000000 --- a/gateway/node_modules/zen-observable/.editorconfig +++ /dev/null @@ -1,7 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = false -indent_style = space -indent_size = 2 diff --git a/gateway/node_modules/zen-observable/.eslintrc.js b/gateway/node_modules/zen-observable/.eslintrc.js deleted file mode 100644 index 3def7dc..0000000 --- a/gateway/node_modules/zen-observable/.eslintrc.js +++ /dev/null @@ -1,47 +0,0 @@ -module.exports = { - "extends": ["eslint:recommended"], - - "env": { - "es6": true, - "node": true - }, - - "globals": { - "setTimeout": true - }, - - "parserOptions": { - "sourceType": "module" - }, - - "rules": { - "no-console": ["error", { "allow": ["warn", "error"] }], - "no-unsafe-finally": ["off"], - "camelcase": ["error", { "properties": "always" }], - "brace-style": ["off"], - "eqeqeq": ["error", "smart"], - "indent": ["error", 2, { "SwitchCase": 1 }], - "no-throw-literal": ["error"], - "comma-spacing": ["error", { "before": false, "after": true }], - "comma-style": ["error", "last"], - "comma-dangle": ["error", "always-multiline"], - "keyword-spacing": ["error"], - "no-trailing-spaces": ["error"], - "no-multi-spaces": ["error"], - "no-spaced-func": ["error"], - "no-whitespace-before-property": ["error"], - "space-before-blocks": ["error"], - "space-before-function-paren": ["error", "never"], - "space-in-parens": ["error", "never"], - "eol-last": ["error"], - "quotes": ["error", "single", { "avoidEscape": true }], - "no-implicit-globals": ["error"], - "no-useless-concat": ["error"], - "space-infix-ops": ["error", { "int32Hint": true }], - "semi-spacing": ["error", { "before": false, "after": true }], - "semi": ["error", "always", { "omitLastInOneLineBlock": true }], - "object-curly-spacing": ["error", "always"], - "array-bracket-spacing": ["error"], - "max-len": ["error", 100] - } -}; diff --git a/gateway/node_modules/zen-observable/LICENSE b/gateway/node_modules/zen-observable/LICENSE deleted file mode 100644 index d850f52..0000000 --- a/gateway/node_modules/zen-observable/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright (c) 2018 zenparsing (Kevin Smith) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/gateway/node_modules/zen-observable/README.md b/gateway/node_modules/zen-observable/README.md deleted file mode 100644 index eff7a5c..0000000 --- a/gateway/node_modules/zen-observable/README.md +++ /dev/null @@ -1,176 +0,0 @@ -# zen-observable - -An implementation of Observables for JavaScript. Requires Promises or a Promise polyfill. - -## Install - -```sh -npm install zen-observable -``` - -## Usage - -```js -import Observable from 'zen-observable'; - -Observable.of(1, 2, 3).subscribe(x => console.log(x)); -``` - -## API - -### new Observable(subscribe) - -```js -let observable = new Observable(observer => { - // Emit a single value after 1 second - let timer = setTimeout(() => { - observer.next('hello'); - observer.complete(); - }, 1000); - - // On unsubscription, cancel the timer - return () => clearTimeout(timer); -}); -``` - -Creates a new Observable object using the specified subscriber function. The subscriber function is called whenever the `subscribe` method of the observable object is invoked. The subscriber function is passed an *observer* object which has the following methods: - -- `next(value)` Sends the next value in the sequence. -- `error(exception)` Terminates the sequence with an exception. -- `complete()` Terminates the sequence successfully. -- `closed` A boolean property whose value is `true` if the observer's subscription is closed. - -The subscriber function can optionally return either a cleanup function or a subscription object. If it returns a cleanup function, that function will be called when the subscription has closed. If it returns a subscription object, then the subscription's `unsubscribe` method will be invoked when the subscription has closed. - -### Observable.of(...items) - -```js -// Logs 1, 2, 3 -Observable.of(1, 2, 3).subscribe(x => { - console.log(x); -}); -``` - -Returns an observable which will emit each supplied argument. - -### Observable.from(value) - -```js -let list = [1, 2, 3]; - -// Iterate over an object -Observable.from(list).subscribe(x => { - console.log(x); -}); -``` - -```js -// Convert something 'observable' to an Observable instance -Observable.from(otherObservable).subscribe(x => { - console.log(x); -}); -``` - -Converts `value` to an Observable. - -- If `value` is an implementation of Observable, then it is converted to an instance of Observable as defined by this library. -- Otherwise, it is converted to an Observable which synchronously iterates over `value`. - -### observable.subscribe([observer]) - -```js -let subscription = observable.subscribe({ - next(x) { console.log(x) }, - error(err) { console.log(`Finished with error: ${ err }`) }, - complete() { console.log('Finished') } -}); -``` - -Subscribes to the observable. Observer objects may have any of the following methods: - -- `next(value)` Receives the next value of the sequence. -- `error(exception)` Receives the terminating error of the sequence. -- `complete()` Called when the stream has completed successfully. - -Returns a subscription object that can be used to cancel the stream. - -### observable.subscribe(nextCallback[, errorCallback, completeCallback]) - -```js -let subscription = observable.subscribe( - x => console.log(x), - err => console.log(`Finished with error: ${ err }`), - () => console.log('Finished') -); -``` - -Subscribes to the observable with callback functions. Returns a subscription object that can be used to cancel the stream. - -### observable.forEach(callback) - -```js -observable.forEach(x => { - console.log(`Received value: ${ x }`); -}).then(() => { - console.log('Finished successfully') -}).catch(err => { - console.log(`Finished with error: ${ err }`); -}) -``` - -Subscribes to the observable and returns a Promise for the completion value of the stream. The `callback` argument is called once for each value in the stream. - -### observable.filter(callback) - -```js -Observable.of(1, 2, 3).filter(value => { - return value > 2; -}).subscribe(value => { - console.log(value); -}); -// 3 -``` - -Returns a new Observable that emits all values which pass the test implemented by the `callback` argument. - -### observable.map(callback) - -Returns a new Observable that emits the results of calling the `callback` argument for every value in the stream. - -```js -Observable.of(1, 2, 3).map(value => { - return value * 2; -}).subscribe(value => { - console.log(value); -}); -// 2 -// 4 -// 6 -``` - -### observable.reduce(callback [,initialValue]) - -```js -Observable.of(0, 1, 2, 3, 4).reduce((previousValue, currentValue) => { - return previousValue + currentValue; -}).subscribe(result => { - console.log(result); -}); -// 10 -``` - -Returns a new Observable that applies a function against an accumulator and each value of the stream to reduce it to a single value. - -### observable.concat(...sources) - -```js -Observable.of(1, 2, 3).concat( - Observable.of(4, 5, 6), - Observable.of(7, 8, 9) -).subscribe(result => { - console.log(result); -}); -// 1, 2, 3, 4, 5, 6, 7, 8, 9 -``` - -Merges the current observable with additional observables. diff --git a/gateway/node_modules/zen-observable/esm.js b/gateway/node_modules/zen-observable/esm.js deleted file mode 100644 index a6bef71..0000000 --- a/gateway/node_modules/zen-observable/esm.js +++ /dev/null @@ -1,5 +0,0 @@ -import { Observable } from './src/Observable.js'; - -export default Observable; -export { Observable }; -export * from './src/extras.js'; diff --git a/gateway/node_modules/zen-observable/extras.js b/gateway/node_modules/zen-observable/extras.js deleted file mode 100644 index ab87de3..0000000 --- a/gateway/node_modules/zen-observable/extras.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/extras.js'); diff --git a/gateway/node_modules/zen-observable/index.js b/gateway/node_modules/zen-observable/index.js deleted file mode 100644 index 25c8a63..0000000 --- a/gateway/node_modules/zen-observable/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/Observable.js').Observable; diff --git a/gateway/node_modules/zen-observable/lib/Observable.js b/gateway/node_modules/zen-observable/lib/Observable.js deleted file mode 100644 index 4cad821..0000000 --- a/gateway/node_modules/zen-observable/lib/Observable.js +++ /dev/null @@ -1,617 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Observable = void 0; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -// === Symbol Support === -var hasSymbols = function () { - return typeof Symbol === 'function'; -}; - -var hasSymbol = function (name) { - return hasSymbols() && Boolean(Symbol[name]); -}; - -var getSymbol = function (name) { - return hasSymbol(name) ? Symbol[name] : '@@' + name; -}; - -if (hasSymbols() && !hasSymbol('observable')) { - Symbol.observable = Symbol('observable'); -} - -var SymbolIterator = getSymbol('iterator'); -var SymbolObservable = getSymbol('observable'); -var SymbolSpecies = getSymbol('species'); // === Abstract Operations === - -function getMethod(obj, key) { - var value = obj[key]; - if (value == null) return undefined; - if (typeof value !== 'function') throw new TypeError(value + ' is not a function'); - return value; -} - -function getSpecies(obj) { - var ctor = obj.constructor; - - if (ctor !== undefined) { - ctor = ctor[SymbolSpecies]; - - if (ctor === null) { - ctor = undefined; - } - } - - return ctor !== undefined ? ctor : Observable; -} - -function isObservable(x) { - return x instanceof Observable; // SPEC: Brand check -} - -function hostReportError(e) { - if (hostReportError.log) { - hostReportError.log(e); - } else { - setTimeout(function () { - throw e; - }); - } -} - -function enqueue(fn) { - Promise.resolve().then(function () { - try { - fn(); - } catch (e) { - hostReportError(e); - } - }); -} - -function cleanupSubscription(subscription) { - var cleanup = subscription._cleanup; - if (cleanup === undefined) return; - subscription._cleanup = undefined; - - if (!cleanup) { - return; - } - - try { - if (typeof cleanup === 'function') { - cleanup(); - } else { - var unsubscribe = getMethod(cleanup, 'unsubscribe'); - - if (unsubscribe) { - unsubscribe.call(cleanup); - } - } - } catch (e) { - hostReportError(e); - } -} - -function closeSubscription(subscription) { - subscription._observer = undefined; - subscription._queue = undefined; - subscription._state = 'closed'; -} - -function flushSubscription(subscription) { - var queue = subscription._queue; - - if (!queue) { - return; - } - - subscription._queue = undefined; - subscription._state = 'ready'; - - for (var i = 0; i < queue.length; ++i) { - notifySubscription(subscription, queue[i].type, queue[i].value); - if (subscription._state === 'closed') break; - } -} - -function notifySubscription(subscription, type, value) { - subscription._state = 'running'; - var observer = subscription._observer; - - try { - var m = getMethod(observer, type); - - switch (type) { - case 'next': - if (m) m.call(observer, value); - break; - - case 'error': - closeSubscription(subscription); - if (m) m.call(observer, value);else throw value; - break; - - case 'complete': - closeSubscription(subscription); - if (m) m.call(observer); - break; - } - } catch (e) { - hostReportError(e); - } - - if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready'; -} - -function onNotify(subscription, type, value) { - if (subscription._state === 'closed') return; - - if (subscription._state === 'buffering') { - subscription._queue.push({ - type: type, - value: value - }); - - return; - } - - if (subscription._state !== 'ready') { - subscription._state = 'buffering'; - subscription._queue = [{ - type: type, - value: value - }]; - enqueue(function () { - return flushSubscription(subscription); - }); - return; - } - - notifySubscription(subscription, type, value); -} - -var Subscription = -/*#__PURE__*/ -function () { - function Subscription(observer, subscriber) { - _classCallCheck(this, Subscription); - - // ASSERT: observer is an object - // ASSERT: subscriber is callable - this._cleanup = undefined; - this._observer = observer; - this._queue = undefined; - this._state = 'initializing'; - var subscriptionObserver = new SubscriptionObserver(this); - - try { - this._cleanup = subscriber.call(undefined, subscriptionObserver); - } catch (e) { - subscriptionObserver.error(e); - } - - if (this._state === 'initializing') this._state = 'ready'; - } - - _createClass(Subscription, [{ - key: "unsubscribe", - value: function unsubscribe() { - if (this._state !== 'closed') { - closeSubscription(this); - cleanupSubscription(this); - } - } - }, { - key: "closed", - get: function () { - return this._state === 'closed'; - } - }]); - - return Subscription; -}(); - -var SubscriptionObserver = -/*#__PURE__*/ -function () { - function SubscriptionObserver(subscription) { - _classCallCheck(this, SubscriptionObserver); - - this._subscription = subscription; - } - - _createClass(SubscriptionObserver, [{ - key: "next", - value: function next(value) { - onNotify(this._subscription, 'next', value); - } - }, { - key: "error", - value: function error(value) { - onNotify(this._subscription, 'error', value); - } - }, { - key: "complete", - value: function complete() { - onNotify(this._subscription, 'complete'); - } - }, { - key: "closed", - get: function () { - return this._subscription._state === 'closed'; - } - }]); - - return SubscriptionObserver; -}(); - -var Observable = -/*#__PURE__*/ -function () { - function Observable(subscriber) { - _classCallCheck(this, Observable); - - if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function'); - if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function'); - this._subscriber = subscriber; - } - - _createClass(Observable, [{ - key: "subscribe", - value: function subscribe(observer) { - if (typeof observer !== 'object' || observer === null) { - observer = { - next: observer, - error: arguments[1], - complete: arguments[2] - }; - } - - return new Subscription(observer, this._subscriber); - } - }, { - key: "forEach", - value: function forEach(fn) { - var _this = this; - - return new Promise(function (resolve, reject) { - if (typeof fn !== 'function') { - reject(new TypeError(fn + ' is not a function')); - return; - } - - function done() { - subscription.unsubscribe(); - resolve(); - } - - var subscription = _this.subscribe({ - next: function (value) { - try { - fn(value, done); - } catch (e) { - reject(e); - subscription.unsubscribe(); - } - }, - error: reject, - complete: resolve - }); - }); - } - }, { - key: "map", - value: function map(fn) { - var _this2 = this; - - if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); - var C = getSpecies(this); - return new C(function (observer) { - return _this2.subscribe({ - next: function (value) { - try { - value = fn(value); - } catch (e) { - return observer.error(e); - } - - observer.next(value); - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - observer.complete(); - } - }); - }); - } - }, { - key: "filter", - value: function filter(fn) { - var _this3 = this; - - if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); - var C = getSpecies(this); - return new C(function (observer) { - return _this3.subscribe({ - next: function (value) { - try { - if (!fn(value)) return; - } catch (e) { - return observer.error(e); - } - - observer.next(value); - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - observer.complete(); - } - }); - }); - } - }, { - key: "reduce", - value: function reduce(fn) { - var _this4 = this; - - if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); - var C = getSpecies(this); - var hasSeed = arguments.length > 1; - var hasValue = false; - var seed = arguments[1]; - var acc = seed; - return new C(function (observer) { - return _this4.subscribe({ - next: function (value) { - var first = !hasValue; - hasValue = true; - - if (!first || hasSeed) { - try { - acc = fn(acc, value); - } catch (e) { - return observer.error(e); - } - } else { - acc = value; - } - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence')); - observer.next(acc); - observer.complete(); - } - }); - }); - } - }, { - key: "concat", - value: function concat() { - var _this5 = this; - - for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) { - sources[_key] = arguments[_key]; - } - - var C = getSpecies(this); - return new C(function (observer) { - var subscription; - var index = 0; - - function startNext(next) { - subscription = next.subscribe({ - next: function (v) { - observer.next(v); - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - if (index === sources.length) { - subscription = undefined; - observer.complete(); - } else { - startNext(C.from(sources[index++])); - } - } - }); - } - - startNext(_this5); - return function () { - if (subscription) { - subscription.unsubscribe(); - subscription = undefined; - } - }; - }); - } - }, { - key: "flatMap", - value: function flatMap(fn) { - var _this6 = this; - - if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); - var C = getSpecies(this); - return new C(function (observer) { - var subscriptions = []; - - var outer = _this6.subscribe({ - next: function (value) { - if (fn) { - try { - value = fn(value); - } catch (e) { - return observer.error(e); - } - } - - var inner = C.from(value).subscribe({ - next: function (value) { - observer.next(value); - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - var i = subscriptions.indexOf(inner); - if (i >= 0) subscriptions.splice(i, 1); - completeIfDone(); - } - }); - subscriptions.push(inner); - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - completeIfDone(); - } - }); - - function completeIfDone() { - if (outer.closed && subscriptions.length === 0) observer.complete(); - } - - return function () { - subscriptions.forEach(function (s) { - return s.unsubscribe(); - }); - outer.unsubscribe(); - }; - }); - } - }, { - key: SymbolObservable, - value: function () { - return this; - } - }], [{ - key: "from", - value: function from(x) { - var C = typeof this === 'function' ? this : Observable; - if (x == null) throw new TypeError(x + ' is not an object'); - var method = getMethod(x, SymbolObservable); - - if (method) { - var observable = method.call(x); - if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object'); - if (isObservable(observable) && observable.constructor === C) return observable; - return new C(function (observer) { - return observable.subscribe(observer); - }); - } - - if (hasSymbol('iterator')) { - method = getMethod(x, SymbolIterator); - - if (method) { - return new C(function (observer) { - enqueue(function () { - if (observer.closed) return; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _item = _step.value; - observer.next(_item); - if (observer.closed) return; - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - observer.complete(); - }); - }); - } - } - - if (Array.isArray(x)) { - return new C(function (observer) { - enqueue(function () { - if (observer.closed) return; - - for (var i = 0; i < x.length; ++i) { - observer.next(x[i]); - if (observer.closed) return; - } - - observer.complete(); - }); - }); - } - - throw new TypeError(x + ' is not observable'); - } - }, { - key: "of", - value: function of() { - for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - items[_key2] = arguments[_key2]; - } - - var C = typeof this === 'function' ? this : Observable; - return new C(function (observer) { - enqueue(function () { - if (observer.closed) return; - - for (var i = 0; i < items.length; ++i) { - observer.next(items[i]); - if (observer.closed) return; - } - - observer.complete(); - }); - }); - } - }, { - key: SymbolSpecies, - get: function () { - return this; - } - }]); - - return Observable; -}(); - -exports.Observable = Observable; - -if (hasSymbols()) { - Object.defineProperty(Observable, Symbol('extensions'), { - value: { - symbol: SymbolObservable, - hostReportError: hostReportError - }, - configurable: true - }); -} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable/lib/extras.js b/gateway/node_modules/zen-observable/lib/extras.js deleted file mode 100644 index 58f06d0..0000000 --- a/gateway/node_modules/zen-observable/lib/extras.js +++ /dev/null @@ -1,132 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.merge = merge; -exports.combineLatest = combineLatest; -exports.zip = zip; - -var _Observable = require("./Observable.js"); - -// Emits all values from all inputs in parallel -function merge() { - for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) { - sources[_key] = arguments[_key]; - } - - return new _Observable.Observable(function (observer) { - if (sources.length === 0) return _Observable.Observable.from([]); - var count = sources.length; - var subscriptions = sources.map(function (source) { - return _Observable.Observable.from(source).subscribe({ - next: function (v) { - observer.next(v); - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - if (--count === 0) observer.complete(); - } - }); - }); - return function () { - return subscriptions.forEach(function (s) { - return s.unsubscribe(); - }); - }; - }); -} // Emits arrays containing the most current values from each input - - -function combineLatest() { - for (var _len2 = arguments.length, sources = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - sources[_key2] = arguments[_key2]; - } - - return new _Observable.Observable(function (observer) { - if (sources.length === 0) return _Observable.Observable.from([]); - var count = sources.length; - var seen = new Set(); - var seenAll = false; - var values = sources.map(function () { - return undefined; - }); - var subscriptions = sources.map(function (source, index) { - return _Observable.Observable.from(source).subscribe({ - next: function (v) { - values[index] = v; - - if (!seenAll) { - seen.add(index); - if (seen.size !== sources.length) return; - seen = null; - seenAll = true; - } - - observer.next(Array.from(values)); - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - if (--count === 0) observer.complete(); - } - }); - }); - return function () { - return subscriptions.forEach(function (s) { - return s.unsubscribe(); - }); - }; - }); -} // Emits arrays containing the matching index values from each input - - -function zip() { - for (var _len3 = arguments.length, sources = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - sources[_key3] = arguments[_key3]; - } - - return new _Observable.Observable(function (observer) { - if (sources.length === 0) return _Observable.Observable.from([]); - var queues = sources.map(function () { - return []; - }); - - function done() { - return queues.some(function (q, i) { - return q.length === 0 && subscriptions[i].closed; - }); - } - - var subscriptions = sources.map(function (source, index) { - return _Observable.Observable.from(source).subscribe({ - next: function (v) { - queues[index].push(v); - - if (queues.every(function (q) { - return q.length > 0; - })) { - observer.next(queues.map(function (q) { - return q.shift(); - })); - if (done()) observer.complete(); - } - }, - error: function (e) { - observer.error(e); - }, - complete: function () { - if (done()) observer.complete(); - } - }); - }); - return function () { - return subscriptions.forEach(function (s) { - return s.unsubscribe(); - }); - }; - }); -} \ No newline at end of file diff --git a/gateway/node_modules/zen-observable/package.json b/gateway/node_modules/zen-observable/package.json deleted file mode 100644 index ffee431..0000000 --- a/gateway/node_modules/zen-observable/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "zen-observable", - "version": "0.8.15", - "repository": "zenparsing/zen-observable", - "description": "An Implementation of ES Observables", - "homepage": "https://github.com/zenparsing/zen-observable", - "license": "MIT", - "devDependencies": { - "@babel/cli": "^7.6.0", - "@babel/core": "^7.6.0", - "@babel/preset-env": "^7.6.0", - "@babel/register": "^7.6.0", - "eslint": "^6.5.0", - "mocha": "^6.2.0" - }, - "dependencies": {}, - "scripts": { - "test": "mocha --recursive --require ./scripts/mocha-require", - "lint": "eslint src/*", - "build": "git clean -dfX ./lib && node ./scripts/build", - "prepublishOnly": "npm run lint && npm test && npm run build" - } -} diff --git a/gateway/node_modules/zen-observable/scripts/babel-plugins.js b/gateway/node_modules/zen-observable/scripts/babel-plugins.js deleted file mode 100644 index 885fa84..0000000 --- a/gateway/node_modules/zen-observable/scripts/babel-plugins.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = [ - '@babel/plugin-transform-arrow-functions', - '@babel/plugin-transform-block-scoped-functions', - '@babel/plugin-transform-block-scoping', - '@babel/plugin-transform-classes', - '@babel/plugin-transform-computed-properties', - '@babel/plugin-transform-destructuring', - '@babel/plugin-transform-duplicate-keys', - '@babel/plugin-transform-for-of', - '@babel/plugin-transform-literals', - '@babel/plugin-transform-modules-commonjs', - '@babel/plugin-transform-parameters', - '@babel/plugin-transform-shorthand-properties', - '@babel/plugin-transform-spread', - '@babel/plugin-transform-template-literals', -]; diff --git a/gateway/node_modules/zen-observable/scripts/build.js b/gateway/node_modules/zen-observable/scripts/build.js deleted file mode 100644 index f4c8fa6..0000000 --- a/gateway/node_modules/zen-observable/scripts/build.js +++ /dev/null @@ -1,7 +0,0 @@ -const { execSync } = require('child_process'); -const plugins = require('./babel-plugins'); - -execSync('babel src --out-dir lib --plugins=' + plugins.join(','), { - env: process.env, - stdio: 'inherit', -}); diff --git a/gateway/node_modules/zen-observable/scripts/mocha-require.js b/gateway/node_modules/zen-observable/scripts/mocha-require.js deleted file mode 100644 index f375ae1..0000000 --- a/gateway/node_modules/zen-observable/scripts/mocha-require.js +++ /dev/null @@ -1,3 +0,0 @@ -require('@babel/register')({ - plugins: require('./babel-plugins'), -}); diff --git a/gateway/node_modules/zen-observable/src/Observable.js b/gateway/node_modules/zen-observable/src/Observable.js deleted file mode 100644 index 9364bc0..0000000 --- a/gateway/node_modules/zen-observable/src/Observable.js +++ /dev/null @@ -1,476 +0,0 @@ -// === Symbol Support === - -const hasSymbols = () => typeof Symbol === 'function'; -const hasSymbol = name => hasSymbols() && Boolean(Symbol[name]); -const getSymbol = name => hasSymbol(name) ? Symbol[name] : '@@' + name; - -if (hasSymbols() && !hasSymbol('observable')) { - Symbol.observable = Symbol('observable'); -} - -const SymbolIterator = getSymbol('iterator'); -const SymbolObservable = getSymbol('observable'); -const SymbolSpecies = getSymbol('species'); - -// === Abstract Operations === - -function getMethod(obj, key) { - let value = obj[key]; - - if (value == null) - return undefined; - - if (typeof value !== 'function') - throw new TypeError(value + ' is not a function'); - - return value; -} - -function getSpecies(obj) { - let ctor = obj.constructor; - if (ctor !== undefined) { - ctor = ctor[SymbolSpecies]; - if (ctor === null) { - ctor = undefined; - } - } - return ctor !== undefined ? ctor : Observable; -} - -function isObservable(x) { - return x instanceof Observable; // SPEC: Brand check -} - -function hostReportError(e) { - if (hostReportError.log) { - hostReportError.log(e); - } else { - setTimeout(() => { throw e }); - } -} - -function enqueue(fn) { - Promise.resolve().then(() => { - try { fn() } - catch (e) { hostReportError(e) } - }); -} - -function cleanupSubscription(subscription) { - let cleanup = subscription._cleanup; - if (cleanup === undefined) - return; - - subscription._cleanup = undefined; - - if (!cleanup) { - return; - } - - try { - if (typeof cleanup === 'function') { - cleanup(); - } else { - let unsubscribe = getMethod(cleanup, 'unsubscribe'); - if (unsubscribe) { - unsubscribe.call(cleanup); - } - } - } catch (e) { - hostReportError(e); - } -} - -function closeSubscription(subscription) { - subscription._observer = undefined; - subscription._queue = undefined; - subscription._state = 'closed'; -} - -function flushSubscription(subscription) { - let queue = subscription._queue; - if (!queue) { - return; - } - subscription._queue = undefined; - subscription._state = 'ready'; - for (let i = 0; i < queue.length; ++i) { - notifySubscription(subscription, queue[i].type, queue[i].value); - if (subscription._state === 'closed') - break; - } -} - -function notifySubscription(subscription, type, value) { - subscription._state = 'running'; - - let observer = subscription._observer; - - try { - let m = getMethod(observer, type); - switch (type) { - case 'next': - if (m) m.call(observer, value); - break; - case 'error': - closeSubscription(subscription); - if (m) m.call(observer, value); - else throw value; - break; - case 'complete': - closeSubscription(subscription); - if (m) m.call(observer); - break; - } - } catch (e) { - hostReportError(e); - } - - if (subscription._state === 'closed') - cleanupSubscription(subscription); - else if (subscription._state === 'running') - subscription._state = 'ready'; -} - -function onNotify(subscription, type, value) { - if (subscription._state === 'closed') - return; - - if (subscription._state === 'buffering') { - subscription._queue.push({ type, value }); - return; - } - - if (subscription._state !== 'ready') { - subscription._state = 'buffering'; - subscription._queue = [{ type, value }]; - enqueue(() => flushSubscription(subscription)); - return; - } - - notifySubscription(subscription, type, value); -} - - -class Subscription { - - constructor(observer, subscriber) { - // ASSERT: observer is an object - // ASSERT: subscriber is callable - - this._cleanup = undefined; - this._observer = observer; - this._queue = undefined; - this._state = 'initializing'; - - let subscriptionObserver = new SubscriptionObserver(this); - - try { - this._cleanup = subscriber.call(undefined, subscriptionObserver); - } catch (e) { - subscriptionObserver.error(e); - } - - if (this._state === 'initializing') - this._state = 'ready'; - } - - get closed() { - return this._state === 'closed'; - } - - unsubscribe() { - if (this._state !== 'closed') { - closeSubscription(this); - cleanupSubscription(this); - } - } -} - -class SubscriptionObserver { - constructor(subscription) { this._subscription = subscription } - get closed() { return this._subscription._state === 'closed' } - next(value) { onNotify(this._subscription, 'next', value) } - error(value) { onNotify(this._subscription, 'error', value) } - complete() { onNotify(this._subscription, 'complete') } -} - -export class Observable { - - constructor(subscriber) { - if (!(this instanceof Observable)) - throw new TypeError('Observable cannot be called as a function'); - - if (typeof subscriber !== 'function') - throw new TypeError('Observable initializer must be a function'); - - this._subscriber = subscriber; - } - - subscribe(observer) { - if (typeof observer !== 'object' || observer === null) { - observer = { - next: observer, - error: arguments[1], - complete: arguments[2], - }; - } - return new Subscription(observer, this._subscriber); - } - - forEach(fn) { - return new Promise((resolve, reject) => { - if (typeof fn !== 'function') { - reject(new TypeError(fn + ' is not a function')); - return; - } - - function done() { - subscription.unsubscribe(); - resolve(); - } - - let subscription = this.subscribe({ - next(value) { - try { - fn(value, done); - } catch (e) { - reject(e); - subscription.unsubscribe(); - } - }, - error: reject, - complete: resolve, - }); - }); - } - - map(fn) { - if (typeof fn !== 'function') - throw new TypeError(fn + ' is not a function'); - - let C = getSpecies(this); - - return new C(observer => this.subscribe({ - next(value) { - try { value = fn(value) } - catch (e) { return observer.error(e) } - observer.next(value); - }, - error(e) { observer.error(e) }, - complete() { observer.complete() }, - })); - } - - filter(fn) { - if (typeof fn !== 'function') - throw new TypeError(fn + ' is not a function'); - - let C = getSpecies(this); - - return new C(observer => this.subscribe({ - next(value) { - try { if (!fn(value)) return; } - catch (e) { return observer.error(e) } - observer.next(value); - }, - error(e) { observer.error(e) }, - complete() { observer.complete() }, - })); - } - - reduce(fn) { - if (typeof fn !== 'function') - throw new TypeError(fn + ' is not a function'); - - let C = getSpecies(this); - let hasSeed = arguments.length > 1; - let hasValue = false; - let seed = arguments[1]; - let acc = seed; - - return new C(observer => this.subscribe({ - - next(value) { - let first = !hasValue; - hasValue = true; - - if (!first || hasSeed) { - try { acc = fn(acc, value) } - catch (e) { return observer.error(e) } - } else { - acc = value; - } - }, - - error(e) { observer.error(e) }, - - complete() { - if (!hasValue && !hasSeed) - return observer.error(new TypeError('Cannot reduce an empty sequence')); - - observer.next(acc); - observer.complete(); - }, - - })); - } - - concat(...sources) { - let C = getSpecies(this); - - return new C(observer => { - let subscription; - let index = 0; - - function startNext(next) { - subscription = next.subscribe({ - next(v) { observer.next(v) }, - error(e) { observer.error(e) }, - complete() { - if (index === sources.length) { - subscription = undefined; - observer.complete(); - } else { - startNext(C.from(sources[index++])); - } - }, - }); - } - - startNext(this); - - return () => { - if (subscription) { - subscription.unsubscribe(); - subscription = undefined; - } - }; - }); - } - - flatMap(fn) { - if (typeof fn !== 'function') - throw new TypeError(fn + ' is not a function'); - - let C = getSpecies(this); - - return new C(observer => { - let subscriptions = []; - - let outer = this.subscribe({ - next(value) { - if (fn) { - try { value = fn(value) } - catch (e) { return observer.error(e) } - } - - let inner = C.from(value).subscribe({ - next(value) { observer.next(value) }, - error(e) { observer.error(e) }, - complete() { - let i = subscriptions.indexOf(inner); - if (i >= 0) subscriptions.splice(i, 1); - completeIfDone(); - }, - }); - - subscriptions.push(inner); - }, - error(e) { observer.error(e) }, - complete() { completeIfDone() }, - }); - - function completeIfDone() { - if (outer.closed && subscriptions.length === 0) - observer.complete(); - } - - return () => { - subscriptions.forEach(s => s.unsubscribe()); - outer.unsubscribe(); - }; - }); - } - - [SymbolObservable]() { return this } - - static from(x) { - let C = typeof this === 'function' ? this : Observable; - - if (x == null) - throw new TypeError(x + ' is not an object'); - - let method = getMethod(x, SymbolObservable); - if (method) { - let observable = method.call(x); - - if (Object(observable) !== observable) - throw new TypeError(observable + ' is not an object'); - - if (isObservable(observable) && observable.constructor === C) - return observable; - - return new C(observer => observable.subscribe(observer)); - } - - if (hasSymbol('iterator')) { - method = getMethod(x, SymbolIterator); - if (method) { - return new C(observer => { - enqueue(() => { - if (observer.closed) return; - for (let item of method.call(x)) { - observer.next(item); - if (observer.closed) return; - } - observer.complete(); - }); - }); - } - } - - if (Array.isArray(x)) { - return new C(observer => { - enqueue(() => { - if (observer.closed) return; - for (let i = 0; i < x.length; ++i) { - observer.next(x[i]); - if (observer.closed) return; - } - observer.complete(); - }); - }); - } - - throw new TypeError(x + ' is not observable'); - } - - static of(...items) { - let C = typeof this === 'function' ? this : Observable; - - return new C(observer => { - enqueue(() => { - if (observer.closed) return; - for (let i = 0; i < items.length; ++i) { - observer.next(items[i]); - if (observer.closed) return; - } - observer.complete(); - }); - }); - } - - static get [SymbolSpecies]() { return this } - -} - -if (hasSymbols()) { - Object.defineProperty(Observable, Symbol('extensions'), { - value: { - symbol: SymbolObservable, - hostReportError, - }, - configurable: true, - }); -} diff --git a/gateway/node_modules/zen-observable/src/extras.js b/gateway/node_modules/zen-observable/src/extras.js deleted file mode 100644 index ca6b6f7..0000000 --- a/gateway/node_modules/zen-observable/src/extras.js +++ /dev/null @@ -1,99 +0,0 @@ -import { Observable } from './Observable.js'; - -// Emits all values from all inputs in parallel -export function merge(...sources) { - return new Observable(observer => { - if (sources.length === 0) - return Observable.from([]); - - let count = sources.length; - - let subscriptions = sources.map(source => Observable.from(source).subscribe({ - next(v) { - observer.next(v); - }, - error(e) { - observer.error(e); - }, - complete() { - if (--count === 0) - observer.complete(); - }, - })); - - return () => subscriptions.forEach(s => s.unsubscribe()); - }); -} - -// Emits arrays containing the most current values from each input -export function combineLatest(...sources) { - return new Observable(observer => { - if (sources.length === 0) - return Observable.from([]); - - let count = sources.length; - let seen = new Set(); - let seenAll = false; - let values = sources.map(() => undefined); - - let subscriptions = sources.map((source, index) => Observable.from(source).subscribe({ - next(v) { - values[index] = v; - - if (!seenAll) { - seen.add(index); - if (seen.size !== sources.length) - return; - - seen = null; - seenAll = true; - } - - observer.next(Array.from(values)); - }, - error(e) { - observer.error(e); - }, - complete() { - if (--count === 0) - observer.complete(); - }, - })); - - return () => subscriptions.forEach(s => s.unsubscribe()); - }); -} - -// Emits arrays containing the matching index values from each input -export function zip(...sources) { - return new Observable(observer => { - if (sources.length === 0) - return Observable.from([]); - - let queues = sources.map(() => []); - - function done() { - return queues.some((q, i) => q.length === 0 && subscriptions[i].closed); - } - - let subscriptions = sources.map((source, index) => Observable.from(source).subscribe({ - next(v) { - queues[index].push(v); - if (queues.every(q => q.length > 0)) { - observer.next(queues.map(q => q.shift())); - if (done()) - observer.complete(); - } - }, - error(e) { - observer.error(e); - }, - complete() { - if (done()) - observer.complete(); - }, - })); - - return () => subscriptions.forEach(s => s.unsubscribe()); - }); -} diff --git a/gateway/node_modules/zen-observable/test/concat.js b/gateway/node_modules/zen-observable/test/concat.js deleted file mode 100644 index 30079d4..0000000 --- a/gateway/node_modules/zen-observable/test/concat.js +++ /dev/null @@ -1,30 +0,0 @@ -import assert from 'assert'; - -describe('concat', () => { - it('concatenates the supplied Observable arguments', async () => { - let list = []; - - await Observable - .from([1, 2, 3, 4]) - .concat(Observable.of(5, 6, 7)) - .forEach(x => list.push(x)); - - assert.deepEqual(list, [1, 2, 3, 4, 5, 6, 7]); - }); - - it('can be used multiple times to produce the same results', async () => { - const list1 = []; - const list2 = []; - - const concatenated = Observable.from([1, 2, 3, 4]) - .concat(Observable.of(5, 6, 7)); - - await concatenated - .forEach(x => list1.push(x)); - await concatenated - .forEach(x => list2.push(x)); - - assert.deepEqual(list1, [1, 2, 3, 4, 5, 6, 7]); - assert.deepEqual(list2, [1, 2, 3, 4, 5, 6, 7]); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/constructor.js b/gateway/node_modules/zen-observable/test/constructor.js deleted file mode 100644 index 4d93b7f..0000000 --- a/gateway/node_modules/zen-observable/test/constructor.js +++ /dev/null @@ -1,36 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('constructor', () => { - it('throws if called as a function', () => { - assert.throws(() => Observable(() => {})); - assert.throws(() => Observable.call({}, () => {})); - }); - - it('throws if the argument is not callable', () => { - assert.throws(() => new Observable({})); - assert.throws(() => new Observable()); - assert.throws(() => new Observable(1)); - assert.throws(() => new Observable('string')); - }); - - it('accepts a function argument', () => { - let result = new Observable(() => {}); - assert.ok(result instanceof Observable); - }); - - it('is the value of Observable.prototype.constructor', () => { - testMethodProperty(Observable.prototype, 'constructor', { - configurable: true, - writable: true, - length: 1, - }); - }); - - it('does not call the subscriber function', () => { - let called = 0; - new Observable(() => { called++ }); - assert.equal(called, 0); - }); - -}); diff --git a/gateway/node_modules/zen-observable/test/extras/combine-latest.js b/gateway/node_modules/zen-observable/test/extras/combine-latest.js deleted file mode 100644 index ec2c920..0000000 --- a/gateway/node_modules/zen-observable/test/extras/combine-latest.js +++ /dev/null @@ -1,43 +0,0 @@ -import assert from 'assert'; -import { parse } from './parse.js'; -import { combineLatest } from '../../src/extras.js'; - -describe('extras/combineLatest', () => { - it('should emit arrays containing the most recent values', async () => { - let output = []; - await combineLatest( - parse('a-b-c-d'), - parse('-A-B-C-D') - ).forEach( - value => output.push(value.join('')) - ); - assert.deepEqual(output, [ - 'aA', - 'bA', - 'bB', - 'cB', - 'cC', - 'dC', - 'dD', - ]); - }); - - it('should emit values in the correct order', async () => { - let output = []; - await combineLatest( - parse('-a-b-c-d'), - parse('A-B-C-D') - ).forEach( - value => output.push(value.join('')) - ); - assert.deepEqual(output, [ - 'aA', - 'aB', - 'bB', - 'bC', - 'cC', - 'cD', - 'dD', - ]); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/extras/merge.js b/gateway/node_modules/zen-observable/test/extras/merge.js deleted file mode 100644 index 4b637ca..0000000 --- a/gateway/node_modules/zen-observable/test/extras/merge.js +++ /dev/null @@ -1,16 +0,0 @@ -import assert from 'assert'; -import { parse } from './parse.js'; -import { merge } from '../../src/extras.js'; - -describe('extras/merge', () => { - it('should emit all data from each input in parallel', async () => { - let output = ''; - await merge( - parse('a-b-c-d'), - parse('-A-B-C-D') - ).forEach( - value => output += value - ); - assert.equal(output, 'aAbBcCdD'); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/extras/parse.js b/gateway/node_modules/zen-observable/test/extras/parse.js deleted file mode 100644 index f22de31..0000000 --- a/gateway/node_modules/zen-observable/test/extras/parse.js +++ /dev/null @@ -1,11 +0,0 @@ -export function parse(string) { - return new Observable(async observer => { - await null; - for (let char of string) { - if (observer.closed) return; - else if (char !== '-') observer.next(char); - await null; - } - observer.complete(); - }); -} diff --git a/gateway/node_modules/zen-observable/test/extras/zip.js b/gateway/node_modules/zen-observable/test/extras/zip.js deleted file mode 100644 index 94225d2..0000000 --- a/gateway/node_modules/zen-observable/test/extras/zip.js +++ /dev/null @@ -1,21 +0,0 @@ -import assert from 'assert'; -import { parse } from './parse.js'; -import { zip } from '../../src/extras.js'; - -describe('extras/zip', () => { - it('should emit pairs of corresponding index values', async () => { - let output = []; - await zip( - parse('a-b-c-d'), - parse('-A-B-C-D') - ).forEach( - value => output.push(value.join('')) - ); - assert.deepEqual(output, [ - 'aA', - 'bB', - 'cC', - 'dD', - ]); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/filter.js b/gateway/node_modules/zen-observable/test/filter.js deleted file mode 100644 index 36ad88f..0000000 --- a/gateway/node_modules/zen-observable/test/filter.js +++ /dev/null @@ -1,14 +0,0 @@ -import assert from 'assert'; - -describe('filter', () => { - it('filters the results using the supplied callback', async () => { - let list = []; - - await Observable - .from([1, 2, 3, 4]) - .filter(x => x > 2) - .forEach(x => list.push(x)); - - assert.deepEqual(list, [3, 4]); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/flat-map.js b/gateway/node_modules/zen-observable/test/flat-map.js deleted file mode 100644 index 64cca89..0000000 --- a/gateway/node_modules/zen-observable/test/flat-map.js +++ /dev/null @@ -1,23 +0,0 @@ -import assert from 'assert'; - -describe('flatMap', () => { - it('maps and flattens the results using the supplied callback', async () => { - let list = []; - - await Observable.of('a', 'b', 'c').flatMap(x => - Observable.of(1, 2, 3).map(y => [x, y]) - ).forEach(x => list.push(x)); - - assert.deepEqual(list, [ - ['a', 1], - ['a', 2], - ['a', 3], - ['b', 1], - ['b', 2], - ['b', 3], - ['c', 1], - ['c', 2], - ['c', 3], - ]); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/for-each.js b/gateway/node_modules/zen-observable/test/for-each.js deleted file mode 100644 index 69c5590..0000000 --- a/gateway/node_modules/zen-observable/test/for-each.js +++ /dev/null @@ -1,70 +0,0 @@ -import assert from 'assert'; - -describe('forEach', () => { - - it('rejects if the argument is not a function', async () => { - let promise = Observable.of(1, 2, 3).forEach(); - try { - await promise; - assert.ok(false); - } catch (err) { - assert.equal(err.name, 'TypeError'); - } - }); - - it('rejects if the callback throws', async () => { - let error = {}; - try { - await Observable.of(1, 2, 3).forEach(x => { throw error }); - assert.ok(false); - } catch (err) { - assert.equal(err, error); - } - }); - - it('does not execute callback after callback throws', async () => { - let calls = []; - try { - await Observable.of(1, 2, 3).forEach(x => { - calls.push(x); - throw {}; - }); - assert.ok(false); - } catch (err) { - assert.deepEqual(calls, [1]); - } - }); - - it('rejects if the producer calls error', async () => { - let error = {}; - try { - let observer; - let promise = new Observable(x => { observer = x }).forEach(() => {}); - observer.error(error); - await promise; - assert.ok(false); - } catch (err) { - assert.equal(err, error); - } - }); - - it('resolves with undefined if the producer calls complete', async () => { - let observer; - let promise = new Observable(x => { observer = x }).forEach(() => {}); - observer.complete(); - assert.equal(await promise, undefined); - }); - - it('provides a cancellation function as the second argument', async () => { - let observer; - let results = []; - await Observable.of(1, 2, 3).forEach((value, cancel) => { - results.push(value); - if (value > 1) { - return cancel(); - } - }); - assert.deepEqual(results, [1, 2]); - }); - -}); diff --git a/gateway/node_modules/zen-observable/test/from.js b/gateway/node_modules/zen-observable/test/from.js deleted file mode 100644 index cc7378e..0000000 --- a/gateway/node_modules/zen-observable/test/from.js +++ /dev/null @@ -1,95 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('from', () => { - const iterable = { - *[Symbol.iterator]() { - yield 1; - yield 2; - yield 3; - }, - }; - - it('is a method on Observable', () => { - testMethodProperty(Observable, 'from', { - configurable: true, - writable: true, - length: 1, - }); - }); - - it('throws if the argument is null', () => { - assert.throws(() => Observable.from(null)); - }); - - it('throws if the argument is undefined', () => { - assert.throws(() => Observable.from(undefined)); - }); - - it('throws if the argument is not observable or iterable', () => { - assert.throws(() => Observable.from({})); - }); - - describe('observables', () => { - it('returns the input if the constructor matches "this"', () => { - let ctor = function() {}; - let observable = new Observable(() => {}); - observable.constructor = ctor; - assert.equal(Observable.from.call(ctor, observable), observable); - }); - - it('wraps the input if it is not an instance of Observable', () => { - let obj = { - 'constructor': Observable, - [Symbol.observable]() { return this }, - }; - assert.ok(Observable.from(obj) !== obj); - }); - - it('throws if @@observable property is not a method', () => { - assert.throws(() => Observable.from({ - [Symbol.observable]: 1 - })); - }); - - it('returns an observable wrapping @@observable result', () => { - let inner = { - subscribe(x) { - observer = x; - return () => { cleanupCalled = true }; - }, - }; - let observer; - let cleanupCalled = true; - let observable = Observable.from({ - [Symbol.observable]() { return inner }, - }); - observable.subscribe(); - assert.equal(typeof observer.next, 'function'); - observer.complete(); - assert.equal(cleanupCalled, true); - }); - }); - - describe('iterables', () => { - it('throws if @@iterator is not a method', () => { - assert.throws(() => Observable.from({ [Symbol.iterator]: 1 })); - }); - - it('returns an observable wrapping iterables', async () => { - let calls = []; - let subscription = Observable.from(iterable).subscribe({ - next(v) { calls.push(['next', v]) }, - complete() { calls.push(['complete']) }, - }); - assert.deepEqual(calls, []); - await null; - assert.deepEqual(calls, [ - ['next', 1], - ['next', 2], - ['next', 3], - ['complete'], - ]); - }); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/map.js b/gateway/node_modules/zen-observable/test/map.js deleted file mode 100644 index 22d25d8..0000000 --- a/gateway/node_modules/zen-observable/test/map.js +++ /dev/null @@ -1,13 +0,0 @@ -import assert from 'assert'; - -describe('map', () => { - it('maps the results using the supplied callback', async () => { - let list = []; - - await Observable.from([1, 2, 3]) - .map(x => x * 2) - .forEach(x => list.push(x)); - - assert.deepEqual(list, [2, 4, 6]); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/observer-closed.js b/gateway/node_modules/zen-observable/test/observer-closed.js deleted file mode 100644 index b39db54..0000000 --- a/gateway/node_modules/zen-observable/test/observer-closed.js +++ /dev/null @@ -1,35 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('observer.closed', () => { - it('is a getter on SubscriptionObserver.prototype', () => { - let observer; - new Observable(x => { observer = x }).subscribe(); - testMethodProperty(Object.getPrototypeOf(observer), 'closed', { - get: true, - configurable: true, - writable: true, - length: 1 - }); - }); - - it('returns false when the subscription is open', () => { - new Observable(observer => { - assert.equal(observer.closed, false); - }).subscribe(); - }); - - it('returns true when the subscription is completed', () => { - let observer; - new Observable(x => { observer = x; }).subscribe(); - observer.complete(); - assert.equal(observer.closed, true); - }); - - it('returns true when the subscription is errored', () => { - let observer; - new Observable(x => { observer = x; }).subscribe(null, () => {}); - observer.error(); - assert.equal(observer.closed, true); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/observer-complete.js b/gateway/node_modules/zen-observable/test/observer-complete.js deleted file mode 100644 index 77ff824..0000000 --- a/gateway/node_modules/zen-observable/test/observer-complete.js +++ /dev/null @@ -1,143 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('observer.complete', () => { - - function getObserver(inner) { - let observer; - new Observable(x => { observer = x }).subscribe(inner); - return observer; - } - - it('is a method of SubscriptionObserver', () => { - let observer = getObserver(); - testMethodProperty(Object.getPrototypeOf(observer), 'complete', { - configurable: true, - writable: true, - length: 0, - }); - }); - - it('does not forward arguments', () => { - let args; - let observer = getObserver({ complete(...a) { args = a } }); - observer.complete(1); - assert.deepEqual(args, []); - }); - - it('does not return a value', () => { - let observer = getObserver({ complete() { return 1 } }); - assert.equal(observer.complete(), undefined); - }); - - it('does not forward when the subscription is complete', () => { - let count = 0; - let observer = getObserver({ complete() { count++ } }); - observer.complete(); - observer.complete(); - assert.equal(count, 1); - }); - - it('does not forward when the subscription is cancelled', () => { - let count = 0; - let observer; - let subscription = new Observable(x => { observer = x }).subscribe({ - complete() { count++ }, - }); - subscription.unsubscribe(); - observer.complete(); - assert.equal(count, 0); - }); - - it('queues if the subscription is not initialized', async () => { - let completed = false; - new Observable(x => { x.complete() }).subscribe({ - complete() { completed = true }, - }); - assert.equal(completed, false); - await null; - assert.equal(completed, true); - }); - - it('queues if the observer is running', async () => { - let observer; - let completed = false - new Observable(x => { observer = x }).subscribe({ - next() { observer.complete() }, - complete() { completed = true }, - }); - observer.next(); - assert.equal(completed, false); - await null; - assert.equal(completed, true); - }); - - it('closes the subscription before invoking inner observer', () => { - let closed; - let observer = getObserver({ - complete() { closed = observer.closed }, - }); - observer.complete(); - assert.equal(closed, true); - }); - - it('reports error if "complete" is not a method', () => { - let observer = getObserver({ complete: 1 }); - observer.complete(); - assert.ok(hostError instanceof Error); - }); - - it('does not report error if "complete" is undefined', () => { - let observer = getObserver({ complete: undefined }); - observer.complete(); - assert.ok(!hostError); - }); - - it('does not report error if "complete" is null', () => { - let observer = getObserver({ complete: null }); - observer.complete(); - assert.ok(!hostError); - }); - - it('reports error if "complete" throws', () => { - let error = {}; - let observer = getObserver({ complete() { throw error } }); - observer.complete(); - assert.equal(hostError, error); - }); - - it('calls the cleanup method after "complete"', () => { - let calls = []; - let observer; - new Observable(x => { - observer = x; - return () => { calls.push('cleanup') }; - }).subscribe({ - complete() { calls.push('complete') }, - }); - observer.complete(); - assert.deepEqual(calls, ['complete', 'cleanup']); - }); - - it('calls the cleanup method if there is no "complete"', () => { - let calls = []; - let observer; - new Observable(x => { - observer = x; - return () => { calls.push('cleanup') }; - }).subscribe({}); - observer.complete(); - assert.deepEqual(calls, ['cleanup']); - }); - - it('reports error if the cleanup function throws', () => { - let error = {}; - let observer; - new Observable(x => { - observer = x; - return () => { throw error }; - }).subscribe(); - observer.complete(); - assert.equal(hostError, error); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/observer-error.js b/gateway/node_modules/zen-observable/test/observer-error.js deleted file mode 100644 index 0a1d9f1..0000000 --- a/gateway/node_modules/zen-observable/test/observer-error.js +++ /dev/null @@ -1,145 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('observer.error', () => { - - function getObserver(inner) { - let observer; - new Observable(x => { observer = x }).subscribe(inner); - return observer; - } - - it('is a method of SubscriptionObserver', () => { - let observer = getObserver(); - testMethodProperty(Object.getPrototypeOf(observer), 'error', { - configurable: true, - writable: true, - length: 1, - }); - }); - - it('forwards the argument', () => { - let args; - let observer = getObserver({ error(...a) { args = a } }); - observer.error(1); - assert.deepEqual(args, [1]); - }); - - it('does not return a value', () => { - let observer = getObserver({ error() { return 1 } }); - assert.equal(observer.error(), undefined); - }); - - it('does not throw when the subscription is complete', () => { - let observer = getObserver({ error() {} }); - observer.complete(); - observer.error('error'); - }); - - it('does not throw when the subscription is cancelled', () => { - let observer; - let subscription = new Observable(x => { observer = x }).subscribe({ - error() {}, - }); - subscription.unsubscribe(); - observer.error(1); - assert.ok(!hostError); - }); - - it('queues if the subscription is not initialized', async () => { - let error; - new Observable(x => { x.error({}) }).subscribe({ - error(err) { error = err }, - }); - assert.equal(error, undefined); - await null; - assert.ok(error); - }); - - it('queues if the observer is running', async () => { - let observer; - let error; - new Observable(x => { observer = x }).subscribe({ - next() { observer.error({}) }, - error(e) { error = e }, - }); - observer.next(); - assert.ok(!error); - await null; - assert.ok(error); - }); - - it('closes the subscription before invoking inner observer', () => { - let closed; - let observer = getObserver({ - error() { closed = observer.closed }, - }); - observer.error(1); - assert.equal(closed, true); - }); - - it('reports an error if "error" is not a method', () => { - let observer = getObserver({ error: 1 }); - observer.error(1); - assert.ok(hostError); - }); - - it('reports an error if "error" is undefined', () => { - let error = {}; - let observer = getObserver({ error: undefined }); - observer.error(error); - assert.equal(hostError, error); - }); - - it('reports an error if "error" is null', () => { - let error = {}; - let observer = getObserver({ error: null }); - observer.error(error); - assert.equal(hostError, error); - }); - - it('reports error if "error" throws', () => { - let error = {}; - let observer = getObserver({ error() { throw error } }); - observer.error(1); - assert.equal(hostError, error); - }); - - it('calls the cleanup method after "error"', () => { - let calls = []; - let observer; - new Observable(x => { - observer = x; - return () => { calls.push('cleanup') }; - }).subscribe({ - error() { calls.push('error') }, - }); - observer.error(); - assert.deepEqual(calls, ['error', 'cleanup']); - }); - - it('calls the cleanup method if there is no "error"', () => { - let calls = []; - let observer; - new Observable(x => { - observer = x; - return () => { calls.push('cleanup') }; - }).subscribe({}); - try { - observer.error(); - } catch (err) {} - assert.deepEqual(calls, ['cleanup']); - }); - - it('reports error if the cleanup function throws', () => { - let error = {}; - let observer; - new Observable(x => { - observer = x; - return () => { throw error }; - }).subscribe(); - observer.error(1); - assert.equal(hostError, error); - }); - -}); diff --git a/gateway/node_modules/zen-observable/test/observer-next.js b/gateway/node_modules/zen-observable/test/observer-next.js deleted file mode 100644 index abe1b85..0000000 --- a/gateway/node_modules/zen-observable/test/observer-next.js +++ /dev/null @@ -1,137 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('observer.next', () => { - - function getObserver(inner) { - let observer; - new Observable(x => { observer = x }).subscribe(inner); - return observer; - } - - it('is a method of SubscriptionObserver', () => { - let observer = getObserver(); - testMethodProperty(Object.getPrototypeOf(observer), 'next', { - configurable: true, - writable: true, - length: 1, - }); - }); - - it('forwards the first argument', () => { - let args; - let observer = getObserver({ next(...a) { args = a } }); - observer.next(1, 2); - assert.deepEqual(args, [1]); - }); - - it('does not return a value', () => { - let observer = getObserver({ next() { return 1 } }); - assert.equal(observer.next(), undefined); - }); - - it('does not forward when the subscription is complete', () => { - let count = 0; - let observer = getObserver({ next() { count++ } }); - observer.complete(); - observer.next(); - assert.equal(count, 0); - }); - - it('does not forward when the subscription is cancelled', () => { - let count = 0; - let observer; - let subscription = new Observable(x => { observer = x }).subscribe({ - next() { count++ }, - }); - subscription.unsubscribe(); - observer.next(); - assert.equal(count, 0); - }); - - it('remains closed if the subscription is cancelled from "next"', () => { - let observer; - let subscription = new Observable(x => { observer = x }).subscribe({ - next() { subscription.unsubscribe() }, - }); - observer.next(); - assert.equal(observer.closed, true); - }); - - it('queues if the subscription is not initialized', async () => { - let values = []; - let observer; - new Observable(x => { observer = x, x.next(1) }).subscribe({ - next(val) { - values.push(val); - if (val === 1) { - observer.next(3); - } - }, - }); - observer.next(2); - assert.deepEqual(values, []); - await null; - assert.deepEqual(values, [1, 2]); - await null; - assert.deepEqual(values, [1, 2, 3]); - }); - - it('drops queue if subscription is closed', async () => { - let values = []; - let subscription = new Observable(x => { x.next(1) }).subscribe({ - next(val) { values.push(val) }, - }); - assert.deepEqual(values, []); - subscription.unsubscribe(); - await null; - assert.deepEqual(values, []); - }); - - it('queues if the observer is running', async () => { - let observer; - let values = []; - new Observable(x => { observer = x }).subscribe({ - next(val) { - values.push(val); - if (val === 1) observer.next(2); - }, - }); - observer.next(1); - assert.deepEqual(values, [1]); - await null; - assert.deepEqual(values, [1, 2]); - }); - - it('reports error if "next" is not a method', () => { - let observer = getObserver({ next: 1 }); - observer.next(); - assert.ok(hostError); - }); - - it('does not report error if "next" is undefined', () => { - let observer = getObserver({ next: undefined }); - observer.next(); - assert.ok(!hostError); - }); - - it('does not report error if "next" is null', () => { - let observer = getObserver({ next: null }); - observer.next(); - assert.ok(!hostError); - }); - - it('reports error if "next" throws', () => { - let error = {}; - let observer = getObserver({ next() { throw error } }); - observer.next(); - assert.equal(hostError, error); - }); - - it('does not close the subscription on error', () => { - let observer = getObserver({ next() { throw {} } }); - observer.next(); - assert.equal(observer.closed, false); - }); - -}); diff --git a/gateway/node_modules/zen-observable/test/of.js b/gateway/node_modules/zen-observable/test/of.js deleted file mode 100644 index 6e4558c..0000000 --- a/gateway/node_modules/zen-observable/test/of.js +++ /dev/null @@ -1,32 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('of', () => { - it('is a method on Observable', () => { - testMethodProperty(Observable, 'of', { - configurable: true, - writable: true, - length: 0, - }); - }); - - it('uses the this value if it is a function', () => { - let usesThis = false; - Observable.of.call(function() { usesThis = true; }); - assert.ok(usesThis); - }); - - it('uses Observable if the this value is not a function', () => { - let result = Observable.of.call({}, 1, 2, 3, 4); - assert.ok(result instanceof Observable); - }); - - it('delivers arguments to next in a job', async () => { - let values = []; - let turns = 0; - Observable.of(1, 2, 3, 4).subscribe(v => values.push(v)); - assert.equal(values.length, 0); - await null; - assert.deepEqual(values, [1, 2, 3, 4]); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/properties.js b/gateway/node_modules/zen-observable/test/properties.js deleted file mode 100644 index 5c53022..0000000 --- a/gateway/node_modules/zen-observable/test/properties.js +++ /dev/null @@ -1,31 +0,0 @@ -import assert from 'assert'; - -export function testMethodProperty(object, key, options) { - let desc = Object.getOwnPropertyDescriptor(object, key); - let { enumerable = false, configurable = false, writable = false, length } = options; - - assert.ok(desc, `Property ${ key.toString() } exists`); - - if (options.get || options.set) { - if (options.get) { - assert.equal(typeof desc.get, 'function', 'Getter is a function'); - assert.equal(desc.get.length, 0, 'Getter length is 0'); - } else { - assert.equal(desc.get, undefined, 'Getter is undefined'); - } - - if (options.set) { - assert.equal(typeof desc.set, 'function', 'Setter is a function'); - assert.equal(desc.set.length, 1, 'Setter length is 1'); - } else { - assert.equal(desc.set, undefined, 'Setter is undefined'); - } - } else { - assert.equal(typeof desc.value, 'function', 'Value is a function'); - assert.equal(desc.value.length, length, `Function length is ${ length }`); - assert.equal(desc.writable, writable, `Writable property is correct ${ writable }`); - } - - assert.equal(desc.enumerable, enumerable, `Enumerable property is ${ enumerable }`); - assert.equal(desc.configurable, configurable, `Configurable property is ${ configurable }`); -} diff --git a/gateway/node_modules/zen-observable/test/reduce.js b/gateway/node_modules/zen-observable/test/reduce.js deleted file mode 100644 index a40023a..0000000 --- a/gateway/node_modules/zen-observable/test/reduce.js +++ /dev/null @@ -1,38 +0,0 @@ -import assert from 'assert'; - -describe('reduce', () => { - it('reduces without a seed', async () => { - await Observable.from([1, 2, 3, 4, 5, 6]).reduce((a, b) => { - return a + b; - }).forEach(x => { - assert.equal(x, 21); - }); - }); - - it('errors if empty and no seed', async () => { - try { - await Observable.from([]).reduce((a, b) => { - return a + b; - }).forEach(() => null); - assert.ok(false); - } catch (err) { - assert.ok(true); - } - }); - - it('reduces with a seed', async () => { - Observable.from([1, 2, 3, 4, 5, 6]).reduce((a, b) => { - return a + b; - }, 100).forEach(x => { - assert.equal(x, 121); - }); - }); - - it('reduces an empty list with a seed', async () => { - await Observable.from([]).reduce((a, b) => { - return a + b; - }, 100).forEach(x => { - assert.equal(x, 100); - }); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/setup.js b/gateway/node_modules/zen-observable/test/setup.js deleted file mode 100644 index 1cb7332..0000000 --- a/gateway/node_modules/zen-observable/test/setup.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Observable } from '../src/Observable.js'; - -beforeEach(() => { - global.Observable = Observable; - global.hostError = null; - let $extensions = Object.getOwnPropertySymbols(Observable)[1]; - let { hostReportError } = Observable[$extensions]; - hostReportError.log = (e => global.hostError = e); -}); diff --git a/gateway/node_modules/zen-observable/test/species.js b/gateway/node_modules/zen-observable/test/species.js deleted file mode 100644 index 3774029..0000000 --- a/gateway/node_modules/zen-observable/test/species.js +++ /dev/null @@ -1,28 +0,0 @@ -import assert from 'assert'; - -describe('species', () => { - it('uses Observable when constructor is undefined', () => { - let instance = new Observable(() => {}); - instance.constructor = undefined; - assert.ok(instance.map(x => x) instanceof Observable); - }); - - it('uses Observable if species is null', () => { - let instance = new Observable(() => {}); - instance.constructor = { [Symbol.species]: null }; - assert.ok(instance.map(x => x) instanceof Observable); - }); - - it('uses Observable if species is undefined', () => { - let instance = new Observable(() => {}); - instance.constructor = { [Symbol.species]: undefined }; - assert.ok(instance.map(x => x) instanceof Observable); - }); - - it('uses value of Symbol.species', () => { - function ctor() {} - let instance = new Observable(() => {}); - instance.constructor = { [Symbol.species]: ctor }; - assert.ok(instance.map(x => x) instanceof ctor); - }); -}); diff --git a/gateway/node_modules/zen-observable/test/subscribe.js b/gateway/node_modules/zen-observable/test/subscribe.js deleted file mode 100644 index 4ed4aa3..0000000 --- a/gateway/node_modules/zen-observable/test/subscribe.js +++ /dev/null @@ -1,137 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('subscribe', () => { - - it('is a method of Observable.prototype', () => { - testMethodProperty(Observable.prototype, 'subscribe', { - configurable: true, - writable: true, - length: 1, - }); - }); - - it('accepts an observer argument', () => { - let observer; - let nextValue; - new Observable(x => observer = x).subscribe({ - next(v) { nextValue = v }, - }); - observer.next(1); - assert.equal(nextValue, 1); - }); - - it('accepts a next function argument', () => { - let observer; - let nextValue; - new Observable(x => observer = x).subscribe( - v => nextValue = v - ); - observer.next(1); - assert.equal(nextValue, 1); - }); - - it('accepts an error function argument', () => { - let observer; - let errorValue; - let error = {}; - new Observable(x => observer = x).subscribe( - null, - e => errorValue = e - ); - observer.error(error); - assert.equal(errorValue, error); - }); - - it('accepts a complete function argument', () => { - let observer; - let completed = false; - new Observable(x => observer = x).subscribe( - null, - null, - () => completed = true - ); - observer.complete(); - assert.equal(completed, true); - }); - - it('uses function overload if first argument is null', () => { - let observer; - let completed = false; - new Observable(x => observer = x).subscribe( - null, - null, - () => completed = true - ); - observer.complete(); - assert.equal(completed, true); - }); - - it('uses function overload if first argument is undefined', () => { - let observer; - let completed = false; - new Observable(x => observer = x).subscribe( - undefined, - null, - () => completed = true - ); - observer.complete(); - assert.equal(completed, true); - }); - - it('uses function overload if first argument is a primative', () => { - let observer; - let completed = false; - new Observable(x => observer = x).subscribe( - 'abc', - null, - () => completed = true - ); - observer.complete(); - assert.equal(completed, true); - }); - - it('enqueues a job to send error if subscriber throws', async () => { - let error = {}; - let errorValue = undefined; - new Observable(() => { throw error }).subscribe({ - error(e) { errorValue = e }, - }); - assert.equal(errorValue, undefined); - await null; - assert.equal(errorValue, error); - }); - - it('does not send error if unsubscribed', async () => { - let error = {}; - let errorValue = undefined; - let subscription = new Observable(() => { throw error }).subscribe({ - error(e) { errorValue = e }, - }); - subscription.unsubscribe(); - assert.equal(errorValue, undefined); - await null; - assert.equal(errorValue, undefined); - }); - - it('accepts a cleanup function from the subscriber function', () => { - let cleanupCalled = false; - let subscription = new Observable(() => { - return () => cleanupCalled = true; - }).subscribe(); - subscription.unsubscribe(); - assert.equal(cleanupCalled, true); - }); - - it('accepts a subscription object from the subscriber function', () => { - let cleanupCalled = false; - let subscription = new Observable(() => { - return { - unsubscribe() { cleanupCalled = true }, - }; - }).subscribe(); - subscription.unsubscribe(); - assert.equal(cleanupCalled, true); - }); - -}); diff --git a/gateway/node_modules/zen-observable/test/subscription.js b/gateway/node_modules/zen-observable/test/subscription.js deleted file mode 100644 index 5d3f41f..0000000 --- a/gateway/node_modules/zen-observable/test/subscription.js +++ /dev/null @@ -1,41 +0,0 @@ -import assert from 'assert'; -import { testMethodProperty } from './properties.js'; - -describe('subscription', () => { - - function getSubscription(subscriber = () => {}) { - return new Observable(subscriber).subscribe(); - } - - describe('unsubscribe', () => { - it('is a method on Subscription.prototype', () => { - let subscription = getSubscription(); - testMethodProperty(Object.getPrototypeOf(subscription), 'unsubscribe', { - configurable: true, - writable: true, - length: 0, - }); - }); - - it('reports an error if the cleanup function throws', () => { - let error = {}; - let subscription = getSubscription(() => { - return () => { throw error }; - }); - subscription.unsubscribe(); - assert.equal(hostError, error); - }); - }); - - describe('closed', () => { - it('is a getter on Subscription.prototype', () => { - let subscription = getSubscription(); - testMethodProperty(Object.getPrototypeOf(subscription), 'closed', { - configurable: true, - writable: true, - get: true, - }); - }); - }); - -}); diff --git a/gateway/yarn-error.log b/gateway/yarn-error.log deleted file mode 100644 index 2d794fa..0000000 --- a/gateway/yarn-error.log +++ /dev/null @@ -1,1328 +0,0 @@ -Arguments: - /usr/local/Cellar/node/14.14.0/bin/node /usr/local/Cellar/yarn/1.22.10/libexec/bin/yarn.js add @apollo - -PATH: - /Users/ruidy/.local/share/virtualenvs/federation-IAEMSwKA/bin:/Users/ruidy/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/ruidy/Library/Android/sdk/emulator:/Users/ruidy/Library/Android/sdk/tools:/Users/ruidy/Library/Android/sdk/tools/bin:/Users/ruidy/Library/Android/sdk/platform-tools - -Yarn version: - 1.22.10 - -Node version: - 14.14.0 - -Platform: - darwin x64 - -Trace: - Error: https://registry.yarnpkg.com/@apollo: Request "https://registry.yarnpkg.com/@apollo" returned a 405 - at Request.params.callback [as _callback] (/usr/local/Cellar/yarn/1.22.10/libexec/lib/cli.js:66997:18) - at Request.self.callback (/usr/local/Cellar/yarn/1.22.10/libexec/lib/cli.js:140749:22) - at Request.emit (events.js:315:20) - at Request. (/usr/local/Cellar/yarn/1.22.10/libexec/lib/cli.js:141721:10) - at Request.emit (events.js:315:20) - at IncomingMessage. (/usr/local/Cellar/yarn/1.22.10/libexec/lib/cli.js:141643:12) - at Object.onceWrapper (events.js:421:28) - at IncomingMessage.emit (events.js:327:22) - at endReadableNT (_stream_readable.js:1327:12) - at processTicksAndRejections (internal/process/task_queues.js:80:21) - -npm manifest: - { - "name": "gateway", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "dependencies": { - "apollo-server": "^2.19.0" - } - } - -yarn manifest: - No manifest - -Lockfile: - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - "@apollo/protobufjs@^1.0.3": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.0.5.tgz#a78b726147efc0795e74c8cb8a11aafc6e02f773" - integrity sha512-ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - "@types/node" "^10.1.0" - long "^4.0.0" - - "@apollographql/apollo-tools@^0.4.3": - version "0.4.8" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz#d81da89ee880c2345eb86bddb92b35291f6135ed" - integrity sha512-W2+HB8Y7ifowcf3YyPHgDI05izyRtOeZ4MqIr7LbTArtmJ0ZHULWpn84SGMW7NAvTV1tFExpHlveHhnXuJfuGA== - dependencies: - apollo-env "^0.6.5" - - "@apollographql/graphql-playground-html@1.6.26": - version "1.6.26" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz#2f7b610392e2a872722912fc342b43cf8d641cb3" - integrity sha512-XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ== - dependencies: - xss "^1.0.6" - - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= - - "@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - - "@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - - "@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= - - "@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - - "@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= - - "@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= - - "@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= - - "@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= - - "@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= - - "@types/accepts@*", "@types/accepts@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" - integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== - dependencies: - "@types/node" "*" - - "@types/body-parser@*", "@types/body-parser@1.19.0": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== - dependencies: - "@types/connect" "*" - "@types/node" "*" - - "@types/connect@*": - version "3.4.33" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" - integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== - dependencies: - "@types/node" "*" - - "@types/content-disposition@*": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" - integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== - - "@types/cookies@*": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.5.tgz#aa42c9a9834724bffee597028da5319b38e85e84" - integrity sha512-3+TAFSm78O7/bAeYdB8FoYGntuT87vVP9JKuQRL8sRhv9313LP2SpHHL50VeFtnyjIcb3UELddMk5Yt0eOSOkg== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - - "@types/cors@2.8.8": - version "2.8.8" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.8.tgz#317a8d8561995c60e35b9e0fcaa8d36660c98092" - integrity sha512-fO3gf3DxU2Trcbr75O7obVndW/X5k8rJNZkLXlQWStTHhP71PkRqjwPIEI0yMnJdg9R9OasjU+Bsr+Hr1xy/0w== - dependencies: - "@types/express" "*" - - "@types/express-serve-static-core@*", "@types/express-serve-static-core@4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz#d9af025e925fc8b089be37423b8d1eac781be084" - integrity sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - - "@types/express@*": - version "4.17.9" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78" - integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/qs" "*" - "@types/serve-static" "*" - - "@types/express@4.17.7": - version "4.17.7" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.7.tgz#42045be6475636d9801369cd4418ef65cdb0dd59" - integrity sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/qs" "*" - "@types/serve-static" "*" - - "@types/fs-capacitor@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" - integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== - dependencies: - "@types/node" "*" - - "@types/graphql-upload@^8.0.0": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@types/graphql-upload/-/graphql-upload-8.0.4.tgz#23a8ffb3d2fe6e0ee07e6f16ee9d9d5e995a2f4f" - integrity sha512-0TRyJD2o8vbkmJF8InppFcPVcXKk+Rvlg/xvpHBIndSJYpmDWfmtx/ZAtl4f3jR2vfarpTqYgj8MZuJssSoU7Q== - dependencies: - "@types/express" "*" - "@types/fs-capacitor" "*" - "@types/koa" "*" - graphql "^15.3.0" - - "@types/http-assert@*": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" - integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== - - "@types/http-errors@*": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" - integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== - - "@types/keygrip@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" - integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== - - "@types/koa-compose@*": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" - integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== - dependencies: - "@types/koa" "*" - - "@types/koa@*": - version "2.11.6" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.11.6.tgz#b7030caa6b44af801c2aea13ba77d74aff7484d5" - integrity sha512-BhyrMj06eQkk04C97fovEDQMpLpd2IxCB4ecitaXwOKGq78Wi2tooaDOWOFGajPk8IkQOAtMppApgSVkYe1F/A== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - - "@types/long@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== - - "@types/mime@*": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" - integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== - - "@types/node-fetch@2.5.7": - version "2.5.7" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" - integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - - "@types/node@*": - version "14.14.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.7.tgz#8ea1e8f8eae2430cf440564b98c6dfce1ec5945d" - integrity sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg== - - "@types/node@^10.1.0": - version "10.17.44" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.44.tgz#3945e6b702cb6403f22b779c8ea9e5c3f44ead40" - integrity sha512-vHPAyBX1ffLcy4fQHmDyIUMUb42gHZjPHU66nhvbMzAWJqHnySGZ6STwN3rwrnSd1FHB0DI/RWgGELgKSYRDmw== - - "@types/qs@*": - version "6.9.5" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" - integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ== - - "@types/range-parser@*": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== - - "@types/serve-static@*": - version "1.13.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.7.tgz#e51b51a0becda910f9fd04c718044da69d6c492e" - integrity sha512-3diZWucbR+xTmbDlU+FRRxBf+31OhFew7cJXML/zh9NmvSPTNoFecAwHB66BUqFgENJtqMiyl7JAwUE/siqdLw== - dependencies: - "@types/mime" "*" - "@types/node" "*" - - "@types/ws@^7.0.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.0.tgz#499690ea08736e05a8186113dac37769ab251a0e" - integrity sha512-Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw== - dependencies: - "@types/node" "*" - - "@wry/equality@^0.1.2": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" - integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== - dependencies: - tslib "^1.9.3" - - accepts@^1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - - apollo-cache-control@^0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.11.4.tgz#06d57d728e6f928e03b9cc3b993f6102f305c32e" - integrity sha512-FUKE8ASr8GxVq5rmky/tY8bsf++cleGT591lfLiqnPsP1fo3kAfgRfWA2QRHTCKFNlQxzUhVOEDv+PaysqiOjw== - dependencies: - apollo-server-env "^2.4.5" - apollo-server-plugin-base "^0.10.2" - - apollo-datasource@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.7.2.tgz#1662ee93453a9b89af6f73ce561bde46b41ebf31" - integrity sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw== - dependencies: - apollo-server-caching "^0.5.2" - apollo-server-env "^2.4.5" - - apollo-env@^0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/apollo-env/-/apollo-env-0.6.5.tgz#5a36e699d39e2356381f7203493187260fded9f3" - integrity sha512-jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg== - dependencies: - "@types/node-fetch" "2.5.7" - core-js "^3.0.1" - node-fetch "^2.2.0" - sha.js "^2.4.11" - - apollo-graphql@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.6.0.tgz#37bee7dc853213269137f4c60bfdf2ee28658669" - integrity sha512-BxTf5LOQe649e9BNTPdyCGItVv4Ll8wZ2BKnmiYpRAocYEXAVrQPWuSr3dO4iipqAU8X0gvle/Xu9mSqg5b7Qg== - dependencies: - apollo-env "^0.6.5" - lodash.sortby "^4.7.0" - - apollo-link@^1.2.14: - version "1.2.14" - resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" - integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== - dependencies: - apollo-utilities "^1.3.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - zen-observable-ts "^0.8.21" - - apollo-reporting-protobuf@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.1.tgz#09294e5f5f6b2285eb94b40621ed42113eaabea3" - integrity sha512-qr4DheFP154PGZsd93SSIS9RkqHnR5b6vT+eCloWjy3UIpY+yZ3cVLlttlIjYvOG4xTJ25XEwcHiAExatQo/7g== - dependencies: - "@apollo/protobufjs" "^1.0.3" - - apollo-server-caching@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz#bef5d5e0d48473a454927a66b7bb947a0b6eb13e" - integrity sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ== - dependencies: - lru-cache "^5.0.0" - - apollo-server-core@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.19.0.tgz#ff14e788f228c2d6739478a68cf93f46a16e5bfa" - integrity sha512-2aMKUVPyNbomJQaG2tkpfqvp1Tfgxgkdr7nX5zHudYNSzsPrHw+CcYlCbIVFFI/mTZsjoK9czNq1qerFRxZbJw== - dependencies: - "@apollographql/apollo-tools" "^0.4.3" - "@apollographql/graphql-playground-html" "1.6.26" - "@types/graphql-upload" "^8.0.0" - "@types/ws" "^7.0.0" - apollo-cache-control "^0.11.4" - apollo-datasource "^0.7.2" - apollo-graphql "^0.6.0" - apollo-reporting-protobuf "^0.6.1" - apollo-server-caching "^0.5.2" - apollo-server-env "^2.4.5" - apollo-server-errors "^2.4.2" - apollo-server-plugin-base "^0.10.2" - apollo-server-types "^0.6.1" - apollo-tracing "^0.12.0" - async-retry "^1.2.1" - fast-json-stable-stringify "^2.0.0" - graphql-extensions "^0.12.6" - graphql-tag "^2.9.2" - graphql-tools "^4.0.0" - graphql-upload "^8.0.2" - loglevel "^1.6.7" - lru-cache "^5.0.0" - sha.js "^2.4.11" - subscriptions-transport-ws "^0.9.11" - uuid "^8.0.0" - ws "^6.0.0" - - apollo-server-env@^2.4.5: - version "2.4.5" - resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.5.tgz#73730b4f0439094a2272a9d0caa4079d4b661d5f" - integrity sha512-nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA== - dependencies: - node-fetch "^2.1.2" - util.promisify "^1.0.0" - - apollo-server-errors@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz#1128738a1d14da989f58420896d70524784eabe5" - integrity sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ== - - apollo-server-express@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.19.0.tgz#a8735e854e2da20e624583bef3c2e54b0cdd6a9b" - integrity sha512-3rgSrTme1SlLoecAYtSa8ThH6vYvz29QecgZCigq5Vdc6bFP2SZrCk0ls6BAdD8OZbVKUtizzRxd0yd/uREPAw== - dependencies: - "@apollographql/graphql-playground-html" "1.6.26" - "@types/accepts" "^1.3.5" - "@types/body-parser" "1.19.0" - "@types/cors" "2.8.8" - "@types/express" "4.17.7" - "@types/express-serve-static-core" "4.17.13" - accepts "^1.3.5" - apollo-server-core "^2.19.0" - apollo-server-types "^0.6.1" - body-parser "^1.18.3" - cors "^2.8.4" - express "^4.17.1" - graphql-subscriptions "^1.0.0" - graphql-tools "^4.0.0" - parseurl "^1.3.2" - subscriptions-transport-ws "^0.9.16" - type-is "^1.6.16" - - apollo-server-plugin-base@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.2.tgz#185aea98ba22afe275fb01659070edeb480a89a7" - integrity sha512-uM5uL1lOxbXdgvt/aEIbgs40fV9xA45Y3Mmh0VtQ/ddqq0MXR5aG92nnf8rM+URarBCUfxKJKaYzJJ/CXAnEdA== - dependencies: - apollo-server-types "^0.6.1" - - apollo-server-types@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.6.1.tgz#61486980b44cacee2cb4939f0b369a0eb661a098" - integrity sha512-IEQ37aYvMLiTUzsySVLOSuvvhxuyYdhI05f3cnH6u2aN1HgGp7vX6bg+U3Ue8wbHfdcifcGIk5UEU+Q+QO6InA== - dependencies: - apollo-reporting-protobuf "^0.6.1" - apollo-server-caching "^0.5.2" - apollo-server-env "^2.4.5" - - apollo-server@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.19.0.tgz#8a596573aa5a9535494fdafd635eab7c84342699" - integrity sha512-CchLtSwgm6NxQPvOXcMaxp8ckQT2ryLqdWIxjs2e+lCZ15tDsbqyPE+jVmqQKs9rsQNKnTwkMRdqmXqTciFJ8Q== - dependencies: - apollo-server-core "^2.19.0" - apollo-server-express "^2.19.0" - express "^4.0.0" - graphql-subscriptions "^1.0.0" - graphql-tools "^4.0.0" - - apollo-tracing@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.12.0.tgz#26250d7789c28aa89d63226eb674706dd69a568a" - integrity sha512-cMUYGE6mOEwb9HDqhf4fiPEo2JMhjPIqEprAQEC57El76avRpRig5NM0bnqMZcYJZR5QmLlNcttNccOwf9WrNg== - dependencies: - apollo-server-env "^2.4.5" - apollo-server-plugin-base "^0.10.2" - - apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" - integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== - dependencies: - "@wry/equality" "^0.1.2" - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.4.0" - tslib "^1.10.0" - - array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - - async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - - async-retry@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55" - integrity sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA== - dependencies: - retry "0.12.0" - - asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - - backo2@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - - body-parser@1.19.0, body-parser@^1.18.3: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - - busboy@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" - integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== - dependencies: - dicer "0.3.0" - - bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - - call-bind@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" - integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.0" - - combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - - commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - - content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - - content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - - cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - - cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - - core-js@^3.0.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz#b0a761a02488577afbf97179e4681bf49568520f" - integrity sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA== - - cors@^2.8.4: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - - cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= - - debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - - define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - - delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - - depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - - deprecated-decorator@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" - integrity sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= - - destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - - dicer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" - integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== - dependencies: - streamsearch "0.1.2" - - ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - - encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - - es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - - es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - - es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - - escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - - etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - - eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - - express@^4.0.0, express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - - fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - - finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - - form-data@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - - forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - - fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - - fs-capacitor@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" - integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== - - function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - - get-intrinsic@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" - integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - - graphql-extensions@^0.12.6: - version "0.12.6" - resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.12.6.tgz#c66be43035662a8cfb0b8efe9df96595338bd13c" - integrity sha512-EUNw+OIRXYTPxToSoJjhJvS5aGa94KkdkZnL1I9DCZT64/+rzQNeLeGj+goj2RYuYvoQe1Bmcx0CNZ1GqwBhng== - dependencies: - "@apollographql/apollo-tools" "^0.4.3" - apollo-server-env "^2.4.5" - apollo-server-types "^0.6.1" - - graphql-subscriptions@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz#5f2fa4233eda44cf7570526adfcf3c16937aef11" - integrity sha512-6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA== - dependencies: - iterall "^1.2.1" - - graphql-tag@^2.9.2: - version "2.11.0" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" - integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== - - graphql-tools@^4.0.0: - version "4.0.8" - resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.8.tgz#e7fb9f0d43408fb0878ba66b522ce871bafe9d30" - integrity sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg== - dependencies: - apollo-link "^1.2.14" - apollo-utilities "^1.0.1" - deprecated-decorator "^0.1.6" - iterall "^1.1.3" - uuid "^3.1.0" - - graphql-upload@^8.0.2: - version "8.1.0" - resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-8.1.0.tgz#6d0ab662db5677a68bfb1f2c870ab2544c14939a" - integrity sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q== - dependencies: - busboy "^0.3.1" - fs-capacitor "^2.0.4" - http-errors "^1.7.3" - object-path "^0.11.4" - - graphql@^15.3.0: - version "15.4.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz#e459dea1150da5a106486ba7276518b5295a4347" - integrity sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA== - - has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - - has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - - http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - - http-errors@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" - integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - - http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - - iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - - inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - - inherits@2.0.4, inherits@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - - ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - - is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" - integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== - - is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - - is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= - - is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - - is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - - iterall@^1.1.3, iterall@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - - lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - - loglevel@^1.6.7: - version "1.7.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" - integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== - - long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - - lru-cache@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - - media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - - merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - - methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - - mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - - mime-types@^2.1.12, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - - mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - - ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - - ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - - negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - - node-fetch@^2.1.2, node-fetch@^2.2.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - - object-assign@^4: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - - object-inspect@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - - object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - - object-path@^0.11.4: - version "0.11.5" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a" - integrity sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg== - - object.assign@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - - object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - - on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - - parseurl@^1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - - path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - - proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - - qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - - range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - - raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - - retry@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - - safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - - safe-buffer@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - - "safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - - send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - - serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - - setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - - setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - - sha.js@^2.4.11: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - - "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - - streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - - string.prototype.trimend@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46" - integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - - string.prototype.trimstart@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7" - integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - - subscriptions-transport-ws@^0.9.11, subscriptions-transport-ws@^0.9.16: - version "0.9.18" - resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz#bcf02320c911fbadb054f7f928e51c6041a37b97" - integrity sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA== - dependencies: - backo2 "^1.0.2" - eventemitter3 "^3.1.0" - iterall "^1.2.1" - symbol-observable "^1.0.4" - ws "^5.2.0" - - symbol-observable@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - - toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - - ts-invariant@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" - integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== - dependencies: - tslib "^1.9.3" - - tslib@^1.10.0, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - - type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - - unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - - util.promisify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - - utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - - uuid@^3.1.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - - uuid@^8.0.0: - version "8.3.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" - integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== - - vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - - ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - - ws@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - - xss@^1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.8.tgz#32feb87feb74b3dcd3d404b7a68ababf10700535" - integrity sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw== - dependencies: - commander "^2.20.3" - cssfilter "0.0.10" - - yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - - zen-observable-ts@^0.8.21: - version "0.8.21" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" - integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== - dependencies: - tslib "^1.9.3" - zen-observable "^0.8.0" - - zen-observable@^0.8.0: - version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/product/__pycache__/__init__.cpython-38.pyc b/product/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 6653521bc753539397c014d31142017a82e834c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmWIL<>g`k0-3q%<3aRe5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HGerR!OQL%ne zX=X~LzDsJEegKf0uU}AEl98XMpO%`ET9jCl31k)&<)@S;m*~gGXXa&=#K-FuRNmsS Q$ps4Lq}qW@{S3qm07Mfc0{{R3 diff --git a/product/__pycache__/main.cpython-38.pyc b/product/__pycache__/main.cpython-38.pyc deleted file mode 100644 index d477506578f4981cbdbab7bcfa95a4b6a2723195..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1234 zcmYjRJ98U15C(8hzC=o*EJf+kF$LMC&}340q9!BT6RWuf107c6+4u4SREC*!a_3Q% zHbqjpa^?S!BEJA_s{DjxGLtNhl%?Zf7yDrW?0&o8+CbddsqX80j8a2QWToy03e08QFr6L)iayst3PuIMTykxE|@f zw;|zAUyo%rXg#ibzv z7q~9;X7Lnm7SG9S7VXBantHM0hjuU8ZL*6>74^K`bYV{D9FvmhiKq$r{u8?upLB<6aThKLpE4pRxIllzEW{xx-1B1W z#b}Fq>d>=~{#BsAY9{c6l;iRtYdrSI6u~s*4M+-E?y@u9*Bp>wf#7kMQ~YoEpGd^t zcuMF?pOl8H_0m_tb0KB%?vU=`E^HgLv(H`Z+qJ2>>$_-NOvNbbWfzr8);C4oVC@ox zh0--(L-rIWUHfz#rf1vs``VYq ad_iKuhtvxs{Sc`j4vEQ0LfD|+t^E&femQmk diff --git a/product/models/__pycache__/product.cpython-38.pyc b/product/models/__pycache__/product.cpython-38.pyc deleted file mode 100644 index f5587ee052c1041390b00763029b88c6c65e5f4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmYjNy-ve05cW?}Le0$r+SsztVeq8O`;A{>RwiYPNEwDwZn2<>_DITyR#k@xcix7H zl**XeD__>eVGb{ie?JL00VBB;~nP=1T3s@q7$4UhvtiS z3s}Cg_To@JSousjAJA#llXoiUG#vO@UA|37`9o~wbKA@-O-93rRQ;$aFkht{ zPyzPwo6)MCD;yu?E+R!qlYuOs@Lj$X>Sf4j@T2SzkaRL-4dh|kCwWdFl`^AAN^L`) SFYjE@EZ)~JvD&TqTATp0qD902 diff --git a/product/schema/__pycache__/query.cpython-38.pyc b/product/schema/__pycache__/query.cpython-38.pyc deleted file mode 100644 index 7fd1d546744e1a152020c751041b93a744aa6357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmYjOOODhq5Val0N&h5-M%*DRIu}4_7D((ygJ4*A6Gd@Nx260jy9Y&L*KD}~3ueiR z3vdH&;4KTp5kN>#&a}{!RpqLR^ZZ`#>|S(odaGf+pS7qIxWH0dpel~EtL$xQxU9=Tqd#Y)zPj7d&ig*H~M%;60$D#^S{RaC$Y3Kt*o{Vqb>02Gs8IO-{<9(BOxUoteMJZa8q7VIh5n% z_d{P^g8{6)rF6WLR=Q>nU0uG3vbW_6i((U0oa)fsQH<<@avp8JoB4*UMq8U6Fr`oW(Fu9m4F+1bJ(aV_kj`Y{l%X{t hp_iI3nHAm(kyOZ^5W=B_r*VQVa(TelA}*EW{2${&og`k0-3q%<3aRe5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HuerR!OQL%ne zX=X~LzDsJEegKf0uU}AEl98XMpO%`ET9jCl31k+fmSv`v>&M4u=4F<|$LkeT-r}&y Q%}*)KNwotR`Wc8B02_uQlK=n! diff --git a/review/models/__pycache__/__init__.cpython-38.pyc b/review/models/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 8f3671e0c397378a4cfcbffeff5fd7ffdc6a8205..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmWIL<>g`kg6C(~$Ajp{AOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUSi{m|mnqGJ7` z(#(`feV5cS{Qw|0U%#NTBqKjhKP@#SwJ5P96UZz|Ez3+T*U!yQNzEzNkB`sH%PfhH W*DI*J#bE;!EX_%^1DX99h#3IIfG0=* diff --git a/review/models/__pycache__/review.cpython-38.pyc b/review/models/__pycache__/review.cpython-38.pyc deleted file mode 100644 index 6ee51eb3f0c0036b316111fcb61a47149ef62de8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmYjNy-ve05cW@gN|jOu#5;6}_o_l2kl0WK>f*&Ru@RB-hn*B zI41>q(cOKYeYyL5+u3Z2z?ScC;sf%hC&v~5S%cdp1cekXP>DIl9+QHUl+yvzA}B*1 zVx;jkQh^FzkP7!?k9nk`JG6+u;D5Bh?nKE}W`(pCNW3w%>arGKu(jG`zUbH}kTtkX zA!x+0LY!=oraDk~HD&@i1WqAGkb@PBhLMqrZuKtL&yM8E1^2b;c_h2`u{JJl#=$p> z*iD3}WT}O4Qz1&wQ+S*R@zlxUa6@ft+*}A*Rdp-dysoSe#xKWsiLc0`L$0258Ni9!6K}K`U*B7R(It7|hfK)DJ9edJ{sM7~D=EOvwcMZ#V_L{JiOv ztlB(F|5mB3AyCRM4$n%*mg#{G8u?iVvVLzo9`*ZS|LR9Hhch=>jmx;izy>J^NpM05 F{sHwuj7tCj diff --git a/review/schema/__pycache__/__init__.cpython-38.pyc b/review/schema/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index ab11b915ef39fac06e5b38479cda63f7bedc82e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmYjNy-ve05Vqa?wMs@FqD%Y&2qDD4gpg1dFIH4v)JS#{&Ph>Nc^W3(f)R-|D^p*A ziF3lhSw4UF`TY6rc15vaWFKGe`jgJ@5d1em!8L7vN6s+AEpuFP&WtcCE1Xbb#*tmQ zNJTS_ZR`@2%s8>B%T&f0aFf1rwKmx!+pf=~#z$3Bsv?XF_R*tr_+`!D#S+FQSz9+s%|#*i_~S7z)OSoXY#L179vrF%DF*P=6Yj z1a7l%K@3wOrgb2+f!e<@4AYt2&yCzsikCPvW|X&Zk`ENNvK#wDdz3X8z^ZQuEIp7xFR#64HhJzwLE3xX-fm*CwvRw@^Dha~pi;eL*gavAhp;dqnRT8159QBvIM za=o!B2Y=7;kF6S{$a}kK0cQS{fCxVjc<>2=Zwka71VYMSf*(g$-wB+d_2*^gOEnqv zr5du=dYfG#ZL@Abr%iUFm4@7wXdcAKOtH~*o_+EXF1x{Ltq&RcT%9l$%4R*L>!KXWTs0a(Jd#h3+AQl<>B=mR zbgV~S9HKs)9oVRWT=ZDj!-2O)8C*DK?i;Er3_;t!?XYZ diff --git a/review/schema/types/__pycache__/product.cpython-38.pyc b/review/schema/types/__pycache__/product.cpython-38.pyc deleted file mode 100644 index c65f4e7e135163e896fee7f2af0060ae8327a5b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmWIL<>g`kg4Gw-$EO16#~=ZpP1G*|T3@UWHBqmi@)n0pF3>4CsdkJ&vx`9% H@-P7at87Vt diff --git a/review/schema/types/__pycache__/review.cpython-38.pyc b/review/schema/types/__pycache__/review.cpython-38.pyc deleted file mode 100644 index 4886f646a572c74429ce4922ffcb5a100a7815cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmYjP&2H2%5VoD4P21fbN-sscKrZVSKnMv`Bn|~pddVfq#CUpes#oEUps=tMJ~nT)^rz9?6V#UUem_wz@6#~J$-il>%P@tWMer=XbP9qW0; zdB{a4`lL!?o^)xSRawl_F7Id6j5Ekow&PU+#r1*8)$ALi>QEJztUUNlc&y|;Z#PD_ zK-r?Pt=4r1&H-9#JUa&k*f>xhR@czF&(j#@@=vhU@D(!xXam1T3wcWZhTOiO;MlF$ z5m(1=h2m$-3771+68C}_Bo|(2RSL{$(x)q< zVsAN4{*16qw}pD&vUIKiVQArq*4UtriGt%XofqYi&#@Vl=_6U6TSxT2MAH6wgSt@z zEL%g0^lJH^0|pp>`mnV(3Oc*oS5Z2lMneAN-*(~=d12ffH9rZ9fLFXEq?-<2(T~Jz O_$qTg7vU+Al>Y_o%%EEU diff --git a/review/schema/types/__pycache__/user.cpython-38.pyc b/review/schema/types/__pycache__/user.cpython-38.pyc deleted file mode 100644 index 180ef227c1a58453eeb59489bc48cc3db2a55894..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmYjKF^L|# z_rD3rWRCE6^-sB*H5K`IZpr*4EkDeR%CMv~*QGORmHs{5N|z=S`M751L6|m+2i?XH zo-LSKVFP2@!i1%Us&Q*w!Ycp_Z58dn=4&c4a9nI5#HCf^JD-KddP5`0!8TNVM0d&V BMXLY+ diff --git a/user/__pycache__/__init__.cpython-38.pyc b/user/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 269ffe147c8a835cf4b65815014b72860eb45f8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmWIL<>g`k0*~wK;z9Id5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HeerR!OQL%ne zX=X~LzDsJEegKf0uU}AEl98XMpO%`ET9jCl31pT6)#=B_XXa&=#K-FuRNmsS$<0qG N%}KQb8TlEA82|)nBO?F+ diff --git a/user/models/__pycache__/user.cpython-38.pyc b/user/models/__pycache__/user.cpython-38.pyc deleted file mode 100644 index 41624cbebd021ae2f055b08899717413c3967696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1648 zcmZ`(OK%iM5bnpkv&4%rArBNSB$v5(rHG@246zdt$&&;yhq;W#(``I3J2UC-0qx2s zmVXf<*~gsne>%rVk@6QfrK%UOL8hgt`MSEhs=lh~-oJDyAu#^__pjntPRKtvIX^s@ zY{RD?fe=K{hRkSADPq>J8PEC5%RNedB!Ua?B@v$FOP>3}e@ycLw1Egg8#-+W^GL)n zkKH^H$peyp@*mhHDYgDE)Z$jkY<#!Wa<3DzvGKFAsYPizRpGAl<6UgGK`Tj41A|j8gb+hyy?rf}Wwpq?pSq*gdTlwA z5LBR~8B|-*bFLAi_wV7;pMy9iPsj;9B_~W!!A{xlkc~eW*!8m4bYf|-h_`2D-E3Cf zEafVMBi3)a=io6^vTw=?U3pqIhkp|FDJ;L5hCh{RO7ow4a-!uALrA zAysK=fCKEC&M;fr;mv+-eTnX{wwi$;Y>}Y3O{dP%#70Gd1dGBZMFEG02JxsUejCc> z%?j5>DLk$M5O%F7%C_x{^QwztMI-7}*GpyQYK%KE_H$wlr#=X@pd%0oU8f_)sM9Wz zC!L&#vN2uz@%rw-vG?nXRh7P=OA2-6g1us{`>>wDTfOk1%GiCV4Mhaih;58nxYzcB zanYyD{S*dPxkLfLftbVRDtsM)pvUxtoRX)Z+AvV#C4GS!c1pl5&r}S178|ocn@QER zrmWjZIng~9mRlbZS@$-1R5pX$RjO0gH??Ub^g6E^y$a$ib(l4K%~b&{7H=#T&fZm6 z)R<1fMl_;}8}BG>e&j?-or4Mqy&Z^=q$4;1V8}6$q6A1mBOCTKP}dE|6eCd}$+E>~ z507d+K`#^dA9m`X7DBeEXZ>E)txCv*JMF3D-1)Mbwe~@*=XU%~=|$%jjYq#T67AC@^0NZ>z#OstJm- zR6FFl^cpPSQH{4Ip%Dw{x*t%5`U<}H2BvQtKK&htv)&Xmht~%>kio0Np%+8Ip2Lxh z0sDv{nSmW4llxNlU906o8|tB|q}G`oNoDb0BVzmWnG- z@$3~+p5^CxGtZ+r?sjJg>gMZ%eZu=4hjnEz9N_vrG=T)x$Y6?b#F@@aPV$PrdNag!1=xsxyC0Y*#4IrMfQofOigv?N-QQy#*Y8dPAc9p|Oq8!IL) OZ!wtq=zNaT$^HO45oqoJ diff --git a/user/schema/__pycache__/mutation.cpython-38.pyc b/user/schema/__pycache__/mutation.cpython-38.pyc deleted file mode 100644 index 1d34ba189083080c6904db0a2bba60c1244f59d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmYjPJ#Q2-5cSyJz0K+(1(Je}hGv`WA3!KY0HsKTI6}fU$Lc&u4))_@dm~+RM{~6I z4=55kDhmFM+f@7oDrWXT%19ph&5obn8}I4%b}A^I-v1o`0wL}hJPb|XfR;O?WQ2iA z)KCEMURJVJg{pO->!^r8Agn|YV|+U>>JBhLZS*&3A`^erD=4hB!Cut&@8Qtc#5!=SX&(llr#i`(J${kk<+xqaSm4E5G}r^)}jLUb|3$^>nu6W_D- b4j!b(Oqe_;vaZ4x{GyJ94CS7TRRVtj*|M<~ diff --git a/user/schema/__pycache__/query.cpython-38.pyc b/user/schema/__pycache__/query.cpython-38.pyc deleted file mode 100644 index 834b2fe2f99bc4d1e140ced7c2530289e968f616..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmYjNJ5Iwu5ZzgS1Bt{n+<1EghysZ&0zn!#k(He&mh3pp+L0_FQG}KoP(YcAV{nIU zskj0aGpRDto6pYg&CVv16UFlK{WagS{gL2ULJqDO?wplX7HZW%0U*AvbrTc;D1@CV zLJU758+-!BHhc#g+4wcwL6O+xL1pPL_p1#2=)Ol99)}I?!G|-4MJ{#8{C>Z4qLMsx>dV2 zOSDL3SFtP0ja#g+Db15`%Qu4`6S}tE;#{&R4|GCBX*y*+%~GF~RF!s(B=7!A%JQbQ uSi4+&l7I8jVV;kc71q`VuA@W$f#H#o!+d(d?R||`a<`L}V?EY!kitK$ZDPUz diff --git a/user/schema/types/__pycache__/user.cpython-38.pyc b/user/schema/types/__pycache__/user.cpython-38.pyc deleted file mode 100644 index 9be66f8238a9f3109d9cdc38619c26f181ffe9fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmYjNy-ve05VoD94XCXUNDRC|mKZT3ga9!XBHn|quA zSKgM-eehR-@>TH6kPXz}fknd)>|+skN4KCrrxw)RVg;Ff>{`HUe`Y{ya>)pOgKB|! zjcFzbmOY6r+FHJ4D9fjja6zk!+V;(n=Xm0Rq^R@8O*FI`4AeHYMN_{p9iqbLl_W1C z^}0}Ei^6X4oD@g8U>|^sqS}iK9%n9PaS=FQ{5}~ a%k01&DTU{#vM%9*BQrG4NQ^}2`TQI0QhRX#