@alwaysmeticulous/client 2.305.0 → 2.307.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__/create-client-with-oauth.spec.js +2 -4
- package/dist/__tests__/create-client-with-oauth.spec.js.map +1 -1
- package/dist/api/__tests__/agent.api.spec.js +51 -4
- package/dist/api/__tests__/agent.api.spec.js.map +1 -1
- package/dist/api/__tests__/project-deployments.api.spec.js +5 -5
- package/dist/api/__tests__/project-deployments.api.spec.js.map +1 -1
- package/dist/api/agent.api.d.ts +31 -12
- package/dist/api/agent.api.d.ts.map +1 -1
- package/dist/api/agent.api.js +16 -11
- package/dist/api/agent.api.js.map +1 -1
- package/dist/api/oauth.api.d.ts +32 -0
- package/dist/api/oauth.api.d.ts.map +1 -1
- package/dist/api/oauth.api.js +40 -3
- package/dist/api/oauth.api.js.map +1 -1
- package/dist/api/project-deployments.api.d.ts +34 -9
- package/dist/api/project-deployments.api.d.ts.map +1 -1
- package/dist/api/project-deployments.api.js +32 -10
- package/dist/api/project-deployments.api.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +17 -28
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/dist/oauth/default-project.d.ts +11 -0
- package/dist/oauth/default-project.d.ts.map +1 -0
- package/dist/oauth/default-project.js +23 -0
- package/dist/oauth/default-project.js.map +1 -0
- package/dist/oauth/legacy-project-migration.d.ts +19 -0
- package/dist/oauth/legacy-project-migration.d.ts.map +1 -0
- package/dist/oauth/legacy-project-migration.js +80 -0
- package/dist/oauth/legacy-project-migration.js.map +1 -0
- package/dist/oauth/legacy-project-migration.spec.d.ts +2 -0
- package/dist/oauth/legacy-project-migration.spec.d.ts.map +1 -0
- package/dist/oauth/legacy-project-migration.spec.js +81 -0
- package/dist/oauth/legacy-project-migration.spec.js.map +1 -0
- package/dist/oauth/oauth-token-store.d.ts +0 -7
- package/dist/oauth/oauth-token-store.d.ts.map +1 -1
- package/dist/oauth/oauth-token-store.js +3 -42
- package/dist/oauth/oauth-token-store.js.map +1 -1
- package/dist/types/client.types.d.ts +1 -0
- package/dist/types/client.types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,80 @@
|
|
|
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]="c7e49da8-9122-5869-b62c-7de95f9953a3")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.migrateLegacySelectedProjectIfPresent = void 0;
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const common_1 = require("@alwaysmeticulous/common");
|
|
9
|
+
const oauth_api_1 = require("../api/oauth.api");
|
|
10
|
+
const client_1 = require("../client");
|
|
11
|
+
// Where the pre-backend CLI stored the selected project.
|
|
12
|
+
const getLegacySelectedProjectFilePath = () => (0, path_1.join)((0, common_1.getMeticulousLocalDataDir)(), "selected-project.json");
|
|
13
|
+
/**
|
|
14
|
+
* One-time migration for CLIs upgrading from the local-file default project
|
|
15
|
+
* (`selected-project.json`) to the backend-persisted per-user setting.
|
|
16
|
+
*
|
|
17
|
+
* When the legacy file is present and the account has no *stored* default
|
|
18
|
+
* server-side (checked with `includeAutoPick: false`, so a transient
|
|
19
|
+
* sole-project auto-pick does not count — see the inline note below), its
|
|
20
|
+
* project is pushed up as the new default. A stored default set on another
|
|
21
|
+
* machine / the web takes precedence. The file is then removed so this runs at
|
|
22
|
+
* most once per machine.
|
|
23
|
+
*
|
|
24
|
+
* Entirely best-effort: any failure (unreadable file, network, older backend)
|
|
25
|
+
* is swallowed and the file left in place to retry — a missed migration just
|
|
26
|
+
* means the user re-runs `auth set-project`, which is the pre-migration status
|
|
27
|
+
* quo. A corrupt file is discarded.
|
|
28
|
+
*/
|
|
29
|
+
const migrateLegacySelectedProjectIfPresent = async (apiToken, logger, appInfo) => {
|
|
30
|
+
const filePath = getLegacySelectedProjectFilePath();
|
|
31
|
+
if (!(0, fs_1.existsSync)(filePath)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
let legacyProjectId;
|
|
35
|
+
try {
|
|
36
|
+
const raw = (0, fs_1.readFileSync)(filePath, "utf-8");
|
|
37
|
+
legacyProjectId = JSON.parse(raw).projectId;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Corrupt/unreadable legacy file — discard it and move on.
|
|
41
|
+
removeLegacyFile(filePath);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
if (legacyProjectId) {
|
|
46
|
+
const client = (0, client_1.buildClient)(apiToken, logger, appInfo);
|
|
47
|
+
// Check the *stored* default only (`includeAutoPick: false`): the backend
|
|
48
|
+
// would otherwise transiently auto-pick the sole accessible project, which
|
|
49
|
+
// we'd mistake for a real stored default — skip the migration, delete the
|
|
50
|
+
// file, and silently lose the user's selection once they gain a second
|
|
51
|
+
// project. A stored default (set on another machine / web) still takes
|
|
52
|
+
// precedence and is preserved.
|
|
53
|
+
const { projectId: storedDefault } = await (0, oauth_api_1.getOAuthDefaultProject)(client, {
|
|
54
|
+
includeAutoPick: false,
|
|
55
|
+
});
|
|
56
|
+
if (!storedDefault) {
|
|
57
|
+
await (0, oauth_api_1.setOAuthDefaultProject)(client, legacyProjectId);
|
|
58
|
+
logger.debug(`Migrated local default project ${legacyProjectId} to your Meticulous account settings.`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Leave the file in place so a later invocation can retry.
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
removeLegacyFile(filePath);
|
|
67
|
+
};
|
|
68
|
+
exports.migrateLegacySelectedProjectIfPresent = migrateLegacySelectedProjectIfPresent;
|
|
69
|
+
const removeLegacyFile = (filePath) => {
|
|
70
|
+
try {
|
|
71
|
+
if ((0, fs_1.existsSync)(filePath)) {
|
|
72
|
+
(0, fs_1.unlinkSync)(filePath);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Ignore cleanup errors.
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=legacy-project-migration.js.map
|
|
80
|
+
//# debugId=c7e49da8-9122-5869-b62c-7de95f9953a3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-project-migration.js","sources":["../../src/oauth/legacy-project-migration.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,2BAA0D;AAC1D,+BAA4B;AAC5B,qDAAqE;AAErE,gDAG0B;AAC1B,sCAAwC;AAExC,yDAAyD;AACzD,MAAM,gCAAgC,GAAG,GAAW,EAAE,CACpD,IAAA,WAAI,EAAC,IAAA,kCAAyB,GAAE,EAAE,uBAAuB,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AACI,MAAM,qCAAqC,GAAG,KAAK,EACxD,QAAgB,EAChB,MAAkB,EAClB,OAAgB,EACD,EAAE;IACjB,MAAM,QAAQ,GAAG,gCAAgC,EAAE,CAAC;IACpD,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,IAAI,eAAmC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,eAAe,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC,SAAS,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACtD,0EAA0E;YAC1E,2EAA2E;YAC3E,0EAA0E;YAC1E,uEAAuE;YACvE,uEAAuE;YACvE,+BAA+B;YAC/B,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,kCAAsB,EAC/D,MAAM,EACN;gBACE,eAAe,EAAE,KAAK;aACvB,CACF,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAA,kCAAsB,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBACtD,MAAM,CAAC,KAAK,CACV,kCAAkC,eAAe,uCAAuC,CACzF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC,CAAC;AAhDW,QAAA,qCAAqC,yCAgDhD;AAEF,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAQ,EAAE;IAClD,IAAI,CAAC;QACH,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;AACH,CAAC,CAAC","debugId":"c7e49da8-9122-5869-b62c-7de95f9953a3"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-project-migration.spec.d.ts","sourceRoot":"","sources":["../../src/oauth/legacy-project-migration.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
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]="d956af87-c406-588e-9b08-52ff2ffe5067")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const vitest_1 = require("vitest");
|
|
6
|
+
const legacy_project_migration_1 = require("./legacy-project-migration");
|
|
7
|
+
const mocks = vitest_1.vi.hoisted(() => ({
|
|
8
|
+
existsSync: vitest_1.vi.fn(),
|
|
9
|
+
readFileSync: vitest_1.vi.fn(),
|
|
10
|
+
unlinkSync: vitest_1.vi.fn(),
|
|
11
|
+
getOAuthDefaultProject: vitest_1.vi.fn(),
|
|
12
|
+
setOAuthDefaultProject: vitest_1.vi.fn(),
|
|
13
|
+
buildClient: vitest_1.vi.fn(),
|
|
14
|
+
}));
|
|
15
|
+
vitest_1.vi.mock("fs", () => ({
|
|
16
|
+
existsSync: mocks.existsSync,
|
|
17
|
+
readFileSync: mocks.readFileSync,
|
|
18
|
+
unlinkSync: mocks.unlinkSync,
|
|
19
|
+
}));
|
|
20
|
+
vitest_1.vi.mock("@alwaysmeticulous/common", () => ({
|
|
21
|
+
getMeticulousLocalDataDir: () => "/tmp/meticulous",
|
|
22
|
+
}));
|
|
23
|
+
vitest_1.vi.mock("../api/oauth.api", () => ({
|
|
24
|
+
getOAuthDefaultProject: mocks.getOAuthDefaultProject,
|
|
25
|
+
setOAuthDefaultProject: mocks.setOAuthDefaultProject,
|
|
26
|
+
}));
|
|
27
|
+
vitest_1.vi.mock("../client", () => ({
|
|
28
|
+
buildClient: mocks.buildClient,
|
|
29
|
+
}));
|
|
30
|
+
const logger = { debug: vitest_1.vi.fn() };
|
|
31
|
+
(0, vitest_1.describe)("migrateLegacySelectedProjectIfPresent", () => {
|
|
32
|
+
(0, vitest_1.beforeEach)(() => {
|
|
33
|
+
vitest_1.vi.clearAllMocks();
|
|
34
|
+
mocks.buildClient.mockReturnValue({});
|
|
35
|
+
});
|
|
36
|
+
(0, vitest_1.it)("does nothing when there is no legacy file", async () => {
|
|
37
|
+
mocks.existsSync.mockReturnValue(false);
|
|
38
|
+
await (0, legacy_project_migration_1.migrateLegacySelectedProjectIfPresent)("jwt", logger);
|
|
39
|
+
(0, vitest_1.expect)(mocks.getOAuthDefaultProject).not.toHaveBeenCalled();
|
|
40
|
+
(0, vitest_1.expect)(mocks.setOAuthDefaultProject).not.toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
(0, vitest_1.it)("migrates the legacy project when no default is stored, checking stored-only state (not the auto-pick)", async () => {
|
|
43
|
+
mocks.existsSync.mockReturnValue(true);
|
|
44
|
+
mocks.readFileSync.mockReturnValue(JSON.stringify({ projectId: "proj-1" }));
|
|
45
|
+
mocks.getOAuthDefaultProject.mockResolvedValue({ projectId: null });
|
|
46
|
+
await (0, legacy_project_migration_1.migrateLegacySelectedProjectIfPresent)("jwt", logger);
|
|
47
|
+
// Regression (item 4): the migration must read the *stored* default only —
|
|
48
|
+
// otherwise a transient sole-project auto-pick reads as a stored default and
|
|
49
|
+
// the legacy file is dropped without migrating.
|
|
50
|
+
(0, vitest_1.expect)(mocks.getOAuthDefaultProject).toHaveBeenCalledWith({}, { includeAutoPick: false });
|
|
51
|
+
(0, vitest_1.expect)(mocks.setOAuthDefaultProject).toHaveBeenCalledWith({}, "proj-1");
|
|
52
|
+
(0, vitest_1.expect)(mocks.unlinkSync).toHaveBeenCalled();
|
|
53
|
+
});
|
|
54
|
+
(0, vitest_1.it)("preserves an existing stored default and does not overwrite it", async () => {
|
|
55
|
+
mocks.existsSync.mockReturnValue(true);
|
|
56
|
+
mocks.readFileSync.mockReturnValue(JSON.stringify({ projectId: "proj-1" }));
|
|
57
|
+
mocks.getOAuthDefaultProject.mockResolvedValue({ projectId: "proj-other" });
|
|
58
|
+
await (0, legacy_project_migration_1.migrateLegacySelectedProjectIfPresent)("jwt", logger);
|
|
59
|
+
(0, vitest_1.expect)(mocks.setOAuthDefaultProject).not.toHaveBeenCalled();
|
|
60
|
+
// File is still removed — a stored default already exists, so there's
|
|
61
|
+
// nothing left to migrate.
|
|
62
|
+
(0, vitest_1.expect)(mocks.unlinkSync).toHaveBeenCalled();
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.it)("leaves the file in place when persisting the default fails", async () => {
|
|
65
|
+
mocks.existsSync.mockReturnValue(true);
|
|
66
|
+
mocks.readFileSync.mockReturnValue(JSON.stringify({ projectId: "proj-1" }));
|
|
67
|
+
mocks.getOAuthDefaultProject.mockResolvedValue({ projectId: null });
|
|
68
|
+
mocks.setOAuthDefaultProject.mockRejectedValue(new Error("network"));
|
|
69
|
+
await (0, legacy_project_migration_1.migrateLegacySelectedProjectIfPresent)("jwt", logger);
|
|
70
|
+
(0, vitest_1.expect)(mocks.unlinkSync).not.toHaveBeenCalled();
|
|
71
|
+
});
|
|
72
|
+
(0, vitest_1.it)("discards a corrupt legacy file without calling the backend", async () => {
|
|
73
|
+
mocks.existsSync.mockReturnValue(true);
|
|
74
|
+
mocks.readFileSync.mockReturnValue("not json");
|
|
75
|
+
await (0, legacy_project_migration_1.migrateLegacySelectedProjectIfPresent)("jwt", logger);
|
|
76
|
+
(0, vitest_1.expect)(mocks.getOAuthDefaultProject).not.toHaveBeenCalled();
|
|
77
|
+
(0, vitest_1.expect)(mocks.unlinkSync).toHaveBeenCalled();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=legacy-project-migration.spec.js.map
|
|
81
|
+
//# debugId=d956af87-c406-588e-9b08-52ff2ffe5067
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-project-migration.spec.js","sources":["../../src/oauth/legacy-project-migration.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"d956af87-c406-588e-9b08-52ff2ffe5067"}
|
|
@@ -7,11 +7,4 @@ export interface StoredOAuthTokens {
|
|
|
7
7
|
export declare const getStoredOAuthTokens: () => StoredOAuthTokens | null;
|
|
8
8
|
export declare const storeOAuthTokens: (tokens: StoredOAuthTokens) => void;
|
|
9
9
|
export declare const clearOAuthTokens: () => void;
|
|
10
|
-
export declare const getStoredProjectId: () => string | null;
|
|
11
|
-
export declare const getStoredProject: () => string | null;
|
|
12
|
-
export declare const setStoredProject: ({ project, projectId, }: {
|
|
13
|
-
project: string;
|
|
14
|
-
projectId: string;
|
|
15
|
-
}) => void;
|
|
16
|
-
export declare const clearStoredProject: () => void;
|
|
17
10
|
//# sourceMappingURL=oauth-token-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-token-store.d.ts","sourceRoot":"","sources":["../../src/oauth/oauth-token-store.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"oauth-token-store.d.ts","sourceRoot":"","sources":["../../src/oauth/oauth-token-store.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AASD,eAAO,MAAM,oBAAoB,QAAO,iBAAiB,GAAG,IAU3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,iBAAiB,KAAG,IAO5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,IAQnC,CAAC"}
|
|
@@ -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]="0b35ec95-17a4-51ad-8fc0-e555a2a57c7f")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
5
|
+
exports.clearOAuthTokens = exports.storeOAuthTokens = exports.getStoredOAuthTokens = void 0;
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const path_1 = require("path");
|
|
8
8
|
const common_1 = require("@alwaysmeticulous/common");
|
|
@@ -11,7 +11,6 @@ const common_1 = require("@alwaysmeticulous/common");
|
|
|
11
11
|
// `getMeticulousLocalDataDir`.
|
|
12
12
|
const getMeticulousDir = () => (0, common_1.getMeticulousLocalDataDir)();
|
|
13
13
|
const getTokenFilePath = () => (0, path_1.join)(getMeticulousDir(), "oauth-tokens.json");
|
|
14
|
-
const getSelectedProjectFilePath = () => (0, path_1.join)(getMeticulousDir(), "selected-project.json");
|
|
15
14
|
const getStoredOAuthTokens = () => {
|
|
16
15
|
try {
|
|
17
16
|
if (!(0, fs_1.existsSync)(getTokenFilePath())) {
|
|
@@ -45,43 +44,5 @@ const clearOAuthTokens = () => {
|
|
|
45
44
|
}
|
|
46
45
|
};
|
|
47
46
|
exports.clearOAuthTokens = clearOAuthTokens;
|
|
48
|
-
const getStoredSelectedProject = () => {
|
|
49
|
-
try {
|
|
50
|
-
if (!(0, fs_1.existsSync)(getSelectedProjectFilePath())) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
const data = (0, fs_1.readFileSync)(getSelectedProjectFilePath(), "utf-8");
|
|
54
|
-
return JSON.parse(data);
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
const getStoredProjectId = () => {
|
|
61
|
-
return getStoredSelectedProject()?.projectId ?? null;
|
|
62
|
-
};
|
|
63
|
-
exports.getStoredProjectId = getStoredProjectId;
|
|
64
|
-
const getStoredProject = () => {
|
|
65
|
-
return getStoredSelectedProject()?.project ?? null;
|
|
66
|
-
};
|
|
67
|
-
exports.getStoredProject = getStoredProject;
|
|
68
|
-
const setStoredProject = ({ project, projectId, }) => {
|
|
69
|
-
if (!(0, fs_1.existsSync)(getMeticulousDir())) {
|
|
70
|
-
(0, fs_1.mkdirSync)(getMeticulousDir(), { recursive: true });
|
|
71
|
-
}
|
|
72
|
-
(0, fs_1.writeFileSync)(getSelectedProjectFilePath(), JSON.stringify({ project, projectId }, null, 2), { mode: 0o600 });
|
|
73
|
-
};
|
|
74
|
-
exports.setStoredProject = setStoredProject;
|
|
75
|
-
const clearStoredProject = () => {
|
|
76
|
-
try {
|
|
77
|
-
if ((0, fs_1.existsSync)(getSelectedProjectFilePath())) {
|
|
78
|
-
(0, fs_1.unlinkSync)(getSelectedProjectFilePath());
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
// Ignore errors during cleanup
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
exports.clearStoredProject = clearStoredProject;
|
|
86
47
|
//# sourceMappingURL=oauth-token-store.js.map
|
|
87
|
-
//# debugId=
|
|
48
|
+
//# debugId=0b35ec95-17a4-51ad-8fc0-e555a2a57c7f
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-token-store.js","sources":["../../src/oauth/oauth-token-store.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,2BAMY;AACZ,+BAA4B;AAC5B,qDAAqE;
|
|
1
|
+
{"version":3,"file":"oauth-token-store.js","sources":["../../src/oauth/oauth-token-store.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,2BAMY;AACZ,+BAA4B;AAC5B,qDAAqE;AASrE,0EAA0E;AAC1E,2EAA2E;AAC3E,+BAA+B;AAC/B,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,IAAA,kCAAyB,GAAE,CAAC;AACnE,MAAM,gBAAgB,GAAG,GAAW,EAAE,CACpC,IAAA,WAAI,EAAC,gBAAgB,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAEzC,MAAM,oBAAoB,GAAG,GAA6B,EAAE;IACjE,IAAI,CAAC;QACH,IAAI,CAAC,IAAA,eAAU,EAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,oBAAoB,wBAU/B;AAEK,MAAM,gBAAgB,GAAG,CAAC,MAAyB,EAAQ,EAAE;IAClE,IAAI,CAAC,IAAA,eAAU,EAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;QACpC,IAAA,cAAS,EAAC,gBAAgB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAA,kBAAa,EAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACjE,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,gBAAgB,oBAO3B;AAEK,MAAM,gBAAgB,GAAG,GAAS,EAAE;IACzC,IAAI,CAAC;QACH,IAAI,IAAA,eAAU,EAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;YACnC,IAAA,eAAU,EAAC,gBAAgB,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;AACH,CAAC,CAAC;AARW,QAAA,gBAAgB,oBAQ3B","debugId":"0b35ec95-17a4-51ad-8fc0-e555a2a57c7f"}
|
|
@@ -15,5 +15,6 @@ export interface MeticulousClient {
|
|
|
15
15
|
get<T = any, R = Response<T>>(url: string, config?: RequestConfig<any>): Promise<R>;
|
|
16
16
|
post<T = any, R = Response<any>>(url: string, data?: T, config?: RequestConfig<any>): Promise<R>;
|
|
17
17
|
put<T = any, R = Response<any>>(url: string, data?: T, config?: RequestConfig<any>): Promise<R>;
|
|
18
|
+
delete<T = any, R = Response<T>>(url: string, config?: RequestConfig<any>): Promise<R>;
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=client.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../src/types/client.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,CAAC,EACR,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAC5B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,CAAC,EACR,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;CACf"}
|
|
1
|
+
{"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../src/types/client.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,CAAC,EACR,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAC5B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,CAAC,EACR,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;CACf"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "2.
|
|
1
|
+
export declare const VERSION = "2.307.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
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.307.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.307.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.307.0",
|
|
16
16
|
"@alwaysmeticulous/common": "2.301.0"
|
|
17
17
|
},
|
|
18
18
|
"author": {
|