@zitadel/node
Version:
Library for API access to ZITADEL. Provides compiled gRPC service clients and helpers for applications and service accounts.
2,367 lines • 82.3 kB
JavaScript
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.7.5
// protoc unknown
// source: zitadel/session/v2/session_service.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { Duration } from "../../../google/protobuf/duration.js";
import { Struct } from "../../../google/protobuf/struct.js";
import { Details, ListDetails, ListQuery } from "../../object/v2/object.js";
import { Challenges, RequestChallenges } from "./challenge.js";
import { SearchQuery, Session, sessionFieldNameFromJSON, sessionFieldNameToJSON, UserAgent, } from "./session.js";
export const protobufPackage = "zitadel.session.v2";
function createBaseListSessionsRequest() {
return { query: undefined, queries: [], sortingColumn: 0 };
}
export const ListSessionsRequest = {
encode(message, writer = new BinaryWriter()) {
if (message.query !== undefined) {
ListQuery.encode(message.query, writer.uint32(10).fork()).join();
}
for (const v of message.queries) {
SearchQuery.encode(v, writer.uint32(18).fork()).join();
}
if (message.sortingColumn !== 0) {
writer.uint32(24).int32(message.sortingColumn);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseListSessionsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.query = ListQuery.decode(reader, reader.uint32());
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.queries.push(SearchQuery.decode(reader, reader.uint32()));
continue;
}
case 3: {
if (tag !== 24) {
break;
}
message.sortingColumn = reader.int32();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
query: isSet(object.query) ? ListQuery.fromJSON(object.query) : undefined,
queries: globalThis.Array.isArray(object?.queries) ? object.queries.map((e) => SearchQuery.fromJSON(e)) : [],
sortingColumn: isSet(object.sortingColumn) ? sessionFieldNameFromJSON(object.sortingColumn) : 0,
};
},
toJSON(message) {
const obj = {};
if (message.query !== undefined) {
obj.query = ListQuery.toJSON(message.query);
}
if (message.queries?.length) {
obj.queries = message.queries.map((e) => SearchQuery.toJSON(e));
}
if (message.sortingColumn !== 0) {
obj.sortingColumn = sessionFieldNameToJSON(message.sortingColumn);
}
return obj;
},
create(base) {
return ListSessionsRequest.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseListSessionsRequest();
message.query = (object.query !== undefined && object.query !== null)
? ListQuery.fromPartial(object.query)
: undefined;
message.queries = object.queries?.map((e) => SearchQuery.fromPartial(e)) || [];
message.sortingColumn = object.sortingColumn ?? 0;
return message;
},
};
function createBaseListSessionsResponse() {
return { details: undefined, sessions: [] };
}
export const ListSessionsResponse = {
encode(message, writer = new BinaryWriter()) {
if (message.details !== undefined) {
ListDetails.encode(message.details, writer.uint32(10).fork()).join();
}
for (const v of message.sessions) {
Session.encode(v, writer.uint32(18).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseListSessionsResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.details = ListDetails.decode(reader, reader.uint32());
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.sessions.push(Session.decode(reader, reader.uint32()));
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
details: isSet(object.details) ? ListDetails.fromJSON(object.details) : undefined,
sessions: globalThis.Array.isArray(object?.sessions) ? object.sessions.map((e) => Session.fromJSON(e)) : [],
};
},
toJSON(message) {
const obj = {};
if (message.details !== undefined) {
obj.details = ListDetails.toJSON(message.details);
}
if (message.sessions?.length) {
obj.sessions = message.sessions.map((e) => Session.toJSON(e));
}
return obj;
},
create(base) {
return ListSessionsResponse.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseListSessionsResponse();
message.details = (object.details !== undefined && object.details !== null)
? ListDetails.fromPartial(object.details)
: undefined;
message.sessions = object.sessions?.map((e) => Session.fromPartial(e)) || [];
return message;
},
};
function createBaseGetSessionRequest() {
return { sessionId: "", sessionToken: undefined };
}
export const GetSessionRequest = {
encode(message, writer = new BinaryWriter()) {
if (message.sessionId !== "") {
writer.uint32(10).string(message.sessionId);
}
if (message.sessionToken !== undefined) {
writer.uint32(18).string(message.sessionToken);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetSessionRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.sessionId = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.sessionToken = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
sessionId: isSet(object.sessionId) ? globalThis.String(object.sessionId) : "",
sessionToken: isSet(object.sessionToken) ? globalThis.String(object.sessionToken) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.sessionId !== "") {
obj.sessionId = message.sessionId;
}
if (message.sessionToken !== undefined) {
obj.sessionToken = message.sessionToken;
}
return obj;
},
create(base) {
return GetSessionRequest.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseGetSessionRequest();
message.sessionId = object.sessionId ?? "";
message.sessionToken = object.sessionToken ?? undefined;
return message;
},
};
function createBaseGetSessionResponse() {
return { session: undefined };
}
export const GetSessionResponse = {
encode(message, writer = new BinaryWriter()) {
if (message.session !== undefined) {
Session.encode(message.session, writer.uint32(10).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetSessionResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.session = Session.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return { session: isSet(object.session) ? Session.fromJSON(object.session) : undefined };
},
toJSON(message) {
const obj = {};
if (message.session !== undefined) {
obj.session = Session.toJSON(message.session);
}
return obj;
},
create(base) {
return GetSessionResponse.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseGetSessionResponse();
message.session = (object.session !== undefined && object.session !== null)
? Session.fromPartial(object.session)
: undefined;
return message;
},
};
function createBaseCreateSessionRequest() {
return { checks: undefined, metadata: {}, challenges: undefined, userAgent: undefined, lifetime: undefined };
}
export const CreateSessionRequest = {
encode(message, writer = new BinaryWriter()) {
if (message.checks !== undefined) {
Checks.encode(message.checks, writer.uint32(10).fork()).join();
}
Object.entries(message.metadata).forEach(([key, value]) => {
CreateSessionRequest_MetadataEntry.encode({ key: key, value }, writer.uint32(18).fork()).join();
});
if (message.challenges !== undefined) {
RequestChallenges.encode(message.challenges, writer.uint32(26).fork()).join();
}
if (message.userAgent !== undefined) {
UserAgent.encode(message.userAgent, writer.uint32(34).fork()).join();
}
if (message.lifetime !== undefined) {
Duration.encode(message.lifetime, writer.uint32(42).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCreateSessionRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.checks = Checks.decode(reader, reader.uint32());
continue;
}
case 2: {
if (tag !== 18) {
break;
}
const entry2 = CreateSessionRequest_MetadataEntry.decode(reader, reader.uint32());
if (entry2.value !== undefined) {
message.metadata[entry2.key] = entry2.value;
}
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.challenges = RequestChallenges.decode(reader, reader.uint32());
continue;
}
case 4: {
if (tag !== 34) {
break;
}
message.userAgent = UserAgent.decode(reader, reader.uint32());
continue;
}
case 5: {
if (tag !== 42) {
break;
}
message.lifetime = Duration.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
checks: isSet(object.checks) ? Checks.fromJSON(object.checks) : undefined,
metadata: isObject(object.metadata)
? Object.entries(object.metadata).reduce((acc, [key, value]) => {
acc[key] = Buffer.from(bytesFromBase64(value));
return acc;
}, {})
: {},
challenges: isSet(object.challenges) ? RequestChallenges.fromJSON(object.challenges) : undefined,
userAgent: isSet(object.userAgent) ? UserAgent.fromJSON(object.userAgent) : undefined,
lifetime: isSet(object.lifetime) ? Duration.fromJSON(object.lifetime) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.checks !== undefined) {
obj.checks = Checks.toJSON(message.checks);
}
if (message.metadata) {
const entries = Object.entries(message.metadata);
if (entries.length > 0) {
obj.metadata = {};
entries.forEach(([k, v]) => {
obj.metadata[k] = base64FromBytes(v);
});
}
}
if (message.challenges !== undefined) {
obj.challenges = RequestChallenges.toJSON(message.challenges);
}
if (message.userAgent !== undefined) {
obj.userAgent = UserAgent.toJSON(message.userAgent);
}
if (message.lifetime !== undefined) {
obj.lifetime = Duration.toJSON(message.lifetime);
}
return obj;
},
create(base) {
return CreateSessionRequest.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCreateSessionRequest();
message.checks = (object.checks !== undefined && object.checks !== null)
? Checks.fromPartial(object.checks)
: undefined;
message.metadata = Object.entries(object.metadata ?? {}).reduce((acc, [key, value]) => {
if (value !== undefined) {
acc[key] = value;
}
return acc;
}, {});
message.challenges = (object.challenges !== undefined && object.challenges !== null)
? RequestChallenges.fromPartial(object.challenges)
: undefined;
message.userAgent = (object.userAgent !== undefined && object.userAgent !== null)
? UserAgent.fromPartial(object.userAgent)
: undefined;
message.lifetime = (object.lifetime !== undefined && object.lifetime !== null)
? Duration.fromPartial(object.lifetime)
: undefined;
return message;
},
};
function createBaseCreateSessionRequest_MetadataEntry() {
return { key: "", value: Buffer.alloc(0) };
}
export const CreateSessionRequest_MetadataEntry = {
encode(message, writer = new BinaryWriter()) {
if (message.key !== "") {
writer.uint32(10).string(message.key);
}
if (message.value.length !== 0) {
writer.uint32(18).bytes(message.value);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCreateSessionRequest_MetadataEntry();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.key = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.value = Buffer.from(reader.bytes());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
key: isSet(object.key) ? globalThis.String(object.key) : "",
value: isSet(object.value) ? Buffer.from(bytesFromBase64(object.value)) : Buffer.alloc(0),
};
},
toJSON(message) {
const obj = {};
if (message.key !== "") {
obj.key = message.key;
}
if (message.value.length !== 0) {
obj.value = base64FromBytes(message.value);
}
return obj;
},
create(base) {
return CreateSessionRequest_MetadataEntry.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCreateSessionRequest_MetadataEntry();
message.key = object.key ?? "";
message.value = object.value ?? Buffer.alloc(0);
return message;
},
};
function createBaseCreateSessionResponse() {
return { details: undefined, sessionId: "", sessionToken: "", challenges: undefined };
}
export const CreateSessionResponse = {
encode(message, writer = new BinaryWriter()) {
if (message.details !== undefined) {
Details.encode(message.details, writer.uint32(10).fork()).join();
}
if (message.sessionId !== "") {
writer.uint32(18).string(message.sessionId);
}
if (message.sessionToken !== "") {
writer.uint32(26).string(message.sessionToken);
}
if (message.challenges !== undefined) {
Challenges.encode(message.challenges, writer.uint32(34).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCreateSessionResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.details = Details.decode(reader, reader.uint32());
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.sessionId = reader.string();
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.sessionToken = reader.string();
continue;
}
case 4: {
if (tag !== 34) {
break;
}
message.challenges = Challenges.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
details: isSet(object.details) ? Details.fromJSON(object.details) : undefined,
sessionId: isSet(object.sessionId) ? globalThis.String(object.sessionId) : "",
sessionToken: isSet(object.sessionToken) ? globalThis.String(object.sessionToken) : "",
challenges: isSet(object.challenges) ? Challenges.fromJSON(object.challenges) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.details !== undefined) {
obj.details = Details.toJSON(message.details);
}
if (message.sessionId !== "") {
obj.sessionId = message.sessionId;
}
if (message.sessionToken !== "") {
obj.sessionToken = message.sessionToken;
}
if (message.challenges !== undefined) {
obj.challenges = Challenges.toJSON(message.challenges);
}
return obj;
},
create(base) {
return CreateSessionResponse.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCreateSessionResponse();
message.details = (object.details !== undefined && object.details !== null)
? Details.fromPartial(object.details)
: undefined;
message.sessionId = object.sessionId ?? "";
message.sessionToken = object.sessionToken ?? "";
message.challenges = (object.challenges !== undefined && object.challenges !== null)
? Challenges.fromPartial(object.challenges)
: undefined;
return message;
},
};
function createBaseSetSessionRequest() {
return {
sessionId: "",
sessionToken: "",
checks: undefined,
metadata: {},
challenges: undefined,
lifetime: undefined,
};
}
export const SetSessionRequest = {
encode(message, writer = new BinaryWriter()) {
if (message.sessionId !== "") {
writer.uint32(10).string(message.sessionId);
}
if (message.sessionToken !== "") {
writer.uint32(18).string(message.sessionToken);
}
if (message.checks !== undefined) {
Checks.encode(message.checks, writer.uint32(26).fork()).join();
}
Object.entries(message.metadata).forEach(([key, value]) => {
SetSessionRequest_MetadataEntry.encode({ key: key, value }, writer.uint32(34).fork()).join();
});
if (message.challenges !== undefined) {
RequestChallenges.encode(message.challenges, writer.uint32(42).fork()).join();
}
if (message.lifetime !== undefined) {
Duration.encode(message.lifetime, writer.uint32(50).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSetSessionRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.sessionId = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.sessionToken = reader.string();
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.checks = Checks.decode(reader, reader.uint32());
continue;
}
case 4: {
if (tag !== 34) {
break;
}
const entry4 = SetSessionRequest_MetadataEntry.decode(reader, reader.uint32());
if (entry4.value !== undefined) {
message.metadata[entry4.key] = entry4.value;
}
continue;
}
case 5: {
if (tag !== 42) {
break;
}
message.challenges = RequestChallenges.decode(reader, reader.uint32());
continue;
}
case 6: {
if (tag !== 50) {
break;
}
message.lifetime = Duration.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
sessionId: isSet(object.sessionId) ? globalThis.String(object.sessionId) : "",
sessionToken: isSet(object.sessionToken) ? globalThis.String(object.sessionToken) : "",
checks: isSet(object.checks) ? Checks.fromJSON(object.checks) : undefined,
metadata: isObject(object.metadata)
? Object.entries(object.metadata).reduce((acc, [key, value]) => {
acc[key] = Buffer.from(bytesFromBase64(value));
return acc;
}, {})
: {},
challenges: isSet(object.challenges) ? RequestChallenges.fromJSON(object.challenges) : undefined,
lifetime: isSet(object.lifetime) ? Duration.fromJSON(object.lifetime) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.sessionId !== "") {
obj.sessionId = message.sessionId;
}
if (message.sessionToken !== "") {
obj.sessionToken = message.sessionToken;
}
if (message.checks !== undefined) {
obj.checks = Checks.toJSON(message.checks);
}
if (message.metadata) {
const entries = Object.entries(message.metadata);
if (entries.length > 0) {
obj.metadata = {};
entries.forEach(([k, v]) => {
obj.metadata[k] = base64FromBytes(v);
});
}
}
if (message.challenges !== undefined) {
obj.challenges = RequestChallenges.toJSON(message.challenges);
}
if (message.lifetime !== undefined) {
obj.lifetime = Duration.toJSON(message.lifetime);
}
return obj;
},
create(base) {
return SetSessionRequest.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseSetSessionRequest();
message.sessionId = object.sessionId ?? "";
message.sessionToken = object.sessionToken ?? "";
message.checks = (object.checks !== undefined && object.checks !== null)
? Checks.fromPartial(object.checks)
: undefined;
message.metadata = Object.entries(object.metadata ?? {}).reduce((acc, [key, value]) => {
if (value !== undefined) {
acc[key] = value;
}
return acc;
}, {});
message.challenges = (object.challenges !== undefined && object.challenges !== null)
? RequestChallenges.fromPartial(object.challenges)
: undefined;
message.lifetime = (object.lifetime !== undefined && object.lifetime !== null)
? Duration.fromPartial(object.lifetime)
: undefined;
return message;
},
};
function createBaseSetSessionRequest_MetadataEntry() {
return { key: "", value: Buffer.alloc(0) };
}
export const SetSessionRequest_MetadataEntry = {
encode(message, writer = new BinaryWriter()) {
if (message.key !== "") {
writer.uint32(10).string(message.key);
}
if (message.value.length !== 0) {
writer.uint32(18).bytes(message.value);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSetSessionRequest_MetadataEntry();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.key = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.value = Buffer.from(reader.bytes());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
key: isSet(object.key) ? globalThis.String(object.key) : "",
value: isSet(object.value) ? Buffer.from(bytesFromBase64(object.value)) : Buffer.alloc(0),
};
},
toJSON(message) {
const obj = {};
if (message.key !== "") {
obj.key = message.key;
}
if (message.value.length !== 0) {
obj.value = base64FromBytes(message.value);
}
return obj;
},
create(base) {
return SetSessionRequest_MetadataEntry.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseSetSessionRequest_MetadataEntry();
message.key = object.key ?? "";
message.value = object.value ?? Buffer.alloc(0);
return message;
},
};
function createBaseSetSessionResponse() {
return { details: undefined, sessionToken: "", challenges: undefined };
}
export const SetSessionResponse = {
encode(message, writer = new BinaryWriter()) {
if (message.details !== undefined) {
Details.encode(message.details, writer.uint32(10).fork()).join();
}
if (message.sessionToken !== "") {
writer.uint32(18).string(message.sessionToken);
}
if (message.challenges !== undefined) {
Challenges.encode(message.challenges, writer.uint32(26).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSetSessionResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.details = Details.decode(reader, reader.uint32());
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.sessionToken = reader.string();
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.challenges = Challenges.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
details: isSet(object.details) ? Details.fromJSON(object.details) : undefined,
sessionToken: isSet(object.sessionToken) ? globalThis.String(object.sessionToken) : "",
challenges: isSet(object.challenges) ? Challenges.fromJSON(object.challenges) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.details !== undefined) {
obj.details = Details.toJSON(message.details);
}
if (message.sessionToken !== "") {
obj.sessionToken = message.sessionToken;
}
if (message.challenges !== undefined) {
obj.challenges = Challenges.toJSON(message.challenges);
}
return obj;
},
create(base) {
return SetSessionResponse.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseSetSessionResponse();
message.details = (object.details !== undefined && object.details !== null)
? Details.fromPartial(object.details)
: undefined;
message.sessionToken = object.sessionToken ?? "";
message.challenges = (object.challenges !== undefined && object.challenges !== null)
? Challenges.fromPartial(object.challenges)
: undefined;
return message;
},
};
function createBaseDeleteSessionRequest() {
return { sessionId: "", sessionToken: undefined };
}
export const DeleteSessionRequest = {
encode(message, writer = new BinaryWriter()) {
if (message.sessionId !== "") {
writer.uint32(10).string(message.sessionId);
}
if (message.sessionToken !== undefined) {
writer.uint32(18).string(message.sessionToken);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDeleteSessionRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.sessionId = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.sessionToken = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
sessionId: isSet(object.sessionId) ? globalThis.String(object.sessionId) : "",
sessionToken: isSet(object.sessionToken) ? globalThis.String(object.sessionToken) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.sessionId !== "") {
obj.sessionId = message.sessionId;
}
if (message.sessionToken !== undefined) {
obj.sessionToken = message.sessionToken;
}
return obj;
},
create(base) {
return DeleteSessionRequest.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseDeleteSessionRequest();
message.sessionId = object.sessionId ?? "";
message.sessionToken = object.sessionToken ?? undefined;
return message;
},
};
function createBaseDeleteSessionResponse() {
return { details: undefined };
}
export const DeleteSessionResponse = {
encode(message, writer = new BinaryWriter()) {
if (message.details !== undefined) {
Details.encode(message.details, writer.uint32(10).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDeleteSessionResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.details = Details.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return { details: isSet(object.details) ? Details.fromJSON(object.details) : undefined };
},
toJSON(message) {
const obj = {};
if (message.details !== undefined) {
obj.details = Details.toJSON(message.details);
}
return obj;
},
create(base) {
return DeleteSessionResponse.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseDeleteSessionResponse();
message.details = (object.details !== undefined && object.details !== null)
? Details.fromPartial(object.details)
: undefined;
return message;
},
};
function createBaseChecks() {
return {
user: undefined,
password: undefined,
webAuthN: undefined,
idpIntent: undefined,
totp: undefined,
otpSms: undefined,
otpEmail: undefined,
};
}
export const Checks = {
encode(message, writer = new BinaryWriter()) {
if (message.user !== undefined) {
CheckUser.encode(message.user, writer.uint32(10).fork()).join();
}
if (message.password !== undefined) {
CheckPassword.encode(message.password, writer.uint32(18).fork()).join();
}
if (message.webAuthN !== undefined) {
CheckWebAuthN.encode(message.webAuthN, writer.uint32(26).fork()).join();
}
if (message.idpIntent !== undefined) {
CheckIDPIntent.encode(message.idpIntent, writer.uint32(34).fork()).join();
}
if (message.totp !== undefined) {
CheckTOTP.encode(message.totp, writer.uint32(42).fork()).join();
}
if (message.otpSms !== undefined) {
CheckOTP.encode(message.otpSms, writer.uint32(50).fork()).join();
}
if (message.otpEmail !== undefined) {
CheckOTP.encode(message.otpEmail, writer.uint32(58).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseChecks();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.user = CheckUser.decode(reader, reader.uint32());
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.password = CheckPassword.decode(reader, reader.uint32());
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.webAuthN = CheckWebAuthN.decode(reader, reader.uint32());
continue;
}
case 4: {
if (tag !== 34) {
break;
}
message.idpIntent = CheckIDPIntent.decode(reader, reader.uint32());
continue;
}
case 5: {
if (tag !== 42) {
break;
}
message.totp = CheckTOTP.decode(reader, reader.uint32());
continue;
}
case 6: {
if (tag !== 50) {
break;
}
message.otpSms = CheckOTP.decode(reader, reader.uint32());
continue;
}
case 7: {
if (tag !== 58) {
break;
}
message.otpEmail = CheckOTP.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
user: isSet(object.user) ? CheckUser.fromJSON(object.user) : undefined,
password: isSet(object.password) ? CheckPassword.fromJSON(object.password) : undefined,
webAuthN: isSet(object.webAuthN) ? CheckWebAuthN.fromJSON(object.webAuthN) : undefined,
idpIntent: isSet(object.idpIntent) ? CheckIDPIntent.fromJSON(object.idpIntent) : undefined,
totp: isSet(object.totp) ? CheckTOTP.fromJSON(object.totp) : undefined,
otpSms: isSet(object.otpSms) ? CheckOTP.fromJSON(object.otpSms) : undefined,
otpEmail: isSet(object.otpEmail) ? CheckOTP.fromJSON(object.otpEmail) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.user !== undefined) {
obj.user = CheckUser.toJSON(message.user);
}
if (message.password !== undefined) {
obj.password = CheckPassword.toJSON(message.password);
}
if (message.webAuthN !== undefined) {
obj.webAuthN = CheckWebAuthN.toJSON(message.webAuthN);
}
if (message.idpIntent !== undefined) {
obj.idpIntent = CheckIDPIntent.toJSON(message.idpIntent);
}
if (message.totp !== undefined) {
obj.totp = CheckTOTP.toJSON(message.totp);
}
if (message.otpSms !== undefined) {
obj.otpSms = CheckOTP.toJSON(message.otpSms);
}
if (message.otpEmail !== undefined) {
obj.otpEmail = CheckOTP.toJSON(message.otpEmail);
}
return obj;
},
create(base) {
return Checks.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseChecks();
message.user = (object.user !== undefined && object.user !== null) ? CheckUser.fromPartial(object.user) : undefined;
message.password = (object.password !== undefined && object.password !== null)
? CheckPassword.fromPartial(object.password)
: undefined;
message.webAuthN = (object.webAuthN !== undefined && object.webAuthN !== null)
? CheckWebAuthN.fromPartial(object.webAuthN)
: undefined;
message.idpIntent = (object.idpIntent !== undefined && object.idpIntent !== null)
? CheckIDPIntent.fromPartial(object.idpIntent)
: undefined;
message.totp = (object.totp !== undefined && object.totp !== null) ? CheckTOTP.fromPartial(object.totp) : undefined;
message.otpSms = (object.otpSms !== undefined && object.otpSms !== null)
? CheckOTP.fromPartial(object.otpSms)
: undefined;
message.otpEmail = (object.otpEmail !== undefined && object.otpEmail !== null)
? CheckOTP.fromPartial(object.otpEmail)
: undefined;
return message;
},
};
function createBaseCheckUser() {
return { userId: undefined, loginName: undefined };
}
export const CheckUser = {
encode(message, writer = new BinaryWriter()) {
if (message.userId !== undefined) {
writer.uint32(10).string(message.userId);
}
if (message.loginName !== undefined) {
writer.uint32(18).string(message.loginName);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCheckUser();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.userId = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.loginName = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
userId: isSet(object.userId) ? globalThis.String(object.userId) : undefined,
loginName: isSet(object.loginName) ? globalThis.String(object.loginName) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.userId !== undefined) {
obj.userId = message.userId;
}
if (message.loginName !== undefined) {
obj.loginName = message.loginName;
}
return obj;
},
create(base) {
return CheckUser.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCheckUser();
message.userId = object.userId ?? undefined;
message.loginName = object.loginName ?? undefined;
return message;
},
};
function createBaseCheckPassword() {
return { password: "" };
}
export const CheckPassword = {
encode(message, writer = new BinaryWriter()) {
if (message.password !== "") {
writer.uint32(10).string(message.password);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCheckPassword();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.password = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return { password: isSet(object.password) ? globalThis.String(object.password) : "" };
},
toJSON(message) {
const obj = {};
if (message.password !== "") {
obj.password = message.password;
}
return obj;
},
create(base) {
return CheckPassword.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCheckPassword();
message.password = object.password ?? "";
return message;
},
};
function createBaseCheckWebAuthN() {
return { credentialAssertionData: undefined };
}
export const CheckWebAuthN = {
encode(message, writer = new BinaryWriter()) {
if (message.credentialAssertionData !== undefined) {
Struct.encode(Struct.wrap(message.credentialAssertionData), writer.uint32(10).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCheckWebAuthN();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.credentialAssertionData = Struct.unwrap(Struct.decode(reader, reader.uint32()));
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
credentialAssertionData: isObject(object.credentialAssertionData) ? object.credentialAssertionData : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.credentialAssertionData !== undefined) {
obj.credentialAssertionData = message.credentialAssertionData;
}
return obj;
},
create(base) {
return CheckWebAuthN.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCheckWebAuthN();
message.credentialAssertionData = object.credentialAssertionData ?? undefined;
return message;
},
};
function createBaseCheckIDPIntent() {
return { idpIntentId: "", idpIntentToken: "" };
}
export const CheckIDPIntent = {
encode(message, writer = new BinaryWriter()) {
if (message.idpIntentId !== "") {
writer.uint32(10).string(message.idpIntentId);
}
if (message.idpIntentToken !== "") {
writer.uint32(18).string(message.idpIntentToken);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCheckIDPIntent();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.idpIntentId = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.idpIntentToken = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
idpIntentId: isSet(object.idpIntentId) ? globalThis.String(object.idpIntentId) : "",
idpIntentToken: isSet(object.idpIntentToken) ? globalThis.String(object.idpIntentToken) : "",
};
},
toJSON(message) {
const obj = {};
if (message.idpIntentId !== "") {
obj.idpIntentId = message.idpIntentId;
}
if (message.idpIntentToken !== "") {
obj.idpIntentToken = message.idpIntentToken;
}
return obj;
},
create(base) {
return CheckIDPIntent.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCheckIDPIntent();
message.idpIntentId = object.idpIntentId ?? "";
message.idpIntentToken = object.idpIntentToken ?? "";
return message;
},
};
function createBaseCheckTOTP() {
return { code: "" };
}
export const CheckTOTP = {
encode(message, writer = new BinaryWriter()) {
if (message.code !== "") {
writer.uint32(10).string(message.code);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCheckTOTP();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.code = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return { code: isSet(object.code) ? globalThis.String(object.code) : "" };
},
toJSON(message) {
const obj = {};
if (message.code !== "") {
obj.code = message.code;
}
return obj;
},
create(base) {
return CheckTOTP.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCheckTOTP();
message.code = object.code ?? "";
return message;
},
};
function createBaseCheckOTP() {
return { code: "" };
}
export const CheckOTP = {
encode(message, writer = new BinaryWriter()) {
if (message.code !== "") {
writer.uint32(10).string(message.code);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCheckOTP();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.code = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return { code: isSet(object.code) ? globalThis.String(object.code) : "" };
},
toJSON(message) {
const obj = {};
if (message.code !== "") {
obj.code = message.code;
}
return obj;
},
create(base) {
return CheckOTP.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCheckOTP();
message.code = object.code ?? "";
return message;
},
};
export const SessionServiceDefinition = {
name: "SessionService",
fullName: "zitadel.session.v2.SessionService",
methods: {
/** Search sessions */
listSessions: {
name: "ListSessions",
requestType: ListSessionsRequest,
requestStream: false,
responseType: ListSessionsResponse,
responseStream: false,
options: {
_unknownFields: {
8338: [
Buffer.from([
109,
18,
15,
83,
101,
97,
114,
99,
104,
32,
115,
101,
115,
115,
105,
111,
110,
115,
26,
19,
83,
101,
97,
114,
99,
104,
32,
102,
111,
114,
32,
115,
101,
115,
115,
105,
111,
110,
115,
74,
11,
10,
3,
50,
48,
48,
18,
4,
10,
2,
79,
75,
74,
56,
10,
3,
52,
48,
48,
18,
49,
10,
18,
105,
110,
118,
97,
108,
105,
100,
32,
108,
105,
115,
116,
32,
113,
117,
101,
114,
121,
18,
27,
10,
25,
26,
23,
35,
47,
100,
101,
102,
105,
110,
105,
116,
105,
111,
110,
115,
47,
114,
112,
99,
83,
116,
97,
116,
117,
115,
]),
],
400010: [Buffer.from([17, 10, 15, 10, 13, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 100])],
578365826: [
Buffer.from([
24,
58,
1,
42,
34,
19,
47,
118,
50,
47,
115,
101,
115,
115,
105,
111,
110,
115,
47,
115,
101,
97,
114,
99,
104,
]),
],
},
},
},
/** GetSession a session */
getSession: {
name: "GetSession",
requestType: GetSessionRequest,
requestStream: false,
responseType: GetSessionResponse,
responseStream: false,
options: {
_unknownFields: {
8338: [
Buffer.from([
118,
18,
13,
71,
101,
116,
32,
97,
32,
115,
101,
115,
115,
105,
111,
110,
26,
88,
71,
101,
116,
32,
97,
32,
115,
101,
115,
115,
105,
111,
110,
32,
97,
110,
100,
32,
97,
108,
108,
32,
105,
116,
115,
32,
105,
110,
102,
111,
114,
109,
97,
116,
105,
111,
110,
32,
108,
105,
107,
101,
32,
116,
104,
101,
32,
116,
105,
109,
101,
32,
111,
102,
32,
116,
104,
101,
32,
117,
115,
101,
114,
32,
111,
114,
32,
112,
97,
115,
115,
119,
111,
114,
100,
32,
118,
101,
114,
105,
102,
105,
99,
97,
116,
105,
111,
110,
74,
11,
10,
3,
50,
48,
48,
18,
4,
10,
2,
79,
75,
]),
],
400010: [Buffer.from([17, 10, 15, 10, 13, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 100])],
578365826: [
Buffer.from([
27,
18,
25,
47,
118,
50,
47,
115,
101,
115,
115,
105,
111,
110,
115,
47,
123,
115,
101,
115,
115,
105,
111,
110,
95,
105,
100,
125,
]),
],
},
},
},
/** Create a new session */
createSession: {
name: "CreateSession",
requestType: CreateSessionRequest,
requestStream: false,
responseType: CreateSessionResponse,
responseStream: false,
options: {
_unknownFields: {
8338: [
Buffer.from([
138,
1,
18,
20,
67,
114,
101,
97,
116,
101,
32,
97,
32,
110,
101,
119,
32,
115,
101,
115,
115,
105,
111,
110,
26,
101,
67,
114,
101,
97,
116,
101,
32,
97,
32,
110,
101,
119,
32,
115,
101,
115,
115,
105,
111,
110,
46,
32,
65,
32,
116,
111,
107,
101,
110,
32,
119,
105,
108,
108,
32,
98,
101,
32,
114,
101,
116,
117,
114,
110,
101,
100,
44,
32,
119,
104,
105,
99,
104,
32,
105,
115,
32,
114,
101,
113,
117,
105,
114,
101,
100,
32,
102,
111,
114,
32,
102,
117,
114,
116,
104,
101,
114,
32,
117,
112,
100,
97,
116,
101,
115,
32,
111,
102,
32,
116,
104,
101,
32,
115,
101,
115,
115,
105,
111,
110,
46,
74,
11,
10,
3,
50,
48,
48,
18,
4,
10,
2,
79,
75,
]),
],
400010: [
Buffer.from([
22,
10,
15,
10,
13,
97,
117,
116,
104,
101,
110,
116,
105,
99,
97,
116,
101,
100,
18,
3,
8,
201,
1,
]),
],
578365826: [Buffer.from([17, 58, 1, 42, 34, 12, 47, 118, 50, 47, 115, 101, 115, 115, 105, 111, 110, 115])],
},
},
},
/** Update a session */
setSession: {
name: "SetSession",
requestType: SetSessionRequest,
requestStream: false,
responseType: SetSessionResponse,
responseStream: false,
options: {
_unknownFields: {
8338: [
Buffer.from([
91,
18,
26,
85,
112,
100,
97,
116,
101,
32,
97,
110,
32,
101,
120,
105,
115,
116,
105,
110,
103,
32,
115,
101,
115,
115,
105,
111,
110,
26,
48,
85,
112,
100,
97,
116,
101,
32,
97,
110,
32,
101,
120,
105,
115,
116,
105,
110,
103,
32,
115,
101,
115,
115,
105,
111,
110,
32,
119,
105,
116,
104,
32,
110,
101,
119,
32,
105,
110,
102,
111,
114,
109,
97,
116,
105,
111,
110,
46,
74,
11,
10,
3,
50,
48,
48,
18,
4,
10,
2,
79,
75,
]),
],
400010: [Buffer.from([17, 10, 15, 10, 13, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 100])],
578365826: [
Buffer.from([
30,
58,
1,
42,
50,
25,
47,
118,
50,
47,
115,
101,
115,
115,
105,
111,
110,
115,
47,
123,
115,
101,
115,
115,
105,
111,
110,
95,
105,
100,
125,
]),
],
},
},
},
/** Terminate a session */
deleteSession: {
name: "DeleteSession",
requestType: DeleteSessionRequest,
requestStream: false,
responseType: DeleteSessionResponse,
responseStream: false,
options: {
_unknownFields: {
8338: [
Buffer.from([
105,
18,
29,
84,
101,
114,
109,
105,
110,
97,
116,
101,
32,
97,
110,
32,
101,
120,
105,
115,
116,
105,
110,
103,
32,
115,
101,
115,
115,
105,
111,
110,
26,
59,
84,
101,
114,
109,
105,
110,
97,
116,
101,
32,
121,
111,
117,
114,
32,
111,
119,
110,
32,
115,
101,
115,
115,
105,
111,
110,
32,
111,
114,
32,
105,
102,
32,
103,
114,
97,
110,
116,
101,
100,
32,
97,
110,
121,
32,
111,
116,
104,
101,
114,
32,
115,
101,
115,
115,
105,
111,
110,
46,
74,
11,
10,
3,
50,
48,
48,
18,
4,
10,
2,
79,
75,
]),
],
400010: [Buffer.from([17, 10, 15, 10, 13, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 100])],
578365826: [
Buffer.from([
30,
58,
1,
42,
42,
25,
47,
118,
50,
47,
115,
101,
115,
115,
105,
111,
110,
115,
47,
123,
115,
101,
115,
115,
105,
111,
110,
95,
105,
100,
125,
]),
],
},
},
},
},
};
function bytesFromBase64(b64) {
return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
}
function base64FromBytes(arr) {
return globalThis.Buffer.from(arr).toString("base64");
}
function isObject(value) {
return typeof value === "object" && value !== null;
}
function isSet(value) {
return value !== null && value !== undefined;
}