@loams/client 0.1.0 → 0.1.2

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 (56) hide show
  1. package/README.md +104 -4
  2. package/dist/app.d.ts +149 -0
  3. package/dist/app.js +317 -0
  4. package/dist/builders/filter.d.ts +96 -0
  5. package/dist/builders/filter.js +190 -0
  6. package/dist/builders/schema.d.ts +50 -0
  7. package/dist/builders/schema.js +92 -0
  8. package/dist/builders/search.d.ts +159 -0
  9. package/dist/builders/search.js +307 -0
  10. package/dist/gen/facade.d.ts +267 -2
  11. package/dist/gen/facade.js +194 -0
  12. package/dist/handle.d.ts +67 -0
  13. package/dist/handle.js +107 -0
  14. package/dist/index.d.ts +13 -5
  15. package/dist/index.js +13 -3
  16. package/dist/loams.d.ts +78 -3
  17. package/dist/loams.js +84 -6
  18. package/dist/node.js +1 -1
  19. package/dist/runtime/batch.d.ts +29 -0
  20. package/dist/runtime/batch.js +95 -0
  21. package/dist/runtime/call.d.ts +63 -9
  22. package/dist/runtime/call.js +243 -41
  23. package/dist/runtime/consistency.d.ts +65 -11
  24. package/dist/runtime/consistency.js +212 -46
  25. package/dist/runtime/errors.d.ts +29 -2
  26. package/dist/runtime/errors.js +26 -0
  27. package/dist/runtime/machine-key.d.ts +33 -0
  28. package/dist/runtime/machine-key.js +174 -0
  29. package/dist/runtime/pagination.js +8 -2
  30. package/dist/runtime/subscribe.d.ts +37 -0
  31. package/dist/runtime/subscribe.js +128 -0
  32. package/dist/runtime/token-source.d.ts +1 -1
  33. package/dist/runtime/token-source.js +1 -1
  34. package/dist/runtime/transports.d.ts +22 -1
  35. package/dist/runtime/transports.js +28 -2
  36. package/dist/vendor/proto/collection-v1.d.ts +3 -0
  37. package/dist/vendor/proto/collection-v1.js +7 -0
  38. package/dist/vendor/proto/gen/loams/auth/v1/auth_pb.d.ts +7 -2
  39. package/dist/vendor/proto/gen/loams/auth/v1/auth_pb.js +5 -1
  40. package/dist/vendor/proto/gen/loams/collection/v1/collection_pb.d.ts +1610 -0
  41. package/dist/vendor/proto/gen/loams/collection/v1/collection_pb.js +399 -0
  42. package/dist/vendor/proto/gen/loams/collection/v1/document_pb.d.ts +1054 -0
  43. package/dist/vendor/proto/gen/loams/collection/v1/document_pb.js +327 -0
  44. package/dist/vendor/proto/gen/loams/collection/v1/query_pb.d.ts +2101 -0
  45. package/dist/vendor/proto/gen/loams/collection/v1/query_pb.js +608 -0
  46. package/dist/vendor/proto/gen/loams/graph/v1/graph_pb.d.ts +2299 -0
  47. package/dist/vendor/proto/gen/loams/graph/v1/graph_pb.js +596 -0
  48. package/dist/vendor/proto/gen/loams/instance/v1/instance_pb.d.ts +23 -7
  49. package/dist/vendor/proto/gen/loams/instance/v1/instance_pb.js +20 -5
  50. package/dist/vendor/proto/gen/loams/operations/v1/operations_pb.d.ts +399 -0
  51. package/dist/vendor/proto/gen/loams/operations/v1/operations_pb.js +118 -0
  52. package/dist/vendor/proto/gen/loams/sql/v1/sql_pb.d.ts +182 -0
  53. package/dist/vendor/proto/gen/loams/sql/v1/sql_pb.js +72 -0
  54. package/dist/vendor/proto/gen/loams/stream/v1/stream_pb.d.ts +688 -0
  55. package/dist/vendor/proto/gen/loams/stream/v1/stream_pb.js +180 -0
  56. package/package.json +2 -2
