@cubist-labs/cubesigner-sdk 0.3.26 → 0.3.28

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 (69) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/client.d.ts +4 -4
  3. package/dist/cjs/src/index.js +7 -4
  4. package/dist/cjs/src/key.d.ts +35 -2
  5. package/dist/cjs/src/key.js +79 -5
  6. package/dist/cjs/src/org_event_processor.d.ts +57 -0
  7. package/dist/cjs/src/org_event_processor.js +137 -0
  8. package/dist/cjs/src/schema.d.ts +41 -24
  9. package/dist/cjs/src/schema.js +1 -1
  10. package/dist/cjs/src/util.d.ts +2 -0
  11. package/dist/cjs/src/util.js +1 -1
  12. package/dist/esm/package.json +1 -1
  13. package/dist/esm/src/client.d.ts +4 -4
  14. package/dist/esm/src/index.js +4 -4
  15. package/dist/esm/src/key.d.ts +35 -2
  16. package/dist/esm/src/key.js +79 -5
  17. package/dist/esm/src/org_event_processor.d.ts +57 -0
  18. package/dist/esm/src/org_event_processor.js +133 -0
  19. package/dist/esm/src/schema.d.ts +41 -24
  20. package/dist/esm/src/schema.js +1 -1
  21. package/dist/esm/src/util.d.ts +2 -0
  22. package/dist/esm/src/util.js +1 -1
  23. package/dist/package.json +36 -0
  24. package/dist/spec/env/beta.json +9 -0
  25. package/dist/spec/env/gamma.json +9 -0
  26. package/dist/spec/env/prod.json +9 -0
  27. package/dist/src/api.d.ts +634 -0
  28. package/dist/src/api.js +1309 -0
  29. package/dist/src/client.d.ts +575 -0
  30. package/dist/src/client.js +381 -0
  31. package/dist/src/env.d.ts +15 -0
  32. package/dist/src/env.js +35 -0
  33. package/dist/src/error.d.ts +29 -0
  34. package/dist/src/error.js +36 -0
  35. package/dist/src/events.d.ts +84 -0
  36. package/dist/src/events.js +195 -0
  37. package/dist/src/index.d.ts +207 -0
  38. package/dist/src/index.js +308 -0
  39. package/dist/src/key.d.ts +152 -0
  40. package/dist/src/key.js +242 -0
  41. package/dist/src/mfa.d.ts +94 -0
  42. package/dist/src/mfa.js +169 -0
  43. package/dist/src/org.d.ts +99 -0
  44. package/dist/src/org.js +95 -0
  45. package/dist/src/paginator.d.ts +76 -0
  46. package/dist/src/paginator.js +99 -0
  47. package/dist/src/response.d.ts +101 -0
  48. package/dist/src/response.js +164 -0
  49. package/dist/src/role.d.ts +283 -0
  50. package/dist/src/role.js +253 -0
  51. package/dist/src/schema.d.ts +6209 -0
  52. package/dist/src/schema.js +7 -0
  53. package/dist/src/schema_types.d.ts +113 -0
  54. package/dist/src/schema_types.js +3 -0
  55. package/dist/src/session/session_storage.d.ts +47 -0
  56. package/dist/src/session/session_storage.js +76 -0
  57. package/dist/src/session/signer_session_manager.d.ts +125 -0
  58. package/dist/src/session/signer_session_manager.js +239 -0
  59. package/dist/src/signer_session.d.ts +41 -0
  60. package/dist/src/signer_session.js +77 -0
  61. package/dist/src/user_export.d.ts +52 -0
  62. package/dist/src/user_export.js +129 -0
  63. package/dist/src/util.d.ts +61 -0
  64. package/dist/src/util.js +97 -0
  65. package/package.json +1 -1
  66. package/src/index.ts +3 -3
  67. package/src/key.ts +83 -4
  68. package/src/schema.ts +42 -25
  69. package/src/util.ts +3 -0
