@alwaysmeticulous/client 2.289.1 → 2.290.0
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/__tests__/client.spec.d.ts +1 -0
- package/dist/__tests__/client.spec.js +50 -0
- package/dist/__tests__/client.spec.js.map +1 -0
- package/dist/api/test-run.api.d.ts +1 -20
- package/dist/api/test-run.api.js +3 -21
- package/dist/api/test-run.api.js.map +1 -1
- package/dist/client.d.ts +7 -0
- package/dist/client.js +27 -11
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6e1df301-c074-5775-a858-f6882a8f2767")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const vitest_1 = require("vitest");
|
|
6
|
+
const client_1 = require("../client");
|
|
7
|
+
const version_1 = require("../version");
|
|
8
|
+
const ENV_VAR = "METICULOUS_CLIENT_USER_AGENT_SUFFIX";
|
|
9
|
+
const BASE = `@alwaysmeticulous/client/${version_1.VERSION}`;
|
|
10
|
+
(0, vitest_1.describe)("buildUserAgent", () => {
|
|
11
|
+
let originalSuffix;
|
|
12
|
+
(0, vitest_1.beforeEach)(() => {
|
|
13
|
+
originalSuffix = process.env[ENV_VAR];
|
|
14
|
+
delete process.env[ENV_VAR];
|
|
15
|
+
});
|
|
16
|
+
(0, vitest_1.afterEach)(() => {
|
|
17
|
+
if (originalSuffix === undefined) {
|
|
18
|
+
delete process.env[ENV_VAR];
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
process.env[ENV_VAR] = originalSuffix;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)("returns the base user-agent when nothing is provided", () => {
|
|
25
|
+
(0, vitest_1.expect)((0, client_1.buildUserAgent)()).toBe(BASE);
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.it)("appends the appInfo option", () => {
|
|
28
|
+
(0, vitest_1.expect)((0, client_1.buildUserAgent)("report-diffs-action/cloud-compute@v1")).toBe(`${BASE} report-diffs-action/cloud-compute@v1`);
|
|
29
|
+
});
|
|
30
|
+
(0, vitest_1.it)("appends the env var suffix when no appInfo is given", () => {
|
|
31
|
+
process.env[ENV_VAR] = "report-diffs-action@abc123";
|
|
32
|
+
(0, vitest_1.expect)((0, client_1.buildUserAgent)()).toBe(`${BASE} report-diffs-action@abc123`);
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.it)("prefers the appInfo option over the env var", () => {
|
|
35
|
+
process.env[ENV_VAR] = "from-env";
|
|
36
|
+
(0, vitest_1.expect)((0, client_1.buildUserAgent)("from-option")).toBe(`${BASE} from-option`);
|
|
37
|
+
});
|
|
38
|
+
(0, vitest_1.it)("falls back to the env var when appInfo is empty or whitespace", () => {
|
|
39
|
+
process.env[ENV_VAR] = "from-env";
|
|
40
|
+
(0, vitest_1.expect)((0, client_1.buildUserAgent)("")).toBe(`${BASE} from-env`);
|
|
41
|
+
(0, vitest_1.expect)((0, client_1.buildUserAgent)(" ")).toBe(`${BASE} from-env`);
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.it)("trims the suffix and ignores whitespace-only values", () => {
|
|
44
|
+
(0, vitest_1.expect)((0, client_1.buildUserAgent)(" report-diffs-action@v1 ")).toBe(`${BASE} report-diffs-action@v1`);
|
|
45
|
+
process.env[ENV_VAR] = " ";
|
|
46
|
+
(0, vitest_1.expect)((0, client_1.buildUserAgent)()).toBe(BASE);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=client.spec.js.map
|
|
50
|
+
//# debugId=6e1df301-c074-5775-a858-f6882a8f2767
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.spec.js","sources":["../../src/__tests__/client.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,mCAAqE;AACrE,sCAA2C;AAC3C,wCAAqC;AAErC,MAAM,OAAO,GAAG,qCAAqC,CAAC;AACtD,MAAM,IAAI,GAAG,4BAA4B,iBAAO,EAAE,CAAC;AAEnD,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,cAAkC,CAAC;IAEvC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,IAAA,eAAM,EAAC,IAAA,uBAAc,GAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,IAAA,eAAM,EAAC,IAAA,uBAAc,EAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CACjE,GAAG,IAAI,uCAAuC,CAC/C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,4BAA4B,CAAC;QACpD,IAAA,eAAM,EAAC,IAAA,uBAAc,GAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;QAClC,IAAA,eAAM,EAAC,IAAA,uBAAc,EAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;QAClC,IAAA,eAAM,EAAC,IAAA,uBAAc,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,IAAA,eAAM,EAAC,IAAA,uBAAc,EAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CACvD,GAAG,IAAI,yBAAyB,CACjC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC7B,IAAA,eAAM,EAAC,IAAA,uBAAc,GAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","debugId":"6e1df301-c074-5775-a858-f6882a8f2767"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExecuteSecureTunnelTestRunOptions as ExecuteSecureTunnelTestRunPayload, ExecuteSecureTunnelTestRunResponse,
|
|
1
|
+
import type { ExecuteSecureTunnelTestRunOptions as ExecuteSecureTunnelTestRunPayload, ExecuteSecureTunnelTestRunResponse, TestRun, TestRunDataLocations } from "@alwaysmeticulous/api";
|
|
2
2
|
import { MeticulousClient } from "../types/client.types";
|
|
3
3
|
import { ReplayDiffResponse } from "./replay-diff.api";
|
|
4
4
|
export type ExecuteSecureTunnelTestRunOptions = ExecuteSecureTunnelTestRunPayload & {
|
|
@@ -31,22 +31,3 @@ export declare const emitTelemetry: ({ client, values, commitSha, }: {
|
|
|
31
31
|
values: Record<string, number>;
|
|
32
32
|
commitSha?: string;
|
|
33
33
|
}) => Promise<void>;
|
|
34
|
-
export interface GetSnapshotsFromTestRunOptions {
|
|
35
|
-
client: MeticulousClient;
|
|
36
|
-
testRunId: string;
|
|
37
|
-
/** The custom check snapshot types to fetch, e.g. ["network-requests"]. */
|
|
38
|
-
snapshotTypes: string[];
|
|
39
|
-
}
|
|
40
|
-
export interface SnapshotsFromTestRun {
|
|
41
|
-
testRunId: string;
|
|
42
|
-
/** The base test run the snapshots were compared against. */
|
|
43
|
-
baseTestRunId: string;
|
|
44
|
-
baseSnapshots: Snapshot[];
|
|
45
|
-
headSnapshots: Snapshot[];
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Fetches the custom check snapshots gathered during the base and head replays
|
|
49
|
-
* of a test run, ready to be passed to a custom check's `execute`. Throws if the
|
|
50
|
-
* test run has no resolvable base test run.
|
|
51
|
-
*/
|
|
52
|
-
export declare const getSnapshotsFromTestRun: ({ client, testRunId, snapshotTypes, }: GetSnapshotsFromTestRunOptions) => Promise<SnapshotsFromTestRun>;
|
package/dist/api/test-run.api.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="30d10e42-1202-587d-b0ea-93c28dea114c")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
5
|
+
exports.emitTelemetry = exports.getTestRunReplayDiffs = exports.getLatestTestRunResults = exports.getTestRunData = exports.getTestRun = exports.executeSecureTunnelTestRun = void 0;
|
|
6
6
|
const errors_1 = require("../errors");
|
|
7
7
|
const executeSecureTunnelTestRun = async ({ client, headSha, tunnelUrl, basicAuthUser, basicAuthPassword, environment, isLockable, companionAssetsInfo, pullRequestHostingProviderId, postComment, debugContext, }) => {
|
|
8
8
|
const { data } = await client
|
|
@@ -83,23 +83,5 @@ const emitTelemetry = async ({ client, values, commitSha, }) => {
|
|
|
83
83
|
await client.post(`test-runs/telemetry`, { values, commitSha });
|
|
84
84
|
};
|
|
85
85
|
exports.emitTelemetry = emitTelemetry;
|
|
86
|
-
/**
|
|
87
|
-
* Fetches the custom check snapshots gathered during the base and head replays
|
|
88
|
-
* of a test run, ready to be passed to a custom check's `execute`. Throws if the
|
|
89
|
-
* test run has no resolvable base test run.
|
|
90
|
-
*/
|
|
91
|
-
const getSnapshotsFromTestRun = async ({ client, testRunId, snapshotTypes, }) => {
|
|
92
|
-
const params = new URLSearchParams();
|
|
93
|
-
for (const snapshotType of snapshotTypes) {
|
|
94
|
-
params.append("snapshotTypes", snapshotType);
|
|
95
|
-
}
|
|
96
|
-
const { data } = await client
|
|
97
|
-
.get(`test-runs/${testRunId}/custom-check-snapshots?${params.toString()}`)
|
|
98
|
-
.catch((error) => {
|
|
99
|
-
throw (0, errors_1.maybeEnrichFetchError)(error);
|
|
100
|
-
});
|
|
101
|
-
return data;
|
|
102
|
-
};
|
|
103
|
-
exports.getSnapshotsFromTestRun = getSnapshotsFromTestRun;
|
|
104
86
|
//# sourceMappingURL=test-run.api.js.map
|
|
105
|
-
//# debugId=
|
|
87
|
+
//# debugId=30d10e42-1202-587d-b0ea-93c28dea114c
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-run.api.js","sources":["../../src/api/test-run.api.ts"],"sourceRoot":"","names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"test-run.api.js","sources":["../../src/api/test-run.api.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAMA,sCAAgE;AAWzD,MAAM,0BAA0B,GAAG,KAAK,EAAE,EAC/C,MAAM,EACN,OAAO,EACP,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,4BAA4B,EAC5B,WAAW,EACX,YAAY,GACsB,EAA+C,EAAE;IACnF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM;SAC1B,IAAI,CAAC,6CAA6C,EAAE;QACnD,OAAO;QACP,SAAS;QACT,aAAa;QACb,iBAAiB;QACjB,WAAW;QACX,UAAU;QACV,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,IAAA,8BAAqB,EAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACL,OAAO,IAA0C,CAAC;AACpD,CAAC,CAAC;AA9BW,QAAA,0BAA0B,8BA8BrC;AAEK,MAAM,UAAU,GAGE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,aAAa,SAAS,EAAE,CACzB,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AARW,QAAA,UAAU,cAQrB;AAEK,MAAM,cAAc,GAIW,KAAK,EAAE,EAC3C,MAAM,EACN,SAAS,EACT,uBAAuB,GACxB,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,uBAAuB;QACpC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE;QAC/C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,aAAa,SAAS,OAAO,EAC7B,MAAM,CACP,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AASK,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAC5C,MAAM,EACN,SAAS,EACT,yBAAyB,EACzB,gCAAgC,GACR,EAA2B,EAAE;IACrD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM;SAC1B,GAAG,CAAC,iBAAiB,EAAE;QACtB,MAAM,EAAE;YACN,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC;YACxC,GAAG,CAAC,yBAAyB;gBAC3B,CAAC,CAAC;oBACE,yBAAyB,EAAE,kBAAkB,CAC3C,yBAAyB,CAC1B;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,gCAAgC;gBAClC,CAAC,CAAC,EAAE,gCAAgC,EAAE,IAAI,EAAE;gBAC5C,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACL,OAAQ,IAAuB,IAAI,IAAI,CAAC;AAC1C,CAAC,CAAC;AA7BW,QAAA,uBAAuB,2BA6BlC;AAEK,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,MAAM,EACN,SAAS,GAIV,EAAiC,EAAE;IAClC,MAAM,UAAU,GAAG,GAAG,CAAC;IACvB,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,aAAa,SAAS,uBAAuB,UAAU,WAAW,MAAM,EAAE,CAC3E,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YAC7B,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,UAAU,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAzBW,QAAA,qBAAqB,yBAyBhC;AAEK,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,MAAM,EACN,MAAM,EACN,SAAS,GAKV,EAAiB,EAAE;IAClB,MAAM,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AAVW,QAAA,aAAa,iBAUxB","debugId":"30d10e42-1202-587d-b0ea-93c28dea114c"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import log from "loglevel";
|
|
2
2
|
import type { RequestInit } from "undici";
|
|
3
3
|
import { MeticulousClient, RequestConfig, Response } from "./types/client.types";
|
|
4
|
+
export declare const buildUserAgent: (appInfo?: string) => string;
|
|
4
5
|
export interface ClientOptions {
|
|
5
6
|
apiToken: string | null | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Optional identifier for the consuming application, appended to the
|
|
9
|
+
* User-Agent of every request (e.g. `report-diffs-action/cloud-compute@v1`).
|
|
10
|
+
* Use it to attribute backend traffic to a specific consumer/version.
|
|
11
|
+
*/
|
|
12
|
+
appInfo?: string;
|
|
6
13
|
}
|
|
7
14
|
export interface MakeRequestOptions {
|
|
8
15
|
url: string;
|
package/dist/client.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="af79d0c2-4021-56e8-8cee-e32a4cc3a1a6")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.createClientWithOAuth = exports.resolveApiTokenWithOAuth = exports.isInteractiveContext = exports.createClient = exports.makeRequest = void 0;
|
|
5
|
+
exports.createClientWithOAuth = exports.resolveApiTokenWithOAuth = exports.isInteractiveContext = exports.createClient = exports.makeRequest = exports.buildUserAgent = void 0;
|
|
6
6
|
const common_1 = require("@alwaysmeticulous/common");
|
|
7
7
|
const oauth_api_1 = require("./api/oauth.api");
|
|
8
8
|
const api_token_utils_1 = require("./api-token.utils");
|
|
@@ -16,6 +16,20 @@ const BASE_API_URL = "https://app.meticulous.ai/api/";
|
|
|
16
16
|
// undici's fetch), so setting User-Agent is allowed. Callers may override it
|
|
17
17
|
// by passing their own `user-agent` header.
|
|
18
18
|
const USER_AGENT = `@alwaysmeticulous/client/${version_1.VERSION}`;
|
|
19
|
+
// Consumers can append their own identity to the User-Agent so backend logs
|
|
20
|
+
// attribute traffic to a specific consumer and version (e.g.
|
|
21
|
+
// `report-diffs-action/cloud-compute@v1`). The suffix is taken from the
|
|
22
|
+
// `appInfo` client option, falling back to the
|
|
23
|
+
// METICULOUS_CLIENT_USER_AGENT_SUFFIX env var — the env var covers clients that
|
|
24
|
+
// are created deep inside dependencies (e.g. the remote-replay-launcher builds
|
|
25
|
+
// its own client) where threading an option through is not possible.
|
|
26
|
+
const USER_AGENT_SUFFIX_ENV_VAR = "METICULOUS_CLIENT_USER_AGENT_SUFFIX";
|
|
27
|
+
// Exported for unit testing; not re-exported from the package index.
|
|
28
|
+
const buildUserAgent = (appInfo) => {
|
|
29
|
+
const suffix = appInfo?.trim() || process.env[USER_AGENT_SUFFIX_ENV_VAR]?.trim();
|
|
30
|
+
return suffix ? `${USER_AGENT} ${suffix}` : USER_AGENT;
|
|
31
|
+
};
|
|
32
|
+
exports.buildUserAgent = buildUserAgent;
|
|
19
33
|
const makeSingleRequest = async (url, options, timeout) => {
|
|
20
34
|
const controller = new AbortController();
|
|
21
35
|
const timeoutId = setTimeout(() => {
|
|
@@ -66,7 +80,7 @@ const makeRequest = async (requestOptions) => {
|
|
|
66
80
|
let finalUrl = combineUrls(getApiUrl(), url);
|
|
67
81
|
const finalHeaders = {
|
|
68
82
|
"Content-Type": "application/json",
|
|
69
|
-
"user-agent":
|
|
83
|
+
"user-agent": (0, exports.buildUserAgent)(),
|
|
70
84
|
...headers,
|
|
71
85
|
...config.headers,
|
|
72
86
|
...options.headers,
|
|
@@ -90,10 +104,12 @@ const makeRequest = async (requestOptions) => {
|
|
|
90
104
|
});
|
|
91
105
|
};
|
|
92
106
|
exports.makeRequest = makeRequest;
|
|
93
|
-
const buildClient = (token, logger) => {
|
|
107
|
+
const buildClient = (token, logger, appInfo) => {
|
|
108
|
+
const userAgent = (0, exports.buildUserAgent)(appInfo);
|
|
94
109
|
const makeRequestWithToken = async (url, options = {}, config) => {
|
|
95
110
|
const headers = {
|
|
96
111
|
authorization: token,
|
|
112
|
+
"user-agent": userAgent,
|
|
97
113
|
};
|
|
98
114
|
return (0, exports.makeRequest)({
|
|
99
115
|
url,
|
|
@@ -125,14 +141,14 @@ const buildClient = (token, logger) => {
|
|
|
125
141
|
},
|
|
126
142
|
};
|
|
127
143
|
};
|
|
128
|
-
const createClient = ({ apiToken: apiToken_, }) => {
|
|
144
|
+
const createClient = ({ apiToken: apiToken_, appInfo, }) => {
|
|
129
145
|
const logger = (0, common_1.initLogger)();
|
|
130
146
|
const apiToken = (0, api_token_utils_1.getApiToken)(apiToken_);
|
|
131
147
|
if (!apiToken) {
|
|
132
148
|
logger.error("You must provide an API token by using the --apiToken parameter");
|
|
133
149
|
process.exit(1);
|
|
134
150
|
}
|
|
135
|
-
return buildClient(apiToken, logger);
|
|
151
|
+
return buildClient(apiToken, logger, appInfo);
|
|
136
152
|
};
|
|
137
153
|
exports.createClient = createClient;
|
|
138
154
|
const isInteractiveContext = () => process.stdin.isTTY === true && !process.env["CI"];
|
|
@@ -153,7 +169,7 @@ const resolveApiTokenWithOAuth = async (options) => {
|
|
|
153
169
|
if (!apiToken && isInteractive) {
|
|
154
170
|
const tokens = await (0, oauth_login_1.performOAuthLogin)();
|
|
155
171
|
apiToken = tokens.accessToken;
|
|
156
|
-
await maybeAutoSelectProject(apiToken, logger);
|
|
172
|
+
await maybeAutoSelectProject(apiToken, logger, options.appInfo);
|
|
157
173
|
}
|
|
158
174
|
if (!apiToken) {
|
|
159
175
|
const message = isInteractive
|
|
@@ -171,12 +187,12 @@ exports.resolveApiTokenWithOAuth = resolveApiTokenWithOAuth;
|
|
|
171
187
|
* failure (network, missing backend endpoint, etc.) is logged at debug and
|
|
172
188
|
* swallowed — the user can always run `meticulous auth set-project` later.
|
|
173
189
|
*/
|
|
174
|
-
const maybeAutoSelectProject = async (apiToken, logger) => {
|
|
190
|
+
const maybeAutoSelectProject = async (apiToken, logger, appInfo) => {
|
|
175
191
|
if ((0, oauth_token_store_1.getStoredProjectId)()) {
|
|
176
192
|
return;
|
|
177
193
|
}
|
|
178
194
|
try {
|
|
179
|
-
const client = buildClient(apiToken, logger);
|
|
195
|
+
const client = buildClient(apiToken, logger, appInfo);
|
|
180
196
|
const projects = await (0, oauth_api_1.getOAuthProjects)(client);
|
|
181
197
|
if (projects.length === 1) {
|
|
182
198
|
const only = projects[0];
|
|
@@ -191,7 +207,7 @@ const maybeAutoSelectProject = async (apiToken, logger) => {
|
|
|
191
207
|
};
|
|
192
208
|
const createClientWithOAuth = async (options) => {
|
|
193
209
|
const apiToken = await (0, exports.resolveApiTokenWithOAuth)(options);
|
|
194
|
-
return buildClient(apiToken, (0, common_1.initLogger)());
|
|
210
|
+
return buildClient(apiToken, (0, common_1.initLogger)(), options.appInfo);
|
|
195
211
|
};
|
|
196
212
|
exports.createClientWithOAuth = createClientWithOAuth;
|
|
197
213
|
const getApiUrl = () => {
|
|
@@ -201,4 +217,4 @@ const getApiUrl = () => {
|
|
|
201
217
|
return BASE_API_URL;
|
|
202
218
|
};
|
|
203
219
|
//# sourceMappingURL=client.js.map
|
|
204
|
-
//# debugId=
|
|
220
|
+
//# debugId=af79d0c2-4021-56e8-8cee-e32a4cc3a1a6
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":["../src/client.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qDAKkC;AAGlC,+CAAmD;AACnD,uDAA8D;AAC9D,qDAAwD;AACxD,iEAGmC;AAMnC,uCAAoC;AAEpC,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,4CAA4C;AAC5C,MAAM,UAAU,GAAG,4BAA4B,iBAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sources":["../src/client.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"af79d0c2-4021-56e8-8cee-e32a4cc3a1a6"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { ReplayV3UploadLocations, getReplay, getReplayDownloadUrl, getReplayV3Do
|
|
|
6
6
|
export { getRecordedSession, getRecordedSessionData, getRecordingCommandId, postSessionIdNotification, } from "./api/session.api";
|
|
7
7
|
export { ReplayDiffResponse, getReplayDiff } from "./api/replay-diff.api";
|
|
8
8
|
export { getPrDescriptionForTestRun, getPrDiff, getPrDiffForTestRun, } from "./api/source-code.api";
|
|
9
|
-
export { ExecuteSecureTunnelTestRunOptions, executeSecureTunnelTestRun, getTestRun, getTestRunData, getTestRunReplayDiffs, GetLatestTestRunOptions, getLatestTestRunResults, TestRun, emitTelemetry,
|
|
9
|
+
export { ExecuteSecureTunnelTestRunOptions, executeSecureTunnelTestRun, getTestRun, getTestRunData, getTestRunReplayDiffs, GetLatestTestRunOptions, getLatestTestRunResults, TestRun, emitTelemetry, } from "./api/test-run.api";
|
|
10
10
|
export { GetIsLockedOptions, getIsLocked } from "./api/deployment-lock.api";
|
|
11
11
|
export { IN_PROGRESS_TEST_RUN_STATUS } from "./api/test-run.constants";
|
|
12
12
|
export { getApiToken, getAuthToken } from "./api-token.utils";
|
|
@@ -21,7 +21,7 @@ export { PutFileToSignedUrlOptions, putFileToSignedUrl, } from "./utils/put-file
|
|
|
21
21
|
export { UploadError, isTransientUploadError, retryTransientUploadErrors, RetryTransientUploadErrorsOptions, } from "./utils/retry-transient-upload-errors";
|
|
22
22
|
export { ProjectIdentifier, RequestAssetUploadParams, RequestAssetUploadResponse, requestAssetUpload, requestMultipartAssetUpload, RequestMultipartAssetUploadResponse, RequestUploadPartParams, RequestUploadPartResponse, requestUploadPart, RequestGitDiffUploadParams, RequestGitDiffUploadResponse, requestGitDiffUpload, CompleteAssetUploadParams, CompleteAssetUploadResponse, completeAssetUpload, CompleteContainerUploadParams, CompleteContainerUploadResponse, completeContainerUpload, MultiPartUploadInfo, DownloadDeploymentResponse, downloadProjectDeployment, GetContainerDeploymentResponse, getContainerDeployment, ContainerEnvVariable, } from "./api/project-deployments.api";
|
|
23
23
|
export { GetRegistryAuthResponse, getRegistryAuth } from "./api/registry.api";
|
|
24
|
-
export { isFetchError } from "./errors";
|
|
24
|
+
export { isFetchError, maybeEnrichFetchError } from "./errors";
|
|
25
25
|
export { EditedFileWithLines, GetRelevantSessionsParams, GetRelevantSessionsResponse, RelevantSession, getRelevantSessions, } from "./api/local-changes.api";
|
|
26
26
|
/**
|
|
27
27
|
* @deprecated Prefer importing `TestRunDataLocations` from `@alwaysmeticulous/api` instead of `@alwaysmeticulous/client`.
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b8f365bc-d6c6-59cf-be10-a1ba33b195f3")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
5
|
if (k2 === undefined) k2 = k;
|
|
@@ -16,8 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
17
17
|
};
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.isOAuthJwt = exports.isJwtExpired = exports.getJwtClaims = exports.setStoredProject = exports.getStoredProjectId = exports.getStoredProject = exports.getStoredOAuthTokens = exports.clearStoredProject = exports.clearOAuthTokens = exports.getValidAccessToken = exports.performOAuthLogin = exports.resolveApiTokenWithOAuth = exports.makeRequest = exports.isInteractiveContext = exports.createClientWithOAuth = exports.createClient = exports.getAuthToken = exports.getApiToken = exports.IN_PROGRESS_TEST_RUN_STATUS = exports.getIsLocked = exports.
|
|
20
|
-
exports.getRelevantSessions = exports.isFetchError = exports.getRegistryAuth = exports.getContainerDeployment = exports.downloadProjectDeployment = exports.completeContainerUpload = exports.completeAssetUpload = exports.requestGitDiffUpload = exports.requestUploadPart = exports.requestMultipartAssetUpload = exports.requestAssetUpload = exports.retryTransientUploadErrors = exports.isTransientUploadError = exports.UploadError = exports.putFileToSignedUrl =
|
|
19
|
+
exports.getProxyAgent = exports.isOAuthJwt = exports.isJwtExpired = exports.getJwtClaims = exports.setStoredProject = exports.getStoredProjectId = exports.getStoredProject = exports.getStoredOAuthTokens = exports.clearStoredProject = exports.clearOAuthTokens = exports.getValidAccessToken = exports.performOAuthLogin = exports.resolveApiTokenWithOAuth = exports.makeRequest = exports.isInteractiveContext = exports.createClientWithOAuth = exports.createClient = exports.getAuthToken = exports.getApiToken = exports.IN_PROGRESS_TEST_RUN_STATUS = exports.getIsLocked = exports.emitTelemetry = exports.getLatestTestRunResults = exports.getTestRunReplayDiffs = exports.getTestRunData = exports.getTestRun = exports.executeSecureTunnelTestRun = exports.getPrDiffForTestRun = exports.getPrDiff = exports.getPrDescriptionForTestRun = exports.getReplayDiff = exports.postSessionIdNotification = exports.getRecordingCommandId = exports.getRecordedSessionData = exports.getRecordedSession = exports.getReplayV3DownloadUrls = exports.getReplayDownloadUrl = exports.getReplay = exports.requestSourceCodeUploadUrl = exports.getSourceArchiveUrl = exports.getRepoUrl = exports.getProject = exports.getOAuthProjects = exports.getWhoami = exports.trackAgentFeatureUsage = exports.getTimelineDiff = exports.getScreenshotUrls = exports.getScreenshotDomDiff = exports.getTestRunDiffsSummary = exports.getStructuredSessionData = void 0;
|
|
20
|
+
exports.getRelevantSessions = exports.maybeEnrichFetchError = exports.isFetchError = exports.getRegistryAuth = exports.getContainerDeployment = exports.downloadProjectDeployment = exports.completeContainerUpload = exports.completeAssetUpload = exports.requestGitDiffUpload = exports.requestUploadPart = exports.requestMultipartAssetUpload = exports.requestAssetUpload = exports.retryTransientUploadErrors = exports.isTransientUploadError = exports.UploadError = exports.putFileToSignedUrl = void 0;
|
|
21
21
|
var agent_api_1 = require("./api/agent.api");
|
|
22
22
|
Object.defineProperty(exports, "getStructuredSessionData", { enumerable: true, get: function () { return agent_api_1.getStructuredSessionData; } });
|
|
23
23
|
Object.defineProperty(exports, "getTestRunDiffsSummary", { enumerable: true, get: function () { return agent_api_1.getTestRunDiffsSummary; } });
|
|
@@ -56,7 +56,6 @@ Object.defineProperty(exports, "getTestRunData", { enumerable: true, get: functi
|
|
|
56
56
|
Object.defineProperty(exports, "getTestRunReplayDiffs", { enumerable: true, get: function () { return test_run_api_1.getTestRunReplayDiffs; } });
|
|
57
57
|
Object.defineProperty(exports, "getLatestTestRunResults", { enumerable: true, get: function () { return test_run_api_1.getLatestTestRunResults; } });
|
|
58
58
|
Object.defineProperty(exports, "emitTelemetry", { enumerable: true, get: function () { return test_run_api_1.emitTelemetry; } });
|
|
59
|
-
Object.defineProperty(exports, "getSnapshotsFromTestRun", { enumerable: true, get: function () { return test_run_api_1.getSnapshotsFromTestRun; } });
|
|
60
59
|
var deployment_lock_api_1 = require("./api/deployment-lock.api");
|
|
61
60
|
Object.defineProperty(exports, "getIsLocked", { enumerable: true, get: function () { return deployment_lock_api_1.getIsLocked; } });
|
|
62
61
|
var test_run_constants_1 = require("./api/test-run.constants");
|
|
@@ -106,7 +105,8 @@ var registry_api_1 = require("./api/registry.api");
|
|
|
106
105
|
Object.defineProperty(exports, "getRegistryAuth", { enumerable: true, get: function () { return registry_api_1.getRegistryAuth; } });
|
|
107
106
|
var errors_1 = require("./errors");
|
|
108
107
|
Object.defineProperty(exports, "isFetchError", { enumerable: true, get: function () { return errors_1.isFetchError; } });
|
|
108
|
+
Object.defineProperty(exports, "maybeEnrichFetchError", { enumerable: true, get: function () { return errors_1.maybeEnrichFetchError; } });
|
|
109
109
|
var local_changes_api_1 = require("./api/local-changes.api");
|
|
110
110
|
Object.defineProperty(exports, "getRelevantSessions", { enumerable: true, get: function () { return local_changes_api_1.getRelevantSessions; } });
|
|
111
111
|
//# sourceMappingURL=index.js.map
|
|
112
|
-
//# debugId=
|
|
112
|
+
//# debugId=b8f365bc-d6c6-59cf-be10-a1ba33b195f3
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,6CAkByB;AANvB,qHAAA,wBAAwB,OAAA;AACxB,mHAAA,sBAAsB,OAAA;AACtB,iHAAA,oBAAoB,OAAA;AACpB,8GAAA,iBAAiB,OAAA;AACjB,4GAAA,eAAe,OAAA;AACf,mHAAA,sBAAsB,OAAA;AAExB,gEAA8C;AAC9C,6CAOyB;AAJvB,sGAAA,SAAS,OAAA;AAGT,6GAAA,gBAAgB,OAAA;AAElB,iDAW2B;AARzB,yGAAA,UAAU,OAAA;AACV,yGAAA,UAAU,OAAA;AAGV,kHAAA,mBAAmB,OAAA;AAGnB,yHAAA,0BAA0B,OAAA;AAE5B,+CAK0B;AAHxB,uGAAA,SAAS,OAAA;AACT,kHAAA,oBAAoB,OAAA;AACpB,qHAAA,uBAAuB,OAAA;AAEzB,iDAK2B;AAJzB,iHAAA,kBAAkB,OAAA;AAClB,qHAAA,sBAAsB,OAAA;AACtB,oHAAA,qBAAqB,OAAA;AACrB,wHAAA,yBAAyB,OAAA;AAE3B,yDAA0E;AAA7C,gHAAA,aAAa,OAAA;AAC1C,yDAI+B;AAH7B,6HAAA,0BAA0B,OAAA;AAC1B,4GAAA,SAAS,OAAA;AACT,sHAAA,mBAAmB,OAAA;AAErB,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,6CAkByB;AANvB,qHAAA,wBAAwB,OAAA;AACxB,mHAAA,sBAAsB,OAAA;AACtB,iHAAA,oBAAoB,OAAA;AACpB,8GAAA,iBAAiB,OAAA;AACjB,4GAAA,eAAe,OAAA;AACf,mHAAA,sBAAsB,OAAA;AAExB,gEAA8C;AAC9C,6CAOyB;AAJvB,sGAAA,SAAS,OAAA;AAGT,6GAAA,gBAAgB,OAAA;AAElB,iDAW2B;AARzB,yGAAA,UAAU,OAAA;AACV,yGAAA,UAAU,OAAA;AAGV,kHAAA,mBAAmB,OAAA;AAGnB,yHAAA,0BAA0B,OAAA;AAE5B,+CAK0B;AAHxB,uGAAA,SAAS,OAAA;AACT,kHAAA,oBAAoB,OAAA;AACpB,qHAAA,uBAAuB,OAAA;AAEzB,iDAK2B;AAJzB,iHAAA,kBAAkB,OAAA;AAClB,qHAAA,sBAAsB,OAAA;AACtB,oHAAA,qBAAqB,OAAA;AACrB,wHAAA,yBAAyB,OAAA;AAE3B,yDAA0E;AAA7C,gHAAA,aAAa,OAAA;AAC1C,yDAI+B;AAH7B,6HAAA,0BAA0B,OAAA;AAC1B,4GAAA,SAAS,OAAA;AACT,sHAAA,mBAAmB,OAAA;AAErB,mDAU4B;AAR1B,0HAAA,0BAA0B,OAAA;AAC1B,0GAAA,UAAU,OAAA;AACV,8GAAA,cAAc,OAAA;AACd,qHAAA,qBAAqB,OAAA;AAErB,uHAAA,uBAAuB,OAAA;AAEvB,6GAAA,aAAa,OAAA;AAEf,iEAA4E;AAA/C,kHAAA,WAAW,OAAA;AACxC,+DAAuE;AAA9D,iIAAA,2BAA2B,OAAA;AACpC,qDAA8D;AAArD,8GAAA,WAAW,OAAA;AAAE,+GAAA,YAAY,OAAA;AAClC,mCAOkB;AALhB,sGAAA,YAAY,OAAA;AACZ,+GAAA,qBAAqB,OAAA;AACrB,8GAAA,oBAAoB,OAAA;AACpB,qGAAA,WAAW,OAAA;AACX,kHAAA,wBAAwB,OAAA;AAE1B,mDAAwD;AAA/C,gHAAA,iBAAiB,OAAA;AAC1B,uDAA4D;AAAnD,oHAAA,mBAAmB,OAAA;AAC5B,+DAOmC;AANjC,qHAAA,gBAAgB,OAAA;AAChB,uHAAA,kBAAkB,OAAA;AAClB,yHAAA,oBAAoB,OAAA;AACpB,qHAAA,gBAAgB,OAAA;AAChB,uHAAA,kBAAkB,OAAA;AAClB,qHAAA,gBAAgB,OAAA;AAElB,mDAA6E;AAApE,2GAAA,YAAY,OAAA;AAAE,2GAAA,YAAY,OAAA;AAAE,yGAAA,UAAU,OAAA;AAE/C,2DAAwD;AAA/C,gHAAA,aAAa,OAAA;AACtB,yEAGwC;AADtC,4HAAA,kBAAkB,OAAA;AAEpB,uFAK+C;AAJ7C,4HAAA,WAAW,OAAA;AACX,uIAAA,sBAAsB,OAAA;AACtB,2IAAA,0BAA0B,OAAA;AAG5B,yEAyBuC;AArBrC,6HAAA,kBAAkB,OAAA;AAClB,sIAAA,2BAA2B,OAAA;AAI3B,4HAAA,iBAAiB,OAAA;AAGjB,+HAAA,oBAAoB,OAAA;AAGpB,8HAAA,mBAAmB,OAAA;AAGnB,kIAAA,uBAAuB,OAAA;AAGvB,oIAAA,yBAAyB,OAAA;AAEzB,iIAAA,sBAAsB,OAAA;AAGxB,mDAA8E;AAA5C,+GAAA,eAAe,OAAA;AACjD,mCAA+D;AAAtD,sGAAA,YAAY,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAC5C,6DAMiC;AAD/B,wHAAA,mBAAmB,OAAA","debugId":"b8f365bc-d6c6-59cf-be10-a1ba33b195f3"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "2.
|
|
1
|
+
export declare const VERSION = "2.290.0";
|
package/dist/version.js
CHANGED
|
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
5
5
|
exports.VERSION = void 0;
|
|
6
6
|
// AUTO-GENERATED by scripts/generate-version.mjs — do not edit by hand.
|
|
7
7
|
// Regenerated from package.json on every build.
|
|
8
|
-
exports.VERSION = "2.
|
|
8
|
+
exports.VERSION = "2.290.0";
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
10
10
|
//# debugId=ac10f4cc-7a38-5615-8b9d-956b50ad79da
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysmeticulous/client",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.290.0",
|
|
4
4
|
"description": "Helper methods for using the Meticulous backend API",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"loglevel": "^1.8.0",
|
|
13
13
|
"proxy-agent": "^6.4.0",
|
|
14
14
|
"undici": "^6.24.1",
|
|
15
|
-
"@alwaysmeticulous/api": "2.
|
|
15
|
+
"@alwaysmeticulous/api": "2.290.0",
|
|
16
16
|
"@alwaysmeticulous/common": "2.287.1"
|
|
17
17
|
},
|
|
18
18
|
"author": {
|