@@ -0,0 +1,128 @@
1
+ // `streams.subscribe` (runtime contract R14, SDKP §2.5 and SDKP-2).
2
+ //
3
+ // const sub = loams.streams.subscribe({ stream: 'events', partition: 0, fromOffset: 1n });
4
+ // for await (const record of sub) {
5
+ // handle(record);
6
+ // if (done) break; // cancels the loop
7
+ // }
8
+ // resumeLater(sub.offset); // the next offset to read
9
+ //
10
+ // A client loop over unary `Fetch` rather than a server stream, so it works on
11
+ // every transport (Connect-unary included) and through every proxy:
12
+ //
13
+ // - The next offset is the last record's offset + 1.
14
+ // - An empty fetch backs off 100 ms, doubling, up to 1 s, and the backoff
15
+ // resets when a record arrives. When the caller passes `maxWaitMs`, the
16
+ // server long-polls instead and the backoff only applies when it answers
17
+ // empty at its deadline.
18
+ // - `offset` is always the next offset to read, so a caller can stop and
19
+ // resume without losing or repeating a record.
20
+ // - Breaking out of `for await`, calling `return()`, or aborting `signal`
21
+ // stops the loop; no further fetch is sent.
22
+ //
23
+ // A fetch that fails is retried by the call path as any `safe` call is; a
24
+ // failure that outlasts the retries ends the iteration with that error, and
25
+ // `offset` still says where to resume.
26
+ import { sleep } from './retry.js';
27
+ /** The first and the largest pause after an empty fetch. */
28
+ export const SUBSCRIBE_MIN_BACKOFF_MS = 100;
29
+ export const SUBSCRIBE_MAX_BACKOFF_MS = 1_000;
30
+ function asBigInt(value) {
31
+ if (value === undefined) {
32
+ return 0n;
33
+ }
34
+ return typeof value === 'bigint' ? value : BigInt(value);
35
+ }
36
+ /** Starts a subscription over `fetch`. Nothing is sent until the first
37
+ * `next()`. */
38
+ export function subscribe(fetch, request, options = {}) {
39
+ let offset = asBigInt(request.fromOffset);
40
+ let buffer = [];
41
+ let backoff = SUBSCRIBE_MIN_BACKOFF_MS;
42
+ let done = false;
43
+ const controller = new AbortController();
44
+ const onAbort = () => {
45
+ done = true;
46
+ controller.abort(options.signal?.reason);
47
+ };
48
+ if (options.signal?.aborted === true) {
49
+ onAbort();
50
+ }
51
+ else {
52
+ options.signal?.addEventListener('abort', onAbort, { once: true });
53
+ }
54
+ const finish = () => {
55
+ done = true;
56
+ options.signal?.removeEventListener('abort', onAbort);
57
+ if (!controller.signal.aborted) {
58
+ controller.abort();
59
+ }
60
+ return { done: true, value: undefined };
61
+ };
62
+ const fetchRequest = () => {
63
+ const out = {
64
+ stream: request.stream,
65
+ partition: request.partition ?? 0,
66
+ offset,
67
+ };
68
+ for (const key of ['namespace', 'maxRecords', 'maxBytes', 'maxWaitMs']) {
69
+ if (request[key] !== undefined) {
70
+ out[key] = request[key];
71
+ }
72
+ }
73
+ return out;
74
+ };
75
+ const subscription = {
76
+ get offset() {
77
+ return offset;
78
+ },
79
+ cancel() {
80
+ finish();
81
+ },
82
+ async next() {
83
+ while (!done) {
84
+ const record = buffer.shift();
85
+ if (record !== undefined) {
86
+ offset = asBigInt(record.offset) + 1n;
87
+ return { done: false, value: record };
88
+ }
89
+ let answer;
90
+ try {
91
+ answer = await fetch(fetchRequest(), { signal: controller.signal });
92
+ }
93
+ catch (error) {
94
+ if (done) {
95
+ return finish();
96
+ }
97
+ finish();
98
+ throw error;
99
+ }
100
+ if (done) {
101
+ return finish();
102
+ }
103
+ // A record below the next offset is one already yielded (a server that
104
+ // answers from a segment start); skipping it keeps resume exact.
105
+ buffer = (answer?.records ?? []).filter((r) => asBigInt(r.offset) >= offset);
106
+ if (buffer.length > 0) {
107
+ backoff = SUBSCRIBE_MIN_BACKOFF_MS;
108
+ continue;
109
+ }
110
+ try {
111
+ await sleep(backoff, controller.signal);
112
+ }
113
+ catch {
114
+ return finish();
115
+ }
116
+ backoff = Math.min(backoff * 2, SUBSCRIBE_MAX_BACKOFF_MS);
117
+ }
118
+ return finish();
119
+ },
120
+ return() {
121
+ return Promise.resolve(finish());
122
+ },
123
+ [Symbol.asyncIterator]() {
124
+ return this;
125
+ },
126
+ };
127
+ return subscription;
128
+ }
@@ -32,7 +32,7 @@ export declare function envToken(environment?: Record<string, string | undefined
32
32
  * rather than one per request.
33
33
  */
34
34
  export declare function refreshing(fetchToken: () => Promise<string>): TokenSource;
35
- /** The RFC 8693 token exchange a person signed in through Authentik needs
35
+ /** The RFC 8693 token exchange a person signed in at the IdP needs
36
36
  * (design §44 §7.4, D608; §19 §5.2).
37
37
  *
38
38
  * The instance's `/oauth/token` protocol endpoint takes the identity token and
@@ -64,7 +64,7 @@ export function refreshing(fetchToken) {
64
64
  };
65
65
  return source;
66
66
  }
67
- /** The RFC 8693 token exchange a person signed in through Authentik needs
67
+ /** The RFC 8693 token exchange a person signed in at the IdP needs
68
68
  * (design §44 §7.4, D608; §19 §5.2).
69
69
  *
70
70
  * The instance's `/oauth/token` protocol endpoint takes the identity token and
@@ -33,11 +33,32 @@ export interface TransportOptions {
33
33
  * it; this only tells the transport what the request will look like.
34
34
  */
35
35
  interceptors?: Parameters<typeof createConnectTransport>[0]['interceptors'];
36
+ /**
37
+ * The `fetch` the transport calls, for a runtime whose `fetch` needs
38
+ * wrapping (a proxy, a test double, instrumentation). When set it is used
39
+ * as given. When unset, the global `fetch` is used, wrapped to send
40
+ * `redirect: "manual"` in Cloudflare Workers (see `workersFetch`).
41
+ */
42
+ fetch?: typeof globalThis.fetch;
36
43
  }
