@hyperline/cli 0.1.0-build.1.a36d45f → 0.1.0-build.1.a6bbe5d
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.
- package/dist/bin/hyperline-main.js +739 -573
- package/dist/external-deps.json +2 -0
- package/package.json +4 -2
|
@@ -34894,10 +34894,10 @@ var require_shared = __commonJS({
|
|
|
34894
34894
|
ZodId: () => ZodId,
|
|
34895
34895
|
ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
|
|
34896
34896
|
});
|
|
34897
|
-
var
|
|
34897
|
+
var import_zod20 = require_lib();
|
|
34898
34898
|
var countryIds2 = ["all", ...countries.map(({ id }) => id)];
|
|
34899
|
-
var ZodId =
|
|
34900
|
-
var ZodTranslationsSchemaFn = (schema) =>
|
|
34899
|
+
var ZodId = import_zod20.z.enum(countryIds2);
|
|
34900
|
+
var ZodTranslationsSchemaFn = (schema) => import_zod20.z.record(import_zod20.z.string(), schema.optional());
|
|
34901
34901
|
var UsStates = [
|
|
34902
34902
|
{ id: "AA", name: "Armed Forces Americas" },
|
|
34903
34903
|
{ id: "AE", name: "Armed Forces Europe" },
|
|
@@ -37934,7 +37934,7 @@ Examples:
|
|
|
37934
37934
|
queryParamKeys: ["take", "skip"]
|
|
37935
37935
|
});
|
|
37936
37936
|
});
|
|
37937
|
-
resource.command("get").description(`Retrieve a specific bank account by its ID. Returns bank account details
|
|
37937
|
+
resource.command("get").description(`Retrieve a specific bank account by its ID. Returns masked bank account details, account type, balance, and currency.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
37938
37938
|
Examples:
|
|
37939
37939
|
hyperline bank-accounts get --id <id>`).action(async (opts) => {
|
|
37940
37940
|
const ctx = resource.parent?.opts()._ctx;
|
|
@@ -37952,6 +37952,31 @@ Examples:
|
|
|
37952
37952
|
queryParamKeys: []
|
|
37953
37953
|
});
|
|
37954
37954
|
});
|
|
37955
|
+
resource.command("list-bank-account-transactions").description(`List open banking transactions for a specific bank account. Paginated with limit/cursor.`).requiredOption("--id <value>", `id parameter`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).addHelpText("after", `
|
|
37956
|
+
Examples:
|
|
37957
|
+
hyperline bank-accounts list-bank-account-transactions --id <id>
|
|
37958
|
+
hyperline bank-accounts list-bank-account-transactions --id <id> --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
37959
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
37960
|
+
if (!ctx) {
|
|
37961
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
37962
|
+
process.exit(1);
|
|
37963
|
+
}
|
|
37964
|
+
const args = {};
|
|
37965
|
+
if (opts.id !== void 0)
|
|
37966
|
+
args.id = opts.id;
|
|
37967
|
+
if (opts.cursor !== void 0)
|
|
37968
|
+
args.cursor = opts.cursor;
|
|
37969
|
+
if (opts.includeTotal !== void 0)
|
|
37970
|
+
args.include_total = opts.includeTotal;
|
|
37971
|
+
if (opts.limit !== void 0)
|
|
37972
|
+
args.limit = Number(opts.limit);
|
|
37973
|
+
await ctx.execute({
|
|
37974
|
+
method: "GET",
|
|
37975
|
+
path: "/v1/bank-accounts/{id}/transactions",
|
|
37976
|
+
args,
|
|
37977
|
+
queryParamKeys: ["limit", "cursor", "include_total"]
|
|
37978
|
+
});
|
|
37979
|
+
});
|
|
37955
37980
|
}
|
|
37956
37981
|
|
|
37957
37982
|
// build/commands/generated/companies.js
|
|
@@ -38344,10 +38369,10 @@ Examples:
|
|
|
38344
38369
|
queryParamKeys: []
|
|
38345
38370
|
});
|
|
38346
38371
|
});
|
|
38347
|
-
resource.command("create-custom-property").description(`Create a new custom property definition with a name, type (string, number, boolean, date, select), and optional default value.`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <value>", `entities`).option("--api-only", `api_only`).option("--authorized-values <value>", `authorized_values`).addHelpText("after", `
|
|
38372
|
+
resource.command("create-custom-property").description(`Create a new custom property definition with a name, type (string, number, boolean, date, select), and optional default value.`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <value>", `entities`).option("--api-only", `api_only`).option("--required", `required`).option("--authorized-values <value>", `authorized_values`).addHelpText("after", `
|
|
38348
38373
|
Examples:
|
|
38349
38374
|
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities>
|
|
38350
|
-
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities> --api-only --
|
|
38375
|
+
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities> --api-only --required
|
|
38351
38376
|
hyperline custom-properties create-custom-property --name <name> --type <type> --slug <slug> --entities <entities> --output json`).action(async (opts) => {
|
|
38352
38377
|
const ctx = resource.parent?.opts()._ctx;
|
|
38353
38378
|
if (!ctx) {
|
|
@@ -38367,6 +38392,8 @@ Examples:
|
|
|
38367
38392
|
args.authorized_values = opts.authorizedValues;
|
|
38368
38393
|
if (opts.apiOnly !== void 0)
|
|
38369
38394
|
args.api_only = true;
|
|
38395
|
+
if (opts.required !== void 0)
|
|
38396
|
+
args.required = true;
|
|
38370
38397
|
await ctx.execute({
|
|
38371
38398
|
method: "POST",
|
|
38372
38399
|
path: "/v1/custom-properties",
|
|
@@ -38374,10 +38401,10 @@ Examples:
|
|
|
38374
38401
|
queryParamKeys: []
|
|
38375
38402
|
});
|
|
38376
38403
|
});
|
|
38377
|
-
resource.command("update-custom-property").description(`Update an existing custom property definition by ID.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <value>", `entities`).option("--api-only", `api_only`).option("--authorized-values <value>", `authorized_values`).addHelpText("after", `
|
|
38404
|
+
resource.command("update-custom-property").description(`Update an existing custom property definition by ID.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `name`).requiredOption("--type <value>", `type`).requiredOption("--slug <value>", `slug`).requiredOption("--entities <value>", `entities`).option("--api-only", `api_only`).option("--required", `required`).option("--authorized-values <value>", `authorized_values`).addHelpText("after", `
|
|
38378
38405
|
Examples:
|
|
38379
38406
|
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities>
|
|
38380
|
-
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities> --api-only --
|
|
38407
|
+
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities> --api-only --required
|
|
38381
38408
|
hyperline custom-properties update-custom-property --id <id> --name <name> --type <type> --slug <slug> --entities <entities> --output json`).action(async (opts) => {
|
|
38382
38409
|
const ctx = resource.parent?.opts()._ctx;
|
|
38383
38410
|
if (!ctx) {
|
|
@@ -38399,6 +38426,8 @@ Examples:
|
|
|
38399
38426
|
args.authorized_values = opts.authorizedValues;
|
|
38400
38427
|
if (opts.apiOnly !== void 0)
|
|
38401
38428
|
args.api_only = true;
|
|
38429
|
+
if (opts.required !== void 0)
|
|
38430
|
+
args.required = true;
|
|
38402
38431
|
await ctx.execute({
|
|
38403
38432
|
method: "PUT",
|
|
38404
38433
|
path: "/v1/custom-properties/{id}",
|
|
@@ -38756,7 +38785,7 @@ Customer type.
|
|
|
38756
38785
|
|
|
38757
38786
|
- \`taxable\`: Taxes are automatically determined for the customer.
|
|
38758
38787
|
- \`exempt\`: The customer is exempt from tax.
|
|
38759
|
-
`).option("--registration-number <value>", `Customer registration number.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
|
|
38788
|
+
`).option("--registration-number <value>", `Customer registration number.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--domain <value>", `Customer domain. If not defined, it is inferred from the billing email.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
|
|
38760
38789
|
How customer invoices are issued from the parent organisation.
|
|
38761
38790
|
|
|
38762
38791
|
- \`none\`: Invoices will keep being issued from this customer.
|
|
@@ -38787,6 +38816,8 @@ Examples:
|
|
|
38787
38816
|
args.registration_number = opts.registrationNumber;
|
|
38788
38817
|
if (opts.externalId !== void 0)
|
|
38789
38818
|
args.external_id = opts.externalId;
|
|
38819
|
+
if (opts.domain !== void 0)
|
|
38820
|
+
args.domain = opts.domain;
|
|
38790
38821
|
if (opts.invoicingEntityId !== void 0)
|
|
38791
38822
|
args.invoicing_entity_id = opts.invoicingEntityId;
|
|
38792
38823
|
if (opts.billingAddress !== void 0)
|
|
@@ -38885,7 +38916,7 @@ Customer type.
|
|
|
38885
38916
|
|
|
38886
38917
|
- \`taxable\`: Taxes are automatically determined for the customer.
|
|
38887
38918
|
- \`exempt\`: The customer is exempt from tax.
|
|
38888
|
-
`).option("--registration-number <value>", `Customer registration number.`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--payment-method-id <value>", `ID of the default payment method of the customer. Only applies to card and direct debit.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
|
|
38919
|
+
`).option("--registration-number <value>", `Customer registration number.`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--domain <value>", `Customer domain. If not defined, it is inferred from the billing email.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--payment-method-id <value>", `ID of the default payment method of the customer. Only applies to card and direct debit.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
|
|
38889
38920
|
How customer invoices are issued from the parent organisation.
|
|
38890
38921
|
|
|
38891
38922
|
- \`none\`: Invoices will keep being issued from this customer.
|
|
@@ -38918,6 +38949,8 @@ Examples:
|
|
|
38918
38949
|
args.registration_number = opts.registrationNumber;
|
|
38919
38950
|
if (opts.externalId !== void 0)
|
|
38920
38951
|
args.external_id = opts.externalId;
|
|
38952
|
+
if (opts.domain !== void 0)
|
|
38953
|
+
args.domain = opts.domain;
|
|
38921
38954
|
if (opts.invoicingEntityId !== void 0)
|
|
38922
38955
|
args.invoicing_entity_id = opts.invoicingEntityId;
|
|
38923
38956
|
if (opts.billingAddress !== void 0)
|
|
@@ -39087,6 +39120,38 @@ Examples:
|
|
|
39087
39120
|
queryParamKeys: []
|
|
39088
39121
|
});
|
|
39089
39122
|
});
|
|
39123
|
+
resource.command("get-customer-arr-history").description(`List every subscription-level ARR evolution for a customer, including previous and current fixed, variable, and total annual values in each subscription currency. Results are latest-first and paginated with limit/cursor.`).requiredOption("--id <value>", `id parameter`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--occurred-at.gte <value>", `Return evolutions that occurred at or after this UTC date and time.`).option("--occurred-at.lte <value>", `Return evolutions that occurred at or before this UTC date and time.`).addHelpText("after", `
|
|
39124
|
+
Examples:
|
|
39125
|
+
hyperline customers get-customer-arr-history --id <id>
|
|
39126
|
+
hyperline customers get-customer-arr-history --id <id> --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
39127
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39128
|
+
if (!ctx) {
|
|
39129
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39130
|
+
process.exit(1);
|
|
39131
|
+
}
|
|
39132
|
+
const args = {};
|
|
39133
|
+
if (opts.id !== void 0)
|
|
39134
|
+
args.id = opts.id;
|
|
39135
|
+
if (opts.cursor !== void 0)
|
|
39136
|
+
args.cursor = opts.cursor;
|
|
39137
|
+
if (opts["occurredAt.gte"] !== void 0)
|
|
39138
|
+
args.occurred_at__gte = opts["occurredAt.gte"];
|
|
39139
|
+
if (opts["occurredAt.lte"] !== void 0)
|
|
39140
|
+
args.occurred_at__lte = opts["occurredAt.lte"];
|
|
39141
|
+
if (opts.limit !== void 0)
|
|
39142
|
+
args.limit = Number(opts.limit);
|
|
39143
|
+
await ctx.execute({
|
|
39144
|
+
method: "GET",
|
|
39145
|
+
path: "/v1/customers/{id}/arr-history",
|
|
39146
|
+
args,
|
|
39147
|
+
queryParamKeys: [
|
|
39148
|
+
"limit",
|
|
39149
|
+
"cursor",
|
|
39150
|
+
"occurred_at__gte",
|
|
39151
|
+
"occurred_at__lte"
|
|
39152
|
+
]
|
|
39153
|
+
});
|
|
39154
|
+
});
|
|
39090
39155
|
resource.command("get-customer-valuation").description(`Compute aggregated valuation metrics for a customer across all active subscriptions, grouped by currency. Returns contract value, recurring contract value, and ARR for each subscription and aggregated totals. Optionally pass granularity (year/quarter/month) for period breakdown.`).requiredOption("--id <value>", `id parameter`).option("--granularity <value>", `Period granularity for the breakdown. When provided, contract value and recurring contract value include a \`by_period\` array.`).addHelpText("after", `
|
|
39091
39156
|
Examples:
|
|
39092
39157
|
hyperline customers get-customer-valuation --id <id>
|
|
@@ -39620,6 +39685,7 @@ Export name.
|
|
|
39620
39685
|
- \`draft_invoices\`: Export all draft invoices, with customer and product information.
|
|
39621
39686
|
- \`open_invoices\`: Export all open invoices, with customer and product information.
|
|
39622
39687
|
- \`live_subscriptions\`: List of all active subscriptions line by line.
|
|
39688
|
+
- \`credit_balances\`: Monthly credit balance roll-forward per customer and credit type (opening, top-ups, consumption, expiry, closing).
|
|
39623
39689
|
`).requiredOption("--file-type <value>", `
|
|
39624
39690
|
Export file type.
|
|
39625
39691
|
|
|
@@ -40197,7 +40263,7 @@ Examples:
|
|
|
40197
40263
|
- \`archived\`: A previous version of an invoice.
|
|
40198
40264
|
- \`charged_on_parent\`: Invoice is charged on the parent customer.
|
|
40199
40265
|
- \`pending_parent_concat\`: Invoice is pending invoices concatenation on the parent customer to be grouped.
|
|
40200
|
-
- \`uncollectible\`: Invoice is uncollectible (bad debt).
|
|
40266
|
+
- \`uncollectible\`: Invoice is uncollectible (bad debt). Only metadata (properties, custom_note, custom_properties) can be updated in this status.
|
|
40201
40267
|
`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the invoice.`).option("--number <value>", `Invoice number. If specified, the invoice will be considered as imported from an external source and the number will not be generated by Hyperline. You are responsible for avoiding duplicates and ensuring it does not impact the numbering sequence in Hyperline.`).option("--type <value>", `Type of the invoice.
|
|
40202
40268
|
|
|
40203
40269
|
- \`invoice\`: Legal invoice to be paid by your customer.
|
|
@@ -40439,7 +40505,7 @@ Examples:
|
|
|
40439
40505
|
queryParamKeys: []
|
|
40440
40506
|
});
|
|
40441
40507
|
});
|
|
40442
|
-
resource.command("update").description(`Update
|
|
40508
|
+
resource.command("update").description(`Update an invoice. Draft/grace_period allow modifying line items, dates, and metadata before finalization. Finalized invoices are restricted to metadata (paid: custom_note/purchase_order; uncollectible: properties/custom_note/custom_properties).`).requiredOption("--id <value>", `id parameter`).option("--type <value>", `Type of the invoice.
|
|
40443
40509
|
|
|
40444
40510
|
- \`invoice\`: Legal invoice to be paid by your customer.
|
|
40445
40511
|
- \`credit_note\`: Legal credit note cancelling an invoice and refunding your customer.
|
|
@@ -41252,7 +41318,12 @@ Examples:
|
|
|
41252
41318
|
]
|
|
41253
41319
|
});
|
|
41254
41320
|
});
|
|
41255
|
-
resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <value>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <value>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <value>", `Price configurations for the product.`).option("--aggregator <value>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <value>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--
|
|
41321
|
+
resource.command("create").description(`Create a new product with name, type (flat_fee, per_unit, usage, seat, etc.), and pricing configuration.`).requiredOption("--name <value>", `Product name.`).option("--description <value>", `Product description.`).option("--description-display-interval-dates", `Indicates if the dates of the interval should be automatically added in the product description on the invoices.`).option("--public-description <value>", `Public description of the product.`).option("--translations <value>", `Product name and description translations.`).option("--is-available-on-demand", `is_available_on_demand`).option("--is-available-on-subscription", `is_available_on_subscription`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--accounting <value>", `Mapping invoicing entity ID/accounting settings.`).requiredOption("--type <value>", `Product type for fixed fee products.`).requiredOption("--price-configurations <value>", `Price configurations for the product.`).option("--aggregator <value>", `Aggregator configuration to automatically count seats from billable events. Only count aggregators are supported for seat products.`).option("--aggregator-id <value>", `ID of an existing aggregator to link to this product.`).option("--unit-name <value>", `Name of the unit (e.g., 'user', 'seat').`).option("--is-connected-seat-item", `When true, the seat count is automatically synced from an external source (e.g., CRM users).`).option("--credit-aggregators <value>", `Multiple aggregators with weights for multi-aggregator credit consumption. Cannot be used together with aggregator or aggregator_id.`).option("--low-credits-threshold <number>", `Threshold indicating a low level of credits.`).option("--credits-grant-mode <value>", `
|
|
41322
|
+
How the periodic credit allowance is granted for partial billing periods.
|
|
41323
|
+
|
|
41324
|
+
- \`prorated\` (default): the granted credits are prorated to the elapsed period.
|
|
41325
|
+
- \`full_allowance\`: the full allowance is always granted (the invoice remains prorated).
|
|
41326
|
+
`).option("--display-mode <value>", `How bundle items are displayed on invoices.`).option("--exclusive-items-enabled", `When true, only one item in the bundle can be active at a time.`).option("--bundle-items <value>", `Products included in this bundle. Percentages must sum to 100.`).addHelpText("after", `
|
|
41256
41327
|
Examples:
|
|
41257
41328
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
|
|
41258
41329
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
|
|
@@ -41287,6 +41358,8 @@ Examples:
|
|
|
41287
41358
|
args.unit_name = opts.unitName;
|
|
41288
41359
|
if (opts.creditAggregators !== void 0)
|
|
41289
41360
|
args.credit_aggregators = opts.creditAggregators;
|
|
41361
|
+
if (opts.creditsGrantMode !== void 0)
|
|
41362
|
+
args.credits_grant_mode = opts.creditsGrantMode;
|
|
41290
41363
|
if (opts.displayMode !== void 0)
|
|
41291
41364
|
args.display_mode = opts.displayMode;
|
|
41292
41365
|
if (opts.bundleItems !== void 0)
|
|
@@ -41388,6 +41461,32 @@ Examples:
|
|
|
41388
41461
|
queryParamKeys: []
|
|
41389
41462
|
});
|
|
41390
41463
|
});
|
|
41464
|
+
resource.command("delete").description(`Permanently delete an archived product by ID. Products attached to subscriptions, plans, or templates cannot be deleted.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
41465
|
+
Examples:
|
|
41466
|
+
hyperline products delete --id <id>
|
|
41467
|
+
hyperline products delete --id <id> --output json`).action(async (opts) => {
|
|
41468
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
41469
|
+
if (!ctx) {
|
|
41470
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
41471
|
+
process.exit(1);
|
|
41472
|
+
}
|
|
41473
|
+
const args = {};
|
|
41474
|
+
if (opts.id !== void 0)
|
|
41475
|
+
args.id = opts.id;
|
|
41476
|
+
if (!opts.yes) {
|
|
41477
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
41478
|
+
if (!confirmed) {
|
|
41479
|
+
process.stdout.write("Aborted.\n");
|
|
41480
|
+
return;
|
|
41481
|
+
}
|
|
41482
|
+
}
|
|
41483
|
+
await ctx.execute({
|
|
41484
|
+
method: "DELETE",
|
|
41485
|
+
path: "/v1/products/{id}",
|
|
41486
|
+
args,
|
|
41487
|
+
queryParamKeys: []
|
|
41488
|
+
});
|
|
41489
|
+
});
|
|
41391
41490
|
resource.command("unarchive").description(`Restore a previously archived product, making it available for new subscriptions again.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
41392
41491
|
Examples:
|
|
41393
41492
|
hyperline products unarchive --id <id>
|
|
@@ -41713,7 +41812,7 @@ Examples:
|
|
|
41713
41812
|
- \`all\`: Display all pricing tiers.
|
|
41714
41813
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
41715
41814
|
- \`none\`: Hide all pricing tiers.
|
|
41716
|
-
`).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. Set to \`null\` to clear the expiration.`).option("--subscription <value>", `Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.`).option("--invoice <value>", `Invoice configuration constituting the one-off quote. When provided on a draft one-off quote, it deletes the previous draft invoice and creates a fresh one linked to the quote. \`invoice.invoicing_entity_id\` is ignored on update \u2014 the quote's existing invoicing entity is reused.`).addHelpText("after", `
|
|
41815
|
+
`).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. Set to \`null\` to clear the expiration.`).option("--subscription <value>", `Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.`).option("--invoice <value>", `Invoice configuration constituting the one-off quote. When provided on a draft one-off quote, it deletes the previous draft invoice and creates a fresh one linked to the quote. \`invoice.invoicing_entity_id\` is ignored on update \u2014 the quote's existing invoicing entity is reused.`).addHelpText("after", `
|
|
41717
41816
|
Examples:
|
|
41718
41817
|
hyperline quotes update --id <id>
|
|
41719
41818
|
hyperline quotes update --id <id> --owner-email <owner_email> --comments <comments>
|
|
@@ -41758,6 +41857,8 @@ Examples:
|
|
|
41758
41857
|
args.display_subscription_on_update = opts.displaySubscriptionOnUpdate;
|
|
41759
41858
|
if (opts.generateDraftInvoices !== void 0)
|
|
41760
41859
|
args.generate_draft_invoices = opts.generateDraftInvoices;
|
|
41860
|
+
if (opts.crmOpportunityId !== void 0)
|
|
41861
|
+
args.crm_opportunity_id = opts.crmOpportunityId;
|
|
41761
41862
|
if (opts.expiresAt !== void 0)
|
|
41762
41863
|
args.expires_at = opts.expiresAt;
|
|
41763
41864
|
if (opts.subscription !== void 0)
|
|
@@ -42064,7 +42165,7 @@ Examples:
|
|
|
42064
42165
|
// build/commands/generated/subscriptions.js
|
|
42065
42166
|
function registerSubscriptionsCommands(parent) {
|
|
42066
42167
|
const resource = parent.command("subscriptions").description("Manage subscriptions");
|
|
42067
|
-
resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
|
|
42168
|
+
resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
|
|
42068
42169
|
Examples:
|
|
42069
42170
|
hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
|
|
42070
42171
|
hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload> --apply-at <apply_at> --charge-at <charge_at>
|
|
@@ -42087,6 +42188,8 @@ Examples:
|
|
|
42087
42188
|
args.charge_at = opts.chargeAt;
|
|
42088
42189
|
if (opts.calculationMethod !== void 0)
|
|
42089
42190
|
args.calculation_method = opts.calculationMethod;
|
|
42191
|
+
if (opts.precision !== void 0)
|
|
42192
|
+
args.precision = opts.precision;
|
|
42090
42193
|
if (opts.refundMethod !== void 0)
|
|
42091
42194
|
args.refund_method = opts.refundMethod;
|
|
42092
42195
|
if (opts.type !== void 0)
|
|
@@ -42100,7 +42203,7 @@ Examples:
|
|
|
42100
42203
|
queryParamKeys: []
|
|
42101
42204
|
});
|
|
42102
42205
|
});
|
|
42103
|
-
resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42206
|
+
resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42104
42207
|
Examples:
|
|
42105
42208
|
hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
|
|
42106
42209
|
hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
|
|
@@ -42123,6 +42226,8 @@ Examples:
|
|
|
42123
42226
|
args.charge_at = opts.chargeAt;
|
|
42124
42227
|
if (opts.calculationMethod !== void 0)
|
|
42125
42228
|
args.calculation_method = opts.calculationMethod;
|
|
42229
|
+
if (opts.precision !== void 0)
|
|
42230
|
+
args.precision = opts.precision;
|
|
42126
42231
|
if (opts.refundMethod !== void 0)
|
|
42127
42232
|
args.refund_method = opts.refundMethod;
|
|
42128
42233
|
if (opts.updates !== void 0)
|
|
@@ -42181,7 +42286,7 @@ Examples:
|
|
|
42181
42286
|
queryParamKeys: []
|
|
42182
42287
|
});
|
|
42183
42288
|
});
|
|
42184
|
-
resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
|
|
42289
|
+
resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption. If the subscription is already paused, updates (or clears) its reactivation date.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated. Must be a future date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
|
|
42185
42290
|
Examples:
|
|
42186
42291
|
hyperline subscriptions pause --id <id>
|
|
42187
42292
|
hyperline subscriptions pause --id <id> --reactivate-at <reactivate_at>
|
|
@@ -42262,7 +42367,7 @@ Examples:
|
|
|
42262
42367
|
queryParamKeys: []
|
|
42263
42368
|
});
|
|
42264
42369
|
});
|
|
42265
|
-
resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42370
|
+
resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--precision <value>", `Granularity used to prorate the update amount. Defaults to 'calendar_days' when omitted, prorating on whole calendar days; 'milliseconds' prorates on the exact elapsed time, charging the precise partial period.`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
|
|
42266
42371
|
Examples:
|
|
42267
42372
|
hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
|
|
42268
42373
|
hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
|
|
@@ -42285,6 +42390,8 @@ Examples:
|
|
|
42285
42390
|
args.charge_at = opts.chargeAt;
|
|
42286
42391
|
if (opts.calculationMethod !== void 0)
|
|
42287
42392
|
args.calculation_method = opts.calculationMethod;
|
|
42393
|
+
if (opts.precision !== void 0)
|
|
42394
|
+
args.precision = opts.precision;
|
|
42288
42395
|
if (opts.refundMethod !== void 0)
|
|
42289
42396
|
args.refund_method = opts.refundMethod;
|
|
42290
42397
|
if (opts.updates !== void 0)
|
|
@@ -42720,6 +42827,38 @@ Examples:
|
|
|
42720
42827
|
queryParamKeys: []
|
|
42721
42828
|
});
|
|
42722
42829
|
});
|
|
42830
|
+
resource.command("get-subscription-arr-history").description(`List every ARR evolution for a subscription, including previous and current fixed, variable, and total annual values in the subscription currency. Results are latest-first and paginated with limit/cursor.`).requiredOption("--id <value>", `id parameter`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--occurred-at.gte <value>", `Return evolutions that occurred at or after this UTC date and time.`).option("--occurred-at.lte <value>", `Return evolutions that occurred at or before this UTC date and time.`).addHelpText("after", `
|
|
42831
|
+
Examples:
|
|
42832
|
+
hyperline subscriptions get-subscription-arr-history --id <id>
|
|
42833
|
+
hyperline subscriptions get-subscription-arr-history --id <id> --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
42834
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42835
|
+
if (!ctx) {
|
|
42836
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42837
|
+
process.exit(1);
|
|
42838
|
+
}
|
|
42839
|
+
const args = {};
|
|
42840
|
+
if (opts.id !== void 0)
|
|
42841
|
+
args.id = opts.id;
|
|
42842
|
+
if (opts.cursor !== void 0)
|
|
42843
|
+
args.cursor = opts.cursor;
|
|
42844
|
+
if (opts["occurredAt.gte"] !== void 0)
|
|
42845
|
+
args.occurred_at__gte = opts["occurredAt.gte"];
|
|
42846
|
+
if (opts["occurredAt.lte"] !== void 0)
|
|
42847
|
+
args.occurred_at__lte = opts["occurredAt.lte"];
|
|
42848
|
+
if (opts.limit !== void 0)
|
|
42849
|
+
args.limit = Number(opts.limit);
|
|
42850
|
+
await ctx.execute({
|
|
42851
|
+
method: "GET",
|
|
42852
|
+
path: "/v1/subscriptions/{id}/arr-history",
|
|
42853
|
+
args,
|
|
42854
|
+
queryParamKeys: [
|
|
42855
|
+
"limit",
|
|
42856
|
+
"cursor",
|
|
42857
|
+
"occurred_at__gte",
|
|
42858
|
+
"occurred_at__lte"
|
|
42859
|
+
]
|
|
42860
|
+
});
|
|
42861
|
+
});
|
|
42723
42862
|
resource.command("get-subscription-valuation").description(`Compute valuation metrics for a subscription: contract value (total/invoiced/remaining), recurring contract value, and ARR (fixed + variable). Optionally pass granularity (year/quarter/month) for period breakdown.`).requiredOption("--id <value>", `id parameter`).option("--granularity <value>", `Period granularity for the breakdown. When provided, contract value and recurring contract value include a \`by_period\` array.`).addHelpText("after", `
|
|
42724
42863
|
Examples:
|
|
42725
42864
|
hyperline subscriptions get-subscription-valuation --id <id>
|
|
@@ -57500,120 +57639,500 @@ var AmountSchema = external_exports.number().openapi({
|
|
|
57500
57639
|
description: `Monetary amount. ${amountDescription}`
|
|
57501
57640
|
});
|
|
57502
57641
|
|
|
57503
|
-
//
|
|
57504
|
-
|
|
57505
|
-
var
|
|
57506
|
-
|
|
57507
|
-
|
|
57508
|
-
|
|
57509
|
-
|
|
57510
|
-
|
|
57511
|
-
|
|
57512
|
-
|
|
57513
|
-
|
|
57514
|
-
|
|
57515
|
-
|
|
57516
|
-
|
|
57517
|
-
|
|
57518
|
-
|
|
57519
|
-
|
|
57520
|
-
|
|
57521
|
-
|
|
57522
|
-
|
|
57523
|
-
|
|
57524
|
-
|
|
57525
|
-
|
|
57526
|
-
|
|
57527
|
-
|
|
57528
|
-
|
|
57529
|
-
|
|
57530
|
-
|
|
57531
|
-
|
|
57532
|
-
|
|
57533
|
-
// The modulo mode used when calculating the modulus: a mod n.
|
|
57534
|
-
// The quotient (q = a / n) is calculated according to the corresponding rounding mode.
|
|
57535
|
-
// The remainder (r) is calculated as: r = a - n * q.
|
|
57536
|
-
//
|
|
57537
|
-
// UP 0 The remainder is positive if the dividend is negative, else is negative.
|
|
57538
|
-
// DOWN 1 The remainder has the same sign as the dividend (JavaScript %).
|
|
57539
|
-
// FLOOR 3 The remainder has the same sign as the divisor (Python %).
|
|
57540
|
-
// HALF_EVEN 6 The IEEE 754 remainder function.
|
|
57541
|
-
// EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.
|
|
57542
|
-
//
|
|
57543
|
-
// Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian
|
|
57544
|
-
// division (9) are commonly used for the modulus operation. The other rounding modes can also
|
|
57545
|
-
// be used, but they may not give useful results.
|
|
57546
|
-
modulo: 1,
|
|
57547
|
-
// 0 to 9
|
|
57548
|
-
// The exponent value at and beneath which `toString` returns exponential notation.
|
|
57549
|
-
// JavaScript numbers: -7
|
|
57550
|
-
toExpNeg: -7,
|
|
57551
|
-
// 0 to -EXP_LIMIT
|
|
57552
|
-
// The exponent value at and above which `toString` returns exponential notation.
|
|
57553
|
-
// JavaScript numbers: 21
|
|
57554
|
-
toExpPos: 21,
|
|
57555
|
-
// 0 to EXP_LIMIT
|
|
57556
|
-
// The minimum exponent value, beneath which underflow to zero occurs.
|
|
57557
|
-
// JavaScript numbers: -324 (5e-324)
|
|
57558
|
-
minE: -EXP_LIMIT,
|
|
57559
|
-
// -1 to -EXP_LIMIT
|
|
57560
|
-
// The maximum exponent value, above which overflow to Infinity occurs.
|
|
57561
|
-
// JavaScript numbers: 308 (1.7976931348623157e+308)
|
|
57562
|
-
maxE: EXP_LIMIT,
|
|
57563
|
-
// 1 to EXP_LIMIT
|
|
57564
|
-
// Whether to use cryptographically-secure random number generation, if available.
|
|
57565
|
-
crypto: false
|
|
57566
|
-
// true/false
|
|
57567
|
-
};
|
|
57568
|
-
var inexact;
|
|
57569
|
-
var quadrant;
|
|
57570
|
-
var external = true;
|
|
57571
|
-
var decimalError = "[DecimalError] ";
|
|
57572
|
-
var invalidArgument = decimalError + "Invalid argument: ";
|
|
57573
|
-
var precisionLimitExceeded = decimalError + "Precision limit exceeded";
|
|
57574
|
-
var cryptoUnavailable = decimalError + "crypto unavailable";
|
|
57575
|
-
var tag = "[object Decimal]";
|
|
57576
|
-
var mathfloor = Math.floor;
|
|
57577
|
-
var mathpow = Math.pow;
|
|
57578
|
-
var isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i;
|
|
57579
|
-
var isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i;
|
|
57580
|
-
var isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i;
|
|
57581
|
-
var isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
|
|
57582
|
-
var BASE = 1e7;
|
|
57583
|
-
var LOG_BASE = 7;
|
|
57584
|
-
var MAX_SAFE_INTEGER = 9007199254740991;
|
|
57585
|
-
var LN10_PRECISION = LN10.length - 1;
|
|
57586
|
-
var PI_PRECISION = PI.length - 1;
|
|
57587
|
-
var P = { toStringTag: tag };
|
|
57588
|
-
P.absoluteValue = P.abs = function() {
|
|
57589
|
-
var x = new this.constructor(this);
|
|
57590
|
-
if (x.s < 0) x.s = 1;
|
|
57591
|
-
return finalise(x);
|
|
57592
|
-
};
|
|
57593
|
-
P.ceil = function() {
|
|
57594
|
-
return finalise(new this.constructor(this), this.e + 1, 2);
|
|
57595
|
-
};
|
|
57596
|
-
P.clampedTo = P.clamp = function(min2, max2) {
|
|
57597
|
-
var k, x = this, Ctor = x.constructor;
|
|
57598
|
-
min2 = new Ctor(min2);
|
|
57599
|
-
max2 = new Ctor(max2);
|
|
57600
|
-
if (!min2.s || !max2.s) return new Ctor(NaN);
|
|
57601
|
-
if (min2.gt(max2)) throw Error(invalidArgument + max2);
|
|
57602
|
-
k = x.cmp(min2);
|
|
57603
|
-
return k < 0 ? min2 : x.cmp(max2) > 0 ? max2 : new Ctor(x);
|
|
57642
|
+
// ../hyperline-monitoring/build/context/context.js
|
|
57643
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
57644
|
+
var executionContextStorage = new AsyncLocalStorage();
|
|
57645
|
+
function getExecutionContext() {
|
|
57646
|
+
return executionContextStorage.getStore();
|
|
57647
|
+
}
|
|
57648
|
+
|
|
57649
|
+
// ../hyperline-monitoring/build/context/correlationId.js
|
|
57650
|
+
import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
|
|
57651
|
+
var correlationIdStorage = new AsyncLocalStorage2();
|
|
57652
|
+
function getCorrelationId() {
|
|
57653
|
+
return correlationIdStorage.getStore();
|
|
57654
|
+
}
|
|
57655
|
+
|
|
57656
|
+
// ../hyperline-config/build/index.js
|
|
57657
|
+
import "dotenv/config";
|
|
57658
|
+
import * as stackTraceParser from "stacktrace-parser";
|
|
57659
|
+
function coerceBoolean() {
|
|
57660
|
+
return external_exports.any().refine((value) => ["true", "false"].includes(value), {
|
|
57661
|
+
message: "Expected boolean"
|
|
57662
|
+
}).transform((value) => (
|
|
57663
|
+
// biome-ignore lint/complexity/noUselessTernary: ignore
|
|
57664
|
+
value === "true" ? true : false
|
|
57665
|
+
));
|
|
57666
|
+
}
|
|
57667
|
+
var types = {
|
|
57668
|
+
string: external_exports.coerce.string,
|
|
57669
|
+
number: external_exports.coerce.number,
|
|
57670
|
+
boolean: coerceBoolean,
|
|
57671
|
+
enum: external_exports.enum
|
|
57604
57672
|
};
|
|
57605
|
-
|
|
57606
|
-
|
|
57607
|
-
|
|
57608
|
-
|
|
57673
|
+
function getConfig(schema, testValues) {
|
|
57674
|
+
const validator = external_exports.object(Object.fromEntries(Object.entries(schema).map(([key, zodType]) => {
|
|
57675
|
+
if (zodType instanceof ZodOptional) {
|
|
57676
|
+
return [key, external_exports.string().optional()];
|
|
57677
|
+
}
|
|
57678
|
+
return [key, external_exports.string()];
|
|
57679
|
+
})));
|
|
57680
|
+
const processEnv = process.env;
|
|
57681
|
+
const isTestMode = processEnv.NODE_ENV === "test";
|
|
57682
|
+
const envVariables = {
|
|
57683
|
+
...processEnv,
|
|
57684
|
+
...isTestMode && testValues ? Object.fromEntries(Object.entries(testValues).map(([key, value]) => [key, String(value)])) : {}
|
|
57685
|
+
};
|
|
57686
|
+
const packageName = envVariables.npm_package_name;
|
|
57687
|
+
const parseProcessEnvResult = validator.safeParse(envVariables);
|
|
57688
|
+
if (!parseProcessEnvResult.success) {
|
|
57689
|
+
const parsedStackTrace = stackTraceParser.parse(parseProcessEnvResult.error.stack ?? "");
|
|
57690
|
+
const getConfigCallLine = parsedStackTrace.find((line) => {
|
|
57691
|
+
return !line.file?.includes("hyperline-config") && (line.file?.includes("apps/") || line.file?.includes("core/") || line.file?.includes("packages/"));
|
|
57692
|
+
});
|
|
57693
|
+
const callerFile = getConfigCallLine?.file;
|
|
57694
|
+
console.error(`Invalid environment variables for service \`${packageName}\`: \`${callerFile}\``);
|
|
57695
|
+
console.error(parseProcessEnvResult.error.format());
|
|
57696
|
+
process.exit(1);
|
|
57609
57697
|
}
|
|
57610
|
-
|
|
57611
|
-
|
|
57612
|
-
|
|
57613
|
-
|
|
57614
|
-
|
|
57615
|
-
|
|
57616
|
-
|
|
57698
|
+
const coercion = external_exports.object(schema);
|
|
57699
|
+
return coercion.parse(parseProcessEnvResult.data);
|
|
57700
|
+
}
|
|
57701
|
+
|
|
57702
|
+
// ../hyperline-monitoring/build/config.js
|
|
57703
|
+
var config2 = getConfig({
|
|
57704
|
+
// config
|
|
57705
|
+
APP_VERSION: types.string().optional(),
|
|
57706
|
+
DD_SERVICE: types.string().optional(),
|
|
57707
|
+
LOGGER_CONSOLE_ENABLED: types.boolean().optional(),
|
|
57708
|
+
LOGGER_STDOUT_ENABLED: types.boolean().optional(),
|
|
57709
|
+
NODE_ENV: types.enum(["local", "test", "staging", "sandbox", "production"]),
|
|
57710
|
+
EVENT_LOOP_MONITORING_ENABLED: types.boolean().optional(),
|
|
57711
|
+
MEMORY_MONITORING_ENABLED: types.boolean().optional(),
|
|
57712
|
+
MEMORY_MONITORING_INTERVAL_MS: types.number().optional()
|
|
57713
|
+
// secrets
|
|
57714
|
+
}, {
|
|
57715
|
+
APP_VERSION: void 0,
|
|
57716
|
+
DD_SERVICE: void 0,
|
|
57717
|
+
LOGGER_CONSOLE_ENABLED: false,
|
|
57718
|
+
LOGGER_STDOUT_ENABLED: false,
|
|
57719
|
+
EVENT_LOOP_MONITORING_ENABLED: false,
|
|
57720
|
+
MEMORY_MONITORING_ENABLED: false,
|
|
57721
|
+
MEMORY_MONITORING_INTERVAL_MS: 3e4,
|
|
57722
|
+
NODE_ENV: "test"
|
|
57723
|
+
});
|
|
57724
|
+
|
|
57725
|
+
// ../hyperline-monitoring/build/logger/logger.js
|
|
57726
|
+
import * as util from "node:util";
|
|
57727
|
+
import prune2 from "json-prune";
|
|
57728
|
+
import * as winston from "winston";
|
|
57729
|
+
|
|
57730
|
+
// ../hyperline-monitoring/build/logger/formatting/format.js
|
|
57731
|
+
import prune from "json-prune";
|
|
57732
|
+
var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
|
|
57733
|
+
function jsonFormat(info) {
|
|
57734
|
+
const prunedInfo = JSON.parse(prune(info));
|
|
57735
|
+
for (const [key, value] of Object.entries(prunedInfo)) {
|
|
57736
|
+
info[key] = value;
|
|
57737
|
+
}
|
|
57738
|
+
return info;
|
|
57739
|
+
}
|
|
57740
|
+
function addMetadata({ getCorrelationId: getCorrelationId2, getExecutionContext: getExecutionContext2 }) {
|
|
57741
|
+
return (info) => {
|
|
57742
|
+
const correlationId = getCorrelationId2();
|
|
57743
|
+
const executionContext = getExecutionContext2();
|
|
57744
|
+
let traceContext;
|
|
57745
|
+
return {
|
|
57746
|
+
...info,
|
|
57747
|
+
...executionContext ?? {},
|
|
57748
|
+
...traceContext ?? {},
|
|
57749
|
+
correlationId
|
|
57750
|
+
};
|
|
57751
|
+
};
|
|
57752
|
+
}
|
|
57753
|
+
function transformErrorEnrich(info, { depth }) {
|
|
57754
|
+
if (depth <= 0) {
|
|
57755
|
+
return info;
|
|
57756
|
+
}
|
|
57757
|
+
Object.entries(info).forEach(([key, value]) => {
|
|
57758
|
+
let newValue = value;
|
|
57759
|
+
if (newValue instanceof Error) {
|
|
57760
|
+
newValue = {
|
|
57761
|
+
...newValue,
|
|
57762
|
+
// Copy error properties manually because they're not enumerable
|
|
57763
|
+
level: newValue.level,
|
|
57764
|
+
stack: newValue.stack,
|
|
57765
|
+
message: newValue.message,
|
|
57766
|
+
name: newValue.name
|
|
57767
|
+
};
|
|
57768
|
+
}
|
|
57769
|
+
if (newValue instanceof Object) {
|
|
57770
|
+
newValue = transformErrorEnrich(newValue, { depth: depth - 1 });
|
|
57771
|
+
}
|
|
57772
|
+
const isPropertyWritable = Object.getOwnPropertyDescriptor(info, key)?.writable ?? true;
|
|
57773
|
+
if (isPropertyWritable && newValue !== value) {
|
|
57774
|
+
info[key] = newValue;
|
|
57775
|
+
}
|
|
57776
|
+
});
|
|
57777
|
+
return info;
|
|
57778
|
+
}
|
|
57779
|
+
function transformPrune(info) {
|
|
57780
|
+
Object.entries(info).forEach(([key, value]) => {
|
|
57781
|
+
if (typeof value === "function") {
|
|
57782
|
+
return;
|
|
57783
|
+
}
|
|
57784
|
+
const newValue = value instanceof Object ? JSON.parse(prune(value, { depthDecr: 6 })) : value;
|
|
57785
|
+
const isPropertyWritable = Object.getOwnPropertyDescriptor(info, key)?.writable ?? true;
|
|
57786
|
+
if (isPropertyWritable && newValue !== value) {
|
|
57787
|
+
info[key] = newValue;
|
|
57788
|
+
}
|
|
57789
|
+
});
|
|
57790
|
+
return info;
|
|
57791
|
+
}
|
|
57792
|
+
function transformAxiosError(info) {
|
|
57793
|
+
Object.entries(info).forEach(([key, value]) => {
|
|
57794
|
+
if (typeof value === "object" && value?.name === "AxiosError") {
|
|
57795
|
+
info[key] = formatAxiosError(value);
|
|
57796
|
+
}
|
|
57797
|
+
});
|
|
57798
|
+
return info;
|
|
57799
|
+
}
|
|
57800
|
+
function formatAxiosError(error48) {
|
|
57801
|
+
if (!isRecord(error48) || error48.name !== "AxiosError") {
|
|
57802
|
+
return error48;
|
|
57803
|
+
}
|
|
57804
|
+
const request = isRecord(error48.config) ? error48.config : void 0;
|
|
57805
|
+
const response = isRecord(error48.response) ? error48.response : void 0;
|
|
57806
|
+
return {
|
|
57807
|
+
name: error48.name,
|
|
57808
|
+
message: error48.message,
|
|
57809
|
+
code: error48.code,
|
|
57810
|
+
request: {
|
|
57811
|
+
method: request?.method,
|
|
57812
|
+
url: request?.url,
|
|
57813
|
+
baseURL: request?.baseURL,
|
|
57814
|
+
params: request?.params,
|
|
57815
|
+
headers: redactHeaders({ headers: request?.headers }),
|
|
57816
|
+
"axios-retry": request?.["axios-retry"]
|
|
57817
|
+
},
|
|
57818
|
+
response: {
|
|
57819
|
+
status: response?.status,
|
|
57820
|
+
statusText: response?.statusText,
|
|
57821
|
+
headers: redactHeaders({ headers: response?.headers }),
|
|
57822
|
+
data: response?.data
|
|
57823
|
+
}
|
|
57824
|
+
};
|
|
57825
|
+
}
|
|
57826
|
+
function redactHeaders({ headers }) {
|
|
57827
|
+
if (!isRecord(headers)) {
|
|
57828
|
+
return headers;
|
|
57829
|
+
}
|
|
57830
|
+
return Object.fromEntries(Object.entries(headers).map(([headerKey, headerValue]) => [
|
|
57831
|
+
headerKey,
|
|
57832
|
+
REDACTED_HEADER_KEY_PATTERN.test(headerKey) ? "<redacted>" : headerValue
|
|
57833
|
+
]));
|
|
57834
|
+
}
|
|
57835
|
+
function isRecord(value) {
|
|
57836
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
57837
|
+
}
|
|
57838
|
+
|
|
57839
|
+
// ../hyperline-monitoring/build/logger/formatting/routePath.js
|
|
57840
|
+
function transformUrlIntoRoutePath({ params, originalUrl }) {
|
|
57841
|
+
let routePath = originalUrl;
|
|
57842
|
+
for (const [param, value] of Object.entries(params ?? {})) {
|
|
57843
|
+
const strValue = Array.isArray(value) ? value.join("/") : value;
|
|
57844
|
+
routePath = routePath.replace(strValue, `:${param}`);
|
|
57845
|
+
}
|
|
57846
|
+
return routePath.split("?")[0] ?? routePath;
|
|
57847
|
+
}
|
|
57848
|
+
|
|
57849
|
+
// ../hyperline-monitoring/build/logger/formatting/http.js
|
|
57850
|
+
function logHttpRequest(logger2, request, extra) {
|
|
57851
|
+
const { message, metadata } = transform2(request);
|
|
57852
|
+
logger2.info(`HTTP REQ - ${message} ${extra?.postfix || ""}`, {
|
|
57853
|
+
...metadata,
|
|
57854
|
+
...extra?.metadata ?? {}
|
|
57855
|
+
});
|
|
57856
|
+
}
|
|
57857
|
+
function logHttpResponse(logger2, response, responseTime, extra) {
|
|
57858
|
+
const { request, statusCode, responseBody, responseHeaders } = response;
|
|
57859
|
+
const { message, metadata } = transform2(request);
|
|
57860
|
+
const readableResponseTime = responseTime ? getReadableTime(responseTime) : void 0;
|
|
57861
|
+
const responseMetadata = {
|
|
57862
|
+
statusCode,
|
|
57863
|
+
responseTime,
|
|
57864
|
+
responseBody,
|
|
57865
|
+
// Redacted so secrets (authorization/cookie/token/…) never reach the logs
|
|
57866
|
+
// while diagnostic headers (e.g. rate-limit headers on a 429) stay visible.
|
|
57867
|
+
responseHeaders: responseHeaders === void 0 ? void 0 : redactHeaders({ headers: responseHeaders })
|
|
57868
|
+
};
|
|
57869
|
+
logger2.info(`HTTP RES - ${message} ${statusCode} ${readableResponseTime || ""} ${extra?.postfix || ""}`, {
|
|
57870
|
+
...metadata,
|
|
57871
|
+
...responseMetadata,
|
|
57872
|
+
...extra?.metadata ?? {}
|
|
57873
|
+
});
|
|
57874
|
+
}
|
|
57875
|
+
function transform2(request) {
|
|
57876
|
+
const method = request.method.toUpperCase();
|
|
57877
|
+
const message = `${method} ${request.originalUrl}`;
|
|
57878
|
+
const metadata = {};
|
|
57879
|
+
metadata.method = method;
|
|
57880
|
+
metadata.url = request.url;
|
|
57881
|
+
metadata.path = request.path;
|
|
57882
|
+
metadata.hostname = request.hostname;
|
|
57883
|
+
metadata.originalUrl = request.originalUrl;
|
|
57884
|
+
metadata.requestBody = request.body;
|
|
57885
|
+
metadata.routePath = transformUrlIntoRoutePath(request);
|
|
57886
|
+
metadata.apiKeyEnd = request.headers["authorization"]?.slice(-6);
|
|
57887
|
+
return { message, metadata };
|
|
57888
|
+
}
|
|
57889
|
+
function getReadableTime(time3) {
|
|
57890
|
+
return time3 < 1e4 ? `${time3}ms` : `${Math.round(time3 / 1e3)}s`;
|
|
57891
|
+
}
|
|
57892
|
+
|
|
57893
|
+
// ../hyperline-monitoring/build/logger/utils/network.js
|
|
57894
|
+
import * as os2 from "node:os";
|
|
57895
|
+
function getIpAddress() {
|
|
57896
|
+
const interfaces = Object.values(os2.networkInterfaces()).flat().filter((networkInterface) => {
|
|
57897
|
+
return networkInterface !== void 0;
|
|
57898
|
+
});
|
|
57899
|
+
const mainInterface = interfaces.find(({ family, internal }) => family === "IPv4" && internal === false);
|
|
57900
|
+
return mainInterface ? mainInterface.address : null;
|
|
57901
|
+
}
|
|
57902
|
+
|
|
57903
|
+
// ../hyperline-monitoring/build/logger/logger.js
|
|
57904
|
+
function buildLoggerFactory({ config: config4, context }) {
|
|
57905
|
+
const defaultMeta = {
|
|
57906
|
+
env: context.env,
|
|
57907
|
+
service: context.service,
|
|
57908
|
+
version: context.version,
|
|
57909
|
+
pid: process.pid,
|
|
57910
|
+
ppid: process.ppid,
|
|
57911
|
+
host: getIpAddress()
|
|
57912
|
+
};
|
|
57913
|
+
const transports2 = [];
|
|
57914
|
+
if (config4.enableConsoleTransport) {
|
|
57915
|
+
transports2.push(createTransportConsole());
|
|
57916
|
+
}
|
|
57917
|
+
if (config4.enableStdoutTransport) {
|
|
57918
|
+
transports2.push(createTransportStdout());
|
|
57919
|
+
}
|
|
57920
|
+
if (Object.values(config4).every((value) => !value)) {
|
|
57921
|
+
transports2.push(createTransportSilent());
|
|
57922
|
+
}
|
|
57923
|
+
for (const transport of transports2) {
|
|
57924
|
+
transport.on("error", (error48) => {
|
|
57925
|
+
console.error(`Unable to log to transport=${transport.name}: ${error48.message} ${JSON.stringify(error48)}`);
|
|
57926
|
+
});
|
|
57927
|
+
}
|
|
57928
|
+
const internalLogger = winston.createLogger({
|
|
57929
|
+
transports: transports2,
|
|
57930
|
+
defaultMeta,
|
|
57931
|
+
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()),
|
|
57932
|
+
exitOnError: false
|
|
57933
|
+
});
|
|
57934
|
+
function createLogger3({ serviceName }) {
|
|
57935
|
+
const logger2 = internalLogger.child({ subService: serviceName });
|
|
57936
|
+
return {
|
|
57937
|
+
debug: bindLogger(logger2, "debug"),
|
|
57938
|
+
info: bindLogger(logger2, "info"),
|
|
57939
|
+
warn: bindLogger(logger2, "warn"),
|
|
57940
|
+
error: bindLogger(logger2, "error"),
|
|
57941
|
+
on: logger2.on.bind(logger2),
|
|
57942
|
+
end: logger2.end.bind(logger2)
|
|
57943
|
+
};
|
|
57944
|
+
}
|
|
57945
|
+
return {
|
|
57946
|
+
createLogger: createLogger3
|
|
57947
|
+
};
|
|
57948
|
+
}
|
|
57949
|
+
function bindLogger(logger2, severity) {
|
|
57950
|
+
return (message, data) => {
|
|
57951
|
+
logger2[severity].bind(logger2)(message, preserveReservedKeys(data));
|
|
57952
|
+
};
|
|
57953
|
+
}
|
|
57954
|
+
function preserveReservedKeys(data) {
|
|
57955
|
+
if (!data)
|
|
57956
|
+
return;
|
|
57957
|
+
return Object.fromEntries(Object.entries(data).map(([key, value]) => {
|
|
57958
|
+
let finalKey = key;
|
|
57959
|
+
if (key === "status") {
|
|
57960
|
+
finalKey = "_status";
|
|
57961
|
+
} else if (key === "service") {
|
|
57962
|
+
finalKey = "_service";
|
|
57963
|
+
}
|
|
57964
|
+
return [finalKey, value];
|
|
57965
|
+
}));
|
|
57966
|
+
}
|
|
57967
|
+
var verboseLevels = ["warn", "error", "debug"];
|
|
57968
|
+
function createTransportConsole() {
|
|
57969
|
+
return new winston.transports.Console({
|
|
57970
|
+
level: "debug",
|
|
57971
|
+
handleExceptions: true,
|
|
57972
|
+
format: winston.format.combine(winston.format(jsonFormat)(), winston.format((info) => {
|
|
57973
|
+
const { level, message, ...others } = info;
|
|
57974
|
+
const parts = [message];
|
|
57975
|
+
if (Object.keys(others).length > 0 && verboseLevels.includes(level)) {
|
|
57976
|
+
const rawOthers = JSON.parse(prune2(others));
|
|
57977
|
+
parts.push(util.inspect(rawOthers, false, 4, true));
|
|
57978
|
+
}
|
|
57979
|
+
info.message = parts.filter((part) => !!part).join("\n");
|
|
57980
|
+
return info;
|
|
57981
|
+
})(), winston.format.colorize(), winston.format.printf(({ timestamp, level, message, service = "?" }) => {
|
|
57982
|
+
const result = `[${timestamp}] ${level} ${service}: ${message}`;
|
|
57983
|
+
return result.replace(/\\n/g, "\n");
|
|
57984
|
+
}))
|
|
57985
|
+
});
|
|
57986
|
+
}
|
|
57987
|
+
function createTransportStdout() {
|
|
57988
|
+
return new winston.transports.Console({
|
|
57989
|
+
level: "debug",
|
|
57990
|
+
handleExceptions: true,
|
|
57991
|
+
format: winston.format.combine(winston.format(jsonFormat)(), winston.format.timestamp(), winston.format.json())
|
|
57992
|
+
});
|
|
57993
|
+
}
|
|
57994
|
+
function createTransportSilent() {
|
|
57995
|
+
return new winston.transports.Console({
|
|
57996
|
+
silent: true
|
|
57997
|
+
});
|
|
57998
|
+
}
|
|
57999
|
+
|
|
58000
|
+
// ../hyperline-monitoring/build/logger/instance.js
|
|
58001
|
+
var loggerFactory = buildLoggerFactory({
|
|
58002
|
+
config: {
|
|
58003
|
+
enableConsoleTransport: config2.LOGGER_CONSOLE_ENABLED ?? false,
|
|
58004
|
+
enableStdoutTransport: config2.LOGGER_STDOUT_ENABLED ?? false
|
|
58005
|
+
},
|
|
58006
|
+
context: {
|
|
58007
|
+
env: config2.NODE_ENV,
|
|
58008
|
+
service: config2.DD_SERVICE ?? "api",
|
|
58009
|
+
version: config2.APP_VERSION
|
|
58010
|
+
}
|
|
58011
|
+
});
|
|
58012
|
+
var createLogger2 = loggerFactory.createLogger;
|
|
58013
|
+
var logger = loggerFactory.createLogger({ serviceName: "default" });
|
|
58014
|
+
|
|
58015
|
+
// ../hyperline-monitoring/build/tracing/tracing.js
|
|
58016
|
+
import tracer from "dd-trace";
|
|
58017
|
+
|
|
58018
|
+
// ../hyperline-lib/build/utils/aws.js
|
|
58019
|
+
import { GetBucketLocationCommand, S3Client } from "@aws-sdk/client-s3";
|
|
58020
|
+
import { GetCallerIdentityCommand, STSClient } from "@aws-sdk/client-sts";
|
|
58021
|
+
|
|
58022
|
+
// ../../node_modules/decimal.js/decimal.mjs
|
|
58023
|
+
var EXP_LIMIT = 9e15;
|
|
58024
|
+
var MAX_DIGITS = 1e9;
|
|
58025
|
+
var NUMERALS = "0123456789abcdef";
|
|
58026
|
+
var LN10 = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058";
|
|
58027
|
+
var PI = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789";
|
|
58028
|
+
var DEFAULTS = {
|
|
58029
|
+
// These values must be integers within the stated ranges (inclusive).
|
|
58030
|
+
// Most of these values can be changed at run-time using the `Decimal.config` method.
|
|
58031
|
+
// The maximum number of significant digits of the result of a calculation or base conversion.
|
|
58032
|
+
// E.g. `Decimal.config({ precision: 20 });`
|
|
58033
|
+
precision: 20,
|
|
58034
|
+
// 1 to MAX_DIGITS
|
|
58035
|
+
// The rounding mode used when rounding to `precision`.
|
|
58036
|
+
//
|
|
58037
|
+
// ROUND_UP 0 Away from zero.
|
|
58038
|
+
// ROUND_DOWN 1 Towards zero.
|
|
58039
|
+
// ROUND_CEIL 2 Towards +Infinity.
|
|
58040
|
+
// ROUND_FLOOR 3 Towards -Infinity.
|
|
58041
|
+
// ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.
|
|
58042
|
+
// ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.
|
|
58043
|
+
// ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.
|
|
58044
|
+
// ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.
|
|
58045
|
+
// ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
|
|
58046
|
+
//
|
|
58047
|
+
// E.g.
|
|
58048
|
+
// `Decimal.rounding = 4;`
|
|
58049
|
+
// `Decimal.rounding = Decimal.ROUND_HALF_UP;`
|
|
58050
|
+
rounding: 4,
|
|
58051
|
+
// 0 to 8
|
|
58052
|
+
// The modulo mode used when calculating the modulus: a mod n.
|
|
58053
|
+
// The quotient (q = a / n) is calculated according to the corresponding rounding mode.
|
|
58054
|
+
// The remainder (r) is calculated as: r = a - n * q.
|
|
58055
|
+
//
|
|
58056
|
+
// UP 0 The remainder is positive if the dividend is negative, else is negative.
|
|
58057
|
+
// DOWN 1 The remainder has the same sign as the dividend (JavaScript %).
|
|
58058
|
+
// FLOOR 3 The remainder has the same sign as the divisor (Python %).
|
|
58059
|
+
// HALF_EVEN 6 The IEEE 754 remainder function.
|
|
58060
|
+
// EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.
|
|
58061
|
+
//
|
|
58062
|
+
// Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian
|
|
58063
|
+
// division (9) are commonly used for the modulus operation. The other rounding modes can also
|
|
58064
|
+
// be used, but they may not give useful results.
|
|
58065
|
+
modulo: 1,
|
|
58066
|
+
// 0 to 9
|
|
58067
|
+
// The exponent value at and beneath which `toString` returns exponential notation.
|
|
58068
|
+
// JavaScript numbers: -7
|
|
58069
|
+
toExpNeg: -7,
|
|
58070
|
+
// 0 to -EXP_LIMIT
|
|
58071
|
+
// The exponent value at and above which `toString` returns exponential notation.
|
|
58072
|
+
// JavaScript numbers: 21
|
|
58073
|
+
toExpPos: 21,
|
|
58074
|
+
// 0 to EXP_LIMIT
|
|
58075
|
+
// The minimum exponent value, beneath which underflow to zero occurs.
|
|
58076
|
+
// JavaScript numbers: -324 (5e-324)
|
|
58077
|
+
minE: -EXP_LIMIT,
|
|
58078
|
+
// -1 to -EXP_LIMIT
|
|
58079
|
+
// The maximum exponent value, above which overflow to Infinity occurs.
|
|
58080
|
+
// JavaScript numbers: 308 (1.7976931348623157e+308)
|
|
58081
|
+
maxE: EXP_LIMIT,
|
|
58082
|
+
// 1 to EXP_LIMIT
|
|
58083
|
+
// Whether to use cryptographically-secure random number generation, if available.
|
|
58084
|
+
crypto: false
|
|
58085
|
+
// true/false
|
|
58086
|
+
};
|
|
58087
|
+
var inexact;
|
|
58088
|
+
var quadrant;
|
|
58089
|
+
var external = true;
|
|
58090
|
+
var decimalError = "[DecimalError] ";
|
|
58091
|
+
var invalidArgument = decimalError + "Invalid argument: ";
|
|
58092
|
+
var precisionLimitExceeded = decimalError + "Precision limit exceeded";
|
|
58093
|
+
var cryptoUnavailable = decimalError + "crypto unavailable";
|
|
58094
|
+
var tag = "[object Decimal]";
|
|
58095
|
+
var mathfloor = Math.floor;
|
|
58096
|
+
var mathpow = Math.pow;
|
|
58097
|
+
var isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i;
|
|
58098
|
+
var isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i;
|
|
58099
|
+
var isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i;
|
|
58100
|
+
var isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
|
|
58101
|
+
var BASE = 1e7;
|
|
58102
|
+
var LOG_BASE = 7;
|
|
58103
|
+
var MAX_SAFE_INTEGER = 9007199254740991;
|
|
58104
|
+
var LN10_PRECISION = LN10.length - 1;
|
|
58105
|
+
var PI_PRECISION = PI.length - 1;
|
|
58106
|
+
var P = { toStringTag: tag };
|
|
58107
|
+
P.absoluteValue = P.abs = function() {
|
|
58108
|
+
var x = new this.constructor(this);
|
|
58109
|
+
if (x.s < 0) x.s = 1;
|
|
58110
|
+
return finalise(x);
|
|
58111
|
+
};
|
|
58112
|
+
P.ceil = function() {
|
|
58113
|
+
return finalise(new this.constructor(this), this.e + 1, 2);
|
|
58114
|
+
};
|
|
58115
|
+
P.clampedTo = P.clamp = function(min2, max2) {
|
|
58116
|
+
var k, x = this, Ctor = x.constructor;
|
|
58117
|
+
min2 = new Ctor(min2);
|
|
58118
|
+
max2 = new Ctor(max2);
|
|
58119
|
+
if (!min2.s || !max2.s) return new Ctor(NaN);
|
|
58120
|
+
if (min2.gt(max2)) throw Error(invalidArgument + max2);
|
|
58121
|
+
k = x.cmp(min2);
|
|
58122
|
+
return k < 0 ? min2 : x.cmp(max2) > 0 ? max2 : new Ctor(x);
|
|
58123
|
+
};
|
|
58124
|
+
P.comparedTo = P.cmp = function(y) {
|
|
58125
|
+
var i, j, xdL, ydL, x = this, xd = x.d, yd = (y = new x.constructor(y)).d, xs = x.s, ys = y.s;
|
|
58126
|
+
if (!xd || !yd) {
|
|
58127
|
+
return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;
|
|
58128
|
+
}
|
|
58129
|
+
if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;
|
|
58130
|
+
if (xs !== ys) return xs;
|
|
58131
|
+
if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;
|
|
58132
|
+
xdL = xd.length;
|
|
58133
|
+
ydL = yd.length;
|
|
58134
|
+
for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {
|
|
58135
|
+
if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;
|
|
57617
58136
|
}
|
|
57618
58137
|
return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;
|
|
57619
58138
|
};
|
|
@@ -59321,7 +59840,7 @@ function ceil(x) {
|
|
|
59321
59840
|
function clamp(x, min2, max2) {
|
|
59322
59841
|
return new this(x).clamp(min2, max2);
|
|
59323
59842
|
}
|
|
59324
|
-
function
|
|
59843
|
+
function config3(obj) {
|
|
59325
59844
|
if (!obj || typeof obj !== "object") throw Error(decimalError + "Object expected");
|
|
59326
59845
|
var i, p, v, useDefaults = obj.defaults === true, ps = [
|
|
59327
59846
|
"precision",
|
|
@@ -59475,7 +59994,7 @@ function clone2(obj) {
|
|
|
59475
59994
|
Decimal2.ROUND_HALF_CEIL = 7;
|
|
59476
59995
|
Decimal2.ROUND_HALF_FLOOR = 8;
|
|
59477
59996
|
Decimal2.EUCLID = 9;
|
|
59478
|
-
Decimal2.config = Decimal2.set =
|
|
59997
|
+
Decimal2.config = Decimal2.set = config3;
|
|
59479
59998
|
Decimal2.clone = clone2;
|
|
59480
59999
|
Decimal2.isDecimal = isDecimalInstance;
|
|
59481
60000
|
Decimal2.abs = abs;
|
|
@@ -61639,447 +62158,74 @@ var countriesAndCurrencies = (
|
|
|
61639
62158
|
currencyCode: "VUV",
|
|
61640
62159
|
population: "221552",
|
|
61641
62160
|
capital: "Port Vila",
|
|
61642
|
-
continentName: "Oceania"
|
|
61643
|
-
},
|
|
61644
|
-
{
|
|
61645
|
-
countryCode: "WF",
|
|
61646
|
-
countryName: "Wallis and Futuna",
|
|
61647
|
-
currencyCode: "XPF",
|
|
61648
|
-
population: "16025",
|
|
61649
|
-
capital: "Mata-Utu",
|
|
61650
|
-
continentName: "Oceania"
|
|
61651
|
-
},
|
|
61652
|
-
{
|
|
61653
|
-
countryCode: "WS",
|
|
61654
|
-
countryName: "Samoa",
|
|
61655
|
-
currencyCode: "WST",
|
|
61656
|
-
population: "192001",
|
|
61657
|
-
capital: "Apia",
|
|
61658
|
-
continentName: "Oceania"
|
|
61659
|
-
},
|
|
61660
|
-
{
|
|
61661
|
-
countryCode: "XK",
|
|
61662
|
-
countryName: "Kosovo",
|
|
61663
|
-
currencyCode: "EUR",
|
|
61664
|
-
population: "1800000",
|
|
61665
|
-
capital: "Pristina",
|
|
61666
|
-
continentName: "Europe"
|
|
61667
|
-
},
|
|
61668
|
-
{
|
|
61669
|
-
countryCode: "YE",
|
|
61670
|
-
countryName: "Yemen",
|
|
61671
|
-
currencyCode: "YER",
|
|
61672
|
-
population: "23495361",
|
|
61673
|
-
capital: "Sanaa",
|
|
61674
|
-
continentName: "Asia"
|
|
61675
|
-
},
|
|
61676
|
-
{
|
|
61677
|
-
countryCode: "YT",
|
|
61678
|
-
countryName: "Mayotte",
|
|
61679
|
-
currencyCode: "EUR",
|
|
61680
|
-
population: "159042",
|
|
61681
|
-
capital: "Mamoudzou",
|
|
61682
|
-
continentName: "Africa"
|
|
61683
|
-
},
|
|
61684
|
-
{
|
|
61685
|
-
countryCode: "ZA",
|
|
61686
|
-
countryName: "South Africa",
|
|
61687
|
-
currencyCode: "ZAR",
|
|
61688
|
-
population: "49000000",
|
|
61689
|
-
capital: "Pretoria",
|
|
61690
|
-
continentName: "Africa"
|
|
61691
|
-
},
|
|
61692
|
-
{
|
|
61693
|
-
countryCode: "ZM",
|
|
61694
|
-
countryName: "Zambia",
|
|
61695
|
-
currencyCode: "ZMW",
|
|
61696
|
-
population: "13460305",
|
|
61697
|
-
capital: "Lusaka",
|
|
61698
|
-
continentName: "Africa"
|
|
61699
|
-
},
|
|
61700
|
-
{
|
|
61701
|
-
countryCode: "ZW",
|
|
61702
|
-
countryName: "Zimbabwe",
|
|
61703
|
-
currencyCode: "ZWL",
|
|
61704
|
-
population: "13061000",
|
|
61705
|
-
capital: "Harare",
|
|
61706
|
-
continentName: "Africa"
|
|
61707
|
-
}
|
|
61708
|
-
]
|
|
61709
|
-
);
|
|
61710
|
-
|
|
61711
|
-
// ../hyperline-monitoring/build/context/context.js
|
|
61712
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
61713
|
-
var executionContextStorage = new AsyncLocalStorage();
|
|
61714
|
-
function getExecutionContext() {
|
|
61715
|
-
return executionContextStorage.getStore();
|
|
61716
|
-
}
|
|
61717
|
-
|
|
61718
|
-
// ../hyperline-monitoring/build/context/correlationId.js
|
|
61719
|
-
import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
|
|
61720
|
-
var correlationIdStorage = new AsyncLocalStorage2();
|
|
61721
|
-
function getCorrelationId() {
|
|
61722
|
-
return correlationIdStorage.getStore();
|
|
61723
|
-
}
|
|
61724
|
-
|
|
61725
|
-
// ../hyperline-config/build/index.js
|
|
61726
|
-
import "dotenv/config";
|
|
61727
|
-
import * as stackTraceParser from "stacktrace-parser";
|
|
61728
|
-
function coerceBoolean() {
|
|
61729
|
-
return external_exports.any().refine((value) => ["true", "false"].includes(value), {
|
|
61730
|
-
message: "Expected boolean"
|
|
61731
|
-
}).transform((value) => (
|
|
61732
|
-
// biome-ignore lint/complexity/noUselessTernary: ignore
|
|
61733
|
-
value === "true" ? true : false
|
|
61734
|
-
));
|
|
61735
|
-
}
|
|
61736
|
-
var types = {
|
|
61737
|
-
string: external_exports.coerce.string,
|
|
61738
|
-
number: external_exports.coerce.number,
|
|
61739
|
-
boolean: coerceBoolean,
|
|
61740
|
-
enum: external_exports.enum
|
|
61741
|
-
};
|
|
61742
|
-
function getConfig(schema, testValues) {
|
|
61743
|
-
const validator = external_exports.object(Object.fromEntries(Object.entries(schema).map(([key, zodType]) => {
|
|
61744
|
-
if (zodType instanceof ZodOptional) {
|
|
61745
|
-
return [key, external_exports.string().optional()];
|
|
61746
|
-
}
|
|
61747
|
-
return [key, external_exports.string()];
|
|
61748
|
-
})));
|
|
61749
|
-
const processEnv = process.env;
|
|
61750
|
-
const isTestMode = processEnv.NODE_ENV === "test";
|
|
61751
|
-
const envVariables = {
|
|
61752
|
-
...processEnv,
|
|
61753
|
-
...isTestMode && testValues ? Object.fromEntries(Object.entries(testValues).map(([key, value]) => [key, String(value)])) : {}
|
|
61754
|
-
};
|
|
61755
|
-
const packageName = envVariables.npm_package_name;
|
|
61756
|
-
const parseProcessEnvResult = validator.safeParse(envVariables);
|
|
61757
|
-
if (!parseProcessEnvResult.success) {
|
|
61758
|
-
const parsedStackTrace = stackTraceParser.parse(parseProcessEnvResult.error.stack ?? "");
|
|
61759
|
-
const getConfigCallLine = parsedStackTrace.find((line) => {
|
|
61760
|
-
return !line.file?.includes("hyperline-config") && (line.file?.includes("apps/") || line.file?.includes("core/") || line.file?.includes("packages/"));
|
|
61761
|
-
});
|
|
61762
|
-
const callerFile = getConfigCallLine?.file;
|
|
61763
|
-
console.error(`Invalid environment variables for service \`${packageName}\`: \`${callerFile}\``);
|
|
61764
|
-
console.error(parseProcessEnvResult.error.format());
|
|
61765
|
-
process.exit(1);
|
|
61766
|
-
}
|
|
61767
|
-
const coercion = external_exports.object(schema);
|
|
61768
|
-
return coercion.parse(parseProcessEnvResult.data);
|
|
61769
|
-
}
|
|
61770
|
-
|
|
61771
|
-
// ../hyperline-monitoring/build/config.js
|
|
61772
|
-
var config3 = getConfig({
|
|
61773
|
-
// config
|
|
61774
|
-
APP_VERSION: types.string().optional(),
|
|
61775
|
-
DD_SERVICE: types.string().optional(),
|
|
61776
|
-
LOGGER_CONSOLE_ENABLED: types.boolean().optional(),
|
|
61777
|
-
LOGGER_STDOUT_ENABLED: types.boolean().optional(),
|
|
61778
|
-
NODE_ENV: types.enum(["local", "test", "staging", "sandbox", "production"]),
|
|
61779
|
-
EVENT_LOOP_MONITORING_ENABLED: types.boolean().optional(),
|
|
61780
|
-
MEMORY_MONITORING_ENABLED: types.boolean().optional(),
|
|
61781
|
-
MEMORY_MONITORING_INTERVAL_MS: types.number().optional()
|
|
61782
|
-
// secrets
|
|
61783
|
-
}, {
|
|
61784
|
-
APP_VERSION: void 0,
|
|
61785
|
-
DD_SERVICE: void 0,
|
|
61786
|
-
LOGGER_CONSOLE_ENABLED: false,
|
|
61787
|
-
LOGGER_STDOUT_ENABLED: false,
|
|
61788
|
-
EVENT_LOOP_MONITORING_ENABLED: false,
|
|
61789
|
-
MEMORY_MONITORING_ENABLED: false,
|
|
61790
|
-
MEMORY_MONITORING_INTERVAL_MS: 3e4,
|
|
61791
|
-
NODE_ENV: "test"
|
|
61792
|
-
});
|
|
61793
|
-
|
|
61794
|
-
// ../hyperline-monitoring/build/logger/logger.js
|
|
61795
|
-
import * as util from "node:util";
|
|
61796
|
-
import prune2 from "json-prune";
|
|
61797
|
-
import * as winston from "winston";
|
|
61798
|
-
|
|
61799
|
-
// ../hyperline-monitoring/build/logger/formatting/format.js
|
|
61800
|
-
import prune from "json-prune";
|
|
61801
|
-
var REDACTED_HEADER_KEY_PATTERN = /authorization|authenticate|cookie|secret|token|credential|signature|jwt|api[_-]?key|access[_-]?token|refresh[_-]?token|private[_-]?key/i;
|
|
61802
|
-
function jsonFormat(info) {
|
|
61803
|
-
const prunedInfo = JSON.parse(prune(info));
|
|
61804
|
-
for (const [key, value] of Object.entries(prunedInfo)) {
|
|
61805
|
-
info[key] = value;
|
|
61806
|
-
}
|
|
61807
|
-
return info;
|
|
61808
|
-
}
|
|
61809
|
-
function addMetadata({ getCorrelationId: getCorrelationId2, getExecutionContext: getExecutionContext2 }) {
|
|
61810
|
-
return (info) => {
|
|
61811
|
-
const correlationId = getCorrelationId2();
|
|
61812
|
-
const executionContext = getExecutionContext2();
|
|
61813
|
-
let traceContext;
|
|
61814
|
-
return {
|
|
61815
|
-
...info,
|
|
61816
|
-
...executionContext ?? {},
|
|
61817
|
-
...traceContext ?? {},
|
|
61818
|
-
correlationId
|
|
61819
|
-
};
|
|
61820
|
-
};
|
|
61821
|
-
}
|
|
61822
|
-
function transformErrorEnrich(info, { depth }) {
|
|
61823
|
-
if (depth <= 0) {
|
|
61824
|
-
return info;
|
|
61825
|
-
}
|
|
61826
|
-
Object.entries(info).forEach(([key, value]) => {
|
|
61827
|
-
let newValue = value;
|
|
61828
|
-
if (newValue instanceof Error) {
|
|
61829
|
-
newValue = {
|
|
61830
|
-
...newValue,
|
|
61831
|
-
// Copy error properties manually because they're not enumerable
|
|
61832
|
-
level: newValue.level,
|
|
61833
|
-
stack: newValue.stack,
|
|
61834
|
-
message: newValue.message,
|
|
61835
|
-
name: newValue.name
|
|
61836
|
-
};
|
|
61837
|
-
}
|
|
61838
|
-
if (newValue instanceof Object) {
|
|
61839
|
-
newValue = transformErrorEnrich(newValue, { depth: depth - 1 });
|
|
61840
|
-
}
|
|
61841
|
-
const isPropertyWritable = Object.getOwnPropertyDescriptor(info, key)?.writable ?? true;
|
|
61842
|
-
if (isPropertyWritable && newValue !== value) {
|
|
61843
|
-
info[key] = newValue;
|
|
61844
|
-
}
|
|
61845
|
-
});
|
|
61846
|
-
return info;
|
|
61847
|
-
}
|
|
61848
|
-
function transformPrune(info) {
|
|
61849
|
-
Object.entries(info).forEach(([key, value]) => {
|
|
61850
|
-
if (typeof value === "function") {
|
|
61851
|
-
return;
|
|
61852
|
-
}
|
|
61853
|
-
const newValue = value instanceof Object ? JSON.parse(prune(value, { depthDecr: 6 })) : value;
|
|
61854
|
-
const isPropertyWritable = Object.getOwnPropertyDescriptor(info, key)?.writable ?? true;
|
|
61855
|
-
if (isPropertyWritable && newValue !== value) {
|
|
61856
|
-
info[key] = newValue;
|
|
61857
|
-
}
|
|
61858
|
-
});
|
|
61859
|
-
return info;
|
|
61860
|
-
}
|
|
61861
|
-
function transformAxiosError(info) {
|
|
61862
|
-
Object.entries(info).forEach(([key, value]) => {
|
|
61863
|
-
if (typeof value === "object" && value?.name === "AxiosError") {
|
|
61864
|
-
info[key] = formatAxiosError(value);
|
|
61865
|
-
}
|
|
61866
|
-
});
|
|
61867
|
-
return info;
|
|
61868
|
-
}
|
|
61869
|
-
function formatAxiosError(error48) {
|
|
61870
|
-
if (!isRecord(error48) || error48.name !== "AxiosError") {
|
|
61871
|
-
return error48;
|
|
61872
|
-
}
|
|
61873
|
-
const request = isRecord(error48.config) ? error48.config : void 0;
|
|
61874
|
-
const response = isRecord(error48.response) ? error48.response : void 0;
|
|
61875
|
-
return {
|
|
61876
|
-
name: error48.name,
|
|
61877
|
-
message: error48.message,
|
|
61878
|
-
code: error48.code,
|
|
61879
|
-
request: {
|
|
61880
|
-
method: request?.method,
|
|
61881
|
-
url: request?.url,
|
|
61882
|
-
baseURL: request?.baseURL,
|
|
61883
|
-
params: request?.params,
|
|
61884
|
-
headers: redactHeaders({ headers: request?.headers }),
|
|
61885
|
-
"axios-retry": request?.["axios-retry"]
|
|
62161
|
+
continentName: "Oceania"
|
|
61886
62162
|
},
|
|
61887
|
-
|
|
61888
|
-
|
|
61889
|
-
|
|
61890
|
-
|
|
61891
|
-
|
|
61892
|
-
|
|
61893
|
-
|
|
61894
|
-
}
|
|
61895
|
-
|
|
61896
|
-
|
|
61897
|
-
|
|
61898
|
-
|
|
61899
|
-
|
|
61900
|
-
|
|
61901
|
-
|
|
61902
|
-
|
|
61903
|
-
|
|
61904
|
-
|
|
61905
|
-
|
|
61906
|
-
|
|
61907
|
-
|
|
61908
|
-
|
|
61909
|
-
|
|
61910
|
-
|
|
61911
|
-
|
|
61912
|
-
|
|
61913
|
-
|
|
61914
|
-
|
|
61915
|
-
|
|
61916
|
-
|
|
61917
|
-
|
|
61918
|
-
|
|
61919
|
-
|
|
61920
|
-
|
|
61921
|
-
|
|
61922
|
-
|
|
61923
|
-
|
|
61924
|
-
|
|
61925
|
-
|
|
61926
|
-
|
|
61927
|
-
|
|
61928
|
-
|
|
61929
|
-
|
|
61930
|
-
|
|
61931
|
-
|
|
61932
|
-
|
|
61933
|
-
|
|
61934
|
-
|
|
61935
|
-
|
|
61936
|
-
|
|
61937
|
-
|
|
61938
|
-
|
|
61939
|
-
|
|
61940
|
-
|
|
61941
|
-
|
|
61942
|
-
|
|
61943
|
-
|
|
61944
|
-
|
|
61945
|
-
|
|
61946
|
-
|
|
61947
|
-
|
|
61948
|
-
|
|
61949
|
-
|
|
61950
|
-
metadata.requestBody = request.body;
|
|
61951
|
-
metadata.routePath = transformUrlIntoRoutePath(request);
|
|
61952
|
-
metadata.apiKeyEnd = request.headers["authorization"]?.slice(-6);
|
|
61953
|
-
return { message, metadata };
|
|
61954
|
-
}
|
|
61955
|
-
function getReadableTime(time3) {
|
|
61956
|
-
return time3 < 1e4 ? `${time3}ms` : `${Math.round(time3 / 1e3)}s`;
|
|
61957
|
-
}
|
|
61958
|
-
|
|
61959
|
-
// ../hyperline-monitoring/build/logger/utils/network.js
|
|
61960
|
-
import * as os2 from "node:os";
|
|
61961
|
-
function getIpAddress() {
|
|
61962
|
-
const interfaces = Object.values(os2.networkInterfaces()).flat().filter((networkInterface) => {
|
|
61963
|
-
return networkInterface !== void 0;
|
|
61964
|
-
});
|
|
61965
|
-
const mainInterface = interfaces.find(({ family, internal }) => family === "IPv4" && internal === false);
|
|
61966
|
-
return mainInterface ? mainInterface.address : null;
|
|
61967
|
-
}
|
|
61968
|
-
|
|
61969
|
-
// ../hyperline-monitoring/build/logger/logger.js
|
|
61970
|
-
function buildLoggerFactory({ config: config4, context }) {
|
|
61971
|
-
const defaultMeta = {
|
|
61972
|
-
env: context.env,
|
|
61973
|
-
service: context.service,
|
|
61974
|
-
version: context.version,
|
|
61975
|
-
pid: process.pid,
|
|
61976
|
-
ppid: process.ppid,
|
|
61977
|
-
host: getIpAddress()
|
|
61978
|
-
};
|
|
61979
|
-
const transports2 = [];
|
|
61980
|
-
if (config4.enableConsoleTransport) {
|
|
61981
|
-
transports2.push(createTransportConsole());
|
|
61982
|
-
}
|
|
61983
|
-
if (config4.enableStdoutTransport) {
|
|
61984
|
-
transports2.push(createTransportStdout());
|
|
61985
|
-
}
|
|
61986
|
-
if (Object.values(config4).every((value) => !value)) {
|
|
61987
|
-
transports2.push(createTransportSilent());
|
|
61988
|
-
}
|
|
61989
|
-
for (const transport of transports2) {
|
|
61990
|
-
transport.on("error", (error48) => {
|
|
61991
|
-
console.error(`Unable to log to transport=${transport.name}: ${error48.message} ${JSON.stringify(error48)}`);
|
|
61992
|
-
});
|
|
61993
|
-
}
|
|
61994
|
-
const internalLogger = winston.createLogger({
|
|
61995
|
-
transports: transports2,
|
|
61996
|
-
defaultMeta,
|
|
61997
|
-
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()),
|
|
61998
|
-
exitOnError: false
|
|
61999
|
-
});
|
|
62000
|
-
function createLogger3({ serviceName }) {
|
|
62001
|
-
const logger2 = internalLogger.child({ subService: serviceName });
|
|
62002
|
-
return {
|
|
62003
|
-
debug: bindLogger(logger2, "debug"),
|
|
62004
|
-
info: bindLogger(logger2, "info"),
|
|
62005
|
-
warn: bindLogger(logger2, "warn"),
|
|
62006
|
-
error: bindLogger(logger2, "error"),
|
|
62007
|
-
on: logger2.on.bind(logger2),
|
|
62008
|
-
end: logger2.end.bind(logger2)
|
|
62009
|
-
};
|
|
62010
|
-
}
|
|
62011
|
-
return {
|
|
62012
|
-
createLogger: createLogger3
|
|
62013
|
-
};
|
|
62014
|
-
}
|
|
62015
|
-
function bindLogger(logger2, severity) {
|
|
62016
|
-
return (message, data) => {
|
|
62017
|
-
logger2[severity].bind(logger2)(message, preserveReservedKeys(data));
|
|
62018
|
-
};
|
|
62019
|
-
}
|
|
62020
|
-
function preserveReservedKeys(data) {
|
|
62021
|
-
if (!data)
|
|
62022
|
-
return;
|
|
62023
|
-
return Object.fromEntries(Object.entries(data).map(([key, value]) => {
|
|
62024
|
-
let finalKey = key;
|
|
62025
|
-
if (key === "status") {
|
|
62026
|
-
finalKey = "_status";
|
|
62027
|
-
} else if (key === "service") {
|
|
62028
|
-
finalKey = "_service";
|
|
62163
|
+
{
|
|
62164
|
+
countryCode: "WF",
|
|
62165
|
+
countryName: "Wallis and Futuna",
|
|
62166
|
+
currencyCode: "XPF",
|
|
62167
|
+
population: "16025",
|
|
62168
|
+
capital: "Mata-Utu",
|
|
62169
|
+
continentName: "Oceania"
|
|
62170
|
+
},
|
|
62171
|
+
{
|
|
62172
|
+
countryCode: "WS",
|
|
62173
|
+
countryName: "Samoa",
|
|
62174
|
+
currencyCode: "WST",
|
|
62175
|
+
population: "192001",
|
|
62176
|
+
capital: "Apia",
|
|
62177
|
+
continentName: "Oceania"
|
|
62178
|
+
},
|
|
62179
|
+
{
|
|
62180
|
+
countryCode: "XK",
|
|
62181
|
+
countryName: "Kosovo",
|
|
62182
|
+
currencyCode: "EUR",
|
|
62183
|
+
population: "1800000",
|
|
62184
|
+
capital: "Pristina",
|
|
62185
|
+
continentName: "Europe"
|
|
62186
|
+
},
|
|
62187
|
+
{
|
|
62188
|
+
countryCode: "YE",
|
|
62189
|
+
countryName: "Yemen",
|
|
62190
|
+
currencyCode: "YER",
|
|
62191
|
+
population: "23495361",
|
|
62192
|
+
capital: "Sanaa",
|
|
62193
|
+
continentName: "Asia"
|
|
62194
|
+
},
|
|
62195
|
+
{
|
|
62196
|
+
countryCode: "YT",
|
|
62197
|
+
countryName: "Mayotte",
|
|
62198
|
+
currencyCode: "EUR",
|
|
62199
|
+
population: "159042",
|
|
62200
|
+
capital: "Mamoudzou",
|
|
62201
|
+
continentName: "Africa"
|
|
62202
|
+
},
|
|
62203
|
+
{
|
|
62204
|
+
countryCode: "ZA",
|
|
62205
|
+
countryName: "South Africa",
|
|
62206
|
+
currencyCode: "ZAR",
|
|
62207
|
+
population: "49000000",
|
|
62208
|
+
capital: "Pretoria",
|
|
62209
|
+
continentName: "Africa"
|
|
62210
|
+
},
|
|
62211
|
+
{
|
|
62212
|
+
countryCode: "ZM",
|
|
62213
|
+
countryName: "Zambia",
|
|
62214
|
+
currencyCode: "ZMW",
|
|
62215
|
+
population: "13460305",
|
|
62216
|
+
capital: "Lusaka",
|
|
62217
|
+
continentName: "Africa"
|
|
62218
|
+
},
|
|
62219
|
+
{
|
|
62220
|
+
countryCode: "ZW",
|
|
62221
|
+
countryName: "Zimbabwe",
|
|
62222
|
+
currencyCode: "ZWL",
|
|
62223
|
+
population: "13061000",
|
|
62224
|
+
capital: "Harare",
|
|
62225
|
+
continentName: "Africa"
|
|
62029
62226
|
}
|
|
62030
|
-
|
|
62031
|
-
|
|
62032
|
-
}
|
|
62033
|
-
var verboseLevels = ["warn", "error", "debug"];
|
|
62034
|
-
function createTransportConsole() {
|
|
62035
|
-
return new winston.transports.Console({
|
|
62036
|
-
level: "debug",
|
|
62037
|
-
handleExceptions: true,
|
|
62038
|
-
format: winston.format.combine(winston.format(jsonFormat)(), winston.format((info) => {
|
|
62039
|
-
const { level, message, ...others } = info;
|
|
62040
|
-
const parts = [message];
|
|
62041
|
-
if (Object.keys(others).length > 0 && verboseLevels.includes(level)) {
|
|
62042
|
-
const rawOthers = JSON.parse(prune2(others));
|
|
62043
|
-
parts.push(util.inspect(rawOthers, false, 4, true));
|
|
62044
|
-
}
|
|
62045
|
-
info.message = parts.filter((part) => !!part).join("\n");
|
|
62046
|
-
return info;
|
|
62047
|
-
})(), winston.format.colorize(), winston.format.printf(({ timestamp, level, message, service = "?" }) => {
|
|
62048
|
-
const result = `[${timestamp}] ${level} ${service}: ${message}`;
|
|
62049
|
-
return result.replace(/\\n/g, "\n");
|
|
62050
|
-
}))
|
|
62051
|
-
});
|
|
62052
|
-
}
|
|
62053
|
-
function createTransportStdout() {
|
|
62054
|
-
return new winston.transports.Console({
|
|
62055
|
-
level: "debug",
|
|
62056
|
-
handleExceptions: true,
|
|
62057
|
-
format: winston.format.combine(winston.format(jsonFormat)(), winston.format.timestamp(), winston.format.json())
|
|
62058
|
-
});
|
|
62059
|
-
}
|
|
62060
|
-
function createTransportSilent() {
|
|
62061
|
-
return new winston.transports.Console({
|
|
62062
|
-
silent: true
|
|
62063
|
-
});
|
|
62064
|
-
}
|
|
62065
|
-
|
|
62066
|
-
// ../hyperline-monitoring/build/logger/instance.js
|
|
62067
|
-
var loggerFactory = buildLoggerFactory({
|
|
62068
|
-
config: {
|
|
62069
|
-
enableConsoleTransport: config3.LOGGER_CONSOLE_ENABLED ?? false,
|
|
62070
|
-
enableStdoutTransport: config3.LOGGER_STDOUT_ENABLED ?? false
|
|
62071
|
-
},
|
|
62072
|
-
context: {
|
|
62073
|
-
env: config3.NODE_ENV,
|
|
62074
|
-
service: config3.DD_SERVICE ?? "api",
|
|
62075
|
-
version: config3.APP_VERSION
|
|
62076
|
-
}
|
|
62077
|
-
});
|
|
62078
|
-
var createLogger2 = loggerFactory.createLogger;
|
|
62079
|
-
var logger = loggerFactory.createLogger({ serviceName: "default" });
|
|
62080
|
-
|
|
62081
|
-
// ../hyperline-monitoring/build/tracing/tracing.js
|
|
62082
|
-
import tracer from "dd-trace";
|
|
62227
|
+
]
|
|
62228
|
+
);
|
|
62083
62229
|
|
|
62084
62230
|
// ../hyperline-lib/build/utils/config/usStates.js
|
|
62085
62231
|
var usStates = [
|
|
@@ -62211,6 +62357,12 @@ var DateTimeSchema = external_exports.iso.datetime({
|
|
|
62211
62357
|
example: "2024-12-20T16:04:11Z"
|
|
62212
62358
|
});
|
|
62213
62359
|
|
|
62360
|
+
// ../hyperline-lib/build/http/dto/domain.js
|
|
62361
|
+
var DomainSchema = external_exports.string().trim().toLowerCase().regex(/^(?!:\/\/)(?=.{1,253}$)(?!-)([a-z0-9-]{1,63}\.)+[a-z]{2,63}$/, "Invalid domain").openapi({
|
|
62362
|
+
description: "Domain name.",
|
|
62363
|
+
example: "acme.com"
|
|
62364
|
+
});
|
|
62365
|
+
|
|
62214
62366
|
// ../hyperline-lib/build/http/dto/error.js
|
|
62215
62367
|
var ErrorSchema = external_exports.object({
|
|
62216
62368
|
message: external_exports.string()
|
|
@@ -62267,6 +62419,7 @@ var de = {
|
|
|
62267
62419
|
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62268
62420
|
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
62269
62421
|
"accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
|
|
62422
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Gutschrift {{creditNoteId}}",
|
|
62270
62423
|
"accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62271
62424
|
"accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62272
62425
|
"accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
@@ -62338,6 +62491,7 @@ var en = {
|
|
|
62338
62491
|
"accounting.transactionSettled.entryDescription": "Payment settlement for Invoice {{invoiceId}}",
|
|
62339
62492
|
"accounting.transactionRefunded.entryDescription": "Refund for Invoice {{invoiceId}}",
|
|
62340
62493
|
"accounting.creditNotePosted.entryDescription": "Credit note {{creditNoteId}} for Invoice {{invoiceId}}",
|
|
62494
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Credit note {{creditNoteId}}",
|
|
62341
62495
|
"accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
|
|
62342
62496
|
"accounting.revrec.debitLineDescription": "Decrease deferred revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
|
|
62343
62497
|
"accounting.revrec.creditLineDescription": "Recognize revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
|
|
@@ -62355,6 +62509,7 @@ var es = {
|
|
|
62355
62509
|
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62356
62510
|
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
62357
62511
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
|
|
62512
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
62358
62513
|
"accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62359
62514
|
"accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62360
62515
|
"accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
@@ -62404,6 +62559,7 @@ var fr = {
|
|
|
62404
62559
|
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62405
62560
|
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
62406
62561
|
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
62562
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
62407
62563
|
"accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
|
|
62408
62564
|
"creditNotes.refundChargeName": "Remboursement pour facture",
|
|
62409
62565
|
"credits.bundleOf": "{{productName}} - Pack de {{creditCount}} cr\xE9dits",
|
|
@@ -62443,6 +62599,7 @@ var it = {
|
|
|
62443
62599
|
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
62444
62600
|
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
62445
62601
|
"accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
|
|
62602
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota di credito {{creditNoteId}}",
|
|
62446
62603
|
"accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62447
62604
|
"accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62448
62605
|
"accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
@@ -62487,6 +62644,7 @@ var nl = {
|
|
|
62487
62644
|
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
62488
62645
|
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
62489
62646
|
"accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
|
|
62647
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Creditnota {{creditNoteId}}",
|
|
62490
62648
|
"accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
62491
62649
|
"accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
62492
62650
|
"accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
@@ -62531,6 +62689,7 @@ var pl = {
|
|
|
62531
62689
|
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
62532
62690
|
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
62533
62691
|
"accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
|
|
62692
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}}",
|
|
62534
62693
|
"accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
62535
62694
|
"accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
62536
62695
|
"accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
@@ -62575,6 +62734,7 @@ var pt = {
|
|
|
62575
62734
|
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
62576
62735
|
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
62577
62736
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
|
|
62737
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
62578
62738
|
"accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62579
62739
|
"accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62580
62740
|
"accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
@@ -62715,10 +62875,16 @@ function buildHttpClient(dependencies) {
|
|
|
62715
62875
|
return response;
|
|
62716
62876
|
}, (error48) => {
|
|
62717
62877
|
if (error48.response) {
|
|
62718
|
-
const { config: responseConfig, status } = error48.response;
|
|
62878
|
+
const { config: responseConfig, status, headers } = error48.response;
|
|
62719
62879
|
const timeStart = responseConfig.metadata.timeStart;
|
|
62720
62880
|
const responseTime = timeStart ? Date.now() - timeStart : void 0;
|
|
62721
|
-
logHttpResponse(logger2, {
|
|
62881
|
+
logHttpResponse(logger2, {
|
|
62882
|
+
request: toLogRequest(responseConfig),
|
|
62883
|
+
statusCode: status,
|
|
62884
|
+
// Surfaces upstream response headers on error responses (e.g. the
|
|
62885
|
+
// rate-limit headers on a 429); redacted in logHttpResponse.
|
|
62886
|
+
responseHeaders: headers
|
|
62887
|
+
}, responseTime, { metadata: { error: error48.message } });
|
|
62722
62888
|
}
|
|
62723
62889
|
return Promise.reject(error48);
|
|
62724
62890
|
});
|