@hyperline/cli 0.1.0-build.1.1064600 → 0.1.0-build.1.9301c8c

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.
@@ -7726,8 +7726,364 @@ var countriesAndCurrencies = (
7726
7726
  ]
7727
7727
  );
7728
7728
 
7729
+ // ../hyperline-monitoring/build/context/context.js
7730
+ import { AsyncLocalStorage } from "node:async_hooks";
7731
+ var executionContextStorage = new AsyncLocalStorage();
7732
+ function getExecutionContext() {
7733
+ return executionContextStorage.getStore();
7734
+ }
7735
+
7736
+ // ../hyperline-monitoring/build/context/correlationId.js
7737
+ import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
7738
+ var correlationIdStorage = new AsyncLocalStorage2();
7739
+ function getCorrelationId() {
7740
+ return correlationIdStorage.getStore();
7741
+ }
7742
+
7743
+ // ../hyperline-config/build/index.js
7744
+ import "dotenv/config";
7745
+ import * as stackTraceParser from "stacktrace-parser";
7746
+ import { ZodOptional as ZodOptional2, z as z2 } from "zod";
7747
+ function coerceBoolean() {
7748
+ return z2.any().refine((value) => ["true", "false"].includes(value), {
7749
+ message: "Expected boolean"
7750
+ }).transform((value) => (
7751
+ // biome-ignore lint/complexity/noUselessTernary: ignore
7752
+ value === "true" ? true : false
7753
+ ));
7754
+ }
7755
+ var types = {
7756
+ string: z2.coerce.string,
7757
+ number: z2.coerce.number,
7758
+ boolean: coerceBoolean,
7759
+ enum: z2.enum
7760
+ };
7761
+ function getConfig(schema, testValues) {
7762
+ const validator = z2.object(Object.fromEntries(Object.entries(schema).map(([key, zodType]) => {
7763
+ if (zodType instanceof ZodOptional2) {
7764
+ return [key, z2.string().optional()];
7765
+ }
7766
+ return [key, z2.string()];
7767
+ })));
7768
+ const processEnv = process.env;
7769
+ const isTestMode = processEnv.NODE_ENV === "test";
7770
+ const envVariables = {
7771
+ ...processEnv,
7772
+ ...isTestMode && testValues ? Object.fromEntries(Object.entries(testValues).map(([key, value]) => [key, String(value)])) : {}
7773
+ };
7774
+ const packageName = envVariables.npm_package_name;
7775
+ const parseProcessEnvResult = validator.safeParse(envVariables);
7776
+ if (!parseProcessEnvResult.success) {
7777
+ const parsedStackTrace = stackTraceParser.parse(parseProcessEnvResult.error.stack ?? "");
7778
+ const getConfigCallLine = parsedStackTrace.find((line) => {
7779
+ return !line.file?.includes("hyperline-config") && (line.file?.includes("apps/") || line.file?.includes("core/") || line.file?.includes("packages/"));
7780
+ });
7781
+ const callerFile = getConfigCallLine?.file;
7782
+ console.error(`Invalid environment variables for service \`${packageName}\`: \`${callerFile}\``);
7783
+ console.error(parseProcessEnvResult.error.format());
7784
+ process.exit(1);
7785
+ }
7786
+ const coercion = z2.object(schema);
7787
+ return coercion.parse(parseProcessEnvResult.data);
7788
+ }
7789
+
7790
+ // ../hyperline-monitoring/build/config.js
7791
+ var config = getConfig({
7792
+ // config
7793
+ APP_VERSION: types.string().optional(),
7794
+ LOGGER_CONSOLE_ENABLED: types.boolean().optional(),
7795
+ LOGGER_STDOUT_ENABLED: types.boolean().optional(),
7796
+ NODE_ENV: types.enum(["local", "test", "staging", "sandbox", "production"]),
7797
+ EVENT_LOOP_MONITORING_ENABLED: types.boolean().optional(),
7798
+ MEMORY_MONITORING_ENABLED: types.boolean().optional()
7799
+ // secrets
7800
+ }, {
7801
+ APP_VERSION: void 0,
7802
+ LOGGER_CONSOLE_ENABLED: false,
7803
+ LOGGER_STDOUT_ENABLED: false,
7804
+ EVENT_LOOP_MONITORING_ENABLED: false,
7805
+ MEMORY_MONITORING_ENABLED: false,
7806
+ NODE_ENV: "test"
7807
+ });
7808
+
7809
+ // ../hyperline-monitoring/build/logger/logger.js
7810
+ import * as util from "node:util";
7811
+ import prune2 from "json-prune";
7812
+ import * as winston from "winston";
7813
+
7814
+ // ../hyperline-monitoring/build/logger/formatting/format.js
7815
+ import prune from "json-prune";
7816
+ function jsonFormat(info) {
7817
+ const prunedInfo = JSON.parse(prune(info));
7818
+ for (const [key, value] of Object.entries(prunedInfo)) {
7819
+ info[key] = value;
7820
+ }
7821
+ return info;
7822
+ }
7823
+ function addMetadata({ getCorrelationId: getCorrelationId2, getExecutionContext: getExecutionContext2 }) {
7824
+ return (info) => {
7825
+ const correlationId = getCorrelationId2();
7826
+ const executionContext = getExecutionContext2();
7827
+ let traceContext;
7828
+ return {
7829
+ ...info,
7830
+ ...executionContext ?? {},
7831
+ ...traceContext ?? {},
7832
+ correlationId
7833
+ };
7834
+ };
7835
+ }
7836
+ function transformErrorEnrich(info, { depth }) {
7837
+ if (depth <= 0) {
7838
+ return info;
7839
+ }
7840
+ Object.entries(info).forEach(([key, value]) => {
7841
+ let newValue = value;
7842
+ if (newValue instanceof Error) {
7843
+ newValue = {
7844
+ ...newValue,
7845
+ // Copy error properties manually because they're not enumerable
7846
+ level: newValue.level,
7847
+ stack: newValue.stack,
7848
+ message: newValue.message,
7849
+ name: newValue.name
7850
+ };
7851
+ }
7852
+ if (newValue instanceof Object) {
7853
+ newValue = transformErrorEnrich(newValue, { depth: depth - 1 });
7854
+ }
7855
+ const isPropertyWritable = Object.getOwnPropertyDescriptor(info, key)?.writable ?? true;
7856
+ if (isPropertyWritable && newValue !== value) {
7857
+ info[key] = newValue;
7858
+ }
7859
+ });
7860
+ return info;
7861
+ }
7862
+ function transformPrune(info) {
7863
+ Object.entries(info).forEach(([key, value]) => {
7864
+ if (typeof value === "function") {
7865
+ return;
7866
+ }
7867
+ const newValue = value instanceof Object ? JSON.parse(prune(value, { depthDecr: 6 })) : value;
7868
+ const isPropertyWritable = Object.getOwnPropertyDescriptor(info, key)?.writable ?? true;
7869
+ if (isPropertyWritable && newValue !== value) {
7870
+ info[key] = newValue;
7871
+ }
7872
+ });
7873
+ return info;
7874
+ }
7875
+ function transformAxiosError(info) {
7876
+ Object.entries(info).forEach(([key, value]) => {
7877
+ if (typeof value === "object" && value?.name === "AxiosError") {
7878
+ info[key] = formatAxiosError(value);
7879
+ }
7880
+ });
7881
+ return info;
7882
+ }
7883
+ function formatAxiosError(error) {
7884
+ if (!isRecord(error) || error.name !== "AxiosError") {
7885
+ return error;
7886
+ }
7887
+ const request = isRecord(error.config) ? error.config : void 0;
7888
+ const response = isRecord(error.response) ? error.response : void 0;
7889
+ return {
7890
+ name: error.name,
7891
+ message: error.message,
7892
+ code: error.code,
7893
+ request: {
7894
+ method: request?.method,
7895
+ url: request?.url,
7896
+ baseURL: request?.baseURL,
7897
+ params: request?.params,
7898
+ headers: request?.headers,
7899
+ "axios-retry": request?.["axios-retry"]
7900
+ },
7901
+ response: {
7902
+ status: response?.status,
7903
+ statusText: response?.statusText,
7904
+ headers: response?.headers,
7905
+ data: response?.data
7906
+ }
7907
+ };
7908
+ }
7909
+ function isRecord(value) {
7910
+ return typeof value === "object" && value !== null && !Array.isArray(value);
7911
+ }
7912
+
7913
+ // ../hyperline-monitoring/build/logger/formatting/routePath.js
7914
+ function transformUrlIntoRoutePath({ params, originalUrl }) {
7915
+ let routePath = originalUrl;
7916
+ for (const [param, value] of Object.entries(params ?? {})) {
7917
+ const strValue = Array.isArray(value) ? value.join("/") : value;
7918
+ routePath = routePath.replace(strValue, `:${param}`);
7919
+ }
7920
+ return routePath.split("?")[0] ?? routePath;
7921
+ }
7922
+
7923
+ // ../hyperline-monitoring/build/logger/formatting/http.js
7924
+ function logHttpRequest(logger2, request, extra) {
7925
+ const { message, metadata } = transform(request);
7926
+ logger2.info(`HTTP REQ - ${message} ${extra?.postfix || ""}`, {
7927
+ ...metadata,
7928
+ ...extra?.metadata ?? {}
7929
+ });
7930
+ }
7931
+ function logHttpResponse(logger2, response, responseTime, extra) {
7932
+ const { request, statusCode, responseBody } = response;
7933
+ const { message, metadata } = transform(request);
7934
+ const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
7935
+ const responseMetadata = {
7936
+ statusCode,
7937
+ responseTime,
7938
+ responseBody
7939
+ };
7940
+ logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
7941
+ ...metadata,
7942
+ ...responseMetadata,
7943
+ ...extra?.metadata ?? {}
7944
+ });
7945
+ }
7946
+ function transform(request) {
7947
+ const method = request.method.toUpperCase();
7948
+ const message = `${method} ${request.originalUrl}`;
7949
+ const metadata = {};
7950
+ metadata.method = method;
7951
+ metadata.url = request.url;
7952
+ metadata.path = request.path;
7953
+ metadata.hostname = request.hostname;
7954
+ metadata.originalUrl = request.originalUrl;
7955
+ metadata.requestBody = request.body;
7956
+ metadata.routePath = transformUrlIntoRoutePath(request);
7957
+ metadata.apiKeyEnd = request.headers["authorization"]?.slice(-6);
7958
+ return { message, metadata };
7959
+ }
7960
+ function getReadableTime(time) {
7961
+ return time < 1e4 ? `${time}ms` : `${Math.round(time / 1e3)}s`;
7962
+ }
7963
+
7964
+ // ../hyperline-monitoring/build/logger/utils/network.js
7965
+ import * as os2 from "node:os";
7966
+ function getIpAddress() {
7967
+ const interfaces = Object.values(os2.networkInterfaces()).flat().filter((networkInterface) => {
7968
+ return networkInterface !== void 0;
7969
+ });
7970
+ const mainInterface = interfaces.find(({ family, internal }) => family === "IPv4" && internal === false);
7971
+ return mainInterface ? mainInterface.address : null;
7972
+ }
7973
+
7974
+ // ../hyperline-monitoring/build/logger/logger.js
7975
+ function buildLoggerFactory({ config: config2, context }) {
7976
+ const defaultMeta = {
7977
+ env: context.env,
7978
+ service: context.service,
7979
+ version: context.version,
7980
+ pid: process.pid,
7981
+ ppid: process.ppid,
7982
+ host: getIpAddress()
7983
+ };
7984
+ const transports2 = [];
7985
+ if (config2.enableConsoleTransport) {
7986
+ transports2.push(createTransportConsole());
7987
+ }
7988
+ if (config2.enableStdoutTransport) {
7989
+ transports2.push(createTransportStdout());
7990
+ }
7991
+ if (Object.values(config2).every((value) => !value)) {
7992
+ transports2.push(createTransportSilent());
7993
+ }
7994
+ for (const transport of transports2) {
7995
+ transport.on("error", (error) => {
7996
+ console.error(`Unable to log to transport=${transport.name}: ${error.message} ${JSON.stringify(error)}`);
7997
+ });
7998
+ }
7999
+ const internalLogger = winston.createLogger({
8000
+ transports: transports2,
8001
+ defaultMeta,
8002
+ format: winston.format.combine(winston.format.splat(), winston.format(addMetadata({ getCorrelationId, getExecutionContext }))(), winston.format(transformErrorEnrich)({ depth: 5 }), winston.format(transformPrune)(), winston.format(transformAxiosError)(), winston.format.timestamp()),
8003
+ exitOnError: false
8004
+ });
8005
+ function createLogger3({ serviceName }) {
8006
+ const logger2 = internalLogger.child({ subService: serviceName });
8007
+ return {
8008
+ debug: bindLogger(logger2, "debug"),
8009
+ info: bindLogger(logger2, "info"),
8010
+ warn: bindLogger(logger2, "warn"),
8011
+ error: bindLogger(logger2, "error"),
8012
+ on: logger2.on.bind(logger2),
8013
+ end: logger2.end.bind(logger2)
8014
+ };
8015
+ }
8016
+ return {
8017
+ createLogger: createLogger3
8018
+ };
8019
+ }
8020
+ function bindLogger(logger2, severity) {
8021
+ return (message, data) => {
8022
+ logger2[severity].bind(logger2)(message, preserveReservedKeys(data));
8023
+ };
8024
+ }
8025
+ function preserveReservedKeys(data) {
8026
+ if (!data)
8027
+ return;
8028
+ return Object.fromEntries(Object.entries(data).map(([key, value]) => {
8029
+ let finalKey = key;
8030
+ if (key === "status") {
8031
+ finalKey = "_status";
8032
+ } else if (key === "service") {
8033
+ finalKey = "_service";
8034
+ }
8035
+ return [finalKey, value];
8036
+ }));
8037
+ }
8038
+ var verboseLevels = ["warn", "error", "debug"];
8039
+ function createTransportConsole() {
8040
+ return new winston.transports.Console({
8041
+ level: "debug",
8042
+ handleExceptions: true,
8043
+ format: winston.format.combine(winston.format(jsonFormat)(), winston.format((info) => {
8044
+ const { level, message, ...others } = info;
8045
+ const parts = [message];
8046
+ if (Object.keys(others).length > 0 && verboseLevels.includes(level)) {
8047
+ const rawOthers = JSON.parse(prune2(others));
8048
+ parts.push(util.inspect(rawOthers, false, 4, true));
8049
+ }
8050
+ info.message = parts.filter((part) => !!part).join("\n");
8051
+ return info;
8052
+ })(), winston.format.colorize(), winston.format.printf(({ timestamp, level, message, service = "?" }) => {
8053
+ const result = `[${timestamp}] ${level} ${service}: ${message}`;
8054
+ return result.replace(/\\n/g, "\n");
8055
+ }))
8056
+ });
8057
+ }
8058
+ function createTransportStdout() {
8059
+ return new winston.transports.Console({
8060
+ level: "debug",
8061
+ handleExceptions: true,
8062
+ format: winston.format.combine(winston.format(jsonFormat)(), winston.format.timestamp(), winston.format.json())
8063
+ });
8064
+ }
8065
+ function createTransportSilent() {
8066
+ return new winston.transports.Console({
8067
+ silent: true
8068
+ });
8069
+ }
8070
+
8071
+ // ../hyperline-monitoring/build/logger/instance.js
8072
+ var loggerFactory = buildLoggerFactory({
8073
+ config: {
8074
+ enableConsoleTransport: config.LOGGER_CONSOLE_ENABLED ?? false,
8075
+ enableStdoutTransport: config.LOGGER_STDOUT_ENABLED ?? false
8076
+ },
8077
+ context: {
8078
+ env: config.NODE_ENV,
8079
+ service: "api",
8080
+ version: config.APP_VERSION
8081
+ }
8082
+ });
8083
+ var createLogger2 = loggerFactory.createLogger;
8084
+ var logger = loggerFactory.createLogger({ serviceName: "default" });
8085
+
7729
8086
  // ../hyperline-lib/build/utils/config/usStates.js