44
+ /** True in Cloudflare Workers (workerd), which identifies itself this way. */
45
+ export declare function isWorkerd(): boolean;
46
+ /**
47
+ * Wraps `fetch` to send `redirect: "manual"`.
48
+ *
49
+ * connect-web sets `redirect: "error"` on every request, which Workers rejects
50
+ * ("Invalid redirect value, must be one of 'follow' or 'manual'"). Loams calls
51
+ * never redirect, so `manual` loses nothing there; it is applied only in
52
+ * workerd because in a browser `manual` turns a redirect into an opaque
53
+ * response that hides the failure `error` reports.
54
+ */
55
+ export declare function workersFetch(inner: typeof globalThis.fetch): typeof globalThis.fetch;
56
+ /** The `fetch` a transport built from `options` uses, or undefined for connect-web's default. */
57
+ export declare function transportFetch(options: TransportOptions): typeof globalThis.fetch | undefined;
37
58
  /**
38
59
  * The default transport: Connect over `fetch`.
39
60
  *
40
- * Works in a browser, in Node 18+ (which has `fetch`), in Deno and in Bun, and
61
+ * Works in a browser, in Node 18+ (which has `fetch`) and in Bun, and
41
62
  * speaks both the Connect unary protocol and gRPC-Web, which is what the server
42
63
  * serves on the same port (D600). This is the browser path as a first-class
43
64
  * case, not a fallback: it is the default in every runtime.
@@ -7,7 +7,7 @@
7
7
  // over `fetch`, which is what `@connectrpc/connect-web` implements. Because
8
8
  // the API serves gRPC-Web on the same port as everything else, the same
9
9
  // client code runs in a browser with no proxy and no sidecar.
10
- // - **Node, Deno and Bun** can do HTTP/2 gRPC. `@connectrpc/connect-node`
10
+ // - **Node and Bun** can do HTTP/2 gRPC. `@connectrpc/connect-node`
11
11
  // implements it over `node:http2`, and the server's plaintext listener means
12
12
  // no ALPN to negotiate — the client asks for HTTP/2 with prior knowledge.
13
13
  //
@@ -17,22 +17,48 @@
17
17
  // HTTP/2 transport in a browser bundle would be a build error, which is the
18
18
  // right failure.
19
19
  import { createConnectTransport } from '@connectrpc/connect-web';
20
+ /** True in Cloudflare Workers (workerd), which identifies itself this way. */
21
+ export function isWorkerd() {
22
+ return typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers';
23
+ }
24
+ /**
25
+ * Wraps `fetch` to send `redirect: "manual"`.
26
+ *
27
+ * connect-web sets `redirect: "error"` on every request, which Workers rejects
28
+ * ("Invalid redirect value, must be one of 'follow' or 'manual'"). Loams calls
29
+ * never redirect, so `manual` loses nothing there; it is applied only in
30
+ * workerd because in a browser `manual` turns a redirect into an opaque
31
+ * response that hides the failure `error` reports.
32
+ */
33
+ export function workersFetch(inner) {
34
+ return (input, init) => inner(input, init === undefined ? init : { ...init, redirect: 'manual' });
35
+ }
36
+ /** The `fetch` a transport built from `options` uses, or undefined for connect-web's default. */
37
+ export function transportFetch(options) {
38
+ if (options.fetch !== undefined) {
39
+ return options.fetch;
40
+ }
41
+ // Resolve the global lazily so a later polyfill or test stub is honoured.
42
+ return isWorkerd() ? workersFetch((input, init) => globalThis.fetch(input, init)) : undefined;
43
+ }
20
44
  /**
21
45
  * The default transport: Connect over `fetch`.
22
46
  *
23
- * Works in a browser, in Node 18+ (which has `fetch`), in Deno and in Bun, and
47
+ * Works in a browser, in Node 18+ (which has `fetch`) and in Bun, and
24
48
  * speaks both the Connect unary protocol and gRPC-Web, which is what the server
25
49
  * serves on the same port (D600). This is the browser path as a first-class
26
50
  * case, not a fallback: it is the default in every runtime.
27
51
  */
