Created
March 31, 2019 04:27
-
-
Save agilecreativity/396487bcd56122ac319f1d30d57a9c09 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/.gitignore b/.gitignore | |
index c754e3ccc..deef6bbc3 100644 | |
--- a/.gitignore | |
+++ b/.gitignore | |
@@ -82,3 +82,9 @@ build_docker/ | |
.av/config/vars/container | |
.av/config/vars/role | |
.av/config/vars/branch | |
+ | |
+ | |
+################ | |
+# GraphQL junk # | |
+################ | |
+sequoia-graphql/node_modules | |
\ No newline at end of file | |
diff --git a/sequoia-graphql/.npmrc b/sequoia-graphql/.npmrc | |
new file mode 100644 | |
index 000000000..18d97865f | |
--- /dev/null | |
+++ b/sequoia-graphql/.npmrc | |
@@ -0,0 +1,2 @@ | |
+registry=https://registry.npmjs.org/ | |
+strict-ssl=false | |
diff --git a/sequoia-graphql/README.md b/sequoia-graphql/README.md | |
new file mode 100644 | |
index 000000000..7fc2bb396 | |
--- /dev/null | |
+++ b/sequoia-graphql/README.md | |
@@ -0,0 +1,191 @@ | |
+## README | |
+ | |
+## The ingredient for our work | |
+ | |
+- [swagger-to-graphql](https://github.com/yarax/swagger-to-graphql) - make it easy to leverage swagger conversion | |
+- [apollograpql](https://github.com/apollographql) | |
+- [restify](https://github.com/restify/node-restify) | |
+ | |
+ | |
+### Basic setup | |
+ | |
+```sh | |
+brew cask install graphiql | |
+npm install | |
+npm run start:watch | |
+``` | |
+ | |
+Try open the browser to the following: | |
+ | |
+- [http://localhost:3000/graphql](http://localhost:3000/graphql) | |
+ | |
+Try the following query: | |
+ | |
+``` | |
+{ | |
+ getAudiences(showGroup:false) { | |
+ audienceId | |
+ } | |
+} | |
+``` | |
+ | |
+You should get something like | |
+ | |
+``` | |
+{ | |
+ "data": { | |
+ "getAudiences": [ | |
+ { | |
+ "audienceId": "94f67f10-7091-11e6-80cb-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "4d1bfdb0-70f4-11e6-be1b-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "066551c0-7129-11e6-bbd4-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "fb5de230-6a0a-11e6-8355-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "e1327320-3827-11e8-9f6f-02420a05361b" | |
+ }, | |
+ { | |
+ "audienceId": "0054e4a0-71bd-11e6-a525-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "68d5a930-4f5b-11e6-9a71-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "7068ca00-4f5c-11e6-9a71-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "2e82ef90-4f5b-11e6-9a71-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "b37c0800-526a-11e6-85ca-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "51685870-526b-11e6-85ca-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "1c276bf0-526c-11e6-85ca-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "bdac4220-4f5b-11e6-9a71-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "f5fcea30-4f5b-11e6-9a71-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "7f9b2b80-4f5c-11e6-9a71-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "2d28b480-5010-11e6-9fe9-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "40ef73d0-4f63-11e6-8368-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "6fa929e0-4f64-11e6-8368-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "69c54d60-502c-11e6-af05-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "3320cb90-4f64-11e6-8368-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "bd0ebb00-4dd9-11e6-abd6-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "28fa2d90-2c45-11e8-8ba7-02420a050b10" | |
+ }, | |
+ { | |
+ "audienceId": "e53f3190-df6e-11e7-9a37-02420a053510" | |
+ }, | |
+ { | |
+ "audienceId": "7a732b30-f2d6-11e6-b4fe-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "5b4af8a0-3ca1-11e6-93ff-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "ba13ed10-f2d6-11e6-b4fe-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "94f99930-48bb-11e8-b546-02420a050b09" | |
+ }, | |
+ { | |
+ "audienceId": "56b5ca40-4628-11e7-8417-02420a05350c" | |
+ }, | |
+ { | |
+ "audienceId": "5a835220-af23-11e5-a5db-06010a0f1676" | |
+ }, | |
+ { | |
+ "audienceId": "35bb0350-341b-11e8-9454-02420a053308" | |
+ }, | |
+ { | |
+ "audienceId": "8344f650-6e2c-11e6-8830-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "2d527eb0-59f9-11e8-99af-02420a053709" | |
+ }, | |
+ { | |
+ "audienceId": "a855cce0-5670-11e6-99ea-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "137a3ab0-74bc-11e6-9f69-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "879b7780-7203-11e6-b8bb-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "4dc62c20-ce2e-11e7-8424-8e95dafd3f08" | |
+ }, | |
+ { | |
+ "audienceId": "27022940-ce2e-11e7-8424-8e95dafd3f08" | |
+ }, | |
+ { | |
+ "audienceId": "aa1d7650-7f69-11e6-9166-06010a0f1e01" | |
+ }, | |
+ { | |
+ "audienceId": "6aedfcb0-59e3-11e8-bb25-02420a051b12" | |
+ }, | |
+ { | |
+ "audienceId": "1b6032c0-595d-11e8-94d3-02420a053d0f" | |
+ }, | |
+ { | |
+ "audienceId": "ccfc9580-5919-11e8-a37d-02420a051212" | |
+ }, | |
+ { | |
+ "audienceId": "7ecc5920-592a-11e8-bc5f-02420a053d0f" | |
+ }, | |
+ { | |
+ "audienceId": "1bc36880-59f9-11e8-99af-02420a053709" | |
+ }, | |
+ { | |
+ "audienceId": "ad3a9400-593b-11e8-94d3-02420a053d0f" | |
+ }, | |
+ { | |
+ "audienceId": "d16c06e0-59c4-11e8-a78c-02420a053d0f" | |
+ }, | |
+ { | |
+ "audienceId": "3e28bd50-5916-11e8-a37d-02420a051212" | |
+ }, | |
+ { | |
+ "audienceId": "403269a0-590e-11e8-a219-02420a052b0d" | |
+ }, | |
+ { | |
+ "audienceId": "ab8c05c0-59a0-11e8-94d3-02420a053d0f" | |
+ }, | |
+ { | |
+ "audienceId": "b7df82b0-597e-11e8-94d3-02420a053d0f" | |
+ }, | |
+ { | |
+ "audienceId": "2fe1fa80-58f9-11e8-a583-02420a053709" | |
+ } | |
+ ] | |
+ } | |
+} | |
+``` | |
diff --git a/sequoia-graphql/index.js b/sequoia-graphql/index.js | |
new file mode 100644 | |
index 000000000..b953eb144 | |
--- /dev/null | |
+++ b/sequoia-graphql/index.js | |
@@ -0,0 +1,721 @@ | |
+const restify = require('restify'); | |
+const { graphqlRestify, graphiqlRestify } = require('apollo-server-restify'); | |
+const {makeExecutableSchema } = require('graphql-tools'); | |
+const axios = require('axios'); | |
+const corsMiddleware = require('restify-cors-middleware'); | |
+ | |
+const cors = corsMiddleware({ | |
+ origins: ['*'] | |
+}); | |
+ | |
+const PORT = 3000; | |
+ | |
+const server = restify.createServer({ | |
+ title: 'Apollo Server', | |
+}); | |
+ | |
+server.pre(cors.preflight); | |
+ | |
+const typeDefs = ` | |
+type AiSegmentResults { | |
+ uidUploadSegmentId: Int | |
+ viewSegmentId: Int | |
+ modelSegmentId: Int | |
+ modelId: Int | |
+ viewSegmentIds: [Int] | |
+ uidSegmentIds: [Int] | |
+ } | |
+ | |
+ input AiSegmentResultsInput { | |
+ uidUploadSegmentId: Int | |
+ viewSegmentId: Int | |
+ modelSegmentId: Int | |
+ modelId: Int | |
+ viewSegmentIds: [Int] | |
+ uidSegmentIds: [Int] | |
+ } | |
+ | |
+ type ApiException { | |
+ cause: Throwable | |
+ stackTrace: [StackTraceElement] | |
+ response: Response | |
+ message: String | |
+ localizedMessage: String | |
+ suppressed: [Throwable] | |
+ } | |
+ | |
+ type Audience { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: [String] | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ audienceId: String | |
+ userEmail: String | |
+ score: Float | |
+ uniqueUsers: Int | |
+ createdTs: String | |
+ modifiedTs: String | |
+ lastAccessedTs: String | |
+ collectionStartTs: String | |
+ collectionStopTs: String | |
+ activation: AudienceActivation | |
+ activated: Boolean | |
+ origin: AudienceOrigin | |
+ randomSampled: Boolean | |
+ status: String | |
+ insightsReady: Boolean | |
+ uniqueDomains: Int | |
+ acaciaVersion: String | |
+ skipAudit: Boolean | |
+ unifiedInsights: Boolean | |
+ categoryId: String | |
+ } | |
+ | |
+ type AudienceActivation { | |
+ activationDate: String | |
+ endDate: String | |
+ integrationCode: String | |
+ integrationName: String | |
+ modeled: Boolean | |
+ refreshWeekly: Boolean | |
+ modelTarget: Int | |
+ notes: String | |
+ dspId: Int | |
+ buyerId: String | |
+ buyerName: String | |
+ partner: String | |
+ pixel: String | |
+ opportunityId: String | |
+ sugarId: String | |
+ cpm: AudienceActivation_cpm | |
+ filters: AudienceActivation_filters | |
+ segmentIds: AiSegmentResults | |
+ activationFailure: Boolean | |
+ extractionComplete: Boolean | |
+ } | |
+ | |
+ type AudienceActivation_cpm { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ input AudienceActivation_cpmInput { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type AudienceActivation_filters { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ input AudienceActivation_filtersInput { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ input AudienceActivationInput { | |
+ activationDate: String | |
+ endDate: String | |
+ integrationCode: String | |
+ integrationName: String | |
+ modeled: Boolean | |
+ refreshWeekly: Boolean | |
+ modelTarget: Int | |
+ notes: String | |
+ dspId: Int | |
+ buyerId: String | |
+ buyerName: String | |
+ partner: String | |
+ pixel: String | |
+ opportunityId: String | |
+ sugarId: String | |
+ cpm: AudienceActivation_cpmInput | |
+ filters: AudienceActivation_filtersInput | |
+ segmentIds: AiSegmentResultsInput | |
+ activationFailure: Boolean | |
+ extractionComplete: Boolean | |
+ } | |
+ | |
+ input AudienceBooleanCreateInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: String | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ } | |
+ | |
+ input AudienceBooleanEvalInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: String | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ } | |
+ | |
+ input AudienceCreateInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: [String] | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ } | |
+ | |
+ input AudienceCreateInputSegmentInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ segmentIds: [Int] | |
+ } | |
+ | |
+ input AudienceCreateInputUidsInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ uids: [String] | |
+ doSampling: Boolean | |
+ } | |
+ | |
+ input AudienceCreateInputUidTranslationInput { | |
+ doSampling: Boolean | |
+ name: String | |
+ domainsBlack: [String] | |
+ partnerId: Int | |
+ partnerUids: String | |
+ totalUids: Int | |
+ countryCode: String | |
+ } | |
+ | |
+ input AudienceEvalInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: [String] | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ } | |
+ | |
+ type audienceInsights { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type AudienceOrigin { | |
+ domainsBlack: [String] | |
+ userTitle: String | |
+ userDescription: String | |
+ type: String | |
+ } | |
+ | |
+ type AudienceOutput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: [String] | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ audienceId: String | |
+ userEmail: String | |
+ score: Float | |
+ uniqueUsers: Int | |
+ createdTs: String | |
+ modifiedTs: String | |
+ lastAccessedTs: String | |
+ collectionStartTs: String | |
+ collectionStopTs: String | |
+ activation: AudienceActivation | |
+ activated: Boolean | |
+ origin: AudienceOrigin | |
+ randomSampled: Boolean | |
+ status: String | |
+ insightsReady: Boolean | |
+ uniqueDomains: Int | |
+ acaciaVersion: String | |
+ skipAudit: Boolean | |
+ unifiedInsights: Boolean | |
+ categoryId: String | |
+ modeling: ModelOutput | |
+ flags: [String] | |
+ state: String | |
+ } | |
+ | |
+ type AudienceScoreResponse { | |
+ score: Float | |
+ uniqueUsers: String | |
+ } | |
+ | |
+ type BuyerAcct { | |
+ id: String | |
+ buyerId: String | |
+ name: String | |
+ dspId: Int | |
+ opportunityId: String | |
+ cpm: BuyerAcct_cpm | |
+ } | |
+ | |
+ type BuyerAcct_cpm { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type DiscoveryResponseItem { | |
+ entity: String | |
+ matched: [String] | |
+ relevance: String | |
+ uniqueDomains: String | |
+ uniqueUsers: String | |
+ topDomains: [String] | |
+ } | |
+ | |
+ type downloadInsights { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type EntityTag { | |
+ value: String | |
+ weak: Boolean | |
+ } | |
+ | |
+ type get { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type getInsights { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type getInsightsUsingFlame { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type getInsightsUsingHydra { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type getKeys { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type getRelatedEntityCounts { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type getUrlsForEntities { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type Link { | |
+ params: Link_params | |
+ title: String | |
+ uri: String | |
+ uriBuilder: UriBuilder | |
+ rel: String | |
+ rels: [String] | |
+ type: String | |
+ } | |
+ | |
+ type Link_params { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type Locale { | |
+ language: String | |
+ script: String | |
+ country: String | |
+ variant: String | |
+ extensionKeys: [String] | |
+ unicodeLocaleAttributes: [String] | |
+ unicodeLocaleKeys: [String] | |
+ iso3Language: String | |
+ iso3Country: String | |
+ displayLanguage: String | |
+ displayScript: String | |
+ displayCountry: String | |
+ displayVariant: String | |
+ displayName: String | |
+ } | |
+ | |
+ type MediaType { | |
+ type: String | |
+ subtype: String | |
+ parameters: MediaType_parameters | |
+ wildcardType: Boolean | |
+ wildcardSubtype: Boolean | |
+ } | |
+ | |
+ type MediaType_parameters { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type ModelOutput { | |
+ formattedBuckets: [Int] | |
+ recommendSize: Int | |
+ strictSize: Int | |
+ modelingUnits: Int | |
+ modelStatus: String | |
+ } | |
+ | |
+ type Mutation { | |
+ activate(audienceId: String, body: AudienceActivationInput): AudienceActivation | |
+ updateActivation(audienceId: String, body: AudienceActivationInput): AudienceActivation | |
+ | |
+ """Evaluate an audience definition without saving it to the system.""" | |
+ evaluate(body: AudienceEvalInput): AudienceScoreResponse | |
+ | |
+ """ | |
+ Save an audience definition to the system using provided set of UIDs. Response | |
+ will provide a audience ID. Audience name must be unique. Uids can be input as | |
+ a list of strings and as a giant comma-separated string. | |
+ """ | |
+ createTypeUid(body: AudienceCreateInputUidsInput): Audience | |
+ buildThirdPartyCategoryAudience(countryCode: String, categoryId: String): Audience | |
+ | |
+ """Deletes audience permanently. Action cannot be undone""" | |
+ delete(audienceId: String!): Boolean | |
+ | |
+ """Evaluate an audience definition without saving it to the system.""" | |
+ evaluateBoolean(body: AudienceBooleanEvalInput): AudienceScoreResponse | |
+ | |
+ """ | |
+ Save an audience definition to the system. You should use the 'eval' endpoint | |
+ first to evaluate combinations of keywords that result in highest score before | |
+ you create the audience. Response will provide a audience ID if audience | |
+ passes validation rules, otherwise an error will be returned.Audience name must be unique | |
+ """ | |
+ createTypeEntity(entityInput: AudienceCreateInput): Audience | |
+ | |
+ """ | |
+ Save an audience definition to the system. You should use the 'eval' endpoint | |
+ first to evaluate combinations of keywords that result in highest score before | |
+ you create the audience. Response will provide a audience ID if audience | |
+ passes validation rules, otherwise an error will be returned.Audience name must be unique | |
+ """ | |
+ createTypeBooleanEntity(body: AudienceBooleanCreateInput): Audience | |
+ | |
+ """Renames audience with the given name""" | |
+ rename_(audienceId: String, name: String): AudienceOutput | |
+ | |
+ """ | |
+ Save an audience definition to the system using provided set of HHIDs. | |
+ Response will provide a audience ID. Audience name must be unique. Audience | |
+ minimums are enforced and will return a 400 if they are not met.HHIDs can be | |
+ input as a list of strings and as a giant comma-separated string. | |
+ """ | |
+ createTypeHHID(body: param_createTypeHHID_bodyInput): Audience | |
+ | |
+ """ | |
+ Save an audience definition to the system after translating a provided set of | |
+ partner UIDs. Response will provide ??? Uids can be input as a list of strings | |
+ and as a giant comma-separated string. | |
+ """ | |
+ createTypeUidTranslation(body: AudienceCreateInputUidTranslationInput): Audience | |
+ | |
+ """ | |
+ Save an audience definition to the system using AddThis Segment IDs. Response | |
+ will provide a audience ID. Audience name must be unique. | |
+ """ | |
+ createTypeSegment(body: AudienceCreateInputSegmentInput): Audience | |
+ | |
+ """ | |
+ Authenticates BlueKai token and redirects to dashboard on failure or success | |
+ """ | |
+ post(bksso: String): post | |
+ | |
+ """ | |
+ Authenticates BlueKai token and redirects to insights on failure or success | |
+ """ | |
+ getInsights(audienceId: String, backUrl: String, bksso: String): getInsights | |
+ | |
+ """Redirects to insights page""" | |
+ guestInsights(bksso: String, countryCode: String, categoryId: String): ApiException | |
+ tokenExchange(bksso: String): User | |
+ getRelatedEntityCounts(body: AudienceEvalInput): getRelatedEntityCounts | |
+ | |
+ """ | |
+ Validates provided entities and returns UID counts for each entity that has any signal. | |
+ """ | |
+ validateEntities(body: AudienceEvalInput): validateEntities | |
+ showAnalyticsTour(show: Boolean): showAnalyticsTour | |
+ } | |
+ | |
+ """name""" | |
+ input param_createTypeHHID_bodyInput { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type pivotDimension { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type pivotTaggedEntities { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type post { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type Query { | |
+ getActivation(audienceId: String): AudienceActivation | |
+ getThirdPartyCategoryAudience(countryCode: String, categoryId: String): Audience | |
+ | |
+ """ | |
+ List all audiences available to the current user, and (if showGroup=true) the group | |
+ """ | |
+ getAudiences(showGroup: Boolean!): [AudienceOutput] | |
+ | |
+ hello: String | |
+ | |
+ """Return the audience definition of a specific audience.""" | |
+ getByAudienceOutputById(audienceId: String): Audience | |
+ | |
+ """ | |
+ This can be used to check that the audience name is acceptable before making a long creation request | |
+ """ | |
+ validAudienceName(name: String): validAudienceName | |
+ | |
+ """ | |
+ The response will be 404 until the translation is complete and the audience is subsequently created | |
+ """ | |
+ getAudienceIdForUidTranslation(translationId: String): Audience | |
+ | |
+ """ | |
+ Authenticates BlueKai token and redirects to dashboard on failure or success | |
+ """ | |
+ get: get | |
+ | |
+ """ | |
+ The discovery endpoint is an interactive query endpoint designed to help a | |
+ user discover entities in the system. The user would supply a keyword or | |
+ phrase and the system would respond with related phrases with a UU and domain | |
+ count in JSON format. By selecting a number of entities with larger UU and | |
+ domain counts, the user can assemble entities to later be used in the audience | |
+ eval & creation endpoints. | |
+ """ | |
+ getEntityCounts(entity: [String], endDate: String, startDate: String, countryCode: String): [DiscoveryResponseItem] | |
+ | |
+ """ | |
+ Gets all Categories and counts which members of the given audience are a part of. | |
+ """ | |
+ audienceInsights(id: String, global: Boolean, baselineAudience: String): audienceInsights | |
+ | |
+ """ | |
+ Gets all Categories and counts which members of the given audience are a part of. | |
+ """ | |
+ downloadInsights(id: String, baselineAudience: String): downloadInsights | |
+ getStrategies: [String] | |
+ | |
+ """Gets respective keys of pivots""" | |
+ getKeys(countryCode: String): getKeys | |
+ | |
+ """ | |
+ The insights endpoint is the heart of the query system. In this endpoint, you | |
+ specify the audience, and a dimension. Dimensions that support normalization | |
+ are 'topic','deviceType','osType','dateHour','usState', a 400 error will be | |
+ returned if normalization is requested for an unsupported dimension. Most | |
+ dimensions will return both UU count (uids) and View count (views). For | |
+ dimensions whether either of these measures aren't supported, 'null' will be | |
+ returned. Data is returned for last 30 days and based on US-only users. | |
+ """ | |
+ pivotDimension(audienceId: String, dimension: String, dateFrom: String, dateTo: String, deviceType: String, usState: String, osType: String, topic: String, baselineAudience: String): pivotDimension | |
+ | |
+ """ | |
+ Gets the corresponding URLs which contributed to the given entity for the given audience. | |
+ """ | |
+ getUrlsForEntities(audienceId: String, entity: String, dateFrom: String, dateTo: String): getUrlsForEntities | |
+ | |
+ """Tags that are supported are 'brand','person'.""" | |
+ pivotTaggedEntities(audienceId: String, tag: String, dateFrom: String, dateTo: String, deviceType: String, usState: String, osType: String, topic: String): pivotTaggedEntities | |
+ getInsightsUsingFlame(audienceId: String, dimension: String, dateFrom: String, dateTo: String, deviceType: String, usState: String, osType: String, topic: String): getInsightsUsingFlame | |
+ getInsightsUsingHydra(audienceId: String, dimension: String, dateFrom: String, dateTo: String, deviceType: String, usState: String, osType: String, topic: String): getInsightsUsingHydra | |
+ getBuyerAccounts: [BuyerAcct] | |
+ } | |
+ | |
+ type Response { | |
+ date: String | |
+ lastModified: String | |
+ headers: Response_headers | |
+ status: Int | |
+ metadata: Response_metadata | |
+ allowedMethods: [String] | |
+ cookies: Response_cookies | |
+ statusInfo: StatusType | |
+ entity: Response_entity | |
+ stringHeaders: Response_stringHeaders | |
+ mediaType: MediaType | |
+ entityTag: EntityTag | |
+ links: [Link] | |
+ length: Int | |
+ language: Locale | |
+ location: String | |
+ } | |
+ | |
+ type Response_cookies { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type Response_entity { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type Response_headers { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type Response_metadata { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type Response_stringHeaders { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type showAnalyticsTour { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type StackTraceElement { | |
+ methodName: String | |
+ fileName: String | |
+ lineNumber: Int | |
+ className: String | |
+ nativeMethod: Boolean | |
+ } | |
+ | |
+ type StatusType { | |
+ family: String | |
+ statusCode: Int | |
+ reasonPhrase: String | |
+ } | |
+ | |
+ type Throwable { | |
+ cause: Throwable | |
+ stackTrace: [StackTraceElement] | |
+ message: String | |
+ localizedMessage: String | |
+ suppressed: [Throwable] | |
+ } | |
+ | |
+ type UriBuilder { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type User { | |
+ id: String | |
+ email: String | |
+ group: String | |
+ accessToken: String | |
+ accessTokenResetTs: String | |
+ passwordFailedAttempts: [String] | |
+ passwordResetTs: String | |
+ passwordResetTokenCreatedTs: String | |
+ rememberMeTokenCreatedTs: String | |
+ createdTs: String | |
+ modifiedTs: String | |
+ state: String | |
+ userPreferences: User_userPreferences | |
+ } | |
+ | |
+ type User_userPreferences { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type validateEntities { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+ | |
+ type validAudienceName { | |
+ """default field""" | |
+ empty: String | |
+ } | |
+`; | |
+ | |
+const sequoia = axios.create({ | |
+ baseURL: 'http://sequoia-test.kubesvc-iad.clearspring.local/api/1.0', | |
+ timeout: 60000, | |
+ headers: { | |
+ 'Authorization': 'c470375e-8a8c-4430-b8de-e8b09cda7ff8' | |
+ } | |
+}) | |
+ | |
+const resolvers = { | |
+ Query: { | |
+ getAudiences(obj, args, context, info) { | |
+ console.log(args) | |
+ const url = 'audiences?showGroup=' + args.showGroup; | |
+ console.log(`Using URL: ${url}`); | |
+ return sequoia.get(url).then((response) => response.data); | |
+ }, | |
+ hello() { | |
+ return "Goodbye" | |
+ } | |
+ }, | |
+ Mutation: { | |
+ delete(obj, {audienceId}, context, info) { | |
+ const url = 'audiences/' + audienceId; | |
+ console.log(`Gonna delete with ${url}`); | |
+ return sequoia.delete(url).then(({status}) => status === 200); | |
+ } , | |
+ createTypeEntity(obj, {entityInput}, context, info) { | |
+ // input AudienceCreateInput { | |
+ // dateFrom: String | |
+ // dateTo: String | |
+ // entities: [String] | |
+ // domainsBlack: [String] | |
+ // countryCode: String | |
+ // name: String | |
+ // } | |
+ const url = 'audiences/create-type-entity'; | |
+ return sequoia.post(url, entityInput).then(({data}) => data); | |
+ } | |
+ } | |
+} | |
+ | |
+const myGraphQLSchema = makeExecutableSchema({typeDefs, resolvers}); | |
+const graphQLOptions = { schema: myGraphQLSchema }; | |
+ | |
+// server.use((req, res, next) => { | |
+// res.header("Access-Control-Allow-Origin", "*"); | |
+// res.header("Access-Control-Allow-Headers", "X-Requested-With"); | |
+// return next(); | |
+// }); | |
+server.use(cors.actual); | |
+server.use(restify.plugins.bodyParser()); | |
+server.use(restify.plugins.queryParser()); | |
+ | |
+server.post('/graphql', graphqlRestify(graphQLOptions)); | |
+server.get('/graphql', graphqlRestify(graphQLOptions)); | |
+ | |
+server.get('/graphiql', graphiqlRestify({ endpointURL: '/graphql' })); | |
+ | |
+server.listen(PORT, () => console.log(`Listening on ${PORT}`)); | |
\ No newline at end of file | |
diff --git a/sequoia-graphql/package.json b/sequoia-graphql/package.json | |
new file mode 100644 | |
index 000000000..c5f46dcc5 | |
--- /dev/null | |
+++ b/sequoia-graphql/package.json | |
@@ -0,0 +1,29 @@ | |
+{ | |
+ "name": "sequoia-graphql", | |
+ "version": "1.0.0", | |
+ "description": "Help Sequoia do GraphQL", | |
+ "main": "index.js", | |
+ "scripts": { | |
+ "start:watch": "nodemon ./index.js localhost 3000", | |
+ "test": "test" | |
+ }, | |
+ "repository": { | |
+ "type": "git", | |
+ "url": ".." | |
+ }, | |
+ "keywords": [ | |
+ "sequoia", | |
+ "graphql" | |
+ ], | |
+ "author": "tyrell", | |
+ "license": "ISC", | |
+ "dependencies": { | |
+ "apollo-server-restify": "^1.3.6", | |
+ "axios": "^0.18.0", | |
+ "graphql": "^0.13.2", | |
+ "graphql-tools": "^3.0.1", | |
+ "nodemon": "^1.17.4", | |
+ "restify": "^7.2.0", | |
+ "restify-cors-middleware": "^1.1.0" | |
+ } | |
+} | |
diff --git a/sequoia-graphql/schema.graphql.txt b/sequoia-graphql/schema.graphql.txt | |
new file mode 100644 | |
index 000000000..c1d55792f | |
--- /dev/null | |
+++ b/sequoia-graphql/schema.graphql.txt | |
@@ -0,0 +1,640 @@ | |
+type AiSegmentResults { | |
+ uidUploadSegmentId: Int | |
+ viewSegmentId: Int | |
+ modelSegmentId: Int | |
+ modelId: Int | |
+ viewSegmentIds: [Int] | |
+ uidSegmentIds: [Int] | |
+} | |
+ | |
+input AiSegmentResultsInput { | |
+ uidUploadSegmentId: Int | |
+ viewSegmentId: Int | |
+ modelSegmentId: Int | |
+ modelId: Int | |
+ viewSegmentIds: [Int] | |
+ uidSegmentIds: [Int] | |
+} | |
+ | |
+type ApiException { | |
+ cause: Throwable | |
+ stackTrace: [StackTraceElement] | |
+ response: Response | |
+ message: String | |
+ localizedMessage: String | |
+ suppressed: [Throwable] | |
+} | |
+ | |
+type Audience { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: [String] | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ audienceId: String | |
+ userEmail: String | |
+ score: Int | |
+ uniqueUsers: Int | |
+ createdTs: String | |
+ modifiedTs: String | |
+ lastAccessedTs: String | |
+ collectionStartTs: String | |
+ collectionStopTs: String | |
+ activation: AudienceActivation | |
+ activated: Boolean | |
+ origin: AudienceOrigin | |
+ randomSampled: Boolean | |
+ status: String | |
+ insightsReady: Boolean | |
+ uniqueDomains: Int | |
+ acaciaVersion: String | |
+ skipAudit: Boolean | |
+ unifiedInsights: Boolean | |
+ categoryId: String | |
+} | |
+ | |
+type AudienceActivation { | |
+ activationDate: String | |
+ endDate: String | |
+ integrationCode: String | |
+ integrationName: String | |
+ modeled: Boolean | |
+ refreshWeekly: Boolean | |
+ modelTarget: Int | |
+ notes: String | |
+ dspId: Int | |
+ buyerId: String | |
+ buyerName: String | |
+ partner: String | |
+ pixel: String | |
+ opportunityId: String | |
+ sugarId: String | |
+ cpm: AudienceActivation_cpm | |
+ filters: AudienceActivation_filters | |
+ segmentIds: AiSegmentResults | |
+ activationFailure: Boolean | |
+ extractionComplete: Boolean | |
+} | |
+ | |
+type AudienceActivation_cpm { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+input AudienceActivation_cpmInput { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type AudienceActivation_filters { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+input AudienceActivation_filtersInput { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+input AudienceActivationInput { | |
+ activationDate: String | |
+ endDate: String | |
+ integrationCode: String | |
+ integrationName: String | |
+ modeled: Boolean | |
+ refreshWeekly: Boolean | |
+ modelTarget: Int | |
+ notes: String | |
+ dspId: Int | |
+ buyerId: String | |
+ buyerName: String | |
+ partner: String | |
+ pixel: String | |
+ opportunityId: String | |
+ sugarId: String | |
+ cpm: AudienceActivation_cpmInput | |
+ filters: AudienceActivation_filtersInput | |
+ segmentIds: AiSegmentResultsInput | |
+ activationFailure: Boolean | |
+ extractionComplete: Boolean | |
+} | |
+ | |
+input AudienceBooleanCreateInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: String | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+} | |
+ | |
+input AudienceBooleanEvalInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: String | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+} | |
+ | |
+input AudienceCreateInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: [String] | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+} | |
+ | |
+input AudienceCreateInputSegmentInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ segmentIds: [Int] | |
+} | |
+ | |
+input AudienceCreateInputUidsInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ uids: [String] | |
+ doSampling: Boolean | |
+} | |
+ | |
+input AudienceCreateInputUidTranslationInput { | |
+ doSampling: Boolean | |
+ name: String | |
+ domainsBlack: [String] | |
+ partnerId: Int | |
+ partnerUids: String | |
+ totalUids: Int | |
+ countryCode: String | |
+} | |
+ | |
+input AudienceEvalInput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: [String] | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+} | |
+ | |
+type audienceInsights { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type AudienceOrigin { | |
+ domainsBlack: [String] | |
+ userTitle: String | |
+ userDescription: String | |
+ type: String | |
+} | |
+ | |
+type AudienceOutput { | |
+ dateFrom: String | |
+ dateTo: String | |
+ entities: [String] | |
+ domainsBlack: [String] | |
+ countryCode: String | |
+ name: String | |
+ audienceId: String | |
+ userEmail: String | |
+ score: Int | |
+ uniqueUsers: Int | |
+ createdTs: String | |
+ modifiedTs: String | |
+ lastAccessedTs: String | |
+ collectionStartTs: String | |
+ collectionStopTs: String | |
+ activation: AudienceActivation | |
+ activated: Boolean | |
+ origin: AudienceOrigin | |
+ randomSampled: Boolean | |
+ status: String | |
+ insightsReady: Boolean | |
+ uniqueDomains: Int | |
+ acaciaVersion: String | |
+ skipAudit: Boolean | |
+ unifiedInsights: Boolean | |
+ categoryId: String | |
+ modeling: ModelOutput | |
+ flags: [String] | |
+ state: String | |
+} | |
+ | |
+type AudienceScoreResponse { | |
+ score: Int | |
+ uniqueUsers: String | |
+} | |
+ | |
+type BuyerAcct { | |
+ id: String | |
+ buyerId: String | |
+ name: String | |
+ dspId: Int | |
+ opportunityId: String | |
+ cpm: BuyerAcct_cpm | |
+} | |
+ | |
+type BuyerAcct_cpm { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type DiscoveryResponseItem { | |
+ entity: String | |
+ matched: [String] | |
+ relevance: String | |
+ uniqueDomains: String | |
+ uniqueUsers: String | |
+ topDomains: [String] | |
+} | |
+ | |
+type downloadInsights { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type EntityTag { | |
+ value: String | |
+ weak: Boolean | |
+} | |
+ | |
+type get { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type getInsights { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type getInsightsUsingFlame { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type getInsightsUsingHydra { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type getKeys { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type getRelatedEntityCounts { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type getUrlsForEntities { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type Link { | |
+ params: Link_params | |
+ title: String | |
+ uri: String | |
+ uriBuilder: UriBuilder | |
+ rel: String | |
+ rels: [String] | |
+ type: String | |
+} | |
+ | |
+type Link_params { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type Locale { | |
+ language: String | |
+ script: String | |
+ country: String | |
+ variant: String | |
+ extensionKeys: [String] | |
+ unicodeLocaleAttributes: [String] | |
+ unicodeLocaleKeys: [String] | |
+ iso3Language: String | |
+ iso3Country: String | |
+ displayLanguage: String | |
+ displayScript: String | |
+ displayCountry: String | |
+ displayVariant: String | |
+ displayName: String | |
+} | |
+ | |
+type MediaType { | |
+ type: String | |
+ subtype: String | |
+ parameters: MediaType_parameters | |
+ wildcardType: Boolean | |
+ wildcardSubtype: Boolean | |
+} | |
+ | |
+type MediaType_parameters { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type ModelOutput { | |
+ formattedBuckets: [Int] | |
+ recommendSize: Int | |
+ strictSize: Int | |
+ modelingUnits: Int | |
+ modelStatus: String | |
+} | |
+ | |
+type Mutation { | |
+ activate(audienceId: String, body: AudienceActivationInput): AudienceActivation | |
+ updateActivation(audienceId: String, body: AudienceActivationInput): AudienceActivation | |
+ | |
+ """Evaluate an audience definition without saving it to the system.""" | |
+ evaluate(body: AudienceEvalInput): AudienceScoreResponse | |
+ | |
+ """ | |
+ Save an audience definition to the system using provided set of UIDs. Response | |
+ will provide a audience ID. Audience name must be unique. Uids can be input as | |
+ a list of strings and as a giant comma-separated string. | |
+ """ | |
+ createTypeUid(body: AudienceCreateInputUidsInput): Audience | |
+ buildThirdPartyCategoryAudience(countryCode: String, categoryId: String): Audience | |
+ | |
+ """Deletes audience permanently. Action cannot be undone""" | |
+ delete(audienceId: String): Audience | |
+ | |
+ """Evaluate an audience definition without saving it to the system.""" | |
+ evaluateBoolean(body: AudienceBooleanEvalInput): AudienceScoreResponse | |
+ | |
+ """ | |
+ Save an audience definition to the system. You should use the 'eval' endpoint | |
+ first to evaluate combinations of keywords that result in highest score before | |
+ you create the audience. Response will provide a audience ID if audience | |
+ passes validation rules, otherwise an error will be returned.Audience name must be unique | |
+ """ | |
+ createTypeEntity(body: AudienceCreateInput): Audience | |
+ | |
+ """ | |
+ Save an audience definition to the system. You should use the 'eval' endpoint | |
+ first to evaluate combinations of keywords that result in highest score before | |
+ you create the audience. Response will provide a audience ID if audience | |
+ passes validation rules, otherwise an error will be returned.Audience name must be unique | |
+ """ | |
+ createTypeBooleanEntity(body: AudienceBooleanCreateInput): Audience | |
+ | |
+ """Renames audience with the given name""" | |
+ rename_(audienceId: String, name: String): AudienceOutput | |
+ | |
+ """ | |
+ Save an audience definition to the system using provided set of HHIDs. | |
+ Response will provide a audience ID. Audience name must be unique. Audience | |
+ minimums are enforced and will return a 400 if they are not met.HHIDs can be | |
+ input as a list of strings and as a giant comma-separated string. | |
+ """ | |
+ createTypeHHID(body: param_createTypeHHID_bodyInput): Audience | |
+ | |
+ """ | |
+ Save an audience definition to the system after translating a provided set of | |
+ partner UIDs. Response will provide ??? Uids can be input as a list of strings | |
+ and as a giant comma-separated string. | |
+ """ | |
+ createTypeUidTranslation(body: AudienceCreateInputUidTranslationInput): Audience | |
+ | |
+ """ | |
+ Save an audience definition to the system using AddThis Segment IDs. Response | |
+ will provide a audience ID. Audience name must be unique. | |
+ """ | |
+ createTypeSegment(body: AudienceCreateInputSegmentInput): Audience | |
+ | |
+ """ | |
+ Authenticates BlueKai token and redirects to dashboard on failure or success | |
+ """ | |
+ post(bksso: String): post | |
+ | |
+ """ | |
+ Authenticates BlueKai token and redirects to insights on failure or success | |
+ """ | |
+ getInsights(audienceId: String, backUrl: String, bksso: String): getInsights | |
+ | |
+ """Redirects to insights page""" | |
+ guestInsights(bksso: String, countryCode: String, categoryId: String): ApiException | |
+ tokenExchange(bksso: String): User | |
+ getRelatedEntityCounts(body: AudienceEvalInput): getRelatedEntityCounts | |
+ | |
+ """ | |
+ Validates provided entities and returns UID counts for each entity that has any signal. | |
+ """ | |
+ validateEntities(body: AudienceEvalInput): validateEntities | |
+ showAnalyticsTour(show: Boolean): showAnalyticsTour | |
+} | |
+ | |
+"""name""" | |
+input param_createTypeHHID_bodyInput { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type pivotDimension { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type pivotTaggedEntities { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type post { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type Query { | |
+ getActivation(audienceId: String): AudienceActivation | |
+ getThirdPartyCategoryAudience(countryCode: String, categoryId: String): Audience | |
+ | |
+ """ | |
+ List all audiences available to the current user, and (if showGroup=true) the group | |
+ """ | |
+ getDecoratedByUserId(showGroup: Boolean): [Audience] | |
+ | |
+ """Return the audience definition of a specific audience.""" | |
+ getByAudienceOutputById(audienceId: String): Audience | |
+ | |
+ """ | |
+ This can be used to check that the audience name is acceptable before making a long creation request | |
+ """ | |
+ validAudienceName(name: String): validAudienceName | |
+ | |
+ """ | |
+ The response will be 404 until the translation is complete and the audience is subsequently created | |
+ """ | |
+ getAudienceIdForUidTranslation(translationId: String): Audience | |
+ | |
+ """ | |
+ Authenticates BlueKai token and redirects to dashboard on failure or success | |
+ """ | |
+ get: get | |
+ | |
+ """ | |
+ The discovery endpoint is an interactive query endpoint designed to help a | |
+ user discover entities in the system. The user would supply a keyword or | |
+ phrase and the system would respond with related phrases with a UU and domain | |
+ count in JSON format. By selecting a number of entities with larger UU and | |
+ domain counts, the user can assemble entities to later be used in the audience | |
+ eval & creation endpoints. | |
+ """ | |
+ getEntityCounts(entity: [String], endDate: String, startDate: String, countryCode: String): [DiscoveryResponseItem] | |
+ | |
+ """ | |
+ Gets all Categories and counts which members of the given audience are a part of. | |
+ """ | |
+ audienceInsights(id: String, global: Boolean, baselineAudience: String): audienceInsights | |
+ | |
+ """ | |
+ Gets all Categories and counts which members of the given audience are a part of. | |
+ """ | |
+ downloadInsights(id: String, baselineAudience: String): downloadInsights | |
+ getStrategies: [String] | |
+ | |
+ """Gets respective keys of pivots""" | |
+ getKeys(countryCode: String): getKeys | |
+ | |
+ """ | |
+ The insights endpoint is the heart of the query system. In this endpoint, you | |
+ specify the audience, and a dimension. Dimensions that support normalization | |
+ are 'topic','deviceType','osType','dateHour','usState', a 400 error will be | |
+ returned if normalization is requested for an unsupported dimension. Most | |
+ dimensions will return both UU count (uids) and View count (views). For | |
+ dimensions whether either of these measures aren't supported, 'null' will be | |
+ returned. Data is returned for last 30 days and based on US-only users. | |
+ """ | |
+ pivotDimension(audienceId: String, dimension: String, dateFrom: String, dateTo: String, deviceType: String, usState: String, osType: String, topic: String, baselineAudience: String): pivotDimension | |
+ | |
+ """ | |
+ Gets the corresponding URLs which contributed to the given entity for the given audience. | |
+ """ | |
+ getUrlsForEntities(audienceId: String, entity: String, dateFrom: String, dateTo: String): getUrlsForEntities | |
+ | |
+ """Tags that are supported are 'brand','person'.""" | |
+ pivotTaggedEntities(audienceId: String, tag: String, dateFrom: String, dateTo: String, deviceType: String, usState: String, osType: String, topic: String): pivotTaggedEntities | |
+ getInsightsUsingFlame(audienceId: String, dimension: String, dateFrom: String, dateTo: String, deviceType: String, usState: String, osType: String, topic: String): getInsightsUsingFlame | |
+ getInsightsUsingHydra(audienceId: String, dimension: String, dateFrom: String, dateTo: String, deviceType: String, usState: String, osType: String, topic: String): getInsightsUsingHydra | |
+ getBuyerAccounts: [BuyerAcct] | |
+} | |
+ | |
+type Response { | |
+ date: String | |
+ lastModified: String | |
+ headers: Response_headers | |
+ status: Int | |
+ metadata: Response_metadata | |
+ allowedMethods: [String] | |
+ cookies: Response_cookies | |
+ statusInfo: StatusType | |
+ entity: Response_entity | |
+ stringHeaders: Response_stringHeaders | |
+ mediaType: MediaType | |
+ entityTag: EntityTag | |
+ links: [Link] | |
+ length: Int | |
+ language: Locale | |
+ location: String | |
+} | |
+ | |
+type Response_cookies { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type Response_entity { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type Response_headers { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type Response_metadata { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type Response_stringHeaders { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type showAnalyticsTour { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type StackTraceElement { | |
+ methodName: String | |
+ fileName: String | |
+ lineNumber: Int | |
+ className: String | |
+ nativeMethod: Boolean | |
+} | |
+ | |
+type StatusType { | |
+ family: String | |
+ statusCode: Int | |
+ reasonPhrase: String | |
+} | |
+ | |
+type Throwable { | |
+ cause: Throwable | |
+ stackTrace: [StackTraceElement] | |
+ message: String | |
+ localizedMessage: String | |
+ suppressed: [Throwable] | |
+} | |
+ | |
+type UriBuilder { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type User { | |
+ id: String | |
+ email: String | |
+ group: String | |
+ accessToken: String | |
+ accessTokenResetTs: String | |
+ passwordFailedAttempts: [String] | |
+ passwordResetTs: String | |
+ passwordResetTokenCreatedTs: String | |
+ rememberMeTokenCreatedTs: String | |
+ createdTs: String | |
+ modifiedTs: String | |
+ state: String | |
+ userPreferences: User_userPreferences | |
+} | |
+ | |
+type User_userPreferences { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type validateEntities { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
+type validAudienceName { | |
+ """default field""" | |
+ empty: String | |
+} | |
+ | |
diff --git a/sequoia-service/web/dashboard/js/app/apis/AudienceCreationAPIActionCreator.es6.js b/sequoia-service/web/dashboard/js/app/apis/AudienceCreationAPIActionCreator.es6.js | |
index dc8c7c201..31e82818b 100644 | |
--- a/sequoia-service/web/dashboard/js/app/apis/AudienceCreationAPIActionCreator.es6.js | |
+++ b/sequoia-service/web/dashboard/js/app/apis/AudienceCreationAPIActionCreator.es6.js | |
@@ -1,5 +1,8 @@ | |
import { APIActionCreator } from 'fluxthis'; | |
import { ActionTypes } from 'AudienceCreationConstants'; | |
+import {createApolloFetch} from 'apollo-fetch'; | |
+ | |
+const gimeGraphql = createApolloFetch({uri: "http://localhost:3000/graphql"}); | |
export default new APIActionCreator({ | |
displayName: 'AudienceCreationAPIActionCreator', | |
@@ -28,17 +31,17 @@ export default new APIActionCreator({ | |
pending: ActionTypes.CREATE_AUDIENCE_PENDING, | |
failure: ActionTypes.CREATE_AUDIENCE_FAILURE, | |
createRequest(name, keywords, blacklist, country, route) { | |
- let body = { | |
- entities: keywords.toArray(), | |
- domainsBlack: blacklist.toArray(), | |
- name: name, | |
- countryCode: country | |
- }; | |
- | |
- return { | |
- body: body, | |
- onSuccess: route //allows the store to know where to route | |
- }; | |
+ const body = gimeGraphql({ | |
+ query: 'mutation makeAThing{ createTypeEntity(entityInput: {entities: ' + keywords.toArray() + ', domainsBlack: ' + blacklist.toArray() + ', name: ' + name + ', countryCode: ' + country + '}) { dateFrom, dateTo, entities, domainsBlack, countryCode, name, audienceId, userEmail, score, uniqueUsers, createdTs, modifiedTs, lastAccessedTs, collectionStartTs, collectionStopTs, activation { activationDate, endDate, integrationCode, integrationName, modeled, refreshWeekly, modelTarget, notes, dspId, buyerId, buyerName, partner, pixel, opportunityId, sugarId, activationFailure, extractionComplete}, activated, origin { domainsBlack, userTitle, userDescription, type}, randomSampled, status, insightsReady, uniqueDomains, acaciaVersion, skipAudit, unifiedInsights, categoryId }}' | |
+ }) | |
+ .then(res => { | |
+ console.log("FYI: creation data", res); | |
+ return res.data.createTypeEntity; | |
+ }); | |
+ return { | |
+ body: body, | |
+ onSuccess: route | |
+ } | |
} | |
}, | |
diff --git a/sequoia-service/web/dashboard/js/app/apis/SequoiaAPI.es6.js b/sequoia-service/web/dashboard/js/app/apis/SequoiaAPI.es6.js | |
index 7e2d4fc17..7cb69e7d3 100644 | |
--- a/sequoia-service/web/dashboard/js/app/apis/SequoiaAPI.es6.js | |
+++ b/sequoia-service/web/dashboard/js/app/apis/SequoiaAPI.es6.js | |
@@ -9,15 +9,16 @@ | |
*/ | |
import $ from 'jquery'; | |
import ApiUtil from 'ApiUtil'; | |
+import {createApolloFetch} from 'apollo-fetch'; | |
+ | |
+const gimeGraphql = createApolloFetch({uri: "http://localhost:3000/graphql"}); | |
var SequoiaAPI = { | |
base1Url: '/api/1.0/audiences/', | |
base1MetaUrl: '/api/1.0/metadata/', | |
pivot: '/data/dimension/', | |
entityInfo: '/data/entity-info', | |
- | |
pivotRequests: {}, | |
- | |
getStrategies(callback) { | |
return this.requestSequoiaData(this.base1MetaUrl + 'strategies', callback); | |
}, | |
@@ -40,8 +41,16 @@ var SequoiaAPI = { | |
* @param {Function} callback | |
*/ | |
getAudiences(callback) { | |
- var url = this.base1Url + '?showGroup=true'; | |
- this.requestSequoiaData(url, callback); | |
+ gimeGraphql({ | |
+ query: 'query getAThing{ getAudiences(showGroup:false) { dateFrom, dateTo, state, flags, entities, domainsBlack, countryCode, name, audienceId, userEmail, score, uniqueUsers, createdTs, modifiedTs, lastAccessedTs, collectionStartTs, collectionStopTs, activation { activationDate, endDate, integrationCode, integrationName, modeled, refreshWeekly, modelTarget, notes, dspId, buyerId, buyerName, partner, pixel, opportunityId, sugarId, activationFailure, extractionComplete}, activated, origin { domainsBlack, userTitle, userDescription, type}, randomSampled, status, insightsReady, uniqueDomains, acaciaVersion, skipAudit, unifiedInsights, categoryId }}' | |
+ }) | |
+ .then(res => { | |
+ console.log("FYI: data", res); | |
+ callback(res.data.getAudiences); | |
+ }); | |
+ | |
+ // var url = this.base1Url + '?showGroup=true'; | |
+ // this.requestSequoiaData(url, callback); | |
}, | |
/** | |
@@ -247,8 +256,13 @@ var SequoiaAPI = { | |
* @param {Function} callback | |
*/ | |
deleteAudience(params, callback) { | |
- var url = this.base1Url + params.audienceId; | |
- this.deleteSequoiaData(url, callback); | |
+ gimeGraphql({ | |
+ query: 'mutation deleteAThing{ delete(audienceId: "' + params.audienceId + '")}' | |
+ }) | |
+ .then(res => { | |
+ console.log("FYI: deletion response", res); | |
+ callback(res); | |
+ }); | |
}, | |
deleteSequoiaData(url, callback) { | |
@@ -268,7 +282,7 @@ var SequoiaAPI = { | |
const metaRegexResult = /(\/metadata\/$)/g.exec(url); | |
let shouldStoreRequest = false, requestValue = ''; | |
if (dimensionRegexResult || metaRegexResult) { | |
- requestValue = (dimensionRegexResult) | |
+ requestValue = (dimensionRegexResult) | |
? dimensionRegexResult[0] | |
: metaRegexResult[0]; | |
if (this.pivotRequests[requestValue] && this.pivotRequests[requestValue].readyState !== 4) { | |
@@ -276,8 +290,8 @@ var SequoiaAPI = { | |
this.pivotRequests[requestValue].abort(); | |
} | |
shouldStoreRequest = true; | |
- } | |
- const request = | |
+ } | |
+ const request = | |
$.ajax({ | |
url: url, | |
method: 'GET' | |
diff --git a/sequoia-service/web/package-lock.json b/sequoia-service/web/package-lock.json | |
index fb87f134a..5e7d1bdfb 100644 | |
--- a/sequoia-service/web/package-lock.json | |
+++ b/sequoia-service/web/package-lock.json | |
@@ -207,12 +207,12 @@ | |
"dependencies": { | |
"object-assign": { | |
"version": "4.1.1", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/object-assign/-/object-assign-4.1.1.tgz", | |
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", | |
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" | |
}, | |
"prop-types": { | |
"version": "15.6.1", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/prop-types/-/prop-types-15.6.1.tgz", | |
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", | |
"integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", | |
"requires": { | |
"fbjs": "0.8.16", | |
@@ -326,6 +326,15 @@ | |
"string-hash": "1.1.3" | |
} | |
}, | |
+ "apollo-fetch": { | |
+ "version": "0.7.0", | |
+ "resolved": "https://registry.npmjs.org/apollo-fetch/-/apollo-fetch-0.7.0.tgz", | |
+ "integrity": "sha512-0oHsDW3Zxx+Of1wuqcOXruNj4Kv55WN69tkIjwkCQDEIrgCpgA2scjChFsgflSVMy/1mkTKCY1Mc0TYJhNRzmw==", | |
+ "dev": true, | |
+ "requires": { | |
+ "cross-fetch": "1.1.1" | |
+ } | |
+ }, | |
"append-transform": { | |
"version": "0.4.0", | |
"resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", | |
@@ -1834,7 +1843,7 @@ | |
}, | |
"invariant": { | |
"version": "2.2.4", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/invariant/-/invariant-2.2.4.tgz", | |
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", | |
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", | |
"requires": { | |
"loose-envify": "1.3.1" | |
@@ -2268,7 +2277,7 @@ | |
}, | |
"bowser": { | |
"version": "1.9.3", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/bowser/-/bowser-1.9.3.tgz", | |
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.3.tgz", | |
"integrity": "sha512-/gp96UlcFw5DbV2KQPCqTqi0Mb9gZRyDAHiDsGEH+4B/KOQjeoE5lM1PxlVX8DQDvfEfitmC1rW2Oy8fk/XBDg==" | |
}, | |
"brace-expansion": { | |
@@ -2990,23 +2999,31 @@ | |
"integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=" | |
}, | |
"compressible": { | |
- "version": "2.0.12", | |
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", | |
- "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", | |
+ "version": "2.0.13", | |
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz", | |
+ "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", | |
"dev": true, | |
"requires": { | |
- "mime-db": "1.30.0" | |
+ "mime-db": "1.33.0" | |
+ }, | |
+ "dependencies": { | |
+ "mime-db": { | |
+ "version": "1.33.0", | |
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", | |
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", | |
+ "dev": true | |
+ } | |
} | |
}, | |
"compression": { | |
- "version": "1.7.1", | |
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", | |
- "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", | |
+ "version": "1.7.2", | |
+ "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz", | |
+ "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", | |
"dev": true, | |
"requires": { | |
- "accepts": "1.3.4", | |
+ "accepts": "1.3.5", | |
"bytes": "3.0.0", | |
- "compressible": "2.0.12", | |
+ "compressible": "2.0.13", | |
"debug": "2.6.9", | |
"on-headers": "1.0.1", | |
"safe-buffer": "5.1.1", | |
@@ -3014,15 +3031,30 @@ | |
}, | |
"dependencies": { | |
"accepts": { | |
- "version": "1.3.4", | |
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", | |
- "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", | |
+ "version": "1.3.5", | |
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", | |
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", | |
"dev": true, | |
"requires": { | |
- "mime-types": "2.1.17", | |
+ "mime-types": "2.1.18", | |
"negotiator": "0.6.1" | |
} | |
}, | |
+ "mime-db": { | |
+ "version": "1.33.0", | |
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", | |
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", | |
+ "dev": true | |
+ }, | |
+ "mime-types": { | |
+ "version": "2.1.18", | |
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", | |
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", | |
+ "dev": true, | |
+ "requires": { | |
+ "mime-db": "1.33.0" | |
+ } | |
+ }, | |
"negotiator": { | |
"version": "0.6.1", | |
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", | |
@@ -3218,7 +3250,7 @@ | |
}, | |
"cors": { | |
"version": "2.5.3", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/cors/-/cors-2.5.3.tgz", | |
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.5.3.tgz", | |
"integrity": "sha1-DXCiEew7bMmCTmzcKZwGMO9pw5I=", | |
"requires": { | |
"vary": "1.0.1" | |
@@ -3301,6 +3333,16 @@ | |
} | |
} | |
}, | |
+ "cross-fetch": { | |
+ "version": "1.1.1", | |
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-1.1.1.tgz", | |
+ "integrity": "sha512-+VJE04+UfxxmBfcnmAu/lKor53RUCx/1ilOti4p+JgrnLQ4AZZIRoe2OEd76VaHyWQmQxqKnV+TaqjHC4r0HWw==", | |
+ "dev": true, | |
+ "requires": { | |
+ "node-fetch": "1.7.3", | |
+ "whatwg-fetch": "2.0.3" | |
+ } | |
+ }, | |
"cross-spawn": { | |
"version": "3.0.1", | |
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", | |
@@ -3384,7 +3426,7 @@ | |
}, | |
"css-in-js-utils": { | |
"version": "2.0.1", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", | |
+ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", | |
"integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", | |
"requires": { | |
"hyphenate-style-name": "1.0.2", | |
@@ -4450,9 +4492,9 @@ | |
} | |
}, | |
"eventemitter3": { | |
- "version": "1.2.0", | |
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", | |
- "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", | |
+ "version": "3.1.0", | |
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", | |
+ "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", | |
"dev": true | |
}, | |
"events": { | |
@@ -4467,7 +4509,7 @@ | |
"integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", | |
"dev": true, | |
"requires": { | |
- "original": "1.0.0" | |
+ "original": "1.0.1" | |
} | |
}, | |
"evp_bytestokey": { | |
@@ -6939,9 +6981,9 @@ | |
"dev": true, | |
"requires": { | |
"inherits": "2.0.3", | |
- "obuf": "1.1.1", | |
+ "obuf": "1.1.2", | |
"readable-stream": "2.3.3", | |
- "wbuf": "1.7.2" | |
+ "wbuf": "1.7.3" | |
} | |
}, | |
"html-comment-regex": { | |
@@ -7054,18 +7096,19 @@ | |
} | |
}, | |
"http-parser-js": { | |
- "version": "0.4.10", | |
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", | |
- "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", | |
+ "version": "0.4.12", | |
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.12.tgz", | |
+ "integrity": "sha1-uc+/Sizybw/DSxDKFImid3HjR08=", | |
"dev": true | |
}, | |
"http-proxy": { | |
- "version": "1.16.2", | |
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", | |
- "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", | |
+ "version": "1.17.0", | |
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", | |
+ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", | |
"dev": true, | |
"requires": { | |
- "eventemitter3": "1.2.0", | |
+ "eventemitter3": "3.1.0", | |
+ "follow-redirects": "1.4.1", | |
"requires-port": "1.0.0" | |
} | |
}, | |
@@ -7075,7 +7118,7 @@ | |
"integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", | |
"dev": true, | |
"requires": { | |
- "http-proxy": "1.16.2", | |
+ "http-proxy": "1.17.0", | |
"is-glob": "3.1.0", | |
"lodash": "4.17.5", | |
"micromatch": "2.3.11" | |
@@ -9639,12 +9682,6 @@ | |
"resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", | |
"integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" | |
}, | |
- "lodash.endswith": { | |
- "version": "4.2.1", | |
- "resolved": "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.2.1.tgz", | |
- "integrity": "sha1-/tWawXOO0+I27dcGTsRWRIs3vAk=", | |
- "dev": true | |
- }, | |
"lodash.escape": { | |
"version": "3.2.0", | |
"resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", | |
@@ -9688,12 +9725,6 @@ | |
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", | |
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" | |
}, | |
- "lodash.isfunction": { | |
- "version": "3.0.9", | |
- "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", | |
- "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", | |
- "dev": true | |
- }, | |
"lodash.isnil": { | |
"version": "4.0.0", | |
"resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", | |
@@ -9705,12 +9736,6 @@ | |
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", | |
"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" | |
}, | |
- "lodash.isstring": { | |
- "version": "4.0.1", | |
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", | |
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", | |
- "dev": true | |
- }, | |
"lodash.keys": { | |
"version": "3.1.2", | |
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", | |
@@ -9787,12 +9812,6 @@ | |
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", | |
"dev": true | |
}, | |
- "lodash.startswith": { | |
- "version": "4.2.1", | |
- "resolved": "https://registry.npmjs.org/lodash.startswith/-/lodash.startswith-4.2.1.tgz", | |
- "integrity": "sha1-xZjErc4YiiflMUVzHNxsDnF3YAw=", | |
- "dev": true | |
- }, | |
"lodash.template": { | |
"version": "3.6.2", | |
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", | |
@@ -10442,9 +10461,9 @@ | |
} | |
}, | |
"node-forge": { | |
- "version": "0.7.1", | |
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", | |
- "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=", | |
+ "version": "0.7.5", | |
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", | |
+ "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", | |
"dev": true | |
}, | |
"node-gyp": { | |
@@ -11988,9 +12007,9 @@ | |
} | |
}, | |
"obuf": { | |
- "version": "1.1.1", | |
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", | |
- "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", | |
+ "version": "1.1.2", | |
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", | |
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", | |
"dev": true | |
}, | |
"odc-bootstrap": { | |
@@ -12029,9 +12048,9 @@ | |
"dev": true | |
}, | |
"opn": { | |
- "version": "5.2.0", | |
- "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", | |
- "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", | |
+ "version": "5.3.0", | |
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", | |
+ "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", | |
"dev": true, | |
"requires": { | |
"is-wsl": "1.1.0" | |
@@ -12070,7 +12089,7 @@ | |
}, | |
"options": { | |
"version": "0.0.6", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/options/-/options-0.0.6.tgz", | |
+ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", | |
"integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" | |
}, | |
"orchestrator": { | |
@@ -12091,24 +12110,12 @@ | |
"dev": true | |
}, | |
"original": { | |
- "version": "1.0.0", | |
- "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", | |
- "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", | |
+ "version": "1.0.1", | |
+ "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz", | |
+ "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", | |
"dev": true, | |
"requires": { | |
- "url-parse": "1.0.5" | |
- }, | |
- "dependencies": { | |
- "url-parse": { | |
- "version": "1.0.5", | |
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", | |
- "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", | |
- "dev": true, | |
- "requires": { | |
- "querystringify": "0.0.4", | |
- "requires-port": "1.0.0" | |
- } | |
- } | |
+ "url-parse": "1.4.0" | |
} | |
}, | |
"os-browserify": { | |
@@ -12358,7 +12365,7 @@ | |
}, | |
"peer": { | |
"version": "0.2.8", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/peer/-/peer-0.2.8.tgz", | |
+ "resolved": "https://registry.npmjs.org/peer/-/peer-0.2.8.tgz", | |
"integrity": "sha1-mAFl3tf5Z2sLirMqFErwbgffPVM=", | |
"requires": { | |
"body-parser": "1.18.2", | |
@@ -12370,17 +12377,17 @@ | |
"dependencies": { | |
"commander": { | |
"version": "2.1.0", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/commander/-/commander-2.1.0.tgz", | |
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", | |
"integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=" | |
}, | |
"nan": { | |
"version": "1.0.0", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/nan/-/nan-1.0.0.tgz", | |
+ "resolved": "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz", | |
"integrity": "sha1-riT4hQgY1mL8q1rPfzuVv6oszzg=" | |
}, | |
"ws": { | |
"version": "0.4.32", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/ws/-/ws-0.4.32.tgz", | |
+ "resolved": "https://registry.npmjs.org/ws/-/ws-0.4.32.tgz", | |
"integrity": "sha1-eHphVEFPPJntg8V3IVOyD+sM7DI=", | |
"requires": { | |
"commander": "2.1.0", | |
@@ -13218,9 +13225,9 @@ | |
"dev": true | |
}, | |
"querystringify": { | |
- "version": "0.0.4", | |
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", | |
- "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", | |
+ "version": "2.0.0", | |
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", | |
+ "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==", | |
"dev": true | |
}, | |
"raf": { | |
@@ -13317,7 +13324,7 @@ | |
}, | |
"rc-align": { | |
"version": "2.3.6", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/rc-align/-/rc-align-2.3.6.tgz", | |
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.3.6.tgz", | |
"integrity": "sha512-sB9HpuyMZg5Yy+iIkraPv7/5uaMdUVpfitGFO5aOKKFE/rcEpWunaZdYjvTpPBHUsBrrEn/7qs/klD1YQPIQhA==", | |
"requires": { | |
"babel-runtime": "6.26.0", | |
@@ -13361,7 +13368,7 @@ | |
}, | |
"rc-util": { | |
"version": "4.5.0", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/rc-util/-/rc-util-4.5.0.tgz", | |
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.5.0.tgz", | |
"integrity": "sha512-KYuFBBqxCFI8fb4Wva+X3fmAZpGPo4i9gTNdsVKldHVi3hrnv3VawF89CPndxfsV5QT3J+ic76X5c4erQETi1w==", | |
"requires": { | |
"add-dom-event-listener": "1.0.2", | |
@@ -13574,7 +13581,7 @@ | |
}, | |
"react-portal": { | |
"version": "4.1.5", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/react-portal/-/react-portal-4.1.5.tgz", | |
+ "resolved": "https://registry.npmjs.org/react-portal/-/react-portal-4.1.5.tgz", | |
"integrity": "sha512-jJMy9DoVr4HRWPdO8IP/mDHP1Q972/aKkulVQeIrttOIyRNmCkR2IH7gK3HVjhzxy6M+k9TopSWN5q41wO/o6A==", | |
"requires": { | |
"prop-types": "15.6.0" | |
@@ -13837,7 +13844,7 @@ | |
}, | |
"reactabular-table": { | |
"version": "8.13.0", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/reactabular-table/-/reactabular-table-8.13.0.tgz", | |
+ "resolved": "https://registry.npmjs.org/reactabular-table/-/reactabular-table-8.13.0.tgz", | |
"integrity": "sha512-OTUam01W5vCsY91tLgkCXHW5d7ET1C024vBwVHD8YP5Uj+bw+8oPPvusogdmvGaPFwOI/rI3P3b7HkvDZSNhnw==", | |
"requires": { | |
"classnames": "2.2.5" | |
@@ -14509,12 +14516,12 @@ | |
"dev": true | |
}, | |
"selfsigned": { | |
- "version": "1.10.2", | |
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz", | |
- "integrity": "sha1-tESVgNmZKbZbEKSDiTAaZZIIh1g=", | |
+ "version": "1.10.3", | |
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", | |
+ "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", | |
"dev": true, | |
"requires": { | |
- "node-forge": "0.7.1" | |
+ "node-forge": "0.7.5" | |
} | |
}, | |
"semver": { | |
@@ -14566,7 +14573,7 @@ | |
"integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", | |
"dev": true, | |
"requires": { | |
- "accepts": "1.3.4", | |
+ "accepts": "1.3.5", | |
"batch": "0.6.1", | |
"debug": "2.6.9", | |
"escape-html": "1.0.3", | |
@@ -14576,13 +14583,24 @@ | |
}, | |
"dependencies": { | |
"accepts": { | |
- "version": "1.3.4", | |
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", | |
- "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", | |
+ "version": "1.3.5", | |
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", | |
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", | |
"dev": true, | |
"requires": { | |
- "mime-types": "2.1.17", | |
+ "mime-types": "2.1.18", | |
"negotiator": "0.6.1" | |
+ }, | |
+ "dependencies": { | |
+ "mime-types": { | |
+ "version": "2.1.18", | |
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", | |
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", | |
+ "dev": true, | |
+ "requires": { | |
+ "mime-db": "1.33.0" | |
+ } | |
+ } | |
} | |
}, | |
"escape-html": { | |
@@ -14591,6 +14609,12 @@ | |
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", | |
"dev": true | |
}, | |
+ "mime-db": { | |
+ "version": "1.33.0", | |
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", | |
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", | |
+ "dev": true | |
+ }, | |
"negotiator": { | |
"version": "0.6.1", | |
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", | |
@@ -14952,7 +14976,7 @@ | |
"faye-websocket": "0.11.1", | |
"inherits": "2.0.3", | |
"json3": "3.3.2", | |
- "url-parse": "1.2.0" | |
+ "url-parse": "1.4.0" | |
}, | |
"dependencies": { | |
"faye-websocket": { | |
@@ -15063,22 +15087,22 @@ | |
"http-deceiver": "1.2.7", | |
"safe-buffer": "5.1.1", | |
"select-hose": "2.0.0", | |
- "spdy-transport": "2.0.20" | |
+ "spdy-transport": "2.1.0" | |
} | |
}, | |
"spdy-transport": { | |
- "version": "2.0.20", | |
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", | |
- "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", | |
+ "version": "2.1.0", | |
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", | |
+ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", | |
"dev": true, | |
"requires": { | |
"debug": "2.6.9", | |
"detect-node": "2.0.3", | |
"hpack.js": "2.1.6", | |
- "obuf": "1.1.1", | |
+ "obuf": "1.1.2", | |
"readable-stream": "2.3.3", | |
"safe-buffer": "5.1.1", | |
- "wbuf": "1.7.2" | |
+ "wbuf": "1.7.3" | |
} | |
}, | |
"split-string": { | |
@@ -15414,7 +15438,7 @@ | |
"dependencies": { | |
"buffer": { | |
"version": "5.1.0", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/buffer/-/buffer-5.1.0.tgz", | |
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", | |
"integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", | |
"requires": { | |
"base64-js": "1.2.1", | |
@@ -15438,7 +15462,7 @@ | |
}, | |
"stylis": { | |
"version": "3.5.0", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/stylis/-/stylis-3.5.0.tgz", | |
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.0.tgz", | |
"integrity": "sha512-pP7yXN6dwMzAR29Q0mBrabPCe0/mNO1MSr93bhay+hcZondvMMTpeGyd8nbhYJdyperNT2DRxONQuUGcJr5iPw==" | |
}, | |
"subarg": { | |
@@ -15490,7 +15514,7 @@ | |
}, | |
"table-resolver": { | |
"version": "3.3.0", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/table-resolver/-/table-resolver-3.3.0.tgz", | |
+ "resolved": "https://registry.npmjs.org/table-resolver/-/table-resolver-3.3.0.tgz", | |
"integrity": "sha512-BkdhtKYhWtXK54GeACs0khqlMvJ53puOw01tzIPsPUr3PP2pFeq9AelPUb7Iy7NeHMyIUI6vEfnngoWgEG+rLQ==" | |
}, | |
"tapable": { | |
@@ -15609,7 +15633,7 @@ | |
}, | |
"tinycolor": { | |
"version": "0.0.1", | |
- "resolved": "https://buildspring.clearspring.local/nexus/content/groups/npm-standard/tinycolor/-/tinycolor-0.0.1.tgz", | |
+ "resolved": "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz", | |
"integrity": "sha1-MgtaUtg6u1l42Bo+iH1K77FaYWQ=" | |
}, | |
"tmpl": { | |
@@ -16783,16 +16807,10 @@ | |
} | |
}, | |
"upath": { | |
- "version": "1.0.2", | |
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.2.tgz", | |
- "integrity": "sha512-fCmij7T5LnwUme3dbnVSejvOHHlARjB3ikJFwgZfz386pHmf/gueuTLRFU94FZEaeCLlbQrweiUU700gG41tUw==", | |
- "dev": true, | |
- "requires": { | |
- "lodash.endswith": "4.2.1", | |
- "lodash.isfunction": "3.0.9", | |
- "lodash.isstring": "4.0.1", | |
- "lodash.startswith": "4.2.1" | |
- } | |
+ "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 | |
}, | |
"upper-case": { | |
"version": "1.1.3", | |
@@ -16825,21 +16843,13 @@ | |
} | |
}, | |
"url-parse": { | |
- "version": "1.2.0", | |
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", | |
- "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", | |
+ "version": "1.4.0", | |
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.0.tgz", | |
+ "integrity": "sha512-ERuGxDiQ6Xw/agN4tuoCRbmwRuZP0cJ1lJxJubXr5Q/5cDa78+Dc4wfvtxzhzhkm5VvmW6Mf8EVj9SPGN4l8Lg==", | |
"dev": true, | |
"requires": { | |
- "querystringify": "1.0.0", | |
+ "querystringify": "2.0.0", | |
"requires-port": "1.0.0" | |
- }, | |
- "dependencies": { | |
- "querystringify": { | |
- "version": "1.0.0", | |
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", | |
- "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", | |
- "dev": true | |
- } | |
} | |
}, | |
"use": { | |
@@ -17185,9 +17195,9 @@ | |
} | |
}, | |
"wbuf": { | |
- "version": "1.7.2", | |
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", | |
- "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", | |
+ "version": "1.7.3", | |
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", | |
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", | |
"dev": true, | |
"requires": { | |
"minimalistic-assert": "1.0.0" | |
@@ -17470,20 +17480,20 @@ | |
} | |
}, | |
"webpack-dev-server": { | |
- "version": "2.11.1", | |
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.1.tgz", | |
- "integrity": "sha512-ombhu5KsO/85sVshIDTyQ5HF3xjZR3N0sf5Ao6h3vFwpNyzInEzA1GV3QPVjTMLTNckp8PjfG1PFGznzBwS5lg==", | |
+ "version": "2.11.2", | |
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz", | |
+ "integrity": "sha512-zrPoX97bx47vZiAXfDrkw8pe9QjJ+lunQl3dypojyWwWr1M5I2h0VSrMPfTjopHQPRNn+NqfjcMmhoLcUJe2gA==", | |
"dev": true, | |
"requires": { | |
"ansi-html": "0.0.7", | |
"array-includes": "3.0.3", | |
"bonjour": "3.5.0", | |
- "chokidar": "2.0.2", | |
- "compression": "1.7.1", | |
+ "chokidar": "2.0.3", | |
+ "compression": "1.7.2", | |
"connect-history-api-fallback": "1.5.0", | |
"debug": "3.1.0", | |
"del": "3.0.0", | |
- "express": "4.16.2", | |
+ "express": "4.16.3", | |
"html-entities": "1.2.1", | |
"http-proxy-middleware": "0.17.4", | |
"import-local": "1.0.0", | |
@@ -17491,26 +17501,26 @@ | |
"ip": "1.1.5", | |
"killable": "1.0.0", | |
"loglevel": "1.6.1", | |
- "opn": "5.2.0", | |
+ "opn": "5.3.0", | |
"portfinder": "1.0.13", | |
- "selfsigned": "1.10.2", | |
+ "selfsigned": "1.10.3", | |
"serve-index": "1.9.1", | |
"sockjs": "0.3.19", | |
"sockjs-client": "1.1.4", | |
"spdy": "3.4.7", | |
"strip-ansi": "3.0.1", | |
- "supports-color": "5.2.0", | |
+ "supports-color": "5.4.0", | |
"webpack-dev-middleware": "1.12.2", | |
"yargs": "6.6.0" | |
}, | |
"dependencies": { | |
"accepts": { | |
- "version": "1.3.4", | |
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", | |
- "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", | |
+ "version": "1.3.5", | |
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", | |
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", | |
"dev": true, | |
"requires": { | |
- "mime-types": "2.1.17", | |
+ "mime-types": "2.1.18", | |
"negotiator": "0.6.1" | |
} | |
}, | |
@@ -17520,7 +17530,7 @@ | |
"integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", | |
"dev": true, | |
"requires": { | |
- "micromatch": "3.1.5", | |
+ "micromatch": "3.1.10", | |
"normalize-path": "2.1.1" | |
} | |
}, | |
@@ -17543,14 +17553,13 @@ | |
"dev": true | |
}, | |
"braces": { | |
- "version": "2.3.0", | |
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", | |
- "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", | |
+ "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", | |
- "define-property": "1.0.0", | |
"extend-shallow": "2.0.1", | |
"fill-range": "4.0.0", | |
"isobject": "3.0.1", | |
@@ -17558,7 +17567,18 @@ | |
"snapdragon": "0.8.1", | |
"snapdragon-node": "2.1.1", | |
"split-string": "3.1.0", | |
- "to-regex": "3.0.1" | |
+ "to-regex": "3.0.2" | |
+ }, | |
+ "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.1" | |
+ } | |
+ } | |
} | |
}, | |
"camelcase": { | |
@@ -17568,14 +17588,14 @@ | |
"dev": true | |
}, | |
"chokidar": { | |
- "version": "2.0.2", | |
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", | |
- "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", | |
+ "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.1", | |
- "braces": "2.3.0", | |
+ "braces": "2.3.2", | |
"fsevents": "1.1.3", | |
"glob-parent": "3.1.0", | |
"inherits": "2.0.3", | |
@@ -17584,7 +17604,7 @@ | |
"normalize-path": "2.1.1", | |
"path-is-absolute": "1.0.0", | |
"readdirp": "2.1.0", | |
- "upath": "1.0.2" | |
+ "upath": "1.1.0" | |
} | |
}, | |
"cliui": { | |
@@ -17619,6 +17639,16 @@ | |
"ms": "2.0.0" | |
} | |
}, | |
+ "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" | |
+ } | |
+ }, | |
"del": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", | |
@@ -17675,7 +17705,7 @@ | |
"posix-character-classes": "0.1.1", | |
"regex-not": "1.0.0", | |
"snapdragon": "0.8.1", | |
- "to-regex": "3.0.1" | |
+ "to-regex": "3.0.2" | |
}, | |
"dependencies": { | |
"debug": { | |
@@ -17695,16 +17725,42 @@ | |
"requires": { | |
"is-descriptor": "0.1.6" | |
} | |
+ }, | |
+ "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.1" | |
+ } | |
+ }, | |
+ "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.1.0" | |
+ } | |
+ }, | |
+ "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 | |
} | |
} | |
}, | |
"express": { | |
- "version": "4.16.2", | |
- "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", | |
- "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", | |
+ "version": "4.16.3", | |
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", | |
+ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", | |
"dev": true, | |
"requires": { | |
- "accepts": "1.3.4", | |
+ "accepts": "1.3.5", | |
"array-flatten": "1.1.1", | |
"body-parser": "1.18.2", | |
"content-disposition": "0.5.2", | |
@@ -17716,22 +17772,22 @@ | |
"encodeurl": "1.0.2", | |
"escape-html": "1.0.3", | |
"etag": "1.8.1", | |
- "finalhandler": "1.1.0", | |
+ "finalhandler": "1.1.1", | |
"fresh": "0.5.2", | |
"merge-descriptors": "1.0.1", | |
"methods": "1.1.2", | |
"on-finished": "2.3.0", | |
"parseurl": "1.3.2", | |
"path-to-regexp": "0.1.7", | |
- "proxy-addr": "2.0.2", | |
+ "proxy-addr": "2.0.3", | |
"qs": "6.5.1", | |
"range-parser": "1.2.0", | |
"safe-buffer": "5.1.1", | |
- "send": "0.16.1", | |
- "serve-static": "1.13.1", | |
+ "send": "0.16.2", | |
+ "serve-static": "1.13.2", | |
"setprototypeof": "1.1.0", | |
- "statuses": "1.3.1", | |
- "type-is": "1.6.15", | |
+ "statuses": "1.4.0", | |
+ "type-is": "1.6.16", | |
"utils-merge": "1.0.1", | |
"vary": "1.1.2" | |
}, | |
@@ -17747,6 +17803,27 @@ | |
} | |
} | |
}, | |
+ "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" | |
+ } | |
+ } | |
+ } | |
+ }, | |
"extglob": { | |
"version": "2.0.4", | |
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", | |
@@ -17760,7 +17837,27 @@ | |
"fragment-cache": "0.2.1", | |
"regex-not": "1.0.0", | |
"snapdragon": "0.8.1", | |
- "to-regex": "3.0.1" | |
+ "to-regex": "3.0.2" | |
+ }, | |
+ "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.2" | |
+ } | |
+ }, | |
+ "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.1" | |
+ } | |
+ } | |
} | |
}, | |
"fill-range": { | |
@@ -17773,12 +17870,23 @@ | |
"is-number": "3.0.0", | |
"repeat-string": "1.6.1", | |
"to-regex-range": "2.1.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.1" | |
+ } | |
+ } | |
} | |
}, | |
"finalhandler": { | |
- "version": "1.1.0", | |
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", | |
- "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", | |
+ "version": "1.1.1", | |
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", | |
+ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", | |
"dev": true, | |
"requires": { | |
"debug": "2.6.9", | |
@@ -17786,7 +17894,7 @@ | |
"escape-html": "1.0.3", | |
"on-finished": "2.3.0", | |
"parseurl": "1.3.2", | |
- "statuses": "1.3.1", | |
+ "statuses": "1.4.0", | |
"unpipe": "1.0.0" | |
}, | |
"dependencies": { | |
@@ -17856,9 +17964,9 @@ | |
"dev": true | |
}, | |
"ipaddr.js": { | |
- "version": "1.5.2", | |
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", | |
- "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", | |
+ "version": "1.6.0", | |
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", | |
+ "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=", | |
"dev": true | |
}, | |
"is-accessor-descriptor": { | |
@@ -17901,25 +18009,6 @@ | |
} | |
} | |
}, | |
- "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.1.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-extglob": { | |
"version": "2.1.1", | |
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", | |
@@ -17955,6 +18044,29 @@ | |
} | |
} | |
}, | |
+ "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-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 | |
+ }, | |
"kind-of": { | |
"version": "6.0.2", | |
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", | |
@@ -17968,24 +18080,24 @@ | |
"dev": true | |
}, | |
"micromatch": { | |
- "version": "3.1.5", | |
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", | |
- "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", | |
+ "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.0", | |
- "define-property": "1.0.0", | |
- "extend-shallow": "2.0.1", | |
+ "braces": "2.3.2", | |
+ "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.7", | |
+ "nanomatch": "1.2.9", | |
"object.pick": "1.3.0", | |
"regex-not": "1.0.0", | |
"snapdragon": "0.8.1", | |
- "to-regex": "3.0.1" | |
+ "to-regex": "3.0.2" | |
} | |
}, | |
"mime": { | |
@@ -17994,6 +18106,41 @@ | |
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", | |
"dev": true | |
}, | |
+ "mime-db": { | |
+ "version": "1.33.0", | |
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", | |
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", | |
+ "dev": true | |
+ }, | |
+ "mime-types": { | |
+ "version": "2.1.18", | |
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", | |
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", | |
+ "dev": true, | |
+ "requires": { | |
+ "mime-db": "1.33.0" | |
+ } | |
+ }, | |
+ "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.2" | |
+ } | |
+ }, | |
"negotiator": { | |
"version": "0.6.1", | |
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", | |
@@ -18028,13 +18175,13 @@ | |
"dev": true | |
}, | |
"proxy-addr": { | |
- "version": "2.0.2", | |
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", | |
- "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", | |
+ "version": "2.0.3", | |
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", | |
+ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", | |
"dev": true, | |
"requires": { | |
"forwarded": "0.1.2", | |
- "ipaddr.js": "1.5.2" | |
+ "ipaddr.js": "1.6.0" | |
} | |
}, | |
"qs": { | |
@@ -18050,9 +18197,9 @@ | |
"dev": true | |
}, | |
"send": { | |
- "version": "0.16.1", | |
- "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", | |
- "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", | |
+ "version": "0.16.2", | |
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", | |
+ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", | |
"dev": true, | |
"requires": { | |
"debug": "2.6.9", | |
@@ -18067,7 +18214,7 @@ | |
"ms": "2.0.0", | |
"on-finished": "2.3.0", | |
"range-parser": "1.2.0", | |
- "statuses": "1.3.1" | |
+ "statuses": "1.4.0" | |
}, | |
"dependencies": { | |
"debug": { | |
@@ -18082,26 +18229,66 @@ | |
} | |
}, | |
"serve-static": { | |
- "version": "1.13.1", | |
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", | |
- "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", | |
+ "version": "1.13.2", | |
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", | |
+ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", | |
"dev": true, | |
"requires": { | |
"encodeurl": "1.0.2", | |
"escape-html": "1.0.3", | |
"parseurl": "1.3.2", | |
- "send": "0.16.1" | |
+ "send": "0.16.2" | |
} | |
}, | |
+ "statuses": { | |
+ "version": "1.4.0", | |
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", | |
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", | |
+ "dev": true | |
+ }, | |
"supports-color": { | |
- "version": "5.2.0", | |
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", | |
- "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", | |
+ "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" | |
} | |
}, | |
+ "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" | |
+ }, | |
+ "dependencies": { | |
+ "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" | |
+ } | |
+ } | |
+ } | |
+ }, | |
+ "type-is": { | |
+ "version": "1.6.16", | |
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", | |
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", | |
+ "dev": true, | |
+ "requires": { | |
+ "media-typer": "0.3.0", | |
+ "mime-types": "2.1.18" | |
+ } | |
+ }, | |
"utils-merge": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | |
@@ -18170,7 +18357,7 @@ | |
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", | |
"dev": true, | |
"requires": { | |
- "http-parser-js": "0.4.10", | |
+ "http-parser-js": "0.4.12", | |
"websocket-extensions": "0.1.3" | |
} | |
}, | |
diff --git a/sequoia-service/web/package.json b/sequoia-service/web/package.json | |
index b326d09a2..d52c7debd 100644 | |
--- a/sequoia-service/web/package.json | |
+++ b/sequoia-service/web/package.json | |
@@ -75,6 +75,7 @@ | |
"@types/jest": "^22.2.3", | |
"@types/lodash": "^4.14.108", | |
"@types/react": "^16.3.10", | |
+ "apollo-fetch": "0.7.0", | |
"babel-core": "6.17.0", | |
"babel-jest": "22.4.3", | |
"babel-loader": "6.2.5", | |
@@ -126,6 +127,6 @@ | |
"typescript": "^2.7.2", | |
"uglify-save-license": "0.4.1", | |
"webpack": "3.10.0", | |
- "webpack-dev-server": "2.11.1" | |
+ "webpack-dev-server": "^2.11.2" | |
} | |
} | |
diff --git a/sequoia-service/web/webpack.config.js b/sequoia-service/web/webpack.config.js | |
index f5d97e52e..7058b0b88 100644 | |
--- a/sequoia-service/web/webpack.config.js | |
+++ b/sequoia-service/web/webpack.config.js | |
@@ -32,7 +32,7 @@ var env = { | |
ignored: /node_modules/ | |
}, | |
devServer: { | |
- ignoreUnaccepted: true, | |
+ //ignoreUnaccepted: true, | |
proxy: { | |
"/api": "http://localhost:8022", | |
"/internal": "http://localhost:8022", |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment