Commit graph

985 commits

Author SHA1 Message Date
Jesse Rosenberger
5497fb2775
Merge branch 'abernix/prepare-2-2-6' 2018-12-04 13:37:04 +02:00
Jesse Rosenberger
1e5cdc6397
Publish
- apollo-server-azure-functions@2.2.6
 - apollo-server-cloud-functions@2.2.6
 - apollo-server-cloudflare@2.2.6
 - apollo-server-core@2.2.6
 - apollo-server-express@2.2.6
 - apollo-server-hapi@2.2.6
 - apollo-server-integration-testsuite@2.2.6
 - apollo-server-koa@2.2.6
 - apollo-server-lambda@2.2.6
 - apollo-server-micro@2.2.6
 - apollo-server-plugin-base@0.1.6
 - apollo-server-testing@2.2.6
 - apollo-server@2.2.6
 - graphql-extensions@0.3.6
2018-12-04 13:35:23 +02:00
Evans Hauser
38bf09b316 (engine-reporting) Include encodedTraces only once. (#2040)
* AER: Remove encodedTraces to prevent duplicates

When there are multiple instances of apollo-engine-reporting, the
`Trace.encode` method gets wrapped each time to add the
`encodedTraces`. In order to prevent them from being added to the
protobuf multiple times, we remove the encodedTraces after adding them
once

* Add changelog

* Move incremental Trace encoding to a-e-r-protobuf

To enable incrmental compilation of traces, we add a patch to the
Trace.encode method generated by protobujs to accept and store encoded
traces. Occassionally with multiple instances of apollo-engine-reporting
that share the same version of the protobuf, the wrapper method gets
applied more than once. In order to ensure that the wrapper only gets
applied once, we patch the Trace.encode method inside of
apollo-engine-protobuf.

tsc hangs on the processing the generated protobuf.js files, so the
tsconfig.json ignores the generated protobuf file. In order for the
typescript index.ts file to compile the generated protobuf.js file is
output to the src folder. To ensure the protobuf files are available to
the production build, `npm run compile` copies the protobuf file
manually from src to dist.

* Reexport protobuf import after modification

`export * from './protobuf'` exports the unmodified reference

* Update comment on Trace.encode to point at a-e-r-p

The override now occurs inside of apollo-engine-reporting-protobuf due
to the case of having multiple reporting challenges, so we need to
update the comments to help indicate that

* Remove typescript build step

In order to simplify the generation of this library, we move the change
the index.ts file into index.js and remove the typescript build step.
Since the type safety is created by the protobufjs generation, this
seems acceptable. In general this portion of the code should remain
relatively stable, so generating and copying the code with `prepare`
remains reasonable.
2018-12-04 12:06:08 +02:00
Jamie Hodge
bcabbb7785 set content type to text/html for playground (#2026)
BUGFIX: the playground page is currently being served without a content type

<!--
  Thanks for filing a pull request on GraphQL Server!

  Please look at the following checklist to ensure that your PR
  can be accepted quickly:
-->

TODO:

* [x] Update CHANGELOG.md with your change (include reference to issue & this PR)
* [ ] Make sure all of the significant new logic is covered by tests
* [x] Rebase your changes on master so that they can be merged easily
* [x] Make sure all tests and linter rules pass
2018-11-30 18:58:42 +02:00
Henrik Kok Jørgensen
4610295293 Remove invalid HTTP method from apollo-server-micro example (#2045)
* Remove invalid HTTP method from example

* Update CHANGELOG.md
2018-11-29 17:23:19 +02:00
Jesse Rosenberger
85e9094f6c
Publish
- apollo-server-azure-functions@2.2.5
 - apollo-server-cloud-functions@2.2.5
 - apollo-server-cloudflare@2.2.5
 - apollo-server-core@2.2.5
 - apollo-server-express@2.2.5
 - apollo-server-hapi@2.2.5
 - apollo-server-integration-testsuite@2.2.5
 - apollo-server-koa@2.2.5
 - apollo-server-lambda@2.2.5
 - apollo-server-micro@2.2.5
 - apollo-server-plugin-base@0.1.5
 - apollo-server-testing@2.2.5
 - apollo-server@2.2.5
 - graphql-extensions@0.3.5
2018-11-29 13:45:34 +02:00
Jesse Rosenberger
3fb539cdbe
Update graphql-playground-react CDN version to v1.7.10.
Follow-up on the update to `graphql-playground-html` in previous release by
also bumping the minor version of the `graphql-playground-react` dependency
to `1.7.10` — which is the version requested from the from the CDN bundle by
`graphql-playground-html`.

Ref: https://github.com/apollographql/apollo-server/pull/2037
2018-11-29 13:43:22 +02:00
Jesse Rosenberger
ee44bdb716
Publish
- apollo-server-azure-functions@2.2.4
 - apollo-server-cloud-functions@2.2.4
 - apollo-server-cloudflare@2.2.4
 - apollo-server-core@2.2.4
 - apollo-server-express@2.2.4
 - apollo-server-hapi@2.2.4
 - apollo-server-integration-testsuite@2.2.4
 - apollo-server-koa@2.2.4
 - apollo-server-lambda@2.2.4
 - apollo-server-micro@2.2.4
 - apollo-server-plugin-base@0.1.4
 - apollo-server-testing@2.2.4
 - apollo-server@2.2.4
 - graphql-extensions@0.3.4
2018-11-28 15:20:49 +02:00
Jesse Rosenberger
fedc96d239
Update @apollographql/graphql-playground-html to latest version. (#2037)
With any luck, we will no longer necessitate our fork which removed the
`graphql-config` dependency thanks to the work done in:

https://github.com/prisma/graphql-playground/pull/874

🎉

Most notably though, this fixes a documentation scrolling problem with
Safari.
2018-11-28 15:15:53 +02:00
Jesse Rosenberger
1f3801c949
Publish
- apollo-cache-control@0.3.3
 - apollo-datasource-rest@0.2.1
 - apollo-datasource@0.2.1
 - apollo-engine-reporting@0.1.3
 - apollo-server-azure-functions@2.2.3
 - apollo-server-cache-memcached@0.2.1
 - apollo-server-cache-redis@0.2.1
 - apollo-server-caching@0.2.1
 - apollo-server-cloud-functions@2.2.3
 - apollo-server-cloudflare@2.2.3
 - apollo-server-core@2.2.3
 - apollo-server-express@2.2.3
 - apollo-server-hapi@2.2.3
 - apollo-server-integration-testsuite@2.2.3
 - apollo-server-koa@2.2.3
 - apollo-server-lambda@2.2.3
 - apollo-server-micro@2.2.3
 - apollo-server-plugin-base@0.1.3
 - apollo-server-testing@2.2.3
 - apollo-server@2.2.3
 - apollo-tracing@0.3.3
 - graphql-extensions@0.3.3
2018-11-26 20:43:29 +02:00
renovate[bot]
6f6f1d020f chore(deps): update dependency lru-cache to v5 (#2004)
This PR contains the following updates:

| Package | Type | Update | Change | References |
|---|---|---|---|---|
| lru-cache | dependencies | major | `^4.1.3` -> `^5.0.0` | [source](https://renovatebot.com/gh/isaacs/node-lru-cache) |

---

### Release Notes

<details>
<summary>isaacs/node-lru-cache</summary>

### [`v5.1.1`](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.1.0...v5.1.1)

[Compare Source](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.1.0...v5.1.1)

### [`v5.1.0`](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.0.1...v5.1.0)

[Compare Source](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.0.1...v5.1.0)

### [`v5.0.1`](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.0.0...v5.0.1)

[Compare Source](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.0.0...v5.0.1)

### [`v5.0.0`](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v4.1.4...v5.0.0)

[Compare Source](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v4.1.4...v5.0.0)

</details>

---

### Renovate configuration

📅 **Schedule**: "after 6pm every weekday,before 5am every weekday" in timezone America/Los_Angeles.

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻️ **Rebasing**: Whenever PR is stale, or if you modify the PR title to begin with "`rebase!`".

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

This PR has been generated by [Renovate Bot](https://renovatebot.com/gh/marketplace/renovate). View repository job log [here](https://renovatebot.com/dashboard#apollographql/apollo-server).
2018-11-22 15:34:59 +02:00
Jesse Rosenberger
93489b7941
fix: Mandate assertion count in test which could otherwise false-positive. (#1983)
This was something I just happened to spot, though further investigation is
likely necessary to determine if other similar cases can be discovered.

This fixes this test to `expect` the number of additional `expectations we
have expressed for it: 2.

Testing errors in `catch`es of `Promise` chains necessitates the use of
`expect.assertions(n)` where `n` is the number of assertions declared in
that particular test.

Without this `expect`ation clearly defined, a resolved `Promise` will not
result in the assertion being tested.  For example, if the `query` passed to
this test was a query against a type in the schema (i.e. `query: 'foo'` was
replaced with `query: { query: '{ testString }' }`) the desired error would
not be produced, but the test would still pass.  I'm not saying that's
likely, but there's certainly the possibility that (given fault code)
something else in the plumbing could cause that Promise to resolve.

Ref: https://jestjs.io/docs/en/tutorial-async#error-handling
2018-11-22 13:02:51 +02:00
Jesse Rosenberger
87ff25b2df
Instantiate lru-cache class using new in InMemoryLRUCache. (#2007)
This is mandated by `lru-cache` v5 and surfaced the CircleCI failures on #2004:

https://circleci.com/gh/apollographql/apollo-server/22537

Luckily, this is a private implementation detail of Apollo Server's
`InMemoryLRUCache` so no additional changes should be necessary and we should
be able to update to `lru-cache` 5.0.0 in a semver minor respectful way.
2018-11-22 12:58:19 +02:00
Jesse Rosenberger
034383f491
Consistently use parent, rather than root, as first resolver argument.
In an effort to maintain consistency and semantically correct meaning,
this changes (only in documentation and internal Apollo Server tests) the
name of the first argument in resolver signatures to use `parent` rather
than `root`.

While `root` certainly makes sense when the resolver is belonging to the
root `Query` or `Mutation` type, once nested field resolvers begin getting
called, the more semantically correct term would seem to be `parent`.

Since `parent` still makes sense at the root level, and since resolvers
frequently get copied and pasted into more deeply-nested positions, putting
this pattern in place for apps which are just beginning might just help
someone more clearly understand the relationship in the future — without
incorrectly thinking that a nested resolver is accessing the root of the
graph, rather than the parent.
2018-11-16 20:37:26 +02:00
Monday Chen
10dfda2092 Fix connect integration sample code (#1973) 2018-11-16 13:35:42 +02:00
limerick
94f10eb68f fix: Avoid GraphQL Playground default assignment. (#1578)
Due to a number of other assignments within `createPlaygroundOptions`, the default is still maintained and the `playground` configuration parameter should be entirely optional.
2018-11-16 12:22:57 +02:00
Adam Zionts
81d9f4719e aer/Default to headers for client identity in
lolwut

Revert "lolwut"

This reverts commit 03a2e101f6c25b46f0bdaf0e7578ab03a5ed7dad.
2018-11-13 17:36:38 -08:00
Jesse Rosenberger
47676e0cd9
Publish
- apollo-cache-control@0.3.2
 - apollo-engine-reporting@0.1.2
 - apollo-server-azure-functions@2.2.2
 - apollo-server-cloud-functions@2.2.2
 - apollo-server-cloudflare@2.2.2
 - apollo-server-core@2.2.2
 - apollo-server-express@2.2.2
 - apollo-server-hapi@2.2.2
 - apollo-server-integration-testsuite@2.2.2
 - apollo-server-koa@2.2.2
 - apollo-server-lambda@2.2.2
 - apollo-server-micro@2.2.2
 - apollo-server-plugin-base@0.1.2
 - apollo-server-testing@2.2.2
 - apollo-server@2.2.2
 - apollo-tracing@0.3.2
 - graphql-extensions@0.3.2
2018-11-13 15:58:57 +02:00
Jesse Rosenberger
629ab68172
Fix TypeScript typing and improve message in async introspection query check.
Ref: #1955
2018-11-13 15:55:03 +02:00
Jesse Rosenberger
e90e955f80
Follow up on #1955's incorrect then-able check.
I foolishly used `O.p.hasOwnProperty` here which, while safe for checking
properties, is actually not correct since this `then` property is inherited
from `Promise.prototype.then`.

Checking if `then` is a function should be safe _enough_.

Follows-up on: #1955
2018-11-13 12:42:01 +02:00
Jesse Rosenberger
c82cdec9b5
Throw an error on asynchronous introspection query behavior. (#1955)
We expect introspection queries to behave in an synchronous manner since
they do not have any resolvers which return Promises.  This expectation
seems to also be had by `graphql-js` which utilizes `graphqlSync`, rather
than `graphql` for execution of introspection queries.  In fact, this may be
one of the entire reasons that `graphqlSync` exists: to fulfill a contract
for synchronous execution of server introspection.  The introspection tests
within `graphql-js` seem to support this theory[[0]].

Utilities which wrap GraphQL resolvers should take care to maintain the
execution dynamics of what they are wrapping, or they should avoid wrapping
introspection types entirely by checking the type with the
`isIntrospectionType` predicate function from `graphql/type`[[1]].

[0]: 787422956c/src/type/__tests__/introspection-test.js
[1]: https://github.com/graphql/graphql-js/blob/74d1e941/src/type/introspection.js#L484.
Closes: https://github.com/apollographql/apollo-server/issues/1935
2018-11-13 12:11:56 +02:00
Martijn Walraven
26d6c73950 Update @apollographql/apollo-tools dependency to 0.2.6
Fixes #1951, apollographql/apollo-tooling#687.
2018-11-13 10:02:09 +01:00
Evan Lucas
59af364aa3 ApolloServer: fix uploads error message (#1820)
There was a typo in the error message.
2018-11-12 06:04:11 -08:00
renovate[bot]
3ed9e4ced7 chore(deps): update dependency prettier to v1.15.2 (#1949)
* chore(deps): update dependency prettier to v1.15.2

* (lint) Fix desires of new `prettier` patch version, v1.15.2.

Ref: https://github.com/apollographql/apollo-server/pull/1949
2018-11-12 06:01:52 -08:00
Martijn Walraven
20eb2e9e03 Publish
- apollo-cache-control@0.3.1
 - apollo-engine-reporting@0.1.1
 - apollo-server-azure-functions@2.2.1
 - apollo-server-cloud-functions@2.2.1
 - apollo-server-cloudflare@2.2.1
 - apollo-server-core@2.2.1
 - apollo-server-express@2.2.1
 - apollo-server-hapi@2.2.1
 - apollo-server-integration-testsuite@2.2.1
 - apollo-server-koa@2.2.1
 - apollo-server-lambda@2.2.1
 - apollo-server-micro@2.2.1
 - apollo-server-plugin-base@0.1.1
 - apollo-server-testing@2.2.1
 - apollo-server@2.2.1
 - apollo-tracing@0.3.1
 - graphql-extensions@0.3.1
2018-11-12 14:26:26 +01:00
Jesse Rosenberger
b61dee310b
Add correct project references for apollo-server-cloud-functions. (#1948)
* Add correct project references for `apollo-server-cloud-functions`.

The `apollo-server-cloud-functions` has been been mis-referenced (or
referenced inconsistently) since its original inception in #1446 when its
package directory was `apollo-server-cloud-function` (singular!) and the
`package.json` referenced the plural form (`apollo-server-cloud-functions`):

https://github.com/apollographql/apollo-server/commit/724d9ff0#diff-e1d725fd66f7e9ef5251abf0437a09ca

These references have been mostly fixed in the READMEs and supporting
documentation, but the underlying monorepo directory structure has still not
been fixed, which I'm sure contributed to this module being overlooked and
unreferenced in the move to TypeScript project references in #1772.

Additionally, the lack of referencing in the monorepo's TS config has
resulted in it being broken in the most recent 2.2.0 release, as reported by
@pyros2097 and @thetre97 in: https://github.com/apollographql/apollo-server/pull/1896#issuecomment-436994955

This should fix that by properly adding the TypeScript project references.

* Sorting.
2018-11-12 05:13:04 -08:00
Jesse Rosenberger
d36eea0f84 typings: Improvements for apollo-server-testing's createTestClient. (#1943)
The `createTestClient` should receive either a `query` or a `mutation`, but
not both.
2018-11-10 20:48:43 -08:00
Renovate Bot
87b4833926 chore(deps): update dependency koa to v2.6.2 2018-11-10 09:54:48 +00:00
Jesse Rosenberger
95a2ee53d0
More prettier changes. 2018-11-09 16:08:58 -08:00
Jesse Rosenberger
dc20485bd5
Prettier updates from the prettier bump.
Ah yes, the subtle side-effects of an opinionated linter evolving over time.
2018-11-09 15:44:41 -08:00
Martijn Walraven
40f3660e23 Fix relative import to use the proper apollo-tools package 2018-11-09 09:23:29 -08:00
Martijn Walraven
8c9666d4d7 Update apollo-tools dependency 2018-11-09 09:12:51 -08:00
Martijn Walraven
e4a55498f8 Collect fields and pass these to resolveObject() 2018-11-09 05:49:58 -08:00
Martijn Walraven
8f6481e60f Add modules option to ApolloServer 2018-11-09 05:07:08 -08:00
Martijn Walraven
bb67584a22 Add support for resolveObject to query execution 2018-11-09 05:07:07 -08:00
Peter
d81ae051e7 Update README.md with the latest package name (#1936) 2018-11-08 16:29:18 -08:00
Divyendu Singh
0d6b8f24e6 Update README.md (#1938) 2018-11-08 14:53:18 -08:00
Martijn Walraven
6bd73b175f Publish
- apollo-cache-control@0.3.0
 - apollo-datasource-rest@0.2.0
 - apollo-datasource@0.2.0
 - apollo-engine-reporting-protobuf@0.1.0
 - apollo-engine-reporting@0.1.0
 - apollo-server-azure-functions@2.2.0
 - apollo-server-cache-memcached@0.2.0
 - apollo-server-cache-redis@0.2.0
 - apollo-server-caching@0.2.0
 - apollo-server-cloud-functions@2.2.0
 - apollo-server-cloudflare@2.2.0
 - apollo-server-core@2.2.0
 - apollo-server-env@2.2.0
 - apollo-server-errors@2.2.0
 - apollo-server-express@2.2.0
 - apollo-server-hapi@2.2.0
 - apollo-server-integration-testsuite@2.2.0
 - apollo-server-koa@2.2.0
 - apollo-server-lambda@2.2.0
 - apollo-server-micro@2.2.0
 - apollo-server-plugin-base@0.1.0
 - apollo-server-testing@2.2.0
 - apollo-server@2.2.0
 - apollo-tracing@0.3.0
 - graphql-extensions@0.3.0
2018-11-07 08:17:21 -08:00
Jesse Rosenberger
3eada89827
Publish
- apollo-server-azure-functions@2.2.0-alpha.4
2018-11-06 16:38:19 -08:00
Jesse Rosenberger
e1e126fc76
For lerna. 2018-11-06 16:24:23 -08:00
Jesse Rosenberger
6346be3a6f
Publish
- apollo-server-azure-functions@2.2.0-alpha.4
2018-11-06 16:03:16 -08:00
Jesse Rosenberger
0b1f887db2
Lower version of apollo-server-azure-functions to publish correct version via lerna. 2018-11-06 16:02:39 -08:00
Michael Watson
6c87cbc291 Correct name of Azure implementation to match original name. (#1926) 2018-11-06 13:46:33 -08:00
Jesse Rosenberger
79fe6bf0bf
Publish
- apollo-server-azure-function@2.2.0-alpha.4
 - apollo-server-cloud-functions@2.2.0-alpha.4
 - apollo-server-cloudflare@2.2.0-alpha.4
 - apollo-server-core@2.2.0-alpha.4
 - apollo-server-express@2.2.0-alpha.4
 - apollo-server-hapi@2.2.0-alpha.4
 - apollo-server-integration-testsuite@2.2.0-alpha.4
 - apollo-server-koa@2.2.0-alpha.4
 - apollo-server-lambda@2.2.0-alpha.4
 - apollo-server-micro@2.2.0-alpha.4
 - apollo-server-plugin-base@0.1.0-alpha.4
 - apollo-server-testing@2.2.0-alpha.4
 - apollo-server@2.2.0-alpha.4
 - graphql-extensions@0.3.0-alpha.4
2018-11-06 11:33:35 -08:00
Jesse Rosenberger
52f210dcdd
Bump apollo-server-azure-functions to 2.2.0-alpha.3 to align versions. 2018-11-06 11:32:03 -08:00
Leonid Buneev
5b64cf9160 apollo-server-azure-function v2 implementation. (#1753)
Closes #1752.
2018-11-06 11:28:25 -08:00
Jesse Rosenberger
25cbd3ad61
Don't require a plugin to subclass ApolloServerPlugin.
To avoid problems frequently associated with subclassing, and the possible
versioning ergonomics of subclassing the wrong version, this changes the
plugin infrastructure to no longer require subclassing the abstract class.
2018-11-06 10:01:52 -08:00
Jesse Rosenberger
5ca4c07bd5
Publish
- apollo-cache-control@0.3.0-alpha.3
 - apollo-engine-reporting-protobuf@0.1.0-alpha.3
 - apollo-engine-reporting@0.1.0-alpha.3
 - apollo-server-cloud-functions@2.2.0-alpha.3
 - apollo-server-cloudflare@2.2.0-alpha.3
 - apollo-server-core@2.2.0-alpha.3
 - apollo-server-express@2.2.0-alpha.3
 - apollo-server-hapi@2.2.0-alpha.3
 - apollo-server-integration-testsuite@2.2.0-alpha.3
 - apollo-server-koa@2.2.0-alpha.3
 - apollo-server-lambda@2.2.0-alpha.3
 - apollo-server-micro@2.2.0-alpha.3
 - apollo-server-plugin-base@0.1.0-alpha.3
 - apollo-server-testing@2.2.0-alpha.3
 - apollo-server@2.2.0-alpha.3
 - apollo-tracing@0.3.0-alpha.3
 - graphql-extensions@0.3.0-alpha.3
2018-11-05 21:36:39 -08:00
Jesse Rosenberger
58711be91a
Bump apollo-engine-reporting-protobuf to align prerelease version suffix. 2018-11-05 21:22:20 -08:00
James Baxley
3d69124340 change clientId => clientReportingId and schemaBranch => schemaTag (#1921)
@abernix this should be a lot more clear 👍
2018-11-05 21:18:25 -08:00