28
52
  export function createLoamsTransport(options = {}) {
29
53
  const interceptors = transportInterceptors(options);
54
+ const fetchImpl = transportFetch(options);
30
55
  return createConnectTransport({
31
56
  baseUrl: options.baseUrl ?? '',
32
57
  useBinaryFormat: options.useBinaryFormat ?? true,
33
58
  ...(options.defaultTimeoutMs === undefined
34
59
  ? {}
35
60
  : { defaultTimeoutMs: options.defaultTimeoutMs }),
61
+ ...(fetchImpl === undefined ? {} : { fetch: fetchImpl }),
36
62
  ...(interceptors.length === 0 ? {} : { interceptors }),
37
63
  });
38
64
  }
@@ -0,0 +1,3 @@
1
+ export * from './gen/loams/collection/v1/collection_pb.js';
2
+ export * from './gen/loams/collection/v1/document_pb.js';
3
+ export * from './gen/loams/collection/v1/query_pb.js';
@@ -0,0 +1,7 @@
1
+ // `loams.collection.v1` as one module: the package spans three proto files
2
+ // (`collection`, `document`, `query`), and the SDK facade imports a package's
3
+ // types from one specifier (`@loams/proto/collection-v1`), as `./admin.ts`
4
+ // does for `loams.admin.v1`. Each file stays importable on its own path too.
5
+ export * from './gen/loams/collection/v1/collection_pb.js';
6
+ export * from './gen/loams/collection/v1/document_pb.js';
7
+ export * from './gen/loams/collection/v1/query_pb.js';
@@ -110,7 +110,8 @@ export declare const ListProvidersResponseSchema: GenMessage<ListProvidersRespon
110
110
  */
