@inversifyjs/apollo-core 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @inversifyjs/apollo-core
2
2
 
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Updated package to rely on inversify@8 ecosystem packages
8
+
9
+ ## 0.6.0
10
+
11
+ ### Minor Changes
12
+
13
+ - Updated `ApolloServerContainerModule` with `ApolloServerContainerModuleOptions`
14
+
3
15
  ## 0.5.0
4
16
 
5
17
  ### Minor Changes
@@ -0,0 +1,4 @@
1
+ import { type TypeSource } from '@graphql-tools/utils';
2
+ import { type DocumentNode } from 'graphql';
3
+ export declare function buildDocumentNodeFromTypeSource(typeDefs: TypeSource): DocumentNode;
4
+ //# sourceMappingURL=buildDocumentNodeFromTypeSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDocumentNodeFromTypeSource.d.ts","sourceRoot":"","sources":["../../../../src/apollo/calcullations/buildDocumentNodeFromTypeSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,SAAS,CAAC;AAEnD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,UAAU,GACnB,YAAY,CAId"}
@@ -0,0 +1,8 @@
1
+ import { mergeTypeDefs } from '@graphql-tools/merge';
2
+ import { parse } from 'graphql';
3
+ export function buildDocumentNodeFromTypeSource(typeDefs) {
4
+ return typeof typeDefs === 'string'
5
+ ? parse(typeDefs)
6
+ : mergeTypeDefs(typeDefs);
7
+ }
8
+ //# sourceMappingURL=buildDocumentNodeFromTypeSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDocumentNodeFromTypeSource.js","sourceRoot":"","sources":["../../../../src/apollo/calcullations/buildDocumentNodeFromTypeSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAqB,KAAK,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,UAAU,+BAA+B,CAC7C,QAAoB;IAEpB,OAAO,OAAO,QAAQ,KAAK,QAAQ;QACjC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjB,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BaseContext } from '@apollo/server';
1
+ import { type BaseContext } from '@apollo/server';
2
2
  export declare abstract class ApolloServerController<TContext extends BaseContext = BaseContext, TContextArgs extends unknown[] = any[]> {
3
3
  protected abstract _getContext(...args: TContextArgs): Promise<TContext>;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApolloServerController.d.ts","sourceRoot":"","sources":["../../../../src/apollo/controllers/ApolloServerController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,8BAAsB,sBAAsB,CAC1C,QAAQ,SAAS,WAAW,GAAG,WAAW,EAE1C,YAAY,SAAS,OAAO,EAAE,GAAG,GAAG,EAAE;IAEtC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;CACzE"}
1
+ {"version":3,"file":"ApolloServerController.d.ts","sourceRoot":"","sources":["../../../../src/apollo/controllers/ApolloServerController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,8BAAsB,sBAAsB,CAC1C,QAAQ,SAAS,WAAW,GAAG,WAAW,EAE1C,YAAY,SAAS,OAAO,EAAE,GAAG,GAAG,EAAE;IAEtC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;CACzE"}
@@ -0,0 +1,4 @@
1
+ export interface ApolloServerContainerModuleOptions {
2
+ isSubgraph?: boolean;
3
+ }
4
+ //# sourceMappingURL=ApolloServerContainerModuleOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApolloServerContainerModuleOptions.d.ts","sourceRoot":"","sources":["../../../../src/apollo/models/ApolloServerContainerModuleOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kCAAkC;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ApolloServerContainerModuleOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApolloServerContainerModuleOptions.js","sourceRoot":"","sources":["../../../../src/apollo/models/ApolloServerContainerModuleOptions.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { ServiceIdentifier } from 'inversify';
1
+ import { type ServiceIdentifier } from 'inversify';
2
2
  import { type InversifyApolloProvider } from '../modules/InversifyApolloProvider.js';
3
3
  export declare const inversifyApolloProviderServiceIdentifier: ServiceIdentifier<InversifyApolloProvider<any>>;
4
4
  //# sourceMappingURL=inversifyApolloProviderServiceIdentifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inversifyApolloProviderServiceIdentifier.d.ts","sourceRoot":"","sources":["../../../../src/apollo/models/inversifyApolloProviderServiceIdentifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAErF,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAEtE,uBAAuB,CAAC,GAAG,CAAC,CACoC,CAAC"}
1
+ {"version":3,"file":"inversifyApolloProviderServiceIdentifier.d.ts","sourceRoot":"","sources":["../../../../src/apollo/models/inversifyApolloProviderServiceIdentifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAErF,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAEtE,uBAAuB,CAAC,GAAG,CAAC,CACoC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';
2
+ import { type ApolloServerContainerModuleOptions } from '../models/ApolloServerContainerModuleOptions.js';
2
3
  export declare class ApolloServerContainerModule extends ContainerModule {
3
- constructor(load?: ((options: ContainerModuleLoadOptions) => void | Promise<void>) | undefined);
4
+ constructor(load?: ((options: ContainerModuleLoadOptions) => void | Promise<void>) | undefined, containerModuleOptions?: ApolloServerContainerModuleOptions);
4
5
  }
5
6
  //# sourceMappingURL=ApolloServerContainerModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApolloServerContainerModule.d.ts","sourceRoot":"","sources":["../../../../src/apollo/modules/ApolloServerContainerModule.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,KAAK,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAQ7E,qBAAa,2BAA4B,SAAQ,eAAe;gBAE5D,IAAI,CAAC,EACD,CAAC,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAC/D,SAAS;CA2ChB"}
1
+ {"version":3,"file":"ApolloServerContainerModule.d.ts","sourceRoot":"","sources":["../../../../src/apollo/modules/ApolloServerContainerModule.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,KAAK,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAG7E,OAAO,EAAE,KAAK,kCAAkC,EAAE,MAAM,iDAAiD,CAAC;AAO1G,qBAAa,2BAA4B,SAAQ,eAAe;gBAE5D,IAAI,CAAC,EACD,CAAC,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAC/D,SAAS,EACb,sBAAsB,CAAC,EAAE,kCAAkC;CA6D9D"}
@@ -1,21 +1,37 @@
1
1
  import { ApolloServer } from '@apollo/server';
2
+ import { buildSubgraphSchema } from '@apollo/subgraph';
2
3
  import { makeExecutableSchema } from '@graphql-tools/schema';
3
4
  import { ContainerModule } from 'inversify';
5
+ import { buildDocumentNodeFromTypeSource } from '../calcullations/buildDocumentNodeFromTypeSource.js';
4
6
  import { apolloServerGraphqlServiceIdentifier } from '../models/apolloServerGraphqlServiceIdentifier.js';
5
7
  import { apolloServerPluginsServiceIdentifier } from '../models/apolloServerPluginsServiceIdentifier.js';
6
8
  import { apolloServerResolversServiceIdentifier } from '../models/apolloServerResolversServiceIdentifier.js';
7
9
  import { apolloServerServiceIdentifier } from '../models/apolloServerServiceIdentifier.js';
8
10
  import { apolloServerTypeDefsServiceIdentifier } from '../models/apolloServerTypeDefsServiceIdentifier.js';
9
11
  export class ApolloServerContainerModule extends ContainerModule {
10
- constructor(load) {
12
+ constructor(load, containerModuleOptions) {
11
13
  super((options) => {
12
- options
13
- .bind(apolloServerGraphqlServiceIdentifier)
14
- .toResolvedValue((resolvers, typeDefs) => makeExecutableSchema({ resolvers, typeDefs }), [
15
- apolloServerResolversServiceIdentifier,
16
- apolloServerTypeDefsServiceIdentifier,
17
- ])
18
- .inSingletonScope();
14
+ if (containerModuleOptions?.isSubgraph === true) {
15
+ options
16
+ .bind(apolloServerGraphqlServiceIdentifier)
17
+ .toResolvedValue((resolvers, typeDefs) => buildSubgraphSchema({
18
+ resolvers: resolvers,
19
+ typeDefs: buildDocumentNodeFromTypeSource(typeDefs),
20
+ }), [
21
+ apolloServerResolversServiceIdentifier,
22
+ apolloServerTypeDefsServiceIdentifier,
23
+ ])
24
+ .inSingletonScope();
25
+ }
26
+ else {
27
+ options
28
+ .bind(apolloServerGraphqlServiceIdentifier)
29
+ .toResolvedValue((resolvers, typeDefs) => makeExecutableSchema({ resolvers, typeDefs }), [
30
+ apolloServerResolversServiceIdentifier,
31
+ apolloServerTypeDefsServiceIdentifier,
32
+ ])
33
+ .inSingletonScope();
34
+ }
19
35
  options
20
36
  .bind(apolloServerServiceIdentifier)
21
37
  .toResolvedValue(async (plugins, schema) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ApolloServerContainerModule.js","sourceRoot":"","sources":["../../../../src/apollo/modules/ApolloServerContainerModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAmC,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,oCAAoC,EAAE,MAAM,mDAAmD,CAAC;AACzG,OAAO,EAAE,oCAAoC,EAAE,MAAM,mDAAmD,CAAC;AACzG,OAAO,EAAE,sCAAsC,EAAE,MAAM,qDAAqD,CAAC;AAC7G,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,qCAAqC,EAAE,MAAM,oDAAoD,CAAC;AAE3G,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D,YACE,IAEa;QAEb,KAAK,CAAC,CAAC,OAAmC,EAAwB,EAAE;YAClE,OAAO;iBACJ,IAAI,CAAC,oCAAoC,CAAC;iBAC1C,eAAe,CACd,CAAC,SAAqB,EAAE,QAAoB,EAAiB,EAAE,CAC7D,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAC/C;gBACE,sCAAsC;gBACtC,qCAAqC;aACtC,CACF;iBACA,gBAAgB,EAAE,CAAC;YACtB,OAAO;iBACJ,IAAI,CAAC,6BAA6B,CAAC;iBACnC,eAAe,CACd,KAAK,EACH,OAA+B,EAC/B,MAAqB,EACE,EAAE;gBACzB,MAAM,YAAY,GAAiB,IAAI,YAAY,CAAC;oBAClD,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;oBACvB,MAAM;iBACP,CAAC,CAAC;gBAEH,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;gBAE3B,OAAO,YAAY,CAAC;YACtB,CAAC,EACD;gBACE;oBACE,UAAU,EAAE,IAAI;oBAChB,iBAAiB,EAAE,oCAAoC;iBACxD;gBACD,oCAAoC;aACrC,CACF;iBACA,gBAAgB,EAAE,CAAC;YAEtB,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"ApolloServerContainerModule.js","sourceRoot":"","sources":["../../../../src/apollo/modules/ApolloServerContainerModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAmC,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AAEtG,OAAO,EAAE,oCAAoC,EAAE,MAAM,mDAAmD,CAAC;AACzG,OAAO,EAAE,oCAAoC,EAAE,MAAM,mDAAmD,CAAC;AACzG,OAAO,EAAE,sCAAsC,EAAE,MAAM,qDAAqD,CAAC;AAC7G,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,qCAAqC,EAAE,MAAM,oDAAoD,CAAC;AAE3G,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D,YACE,IAEa,EACb,sBAA2D;QAE3D,KAAK,CAAC,CAAC,OAAmC,EAAwB,EAAE;YAClE,IAAI,sBAAsB,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAO;qBACJ,IAAI,CAAC,oCAAoC,CAAC;qBAC1C,eAAe,CACd,CAAC,SAAqB,EAAE,QAAoB,EAAiB,EAAE,CAC7D,mBAAmB,CAAC;oBAClB,SAAS,EAAE,SAAwC;oBACnD,QAAQ,EAAE,+BAA+B,CAAC,QAAQ,CAAC;iBACpD,CAAC,EACJ;oBACE,sCAAsC;oBACtC,qCAAqC;iBACtC,CACF;qBACA,gBAAgB,EAAE,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,OAAO;qBACJ,IAAI,CAAC,oCAAoC,CAAC;qBAC1C,eAAe,CACd,CAAC,SAAqB,EAAE,QAAoB,EAAiB,EAAE,CAC7D,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAC/C;oBACE,sCAAsC;oBACtC,qCAAqC;iBACtC,CACF;qBACA,gBAAgB,EAAE,CAAC;YACxB,CAAC;YAED,OAAO;iBACJ,IAAI,CAAC,6BAA6B,CAAC;iBACnC,eAAe,CACd,KAAK,EACH,OAA+B,EAC/B,MAAqB,EACE,EAAE;gBACzB,MAAM,YAAY,GAAiB,IAAI,YAAY,CAAC;oBAClD,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;oBACvB,MAAM;iBACP,CAAC,CAAC;gBAEH,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;gBAE3B,OAAO,YAAY,CAAC;YACtB,CAAC,EACD;gBACE;oBACE,UAAU,EAAE,IAAI;oBAChB,iBAAiB,EAAE,oCAAoC;iBACxD;gBACD,oCAAoC;aACrC,CACF;iBACA,gBAAgB,EAAE,CAAC;YAEtB,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -7,5 +7,6 @@ export { apolloServerServiceIdentifier } from './apollo/models/apolloServerServi
7
7
  export { httpServerServiceIdentifier } from './apollo/models/httpServerServiceIdentifier.js';
8
8
  export { inversifyApolloProviderServiceIdentifier } from './apollo/models/inversifyApolloProviderServiceIdentifier.js';
9
9
  export { ApolloServerContainerModule } from './apollo/modules/ApolloServerContainerModule.js';
10
+ export { type ApolloServerContainerModuleOptions } from './apollo/models/ApolloServerContainerModuleOptions.js';
10
11
  export { type InversifyApolloProvider } from './apollo/modules/InversifyApolloProvider.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,oCAAoC,EAAE,MAAM,yDAAyD,CAAC;AAC/G,OAAO,EAAE,oCAAoC,EAAE,MAAM,yDAAyD,CAAC;AAC/G,OAAO,EAAE,sCAAsC,EAAE,MAAM,2DAA2D,CAAC;AACnH,OAAO,EAAE,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AACjH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAE,wCAAwC,EAAE,MAAM,6DAA6D,CAAC;AACvH,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAE9F,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,oCAAoC,EAAE,MAAM,yDAAyD,CAAC;AAC/G,OAAO,EAAE,oCAAoC,EAAE,MAAM,yDAAyD,CAAC;AAC/G,OAAO,EAAE,sCAAsC,EAAE,MAAM,2DAA2D,CAAC;AACnH,OAAO,EAAE,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AACjH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAE,wCAAwC,EAAE,MAAM,6DAA6D,CAAC;AACvH,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAE9F,OAAO,EAAE,KAAK,kCAAkC,EAAE,MAAM,uDAAuD,CAAC;AAChH,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,6CAA6C,CAAC"}
package/package.json CHANGED
@@ -5,19 +5,20 @@
5
5
  },
6
6
  "description": "InversifyJs GraphQL Apollo core package",
7
7
  "dependencies": {
8
- "@graphql-tools/schema": "^10.0.30"
8
+ "@graphql-tools/merge": "9.1.7",
9
+ "@graphql-tools/schema": "^10.0.31"
9
10
  },
10
11
  "devDependencies": {
11
- "@graphql-tools/utils": "10.11.0",
12
- "@types/node": "24.10.4",
13
- "@vitest/coverage-v8": "4.0.16",
14
- "eslint": "9.39.2",
15
- "graphql": "16.12.0",
16
- "prettier": "3.7.4",
17
- "rimraf": "6.1.2",
12
+ "@graphql-tools/utils": "11.0.0",
13
+ "@types/node": "24.12.0",
14
+ "@vitest/coverage-v8": "4.1.0",
15
+ "eslint": "10.0.3",
16
+ "graphql": "16.13.1",
17
+ "prettier": "3.8.1",
18
+ "rimraf": "6.1.3",
18
19
  "tslib": "2.8.1",
19
20
  "typescript": "5.9.3",
20
- "vitest": "4.0.16"
21
+ "vitest": "4.1.0"
21
22
  },
22
23
  "homepage": "https://inversify.io/framework/",
23
24
  "keywords": [
@@ -39,8 +40,9 @@
39
40
  },
40
41
  "name": "@inversifyjs/apollo-core",
41
42
  "peerDependencies": {
42
- "@apollo/server": "^5.2.0",
43
- "inversify": "^7.10.8"
43
+ "@apollo/server": "^5.3.0",
44
+ "@apollo/subgraph": "^2.13.2",
45
+ "inversify": "^8.1.0"
44
46
  },
45
47
  "publishConfig": {
46
48
  "access": "public"
@@ -50,7 +52,7 @@
50
52
  "url": "git+https://github.com/inversify/graphql.git"
51
53
  },
52
54
  "type": "module",
53
- "version": "0.5.0",
55
+ "version": "0.7.0",
54
56
  "scripts": {
55
57
  "build": "tsc",
56
58
  "build:clean": "rimraf lib",