@sonisoft/now-sdk-ext-cli 5.5.0 → 5.6.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/README.md +216 -232
- package/dist/commands/auth/browser-session.d.ts +13 -0
- package/dist/commands/auth/browser-session.d.ts.map +1 -0
- package/dist/commands/auth/browser-session.js +31 -0
- package/dist/commands/auth/browser-session.js.map +1 -0
- package/dist/common/authenticated-command.d.ts.map +1 -1
- package/dist/common/authenticated-command.js +4 -4
- package/dist/common/authenticated-command.js.map +1 -1
- package/dist/services/browser-session-writer.d.ts +4 -0
- package/dist/services/browser-session-writer.d.ts.map +1 -0
- package/dist/services/browser-session-writer.js +52 -0
- package/dist/services/browser-session-writer.js.map +1 -0
- package/oclif.manifest.json +1620 -1562
- package/package.json +3 -3
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class BrowserSessionCommand extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static enableJsonFlag: boolean;
|
|
5
|
+
static flags: {
|
|
6
|
+
auth: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
'cred-store': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
8
|
+
force: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
9
|
+
output: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<unknown>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=browser-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-session.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/browser-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAQ,MAAM,aAAa,CAAA;AAM1C,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IACxD,MAAM,CAAC,WAAW,SAA0E;IAC5F,MAAM,CAAC,cAAc,UAAO;IAC5B,MAAM,CAAC,KAAK;;;;;MAKX;IAEK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;CAgB9B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import { logger as sdkLogger } from '@servicenow/sdk-cli/dist/logger/index.js';
|
|
3
|
+
import { createBrowserSession } from '@sonisoft/now-sdk-ext-core';
|
|
4
|
+
import { writeBrowserSession } from '../../services/browser-session-writer.js';
|
|
5
|
+
export default class BrowserSessionCommand extends Command {
|
|
6
|
+
static description = 'Create a verified Playwright cookie session using a stored SDK alias.';
|
|
7
|
+
static enableJsonFlag = true;
|
|
8
|
+
static flags = {
|
|
9
|
+
auth: Flags.string({ char: 'a', description: 'Stored SDK credential alias.', required: true }),
|
|
10
|
+
'cred-store': Flags.boolean({ description: 'Use the headless credential store.' }),
|
|
11
|
+
force: Flags.boolean({ description: 'Replace an existing regular output file.' }),
|
|
12
|
+
output: Flags.string({ description: 'Owner-only Playwright storage-state file.', required: true }),
|
|
13
|
+
};
|
|
14
|
+
async run() {
|
|
15
|
+
const { flags } = await this.parse(BrowserSessionCommand);
|
|
16
|
+
sdkLogger.setLevel('silent');
|
|
17
|
+
if ((flags['cred-store'] || process.env.SN_CRED_STORE_ENABLE) && process.env.NOW_SDK_KEYCHAIN_PATCHED !== '1') {
|
|
18
|
+
this.error('The requested credential store is inactive. Unset SN_CRED_STORE_DISABLE and check nex auth doctor.');
|
|
19
|
+
}
|
|
20
|
+
const session = await createBrowserSession({ alias: flags.auth });
|
|
21
|
+
const path = await writeBrowserSession(session, flags.output, flags.force);
|
|
22
|
+
const metadata = {
|
|
23
|
+
alias: session.alias, createdAt: session.createdAt, instanceUrl: session.instanceUrl,
|
|
24
|
+
oauthExpiresAt: session.oauthExpiresAt, path,
|
|
25
|
+
};
|
|
26
|
+
if (!this.jsonEnabled())
|
|
27
|
+
this.log(path);
|
|
28
|
+
return metadata;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=browser-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-session.js","sourceRoot":"","sources":["../../../src/commands/auth/browser-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAC,MAAM,IAAI,SAAS,EAAC,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAA;AAE/D,OAAO,EAAC,mBAAmB,EAAC,MAAM,0CAA0C,CAAA;AAE5E,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IACxD,MAAM,CAAC,WAAW,GAAG,uEAAuE,CAAA;IAC5F,MAAM,CAAC,cAAc,GAAG,IAAI,CAAA;IAC5B,MAAM,CAAC,KAAK,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;QAC5F,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAC,WAAW,EAAE,oCAAoC,EAAC,CAAC;QAChF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAC,WAAW,EAAE,0CAA0C,EAAC,CAAC;QAC/E,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,2CAA2C,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;KACjG,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,EAAE,CAAC;YAC9G,IAAI,CAAC,KAAK,CAAC,oGAAoG,CAAC,CAAA;QAClH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAC,CAAC,CAAA;QAC/D,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;YACpF,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI;SAC7C,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,QAAQ,CAAA;IACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticated-command.d.ts","sourceRoot":"","sources":["../../src/common/authenticated-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAS,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"authenticated-command.d.ts","sourceRoot":"","sources":["../../src/common/authenticated-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAS,UAAU,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAgD,MAAM,EAA0C,kBAAkB,EAA8B,MAAM,4BAA4B,CAAC;AAO1L,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAA;AAC7H,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAE/E,8BAAsB,oBAAoB,CAAC,CAAC,SAAS,OAAO,OAAO,CAAE,SAAQ,OAAO;IAElF,MAAM,CAAC,SAAS;;;;;;;;;MA4Df;IAEC,MAAM,CAAC,cAAc,UAAO;IAChC,SAAS,CAAC,OAAO,EAAG,MAAM,CAAC;IACvB,SAAS,CAAC,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IAEnC,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAE/B;cAEa,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC;cA8BrD,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAO9C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgGlC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ;CA0BjB"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Command, Flags } from '@oclif/core';
|
|
2
|
-
import { getCredentials } from "@servicenow/sdk-cli/dist/auth/index.js";
|
|
3
2
|
import { logger as sdkLogger } from '@servicenow/sdk-cli/dist/logger/index.js';
|
|
4
|
-
import { configureLogging, flushLogs, isPolicyRefusal, redactValue, ServiceNowInstance } from '@sonisoft/now-sdk-ext-core';
|
|
3
|
+
import { configureLogging, flushLogs, isPolicyRefusal, redactValue, resolveSessionCredentials, ServiceNowInstance } from '@sonisoft/now-sdk-ext-core';
|
|
5
4
|
import { LogFactory } from '../util/log-factory.js';
|
|
6
5
|
import { installCliPolicy } from './policy.js';
|
|
7
6
|
export class AuthenticatedCommand extends Command {
|
|
@@ -176,7 +175,7 @@ export class AuthenticatedCommand extends Command {
|
|
|
176
175
|
const alias = flags.auth || "fluent-default";
|
|
177
176
|
let credential;
|
|
178
177
|
try {
|
|
179
|
-
credential = await
|
|
178
|
+
credential = await resolveSessionCredentials(alias);
|
|
180
179
|
}
|
|
181
180
|
catch (error) {
|
|
182
181
|
// getCredentials throws for an unknown alias, but it also throws when the
|
|
@@ -197,7 +196,8 @@ export class AuthenticatedCommand extends Command {
|
|
|
197
196
|
}
|
|
198
197
|
const snSettings = {
|
|
199
198
|
alias: flags.auth,
|
|
200
|
-
credential
|
|
199
|
+
credential,
|
|
200
|
+
credentialProvider: () => resolveSessionCredentials(alias),
|
|
201
201
|
};
|
|
202
202
|
this.instance = new ServiceNowInstance(snSettings);
|
|
203
203
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticated-command.js","sourceRoot":"","sources":["../../src/common/authenticated-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAc,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"authenticated-command.js","sourceRoot":"","sources":["../../src/common/authenticated-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAc,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAU,WAAW,EAAE,yBAAyB,EAAE,kBAAkB,EAA8B,MAAM,4BAA4B,CAAC;AAE1L,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAC;AAOjE,MAAM,OAAgB,oBAA+C,SAAQ,OAAO;IACpF,kFAAkF;IAChF,MAAM,CAAC,SAAS,GAAG;QACjB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;QACrF,yEAAyE;QACzE,6EAA6E;QAC7E,2EAA2E;QAC3E,6BAA6B;QAC7B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1B,WAAW,EAAE,0EAA0E;gBACrF,gGAAgG;YAClG,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,gEAAgE;QAChE,EAAE;QACF,6EAA6E;QAC7E,kFAAkF;QAClF,mFAAmF;QACnF,kEAAkE;QAClE,EAAE;QACF,mFAAmF;QACnF,gFAAgF;QAChF,yEAAyE;QACzE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;YAC5B,WAAW,EAAE,wEAAwE;YACrF,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1B,WAAW,EAAE,yDAAyD;YACtE,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,sDAAsD;YACnE,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,oEAAoE;QACpE,+EAA+E;QAC/E,wDAAwD;QACxD,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC;YACxB,WAAW,EAAE,qEAAqE;gBAChF,4EAA4E;gBAC5E,qCAAqC;YACvC,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAU;YAC7D,OAAO,EAAE,4BAA4B;SAEtC,CAAC,EAAE;QACJ,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,sDAAsD;gBACjE,oDAAoD;YACtD,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAA;IACH,sBAAsB;IAClB,MAAM,CAAC,cAAc,GAAG,IAAI,CAAA;IACtB,OAAO,CAAU;IACb,IAAI,CAAW;IACf,UAAU,CAAS;IACnB,KAAK,CAAY;IACrB,QAAQ,CAAqB;IAEnC,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAW,MAAM,CAAC,MAAc;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,GAAgC;QACpD,8EAA8E;QAC9E,mFAAmF;QACnF,6EAA6E;QAC7E,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,CAAC,CAAC;YACpE,MAAM,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;gBACtB,WAAW,EAAE;oBACX,mEAAmE;oBACnE,2EAA2E;iBAC5E;aACF,CAAC,CAAC;QACL,CAAC;QAED,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;QAEnE,6EAA6E;QAC7E,+EAA+E;QAC/E,+EAA+E;QAC/E,4EAA4E;QAC5E,MAAM,SAAS,EAAE,CAAA;QAEjB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,CAAoB;QAC1C,+EAA+E;QAC/E,wEAAwE;QACxE,MAAM,SAAS,EAAE,CAAA;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,SAAS,EAAG,KAAK,CAAC,IAAoC,CAAC,SAAS;YAChE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SACzB,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,GAAG,KAAiB,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAe,CAAA;QAE3B,6EAA6E;QAC7E,uEAAuE;QACvE,uDAAuD;QACvD,MAAM,QAAQ,GAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAwB,IAAI,MAAM,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAuB,CAAC;QAE3D,iFAAiF;QACjF,mFAAmF;QACnF,0DAA0D;QAC1D,gBAAgB,CAAC;YACf,gFAAgF;YAChF,0DAA0D;YAC1D,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;YACxD,KAAK,EAAE,QAAQ;YACf,2EAA2E;YAC3E,6EAA6E;YAC7E,wDAAwD;YACxD,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAC,YAAY,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;YACxD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC5B,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,EAAE,CAAC;gBAChE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAe,EAAQ,EAAE;oBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ;4BAAE,OAAO,GAAG,CAAA;wBACvC,IAAI,CAAC;4BAAC,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;wBAAC,CAAC;wBAC9D,MAAM,CAAC;4BAAC,OAAO,kBAAkB,CAAA;wBAAC,CAAC;oBACrC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACZ,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAA;gBAC5C,CAAC,CAAA;YACH,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,+EAA+E;QAC/E,gFAAgF;QAChF,EAAE;QACF,mFAAmF;QACnF,+EAA+E;QAC/E,gFAAgF;QAChF,gBAAgB,CAAC,IAAI,CAAC,KAAoB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,6DAA6D;QAC7D,0JAA0J;QAC1J,yFAAyF;QAEzF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,gBAAgB,CAAC;QAE7C,IAAI,UAAU,CAAC;QACf,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0EAA0E;YAC1E,qEAAqE;YACrE,yEAAyE;YACzE,kDAAkD;YAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,4EAA4E;QAC5E,0EAA0E;QAC1E,8DAA8D;QAC9D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC;QAE1F,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,sEAAsE;YACtE,wEAAwE;YACxE,kBAAkB;YAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,UAAU,GAA+B;YAC7C,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,UAAU;YACV,kBAAkB,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC;SAC3D,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACK,eAAe;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAA;IACnF,CAAC;IAED;;;;;;;OAOG;IACK,QAAQ,CAAC,KAAa,EAAE,KAAe;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC;QAChE,MAAM,WAAW,GAAG;YAClB,gDAAgD;YAChD,oDAAoD;SACrD,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,yEAAyE;YACzE,4EAA4E;YAC5E,4EAA4E;YAC5E,0CAA0C;YAC1C,WAAW,CAAC,OAAO,CACjB,uFAAuF;gBACvF,0FAA0F;gBAC1F,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,MAAM,WAAW,GAAI,KAA4C,EAAE,WAAW,CAAC;QAC/E,IAAI,WAAW;YAAE,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,KAAK,IAAI,CAAC;QACrG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAC,WAAW,EAAC,CAAC,CAAC;IACpC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BrowserSession } from '@sonisoft/now-sdk-ext-core';
|
|
2
|
+
/** Persist browser state without exposing credentials through command output. */
|
|
3
|
+
export declare function writeBrowserSession(session: BrowserSession, output: string, force?: boolean): Promise<string>;
|
|
4
|
+
//# sourceMappingURL=browser-session-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-session-writer.d.ts","sourceRoot":"","sources":["../../src/services/browser-session-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAA;AAM9D,iFAAiF;AACjF,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCjH"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { link, lstat, mkdir, open, rename, unlink } from 'node:fs/promises';
|
|
3
|
+
import { dirname, resolve } from 'node:path';
|
|
4
|
+
/** Persist browser state without exposing credentials through command output. */
|
|
5
|
+
export async function writeBrowserSession(session, output, force = false) {
|
|
6
|
+
const path = resolve(output);
|
|
7
|
+
const parent = dirname(path);
|
|
8
|
+
await mkdir(parent, { mode: 0o700, recursive: true });
|
|
9
|
+
try {
|
|
10
|
+
const existing = await lstat(path);
|
|
11
|
+
if (existing.isSymbolicLink() || !existing.isFile())
|
|
12
|
+
throw new Error('Auth output must be a regular file.');
|
|
13
|
+
if (!force)
|
|
14
|
+
throw new Error('Auth output exists. Use --force to replace it.');
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
if (error.code !== 'ENOENT')
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
const temporary = resolve(parent, '.auth-' + randomUUID());
|
|
21
|
+
try {
|
|
22
|
+
const handle = await open(temporary, 'wx', 0o600);
|
|
23
|
+
try {
|
|
24
|
+
await handle.writeFile(JSON.stringify(session.storageState));
|
|
25
|
+
await handle.sync();
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
await handle.close();
|
|
29
|
+
}
|
|
30
|
+
if (force) {
|
|
31
|
+
const current = await lstat(path).catch((error) => {
|
|
32
|
+
if (error.code === 'ENOENT')
|
|
33
|
+
return;
|
|
34
|
+
throw error;
|
|
35
|
+
});
|
|
36
|
+
if (current && (!current.isFile() || current.isSymbolicLink()))
|
|
37
|
+
throw new Error('Auth output must be a regular file.');
|
|
38
|
+
await rename(temporary, path);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
await link(temporary, path);
|
|
42
|
+
}
|
|
43
|
+
return path;
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
await unlink(temporary).catch((error) => {
|
|
47
|
+
if (error.code !== 'ENOENT')
|
|
48
|
+
throw error;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=browser-session-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-session-writer.js","sourceRoot":"","sources":["../../src/services/browser-session-writer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAA;AACtC,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,WAAW,CAAA;AAE1C,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAuB,EAAE,MAAc,EAAE,KAAK,GAAG,KAAK;IAC9F,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,KAAK,CAAC,MAAM,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;IACnD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QAC3G,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAC/E,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAA;IACrE,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,EAAE,CAAC,CAAA;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;YAC5D,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;gBAAS,CAAC;YAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;QAElC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACzD,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAM;gBAC9D,MAAM,KAAK,CAAA;YACb,CAAC,CAAC,CAAA;YACF,IAAI,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;YACtH,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC7B,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC/C,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAA;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|