@@ -0,0 +1,113 @@
1
+ import { MfaPolicy } from "./role";
2
+ import { components } from "./schema";
3
+ import { JsonMap } from "./util";
4
+ type schemas = components["schemas"];
5
+ export type UserInfo = schemas["UserInfo"];
6
+ export type ConfiguredMfa = schemas["ConfiguredMfa"];
7
+ export type RatchetConfig = schemas["RatchetConfig"];
8
+ export type IdentityProof = schemas["IdentityProof"];
9
+ export type TotpInfo = schemas["TotpInfo"];
10
+ export type OidcAuthResponse = schemas["NewSessionResponse"];
11
+ export type ApiAddFidoChallenge = schemas["FidoCreateChallengeResponse"];
12
+ export type ApiMfaFidoChallenge = schemas["FidoAssertChallenge"];
13
+ export type PublicKeyCredentialCreationOptions = schemas["PublicKeyCredentialCreationOptions"];
14
+ export type PublicKeyCredentialRequestOptions = schemas["PublicKeyCredentialRequestOptions"];
15
+ export type PublicKeyCredentialParameters = schemas["PublicKeyCredentialParameters"];
16
+ export type PublicKeyCredentialDescriptor = schemas["PublicKeyCredentialDescriptor"];
17
+ export type AuthenticatorSelectionCriteria = schemas["AuthenticatorSelectionCriteria"];
18
+ export type PublicKeyCredentialUserEntity = schemas["PublicKeyCredentialUserEntity"];
19
+ export type PublicKeyCredential = schemas["PublicKeyCredential"];
20
+ export type OrgInfo = schemas["OrgInfo"];
21
+ export type UserIdInfo = schemas["UserIdInfo"];
22
+ export type UpdateOrgRequest = schemas["UpdateOrgRequest"];
23
+ export type UpdateOrgResponse = schemas["UpdateOrgResponse"];
24
+ export type OidcIdentity = schemas["OIDCIdentity"];
25
+ export type MemberRole = schemas["MemberRole"];
26
+ export type SchemaKeyType = schemas["KeyType"];
27
+ export type ListKeysResponse = schemas["PaginatedListKeysResponse"];
28
+ export type UpdateKeyRequest = schemas["UpdateKeyRequest"];
29
+ export type KeyInfoApi = schemas["KeyInfo"];
30
+ export type KeyInRoleInfo = schemas["KeyInRoleInfo"];
31
+ export type UserInRoleInfo = schemas["UserInRoleInfo"];
32
+ export type KeyTypeApi = schemas["KeyType"];
33
+ export type ListRolesResponse = schemas["PaginatedListRolesResponse"];
34
+ export type ListRoleKeysResponse = schemas["PaginatedListRoleKeysResponse"];
35
+ export type ListRoleUsersResponse = schemas["PaginatedListRoleUsersResponse"];
36
+ export type UpdateRoleRequest = schemas["UpdateRoleRequest"];
37
+ export type KeyWithPoliciesInfo = schemas["KeyInRoleInfo"];
38
+ export type RoleInfo = schemas["RoleInfo"];
39
+ export type SessionInfo = schemas["SessionInfo"];
40
+ export type ClientSessionInfo = schemas["ClientSessionInfo"];
41
+ export type NewSessionResponse = schemas["NewSessionResponse"];
42
+ export type SessionsResponse = schemas["PaginatedSessionsResponse"];
43
+ export type CreateSignerSessionRequest = schemas["CreateTokenRequest"];
44
+ export type RefreshSignerSessionRequest = schemas["AuthData"];
45
+ export type EvmSignRequest = schemas["Eth1SignRequest"];
46
+ export type EvmSignResponse = schemas["Eth1SignResponse"];
47
+ export type Eip191SignRequest = schemas["Eip191SignRequest"];
48
+ export type Eip712SignRequest = schemas["Eip712SignRequest"];
49
+ export type Eip191Or712SignResponse = schemas["Eip191Or712SignResponse"];
50
+ export type Eth2SignRequest = schemas["Eth2SignRequest"];
51
+ export type Eth2SignResponse = schemas["Eth2SignResponse"];
52
+ export type Eth2StakeRequest = schemas["StakeRequest"];
53
+ export type Eth2StakeResponse = schemas["StakeResponse"];
54
+ export type Eth2UnstakeRequest = schemas["UnstakeRequest"];
55
+ export type Eth2UnstakeResponse = schemas["UnstakeResponse"];
56
+ export type BlobSignRequest = schemas["BlobSignRequest"];
57
+ export type BlobSignResponse = schemas["BlobSignResponse"];
58
+ export type BtcSignRequest = schemas["BtcSignRequest"];
59
+ export type BtcSignResponse = schemas["BtcSignResponse"];
60
+ export type SolanaSignRequest = schemas["SolanaSignRequest"];
61
+ export type SolanaSignResponse = schemas["SolanaSignResponse"];
62
+ export type AvaSignRequest = schemas["AvaSignRequest"];
63
+ export type AvaSignResponse = schemas["AvaSignResponse"];
64
+ export type AcceptedResponse = schemas["AcceptedResponse"];
65
+ export type ErrorResponse = schemas["ErrorResponse"];
66
+ export type BtcSignatureKind = schemas["BtcSignatureKind"];
67
+ export type MfaType = schemas["MfaType"];
68
+ export type MfaRequestInfo = schemas["MfaRequestInfo"];
69
+ export type UserExportInitRequest = schemas["UserExportInitRequest"];
70
+ export type UserExportInitResponse = schemas["UserExportInitResponse"];
71
+ export type UserExportCompleteRequest = schemas["UserExportCompleteRequest"];
72
+ export type UserExportCompleteResponse = schemas["UserExportCompleteResponse"];
73
+ export type UserExportListResponse = schemas["PaginatedUserExportListResponse"];
74
+ export type UserExportKeyMaterial = schemas["JsonKeyPackage"];
75
+ export type Empty = schemas["EmptyImpl"];
76
+ /** Options for a new OIDC user */
77
+ export interface CreateOidcUserOptions {
78
+ /** The role of an OIDC user, default is "Alien" */
79
+ memberRole?: MemberRole;
80
+ /** Optional MFA policy to associate with the user account */
81
+ mfaPolicy?: MfaPolicy;
82
+ }
83
+ /** Ava P- or X-chain transaction */
84
+ export type AvaTx = {
85
+ P: AvaPChainTx;
86
+ } | {
87
+ X: AvaXChainTx;
88
+ };
89
+ /** Ava P-chain transaction */
90
+ export type AvaPChainTx = {
91
+ AddPermissionlessValidator: JsonMap;
92
+ } | {
93
+ AddSubnetValidator: JsonMap;
94
+ } | {
95
+ AddValidator: JsonMap;
96
+ } | {
97
+ CreateChain: JsonMap;
98
+ } | {
99
+ CreateSubnet: JsonMap;
100
+ } | {
101
+ Export: JsonMap;
102
+ } | {
103
+ Import: JsonMap;
104
+ };
105
+ /** Ava X-chain transaction */
106
+ export type AvaXChainTx = {
107
+ Base: JsonMap;
108
+ } | {
109
+ Export: JsonMap;
110
+ } | {
111
+ Import: JsonMap;
112
+ };
113
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWZhUG9saWN5IH0gZnJvbSBcIi4vcm9sZVwiO1xuaW1wb3J0IHsgY29tcG9uZW50cyB9IGZyb20gXCIuL3NjaGVtYVwiO1xuaW1wb3J0IHsgSnNvbk1hcCB9IGZyb20gXCIuL3V0aWxcIjtcblxudHlwZSBzY2hlbWFzID0gY29tcG9uZW50c1tcInNjaGVtYXNcIl07XG5cbmV4cG9ydCB0eXBlIFVzZXJJbmZvID0gc2NoZW1hc1tcIlVzZXJJbmZvXCJdO1xuZXhwb3J0IHR5cGUgQ29uZmlndXJlZE1mYSA9IHNjaGVtYXNbXCJDb25maWd1cmVkTWZhXCJdO1xuZXhwb3J0IHR5cGUgUmF0Y2hldENvbmZpZyA9IHNjaGVtYXNbXCJSYXRjaGV0Q29uZmlnXCJdO1xuZXhwb3J0IHR5cGUgSWRlbnRpdHlQcm9vZiA9IHNjaGVtYXNbXCJJZGVudGl0eVByb29mXCJdO1xuZXhwb3J0IHR5cGUgVG90cEluZm8gPSBzY2hlbWFzW1wiVG90cEluZm9cIl07XG5cbmV4cG9ydCB0eXBlIE9pZGNBdXRoUmVzcG9uc2UgPSBzY2hlbWFzW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQXBpQWRkRmlkb0NoYWxsZW5nZSA9IHNjaGVtYXNbXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBcGlNZmFGaWRvQ2hhbGxlbmdlID0gc2NoZW1hc1tcIkZpZG9Bc3NlcnRDaGFsbGVuZ2VcIl07XG5cbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgPSBzY2hlbWFzW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG5leHBvcnQgdHlwZSBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yXCJdO1xuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhID0gc2NoZW1hc1tcIkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYVwiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5ID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbCA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsXCJdO1xuXG5leHBvcnQgdHlwZSBPcmdJbmZvID0gc2NoZW1hc1tcIk9yZ0luZm9cIl07XG5leHBvcnQgdHlwZSBVc2VySWRJbmZvID0gc2NoZW1hc1tcIlVzZXJJZEluZm9cIl07XG5leHBvcnQgdHlwZSBVcGRhdGVPcmdSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZU9yZ1JlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVPcmdSZXNwb25zZSA9IHNjaGVtYXNbXCJVcGRhdGVPcmdSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgT2lkY0lkZW50aXR5ID0gc2NoZW1hc1tcIk9JRENJZGVudGl0eVwiXTtcbmV4cG9ydCB0eXBlIE1lbWJlclJvbGUgPSBzY2hlbWFzW1wiTWVtYmVyUm9sZVwiXTtcblxuZXhwb3J0IHR5cGUgU2NoZW1hS2V5VHlwZSA9IHNjaGVtYXNbXCJLZXlUeXBlXCJdO1xuXG5leHBvcnQgdHlwZSBMaXN0S2V5c1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RLZXlzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVLZXlSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZUtleVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBLZXlJbmZvQXBpID0gc2NoZW1hc1tcIktleUluZm9cIl07XG5leHBvcnQgdHlwZSBLZXlJblJvbGVJbmZvID0gc2NoZW1hc1tcIktleUluUm9sZUluZm9cIl07XG5leHBvcnQgdHlwZSBVc2VySW5Sb2xlSW5mbyA9IHNjaGVtYXNbXCJVc2VySW5Sb2xlSW5mb1wiXTtcbmV4cG9ydCB0eXBlIEtleVR5cGVBcGkgPSBzY2hlbWFzW1wiS2V5VHlwZVwiXTtcblxuZXhwb3J0IHR5cGUgTGlzdFJvbGVzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdFJvbGVzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBMaXN0Um9sZUtleXNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0Um9sZUtleXNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIExpc3RSb2xlVXNlcnNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0Um9sZVVzZXJzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVSb2xlUmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVSb2xlUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEtleVdpdGhQb2xpY2llc0luZm8gPSBzY2hlbWFzW1wiS2V5SW5Sb2xlSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFJvbGVJbmZvID0gc2NoZW1hc1tcIlJvbGVJbmZvXCJdO1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uSW5mbyA9IHNjaGVtYXNbXCJTZXNzaW9uSW5mb1wiXTtcbmV4cG9ydCB0eXBlIENsaWVudFNlc3Npb25JbmZvID0gc2NoZW1hc1tcIkNsaWVudFNlc3Npb25JbmZvXCJdO1xuZXhwb3J0IHR5cGUgTmV3U2Vzc2lvblJlc3BvbnNlID0gc2NoZW1hc1tcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFNlc3Npb25zUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkU2Vzc2lvbnNSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlU2lnbmVyU2Vzc2lvblJlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlVG9rZW5SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgUmVmcmVzaFNpZ25lclNlc3Npb25SZXF1ZXN0ID0gc2NoZW1hc1tcIkF1dGhEYXRhXCJdO1xuXG5leHBvcnQgdHlwZSBFdm1TaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFdGgxU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFdm1TaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiRXRoMVNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVpcDE5MVNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkVpcDE5MVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRWlwNzEyU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiRWlwNzEyU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFaXAxOTFPcjcxMlNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJFaXAxOTFPcjcxMlNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEV0aDJTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFdGgyU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFdGgyU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIkV0aDJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFdGgyU3Rha2VSZXF1ZXN0ID0gc2NoZW1hc1tcIlN0YWtlUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEV0aDJTdGFrZVJlc3BvbnNlID0gc2NoZW1hc1tcIlN0YWtlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFdGgyVW5zdGFrZVJlcXVlc3QgPSBzY2hlbWFzW1wiVW5zdGFrZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFdGgyVW5zdGFrZVJlc3BvbnNlID0gc2NoZW1hc1tcIlVuc3Rha2VSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEJsb2JTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJCbG9iU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBCbG9iU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIkJsb2JTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCdGNTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJCdGNTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJ0Y1NpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJCdGNTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBTb2xhbmFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJTb2xhbmFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFNvbGFuYVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTb2xhbmFTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBdmFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJBdmFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEF2YVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJBdmFTaWduUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIEFjY2VwdGVkUmVzcG9uc2UgPSBzY2hlbWFzW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVycm9yUmVzcG9uc2UgPSBzY2hlbWFzW1wiRXJyb3JSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEJ0Y1NpZ25hdHVyZUtpbmQgPSBzY2hlbWFzW1wiQnRjU2lnbmF0dXJlS2luZFwiXTtcblxuZXhwb3J0IHR5cGUgTWZhVHlwZSA9IHNjaGVtYXNbXCJNZmFUeXBlXCJdO1xuZXhwb3J0IHR5cGUgTWZhUmVxdWVzdEluZm8gPSBzY2hlbWFzW1wiTWZhUmVxdWVzdEluZm9cIl07XG5cbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRJbml0UmVxdWVzdCA9IHNjaGVtYXNbXCJVc2VyRXhwb3J0SW5pdFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0SW5pdFJlc3BvbnNlID0gc2NoZW1hc1tcIlVzZXJFeHBvcnRJbml0UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0Q29tcGxldGVSZXF1ZXN0ID0gc2NoZW1hc1tcIlVzZXJFeHBvcnRDb21wbGV0ZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0Q29tcGxldGVSZXNwb25zZSA9IHNjaGVtYXNbXCJVc2VyRXhwb3J0Q29tcGxldGVSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRMaXN0UmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkVXNlckV4cG9ydExpc3RSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRLZXlNYXRlcmlhbCA9IHNjaGVtYXNbXCJKc29uS2V5UGFja2FnZVwiXTtcblxuZXhwb3J0IHR5cGUgRW1wdHkgPSBzY2hlbWFzW1wiRW1wdHlJbXBsXCJdO1xuXG4vKiogT3B0aW9ucyBmb3IgYSBuZXcgT0lEQyB1c2VyICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9pZGNVc2VyT3B0aW9ucyB7XG4gIC8qKiBUaGUgcm9sZSBvZiBhbiBPSURDIHVzZXIsIGRlZmF1bHQgaXMgXCJBbGllblwiICovXG4gIG1lbWJlclJvbGU/OiBNZW1iZXJSb2xlO1xuICAvKiogT3B0aW9uYWwgTUZBIHBvbGljeSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgdXNlciBhY2NvdW50ICovXG4gIG1mYVBvbGljeT86IE1mYVBvbGljeTtcbn1cblxuLyoqIEF2YSBQLSBvciBYLWNoYWluIHRyYW5zYWN0aW9uICovXG5leHBvcnQgdHlwZSBBdmFUeCA9IHsgUDogQXZhUENoYWluVHggfSB8IHsgWDogQXZhWENoYWluVHggfTtcblxuLyoqIEF2YSBQLWNoYWluIHRyYW5zYWN0aW9uICovXG5leHBvcnQgdHlwZSBBdmFQQ2hhaW5UeCA9XG4gIHwgeyBBZGRQZXJtaXNzaW9ubGVzc1ZhbGlkYXRvcjogSnNvbk1hcCB9XG4gIHwgeyBBZGRTdWJuZXRWYWxpZGF0b3I6IEpzb25NYXAgfVxuICB8IHsgQWRkVmFsaWRhdG9yOiBKc29uTWFwIH1cbiAgfCB7IENyZWF0ZUNoYWluOiBKc29uTWFwIH1cbiAgfCB7IENyZWF0ZVN1Ym5ldDogSnNvbk1hcCB9XG4gIHwgeyBFeHBvcnQ6IEpzb25NYXAgfVxuICB8IHsgSW1wb3J0OiBKc29uTWFwIH07XG5cbi8qKiBBdmEgWC1jaGFpbiB0cmFuc2FjdGlvbiAqL1xuZXhwb3J0IHR5cGUgQXZhWENoYWluVHggPSB7IEJhc2U6IEpzb25NYXAgfSB8IHsgRXhwb3J0OiBKc29uTWFwIH0gfCB7IEltcG9ydDogSnNvbk1hcCB9O1xuIl19
@@ -0,0 +1,47 @@
1
+ /** Interface for storing sessions. */
2
+ export interface SessionStorage<U> {
3
+ /** Store session information */
4
+ save(data: U): Promise<void>;
5
+ /** Retrieve session information */
6
+ retrieve(): Promise<U>;
7
+ }
8
+ /** Stores session information in memory */
9
+ export declare class MemorySessionStorage<U> implements SessionStorage<U> {
10
+ #private;
11
+ /**
12
+ * Store session information.
13
+ * @param {U} data The session information to store
14
+ * @return {Promise<void>}
15
+ */
16
+ save(data: U): Promise<void>;
17
+ /**
18
+ * Retrieve session information.
19
+ * @return {Promise<U>} The session information
20
+ */
21
+ retrieve(): Promise<U>;
22
+ /**
23
+ * Constructor.
24
+ * @param {U?} data The initial data
25
+ */
26
+ constructor(data?: U);
27
+ }
28
+ /** Stores session information in a JSON file */
29
+ export declare class JsonFileSessionStorage<U> implements SessionStorage<U> {
30
+ #private;
31
+ /**
32
+ * Store session information.
33
+ * @param {U} data The session information to store
34
+ * @return {Promise<void>}
35
+ */
36
+ save(data: U): Promise<void>;
37
+ /**
38
+ * Retrieve session information.
39
+ * @return {Promise<U>} The session information
40
+ */
41
+ retrieve(): Promise<U>;
42
+ /**
43
+ * Constructor.
44
+ * @param {string} filePath The file path to use for storage
45
+ */
46
+ constructor(filePath: string);
47
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _MemorySessionStorage_data, _JsonFileSessionStorage_filePath;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.JsonFileSessionStorage = exports.MemorySessionStorage = void 0;
16
+ const fs_1 = require("fs");
17
+ /** Stores session information in memory */
18
+ class MemorySessionStorage {
19
+ /**
20
+ * Store session information.
21
+ * @param {U} data The session information to store
22
+ * @return {Promise<void>}
23
+ */
24
+ async save(data) {
25
+ __classPrivateFieldSet(this, _MemorySessionStorage_data, data, "f");
26
+ }
27
+ /**
28
+ * Retrieve session information.
29
+ * @return {Promise<U>} The session information
30
+ */
31
+ async retrieve() {
32
+ if (!__classPrivateFieldGet(this, _MemorySessionStorage_data, "f")) {
33
+ throw new Error("Missing session information");
34
+ }
35
+ return __classPrivateFieldGet(this, _MemorySessionStorage_data, "f");
36
+ }
37
+ /**
38
+ * Constructor.
39
+ * @param {U?} data The initial data
40
+ */
41
+ constructor(data) {
42
+ _MemorySessionStorage_data.set(this, void 0);
43
+ __classPrivateFieldSet(this, _MemorySessionStorage_data, data, "f");
44
+ }
45
+ }
46
+ exports.MemorySessionStorage = MemorySessionStorage;
47
+ _MemorySessionStorage_data = new WeakMap();
48
+ /** Stores session information in a JSON file */
49
+ class JsonFileSessionStorage {
50
+ /**
51
+ * Store session information.
52
+ * @param {U} data The session information to store
53
+ * @return {Promise<void>}
54
+ */
55
+ async save(data) {
56
+ await fs_1.promises.writeFile(__classPrivateFieldGet(this, _JsonFileSessionStorage_filePath, "f"), JSON.stringify(data), "utf-8");
57
+ }
58
+ /**
59
+ * Retrieve session information.
60
+ * @return {Promise<U>} The session information
61
+ */
62
+ async retrieve() {
63
+ return JSON.parse(await fs_1.promises.readFile(__classPrivateFieldGet(this, _JsonFileSessionStorage_filePath, "f"), "utf-8"));
64
+ }
65
+ /**
66
+ * Constructor.
67
+ * @param {string} filePath The file path to use for storage
68
+ */
69
+ constructor(filePath) {
70
+ _JsonFileSessionStorage_filePath.set(this, void 0);
71
+ __classPrivateFieldSet(this, _JsonFileSessionStorage_filePath, filePath, "f");
72
+ }
73
+ }
74
+ exports.JsonFileSessionStorage = JsonFileSessionStorage;
75
+ _JsonFileSessionStorage_filePath = new WeakMap();
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbl9zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nlc3Npb24vc2Vzc2lvbl9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUFvQztBQVdwQywyQ0FBMkM7QUFDM0MsTUFBYSxvQkFBb0I7SUFHL0I7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBTztRQUNoQix1QkFBQSxJQUFJLDhCQUFTLElBQUksTUFBQSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyx1QkFBQSxJQUFJLGtDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sdUJBQUEsSUFBSSxrQ0FBTSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLElBQVE7UUExQnBCLDZDQUFVO1FBMkJSLHVCQUFBLElBQUksOEJBQVMsSUFBSSxNQUFBLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBOUJELG9EQThCQzs7QUFFRCxnREFBZ0Q7QUFDaEQsTUFBYSxzQkFBc0I7SUFHakM7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBTztRQUNoQixNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSx3Q0FBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxRQUFRO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sYUFBRSxDQUFDLFFBQVEsQ0FBQyx1QkFBQSxJQUFJLHdDQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxRQUFnQjtRQXZCbkIsbURBQWtCO1FBd0J6Qix1QkFBQSxJQUFJLG9DQUFhLFFBQVEsTUFBQSxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQTNCRCx3REEyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gXCJmc1wiO1xuXG4vKiogSW50ZXJmYWNlIGZvciBzdG9yaW5nIHNlc3Npb25zLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uU3RvcmFnZTxVPiB7XG4gIC8qKiBTdG9yZSBzZXNzaW9uIGluZm9ybWF0aW9uICovXG4gIHNhdmUoZGF0YTogVSk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqIFJldHJpZXZlIHNlc3Npb24gaW5mb3JtYXRpb24gKi9cbiAgcmV0cmlldmUoKTogUHJvbWlzZTxVPjtcbn1cblxuLyoqIFN0b3JlcyBzZXNzaW9uIGluZm9ybWF0aW9uIGluIG1lbW9yeSAqL1xuZXhwb3J0IGNsYXNzIE1lbW9yeVNlc3Npb25TdG9yYWdlPFU+IGltcGxlbWVudHMgU2Vzc2lvblN0b3JhZ2U8VT4ge1xuICAjZGF0YT86IFU7XG5cbiAgLyoqXG4gICAqIFN0b3JlIHNlc3Npb24gaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB7VX0gZGF0YSBUaGUgc2Vzc2lvbiBpbmZvcm1hdGlvbiB0byBzdG9yZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgc2F2ZShkYXRhOiBVKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy4jZGF0YSA9IGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgc2Vzc2lvbiBpbmZvcm1hdGlvbi5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVPn0gVGhlIHNlc3Npb24gaW5mb3JtYXRpb25cbiAgICovXG4gIGFzeW5jIHJldHJpZXZlKCk6IFByb21pc2U8VT4ge1xuICAgIGlmICghdGhpcy4jZGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBzZXNzaW9uIGluZm9ybWF0aW9uXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy4jZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtVP30gZGF0YSBUaGUgaW5pdGlhbCBkYXRhXG4gICAqL1xuICBjb25zdHJ1Y3RvcihkYXRhPzogVSkge1xuICAgIHRoaXMuI2RhdGEgPSBkYXRhO1xuICB9XG59XG5cbi8qKiBTdG9yZXMgc2Vzc2lvbiBpbmZvcm1hdGlvbiBpbiBhIEpTT04gZmlsZSAqL1xuZXhwb3J0IGNsYXNzIEpzb25GaWxlU2Vzc2lvblN0b3JhZ2U8VT4gaW1wbGVtZW50cyBTZXNzaW9uU3RvcmFnZTxVPiB7XG4gIHJlYWRvbmx5ICNmaWxlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdG9yZSBzZXNzaW9uIGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0ge1V9IGRhdGEgVGhlIHNlc3Npb24gaW5mb3JtYXRpb24gdG8gc3RvcmVcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHNhdmUoZGF0YTogVSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0aGlzLiNmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoZGF0YSksIFwidXRmLThcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgc2Vzc2lvbiBpbmZvcm1hdGlvbi5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVPn0gVGhlIHNlc3Npb24gaW5mb3JtYXRpb25cbiAgICovXG4gIGFzeW5jIHJldHJpZXZlKCk6IFByb21pc2U8VT4ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHRoaXMuI2ZpbGVQYXRoLCBcInV0Zi04XCIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIFRoZSBmaWxlIHBhdGggdG8gdXNlIGZvciBzdG9yYWdlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgdGhpcy4jZmlsZVBhdGggPSBmaWxlUGF0aDtcbiAgfVxufVxuIl19
@@ -0,0 +1,125 @@
1
+ import { Events } from "../events";
2
+ import { EnvInterface } from "../env";
3
+ import { Client } from "../api";
4
+ import { SessionStorage } from "./session_storage";
5
+ import { ClientSessionInfo, NewSessionResponse } from "../schema_types";
6
+ import { operations } from "../schema";
7
+ /** JSON representation of our "signer session" file format */
8
+ export interface SignerSessionData {
9
+ /** The organization ID */
10
+ org_id: string;
11
+ /** The role ID */
12
+ role_id?: string;
13
+ /** The purpose of the session token */
14
+ purpose?: string;
15
+ /** The token to include in Authorization header */
16
+ token: string;
17
+ /** Session info */
18
+ session_info: ClientSessionInfo;
19
+ /** Session expiration (in seconds since UNIX epoch) beyond which it cannot be refreshed */
20
+ session_exp: number | undefined;
21
+ /** The environment */
22
+ env: {
23
+ ["Dev-CubeSignerStack"]: EnvInterface;
24
+ };
25
+ }
26
+ /** Type of storage required for signer sessions */
27
+ export type SignerSessionStorage = SessionStorage<SignerSessionData>;
28
+ export interface SignerSessionLifetime {
29
+ /** Session lifetime (in seconds). Defaults to one week (604800). */
30
+ session?: number;
31
+ /** Auth token lifetime (in seconds). Defaults to five minutes (300). */
32
+ auth: number;
33
+ /** Refresh token lifetime (in seconds). Defaults to one day (86400). */
34
+ refresh?: number;
35
+ /** Grace lifetime (in seconds). Defaults to 30 seconds (30). */
36
+ grace?: number;
37
+ }
38
+ /** Generic session manager interface. */
39
+ export declare class SignerSessionManager {
40
+ #private;
41
+ readonly env: EnvInterface;
42
+ readonly orgId: string;
43
+ readonly storage: SignerSessionStorage;
44
+ readonly events: Events;
45
+ /**
46
+ * @return {string} The current auth token.
47
+ * @internal
48
+ */
49
+ token(): Promise<string>;
50
+ /**
51
+ * Refreshes the current session if needed, then returns a client using the current session.
52
+ *
53
+ * May **UPDATE/MUTATE** self.
54
+ *
55
+ * @param {operations} operation The operation that this client will be
56
+ * used for. This parameter is used exclusively for more accurate error
57
+ * reporting and does not affect functionality.
58
+ * @return {Client} The client with the current session
59
+ */
60
+ client(operation?: keyof operations): Promise<Client>;
61
+ /** Revokes the session. */
62
+ revoke(): Promise<void>;
63
+ /**
64
+ * Refreshes the session and **UPDATES/MUTATES** self.
65
+ */
66
+ refresh(): Promise<void>;
67
+ /**
68
+ * Returns whether it's time to refresh this token.
69
+ * @return {boolean} Whether it's time to refresh this token.
70
+ * @internal
71
+ */
72
+ isStale(): Promise<boolean>;
73
+ /**
74
+ * Return whether this session has expired and cannot be refreshed anymore.
75
+ * @return {boolean} Whether this session has expired.
76
+ * @internal
77
+ */
78
+ hasExpired(): boolean;
79
+ /**
80
+ * Refreshes the session if it is about to expire.
81
+ * @return {boolean} Whether the session token was refreshed.
82
+ * @internal
83
+ */
84
+ refreshIfNeeded(): Promise<boolean>;
85
+ /**
86
+ * Automatically refreshes the session in the background (if needed) every
87
+ * minute. This is a simple wrapper around `setInterval`.
88
+ * @return {number} The interval ID of the refresh timer.
89
+ */
90
+ autoRefresh(): RefreshId;
91
+ /**
92
+ * Clears the auto refresh timer.
93
+ * @param {number} timer The timer ID to clear.
94
+ */
95
+ clearAutoRefresh(timer: RefreshId): void;
96
+ /**
97
+ * @param {EnvInterface} env The CubeSigner environment
98
+ * @param {string} orgId The organization ID
99
+ * @param {NewSessionResponse} session The session information.
100
+ * @param {SignerSessionStorage} storage The storage to use for saving the session.
101
+ * @return {Promise<SignerSessionManager>} New signer session manager.
102
+ */
103
+ static createFromSessionInfo(env: EnvInterface, orgId: string, session: NewSessionResponse, storage?: SignerSessionStorage): Promise<SignerSessionManager>;
104
+ /**
105
+ * @param {SignerSessionData} sessionData The session information.
106
+ * @param {SignerSessionStorage} storage The storage to use for saving the session.
107
+ * @return {Promise<SignerSessionManager>} New signer session manager.
108
+ */
109
+ static createFromSessionData(sessionData: SignerSessionData, storage?: SignerSessionStorage): Promise<SignerSessionManager>;
110
+ /**
111
+ * Uses an existing session to create a new signer session manager.
112
+ *
113
+ * @param {SignerSessionStorage} storage The session storage to use
114
+ * @return {Promise<SingerSession>} New signer session manager
115
+ */
116
+ static loadFromStorage(storage: SignerSessionStorage): Promise<SignerSessionManager>;
117
+ /**
118
+ * Constructor.
119
+ * @param {SignerSessionData} sessionData Session data
120
+ * @param {SignerSessionStorage} storage The session storage to use.
121
+ */
122
+ constructor(sessionData: SignerSessionData, storage: SignerSessionStorage);
123
+ }
124
+ /** Type of the refresh timer ID. */
125
+ export type RefreshId = ReturnType<typeof setInterval>;