111
111
  export type CompleteSetupRequest = Message<"loams.auth.v1.CompleteSetupRequest"> & {
112
112
  /**
113
- * The token `loams` printed at first start; not needed from loopback.
113
+ * This engine's LOAMS_SETUP_TOKEN. Required when authentication is on;
114
+ * ignored with LOAMS_AUTH_MODE=off.
114
115
  *
115
116
  * @generated from field: string setup_token = 1;
116
117
  */
@@ -333,7 +334,11 @@ export declare enum OidcProviderKind {
333
334
  /**
334
335
  * @generated from enum value: OIDC_PROVIDER_KIND_GENERIC = 7;
335
336
  */
336
- GENERIC = 7
337
+ GENERIC = 7,
338
+ /**
339
+ * @generated from enum value: OIDC_PROVIDER_KIND_ZITADEL = 8;
340
+ */
341
+ ZITADEL = 8
337
342
  }
338
343
  /**
339
344
  * Describes the enum loams.auth.v1.OidcProviderKind.
@@ -9,7 +9,7 @@ import { file_loams_options_v1_options } from "../../options/v1/options_pb.js";
9
9
  /**
10
10
  * Describes the file loams/auth/v1/auth.proto.
11
11
  */
12
- export const file_loams_auth_v1_auth = /*@__PURE__*/ fileDesc("Chhsb2Ftcy9hdXRoL3YxL2F1dGgucHJvdG8SDWxvYW1zLmF1dGgudjEiVwoMT2lkY1Byb3ZpZGVyEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSLQoEa2luZBgDIAEoDjIfLmxvYW1zLmF1dGgudjEuT2lkY1Byb3ZpZGVyS2luZCK6AQoHU2Vzc2lvbhIiCgR1c2VyGAEgASgLMhQubG9hbXMuYWRtaW4udjEuVXNlchIgCgNvcmcYAiABKAsyEy5sb2Ftcy5hZG1pbi52MS5PcmcSJQoEcm9sZRgDIAEoDjIXLmxvYW1zLmFkbWluLnYxLk9yZ1JvbGUSEgoKY3NyZl90b2tlbhgEIAEoCRIuCgpleHBpcmVzX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIWChRMaXN0UHJvdmlkZXJzUmVxdWVzdCJ0ChVMaXN0UHJvdmlkZXJzUmVzcG9uc2USEAoIcGFzc3dvcmQYASABKAgSDAoEdG90cBgCIAEoCBIQCghwYXNza2V5cxgDIAEoCBIpCgRvaWRjGAQgAygLMhsubG9hbXMuYXV0aC52MS5PaWRjUHJvdmlkZXIibAoUQ29tcGxldGVTZXR1cFJlcXVlc3QSEwoLc2V0dXBfdG9rZW4YASABKAkSEAoIb3JnX25hbWUYAiABKAkSDAoEbmFtZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIQCghwYXNzd29yZBgFIAEoCSJAChVDb21wbGV0ZVNldHVwUmVzcG9uc2USJwoHc2Vzc2lvbhgBIAEoCzIWLmxvYW1zLmF1dGgudjEuU2Vzc2lvbiITChFHZXRTZXNzaW9uUmVxdWVzdCI9ChJHZXRTZXNzaW9uUmVzcG9uc2USJwoHc2Vzc2lvbhgBIAEoCzIWLmxvYW1zLmF1dGgudjEuU2Vzc2lvbiJKChRDcmVhdGVTZXNzaW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIRCgl0b3RwX2NvZGUYAyABKAkiQAoVQ3JlYXRlU2Vzc2lvblJlc3BvbnNlEicKB3Nlc3Npb24YASABKAsyFi5sb2Ftcy5hdXRoLnYxLlNlc3Npb24iFgoURGVsZXRlU2Vzc2lvblJlcXVlc3QiFwoVRGVsZXRlU2Vzc2lvblJlc3BvbnNlItgBChREZWNpZGVDb25zZW50UmVxdWVzdBIwCghkZWNpc2lvbhgBIAEoDjIeLmxvYW1zLmF1dGgudjEuQ29uc2VudERlY2lzaW9uEhEKCWNsaWVudF9pZBgCIAEoCRIUCgxyZWRpcmVjdF91cmkYAyABKAkSDQoFc2NvcGUYBCABKAkSEAoIYXVkaWVuY2UYBSABKAkSDQoFc3RhdGUYBiABKAkSFgoOY29kZV9jaGFsbGVuZ2UYByABKAkSHQoVY29kZV9jaGFsbGVuZ2VfbWV0aG9kGAggASgJIiwKFURlY2lkZUNvbnNlbnRSZXNwb25zZRITCgtyZWRpcmVjdF90bxgBIAEoCSqPAgoQT2lkY1Byb3ZpZGVyS2luZBIiCh5PSURDX1BST1ZJREVSX0tJTkRfVU5TUEVDSUZJRUQQABIfChtPSURDX1BST1ZJREVSX0tJTkRfS0VZQ0xPQUsQARIbChdPSURDX1BST1ZJREVSX0tJTkRfT0tUQRACEhwKGE9JRENfUFJPVklERVJfS0lORF9FTlRSQRADEh0KGU9JRENfUFJPVklERVJfS0lORF9HT09HTEUQBBIgChxPSURDX1BST1ZJREVSX0tJTkRfQVVUSEVOVElLEAUSGgoWT0lEQ19QUk9WSURFUl9LSU5EX0RFWBAGEh4KGk9JRENfUFJPVklERVJfS0lORF9HRU5FUklDEAcqagoPQ29uc2VudERlY2lzaW9uEiAKHENPTlNFTlRfREVDSVNJT05fVU5TUEVDSUZJRUQQABIaChZDT05TRU5UX0RFQ0lTSU9OX0FMTE9XEAESGQoVQ09OU0VOVF9ERUNJU0lPTl9ERU5ZEAIy/QUKC0F1dGhTZXJ2aWNlEnIKDUxpc3RQcm92aWRlcnMSIy5sb2Ftcy5hdXRoLnYxLkxpc3RQcm92aWRlcnNSZXF1ZXN0GiQubG9hbXMuYXV0aC52MS5MaXN0UHJvdmlkZXJzUmVzcG9uc2UiFpACAZK1GA8SDWxpc3RQcm92aWRlcnMSbwoNQ29tcGxldGVTZXR1cBIjLmxvYW1zLmF1dGgudjEuQ29tcGxldGVTZXR1cFJlcXVlc3QaJC5sb2Ftcy5hdXRoLnYxLkNvbXBsZXRlU2V0dXBSZXNwb25zZSITkrUYDxINY29tcGxldGVTZXR1cBJmCgpHZXRTZXNzaW9uEiAubG9hbXMuYXV0aC52MS5HZXRTZXNzaW9uUmVxdWVzdBohLmxvYW1zLmF1dGgudjEuR2V0U2Vzc2lvblJlc3BvbnNlIhOQAgGStRgMEgpnZXRTZXNzaW9uEm8KDUNyZWF0ZVNlc3Npb24SIy5sb2Ftcy5hdXRoLnYxLkNyZWF0ZVNlc3Npb25SZXF1ZXN0GiQubG9hbXMuYXV0aC52MS5DcmVhdGVTZXNzaW9uUmVzcG9uc2UiE5K1GA8SDWNyZWF0ZVNlc3Npb24ScgoNRGVsZXRlU2Vzc2lvbhIjLmxvYW1zLmF1dGgudjEuRGVsZXRlU2Vzc2lvblJlcXVlc3QaJC5sb2Ftcy5hdXRoLnYxLkRlbGV0ZVNlc3Npb25SZXNwb25zZSIWkAICkrUYDxINZGVsZXRlU2Vzc2lvbhJvCg1EZWNpZGVDb25zZW50EiMubG9hbXMuYXV0aC52MS5EZWNpZGVDb25zZW50UmVxdWVzdBokLmxvYW1zLmF1dGgudjEuRGVjaWRlQ29uc2VudFJlc3BvbnNlIhOStRgPEg1kZWNpZGVDb25zZW50GkuKtRhHCgRhdXRoEj9TaWduLWluIHByb3ZpZGVycywgZmlyc3QtcnVuIHNldHVwLCBzZXNzaW9ucyBhbmQgT0F1dGggY29uc2VudC5iBnByb3RvMw", [file_google_protobuf_timestamp, file_loams_admin_v1_common, file_loams_admin_v1_org, file_loams_options_v1_options]);
12
+ export const file_loams_auth_v1_auth = /*@__PURE__*/ fileDesc("Chhsb2Ftcy9hdXRoL3YxL2F1dGgucHJvdG8SDWxvYW1zLmF1dGgudjEiVwoMT2lkY1Byb3ZpZGVyEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSLQoEa2luZBgDIAEoDjIfLmxvYW1zLmF1dGgudjEuT2lkY1Byb3ZpZGVyS2luZCK6AQoHU2Vzc2lvbhIiCgR1c2VyGAEgASgLMhQubG9hbXMuYWRtaW4udjEuVXNlchIgCgNvcmcYAiABKAsyEy5sb2Ftcy5hZG1pbi52MS5PcmcSJQoEcm9sZRgDIAEoDjIXLmxvYW1zLmFkbWluLnYxLk9yZ1JvbGUSEgoKY3NyZl90b2tlbhgEIAEoCRIuCgpleHBpcmVzX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIWChRMaXN0UHJvdmlkZXJzUmVxdWVzdCJ0ChVMaXN0UHJvdmlkZXJzUmVzcG9uc2USEAoIcGFzc3dvcmQYASABKAgSDAoEdG90cBgCIAEoCBIQCghwYXNza2V5cxgDIAEoCBIpCgRvaWRjGAQgAygLMhsubG9hbXMuYXV0aC52MS5PaWRjUHJvdmlkZXIibAoUQ29tcGxldGVTZXR1cFJlcXVlc3QSEwoLc2V0dXBfdG9rZW4YASABKAkSEAoIb3JnX25hbWUYAiABKAkSDAoEbmFtZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIQCghwYXNzd29yZBgFIAEoCSJAChVDb21wbGV0ZVNldHVwUmVzcG9uc2USJwoHc2Vzc2lvbhgBIAEoCzIWLmxvYW1zLmF1dGgudjEuU2Vzc2lvbiITChFHZXRTZXNzaW9uUmVxdWVzdCI9ChJHZXRTZXNzaW9uUmVzcG9uc2USJwoHc2Vzc2lvbhgBIAEoCzIWLmxvYW1zLmF1dGgudjEuU2Vzc2lvbiJKChRDcmVhdGVTZXNzaW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIRCgl0b3RwX2NvZGUYAyABKAkiQAoVQ3JlYXRlU2Vzc2lvblJlc3BvbnNlEicKB3Nlc3Npb24YASABKAsyFi5sb2Ftcy5hdXRoLnYxLlNlc3Npb24iFgoURGVsZXRlU2Vzc2lvblJlcXVlc3QiFwoVRGVsZXRlU2Vzc2lvblJlc3BvbnNlItgBChREZWNpZGVDb25zZW50UmVxdWVzdBIwCghkZWNpc2lvbhgBIAEoDjIeLmxvYW1zLmF1dGgudjEuQ29uc2VudERlY2lzaW9uEhEKCWNsaWVudF9pZBgCIAEoCRIUCgxyZWRpcmVjdF91cmkYAyABKAkSDQoFc2NvcGUYBCABKAkSEAoIYXVkaWVuY2UYBSABKAkSDQoFc3RhdGUYBiABKAkSFgoOY29kZV9jaGFsbGVuZ2UYByABKAkSHQoVY29kZV9jaGFsbGVuZ2VfbWV0aG9kGAggASgJIiwKFURlY2lkZUNvbnNlbnRSZXNwb25zZRITCgtyZWRpcmVjdF90bxgBIAEoCSqvAgoQT2lkY1Byb3ZpZGVyS2luZBIiCh5PSURDX1BST1ZJREVSX0tJTkRfVU5TUEVDSUZJRUQQABIfChtPSURDX1BST1ZJREVSX0tJTkRfS0VZQ0xPQUsQARIbChdPSURDX1BST1ZJREVSX0tJTkRfT0tUQRACEhwKGE9JRENfUFJPVklERVJfS0lORF9FTlRSQRADEh0KGU9JRENfUFJPVklERVJfS0lORF9HT09HTEUQBBIgChxPSURDX1BST1ZJREVSX0tJTkRfQVVUSEVOVElLEAUSGgoWT0lEQ19QUk9WSURFUl9LSU5EX0RFWBAGEh4KGk9JRENfUFJPVklERVJfS0lORF9HRU5FUklDEAcSHgoaT0lEQ19QUk9WSURFUl9LSU5EX1pJVEFERUwQCCpqCg9Db25zZW50RGVjaXNpb24SIAocQ09OU0VOVF9ERUNJU0lPTl9VTlNQRUNJRklFRBAAEhoKFkNPTlNFTlRfREVDSVNJT05fQUxMT1cQARIZChVDT05TRU5UX0RFQ0lTSU9OX0RFTlkQAjL9BQoLQXV0aFNlcnZpY2UScgoNTGlzdFByb3ZpZGVycxIjLmxvYW1zLmF1dGgudjEuTGlzdFByb3ZpZGVyc1JlcXVlc3QaJC5sb2Ftcy5hdXRoLnYxLkxpc3RQcm92aWRlcnNSZXNwb25zZSIWkAIBkrUYDxINbGlzdFByb3ZpZGVycxJvCg1Db21wbGV0ZVNldHVwEiMubG9hbXMuYXV0aC52MS5Db21wbGV0ZVNldHVwUmVxdWVzdBokLmxvYW1zLmF1dGgudjEuQ29tcGxldGVTZXR1cFJlc3BvbnNlIhOStRgPEg1jb21wbGV0ZVNldHVwEmYKCkdldFNlc3Npb24SIC5sb2Ftcy5hdXRoLnYxLkdldFNlc3Npb25SZXF1ZXN0GiEubG9hbXMuYXV0aC52MS5HZXRTZXNzaW9uUmVzcG9uc2UiE5ACAZK1GAwSCmdldFNlc3Npb24SbwoNQ3JlYXRlU2Vzc2lvbhIjLmxvYW1zLmF1dGgudjEuQ3JlYXRlU2Vzc2lvblJlcXVlc3QaJC5sb2Ftcy5hdXRoLnYxLkNyZWF0ZVNlc3Npb25SZXNwb25zZSITkrUYDxINY3JlYXRlU2Vzc2lvbhJyCg1EZWxldGVTZXNzaW9uEiMubG9hbXMuYXV0aC52MS5EZWxldGVTZXNzaW9uUmVxdWVzdBokLmxvYW1zLmF1dGgudjEuRGVsZXRlU2Vzc2lvblJlc3BvbnNlIhaQAgKStRgPEg1kZWxldGVTZXNzaW9uEm8KDURlY2lkZUNvbnNlbnQSIy5sb2Ftcy5hdXRoLnYxLkRlY2lkZUNvbnNlbnRSZXF1ZXN0GiQubG9hbXMuYXV0aC52MS5EZWNpZGVDb25zZW50UmVzcG9uc2UiE5K1GA8SDWRlY2lkZUNvbnNlbnQaS4q1GEcKBGF1dGgSP1NpZ24taW4gcHJvdmlkZXJzLCBmaXJzdC1ydW4gc2V0dXAsIHNlc3Npb25zIGFuZCBPQXV0aCBjb25zZW50LmIGcHJvdG8z", [file_google_protobuf_timestamp, file_loams_admin_v1_common, file_loams_admin_v1_org, file_loams_options_v1_options]);
13
13
  /**
14
14
  * Describes the message loams.auth.v1.OidcProvider.
15
15
  * Use `create(OidcProviderSchema)` to create a new message.
@@ -119,6 +119,10 @@ export var OidcProviderKind;
119
119
  * @generated from enum value: OIDC_PROVIDER_KIND_GENERIC = 7;
120
120
  */
121
121
  OidcProviderKind[OidcProviderKind["GENERIC"] = 7] = "GENERIC";
122
+ /**
123
+ * @generated from enum value: OIDC_PROVIDER_KIND_ZITADEL = 8;
124
+ */
125
+ OidcProviderKind[OidcProviderKind["ZITADEL"] = 8] = "ZITADEL";
122
126
  })(OidcProviderKind || (OidcProviderKind = {}));
123
127
  /**
124
128
  * Describes the enum loams.auth.v1.OidcProviderKind.