7730
- import { logger } from "@hyperline/monitoring";
7731
8087
  var usStates = [
7732
8088
  "AA",
7733
8089
  "AE",
@@ -7792,7 +8148,7 @@ var usStates = [
7792
8148
 
7793
8149
  // ../hyperline-lib/build/utils/dates.js
7794
8150
  import { toLocalTime, toUtc } from "@hyperline/shared";
7795
- import { add, addDays, addHours, addMinutes, addMonths, addWeeks, addYears, areIntervalsOverlapping, differenceInCalendarDays, differenceInCalendarYears, differenceInMilliseconds, differenceInMonths, differenceInWeeks, eachDayOfInterval, endOfDay, endOfMonth, endOfQuarter, endOfWeek, endOfYear, format, getHours, getISOWeek, getISOWeekYear, getMilliseconds, getMinutes, getSeconds, isBefore, isEqual, isSameDay, parse, setHours, setMilliseconds, setMinutes, setSeconds, startOfDay, startOfMonth, startOfQuarter, startOfWeek, startOfYear, sub } from "date-fns";
8151
+ import { add, addDays, addHours, addMinutes, addMonths, addWeeks, addYears, areIntervalsOverlapping, differenceInCalendarDays, differenceInCalendarYears, differenceInMilliseconds, differenceInMonths, differenceInWeeks, eachDayOfInterval, endOfDay, endOfMonth, endOfQuarter, endOfWeek, endOfYear, format as format2, getHours, getISOWeek, getISOWeekYear, getMilliseconds, getMinutes, getSeconds, isBefore, isEqual, isSameDay, parse as parse2, setHours, setMilliseconds, setMinutes, setSeconds, startOfDay, startOfMonth, startOfQuarter, startOfWeek, startOfYear, sub } from "date-fns";
7796
8152
 
7797
8153
  // ../hyperline-lib/build/utils/document.js
7798
8154
  import { toLocalTime as toLocalTime2 } from "@hyperline/shared";
@@ -7864,15 +8220,15 @@ var ErrorSchema = z.object({
7864
8220
  });
7865
8221
 
7866
8222
  // ../hyperline-lib/build/http/dto/pagination.js
7867
- import z2 from "zod";
8223
+ import z3 from "zod";
7868
8224
  var PublicPaginationParams = {
7869
- take: z2.coerce.number().nonnegative().max(100).optional().default(50),
7870
- skip: z2.coerce.number().nonnegative().optional().default(0)
8225
+ take: z3.coerce.number().nonnegative().max(100).optional().default(50),
8226
+ skip: z3.coerce.number().nonnegative().optional().default(0)
7871
8227
  };
7872
- var PublicPaginationSchema = z2.object(PublicPaginationParams);
8228
+ var PublicPaginationSchema = z3.object(PublicPaginationParams);
7873
8229
 
7874
8230
  // ../hyperline-lib/build/http/dto/sort.js
7875
- import z3 from "zod";
8231
+ import z4 from "zod";
7876
8232
 
7877
8233
  // ../hyperline-lib/build/http/dto/state.js
7878
8234
  var StateSchema = z.enum(usStates).openapi({
@@ -7886,12 +8242,356 @@ import { ZodError as ZodError2 } from "zod";
7886
8242
  // ../hyperline-lib/build/http/helpers/correlation.js
7887
8243
  import { validate as validateUuid } from "uuid";
7888
8244
 
8245
+ // ../hyperline-i18n/build/language.js
8246
+ import * as i18next from "i18next";
8247
+ import { z as z5 } from "zod";
8248
+
8249
+ // ../hyperline-i18n/build/config/languages.js
8250
+ var languages = [
8251
+ { id: "fr", name: "French", isoCode: "fr", locale: "fr-FR" },
8252
+ { id: "en", name: "English", isoCode: "en", locale: "en-US" },
8253
+ { id: "de", name: "German", isoCode: "de", locale: "de-DE" },
8254
+ { id: "it", name: "Italian", isoCode: "it", locale: "it-IT" },
8255
+ { id: "nl", name: "Dutch", isoCode: "nl", locale: "nl-NL" },
8256
+ { id: "es", name: "Spanish", isoCode: "es", locale: "es-ES" },
8257
+ { id: "pt", name: "Portuguese", isoCode: "pt", locale: "pt-PT" },
8258
+ { id: "pl", name: "Polish", isoCode: "pl", locale: "pl-PL" }
8259
+ ];
8260
+
8261
+ // ../hyperline-i18n/build/locales/de.js
8262
+ var de = {
8263
+ "accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
8264
+ "accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
8265
+ "accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
8266
+ "accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
8267
+ "accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
8268
+ "creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
8269
+ "credits.bundleOf": "{{productName}} - Paket mit {{creditCount}} Guthaben",
8270
+ "credits.unitsOf": "{{productName}} - {{creditCount}} Guthaben",
8271
+ "einvoicing.paymentFromWallet": "Zahlung aus Guthaben",
8272
+ "einvoicing.paymentProcessed": "Zahlung verarbeitet",
8273
+ "einvoicing.paymentReceived": "Zahlung erhalten",
8274
+ "invoices.outstandingProduct.description": "Unbezahlter Betrag der Rechnung{{invoiceNumber}} vom {{date}}",
8275
+ "invoices.outstandingProduct.descriptionPeriod": "Unbezahlter Betrag der Rechnung{{invoiceNumber}} vom {{periodStart}} bis {{periodEnd}}",
8276
+ "invoices.outstandingProduct.name": "Offener Saldo",
8277
+ "invoices.prorata.paymentForItem": "Anteilig berechneter Betrag f\xFCr",
8278
+ "invoices.prorata.refundForItem": "Anteilig erstatteter Betrag f\xFCr",
8279
+ "subscriptions.closingChargeName": "Abschlussgeb\xFChr f\xFCr das Abonnement",
8280
+ "subscriptions.correction": "Vorperiodische Anpassung",
8281
+ "subscriptions.updates.addCoupon": "Gutschein hinzuf\xFCgen {{couponName}}",
8282
+ "subscriptions.updates.addProduct": "{{productName}} hinzuf\xFCgen",
8283
+ "subscriptions.updates.removeCoupon": "Gutschein entfernen {{couponName}}",
8284
+ "subscriptions.updates.removeProduct": "{{productName}} entfernen",
8285
+ "subscriptions.updates.unit": "Einheiten",
8286
+ "subscriptions.updates.updateCount": "Aktualisieren Sie {{productName}} ({{previousCount}} \u2192 {{newCount}} {{unit}})",
8287
+ "subscriptions.updates.updateCount.description.full.committed.invoiced": "Eine minimale zugesicherte Anzahl von {{committedCount}} wurde f\xFCr den gesamten Zeitraum angewendet.",
8288
+ "subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Betrag von {{amount}} (mit einer minimal zugesicherten Anzahl von {{committedCount}}) f\xFCr den gesamten Zeitraum nicht in Rechnung gestellt",
8289
+ "subscriptions.updates.updateCount.description.full.not_committed.invoiced": "Diese Position wurde f\xFCr den gesamten Zeitraum in Rechnung gestellt",
8290
+ "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Betrag von {{amount}} f\xFCr den gesamten Zeitraum nicht in Rechnung gestellt",
8291
+ "subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Eine minimale zugesicherte Anzahl von {{committedCount}} wurde angewendet.",
8292
+ "subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Betrag von {{amount}} (mit einer minimal zugesicherten Anzahl von {{committedCount}}) f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
8293
+ "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Diese Position wurde f\xFCr den anteiligen Zeitraum in Rechnung gestellt",
8294
+ "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Betrag von {{amount}} f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
8295
+ "subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren"
8296
+ };
8297
+
8298
+ // ../hyperline-i18n/build/locales/en.js
8299
+ var en = {
8300
+ "creditNotes.refundChargeName": "Refund for invoice",
8301
+ "credits.bundleOf": "{{productName}} - Pack of {{creditCount}} credits",
8302
+ "credits.unitsOf": "{{productName}} - {{creditCount}} credits",
8303
+ "invoices.outstandingProduct.description": "Unpaid amount from the invoice{{invoiceNumber}} emitted on {{date}}",
8304
+ "invoices.outstandingProduct.descriptionPeriod": "Unpaid amount from the invoice{{invoiceNumber}} from {{periodStart}} to {{periodEnd}}",
8305
+ "invoices.outstandingProduct.name": "Outstanding balance",
8306
+ "invoices.prorata.paymentForItem": "Prorated payment for",
8307
+ "invoices.prorata.refundForItem": "Prorated refund for",
8308
+ "subscriptions.closingChargeName": "Closing fee for subscription",
8309
+ "subscriptions.correction": "Adjustment previous period",
8310
+ "subscriptions.updates.addCoupon": "Add coupon {{couponName}}",
8311
+ "subscriptions.updates.addProduct": "Add {{productName}}",
8312
+ "subscriptions.updates.removeCoupon": "Remove coupon {{couponName}}",
8313
+ "subscriptions.updates.removeProduct": "Remove {{productName}}",
8314
+ "subscriptions.updates.unit": "units",
8315
+ "subscriptions.updates.updatePrices": "Update prices for {{productName}}",
8316
+ "subscriptions.updates.updateCount": "Update {{productName}} count ({{previousCount}} \u2192 {{newCount}} {{unit}})",
8317
+ "subscriptions.updates.updateCount.description.prorata.committed.invoiced": "A minimum committed count of {{committedCount}} has been applied.",
8318
+ "subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Amount of {{amount}} (with a minimum committed count of {{committedCount}}) not invoiced for the prorated period",
8319
+ "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "This line has been invoiced for the prorated period",
8320
+ "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Amount of {{amount}} not invoiced for the prorated period",
8321
+ "subscriptions.updates.updateCount.description.full.committed.invoiced": "A minimum committed count of {{committedCount}} has been applied for the full period.",
8322
+ "subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Amount of {{amount}} (with a minimum committed count of {{committedCount}}) not invoiced for the full period",
8323
+ "subscriptions.updates.updateCount.description.full.not_committed.invoiced": "This line has been invoiced for the full period",
8324
+ "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Amount of {{amount}} not invoiced for the full period",
8325
+ "accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
8326
+ "accounting.revrec.debitLineDescription": "Decrease deferred revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
8327
+ "accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
8328
+ "accounting.revrec.discountDebitLineDescription": "Decrease deferred discount \u2013 schedule {{scheduleId}}, period {{periodDate}}",
8329
+ "accounting.revrec.discountCreditLineDescription": "Recognize contra-revenue (discount) \u2013 schedule {{scheduleId}}, period {{periodDate}}",
8330
+ "einvoicing.paymentProcessed": "Payment processed",
8331
+ "einvoicing.paymentReceived": "Payment received",
8332
+ "einvoicing.paymentFromWallet": "Payment from wallet"
8333
+ };
8334
+
8335
+ // ../hyperline-i18n/build/locales/es.js
8336
+ var es = {
8337
+ "accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
8338
+ "accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
8339
+ "accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
8340
+ "accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
8341
+ "accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
8342
+ "creditNotes.refundChargeName": "Reembolso por factura",
8343
+ "credits.bundleOf": "{{productName}} - Paquete de {{creditCount}} cr\xE9ditos",
8344
+ "credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
8345
+ "einvoicing.paymentFromWallet": "Pago desde el monedero",
8346
+ "einvoicing.paymentProcessed": "Pago procesado",
8347
+ "einvoicing.paymentReceived": "Pago recibido",
8348
+ "invoices.outstandingProduct.description": "Monto pendiente de la factura{{invoiceNumber}} emitida el {{date}}",
8349
+ "invoices.outstandingProduct.descriptionPeriod": "Monto pendiente de la factura{{invoiceNumber}} del {{periodStart}} al {{periodEnd}}",
8350
+ "invoices.outstandingProduct.name": "Saldo pendiente",
8351
+ "invoices.prorata.paymentForItem": "Pago prorrateado por",
8352
+ "invoices.prorata.refundForItem": "Reembolso prorrateado por",
8353
+ "subscriptions.closingChargeName": "Cargo por cierre de suscripci\xF3n",
8354
+ "subscriptions.correction": "Ajuste del periodo anterior",
8355
+ "subscriptions.updates.addCoupon": "A\xF1adir cup\xF3n {{couponName}}",
8356
+ "subscriptions.updates.addProduct": "A\xF1adir {{productName}}",
8357
+ "subscriptions.updates.removeCoupon": "Eliminar cup\xF3n {{couponName}}",
8358
+ "subscriptions.updates.removeProduct": "Eliminar {{productName}}",
8359
+ "subscriptions.updates.unit": "unidades",
8360
+ "subscriptions.updates.updateCount": "Actualizar {{productName}} ({{previousCount}} \u2192 {{newCount}} {{unit}})",
8361
+ "subscriptions.updates.updateCount.description.full.committed.invoiced": "Se ha aplicado un m\xEDnimo comprometido de {{committedCount}} para el per\xEDodo completo.",
8362
+ "subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Importe de {{amount}} (con un m\xEDnimo comprometido de {{committedCount}}) no facturado para el per\xEDodo completo",
8363
+ "subscriptions.updates.updateCount.description.full.not_committed.invoiced": "Esta l\xEDnea ha sido facturada para el per\xEDodo completo",
8364
+ "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Importe de {{amount}} no facturado para el per\xEDodo completo",
8365
+ "subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Se ha aplicado un m\xEDnimo comprometido de {{committedCount}}.",
8366
+ "subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Importe de {{amount}} (con un m\xEDnimo comprometido de {{committedCount}}) no facturado para el per\xEDodo prorrateado",
8367
+ "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta l\xEDnea ha sido facturada para el per\xEDodo prorrateado",
8368
+ "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importe de {{amount}} no facturado para el per\xEDodo prorrateado",
8369
+ "subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}"
8370
+ };
8371
+
8372
+ // ../hyperline-i18n/build/locales/fr.js
8373
+ var fr = {
8374
+ "accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
8375
+ "accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
8376
+ "accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
8377
+ "accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
8378
+ "accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
8379
+ "creditNotes.refundChargeName": "Remboursement pour facture",
8380
+ "credits.bundleOf": "{{productName}} - Pack de {{creditCount}} cr\xE9dits",
8381
+ "credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9dits",
8382
+ "einvoicing.paymentFromWallet": "Paiement depuis le portefeuille",
8383
+ "einvoicing.paymentProcessed": "Paiement effectu\xE9",
8384
+ "einvoicing.paymentReceived": "Paiement re\xE7u",
8385
+ "invoices.outstandingProduct.description": "Montant impay\xE9 de la facture{{invoiceNumber}} \xE9mise le {{date}}",
8386
+ "invoices.outstandingProduct.descriptionPeriod": "Montant impay\xE9 de la facture{{invoiceNumber}} du {{periodStart}} au {{periodEnd}}",
8387
+ "invoices.outstandingProduct.name": "Solde impay\xE9",
8388
+ "invoices.prorata.paymentForItem": "Paiement au prorata pour",
8389
+ "invoices.prorata.refundForItem": "Remboursement au prorata pour",
8390
+ "subscriptions.closingChargeName": "Frais de cl\xF4ture pour abonnement",
8391
+ "subscriptions.correction": "Ajustement p\xE9riode pr\xE9c\xE9dente",
8392
+ "subscriptions.updates.addCoupon": "Ajout du coupon {{couponName}}",
8393
+ "subscriptions.updates.addProduct": "Ajout {{productName}}",
8394
+ "subscriptions.updates.removeCoupon": "Retrait du coupon {{couponName}}",
8395
+ "subscriptions.updates.removeProduct": "Retrait {{productName}}",
8396
+ "subscriptions.updates.unit": "unit\xE9s",
8397
+ "subscriptions.updates.updateCount": "Mise \xE0 jour {{productName}} ({{previousCount}} \u2192 {{newCount}} {{unit}})",
8398
+ "subscriptions.updates.updateCount.description.full.committed.invoiced": "Un minimum engag\xE9 de {{committedCount}} a \xE9t\xE9 appliqu\xE9 pour la p\xE9riode compl\xE8te.",
8399
+ "subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Montant de {{amount}} (avec un minimum engag\xE9 de {{committedCount}}) non factur\xE9 pour la p\xE9riode compl\xE8te",
8400
+ "subscriptions.updates.updateCount.description.full.not_committed.invoiced": "Cette ligne a \xE9t\xE9 factur\xE9e pour la p\xE9riode compl\xE8te",
8401
+ "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Montant de {{amount}} non factur\xE9 pour la p\xE9riode compl\xE8te",
8402
+ "subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Un minimum engag\xE9 de {{committedCount}} a \xE9t\xE9 appliqu\xE9 pour la p\xE9riode proratis\xE9e.",
8403
+ "subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Montant de {{amount}} (avec un minimum engag\xE9 de {{committedCount}}) non factur\xE9 pour la p\xE9riode proratis\xE9e",
8404
+ "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Cette ligne a \xE9t\xE9 factur\xE9e pour la p\xE9riode proratis\xE9e",
8405
+ "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Montant de {{amount}} non factur\xE9 pour la p\xE9riode proratis\xE9e",
8406
+ "subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}"
8407
+ };
8408
+
8409
+ // ../hyperline-i18n/build/locales/it.js
8410
+ var it = {
8411
+ "accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
8412
+ "accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
8413
+ "accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
8414
+ "accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
8415
+ "accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
8416
+ "creditNotes.refundChargeName": "Rimborso per fattura",
8417
+ "credits.bundleOf": "{{productName}} - Pacchetto di {{creditCount}} crediti",
8418
+ "credits.unitsOf": "{{productName}} - {{creditCount}} crediti",
8419
+ "einvoicing.paymentFromWallet": "Pagamento dal portafoglio",
8420
+ "einvoicing.paymentProcessed": "Pagamento elaborato",
8421
+ "einvoicing.paymentReceived": "Pagamento ricevuto",
8422
+ "invoices.outstandingProduct.description": "Importo insoluto della fattura{{invoiceNumber}} emessa il {{date}}",
8423
+ "invoices.outstandingProduct.descriptionPeriod": "Importo insoluto della fattura{{invoiceNumber}} dal {{periodStart}} al {{periodEnd}}",
8424
+ "invoices.outstandingProduct.name": "Saldo insoluto",
8425
+ "invoices.prorata.paymentForItem": "Pagamento proporzionale per",
8426
+ "invoices.prorata.refundForItem": "Rimborso proporzionale per",
8427
+ "subscriptions.closingChargeName": "Costo di chiusura per abbonamento",
8428
+ "subscriptions.correction": "Correzione periodo precedente",
8429
+ "subscriptions.updates.addCoupon": "Aggiungi coupon {{couponName}}",
8430
+ "subscriptions.updates.addProduct": "Aggiungi {{productName}}",
8431
+ "subscriptions.updates.removeCoupon": "Rimuovi coupon {{couponName}}",
8432
+ "subscriptions.updates.removeProduct": "Rimuovi {{productName}}",
8433
+ "subscriptions.updates.unit": "unit\xE0",
8434
+ "subscriptions.updates.updateCount": "Aggiorna {{productName}} ({{previousCount}} \u2192 {{newCount}} {{unit}})",
8435
+ "subscriptions.updates.updateCount.description.full.committed.invoiced": "\xC8 stato applicato un minimo impegnato di {{committedCount}} per l\u2019intero periodo.",
8436
+ "subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Importo di {{amount}} (con un minimo impegnato di {{committedCount}}) non fatturato per l\u2019intero periodo",
8437
+ "subscriptions.updates.updateCount.description.full.not_committed.invoiced": "Questa voce \xE8 stata fatturata per l\u2019intero periodo",
8438
+ "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Importo di {{amount}} non fatturato per l\u2019intero periodo",
8439
+ "subscriptions.updates.updateCount.description.prorata.committed.invoiced": "\xC8 stato applicato un minimo impegnato di {{committedCount}}.",
8440
+ "subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Importo di {{amount}} (con un minimo impegnato di {{committedCount}}) non fatturato per il periodo proporzionato",
8441
+ "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Questa voce \xE8 stata fatturata per il periodo proporzionato",
8442
+ "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importo di {{amount}} non fatturato per il periodo proporzionato",
8443
+ "subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}"
8444
+ };
8445
+
8446
+ // ../hyperline-i18n/build/locales/nl.js
8447
+ var nl = {
8448
+ "accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
8449
+ "accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
8450
+ "accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
8451
+ "accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
8452
+ "accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
8453
+ "creditNotes.refundChargeName": "Terugbetaling voor factuur",
8454
+ "credits.bundleOf": "{{productName}} - Bundel van {{creditCount}} credits",
8455
+ "credits.unitsOf": "{{productName}} - {{creditCount}} credits",
8456
+ "einvoicing.paymentFromWallet": "Betaling uit tegoed",
8457
+ "einvoicing.paymentProcessed": "Betaling verwerkt",
8458
+ "einvoicing.paymentReceived": "Betaling ontvangen",
8459
+ "invoices.outstandingProduct.description": "Onbetaald bedrag van de factuur{{invoiceNumber}} uitgegeven op {{date}}",
8460
+ "invoices.outstandingProduct.descriptionPeriod": "Onbetaald bedrag van de factuur{{invoiceNumber}} van {{periodStart}} tot {{periodEnd}}",
8461
+ "invoices.outstandingProduct.name": "Openstaand saldo",
8462
+ "invoices.prorata.paymentForItem": "Gedeeltelijke betaling voor",
8463
+ "invoices.prorata.refundForItem": "Gedeeltelijke terugbetaling voor",
8464
+ "subscriptions.closingChargeName": "Afsluitkosten voor abonnement",
8465
+ "subscriptions.correction": "Aanpassing vorige periode",
8466
+ "subscriptions.updates.addCoupon": "Coupon toevoegen {{couponName}}",
8467
+ "subscriptions.updates.addProduct": "{{productName}} toevoegen",
8468
+ "subscriptions.updates.removeCoupon": "Coupon verwijderen {{couponName}}",
8469
+ "subscriptions.updates.removeProduct": "{{productName}} verwijderen",
8470
+ "subscriptions.updates.unit": "eenheden",
8471
+ "subscriptions.updates.updateCount": "Bijwerken {{productName}} aantal ({{previousCount}} \u2192 {{newCount}} {{unit}})",
8472
+ "subscriptions.updates.updateCount.description.full.committed.invoiced": "Een minimaal toegezegd aantal van {{committedCount}} is toegepast voor de volledige periode.",
8473
+ "subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Bedrag van {{amount}} (met een minimaal toegezegd aantal van {{committedCount}}) niet gefactureerd voor de volledige periode",
8474
+ "subscriptions.updates.updateCount.description.full.not_committed.invoiced": "Deze regel is gefactureerd voor de volledige periode",
8475
+ "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Bedrag van {{amount}} niet gefactureerd voor de volledige periode",
8476
+ "subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Een minimaal toegezegd aantal van {{committedCount}} is toegepast.",
8477
+ "subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Bedrag van {{amount}} (met een minimaal toegezegd aantal van {{committedCount}}) niet gefactureerd voor de geproportioneerde periode",
8478
+ "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Deze regel is gefactureerd voor de geproportioneerde periode",
8479
+ "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Bedrag van {{amount}} niet gefactureerd voor de geproportioneerde periode",
8480
+ "subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}"
8481
+ };
8482
+
8483
+ // ../hyperline-i18n/build/locales/pl.js
8484
+ var pl = {
8485
+ "accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
8486
+ "accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
8487
+ "accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
8488
+ "accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
8489
+ "accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
8490
+ "creditNotes.refundChargeName": "Zwrot za faktur\u0119",
8491
+ "credits.bundleOf": "{{productName}} - Pakiet {{creditCount}} kredyt\xF3w",
8492
+ "credits.unitsOf": "{{productName}} - {{creditCount}} kredyt\xF3w",
8493
+ "einvoicing.paymentFromWallet": "P\u0142atno\u015B\u0107 z portfela",
8494
+ "einvoicing.paymentProcessed": "P\u0142atno\u015B\u0107 przetworzona",
8495
+ "einvoicing.paymentReceived": "P\u0142atno\u015B\u0107 otrzymana",
8496
+ "invoices.outstandingProduct.description": "Nieop\u0142acona kwota z faktury{{invoiceNumber}} wystawionej {{date}}",
8497
+ "invoices.outstandingProduct.descriptionPeriod": "Nieop\u0142acona kwota z faktury{{invoiceNumber}} od {{periodStart}} do {{periodEnd}}",
8498
+ "invoices.outstandingProduct.name": "Niezap\u0142acone saldo",
8499
+ "invoices.prorata.paymentForItem": "P\u0142atno\u015B\u0107 proporcjonalna za",
8500
+ "invoices.prorata.refundForItem": "Zwrot proporcjonalny za",
8501
+ "subscriptions.closingChargeName": "Op\u0142ata za zamkni\u0119cie subskrypcji",
8502
+ "subscriptions.correction": "Korekta poprzedniego okresu",
8503
+ "subscriptions.updates.addCoupon": "Dodaj kupon {{couponName}}",
8504
+ "subscriptions.updates.addProduct": "Dodaj {{productName}}",
8505
+ "subscriptions.updates.removeCoupon": "Usu\u0144 kupon {{couponName}}",
8506
+ "subscriptions.updates.removeProduct": "Usu\u0144 {{productName}}",
8507
+ "subscriptions.updates.unit": "jednostki",
8508
+ "subscriptions.updates.updateCount": "Aktualizuj {{productName}} liczba ({{previousCount}} \u2192 {{newCount}} {{unit}})",
8509
+ "subscriptions.updates.updateCount.description.full.committed.invoiced": "Zastosowano minimaln\u0105 zobowi\u0105zan\u0105 ilo\u015B\u0107 {{committedCount}} za pe\u0142ny okres.",
8510
+ "subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Kwota {{amount}} (z minimaln\u0105 zobowi\u0105zan\u0105 ilo\u015Bci\u0105 {{committedCount}}) niefakturowana za pe\u0142ny okres",
8511
+ "subscriptions.updates.updateCount.description.full.not_committed.invoiced": "Ta pozycja zosta\u0142a zafakturowana za pe\u0142ny okres",
8512
+ "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Kwota {{amount}} niefakturowana za pe\u0142ny okres",
8513
+ "subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Zastosowano minimaln\u0105 zobowi\u0105zan\u0105 ilo\u015B\u0107 {{committedCount}}.",
8514
+ "subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Kwota {{amount}} (z minimaln\u0105 zobowi\u0105zan\u0105 ilo\u015Bci\u0105 {{committedCount}}) niefakturowana za okres proporcjonalny",
8515
+ "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Ta pozycja zosta\u0142a zafakturowana za okres proporcjonalny",
8516
+ "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Kwota {{amount}} niefakturowana za okres proporcjonalny",
8517
+ "subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}"
8518
+ };
8519
+
8520
+ // ../hyperline-i18n/build/locales/pt.js
8521
+ var pt = {
8522
+ "accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
8523
+ "accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
8524
+ "accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
8525
+ "accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
8526
+ "accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
8527
+ "creditNotes.refundChargeName": "Reembolso pela fatura",
8528
+ "credits.bundleOf": "{{productName}} - Pacote de {{creditCount}} cr\xE9ditos",
8529
+ "credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
8530
+ "einvoicing.paymentFromWallet": "Pagamento da carteira",
8531
+ "einvoicing.paymentProcessed": "Pagamento processado",
8532
+ "einvoicing.paymentReceived": "Pagamento recebido",
8533
+ "invoices.outstandingProduct.description": "Valor em aberto da fatura{{invoiceNumber}} emitida em {{date}}",
8534
+ "invoices.outstandingProduct.descriptionPeriod": "Valor em aberto da fatura{{invoiceNumber}} de {{periodStart}} a {{periodEnd}}",
8535
+ "invoices.outstandingProduct.name": "Saldo em aberto",
8536
+ "invoices.prorata.paymentForItem": "Pagamento proporcional por",
8537
+ "invoices.prorata.refundForItem": "Reembolso proporcional por",
8538
+ "subscriptions.closingChargeName": "Taxa de encerramento da assinatura",
8539
+ "subscriptions.correction": "Ajuste do per\xEDodo anterior",
8540
+ "subscriptions.updates.addCoupon": "Adicionar cupom {{couponName}}",
8541
+ "subscriptions.updates.addProduct": "Adicionar {{productName}}",
8542
+ "subscriptions.updates.removeCoupon": "Remover cupom {{couponName}}",
8543
+ "subscriptions.updates.removeProduct": "Remover {{productName}}",
8544
+ "subscriptions.updates.unit": "unidades",
8545
+ "subscriptions.updates.updateCount": "Atualizar {{productName}} quantidade ({{previousCount}} \u2192 {{newCount}} {{unit}})",
8546
+ "subscriptions.updates.updateCount.description.full.committed.invoiced": "Foi aplicado um m\xEDnimo comprometido de {{committedCount}} para o per\xEDodo completo.",
8547
+ "subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Valor de {{amount}} (com um m\xEDnimo comprometido de {{committedCount}}) n\xE3o faturado para o per\xEDodo completo",
8548
+ "subscriptions.updates.updateCount.description.full.not_committed.invoiced": "Esta linha foi faturada para o per\xEDodo completo",
8549
+ "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Valor de {{amount}} n\xE3o faturado para o per\xEDodo completo",
8550
+ "subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Foi aplicado um m\xEDnimo comprometido de {{committedCount}}.",
8551
+ "subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Valor de {{amount}} (com um m\xEDnimo comprometido de {{committedCount}}) n\xE3o faturado para o per\xEDodo proporcional",
8552
+ "subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta linha foi faturada para o per\xEDodo proporcional",
8553
+ "subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Valor de {{amount}} n\xE3o faturado para o per\xEDodo proporcional",
8554
+ "subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}"
8555
+ };
8556
+
8557
+ // ../hyperline-i18n/build/language.js
8558
+ var LanguageSchema = z5.enum(languages.map((language) => language.isoCode));
8559
+ var translations = {
8560
+ en,
8561
+ fr,
8562
+ de,
8563
+ it,
8564
+ nl,
8565
+ es,
8566
+ pt,
8567
+ pl
8568
+ };
8569
+ i18next.init({
8570
+ fallbackLng: "en",
8571
+ keySeparator: false,
8572
+ resources: Object.fromEntries(Object.entries(translations).map(([isoCode, translation]) => [
8573
+ isoCode,
8574
+ { translation }
8575
+ // "translation" is used as namespace name
8576
+ ]))
8577
+ });
8578
+
8579
+ // ../hyperline-i18n/build/locale.js
8580
+ import { z as z6 } from "zod";
8581
+ var LocaleSchema = z6.string().refine((value) => {
8582
+ const [language, country] = value.split("-");
8583
+ return LanguageSchema.safeParse(language).success && z6.string().length(2).refine((value2) => value2 === value2.toUpperCase()).safeParse(country).success;
8584
+ }, { message: "Invalid locale format" });
8585
+
8586
+ // ../hyperline-i18n/build/timezone.js
8587
+ import { getTimezones } from "@hyperline/shared";
8588
+ import { z as z7 } from "zod";
8589
+ var TimezoneSchema = z7.enum(getTimezones().map((timezone) => timezone.name));
8590
+
7889
8591
  // ../hyperline-lib/build/http/helpers/request.js
7890
- import { isValidLanguage } from "@hyperline/i18n";
7891
- import { z as z4 } from "zod";
8592
+ import { z as z8 } from "zod";
7892
8593
 
7893
8594
  // ../hyperline-lib/build/http/middlewares/distributedRateLimiter.js
7894
- import { logger as logger2 } from "@hyperline/monitoring";
7895
8595
  import { RateLimiterRedis, RateLimiterRes } from "rate-limiter-flexible";
7896
8596
 
7897
8597
  // ../hyperline-lib/build/http/middlewares/httpErrorHandler.js
@@ -7901,7 +8601,6 @@ import { ZodError as ZodError3 } from "zod";
7901
8601
  // ../hyperline-lib/build/http/middlewares/idempotency.js
7902
8602
  import { createHash as createHash2 } from "node:crypto";
7903
8603
  import { isDeepStrictEqual } from "node:util";
7904
- import { logger as logger3 } from "@hyperline/monitoring";
7905
8604
  import { idempotency } from "express-idempotency";
7906
8605
 
7907
8606
  // ../hyperline-lib/build/http/middlewares/httpErrorHandler.js
@@ -7910,15 +8609,11 @@ var isProduction = ["production", "sandbox"].includes(
7910
8609
  process.env.NODE_ENV ?? "production"
7911
8610
  );
7912
8611
 
7913
- // ../hyperline-lib/build/http/helpers/clientIp.js
7914
- import { logger as logger4 } from "@hyperline/monitoring";
7915
-
7916
8612
  // ../hyperline-lib/build/httpClient/error.js
7917
8613
  import axios from "axios";
7918
8614
  var isAxiosError = axios.isAxiosError;
7919
8615
 
7920
8616
  // ../hyperline-lib/build/httpClient/httpClient.js
7921
- import { logHttpRequest, logHttpResponse } from "@hyperline/monitoring";
7922
8617
  import axios2 from "axios";
7923
8618
  import axiosRetry, { isNetworkOrIdempotentRequestError } from "axios-retry";
7924
8619
  import { AxiosError } from "axios";
@@ -7930,13 +8625,13 @@ var recommendedRetryConfig = {
7930
8625
  retryDelay: axiosRetry.exponentialDelay
7931
8626
  };
7932
8627
  function buildHttpClient(dependencies) {
7933
- const { logger: logger6, config, retry } = dependencies;
7934
- const client = axios2.create(config);
8628
+ const { logger: logger2, config: config2, retry } = dependencies;
8629
+ const client = axios2.create(config2);
7935
8630
  if (retry !== "none") {
7936
8631
  axiosRetry(client, {
7937
8632
  ...dependencies.retry === "custom" ? dependencies.retryConfig : dependencies.retry === "recommended" ? recommendedRetryConfig : {},
7938
8633
  onRetry(retryCount, error, requestConfig) {
7939
- logHttpRequest(logger6, toLogRequest(requestConfig), {
8634
+ logHttpRequest(logger2, toLogRequest(requestConfig), {
7940
8635
  postfix: `[EXTERNAL] (attempt ${retryCount})`,
7941
8636
  metadata: {
7942
8637
  // biome-ignore lint/correctness/useParseIntRadix: ignore
@@ -7948,7 +8643,7 @@ function buildHttpClient(dependencies) {
7948
8643
  });
7949
8644
  }
7950
8645
  client.interceptors.request.use((requestConfig) => {
7951
- logHttpRequest(logger6, toLogRequest(requestConfig), {
8646
+ logHttpRequest(logger2, toLogRequest(requestConfig), {
7952
8647
  postfix: "[EXTERNAL]"
7953
8648
  });
7954
8649
  requestConfig.metadata = { timeStart: /* @__PURE__ */ new Date() };
@@ -7960,14 +8655,14 @@ function buildHttpClient(dependencies) {
7960
8655
  const { config: responseConfig, status } = response;
7961
8656
  const timeStart = responseConfig.metadata.timeStart;
7962
8657
  const responseTime = timeStart ? Date.now() - timeStart : void 0;
7963
- logHttpResponse(logger6, { request: toLogRequest(responseConfig), statusCode: status }, responseTime);
8658
+ logHttpResponse(logger2, { request: toLogRequest(responseConfig), statusCode: status }, responseTime);
7964
8659
  return response;
7965
8660
  }, (error) => {
7966
8661
  if (error.response) {
7967
8662
  const { config: responseConfig, status } = error.response;
7968
8663
  const timeStart = responseConfig.metadata.timeStart;
7969
8664
  const responseTime = timeStart ? Date.now() - timeStart : void 0;
7970
- logHttpResponse(logger6, { request: toLogRequest(responseConfig), statusCode: status }, responseTime, { metadata: { error: error.message } });
8665
+ logHttpResponse(logger2, { request: toLogRequest(responseConfig), statusCode: status }, responseTime, { metadata: { error: error.message } });
7971
8666
  }
7972
8667
  return Promise.reject(error);
7973
8668
  });
@@ -7976,20 +8671,19 @@ function buildHttpClient(dependencies) {
7976
8671
  function isTooManyRequestsError(error) {
7977
8672
  return error.response?.status === 429;
7978
8673
  }
7979
- var toLogRequest = (config) => {
8674
+ var toLogRequest = (config2) => {
7980
8675
  return {
7981
- method: config.method ?? "",
7982
- url: config.url ?? "",
7983
- path: config.url ?? "",
7984
- hostname: config.baseURL ?? "",
7985
- originalUrl: `${config.baseURL}${config.url}`,
7986
- body: config.data,
8676
+ method: config2.method ?? "",
8677
+ url: config2.url ?? "",
8678
+ path: config2.url ?? "",
8679
+ hostname: config2.baseURL ?? "",
8680
+ originalUrl: `${config2.baseURL}${config2.url}`,
8681
+ body: config2.data,
7987
8682
  headers: {}
7988
8683
  };
7989
8684
  };
7990
8685
 
7991
8686
  // ../hyperline-lib/build/httpRouter/express.js
7992
- import { runWithExecutionContext } from "@hyperline/monitoring";
7993
8687
  import { OpenAPIRegistry as OpenAPIRegistry2, OpenApiGeneratorV31 } from "@asteasolutions/zod-to-openapi";
7994
8688
  import { Router as ExpressRouter } from "express";
7995
8689
  import multer2 from "multer";
@@ -8066,12 +8760,11 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8066
8760
  import { createHmac } from "node:crypto";
8067
8761
 
8068
8762
  // ../hyperline-mcp/build/session/sessionManager.js
8069
- import { logger as logger5 } from "@hyperline/monitoring";
8070
8763
  import { LRUCache } from "lru-cache";
8071
8764
 
8072
8765
  // build/output.js
8073
- function formatOutput({ data, format: format2 }) {
8074
- if (format2 === "json") {
8766
+ function formatOutput({ data, format: format3 }) {
8767
+ if (format3 === "json") {
8075
8768
  return JSON.stringify(data, null, 2);
8076
8769
  }
8077
8770
  return formatText(data);
@@ -0,0 +1,24 @@
1
+ {
2
+ "@asteasolutions/zod-to-openapi": "8.1.0",
3
+ "@hyperline/shared": "0.0.150",
4
+ "@modelcontextprotocol/sdk": "1.25.2",
5
+ "axios": "1.13.2",
6
+ "axios-retry": "4.5.0",
7
+ "commander": "13.1.0",
8
+ "date-fns": "3.6.0",
9
+ "decimal.js": "^10.6.0",
10
+ "dotenv": "16.3.1",
11
+ "express": "5.2.1",
12
+ "express-idempotency": "2.0.0",
13
+ "fast-equals": "5.2.2",
14
+ "helmet": "6.2.0",
15
+ "i18next": "22.5.1",
16
+ "json-prune": "1.1.0",
17
+ "lru-cache": "11.0.2",
18
+ "multer": "1.4.5-lts.1",
19
+ "rate-limiter-flexible": "2.4.2",
20
+ "stacktrace-parser": "0.1.10",
21
+ "uuid": "9.0.1",
22
+ "winston": "3.10.0",
23
+ "zod": "4.1.12"
24
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.1064600",
3
+ "version": "0.1.0-build.1.9301c8c",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -22,10 +22,28 @@
22
22
  "typecheck": "tsc -b --emitDeclarationOnly"
23
23
  },
24
24
  "dependencies": {
25
+ "@asteasolutions/zod-to-openapi": "8.1.0",
26
+ "@hyperline/shared": "0.0.150",
27
+ "@modelcontextprotocol/sdk": "1.25.2",
25
28
  "axios": "1.13.2",
26
29
  "axios-retry": "4.5.0",
27
30
  "commander": "13.1.0",
28
- "dotenv": "16.3.1"
31
+ "date-fns": "3.6.0",
32
+ "decimal.js": "^10.6.0",
33
+ "dotenv": "16.3.1",
34
+ "express": "5.2.1",
35
+ "express-idempotency": "2.0.0",
36
+ "fast-equals": "5.2.2",
37
+ "helmet": "6.2.0",
38
+ "i18next": "22.5.1",
39
+ "json-prune": "1.1.0",
40
+ "lru-cache": "11.0.2",
41
+ "multer": "1.4.5-lts.1",
42
+ "rate-limiter-flexible": "2.4.2",
43
+ "stacktrace-parser": "0.1.10",
44
+ "uuid": "9.0.1",
45
+ "winston": "3.10.0",
46
+ "zod": "4.1.12"
29
47
  },
30
48
  "devDependencies": {
31
49
  "@biomejs/biome": "2.3.8",