@restorecommerce/facade 1.3.8 → 1.3.10

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.
Files changed (266) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/codegen/index.d.ts +12 -0
  3. package/codegen/index.js +43 -0
  4. package/dist/gql/index.d.ts +1 -0
  5. package/dist/gql/index.js +1 -0
  6. package/dist/gql/protos/federation.d.ts +6 -0
  7. package/dist/gql/protos/federation.js +46 -0
  8. package/dist/gql/protos/graphql.d.ts +11 -0
  9. package/dist/gql/protos/graphql.js +158 -0
  10. package/dist/gql/protos/index.d.ts +6 -0
  11. package/dist/gql/protos/index.js +6 -0
  12. package/dist/gql/protos/registry.d.ts +23 -0
  13. package/dist/gql/protos/registry.js +366 -0
  14. package/dist/gql/protos/resolvers.d.ts +9 -0
  15. package/dist/gql/protos/resolvers.js +487 -0
  16. package/dist/gql/protos/schema.d.ts +14 -0
  17. package/dist/gql/protos/schema.js +224 -0
  18. package/dist/gql/protos/stream-to-async-iterator.d.ts +50 -0
  19. package/dist/gql/protos/stream-to-async-iterator.js +190 -0
  20. package/dist/gql/protos/types.d.ts +96 -0
  21. package/dist/gql/protos/types.js +1 -0
  22. package/dist/gql/protos/utils.d.ts +18 -0
  23. package/dist/gql/protos/utils.js +133 -0
  24. package/dist/gql/types/AccessControlTypes.d.ts +6 -0
  25. package/dist/gql/types/AccessControlTypes.js +97 -0
  26. package/dist/gql/types/DateType.d.ts +2 -0
  27. package/dist/gql/types/DateType.js +29 -0
  28. package/dist/gql/types/FilterType.d.ts +2 -0
  29. package/dist/gql/types/FilterType.js +72 -0
  30. package/dist/gql/types/MetaType.d.ts +2 -0
  31. package/dist/gql/types/MetaType.js +25 -0
  32. package/dist/gql/types/ScopeType.d.ts +2 -0
  33. package/dist/gql/types/ScopeType.js +13 -0
  34. package/dist/gql/types/SortType.d.ts +3 -0
  35. package/dist/gql/types/SortType.js +30 -0
  36. package/dist/gql/types/StatusType.d.ts +2 -0
  37. package/dist/gql/types/StatusType.js +15 -0
  38. package/dist/gql/types/index.d.ts +7 -0
  39. package/dist/gql/types/index.js +7 -0
  40. package/dist/index.d.ts +66 -0
  41. package/dist/index.js +315 -0
  42. package/dist/interfaces.d.ts +54 -0
  43. package/dist/interfaces.js +6 -0
  44. package/dist/middlewares/index.d.ts +1 -0
  45. package/dist/middlewares/index.js +1 -0
  46. package/dist/middlewares/req-res-logger/index.d.ts +14 -0
  47. package/dist/middlewares/req-res-logger/index.js +90 -0
  48. package/dist/modules/access-control/gql/federation.d.ts +2 -0
  49. package/dist/modules/access-control/gql/federation.js +13 -0
  50. package/dist/modules/access-control/gql/schema.d.ts +2 -0
  51. package/dist/modules/access-control/gql/schema.generated.d.ts +1147 -0
  52. package/dist/modules/access-control/gql/schema.generated.js +80 -0
  53. package/dist/modules/access-control/gql/schema.js +5 -0
  54. package/dist/modules/access-control/gql/types.d.ts +3 -0
  55. package/dist/modules/access-control/gql/types.js +14 -0
  56. package/dist/modules/access-control/grpc/index.d.ts +13 -0
  57. package/dist/modules/access-control/grpc/index.js +14 -0
  58. package/dist/modules/access-control/index.d.ts +2 -0
  59. package/dist/modules/access-control/index.js +26 -0
  60. package/dist/modules/access-control/interfaces.d.ts +15 -0
  61. package/dist/modules/access-control/interfaces.js +1 -0
  62. package/dist/modules/catalog/gql/federation.d.ts +2 -0
  63. package/dist/modules/catalog/gql/federation.js +13 -0
  64. package/dist/modules/catalog/gql/schema.d.ts +2 -0
  65. package/dist/modules/catalog/gql/schema.generated.d.ts +1981 -0
  66. package/dist/modules/catalog/gql/schema.generated.js +74 -0
  67. package/dist/modules/catalog/gql/schema.js +5 -0
  68. package/dist/modules/catalog/gql/types.d.ts +3 -0
  69. package/dist/modules/catalog/gql/types.js +16 -0
  70. package/dist/modules/catalog/grpc/index.d.ts +15 -0
  71. package/dist/modules/catalog/grpc/index.js +16 -0
  72. package/dist/modules/catalog/index.d.ts +2 -0
  73. package/dist/modules/catalog/index.js +26 -0
  74. package/dist/modules/catalog/interfaces.d.ts +16 -0
  75. package/dist/modules/catalog/interfaces.js +1 -0
  76. package/dist/modules/facade-status/gql/index.d.ts +1 -0
  77. package/dist/modules/facade-status/gql/index.js +11 -0
  78. package/dist/modules/facade-status/gql/resolvers.d.ts +2 -0
  79. package/dist/modules/facade-status/gql/resolvers.js +18 -0
  80. package/dist/modules/facade-status/gql/schema.d.ts +3 -0
  81. package/dist/modules/facade-status/gql/schema.generated.d.ts +109 -0
  82. package/dist/modules/facade-status/gql/schema.generated.js +1 -0
  83. package/dist/modules/facade-status/gql/schema.js +14 -0
  84. package/dist/modules/facade-status/gql/types.d.ts +2 -0
  85. package/dist/modules/facade-status/gql/types.js +10 -0
  86. package/dist/modules/facade-status/index.d.ts +2 -0
  87. package/dist/modules/facade-status/index.js +8 -0
  88. package/dist/modules/facade-status/interfaces.d.ts +4 -0
  89. package/dist/modules/facade-status/interfaces.js +1 -0
  90. package/dist/modules/fulfillment/gql/federation.d.ts +2 -0
  91. package/dist/modules/fulfillment/gql/federation.js +13 -0
  92. package/dist/modules/fulfillment/gql/schema.d.ts +2 -0
  93. package/dist/modules/fulfillment/gql/schema.generated.d.ts +2729 -0
  94. package/dist/modules/fulfillment/gql/schema.generated.js +97 -0
  95. package/dist/modules/fulfillment/gql/schema.js +5 -0
  96. package/dist/modules/fulfillment/gql/types.d.ts +3 -0
  97. package/dist/modules/fulfillment/gql/types.js +12 -0
  98. package/dist/modules/fulfillment/grpc/index.d.ts +9 -0
  99. package/dist/modules/fulfillment/grpc/index.js +10 -0
  100. package/dist/modules/fulfillment/index.d.ts +2 -0
  101. package/dist/modules/fulfillment/index.js +26 -0
  102. package/dist/modules/fulfillment/interfaces.d.ts +16 -0
  103. package/dist/modules/fulfillment/interfaces.js +1 -0
  104. package/dist/modules/identity/api-key/api-key.d.ts +11 -0
  105. package/dist/modules/identity/api-key/api-key.js +137 -0
  106. package/dist/modules/identity/gql/federation.d.ts +2 -0
  107. package/dist/modules/identity/gql/federation.js +5 -0
  108. package/dist/modules/identity/gql/schema.d.ts +2 -0
  109. package/dist/modules/identity/gql/schema.generated.d.ts +1686 -0
  110. package/dist/modules/identity/gql/schema.generated.js +75 -0
  111. package/dist/modules/identity/gql/schema.js +5 -0
  112. package/dist/modules/identity/gql/types.d.ts +3 -0
  113. package/dist/modules/identity/gql/types.js +18 -0
  114. package/dist/modules/identity/grpc/index.d.ts +15 -0
  115. package/dist/modules/identity/grpc/index.js +16 -0
  116. package/dist/modules/identity/index.d.ts +4 -0
  117. package/dist/modules/identity/index.js +54 -0
  118. package/dist/modules/identity/interfaces.d.ts +22 -0
  119. package/dist/modules/identity/interfaces.js +1 -0
  120. package/dist/modules/identity/oauth/oauth.d.ts +11 -0
  121. package/dist/modules/identity/oauth/oauth.js +170 -0
  122. package/dist/modules/identity/oidc/adapter.d.ts +4 -0
  123. package/dist/modules/identity/oidc/adapter.js +135 -0
  124. package/dist/modules/identity/oidc/in-memory-adapter.d.ts +16 -0
  125. package/dist/modules/identity/oidc/in-memory-adapter.js +85 -0
  126. package/dist/modules/identity/oidc/index.d.ts +18 -0
  127. package/dist/modules/identity/oidc/index.js +147 -0
  128. package/dist/modules/identity/oidc/interfaces.d.ts +73 -0
  129. package/dist/modules/identity/oidc/interfaces.js +7 -0
  130. package/dist/modules/identity/oidc/password-grant.d.ts +2 -0
  131. package/dist/modules/identity/oidc/password-grant.js +163 -0
  132. package/dist/modules/identity/oidc/router.d.ts +13 -0
  133. package/dist/modules/identity/oidc/router.js +164 -0
  134. package/dist/modules/identity/oidc/templates.d.ts +36 -0
  135. package/dist/modules/identity/oidc/templates.js +60 -0
  136. package/dist/modules/identity/oidc/user.d.ts +6 -0
  137. package/dist/modules/identity/oidc/user.js +91 -0
  138. package/dist/modules/identity/oidc/utils.d.ts +6 -0
  139. package/dist/modules/identity/oidc/utils.js +15 -0
  140. package/dist/modules/index.d.ts +13 -0
  141. package/dist/modules/index.js +13 -0
  142. package/dist/modules/indexing/gql/federation.d.ts +2 -0
  143. package/dist/modules/indexing/gql/federation.js +13 -0
  144. package/dist/modules/indexing/gql/schema.d.ts +2 -0
  145. package/dist/modules/indexing/gql/schema.generated.d.ts +231 -0
  146. package/dist/modules/indexing/gql/schema.generated.js +6 -0
  147. package/dist/modules/indexing/gql/schema.js +5 -0
  148. package/dist/modules/indexing/gql/types.d.ts +3 -0
  149. package/dist/modules/indexing/gql/types.js +8 -0
  150. package/dist/modules/indexing/grpc/index.d.ts +7 -0
  151. package/dist/modules/indexing/grpc/index.js +8 -0
  152. package/dist/modules/indexing/index.d.ts +2 -0
  153. package/dist/modules/indexing/index.js +26 -0
  154. package/dist/modules/indexing/interfaces.d.ts +13 -0
  155. package/dist/modules/indexing/interfaces.js +1 -0
  156. package/dist/modules/invoicing/gql/federation.d.ts +2 -0
  157. package/dist/modules/invoicing/gql/federation.js +13 -0
  158. package/dist/modules/invoicing/gql/schema.d.ts +2 -0
  159. package/dist/modules/invoicing/gql/schema.generated.d.ts +2196 -0
  160. package/dist/modules/invoicing/gql/schema.generated.js +86 -0
  161. package/dist/modules/invoicing/gql/schema.js +5 -0
  162. package/dist/modules/invoicing/gql/types.d.ts +3 -0
  163. package/dist/modules/invoicing/gql/types.js +8 -0
  164. package/dist/modules/invoicing/grpc/index.d.ts +7 -0
  165. package/dist/modules/invoicing/grpc/index.js +8 -0
  166. package/dist/modules/invoicing/index.d.ts +2 -0
  167. package/dist/modules/invoicing/index.js +26 -0
  168. package/dist/modules/invoicing/interfaces.d.ts +16 -0
  169. package/dist/modules/invoicing/interfaces.js +1 -0
  170. package/dist/modules/master_data/gql/federation.d.ts +2 -0
  171. package/dist/modules/master_data/gql/federation.js +13 -0
  172. package/dist/modules/master_data/gql/schema.d.ts +2 -0
  173. package/dist/modules/master_data/gql/schema.generated.d.ts +2510 -0
  174. package/dist/modules/master_data/gql/schema.generated.js +109 -0
  175. package/dist/modules/master_data/gql/schema.js +5 -0
  176. package/dist/modules/master_data/gql/types.d.ts +3 -0
  177. package/dist/modules/master_data/gql/types.js +32 -0
  178. package/dist/modules/master_data/grpc/index.d.ts +30 -0
  179. package/dist/modules/master_data/grpc/index.js +32 -0
  180. package/dist/modules/master_data/index.d.ts +2 -0
  181. package/dist/modules/master_data/index.js +26 -0
  182. package/dist/modules/master_data/interfaces.d.ts +16 -0
  183. package/dist/modules/master_data/interfaces.js +1 -0
  184. package/dist/modules/notification/gql/federation.d.ts +2 -0
  185. package/dist/modules/notification/gql/federation.js +13 -0
  186. package/dist/modules/notification/gql/schema.d.ts +2 -0
  187. package/dist/modules/notification/gql/schema.generated.d.ts +655 -0
  188. package/dist/modules/notification/gql/schema.generated.js +68 -0
  189. package/dist/modules/notification/gql/schema.js +5 -0
  190. package/dist/modules/notification/gql/types.d.ts +3 -0
  191. package/dist/modules/notification/gql/types.js +8 -0
  192. package/dist/modules/notification/grpc/index.d.ts +7 -0
  193. package/dist/modules/notification/grpc/index.js +8 -0
  194. package/dist/modules/notification/index.d.ts +2 -0
  195. package/dist/modules/notification/index.js +26 -0
  196. package/dist/modules/notification/interfaces.d.ts +16 -0
  197. package/dist/modules/notification/interfaces.js +1 -0
  198. package/dist/modules/ordering/gql/federation.d.ts +2 -0
  199. package/dist/modules/ordering/gql/federation.js +13 -0
  200. package/dist/modules/ordering/gql/schema.d.ts +2 -0
  201. package/dist/modules/ordering/gql/schema.generated.d.ts +2599 -0
  202. package/dist/modules/ordering/gql/schema.generated.js +113 -0
  203. package/dist/modules/ordering/gql/schema.js +5 -0
  204. package/dist/modules/ordering/gql/types.d.ts +3 -0
  205. package/dist/modules/ordering/gql/types.js +8 -0
  206. package/dist/modules/ordering/grpc/index.d.ts +7 -0
  207. package/dist/modules/ordering/grpc/index.js +8 -0
  208. package/dist/modules/ordering/index.d.ts +2 -0
  209. package/dist/modules/ordering/index.js +26 -0
  210. package/dist/modules/ordering/interfaces.d.ts +16 -0
  211. package/dist/modules/ordering/interfaces.js +1 -0
  212. package/dist/modules/ostorage/gql/federation.d.ts +2 -0
  213. package/dist/modules/ostorage/gql/federation.js +13 -0
  214. package/dist/modules/ostorage/gql/schema.d.ts +2 -0
  215. package/dist/modules/ostorage/gql/schema.generated.d.ts +869 -0
  216. package/dist/modules/ostorage/gql/schema.generated.js +31 -0
  217. package/dist/modules/ostorage/gql/schema.js +5 -0
  218. package/dist/modules/ostorage/gql/types.d.ts +3 -0
  219. package/dist/modules/ostorage/gql/types.js +8 -0
  220. package/dist/modules/ostorage/grpc/index.d.ts +7 -0
  221. package/dist/modules/ostorage/grpc/index.js +8 -0
  222. package/dist/modules/ostorage/index.d.ts +2 -0
  223. package/dist/modules/ostorage/index.js +46 -0
  224. package/dist/modules/ostorage/interfaces.d.ts +16 -0
  225. package/dist/modules/ostorage/interfaces.js +1 -0
  226. package/dist/modules/ostorage/objectDownloadReqHandler.d.ts +1 -0
  227. package/dist/modules/ostorage/objectDownloadReqHandler.js +133 -0
  228. package/dist/modules/payment/gql/federation.d.ts +2 -0
  229. package/dist/modules/payment/gql/federation.js +13 -0
  230. package/dist/modules/payment/gql/schema.d.ts +2 -0
  231. package/dist/modules/payment/gql/schema.generated.d.ts +647 -0
  232. package/dist/modules/payment/gql/schema.generated.js +156 -0
  233. package/dist/modules/payment/gql/schema.js +5 -0
  234. package/dist/modules/payment/gql/types.d.ts +3 -0
  235. package/dist/modules/payment/gql/types.js +8 -0
  236. package/dist/modules/payment/grpc/index.d.ts +7 -0
  237. package/dist/modules/payment/grpc/index.js +8 -0
  238. package/dist/modules/payment/index.d.ts +2 -0
  239. package/dist/modules/payment/index.js +26 -0
  240. package/dist/modules/payment/interfaces.d.ts +16 -0
  241. package/dist/modules/payment/interfaces.js +1 -0
  242. package/dist/modules/scheduling/gql/federation.d.ts +2 -0
  243. package/dist/modules/scheduling/gql/federation.js +13 -0
  244. package/dist/modules/scheduling/gql/schema.d.ts +2 -0
  245. package/dist/modules/scheduling/gql/schema.generated.d.ts +651 -0
  246. package/dist/modules/scheduling/gql/schema.generated.js +31 -0
  247. package/dist/modules/scheduling/gql/schema.js +5 -0
  248. package/dist/modules/scheduling/gql/types.d.ts +3 -0
  249. package/dist/modules/scheduling/gql/types.js +8 -0
  250. package/dist/modules/scheduling/grpc/index.d.ts +7 -0
  251. package/dist/modules/scheduling/grpc/index.js +8 -0
  252. package/dist/modules/scheduling/index.d.ts +2 -0
  253. package/dist/modules/scheduling/index.js +26 -0
  254. package/dist/modules/scheduling/interfaces.d.ts +16 -0
  255. package/dist/modules/scheduling/interfaces.js +1 -0
  256. package/dist/utils.d.ts +5 -0
  257. package/dist/utils.js +14 -0
  258. package/package.json +9 -8
  259. package/tsconfig-base.json +19 -8
  260. package/tsconfig.codegen.json +1 -0
  261. package/tsconfig.debug.json +5 -1
  262. package/tsconfig.generate.json +3 -0
  263. package/tsconfig.lib.json +2 -1
  264. package/tsconfig.test.json +22 -1
  265. package/codegen/tsconfig.codegen.tsbuildinfo +0 -1
  266. package/dist/tsconfig.lib.tsbuildinfo +0 -1
