@restorecommerce/facade 0.2.0 → 0.3.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 +43 -0
- package/copy-hbs.sh +6 -0
- package/dist/gql/protos/registry.js +12 -2
- package/dist/index.d.ts +1 -0
- package/dist/interfaces.d.ts +1 -0
- package/dist/modules/identity/gql/schema.generated.d.ts +138 -17
- package/dist/modules/identity/gql/types.js +5 -0
- package/dist/modules/identity/index.js +2 -2
- package/dist/modules/identity/oauth/oauth.d.ts +2 -2
- package/dist/modules/identity/oauth/oauth.js +66 -35
- package/dist/modules/identity/oauth/views/account.hbs +27 -0
- package/dist/modules/identity/oauth/views/layout.hbs +34 -0
- package/dist/modules/identity/oauth/views/login.hbs +27 -0
- package/dist/modules/identity/oauth/views/register.hbs +134 -0
- package/dist/modules/identity/oidc/router.d.ts +2 -2
- package/dist/modules/identity/oidc/router.js +4 -4
- package/dist/modules/identity/oidc/views/consent.hbs +49 -0
- package/dist/modules/identity/oidc/views/layout.hbs +79 -0
- package/dist/modules/identity/oidc/views/login.hbs +62 -0
- package/dist/modules/resource/gql/schema.generated.d.ts +3 -6
- package/package.json +11 -9
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,49 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
# [0.3.0](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.2.2...@restorecommerce/facade@0.3.0) (2022-02-22)
|
7
|
+
|
8
|
+
|
9
|
+
### Bug Fixes
|
10
|
+
|
11
|
+
* **facade:** do not internal error ([a98594d](https://github.com/restorecommerce/libs/commit/a98594d2a478965eb3b22fff530b86c290afbbb2))
|
12
|
+
* **facade:** use jwt token ([666a08f](https://github.com/restorecommerce/libs/commit/666a08f9b7727cda26a499c3ebaa5335ed38a27a))
|
13
|
+
* **protos:** add token to code exchange ([9c17cb6](https://github.com/restorecommerce/libs/commit/9c17cb6e3a16761a85a4b9379c3c6996cc5422e8))
|
14
|
+
|
15
|
+
|
16
|
+
### Features
|
17
|
+
|
18
|
+
* **facade:** support maps ([2c466fe](https://github.com/restorecommerce/libs/commit/2c466fe1e0ef883ab4b7eb19f637ef13f1f88e96))
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
## [0.2.2](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.2.1...@restorecommerce/facade@0.2.2) (2022-02-15)
|
25
|
+
|
26
|
+
|
27
|
+
### Bug Fixes
|
28
|
+
|
29
|
+
* store facade token in cookies ([5fe1b53](https://github.com/restorecommerce/libs/commit/5fe1b538955993f6d20626968699867f0120589c))
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
## [0.2.1](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.2.0...@restorecommerce/facade@0.2.1) (2022-02-14)
|
36
|
+
|
37
|
+
|
38
|
+
### Bug Fixes
|
39
|
+
|
40
|
+
* **facade:** regenerated schema ([a8fba43](https://github.com/restorecommerce/libs/commit/a8fba43233999191d2583139cefe9a8af647706b))
|
41
|
+
* bypass non-compliant koa modules ([8a92b83](https://github.com/restorecommerce/libs/commit/8a92b83ce717f52caa843b00d5db894ca07ab1a9))
|
42
|
+
* copy hbs on build ([efd8e78](https://github.com/restorecommerce/libs/commit/efd8e783a09badb84d76f2b72377de438f34d014))
|
43
|
+
* switch to sh ([5756072](https://github.com/restorecommerce/libs/commit/57560723184a300b2d315068f29339a5f2dc517e))
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
6
49
|
# [0.2.0](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.1.44...@restorecommerce/facade@0.2.0) (2022-02-09)
|
7
50
|
|
8
51
|
|
package/copy-hbs.sh
ADDED
@@ -223,6 +223,7 @@ const getTyping = (type) => {
|
|
223
223
|
};
|
224
224
|
exports.getTyping = getTyping;
|
225
225
|
const resolveMeta = (key, field, rootObjType, objName, input) => {
|
226
|
+
var _a;
|
226
227
|
let result;
|
227
228
|
switch (field.type) {
|
228
229
|
case descriptor_1.FieldDescriptorProto_Type.TYPE_BOOL:
|
@@ -237,14 +238,23 @@ const resolveMeta = (key, field, rootObjType, objName, input) => {
|
|
237
238
|
if (!exports.registeredTypings.has(objType)) {
|
238
239
|
throw new Error("Typing '" + objType + "' not registered for key '" + key + "' in object: " + objName);
|
239
240
|
}
|
241
|
+
let typingData = exports.registeredTypings.get(objType);
|
242
|
+
let mapEntry = false;
|
243
|
+
if (typingData.meta.options) {
|
244
|
+
mapEntry = !!((_a = typingData.meta.options) === null || _a === void 0 ? void 0 : _a.mapEntry);
|
245
|
+
}
|
246
|
+
// TODO Actually unroll maps into entries
|
247
|
+
if (mapEntry) {
|
248
|
+
return MapScalar;
|
249
|
+
}
|
240
250
|
if (!input) {
|
241
|
-
result =
|
251
|
+
result = typingData.output;
|
242
252
|
break;
|
243
253
|
}
|
244
254
|
if (objType === types_1.authSubjectType) {
|
245
255
|
return null;
|
246
256
|
}
|
247
|
-
result =
|
257
|
+
result = typingData.input;
|
248
258
|
break;
|
249
259
|
case descriptor_1.FieldDescriptorProto_Type.TYPE_BYTES:
|
250
260
|
if (input) {
|
package/dist/index.d.ts
CHANGED
package/dist/interfaces.d.ts
CHANGED
@@ -24,8 +24,9 @@ export declare type Scalars = {
|
|
24
24
|
Boolean: boolean;
|
25
25
|
Int: number;
|
26
26
|
Float: number;
|
27
|
-
Upload: any;
|
28
27
|
TodoScalar: any;
|
28
|
+
Upload: any;
|
29
|
+
MapScalar: any;
|
29
30
|
};
|
30
31
|
export declare type Query = {
|
31
32
|
__typename?: 'Query';
|
@@ -37,6 +38,7 @@ export declare type IdentityQuery = {
|
|
37
38
|
role: IdentityRoleQuery;
|
38
39
|
authentication_log: IdentityAuthenticationLogQuery;
|
39
40
|
token: IdentityTokenQuery;
|
41
|
+
oauth: IdentityOauthQuery;
|
40
42
|
};
|
41
43
|
export declare type IdentityUserQuery = {
|
42
44
|
__typename?: 'IdentityUserQuery';
|
@@ -99,6 +101,7 @@ export declare type IoRestorecommerceUserUser = {
|
|
99
101
|
invitedByUserLastName?: Maybe<Scalars['String']>;
|
100
102
|
tokens?: Maybe<Array<IoRestorecommerceAuthTokens>>;
|
101
103
|
lastAccess?: Maybe<Scalars['Float']>;
|
104
|
+
data?: Maybe<GoogleProtobufAny>;
|
102
105
|
};
|
103
106
|
export declare type IoRestorecommerceMetaMeta = {
|
104
107
|
__typename?: 'IoRestorecommerceMetaMeta';
|
@@ -123,6 +126,7 @@ export declare type IoRestorecommerceAuthRoleAssociation = {
|
|
123
126
|
role?: Maybe<Scalars['String']>;
|
124
127
|
attributes?: Maybe<Array<IoRestorecommerceAttributeAttribute>>;
|
125
128
|
id?: Maybe<Scalars['String']>;
|
129
|
+
created?: Maybe<Scalars['Float']>;
|
126
130
|
};
|
127
131
|
export declare type IoRestorecommerceImageImage = {
|
128
132
|
__typename?: 'IoRestorecommerceImageImage';
|
@@ -151,6 +155,11 @@ export declare type IoRestorecommerceAuthTokens = {
|
|
151
155
|
interactive?: Maybe<Scalars['Boolean']>;
|
152
156
|
lastLogin?: Maybe<Scalars['Float']>;
|
153
157
|
};
|
158
|
+
export declare type GoogleProtobufAny = {
|
159
|
+
__typename?: 'GoogleProtobufAny';
|
160
|
+
typeUrl?: Maybe<Scalars['String']>;
|
161
|
+
value?: Maybe<Scalars['TodoScalar']>;
|
162
|
+
};
|
154
163
|
export declare type IoRestorecommerceStatusStatus = {
|
155
164
|
__typename?: 'IoRestorecommerceStatusStatus';
|
156
165
|
id?: Maybe<Scalars['String']>;
|
@@ -353,15 +362,31 @@ export declare type ProtoGoogleProtobufAny = {
|
|
353
362
|
__typename?: 'ProtoGoogleProtobufAny';
|
354
363
|
details?: Maybe<GoogleProtobufAny>;
|
355
364
|
};
|
356
|
-
export declare type GoogleProtobufAny = {
|
357
|
-
__typename?: 'GoogleProtobufAny';
|
358
|
-
typeUrl?: Maybe<Scalars['String']>;
|
359
|
-
value?: Maybe<Scalars['TodoScalar']>;
|
360
|
-
};
|
361
365
|
export declare type IIoRestorecommerceTokenIdentifier = {
|
362
366
|
id?: Maybe<Scalars['String']>;
|
363
367
|
type?: Maybe<Scalars['String']>;
|
364
368
|
};
|
369
|
+
export declare type IdentityOauthQuery = {
|
370
|
+
__typename?: 'IdentityOauthQuery';
|
371
|
+
AvailableServices?: Maybe<ProtoIoRestorecommerceOauthServicesResponse>;
|
372
|
+
GenerateLinks?: Maybe<ProtoIoRestorecommerceOauthGenerateLinksResponse>;
|
373
|
+
};
|
374
|
+
export declare type ProtoIoRestorecommerceOauthServicesResponse = {
|
375
|
+
__typename?: 'ProtoIoRestorecommerceOauthServicesResponse';
|
376
|
+
details?: Maybe<IoRestorecommerceOauthServicesResponse>;
|
377
|
+
};
|
378
|
+
export declare type IoRestorecommerceOauthServicesResponse = {
|
379
|
+
__typename?: 'IoRestorecommerceOauthServicesResponse';
|
380
|
+
services?: Maybe<Array<Scalars['String']>>;
|
381
|
+
};
|
382
|
+
export declare type ProtoIoRestorecommerceOauthGenerateLinksResponse = {
|
383
|
+
__typename?: 'ProtoIoRestorecommerceOauthGenerateLinksResponse';
|
384
|
+
details?: Maybe<IoRestorecommerceOauthGenerateLinksResponse>;
|
385
|
+
};
|
386
|
+
export declare type IoRestorecommerceOauthGenerateLinksResponse = {
|
387
|
+
__typename?: 'IoRestorecommerceOauthGenerateLinksResponse';
|
388
|
+
links?: Maybe<Scalars['MapScalar']>;
|
389
|
+
};
|
365
390
|
export declare type Mutation = {
|
366
391
|
__typename?: 'Mutation';
|
367
392
|
identity: IdentityMutation;
|
@@ -372,6 +397,7 @@ export declare type IdentityMutation = {
|
|
372
397
|
role: IdentityRoleMutation;
|
373
398
|
authentication_log: IdentityAuthenticationLogMutation;
|
374
399
|
token: IdentityTokenMutation;
|
400
|
+
oauth: IdentityOauthMutation;
|
375
401
|
};
|
376
402
|
export declare type IdentityUserMutation = {
|
377
403
|
__typename?: 'IdentityUserMutation';
|
@@ -467,6 +493,7 @@ export declare type IIoRestorecommerceUserUser = {
|
|
467
493
|
invitedByUserLastName?: Maybe<Scalars['String']>;
|
468
494
|
tokens?: Maybe<Array<IIoRestorecommerceAuthTokens>>;
|
469
495
|
lastAccess?: Maybe<Scalars['Float']>;
|
496
|
+
data?: Maybe<IGoogleProtobufAny>;
|
470
497
|
};
|
471
498
|
export declare type IIoRestorecommerceMetaMeta = {
|
472
499
|
created?: Maybe<Scalars['Float']>;
|
@@ -482,6 +509,7 @@ export declare type IIoRestorecommerceAuthRoleAssociation = {
|
|
482
509
|
role?: Maybe<Scalars['String']>;
|
483
510
|
attributes?: Maybe<Array<IIoRestorecommerceAttributeAttribute>>;
|
484
511
|
id?: Maybe<Scalars['String']>;
|
512
|
+
created?: Maybe<Scalars['Float']>;
|
485
513
|
};
|
486
514
|
export declare type IIoRestorecommerceImageImage = {
|
487
515
|
id?: Maybe<Scalars['String']>;
|
@@ -679,6 +707,28 @@ export declare type IIoRestorecommerceTokenTokenData = {
|
|
679
707
|
export declare type IIoRestorecommerceTokenGrantId = {
|
680
708
|
grantId?: Maybe<Scalars['String']>;
|
681
709
|
};
|
710
|
+
export declare type IdentityOauthMutation = {
|
711
|
+
__typename?: 'IdentityOauthMutation';
|
712
|
+
ExchangeCode?: Maybe<ProtoIoRestorecommerceOauthExchangeCodeResponse>;
|
713
|
+
};
|
714
|
+
export declare type IdentityOauthMutationExchangeCodeArgs = {
|
715
|
+
input: IIoRestorecommerceOauthExchangeCodeRequest;
|
716
|
+
};
|
717
|
+
export declare type ProtoIoRestorecommerceOauthExchangeCodeResponse = {
|
718
|
+
__typename?: 'ProtoIoRestorecommerceOauthExchangeCodeResponse';
|
719
|
+
details?: Maybe<IoRestorecommerceOauthExchangeCodeResponse>;
|
720
|
+
};
|
721
|
+
export declare type IoRestorecommerceOauthExchangeCodeResponse = {
|
722
|
+
__typename?: 'IoRestorecommerceOauthExchangeCodeResponse';
|
723
|
+
user?: Maybe<IoRestorecommerceUserUserResponse>;
|
724
|
+
email?: Maybe<Scalars['String']>;
|
725
|
+
token?: Maybe<IoRestorecommerceAuthTokens>;
|
726
|
+
};
|
727
|
+
export declare type IIoRestorecommerceOauthExchangeCodeRequest = {
|
728
|
+
service?: Maybe<Scalars['String']>;
|
729
|
+
code?: Maybe<Scalars['String']>;
|
730
|
+
state?: Maybe<Scalars['String']>;
|
731
|
+
};
|
682
732
|
export declare type WithIndex<TObject> = TObject & Record<string, any>;
|
683
733
|
export declare type ResolversObject<TObject> = WithIndex<TObject>;
|
684
734
|
export declare type ResolverTypeWrapper<T> = Promise<T> | T;
|
@@ -723,6 +773,8 @@ export declare type ResolversTypes = ResolversObject<{
|
|
723
773
|
IoRestorecommerceImageImage: ResolverTypeWrapper<IoRestorecommerceImageImage>;
|
724
774
|
IoRestorecommerceUserUserType: IoRestorecommerceUserUserType;
|
725
775
|
IoRestorecommerceAuthTokens: ResolverTypeWrapper<IoRestorecommerceAuthTokens>;
|
776
|
+
GoogleProtobufAny: ResolverTypeWrapper<GoogleProtobufAny>;
|
777
|
+
TodoScalar: ResolverTypeWrapper<Scalars['TodoScalar']>;
|
726
778
|
IoRestorecommerceStatusStatus: ResolverTypeWrapper<IoRestorecommerceStatusStatus>;
|
727
779
|
Int: ResolverTypeWrapper<Scalars['Int']>;
|
728
780
|
IoRestorecommerceStatusOperationStatus: ResolverTypeWrapper<IoRestorecommerceStatusOperationStatus>;
|
@@ -759,9 +811,13 @@ export declare type ResolversTypes = ResolversObject<{
|
|
759
811
|
IoRestorecommerceAuthenticationLogAuthenticationLog: ResolverTypeWrapper<IoRestorecommerceAuthenticationLogAuthenticationLog>;
|
760
812
|
IdentityTokenQuery: ResolverTypeWrapper<IdentityTokenQuery>;
|
761
813
|
ProtoGoogleProtobufAny: ResolverTypeWrapper<ProtoGoogleProtobufAny>;
|
762
|
-
GoogleProtobufAny: ResolverTypeWrapper<GoogleProtobufAny>;
|
763
|
-
TodoScalar: ResolverTypeWrapper<Scalars['TodoScalar']>;
|
764
814
|
IIoRestorecommerceTokenIdentifier: IIoRestorecommerceTokenIdentifier;
|
815
|
+
IdentityOauthQuery: ResolverTypeWrapper<IdentityOauthQuery>;
|
816
|
+
ProtoIoRestorecommerceOauthServicesResponse: ResolverTypeWrapper<ProtoIoRestorecommerceOauthServicesResponse>;
|
817
|
+
IoRestorecommerceOauthServicesResponse: ResolverTypeWrapper<IoRestorecommerceOauthServicesResponse>;
|
818
|
+
ProtoIoRestorecommerceOauthGenerateLinksResponse: ResolverTypeWrapper<ProtoIoRestorecommerceOauthGenerateLinksResponse>;
|
819
|
+
IoRestorecommerceOauthGenerateLinksResponse: ResolverTypeWrapper<IoRestorecommerceOauthGenerateLinksResponse>;
|
820
|
+
MapScalar: ResolverTypeWrapper<Scalars['MapScalar']>;
|
765
821
|
Mutation: ResolverTypeWrapper<{}>;
|
766
822
|
IdentityMutation: ResolverTypeWrapper<IdentityMutation>;
|
767
823
|
IdentityUserMutation: ResolverTypeWrapper<IdentityUserMutation>;
|
@@ -802,6 +858,10 @@ export declare type ResolversTypes = ResolversObject<{
|
|
802
858
|
IdentityTokenMutation: ResolverTypeWrapper<IdentityTokenMutation>;
|
803
859
|
IIoRestorecommerceTokenTokenData: IIoRestorecommerceTokenTokenData;
|
804
860
|
IIoRestorecommerceTokenGrantId: IIoRestorecommerceTokenGrantId;
|
861
|
+
IdentityOauthMutation: ResolverTypeWrapper<IdentityOauthMutation>;
|
862
|
+
ProtoIoRestorecommerceOauthExchangeCodeResponse: ResolverTypeWrapper<ProtoIoRestorecommerceOauthExchangeCodeResponse>;
|
863
|
+
IoRestorecommerceOauthExchangeCodeResponse: ResolverTypeWrapper<IoRestorecommerceOauthExchangeCodeResponse>;
|
864
|
+
IIoRestorecommerceOauthExchangeCodeRequest: IIoRestorecommerceOauthExchangeCodeRequest;
|
805
865
|
}>;
|
806
866
|
/** Mapping between all available schema types and the resolvers parents */
|
807
867
|
export declare type ResolversParentTypes = ResolversObject<{
|
@@ -821,6 +881,8 @@ export declare type ResolversParentTypes = ResolversObject<{
|
|
821
881
|
IoRestorecommerceAuthRoleAssociation: IoRestorecommerceAuthRoleAssociation;
|
822
882
|
IoRestorecommerceImageImage: IoRestorecommerceImageImage;
|
823
883
|
IoRestorecommerceAuthTokens: IoRestorecommerceAuthTokens;
|
884
|
+
GoogleProtobufAny: GoogleProtobufAny;
|
885
|
+
TodoScalar: Scalars['TodoScalar'];
|
824
886
|
IoRestorecommerceStatusStatus: IoRestorecommerceStatusStatus;
|
825
887
|
Int: Scalars['Int'];
|
826
888
|
IoRestorecommerceStatusOperationStatus: IoRestorecommerceStatusOperationStatus;
|
@@ -850,9 +912,13 @@ export declare type ResolversParentTypes = ResolversObject<{
|
|
850
912
|
IoRestorecommerceAuthenticationLogAuthenticationLog: IoRestorecommerceAuthenticationLogAuthenticationLog;
|
851
913
|
IdentityTokenQuery: IdentityTokenQuery;
|
852
914
|
ProtoGoogleProtobufAny: ProtoGoogleProtobufAny;
|
853
|
-
GoogleProtobufAny: GoogleProtobufAny;
|
854
|
-
TodoScalar: Scalars['TodoScalar'];
|
855
915
|
IIoRestorecommerceTokenIdentifier: IIoRestorecommerceTokenIdentifier;
|
916
|
+
IdentityOauthQuery: IdentityOauthQuery;
|
917
|
+
ProtoIoRestorecommerceOauthServicesResponse: ProtoIoRestorecommerceOauthServicesResponse;
|
918
|
+
IoRestorecommerceOauthServicesResponse: IoRestorecommerceOauthServicesResponse;
|
919
|
+
ProtoIoRestorecommerceOauthGenerateLinksResponse: ProtoIoRestorecommerceOauthGenerateLinksResponse;
|
920
|
+
IoRestorecommerceOauthGenerateLinksResponse: IoRestorecommerceOauthGenerateLinksResponse;
|
921
|
+
MapScalar: Scalars['MapScalar'];
|
856
922
|
Mutation: {};
|
857
923
|
IdentityMutation: IdentityMutation;
|
858
924
|
IdentityUserMutation: IdentityUserMutation;
|
@@ -892,6 +958,10 @@ export declare type ResolversParentTypes = ResolversObject<{
|
|
892
958
|
IdentityTokenMutation: IdentityTokenMutation;
|
893
959
|
IIoRestorecommerceTokenTokenData: IIoRestorecommerceTokenTokenData;
|
894
960
|
IIoRestorecommerceTokenGrantId: IIoRestorecommerceTokenGrantId;
|
961
|
+
IdentityOauthMutation: IdentityOauthMutation;
|
962
|
+
ProtoIoRestorecommerceOauthExchangeCodeResponse: ProtoIoRestorecommerceOauthExchangeCodeResponse;
|
963
|
+
IoRestorecommerceOauthExchangeCodeResponse: IoRestorecommerceOauthExchangeCodeResponse;
|
964
|
+
IIoRestorecommerceOauthExchangeCodeRequest: IIoRestorecommerceOauthExchangeCodeRequest;
|
895
965
|
}>;
|
896
966
|
export declare type QueryResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query']> = ResolversObject<{
|
897
967
|
identity?: Resolver<ResolversTypes['IdentityQuery'], ParentType, ContextType>;
|
@@ -901,6 +971,7 @@ export declare type IdentityQueryResolvers<ContextType = IdentityContext, Parent
|
|
901
971
|
role?: Resolver<ResolversTypes['IdentityRoleQuery'], ParentType, ContextType>;
|
902
972
|
authentication_log?: Resolver<ResolversTypes['IdentityAuthenticationLogQuery'], ParentType, ContextType>;
|
903
973
|
token?: Resolver<ResolversTypes['IdentityTokenQuery'], ParentType, ContextType>;
|
974
|
+
oauth?: Resolver<ResolversTypes['IdentityOauthQuery'], ParentType, ContextType>;
|
904
975
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
905
976
|
}>;
|
906
977
|
export declare type IdentityUserQueryResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IdentityUserQuery'] = ResolversParentTypes['IdentityUserQuery']> = ResolversObject<{
|
@@ -951,6 +1022,7 @@ export declare type IoRestorecommerceUserUserResolvers<ContextType = IdentityCon
|
|
951
1022
|
invitedByUserLastName?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
952
1023
|
tokens?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceAuthTokens']>>, ParentType, ContextType>;
|
953
1024
|
lastAccess?: Resolver<Maybe<ResolversTypes['Float']>, ParentType, ContextType>;
|
1025
|
+
data?: Resolver<Maybe<ResolversTypes['GoogleProtobufAny']>, ParentType, ContextType>;
|
954
1026
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
955
1027
|
}>;
|
956
1028
|
export declare type IoRestorecommerceMetaMetaResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceMetaMeta'] = ResolversParentTypes['IoRestorecommerceMetaMeta']> = ResolversObject<{
|
@@ -975,6 +1047,7 @@ export declare type IoRestorecommerceAuthRoleAssociationResolvers<ContextType =
|
|
975
1047
|
role?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
976
1048
|
attributes?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceAttributeAttribute']>>, ParentType, ContextType>;
|
977
1049
|
id?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1050
|
+
created?: Resolver<Maybe<ResolversTypes['Float']>, ParentType, ContextType>;
|
978
1051
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
979
1052
|
}>;
|
980
1053
|
export declare type IoRestorecommerceImageImageResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceImageImage'] = ResolversParentTypes['IoRestorecommerceImageImage']> = ResolversObject<{
|
@@ -1004,6 +1077,14 @@ export declare type IoRestorecommerceAuthTokensResolvers<ContextType = IdentityC
|
|
1004
1077
|
lastLogin?: Resolver<Maybe<ResolversTypes['Float']>, ParentType, ContextType>;
|
1005
1078
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1006
1079
|
}>;
|
1080
|
+
export declare type GoogleProtobufAnyResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['GoogleProtobufAny'] = ResolversParentTypes['GoogleProtobufAny']> = ResolversObject<{
|
1081
|
+
typeUrl?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1082
|
+
value?: Resolver<Maybe<ResolversTypes['TodoScalar']>, ParentType, ContextType>;
|
1083
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1084
|
+
}>;
|
1085
|
+
export interface TodoScalarScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes['TodoScalar'], any> {
|
1086
|
+
name: 'TodoScalar';
|
1087
|
+
}
|
1007
1088
|
export declare type IoRestorecommerceStatusStatusResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceStatusStatus'] = ResolversParentTypes['IoRestorecommerceStatusStatus']> = ResolversObject<{
|
1008
1089
|
id?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1009
1090
|
code?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
|
@@ -1138,13 +1219,29 @@ export declare type ProtoGoogleProtobufAnyResolvers<ContextType = IdentityContex
|
|
1138
1219
|
details?: Resolver<Maybe<ResolversTypes['GoogleProtobufAny']>, ParentType, ContextType>;
|
1139
1220
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1140
1221
|
}>;
|
1141
|
-
export declare type
|
1142
|
-
|
1143
|
-
|
1222
|
+
export declare type IdentityOauthQueryResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IdentityOauthQuery'] = ResolversParentTypes['IdentityOauthQuery']> = ResolversObject<{
|
1223
|
+
AvailableServices?: Resolver<Maybe<ResolversTypes['ProtoIoRestorecommerceOauthServicesResponse']>, ParentType, ContextType>;
|
1224
|
+
GenerateLinks?: Resolver<Maybe<ResolversTypes['ProtoIoRestorecommerceOauthGenerateLinksResponse']>, ParentType, ContextType>;
|
1144
1225
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1145
1226
|
}>;
|
1146
|
-
export
|
1147
|
-
|
1227
|
+
export declare type ProtoIoRestorecommerceOauthServicesResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['ProtoIoRestorecommerceOauthServicesResponse'] = ResolversParentTypes['ProtoIoRestorecommerceOauthServicesResponse']> = ResolversObject<{
|
1228
|
+
details?: Resolver<Maybe<ResolversTypes['IoRestorecommerceOauthServicesResponse']>, ParentType, ContextType>;
|
1229
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1230
|
+
}>;
|
1231
|
+
export declare type IoRestorecommerceOauthServicesResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceOauthServicesResponse'] = ResolversParentTypes['IoRestorecommerceOauthServicesResponse']> = ResolversObject<{
|
1232
|
+
services?: Resolver<Maybe<Array<ResolversTypes['String']>>, ParentType, ContextType>;
|
1233
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1234
|
+
}>;
|
1235
|
+
export declare type ProtoIoRestorecommerceOauthGenerateLinksResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['ProtoIoRestorecommerceOauthGenerateLinksResponse'] = ResolversParentTypes['ProtoIoRestorecommerceOauthGenerateLinksResponse']> = ResolversObject<{
|
1236
|
+
details?: Resolver<Maybe<ResolversTypes['IoRestorecommerceOauthGenerateLinksResponse']>, ParentType, ContextType>;
|
1237
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1238
|
+
}>;
|
1239
|
+
export declare type IoRestorecommerceOauthGenerateLinksResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceOauthGenerateLinksResponse'] = ResolversParentTypes['IoRestorecommerceOauthGenerateLinksResponse']> = ResolversObject<{
|
1240
|
+
links?: Resolver<Maybe<ResolversTypes['MapScalar']>, ParentType, ContextType>;
|
1241
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1242
|
+
}>;
|
1243
|
+
export interface MapScalarScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes['MapScalar'], any> {
|
1244
|
+
name: 'MapScalar';
|
1148
1245
|
}
|
1149
1246
|
export declare type MutationResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['Mutation'] = ResolversParentTypes['Mutation']> = ResolversObject<{
|
1150
1247
|
identity?: Resolver<ResolversTypes['IdentityMutation'], ParentType, ContextType>;
|
@@ -1154,6 +1251,7 @@ export declare type IdentityMutationResolvers<ContextType = IdentityContext, Par
|
|
1154
1251
|
role?: Resolver<ResolversTypes['IdentityRoleMutation'], ParentType, ContextType>;
|
1155
1252
|
authentication_log?: Resolver<ResolversTypes['IdentityAuthenticationLogMutation'], ParentType, ContextType>;
|
1156
1253
|
token?: Resolver<ResolversTypes['IdentityTokenMutation'], ParentType, ContextType>;
|
1254
|
+
oauth?: Resolver<ResolversTypes['IdentityOauthMutation'], ParentType, ContextType>;
|
1157
1255
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1158
1256
|
}>;
|
1159
1257
|
export declare type IdentityUserMutationResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IdentityUserMutation'] = ResolversParentTypes['IdentityUserMutation']> = ResolversObject<{
|
@@ -1217,6 +1315,20 @@ export declare type IdentityTokenMutationResolvers<ContextType = IdentityContext
|
|
1217
1315
|
consume?: Resolver<Maybe<ResolversTypes['ProtoGoogleProtobufAny']>, ParentType, ContextType, RequireFields<IdentityTokenMutationConsumeArgs, 'input'>>;
|
1218
1316
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1219
1317
|
}>;
|
1318
|
+
export declare type IdentityOauthMutationResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IdentityOauthMutation'] = ResolversParentTypes['IdentityOauthMutation']> = ResolversObject<{
|
1319
|
+
ExchangeCode?: Resolver<Maybe<ResolversTypes['ProtoIoRestorecommerceOauthExchangeCodeResponse']>, ParentType, ContextType, RequireFields<IdentityOauthMutationExchangeCodeArgs, 'input'>>;
|
1320
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1321
|
+
}>;
|
1322
|
+
export declare type ProtoIoRestorecommerceOauthExchangeCodeResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['ProtoIoRestorecommerceOauthExchangeCodeResponse'] = ResolversParentTypes['ProtoIoRestorecommerceOauthExchangeCodeResponse']> = ResolversObject<{
|
1323
|
+
details?: Resolver<Maybe<ResolversTypes['IoRestorecommerceOauthExchangeCodeResponse']>, ParentType, ContextType>;
|
1324
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1325
|
+
}>;
|
1326
|
+
export declare type IoRestorecommerceOauthExchangeCodeResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceOauthExchangeCodeResponse'] = ResolversParentTypes['IoRestorecommerceOauthExchangeCodeResponse']> = ResolversObject<{
|
1327
|
+
user?: Resolver<Maybe<ResolversTypes['IoRestorecommerceUserUserResponse']>, ParentType, ContextType>;
|
1328
|
+
email?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1329
|
+
token?: Resolver<Maybe<ResolversTypes['IoRestorecommerceAuthTokens']>, ParentType, ContextType>;
|
1330
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1331
|
+
}>;
|
1220
1332
|
export declare type Resolvers<ContextType = IdentityContext> = ResolversObject<{
|
1221
1333
|
Query?: QueryResolvers<ContextType>;
|
1222
1334
|
IdentityQuery?: IdentityQueryResolvers<ContextType>;
|
@@ -1232,6 +1344,8 @@ export declare type Resolvers<ContextType = IdentityContext> = ResolversObject<{
|
|
1232
1344
|
IoRestorecommerceImageImage?: IoRestorecommerceImageImageResolvers<ContextType>;
|
1233
1345
|
IoRestorecommerceUserUserType?: IoRestorecommerceUserUserTypeResolvers;
|
1234
1346
|
IoRestorecommerceAuthTokens?: IoRestorecommerceAuthTokensResolvers<ContextType>;
|
1347
|
+
GoogleProtobufAny?: GoogleProtobufAnyResolvers<ContextType>;
|
1348
|
+
TodoScalar?: GraphQLScalarType;
|
1235
1349
|
IoRestorecommerceStatusStatus?: IoRestorecommerceStatusStatusResolvers<ContextType>;
|
1236
1350
|
IoRestorecommerceStatusOperationStatus?: IoRestorecommerceStatusOperationStatusResolvers<ContextType>;
|
1237
1351
|
IoRestorecommerceResourcebaseSortSortOrder?: IoRestorecommerceResourcebaseSortSortOrderResolvers;
|
@@ -1255,8 +1369,12 @@ export declare type Resolvers<ContextType = IdentityContext> = ResolversObject<{
|
|
1255
1369
|
IoRestorecommerceAuthenticationLogAuthenticationLog?: IoRestorecommerceAuthenticationLogAuthenticationLogResolvers<ContextType>;
|
1256
1370
|
IdentityTokenQuery?: IdentityTokenQueryResolvers<ContextType>;
|
1257
1371
|
ProtoGoogleProtobufAny?: ProtoGoogleProtobufAnyResolvers<ContextType>;
|
1258
|
-
|
1259
|
-
|
1372
|
+
IdentityOauthQuery?: IdentityOauthQueryResolvers<ContextType>;
|
1373
|
+
ProtoIoRestorecommerceOauthServicesResponse?: ProtoIoRestorecommerceOauthServicesResponseResolvers<ContextType>;
|
1374
|
+
IoRestorecommerceOauthServicesResponse?: IoRestorecommerceOauthServicesResponseResolvers<ContextType>;
|
1375
|
+
ProtoIoRestorecommerceOauthGenerateLinksResponse?: ProtoIoRestorecommerceOauthGenerateLinksResponseResolvers<ContextType>;
|
1376
|
+
IoRestorecommerceOauthGenerateLinksResponse?: IoRestorecommerceOauthGenerateLinksResponseResolvers<ContextType>;
|
1377
|
+
MapScalar?: GraphQLScalarType;
|
1260
1378
|
Mutation?: MutationResolvers<ContextType>;
|
1261
1379
|
IdentityMutation?: IdentityMutationResolvers<ContextType>;
|
1262
1380
|
IdentityUserMutation?: IdentityUserMutationResolvers<ContextType>;
|
@@ -1269,6 +1387,9 @@ export declare type Resolvers<ContextType = IdentityContext> = ResolversObject<{
|
|
1269
1387
|
IdentityRoleMutation?: IdentityRoleMutationResolvers<ContextType>;
|
1270
1388
|
IdentityAuthenticationLogMutation?: IdentityAuthenticationLogMutationResolvers<ContextType>;
|
1271
1389
|
IdentityTokenMutation?: IdentityTokenMutationResolvers<ContextType>;
|
1390
|
+
IdentityOauthMutation?: IdentityOauthMutationResolvers<ContextType>;
|
1391
|
+
ProtoIoRestorecommerceOauthExchangeCodeResponse?: ProtoIoRestorecommerceOauthExchangeCodeResponseResolvers<ContextType>;
|
1392
|
+
IoRestorecommerceOauthExchangeCodeResponse?: IoRestorecommerceOauthExchangeCodeResponseResolvers<ContextType>;
|
1272
1393
|
}>;
|
1273
1394
|
/**
|
1274
1395
|
* @deprecated
|
@@ -1,13 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.identityModule = void 0;
|
4
|
-
const koa_mount_1 = require("koa-mount");
|
5
4
|
const utils_1 = require("../../utils");
|
6
5
|
const federation_1 = require("./gql/federation");
|
7
6
|
const oidc_1 = require("./oidc");
|
8
7
|
const api_key_1 = require("./api-key/api-key");
|
9
8
|
const grpc_1 = require("./grpc");
|
10
9
|
const oauth_1 = require("./oauth/oauth");
|
10
|
+
const mount = eval('require("koa-mount")');
|
11
11
|
exports.identityModule = utils_1.createFacadeModuleFactory('identity', (facade, config) => {
|
12
12
|
const identitySrvClient = new grpc_1.IdentitySrvGrpcClient(config.identitySrvClientConfig, facade.logger);
|
13
13
|
if (!!config.apiKey) {
|
@@ -28,7 +28,7 @@ exports.identityModule = utils_1.createFacadeModuleFactory('identity', (facade,
|
|
28
28
|
config: config.oidc
|
29
29
|
});
|
30
30
|
facade.koa.use(router.routes());
|
31
|
-
facade.koa.use(
|
31
|
+
facade.koa.use(mount(provider.app));
|
32
32
|
}
|
33
33
|
if (config.oauth) {
|
34
34
|
facade.koa.use(oauth_1.createOAuth().routes());
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import
|
1
|
+
import KoaRouter from "koa-router";
|
2
2
|
import { IdentityContext } from "../interfaces";
|
3
3
|
import { User } from "@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/user";
|
4
|
-
export declare const createOAuth: () =>
|
4
|
+
export declare const createOAuth: () => KoaRouter<{}, IdentityContext>;
|
5
5
|
export declare const layout: (context: {
|
6
6
|
body: string;
|
7
7
|
title: string;
|
@@ -1,26 +1,52 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.account = exports.login = exports.register = exports.layout = exports.createOAuth = void 0;
|
4
|
-
const koa_router_1 = require("koa-router");
|
5
4
|
const fs_1 = require("fs");
|
6
5
|
const path_1 = require("path");
|
7
6
|
const handlebars_1 = require("handlebars");
|
8
7
|
const utils_1 = require("../oidc/utils");
|
9
8
|
const uuid = require("uuid");
|
10
9
|
const user_1 = require("@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/user");
|
11
|
-
const
|
10
|
+
const jose = require("jose");
|
11
|
+
const Router = eval('require("koa-router")');
|
12
|
+
const bodyParser = eval('require("koa-body")');
|
12
13
|
const createOAuth = () => {
|
13
|
-
const router = new
|
14
|
-
router.use(
|
14
|
+
const router = new Router();
|
15
|
+
router.use(bodyParser({ multipart: true }));
|
15
16
|
router.get('/oauth2-login', async (ctx, next) => {
|
16
17
|
ctx.type = 'html';
|
17
18
|
ctx.body = await exports.login((await ctx.identitySrvClient.oauth.GenerateLinks({})).links);
|
18
19
|
return next();
|
19
20
|
});
|
21
|
+
router.get('/oauth2-logout', async (ctx, next) => {
|
22
|
+
ctx.cookies.set('token', undefined);
|
23
|
+
ctx.status = 303;
|
24
|
+
ctx.redirect('/oauth2-login');
|
25
|
+
ctx.body = 'Redirecting to login page';
|
26
|
+
return next();
|
27
|
+
});
|
20
28
|
router.get('/oauth2-urls', async (ctx, next) => {
|
21
29
|
ctx.body = (await ctx.identitySrvClient.oauth.GenerateLinks({})).links;
|
22
30
|
return next();
|
23
31
|
});
|
32
|
+
router.get('/oauth2-account', async (ctx, next) => {
|
33
|
+
const token = ctx.cookies.get('token');
|
34
|
+
if (!token) {
|
35
|
+
ctx.body = 'user not logged in';
|
36
|
+
return next();
|
37
|
+
}
|
38
|
+
const ids = ctx.identitySrvClient;
|
39
|
+
const user = await ids.user.FindByToken({
|
40
|
+
token: token
|
41
|
+
});
|
42
|
+
if (!user || !user.payload) {
|
43
|
+
ctx.body = 'user not logged in';
|
44
|
+
return next();
|
45
|
+
}
|
46
|
+
ctx.type = 'html';
|
47
|
+
ctx.body = await exports.account(user.payload);
|
48
|
+
return next();
|
49
|
+
});
|
24
50
|
router.post('/oauth2-register', async (ctx, next) => {
|
25
51
|
const ids = ctx.identitySrvClient;
|
26
52
|
const body = ctx.request.body;
|
@@ -34,8 +60,11 @@ const createOAuth = () => {
|
|
34
60
|
guest: false,
|
35
61
|
}));
|
36
62
|
if (user.payload) {
|
37
|
-
|
38
|
-
ctx.
|
63
|
+
const token = await upsertUserToken(ids, user.payload.id);
|
64
|
+
ctx.cookies.set('token', token);
|
65
|
+
ctx.status = 303;
|
66
|
+
ctx.redirect('/oauth2-account');
|
67
|
+
ctx.body = 'Redirecting to account page';
|
39
68
|
return next();
|
40
69
|
}
|
41
70
|
if (user.status) {
|
@@ -50,43 +79,45 @@ const createOAuth = () => {
|
|
50
79
|
code: ctx.request.query['code'],
|
51
80
|
state: ctx.request.query['state']
|
52
81
|
});
|
53
|
-
console.log(user);
|
54
82
|
if (!user.user || !user.user.payload || (user.user.status && user.user.status.code !== 200)) {
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
return next();
|
59
|
-
}
|
60
|
-
else {
|
61
|
-
ctx.body = 'Internal Error';
|
62
|
-
return next();
|
63
|
-
}
|
83
|
+
ctx.type = 'html';
|
84
|
+
ctx.body = await exports.register(user.email || '');
|
85
|
+
return next();
|
64
86
|
}
|
65
|
-
const token =
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
type: 'access_token',
|
71
|
-
expiresIn: expiresIn,
|
72
|
-
payload: utils_1.marshallProtobufAny({
|
73
|
-
accountId: user.user.payload.id,
|
74
|
-
exp: expiresIn,
|
75
|
-
jti: token
|
76
|
-
})
|
77
|
-
});
|
78
|
-
ctx.type = 'html';
|
79
|
-
ctx.body = await exports.account(user.user.payload);
|
87
|
+
const token = await upsertUserToken(ids, user.user.payload.id);
|
88
|
+
ctx.cookies.set('token', token);
|
89
|
+
ctx.status = 303;
|
90
|
+
ctx.redirect('/oauth2-account');
|
91
|
+
ctx.body = 'Redirecting to account page';
|
80
92
|
return next();
|
81
93
|
});
|
82
94
|
return router;
|
83
95
|
};
|
84
96
|
exports.createOAuth = createOAuth;
|
97
|
+
const upsertUserToken = async (ids, accountId) => {
|
98
|
+
const token = new jose.UnsecuredJWT({})
|
99
|
+
.setIssuedAt()
|
100
|
+
.setExpirationTime('30d')
|
101
|
+
.encode();
|
102
|
+
// 1 Month
|
103
|
+
const expiresIn = Date.now() + (1000 * 60 * 60 * 24 * 30);
|
104
|
+
await ids.token.upsert({
|
105
|
+
id: uuid.v4().replace(/-/g, ''),
|
106
|
+
type: 'access_token',
|
107
|
+
expiresIn: expiresIn,
|
108
|
+
payload: utils_1.marshallProtobufAny({
|
109
|
+
accountId: accountId,
|
110
|
+
exp: expiresIn,
|
111
|
+
jti: token
|
112
|
+
})
|
113
|
+
});
|
114
|
+
return token;
|
115
|
+
};
|
85
116
|
let layoutHbs;
|
86
117
|
const layout = async (context) => {
|
87
118
|
if (!layoutHbs) {
|
88
119
|
const layoutTpl = await new Promise((resolve, reject) => {
|
89
|
-
fs_1.
|
120
|
+
fs_1.readFile(path_1.resolve(__dirname, 'views/layout.hbs'), (err, data) => err ? reject(err) : resolve(data.toString()));
|
90
121
|
});
|
91
122
|
layoutHbs = handlebars_1.default.compile(layoutTpl);
|
92
123
|
}
|
@@ -97,7 +128,7 @@ let registerHbs;
|
|
97
128
|
const register = async (email) => {
|
98
129
|
if (!registerHbs) {
|
99
130
|
const registerTpl = await new Promise((resolve, reject) => {
|
100
|
-
fs_1.
|
131
|
+
fs_1.readFile(path_1.resolve(__dirname, 'views/register.hbs'), (err, data) => err ? reject(err) : resolve(data.toString()));
|
101
132
|
});
|
102
133
|
registerHbs = handlebars_1.default.compile(registerTpl);
|
103
134
|
}
|
@@ -111,7 +142,7 @@ let loginHbs;
|
|
111
142
|
const login = async (links) => {
|
112
143
|
if (!loginHbs) {
|
113
144
|
const loginTpl = await new Promise((resolve, reject) => {
|
114
|
-
fs_1.
|
145
|
+
fs_1.readFile(path_1.resolve(__dirname, 'views/login.hbs'), (err, data) => err ? reject(err) : resolve(data.toString()));
|
115
146
|
});
|
116
147
|
loginHbs = handlebars_1.default.compile(loginTpl);
|
117
148
|
}
|
@@ -125,7 +156,7 @@ let accountHbs;
|
|
125
156
|
const account = async (user) => {
|
126
157
|
if (!accountHbs) {
|
127
158
|
const accountTpl = await new Promise((resolve, reject) => {
|
128
|
-
fs_1.
|
159
|
+
fs_1.readFile(path_1.resolve(__dirname, 'views/account.hbs'), (err, data) => err ? reject(err) : resolve(data.toString()));
|
129
160
|
});
|
130
161
|
accountHbs = handlebars_1.default.compile(accountTpl);
|
131
162
|
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<style>
|
2
|
+
.rc-login {
|
3
|
+
height: 100%;
|
4
|
+
background-color: #00adef;
|
5
|
+
}
|
6
|
+
|
7
|
+
.rc-account {
|
8
|
+
width: 815px;
|
9
|
+
box-sizing: border-box;
|
10
|
+
border-radius: .3rem;
|
11
|
+
background: #fff;
|
12
|
+
padding: 1rem;
|
13
|
+
}
|
14
|
+
</style>
|
15
|
+
|
16
|
+
<div class="rc-login flex col justify-center">
|
17
|
+
<div class="self-center justify-center rc-account scale110p">
|
18
|
+
<h2>{{title}}</h2>
|
19
|
+
<div class="col center justify-center">
|
20
|
+
<h3>Welcome {{user.firstName}} {{user.lastName}}!</h3>
|
21
|
+
|
22
|
+
<a href="/oauth2-logout" class="button emphasized">
|
23
|
+
<div class="icogram"><span class="text">Logout</span></div>
|
24
|
+
</a>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</div>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html >
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
6
|
+
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
7
|
+
<title>{{title}}</title>
|
8
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@vcl/vcl@2/dist/index.css">
|
9
|
+
<style>
|
10
|
+
.app {
|
11
|
+
height: 100vh;
|
12
|
+
max-width: 100%;
|
13
|
+
}
|
14
|
+
.debug summary {
|
15
|
+
font-weight: bold;
|
16
|
+
}
|
17
|
+
.debug .debug-content {
|
18
|
+
display: none;
|
19
|
+
}
|
20
|
+
.debug .debug-content.visible {
|
21
|
+
display: block;
|
22
|
+
}
|
23
|
+
</style>
|
24
|
+
</head>
|
25
|
+
<body>
|
26
|
+
<div class="app col">
|
27
|
+
<main class="flex col">
|
28
|
+
<div class="flex">
|
29
|
+
{{{ body }}}
|
30
|
+
</div>
|
31
|
+
</main>
|
32
|
+
</div>
|
33
|
+
</body>
|
34
|
+
</html>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<style>
|
2
|
+
.rc-login {
|
3
|
+
height: 100%;
|
4
|
+
background-color: #00adef;
|
5
|
+
}
|
6
|
+
|
7
|
+
.rc-account {
|
8
|
+
width: 815px;
|
9
|
+
box-sizing: border-box;
|
10
|
+
border-radius: .3rem;
|
11
|
+
background: #fff;
|
12
|
+
padding: 1rem;
|
13
|
+
}
|
14
|
+
</style>
|
15
|
+
|
16
|
+
<div class="rc-login flex col justify-center">
|
17
|
+
<div class="self-center justify-center rc-account scale110p">
|
18
|
+
<h2>{{title}}</h2>
|
19
|
+
<div class="col center justify-center">
|
20
|
+
<h3>Login using one of the following providers:</h3>
|
21
|
+
|
22
|
+
<a href="{{links.google}}" class="button emphasized">
|
23
|
+
<div class="icogram"><span class="text">Google</span></div>
|
24
|
+
</a>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</div>
|
@@ -0,0 +1,134 @@
|
|
1
|
+
<style>
|
2
|
+
.rc-login {
|
3
|
+
height: 100%;
|
4
|
+
background-color: #00adef;
|
5
|
+
}
|
6
|
+
|
7
|
+
.rc-account {
|
8
|
+
width: 815px;
|
9
|
+
box-sizing: border-box;
|
10
|
+
border-radius: .3rem;
|
11
|
+
background: #fff;
|
12
|
+
padding: 1rem;
|
13
|
+
}
|
14
|
+
</style>
|
15
|
+
|
16
|
+
<div class="rc-login flex col justify-center">
|
17
|
+
<div class="self-center justify-center rc-account scale110p">
|
18
|
+
<h2>{{title}}</h2>
|
19
|
+
<div class="col center justify-center">
|
20
|
+
<h3>Please register!</h3>
|
21
|
+
<form class="form w-100p" method="post" action="/oauth2-register">
|
22
|
+
<div class="form-control-group embedded-input-field-label floating">
|
23
|
+
<label for="first_name" class="form-control-label">
|
24
|
+
First Name
|
25
|
+
<em class="required-indicator">•</em>
|
26
|
+
</label>
|
27
|
+
<div class="input-field">
|
28
|
+
<input class="input" type="text" autocomplete="off" name="first_name" required>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div class="form-control-group embedded-input-field-label floating">
|
33
|
+
<label for="last_name" class="form-control-label">
|
34
|
+
Last Name
|
35
|
+
<em class="required-indicator">•</em>
|
36
|
+
</label>
|
37
|
+
<div class="input-field">
|
38
|
+
<input class="input" type="text" autocomplete="off" name="last_name" required>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div class="form-control-group embedded-input-field-label floating">
|
43
|
+
<label for="username" class="form-control-label">
|
44
|
+
Username
|
45
|
+
<em class="required-indicator">•</em>
|
46
|
+
</label>
|
47
|
+
<div class="input-field">
|
48
|
+
<input class="input" type="text" autocomplete="off" name="username" required>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
<div class="form-control-group embedded-input-field-label">
|
53
|
+
<label for="email" class="form-control-label">
|
54
|
+
Email
|
55
|
+
<em class="required-indicator">•</em>
|
56
|
+
</label>
|
57
|
+
<div class="input-field">
|
58
|
+
<input class="input" type="email" autocomplete="off" name="email" value="{{email}}" required>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div class="form-control-group embedded-input-field-label floating">
|
63
|
+
<label for="password" class="form-control-label">
|
64
|
+
Password
|
65
|
+
<em class="required-indicator">•</em>
|
66
|
+
</label>
|
67
|
+
<div class="input-field">
|
68
|
+
<input class="input" type="password" autocomplete="off" name="password" required>
|
69
|
+
</div>
|
70
|
+
</div>
|
71
|
+
|
72
|
+
<div class="form-control-group embedded-input-field-label floating">
|
73
|
+
<label for="password_repeated" class="form-control-label">
|
74
|
+
Password Repeated
|
75
|
+
<em class="required-indicator">•</em>
|
76
|
+
</label>
|
77
|
+
<div class="input-field">
|
78
|
+
<input class="input" type="password" autocomplete="off" name="password_repeated" required>
|
79
|
+
</div>
|
80
|
+
</div>
|
81
|
+
|
82
|
+
<button type="submit" class="button emphasized">
|
83
|
+
<div class="icogram"><span class="text">Register</span></div>
|
84
|
+
</button>
|
85
|
+
</form>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
</div>
|
89
|
+
|
90
|
+
<script>
|
91
|
+
!function() {
|
92
|
+
const docRoot = document.demoShadowRoot || document;
|
93
|
+
|
94
|
+
function registerInputFieldListeners(fcg) {
|
95
|
+
const inputField = fcg.querySelector('.input-field');
|
96
|
+
const input = inputField.querySelector('input, textarea');
|
97
|
+
|
98
|
+
function updateState() {
|
99
|
+
const hasValue = typeof input.value === 'string' && input.value.length > 0;
|
100
|
+
const hasFocus = docRoot.activeElement === input;
|
101
|
+
|
102
|
+
if (hasFocus) {
|
103
|
+
inputField.classList.add('focused');
|
104
|
+
fcg.classList.add('focused');
|
105
|
+
} else {
|
106
|
+
inputField.classList.remove('focused');
|
107
|
+
fcg.classList.remove('focused');
|
108
|
+
}
|
109
|
+
|
110
|
+
if (hasValue || hasFocus) {
|
111
|
+
fcg.classList.remove('floating');
|
112
|
+
} else {
|
113
|
+
fcg.classList.add('floating');
|
114
|
+
}
|
115
|
+
}
|
116
|
+
|
117
|
+
input.addEventListener('focus', updateState);
|
118
|
+
input.addEventListener('blur', updateState);
|
119
|
+
input.addEventListener('input', updateState);
|
120
|
+
|
121
|
+
updateState();
|
122
|
+
|
123
|
+
let prependedElements = 0, sibling = input;
|
124
|
+
while (sibling = sibling.previousElementSibling) {
|
125
|
+
prependedElements++;
|
126
|
+
}
|
127
|
+
fcg.style.setProperty('--prepended-elements', prependedElements);
|
128
|
+
|
129
|
+
}
|
130
|
+
|
131
|
+
const form = docRoot.querySelector('form');
|
132
|
+
form.querySelectorAll('.form-control-group').forEach(fcg => registerInputFieldListeners(fcg));
|
133
|
+
}();
|
134
|
+
</script>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import KoaRouter from 'koa-router';
|
2
2
|
import { Provider } from 'oidc-provider';
|
3
3
|
import { Logger } from 'winston';
|
4
4
|
import { IdentityContext } from '../interfaces';
|
@@ -10,4 +10,4 @@ export interface CreateOIDCRouterArgs {
|
|
10
10
|
templates?: OIDCHbsTemplates;
|
11
11
|
loginFn: OIDCBodyLoginFn;
|
12
12
|
}
|
13
|
-
export declare function createOIDCRouter({ logger, loginFn, provider, env, templates }: CreateOIDCRouterArgs):
|
13
|
+
export declare function createOIDCRouter({ logger, loginFn, provider, env, templates }: CreateOIDCRouterArgs): KoaRouter<{}, IdentityContext>;
|
@@ -1,13 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.createOIDCRouter = void 0;
|
4
|
-
const koa_router_1 = require("koa-router");
|
5
|
-
const koa_body_1 = require("koa-body");
|
6
4
|
const templates_1 = require("./templates");
|
5
|
+
const Router = eval('require("koa-router")');
|
6
|
+
const bodyParser = eval('require("koa-body")');
|
7
7
|
function createOIDCRouter({ logger, loginFn, provider, env, templates }) {
|
8
8
|
const dev = env === 'development';
|
9
9
|
const tplEngine = new templates_1.OIDCTemplateEngine(templates);
|
10
|
-
const router = new
|
10
|
+
const router = new Router();
|
11
11
|
router.get('/interaction/:uid', async (ctx, next) => {
|
12
12
|
const { uid, prompt, params, session, } = await provider.interactionDetails(ctx.req, ctx.res);
|
13
13
|
const client = await provider.Client.find(params.client_id);
|
@@ -70,7 +70,7 @@ function createOIDCRouter({ logger, loginFn, provider, env, templates }) {
|
|
70
70
|
// mergeWithLastSubmission: true,
|
71
71
|
// });
|
72
72
|
// });
|
73
|
-
router.post('/interaction/:uid/login',
|
73
|
+
router.post('/interaction/:uid/login', bodyParser({
|
74
74
|
text: false, json: false
|
75
75
|
}), async (ctx) => {
|
76
76
|
const { prompt, uid, params, session } = await provider.interactionDetails(ctx.req, ctx.res);
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<style>
|
2
|
+
</style>
|
3
|
+
{{!-- <div class="login-client-image">
|
4
|
+
<% if (client.logoUri) { %><img src="<%= client.logoUri %>"><% } %>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<ul>
|
8
|
+
<% if ([details.scopes.accepted, details.scopes.rejected, details.claims.accepted, details.claims.rejected].every(({ length }) => length === 0)) { %>
|
9
|
+
<li>this is a new authorization</li>
|
10
|
+
<% } %>
|
11
|
+
|
12
|
+
<% if ([details.scopes.new, details.claims.new].every(({ length }) => length === 0)) { %>
|
13
|
+
<li>the client is asking you to confirm previously given authorization</li>
|
14
|
+
<% } %>
|
15
|
+
|
16
|
+
<% newScopes = new Set(details.scopes.new); newScopes.delete('openid'); newScopes.delete('offline_access') %>
|
17
|
+
<% if (newScopes.size) { %>
|
18
|
+
<li>scopes:</li>
|
19
|
+
<ul>
|
20
|
+
<% newScopes.forEach((scope) => { %>
|
21
|
+
<li><%= scope %></li>
|
22
|
+
<% }) %>
|
23
|
+
</ul>
|
24
|
+
<% } %>
|
25
|
+
|
26
|
+
<% newClaims = new Set(details.claims.new); ['sub', 'sid', 'auth_time', 'acr', 'amr', 'iss'].forEach(Set.prototype.delete.bind(newClaims)) %>
|
27
|
+
<% if (newClaims.size) { %>
|
28
|
+
<li>claims:</li>
|
29
|
+
<ul>
|
30
|
+
<% newClaims.forEach((claim) => { %>
|
31
|
+
<li><%= claim %></li>
|
32
|
+
<% }) %>
|
33
|
+
</ul>
|
34
|
+
<% } %>
|
35
|
+
|
36
|
+
<% if (params.scope && params.scope.includes('offline_access')) { %>
|
37
|
+
<li>
|
38
|
+
the client is asking to have offline access to this authorization
|
39
|
+
<% if (!details.scopes.new.includes('offline_access')) { %>
|
40
|
+
(which you've previously granted)
|
41
|
+
<% } %>
|
42
|
+
</li>
|
43
|
+
<% } %>
|
44
|
+
|
45
|
+
</ul>
|
46
|
+
--}}
|
47
|
+
<form autocomplete="off" action="/interaction/{{ uid }}/confirm" method="post">
|
48
|
+
<button autofocus type="submit" class="login login-submit">Continue</button>
|
49
|
+
</form>
|
@@ -0,0 +1,79 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html >
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
6
|
+
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
7
|
+
<title>{{title}}</title>
|
8
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@vcl/vcl@2/dist/index.css">
|
9
|
+
<style>
|
10
|
+
.app {
|
11
|
+
height: 100vh;
|
12
|
+
max-width: 100%;
|
13
|
+
}
|
14
|
+
.debug summary {
|
15
|
+
font-weight: bold;
|
16
|
+
}
|
17
|
+
.debug .debug-content {
|
18
|
+
display: none;
|
19
|
+
}
|
20
|
+
.debug .debug-content.visible {
|
21
|
+
display: block;
|
22
|
+
}
|
23
|
+
</style>
|
24
|
+
</head>
|
25
|
+
<body>
|
26
|
+
<div class="app col">
|
27
|
+
<main class="flex col">
|
28
|
+
<div class="flex">
|
29
|
+
{{{ body }}}
|
30
|
+
</div>
|
31
|
+
{{#if dev }}
|
32
|
+
{{#if dbg }}
|
33
|
+
|
34
|
+
<div class="debug col align-items-center">
|
35
|
+
<summary class="" style="cursor: pointer;">(Click to expand) DEBUG information</summary>
|
36
|
+
<div class="debug-content">
|
37
|
+
<div>
|
38
|
+
<h2>uid</h2>
|
39
|
+
<p>{{ uid }}</p>
|
40
|
+
</div>
|
41
|
+
{{#if dbg.session}}
|
42
|
+
<div>
|
43
|
+
<h3>Session</h3>
|
44
|
+
<p>{{{ json dbg.session }}}</p>
|
45
|
+
</div>
|
46
|
+
{{/if}}
|
47
|
+
|
48
|
+
{{#if dbg.params}}
|
49
|
+
<div>
|
50
|
+
<h3>Params</h3>
|
51
|
+
<p>{{{ json dbg.params }}}</p>
|
52
|
+
</div>
|
53
|
+
{{/if}}
|
54
|
+
{{#if dbg.prompt}}
|
55
|
+
<div>
|
56
|
+
<h3>Prompt</h3>
|
57
|
+
<p>{{{ json dbg.prompt }}}</p>
|
58
|
+
</div>
|
59
|
+
{{/if}}
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
<script>
|
63
|
+
const sumEl = document.querySelector('.debug > summary');
|
64
|
+
const debugContentEl = document.querySelector('.debug-content');
|
65
|
+
sumEl.addEventListener('click', () => {
|
66
|
+
if (debugContentEl.classList.contains('visible')) {
|
67
|
+
debugContentEl.classList.remove('visible');
|
68
|
+
} else {
|
69
|
+
debugContentEl.classList.add('visible');
|
70
|
+
}
|
71
|
+
});
|
72
|
+
</script>
|
73
|
+
{{/if}}
|
74
|
+
{{/if}}
|
75
|
+
</main>
|
76
|
+
</div>
|
77
|
+
|
78
|
+
</body>
|
79
|
+
</html>
|
@@ -0,0 +1,62 @@
|
|
1
|
+
<style>
|
2
|
+
.rc-login {
|
3
|
+
height: 100%;
|
4
|
+
background-color: #00adef;
|
5
|
+
}
|
6
|
+
|
7
|
+
.rc-login-form {
|
8
|
+
width: 815px;
|
9
|
+
box-sizing: border-box;
|
10
|
+
border-radius: .3rem;
|
11
|
+
background: #fff;
|
12
|
+
padding: 1rem;
|
13
|
+
}
|
14
|
+
</style>
|
15
|
+
|
16
|
+
<div class="rc-login flex col justify-center">
|
17
|
+
<div class="self-center justify-center rc-login-form scale110p">
|
18
|
+
<h2>{{title}}</h2>
|
19
|
+
<div class="row rc-login-form-inner">
|
20
|
+
<div class="w-45p gutter-margin-t-b">
|
21
|
+
<form class="form m-0 ng-pristine ng-invalid ng-touched" autocomplete="off" action="/interaction/{{ uid}}/login" method="post">
|
22
|
+
<div class="form-control-group embedded-input-field-label">
|
23
|
+
<label for="identifier" class="form-control-label">
|
24
|
+
E-Mail or Username
|
25
|
+
</label>
|
26
|
+
<div class="input-field {{#if error}}error{{/if}}">
|
27
|
+
<input value="testuser" id="identifier" name="identifier" type="text">
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
<div class="form-control-group embedded-input-field-label">
|
31
|
+
<label for="password" class="form-control-label">
|
32
|
+
Password
|
33
|
+
</label>
|
34
|
+
<div class="input-field {{#if error}}error{{/if}}">
|
35
|
+
<input value="testpassword" name="password" name="password" type="text">
|
36
|
+
</div>
|
37
|
+
{{#if error}}
|
38
|
+
<div class="form-control-hint error">{{error.message}}</div>
|
39
|
+
{{/if}}
|
40
|
+
</div>
|
41
|
+
<div class="row justify-between">
|
42
|
+
<button type="button" class="button half-transparent"> Forgot your password? </button>
|
43
|
+
<button type="submit" class="button emphasized"> Log in </button>
|
44
|
+
</div>
|
45
|
+
</form>
|
46
|
+
</div>
|
47
|
+
<div class="w-10p divider divider-vertical row center justify-center rc-login-form-divider-v">
|
48
|
+
<div class="divider-rule"></div>
|
49
|
+
<div class="icogram divider-element">
|
50
|
+
<div class="text">or</div>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
<div class="w-45p col justify-center gutter-margin-t-b">
|
54
|
+
<a href="https://todo" class="col justify-center">
|
55
|
+
<button type="button" class="button emphasized">
|
56
|
+
Create an Account
|
57
|
+
</button>
|
58
|
+
</a>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
</div>
|
@@ -442,9 +442,9 @@ export declare type IoRestorecommerceLocationLocation = {
|
|
442
442
|
description?: Maybe<Scalars['String']>;
|
443
443
|
organizationId?: Maybe<Scalars['String']>;
|
444
444
|
parentId?: Maybe<Scalars['String']>;
|
445
|
-
childrenIds?: Maybe<Array<Scalars['String']>>;
|
446
445
|
addressId?: Maybe<Scalars['String']>;
|
447
446
|
data?: Maybe<GoogleProtobufAny>;
|
447
|
+
type?: Maybe<Scalars['String']>;
|
448
448
|
};
|
449
449
|
export declare type GoogleProtobufAny = {
|
450
450
|
__typename?: 'GoogleProtobufAny';
|
@@ -479,7 +479,6 @@ export declare type IoRestorecommerceOrganizationOrganization = {
|
|
479
479
|
meta?: Maybe<IoRestorecommerceMetaMeta>;
|
480
480
|
addressId?: Maybe<Scalars['String']>;
|
481
481
|
parentId?: Maybe<Scalars['String']>;
|
482
|
-
childrenIds?: Maybe<Array<Scalars['String']>>;
|
483
482
|
contactPointIds?: Maybe<Array<Scalars['String']>>;
|
484
483
|
website?: Maybe<Scalars['String']>;
|
485
484
|
email?: Maybe<Scalars['String']>;
|
@@ -860,9 +859,9 @@ export declare type IIoRestorecommerceLocationLocation = {
|
|
860
859
|
description?: Maybe<Scalars['String']>;
|
861
860
|
organizationId?: Maybe<Scalars['String']>;
|
862
861
|
parentId?: Maybe<Scalars['String']>;
|
863
|
-
childrenIds?: Maybe<Array<Scalars['String']>>;
|
864
862
|
addressId?: Maybe<Scalars['String']>;
|
865
863
|
data?: Maybe<IGoogleProtobufAny>;
|
864
|
+
type?: Maybe<Scalars['String']>;
|
866
865
|
};
|
867
866
|
export declare type ResourceOrganizationMutation = {
|
868
867
|
__typename?: 'ResourceOrganizationMutation';
|
@@ -885,7 +884,6 @@ export declare type IIoRestorecommerceOrganizationOrganization = {
|
|
885
884
|
meta?: Maybe<IIoRestorecommerceMetaMeta>;
|
886
885
|
addressId?: Maybe<Scalars['String']>;
|
887
886
|
parentId?: Maybe<Scalars['String']>;
|
888
|
-
childrenIds?: Maybe<Array<Scalars['String']>>;
|
889
887
|
contactPointIds?: Maybe<Array<Scalars['String']>>;
|
890
888
|
website?: Maybe<Scalars['String']>;
|
891
889
|
email?: Maybe<Scalars['String']>;
|
@@ -1636,9 +1634,9 @@ export declare type IoRestorecommerceLocationLocationResolvers<ContextType = Res
|
|
1636
1634
|
description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1637
1635
|
organizationId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1638
1636
|
parentId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1639
|
-
childrenIds?: Resolver<Maybe<Array<ResolversTypes['String']>>, ParentType, ContextType>;
|
1640
1637
|
addressId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1641
1638
|
data?: Resolver<Maybe<ResolversTypes['GoogleProtobufAny']>, ParentType, ContextType>;
|
1639
|
+
type?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1642
1640
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1643
1641
|
}>;
|
1644
1642
|
export declare type GoogleProtobufAnyResolvers<ContextType = ResourceContext, ParentType extends ResolversParentTypes['GoogleProtobufAny'] = ResolversParentTypes['GoogleProtobufAny']> = ResolversObject<{
|
@@ -1673,7 +1671,6 @@ export declare type IoRestorecommerceOrganizationOrganizationResolvers<ContextTy
|
|
1673
1671
|
meta?: Resolver<Maybe<ResolversTypes['IoRestorecommerceMetaMeta']>, ParentType, ContextType>;
|
1674
1672
|
addressId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1675
1673
|
parentId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1676
|
-
childrenIds?: Resolver<Maybe<Array<ResolversTypes['String']>>, ParentType, ContextType>;
|
1677
1674
|
contactPointIds?: Resolver<Maybe<Array<ResolversTypes['String']>>, ParentType, ContextType>;
|
1678
1675
|
website?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1679
1676
|
email?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@restorecommerce/facade",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.3.0",
|
4
4
|
"description": "Facade for Restorecommerce microservices",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"typings": "dist/index.d.ts",
|
@@ -24,15 +24,16 @@
|
|
24
24
|
"@cloudnative/health": "^2.1.2",
|
25
25
|
"@grpc/grpc-js": "^1.2.12",
|
26
26
|
"@grpc/proto-loader": "^0.6.0",
|
27
|
-
"@restorecommerce/grpc-client": "^0.3.
|
28
|
-
"@restorecommerce/kafka-client": "^0.3.
|
29
|
-
"@restorecommerce/logger": "^0.12.
|
30
|
-
"@restorecommerce/rc-grpc-clients": "^0.4.
|
31
|
-
"@restorecommerce/service-config": "^0.4.
|
27
|
+
"@restorecommerce/grpc-client": "^0.3.1",
|
28
|
+
"@restorecommerce/kafka-client": "^0.3.1",
|
29
|
+
"@restorecommerce/logger": "^0.12.1",
|
30
|
+
"@restorecommerce/rc-grpc-clients": "^0.4.2",
|
31
|
+
"@restorecommerce/service-config": "^0.4.25",
|
32
32
|
"apollo-server-koa": "^2.21.2",
|
33
33
|
"debug": "^4.3.1",
|
34
34
|
"googleapis": "^92.0.0",
|
35
35
|
"handlebars": "^4.7.7",
|
36
|
+
"jose": "^4.5.0",
|
36
37
|
"koa": "^2.13.1",
|
37
38
|
"koa-body": "^4.2.0",
|
38
39
|
"koa-helmet": "^6.1.0",
|
@@ -85,7 +86,7 @@
|
|
85
86
|
"typescript": "^4.2.3"
|
86
87
|
},
|
87
88
|
"scripts": {
|
88
|
-
"build": "npm-run-all build:clean generate build:compile build:codegen:clean build:codegen:compile",
|
89
|
+
"build": "npm-run-all build:clean generate build:compile build:codegen:clean build:codegen:compile copyhbs",
|
89
90
|
"build:clean": "rimraf -rf ./dist",
|
90
91
|
"build:compile": "tsc -p tsconfig.lib.json",
|
91
92
|
"build:codegen:clean": "rimraf -rf ./codegen",
|
@@ -97,7 +98,8 @@
|
|
97
98
|
"dev:serve": "TS_NODE_PROJECT=tsconfig.test.json nodemon -e ts,hbs -w ./tests -w ./src -x node --inspect=7000 -r ts-node/register tests/server.ts",
|
98
99
|
"generate": "ts-node --project tsconfig.generate.json -r tsconfig-paths/register generate.ts",
|
99
100
|
"prepublishOnly": "npm run build",
|
100
|
-
"debug-run": "ts-node --project tsconfig.debug.json debug-run.ts"
|
101
|
+
"debug-run": "ts-node --project tsconfig.debug.json debug-run.ts",
|
102
|
+
"copyhbs": "sh copy-hbs.sh"
|
101
103
|
},
|
102
104
|
"engines": {
|
103
105
|
"node": ">= 12.18.0"
|
@@ -105,5 +107,5 @@
|
|
105
107
|
"publishConfig": {
|
106
108
|
"access": "public"
|
107
109
|
},
|
108
|
-
"gitHead": "
|
110
|
+
"gitHead": "48d54d4a52972fa4c7f03a105241ea0662454e83"
|
109
111
|
}
|