UNPKG

@ragnaraven/zitadel-node-dual

Version:

Library for API access to ZITADEL with modern ES import syntax. Works everywhere - NestJS, Node.js, any TypeScript environment. No more require()!

53 lines 2.28 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var interceptors_exports = {}; __export(interceptors_exports, { createAccessTokenInterceptor: () => createAccessTokenInterceptor, createServiceAccountInterceptor: () => createServiceAccountInterceptor }); module.exports = __toCommonJS(interceptors_exports); var import_nice_grpc_common = require("nice-grpc-common"); const createAccessTokenInterceptor = (token) => async function* (call, options) { options.metadata ??= new import_nice_grpc_common.Metadata(); if (!options.metadata.has("authorization")) { options.metadata.set("authorization", `Bearer ${token}`); } return yield* call.next(call.request, options); }; const createServiceAccountInterceptor = (audience, serviceAccount, authOptions) => { let token; let expiryDate = /* @__PURE__ */ new Date(0); return async function* (call, options) { options.metadata ??= new import_nice_grpc_common.Metadata(); if (!options.metadata.has("authorization")) { if (expiryDate < /* @__PURE__ */ new Date()) { token = await serviceAccount.authenticate(audience, authOptions); expiryDate.setTime((/* @__PURE__ */ new Date()).getTime() + 59 * 60 * 1e3); } options.metadata.set("authorization", `Bearer ${token}`); } return yield* call.next(call.request, options); }; }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createAccessTokenInterceptor, createServiceAccountInterceptor }); //# sourceMappingURL=interceptors.js.map