@@ -0,0 +1,75 @@
1
+ export var IoRestorecommerceUserUserType;
2
+ (function (IoRestorecommerceUserUserType) {
3
+ IoRestorecommerceUserUserType[IoRestorecommerceUserUserType["OrgUser"] = 0] = "OrgUser";
4
+ IoRestorecommerceUserUserType[IoRestorecommerceUserUserType["IndividualUser"] = 1] = "IndividualUser";
5
+ IoRestorecommerceUserUserType[IoRestorecommerceUserUserType["Guest"] = 2] = "Guest";
6
+ IoRestorecommerceUserUserType[IoRestorecommerceUserUserType["TechnicalUser"] = 3] = "TechnicalUser";
7
+ })(IoRestorecommerceUserUserType || (IoRestorecommerceUserUserType = {}));
8
+ export var IoRestorecommerceResourcebaseSortSortOrder;
9
+ (function (IoRestorecommerceResourcebaseSortSortOrder) {
10
+ IoRestorecommerceResourcebaseSortSortOrder[IoRestorecommerceResourcebaseSortSortOrder["Unsorted"] = 0] = "Unsorted";
11
+ IoRestorecommerceResourcebaseSortSortOrder[IoRestorecommerceResourcebaseSortSortOrder["Ascending"] = 1] = "Ascending";
12
+ IoRestorecommerceResourcebaseSortSortOrder[IoRestorecommerceResourcebaseSortSortOrder["Descending"] = 2] = "Descending";
13
+ })(IoRestorecommerceResourcebaseSortSortOrder || (IoRestorecommerceResourcebaseSortSortOrder = {}));
14
+ export var IoRestorecommerceResourcebaseFilterOperation;
15
+ (function (IoRestorecommerceResourcebaseFilterOperation) {
16
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["Eq"] = 0] = "Eq";
17
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["Lt"] = 1] = "Lt";
18
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["Lte"] = 2] = "Lte";
19
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["Gt"] = 3] = "Gt";
20
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["Gte"] = 4] = "Gte";
21
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["IsEmpty"] = 5] = "IsEmpty";
22
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["ILike"] = 6] = "ILike";
23
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["In"] = 7] = "In";
24
+ IoRestorecommerceResourcebaseFilterOperation[IoRestorecommerceResourcebaseFilterOperation["Neq"] = 8] = "Neq";
25
+ })(IoRestorecommerceResourcebaseFilterOperation || (IoRestorecommerceResourcebaseFilterOperation = {}));
26
+ export var IoRestorecommerceResourcebaseFilterValueType;
27
+ (function (IoRestorecommerceResourcebaseFilterValueType) {
28
+ IoRestorecommerceResourcebaseFilterValueType[IoRestorecommerceResourcebaseFilterValueType["String"] = 0] = "String";
29
+ IoRestorecommerceResourcebaseFilterValueType[IoRestorecommerceResourcebaseFilterValueType["Number"] = 1] = "Number";
30
+ IoRestorecommerceResourcebaseFilterValueType[IoRestorecommerceResourcebaseFilterValueType["Boolean"] = 2] = "Boolean";
31
+ IoRestorecommerceResourcebaseFilterValueType[IoRestorecommerceResourcebaseFilterValueType["Date"] = 3] = "Date";
32
+ IoRestorecommerceResourcebaseFilterValueType[IoRestorecommerceResourcebaseFilterValueType["Array"] = 4] = "Array";
33
+ })(IoRestorecommerceResourcebaseFilterValueType || (IoRestorecommerceResourcebaseFilterValueType = {}));
34
+ export var IoRestorecommerceFilterFilterOperation;
35
+ (function (IoRestorecommerceFilterFilterOperation) {
36
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["Eq"] = 0] = "Eq";
37
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["Lt"] = 1] = "Lt";
38
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["Lte"] = 2] = "Lte";
39
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["Gt"] = 3] = "Gt";
40
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["Gte"] = 4] = "Gte";
41
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["IsEmpty"] = 5] = "IsEmpty";
42
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["ILike"] = 6] = "ILike";
43
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["In"] = 7] = "In";
44
+ IoRestorecommerceFilterFilterOperation[IoRestorecommerceFilterFilterOperation["Neq"] = 8] = "Neq";
45
+ })(IoRestorecommerceFilterFilterOperation || (IoRestorecommerceFilterFilterOperation = {}));
46
+ export var IoRestorecommerceFilterFilterValueType;
47
+ (function (IoRestorecommerceFilterFilterValueType) {
48
+ IoRestorecommerceFilterFilterValueType[IoRestorecommerceFilterFilterValueType["String"] = 0] = "String";
49
+ IoRestorecommerceFilterFilterValueType[IoRestorecommerceFilterFilterValueType["Number"] = 1] = "Number";
50
+ IoRestorecommerceFilterFilterValueType[IoRestorecommerceFilterFilterValueType["Boolean"] = 2] = "Boolean";
51
+ IoRestorecommerceFilterFilterValueType[IoRestorecommerceFilterFilterValueType["Date"] = 3] = "Date";
52
+ IoRestorecommerceFilterFilterValueType[IoRestorecommerceFilterFilterValueType["Array"] = 4] = "Array";
53
+ })(IoRestorecommerceFilterFilterValueType || (IoRestorecommerceFilterFilterValueType = {}));
54
+ export var IoRestorecommerceFilterFilterOpOperator;
55
+ (function (IoRestorecommerceFilterFilterOpOperator) {
56
+ IoRestorecommerceFilterFilterOpOperator[IoRestorecommerceFilterFilterOpOperator["And"] = 0] = "And";
57
+ IoRestorecommerceFilterFilterOpOperator[IoRestorecommerceFilterFilterOpOperator["Or"] = 1] = "Or";
58
+ })(IoRestorecommerceFilterFilterOpOperator || (IoRestorecommerceFilterFilterOpOperator = {}));
59
+ export var IoRestorecommerceResourcebaseFilterOpOperator;
60
+ (function (IoRestorecommerceResourcebaseFilterOpOperator) {
61
+ IoRestorecommerceResourcebaseFilterOpOperator[IoRestorecommerceResourcebaseFilterOpOperator["And"] = 0] = "And";
62
+ IoRestorecommerceResourcebaseFilterOpOperator[IoRestorecommerceResourcebaseFilterOpOperator["Or"] = 1] = "Or";
63
+ })(IoRestorecommerceResourcebaseFilterOpOperator || (IoRestorecommerceResourcebaseFilterOpOperator = {}));
64
+ export var ModeType;
65
+ (function (ModeType) {
66
+ ModeType["Create"] = "CREATE";
67
+ ModeType["Update"] = "UPDATE";
68
+ ModeType["Upsert"] = "UPSERT";
69
+ })(ModeType || (ModeType = {}));
70
+ export var SubscriptionAction;
71
+ (function (SubscriptionAction) {
72
+ SubscriptionAction["Created"] = "CREATED";
73
+ SubscriptionAction["Updated"] = "UPDATED";
74
+ SubscriptionAction["Deleted"] = "DELETED";
75
+ })(SubscriptionAction || (SubscriptionAction = {}));
@@ -0,0 +1,5 @@
1
+ import { registerTypings, subServices } from './types.js';
2
+ import { generateSubServiceSchemas } from '../../../gql/protos/index.js';
3
+ import { namespace } from '../interfaces.js';
4
+ registerTypings();
5
+ export const schema = (cfg) => generateSubServiceSchemas(subServices, cfg, namespace, 'Identity');
@@ -0,0 +1,3 @@
1
+ import { type ProtoMetadata } from '../../../gql/protos/index.js';
2
+ export declare const subServices: ProtoMetadata[];
3
+ export declare const registerTypings: () => void;
@@ -0,0 +1,18 @@
1
+ import { protoMetadata as metaPackageIoRestorecommerceUser } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/user.js';
2
+ import { protoMetadata as metaPackageIoRestorecommerceRole } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/role.js';
3
+ import { protoMetadata as metaPackageIoRestorecommerceAuthentication_log } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/authentication_log.js';
4
+ import { protoMetadata as metaPackageIoRestorecommerceToken } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/token.js';
5
+ import { protoMetadata as metaPackageIoRestorecommerceOauth } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/oauth.js';
6
+ import { registerPackagesRecursive } from '../../../gql/protos/index.js';
7
+ import { registerProtoMeta } from '@restorecommerce/kafka-client';
8
+ export const subServices = [
9
+ metaPackageIoRestorecommerceUser,
10
+ metaPackageIoRestorecommerceRole,
11
+ metaPackageIoRestorecommerceAuthentication_log,
12
+ metaPackageIoRestorecommerceToken,
13
+ metaPackageIoRestorecommerceOauth,
14
+ ];
15
+ export const registerTypings = () => {
16
+ registerPackagesRecursive(...subServices);
17
+ registerProtoMeta(...subServices);
18
+ };
@@ -0,0 +1,15 @@
1
+ import { RestoreCommerceGrpcClient } from '@restorecommerce/rc-grpc-clients';
2
+ import { type UserServiceClient } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/user.js';
3
+ import { type RoleServiceClient } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/role.js';
4
+ import { type AuthenticationLogServiceClient } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/authentication_log.js';
5
+ import { type TokenServiceClient } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/token.js';
6
+ import { type OAuthServiceClient } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/oauth.js';
7
+ import { type GrpcClientConfig } from '@restorecommerce/grpc-client';
8
+ export declare class IdentitySrvGrpcClient extends RestoreCommerceGrpcClient {
9
+ readonly user: UserServiceClient;
10
+ readonly role: RoleServiceClient;
11
+ readonly authentication_log: AuthenticationLogServiceClient;
12
+ readonly token: TokenServiceClient;
13
+ readonly oauth: OAuthServiceClient;
14
+ constructor(address: string, cfg: GrpcClientConfig);
15
+ }
@@ -0,0 +1,16 @@
1
+ import { RestoreCommerceGrpcClient } from '@restorecommerce/rc-grpc-clients';
2
+ import { UserServiceDefinition } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/user.js';
3
+ import { RoleServiceDefinition } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/role.js';
4
+ import { AuthenticationLogServiceDefinition } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/authentication_log.js';
5
+ import { TokenServiceDefinition } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/token.js';
6
+ import { OAuthServiceDefinition } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/oauth.js';
7
+ export class IdentitySrvGrpcClient extends RestoreCommerceGrpcClient {
8
+ constructor(address, cfg) {
9
+ super(address, cfg);
10
+ this.user = this.createClient(cfg, UserServiceDefinition, this.channel);
11
+ this.role = this.createClient(cfg, RoleServiceDefinition, this.channel);
12
+ this.authentication_log = this.createClient(cfg, AuthenticationLogServiceDefinition, this.channel);
13
+ this.token = this.createClient(cfg, TokenServiceDefinition, this.channel);
14
+ this.oauth = this.createClient(cfg, OAuthServiceDefinition, this.channel);
15
+ }
16
+ }
@@ -0,0 +1,4 @@
1
+ import { type IdentityConfig } from './interfaces.js';
2
+ export { type OIDCConfig } from './oidc/index.js';
3
+ export type { IdentityModule, IdentityConfig, IdentityContext } from './interfaces.js';
4
+ export declare const identityModule: import("../../interfaces.js").FacadeModuleFactory<IdentityConfig, import("./interfaces.js").IdentityContext>;
@@ -0,0 +1,54 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { createFacadeModuleFactory } from '../../utils.js';
11
+ import { FederatedResourceSchema } from './gql/federation.js';
12
+ import { createOIDC } from './oidc/index.js';
13
+ import { setupApiKey } from './api-key/api-key.js';
14
+ import { IdentitySrvGrpcClient } from './grpc/index.js';
15
+ import { createOAuth } from './oauth/oauth.js';
16
+ import mount from 'koa-mount';
17
+ export const identityModule = createFacadeModuleFactory('identity', (facade, config) => {
18
+ const identitySrvClient = new IdentitySrvGrpcClient(config.config.client.address, Object.assign(Object.assign({}, config.config.client), { logger: facade.logger }));
19
+ if (!!config.apiKey) {
20
+ const apiKey = setupApiKey({
21
+ logger: facade.logger,
22
+ apiKey: config.apiKey
23
+ });
24
+ if (apiKey) {
25
+ facade.koa.use(apiKey.router.routes());
26
+ facade.koa.use(apiKey.app);
27
+ }
28
+ }
29
+ if (config.oidc) {
30
+ const { provider, router } = createOIDC({
31
+ identitySrvClient,
32
+ env: facade.env,
33
+ logger: facade.logger,
34
+ config: config.oidc
35
+ });
36
+ facade.koa.use(router.routes());
37
+ facade.koa.use(mount(provider.app));
38
+ }
39
+ if (config.oauth) {
40
+ facade.koa.use(createOAuth().routes());
41
+ }
42
+ const identity = {
43
+ client: identitySrvClient
44
+ };
45
+ facade.koa.context.identitySrvClient = identitySrvClient;
46
+ facade.addApolloService({
47
+ name: 'identity',
48
+ schema: FederatedResourceSchema(config.config)
49
+ });
50
+ facade.koa.use((ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
51
+ ctx.identity = identity;
52
+ yield next();
53
+ }));
54
+ });
@@ -0,0 +1,22 @@
1
+ import { type GrpcClientConfig } from '@restorecommerce/grpc-client';
2
+ import { type FacadeContext, type FacadeModule } from '../../interfaces.js';
3
+ import { type OIDCConfig } from './oidc/index.js';
4
+ import { type ServiceConfig } from '../../gql/protos/index.js';
5
+ import { type IdentitySrvGrpcClient } from './grpc/index.js';
6
+ export interface IdentityServiceConfig extends ServiceConfig {
7
+ root: boolean;
8
+ }
9
+ export interface IdentityConfig {
10
+ config: IdentityServiceConfig;
11
+ identitySrvClientConfig: GrpcClientConfig;
12
+ oidc?: OIDCConfig;
13
+ apiKey?: boolean | string;
14
+ oauth?: boolean;
15
+ }
16
+ export interface IdentityContext extends FacadeContext {
17
+ identity: {
18
+ client: IdentitySrvGrpcClient;
19
+ };
20
+ }
21
+ export type IdentityModule = FacadeModule<IdentityContext>;
22
+ export declare const namespace = "identity";
@@ -0,0 +1 @@
1
+ export const namespace = 'identity';
@@ -0,0 +1,11 @@
1
+ import type KoaRouter from 'koa-router';
2
+ import { type IdentityContext } from '../interfaces.js';
3
+ import { type User } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/user.js';
4
+ export declare const layout: (context: {
5
+ body: string;
6
+ title: string;
7
+ }) => Promise<string>;
8
+ export declare const register: (email: string) => Promise<string>;
9
+ export declare const login: (links: any) => Promise<string>;
10
+ export declare const account: (user: User) => Promise<string>;
11
+ export declare const createOAuth: () => KoaRouter<{}, IdentityContext>;
@@ -0,0 +1,170 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { readFile } from 'node:fs';
11
+ import path, { resolve as resolvePath } from 'node:path';
12
+ import hbs from 'handlebars';
13
+ import { marshallProtobufAny } from '../oidc/utils.js';
14
+ import * as uuid from 'uuid';
15
+ import { RegisterRequest, UserType } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/user.js';
16
+ import * as jose from 'jose';
17
+ import * as url from 'node:url';
18
+ import Router from 'koa-router';
19
+ import { koaBody as bodyParser } from 'koa-body';
20
+ const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
21
+ const upsertUserToken = (ids, accountId) => __awaiter(void 0, void 0, void 0, function* () {
22
+ const token = new jose.UnsecuredJWT({})
23
+ .setIssuedAt()
24
+ .setExpirationTime('30d')
25
+ .encode();
26
+ // 1 Month
27
+ const expiresIn = Date.now() + (1000 * 60 * 60 * 24 * 30);
28
+ yield ids.token.upsert({
29
+ id: uuid.v4().replace(/-/g, ''),
30
+ type: 'access_token',
31
+ expiresIn,
32
+ payload: marshallProtobufAny({
33
+ accountId,
34
+ exp: expiresIn,
35
+ jti: token
36
+ })
37
+ });
38
+ return token;
39
+ });
40
+ let layoutHbs;
41
+ export const layout = (context) => __awaiter(void 0, void 0, void 0, function* () {
42
+ if (!layoutHbs) {
43
+ const layoutTpl = yield new Promise((resolve, reject) => {
44
+ readFile(resolvePath(__dirname, 'views/layout.hbs'), (err, data) => err ? reject(err) : resolve(data.toString()));
45
+ });
46
+ layoutHbs = hbs.compile(layoutTpl);
47
+ }
48
+ return layoutHbs(context);
49
+ });
50
+ let registerHbs;
51
+ export const register = (email) => __awaiter(void 0, void 0, void 0, function* () {
52
+ if (!registerHbs) {
53
+ const registerTpl = yield new Promise((resolve, reject) => {
54
+ readFile(resolvePath(__dirname, 'views/register.hbs'), (err, data) => err ? reject(err) : resolve(data.toString()));
55
+ });
56
+ registerHbs = hbs.compile(registerTpl);
57
+ }
58
+ return layout({
59
+ title: 'Register',
60
+ body: registerHbs({ email })
61
+ });
62
+ });
63
+ let loginHbs;
64
+ export const login = (links) => __awaiter(void 0, void 0, void 0, function* () {
65
+ if (!loginHbs) {
66
+ const loginTpl = yield new Promise((resolve, reject) => {
67
+ readFile(resolvePath(__dirname, 'views/login.hbs'), (err, data) => err ? reject(err) : resolve(data.toString()));
68
+ });
69
+ loginHbs = hbs.compile(loginTpl);
70
+ }
71
+ return layout({
72
+ title: 'Login',
73
+ body: loginHbs({ links })
74
+ });
75
+ });
76
+ let accountHbs;
77
+ export const account = (user) => __awaiter(void 0, void 0, void 0, function* () {
78
+ if (!accountHbs) {
79
+ const accountTpl = yield new Promise((resolve, reject) => {
80
+ readFile(resolvePath(__dirname, 'views/account.hbs'), (err, data) => err ? reject(err) : resolve(data.toString()));
81
+ });
82
+ accountHbs = hbs.compile(accountTpl);
83
+ }
84
+ return layout({
85
+ title: 'Account',
86
+ body: accountHbs({ user })
87
+ });
88
+ });
89
+ export const createOAuth = () => {
90
+ const router = new Router();
91
+ router.use(bodyParser({ multipart: true }));
92
+ router.get('/oauth2-login', (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
93
+ ctx.type = 'html';
94
+ ctx.body = yield login((yield ctx.identitySrvClient.oauth.generateLinks({})).links);
95
+ return next();
96
+ }));
97
+ router.get('/oauth2-logout', (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
98
+ ctx.cookies.set('token', undefined);
99
+ ctx.status = 303;
100
+ ctx.redirect('/oauth2-login');
101
+ ctx.body = 'Redirecting to login page';
102
+ return next();
103
+ }));
104
+ router.get('/oauth2-urls', (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
105
+ ctx.body = (yield ctx.identitySrvClient.oauth.generateLinks({})).links;
106
+ return next();
107
+ }));
108
+ router.get('/oauth2-account', (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
109
+ const token = ctx.cookies.get('token');
110
+ if (!token) {
111
+ ctx.body = 'user not logged in';
112
+ return next();
113
+ }
114
+ const ids = ctx.identitySrvClient;
115
+ const user = yield ids.user.findByToken({
116
+ token
117
+ });
118
+ if (!user || !user.payload) {
119
+ ctx.body = 'user not logged in';
120
+ return next();
121
+ }
122
+ ctx.type = 'html';
123
+ ctx.body = yield account(user.payload);
124
+ return next();
125
+ }));
126
+ router.post('/oauth2-register', (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
127
+ const ids = ctx.identitySrvClient;
128
+ const body = ctx.request.body;
129
+ const user = yield ids.user.register(RegisterRequest.fromPartial({
130
+ email: body.email,
131
+ name: body.username,
132
+ firstName: body.first_name,
133
+ lastName: body.last_name,
134
+ password: body.password,
135
+ userType: UserType.INDIVIDUAL_USER,
136
+ guest: false,
137
+ }));
138
+ if (user.payload) {
139
+ const token = yield upsertUserToken(ids, user.payload.id);
140
+ ctx.cookies.set('token', token);
141
+ ctx.status = 303;
142
+ ctx.redirect('/oauth2-account');
143
+ ctx.body = 'Redirecting to account page';
144
+ return next();
145
+ }
146
+ if (user.status) {
147
+ ctx.body = user.status.message;
148
+ }
149
+ return next();
150
+ }));
151
+ router.get('/oauth2/:service', (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
152
+ const ids = ctx.identitySrvClient;
153
+ const user = yield ids.oauth.exchangeCode({
154
+ service: ctx.params.service,
155
+ code: ctx.request.query['code'],
156
+ state: ctx.request.query['state']
157
+ });
158
+ if (!user.user || !user.user.payload || !user.token || (user.user.status && user.user.status.code !== 200)) {
159
+ ctx.type = 'html';
160
+ ctx.body = yield register(user.email || '');
161
+ return next();
162
+ }
163
+ ctx.cookies.set('token', user.token.token);
164
+ ctx.status = 303;
165
+ ctx.redirect('/oauth2-account');
166
+ ctx.body = 'Redirecting to account page';
167
+ return next();
168
+ }));
169
+ return router;
170
+ };
@@ -0,0 +1,4 @@
1
+ import { type Logger } from 'winston';
2
+ import { type Adapter, type AdapterConstructor } from 'oidc-provider';
3
+ import { type TokenServiceClient as tokenService } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/token.js';
4
+ export declare function createIdentityServiceAdapterClass(remoteTokenService: tokenService, logger: Logger, localTokenServiceFactory?: (type: string) => Adapter): AdapterConstructor;
@@ -0,0 +1,135 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { marshallProtobufAny, unmarshallProtobufAny } from './utils.js';
11
+ import { Subject } from '@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/auth.js';
12
+ import { InMemoryAdapter } from './in-memory-adapter.js';
13
+ const delegateToRemoteService = (type) => ['AccessToken', 'RefreshToken'].includes(type);
14
+ export function createIdentityServiceAdapterClass(remoteTokenService, logger, localTokenServiceFactory) {
15
+ return class IdentityServiceAdapter {
16
+ constructor(type) {
17
+ this.type = type;
18
+ this.localTokenService = localTokenServiceFactory ? localTokenServiceFactory(type) : new InMemoryAdapter(type);
19
+ }
20
+ consume(id) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ logger.verbose(`Consuming ${this.type} token ${id}`);
23
+ if (delegateToRemoteService(this.type)) {
24
+ try {
25
+ yield remoteTokenService.consume({
26
+ id,
27
+ type: this.type,
28
+ subject: undefined
29
+ });
30
+ }
31
+ catch (error) {
32
+ logger.error(`Error consuming ${this.type} token ${id}`, error);
33
+ }
34
+ }
35
+ else {
36
+ yield this.localTokenService.consume(id);
37
+ }
38
+ });
39
+ }
40
+ destroy(id) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ logger.verbose(`Destroying ${this.type} token ${id}`);
43
+ if (delegateToRemoteService(this.type)) {
44
+ try {
45
+ yield remoteTokenService.destroy({
46
+ id,
47
+ type: this.type,
48
+ subject: Subject.fromPartial({ token: id })
49
+ });
50
+ }
51
+ catch (error) {
52
+ logger.error(`Error destroying ${this.type} token ${id}`, error);
53
+ }
54
+ }
55
+ else {
56
+ yield this.localTokenService.destroy(id);
57
+ }
58
+ });
59
+ }
60
+ find(id) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ logger.verbose(`Finding ${this.type} token ${id}`);
63
+ if (delegateToRemoteService(this.type)) {
64
+ try {
65
+ let result = yield remoteTokenService.find({
66
+ id,
67
+ type: this.type,
68
+ subject: Subject.fromPartial({ token: id })
69
+ });
70
+ return result ? unmarshallProtobufAny(result) : undefined;
71
+ }
72
+ catch (error) {
73
+ logger.error(`Error finding ${this.type} token ${id}`, error);
74
+ return undefined;
75
+ }
76
+ }
77
+ else {
78
+ return yield this.localTokenService.find(id);
79
+ }
80
+ });
81
+ }
82
+ findByUid(uid) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ logger.verbose(`Finding by Uid ${uid}`);
85
+ return yield this.localTokenService.findByUid(uid);
86
+ });
87
+ }
88
+ // Not needed. DeviceFlow only
89
+ findByUserCode(userCode) {
90
+ return __awaiter(this, arguments, void 0, function* () {
91
+ logger.error('Finding br UserCode is unsupported', this.type, ...arguments);
92
+ throw new Error('UNSUPPORTED');
93
+ });
94
+ }
95
+ upsert(id, payload, expiresIn) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ logger.error(`Upserting ${this.type} token ${id}`, payload);
98
+ if (delegateToRemoteService(this.type)) {
99
+ try {
100
+ yield remoteTokenService.upsert({
101
+ expiresIn,
102
+ id,
103
+ payload: marshallProtobufAny(payload),
104
+ type: this.type,
105
+ subject: undefined
106
+ });
107
+ }
108
+ catch (error) {
109
+ logger.error(`Error upserting ${this.type} token ${id}`, error);
110
+ }
111
+ }
112
+ else {
113
+ return this.localTokenService.upsert(id, payload, expiresIn * 1000);
114
+ }
115
+ });
116
+ }
117
+ revokeByGrantId(grantId) {
118
+ return __awaiter(this, void 0, void 0, function* () {
119
+ logger.error(`Revoking grant id ${this.type} token ${grantId}`);
120
+ yield this.localTokenService.revokeByGrantId(grantId);
121
+ if (delegateToRemoteService(this.type)) {
122
+ try {
123
+ yield remoteTokenService.revokeByGrantId({
124
+ grantId,
125
+ subject: Subject.fromPartial({ token: grantId })
126
+ });
127
+ }
128
+ catch (error) {
129
+ logger.error(`Error revoking grant id ${grantId}`, error);
130
+ }
131
+ }
132
+ });
133
+ }
134
+ };
135
+ }
@@ -0,0 +1,16 @@
1
+ import { type Adapter, type AdapterPayload } from 'oidc-provider';
2
+ export declare class InMemoryAdapter implements Adapter {
3
+ private type;
4
+ constructor(type: string);
5
+ private tokenStorage;
6
+ private sessionStorage;
7
+ private grantIdStorage;
8
+ private key;
9
+ upsert(id: string, payload: AdapterPayload, expiresIn: number): Promise<void | undefined>;
10
+ findByUserCode(userCode: string): Promise<void | AdapterPayload | undefined>;
11
+ find(id: string): Promise<void | AdapterPayload | undefined>;
12
+ findByUid(uid: string): Promise<void | AdapterPayload | undefined>;
13
+ consume(id: string): Promise<void | undefined>;
14
+ destroy(id: string): Promise<void | undefined>;
15
+ revokeByGrantId(grantId: string): Promise<void | undefined>;
16
+ }
@@ -0,0 +1,85 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { LRUCache } from 'lru-cache';
11
+ import { epochTime } from './utils.js';
12
+ export class InMemoryAdapter {
13
+ constructor(type) {
14
+ this.type = type;
15
+ this.tokenStorage = new LRUCache({ max: 1000 });
16
+ this.sessionStorage = new LRUCache({ max: 1000 });
17
+ this.grantIdStorage = new LRUCache({ max: 1000 });
18
+ }
19
+ key(id) {
20
+ return `${this.type}:${id}`;
21
+ }
22
+ upsert(id, payload, expiresIn) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const key = this.key(id);
25
+ if (this.type === 'Session' && payload.uid) {
26
+ this.sessionStorage.set(payload.uid, id, {
27
+ ttl: expiresIn * 1000
28
+ });
29
+ }
30
+ const { grantId, userCode } = payload;
31
+ if (grantId) {
32
+ this.grantIdStorage.set(grantId, [key]);
33
+ const grant = this.grantIdStorage.get(grantId);
34
+ if (!grant) {
35
+ this.grantIdStorage.set(grantId, [key]);
36
+ }
37
+ else {
38
+ grant.push(key);
39
+ }
40
+ }
41
+ if (userCode) {
42
+ throw 'UNSUPPORTED';
43
+ }
44
+ this.tokenStorage.set(key, payload, {
45
+ ttl: expiresIn * 1000
46
+ });
47
+ });
48
+ }
49
+ findByUserCode(userCode) {
50
+ throw new Error('UNSUPPORTED');
51
+ }
52
+ find(id) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ return this.tokenStorage.get(this.key(id));
55
+ });
56
+ }
57
+ findByUid(uid) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ const id = yield this.sessionStorage.get(uid);
60
+ return id ? this.find(id) : undefined;
61
+ });
62
+ }
63
+ consume(id) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ const payload = this.tokenStorage.get(this.key(id));
66
+ if (payload) {
67
+ payload.consumed = epochTime();
68
+ }
69
+ });
70
+ }
71
+ destroy(id) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ this.tokenStorage.delete(this.key(id));
74
+ });
75
+ }
76
+ revokeByGrantId(grantId) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const grant = this.grantIdStorage.get(grantId);
79
+ if (grant) {
80
+ grant.forEach((token) => this.tokenStorage.delete(token));
81
+ this.grantIdStorage.delete(grantId);
82
+ }
83
+ });
84
+ }
85
+ }