@mnemonik/shared 7.133.0 → 7.135.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/ambientPointer.d.ts.map +1 -1
- package/dist/ambientPointer.js +7 -1
- package/dist/ambientPointer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/systemdControl.d.ts +17 -0
- package/dist/systemdControl.d.ts.map +1 -1
- package/dist/systemdControl.js +44 -1
- package/dist/systemdControl.js.map +1 -1
- package/package.json +1 -1
- package/src/ambientPointer.ts +8 -1
- package/src/index.ts +6 -1
- package/src/systemdControl.ts +48 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ambientPointer.d.ts","sourceRoot":"","sources":["../src/ambientPointer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ambientPointer.d.ts","sourceRoot":"","sources":["../src/ambientPointer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAY1C,wFAAwF;AACxF,eAAO,MAAM,2BAA2B,QAEnB,CAAC;AAEtB,wBAAgB,uBAAuB,CAAC,KAAK,SAAM,GAAG,MAAM,CAE3D"}
|
package/dist/ambientPointer.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
export const AMBIENT_ID_PREFIX_LENGTH = 8;
|
|
2
2
|
const MEMORY_UUID_SOURCE = '[0-9A-Fa-f]{8}-(?:[0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}';
|
|
3
3
|
const LEGACY_MEMORY_ID_SOURCE = `[0-9A-Za-z_-]{${AMBIENT_ID_PREFIX_LENGTH}}`;
|
|
4
|
+
/**
|
|
5
|
+
* Words the memory-voice wording arm places between the dash and `memory_get`
|
|
6
|
+
* ("to recall it in full:"). Optional, so the production pointer form parses
|
|
7
|
+
* exactly as before.
|
|
8
|
+
*/
|
|
9
|
+
const FIRST_PERSON_POINTER_LEAD_SOURCE = '(?:to recall it in full:\\s*)?';
|
|
4
10
|
/** Current full UUID pointers plus cached eight-character pointers from older hooks. */
|
|
5
|
-
export const AMBIENT_ITEM_POINTER_SOURCE = `\\u2014\\s
|
|
11
|
+
export const AMBIENT_ITEM_POINTER_SOURCE = `\\u2014\\s*${FIRST_PERSON_POINTER_LEAD_SOURCE}memory_get\\s+(${MEMORY_UUID_SOURCE}|${LEGACY_MEMORY_ID_SOURCE})` +
|
|
6
12
|
'(?![0-9A-Za-z_-])';
|
|
7
13
|
export function ambientItemPointerRegex(flags = 'g') {
|
|
8
14
|
return new RegExp(AMBIENT_ITEM_POINTER_SOURCE, flags);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ambientPointer.js","sourceRoot":"","sources":["../src/ambientPointer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,kBAAkB,GAAG,sDAAsD,CAAC;AAClF,MAAM,uBAAuB,GAAG,iBAAiB,wBAAwB,GAAG,CAAC;AAE7E,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GACtC,
|
|
1
|
+
{"version":3,"file":"ambientPointer.js","sourceRoot":"","sources":["../src/ambientPointer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,kBAAkB,GAAG,sDAAsD,CAAC;AAClF,MAAM,uBAAuB,GAAG,iBAAiB,wBAAwB,GAAG,CAAC;AAE7E;;;;GAIG;AACH,MAAM,gCAAgC,GAAG,gCAAgC,CAAC;AAE1E,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GACtC,cAAc,gCAAgC,kBAAkB,kBAAkB,IAAI,uBAAuB,GAAG;IAChH,mBAAmB,CAAC;AAEtB,MAAM,UAAU,uBAAuB,CAAC,KAAK,GAAG,GAAG;IACjD,OAAO,IAAI,MAAM,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -30,6 +30,6 @@ export type { ServiceDefinition, SupervisorStatus, ServiceOperation, ServiceResu
|
|
|
30
30
|
export { apiOrigin } from './apiOrigin.js';
|
|
31
31
|
export { WINDOWS_SERVICE_BUDGET_MS, SCANNER_SERVICE_RUNNING_BUDGET_MS, SCANNER_STARTUP_BUDGET_MS, SCANNER_RAPID_FAILURE_LIMIT, SCANNER_HANDOFF_BUDGET_MS, SCANNER_RECEIPT_STALE_MS, SCANNER_MAC_COMMAND_BUDGET_MS, SCANNER_STOP_BUDGET_MS, SCANNER_REMOVAL_BUDGET_MS, scannerAttemptHealthy, } from './scannerSupervisor.js';
|
|
32
32
|
export { printLaunchdRegistration, stopLaunchdRegistrations, removeMacScanner, authorizeMacService, macScannerPlist, macScannerLauncher, } from './launchdControl.js';
|
|
33
|
-
export { uninstallSystemdUnit } from './systemdControl.js';
|
|
33
|
+
export { uninstallSystemdUnit, userManagerEnvironment, runtimeOwner, type RuntimeOwner, } from './systemdControl.js';
|
|
34
34
|
export { pidIsScanner } from './scannerPid.js';
|
|
35
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -29,6 +29,6 @@ export * from './hostBinary.js';
|
|
|
29
29
|
export { apiOrigin } from './apiOrigin.js';
|
|
30
30
|
export { WINDOWS_SERVICE_BUDGET_MS, SCANNER_SERVICE_RUNNING_BUDGET_MS, SCANNER_STARTUP_BUDGET_MS, SCANNER_RAPID_FAILURE_LIMIT, SCANNER_HANDOFF_BUDGET_MS, SCANNER_RECEIPT_STALE_MS, SCANNER_MAC_COMMAND_BUDGET_MS, SCANNER_STOP_BUDGET_MS, SCANNER_REMOVAL_BUDGET_MS, scannerAttemptHealthy, } from './scannerSupervisor.js';
|
|
31
31
|
export { printLaunchdRegistration, stopLaunchdRegistrations, removeMacScanner, authorizeMacService, macScannerPlist, macScannerLauncher, } from './launchdControl.js';
|
|
32
|
-
export { uninstallSystemdUnit } from './systemdControl.js';
|
|
32
|
+
export { uninstallSystemdUnit, userManagerEnvironment, runtimeOwner, } from './systemdControl.js';
|
|
33
33
|
export { pidIsScanner } from './scannerPid.js';
|
|
34
34
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AACrD,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GAKrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,GAUjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAwC,MAAM,iBAAiB,CAAC;AACvF,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,GAKnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,YAAY,GAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,YAAY,EACZ,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EAEd,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,GAIxB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAShC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AACrD,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GAKrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,GAUjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAwC,MAAM,iBAAiB,CAAC;AACvF,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,GAKnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,YAAY,GAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,YAAY,EACZ,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EAEd,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,GAIxB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAShC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/systemdControl.d.ts
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
/** Who owns a path and what it is, without following a final symlink. */
|
|
2
|
+
export type RuntimeOwner = (path: string) => {
|
|
3
|
+
uid: number;
|
|
4
|
+
type: 'directory' | 'socket' | 'other';
|
|
5
|
+
} | undefined;
|
|
6
|
+
export declare const runtimeOwner: RuntimeOwner;
|
|
7
|
+
/**
|
|
8
|
+
* The environment a `systemctl --user` child needs to reach this user's
|
|
9
|
+
* manager, or undefined to leave the child's environment exactly as it is.
|
|
10
|
+
* systemctl finds the manager through XDG_RUNTIME_DIR or the session bus. An
|
|
11
|
+
* agent shell, cron, or an SSH session without pam_systemd has neither, even
|
|
12
|
+
* though the manager is running and /run/user/<uid> exists. Each missing
|
|
13
|
+
* variable is named from that directory only when it is a real directory (and,
|
|
14
|
+
* for the bus, a socket) owned by this uid, so another user's runtime
|
|
15
|
+
* directory is never used. A variable already set is never replaced.
|
|
16
|
+
*/
|
|
17
|
+
export declare function userManagerEnvironment(uid: number | undefined, environment: NodeJS.ProcessEnv, owner: RuntimeOwner | undefined): NodeJS.ProcessEnv | undefined;
|
|
1
18
|
/** Native removal also works when the installed scanner or its unit file is damaged. */
|
|
2
19
|
export declare function uninstallSystemdUnit(unitPath: string, run: (file: string, args: string[]) => Promise<string>, options?: {
|
|
3
20
|
now?: () => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemdControl.d.ts","sourceRoot":"","sources":["../src/systemdControl.ts"],"names":[],"mappings":"AAOA,wFAAwF;AACxF,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EACtD,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GACL,OAAO,CAAC,IAAI,CAAC,CAmFf"}
|
|
1
|
+
{"version":3,"file":"systemdControl.d.ts","sourceRoot":"","sources":["../src/systemdControl.ts"],"names":[],"mappings":"AAOA,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,KACT;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC;AACzE,eAAO,MAAM,YAAY,EAAE,YAU1B,CAAC;AACF;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,WAAW,EAAE,MAAM,CAAC,UAAU,EAC9B,KAAK,EAAE,YAAY,GAAG,SAAS,GAC9B,MAAM,CAAC,UAAU,GAAG,SAAS,CAgB/B;AAED,wFAAwF;AACxF,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EACtD,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GACL,OAAO,CAAC,IAAI,CAAC,CAmFf"}
|
package/dist/systemdControl.js
CHANGED
|
@@ -1,9 +1,52 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
1
|
+
import { existsSync, lstatSync } from 'node:fs';
|
|
2
2
|
import { rm } from 'node:fs/promises';
|
|
3
3
|
import { basename, dirname, join } from 'node:path';
|
|
4
4
|
import { setTimeout as delay } from 'node:timers/promises';
|
|
5
5
|
import { processesAlive } from './launchdControl.js';
|
|
6
6
|
import { SCANNER_STOP_BUDGET_MS } from './scannerSupervisor.js';
|
|
7
|
+
export const runtimeOwner = (path) => {
|
|
8
|
+
try {
|
|
9
|
+
const entry = lstatSync(path);
|
|
10
|
+
return {
|
|
11
|
+
uid: entry.uid,
|
|
12
|
+
type: entry.isDirectory() ? 'directory' : entry.isSocket() ? 'socket' : 'other',
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The environment a `systemctl --user` child needs to reach this user's
|
|
21
|
+
* manager, or undefined to leave the child's environment exactly as it is.
|
|
22
|
+
* systemctl finds the manager through XDG_RUNTIME_DIR or the session bus. An
|
|
23
|
+
* agent shell, cron, or an SSH session without pam_systemd has neither, even
|
|
24
|
+
* though the manager is running and /run/user/<uid> exists. Each missing
|
|
25
|
+
* variable is named from that directory only when it is a real directory (and,
|
|
26
|
+
* for the bus, a socket) owned by this uid, so another user's runtime
|
|
27
|
+
* directory is never used. A variable already set is never replaced.
|
|
28
|
+
*/
|
|
29
|
+
export function userManagerEnvironment(uid, environment, owner) {
|
|
30
|
+
const missingRuntime = !environment.XDG_RUNTIME_DIR;
|
|
31
|
+
const missingBus = !environment.DBUS_SESSION_BUS_ADDRESS;
|
|
32
|
+
if (!missingRuntime && !missingBus)
|
|
33
|
+
return undefined;
|
|
34
|
+
if (!owner || uid === undefined || !Number.isInteger(uid) || uid < 0)
|
|
35
|
+
return undefined;
|
|
36
|
+
const directory = `/run/user/${uid}`;
|
|
37
|
+
const owned = (path, type) => {
|
|
38
|
+
const entry = owner(path);
|
|
39
|
+
return entry?.type === type && entry.uid === uid;
|
|
40
|
+
};
|
|
41
|
+
if (!owned(directory, 'directory'))
|
|
42
|
+
return undefined;
|
|
43
|
+
const added = {};
|
|
44
|
+
if (missingRuntime)
|
|
45
|
+
added.XDG_RUNTIME_DIR = directory;
|
|
46
|
+
if (missingBus && owned(`${directory}/bus`, 'socket'))
|
|
47
|
+
added.DBUS_SESSION_BUS_ADDRESS = `unix:path=${directory}/bus`;
|
|
48
|
+
return Object.keys(added).length ? { ...environment, ...added } : undefined;
|
|
49
|
+
}
|
|
7
50
|
/** Native removal also works when the installed scanner or its unit file is damaged. */
|
|
8
51
|
export async function uninstallSystemdUnit(unitPath, run, options = {}) {
|
|
9
52
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemdControl.js","sourceRoot":"","sources":["../src/systemdControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"systemdControl.js","sourceRoot":"","sources":["../src/systemdControl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/ambientPointer.ts
CHANGED
|
@@ -3,9 +3,16 @@ export const AMBIENT_ID_PREFIX_LENGTH = 8;
|
|
|
3
3
|
const MEMORY_UUID_SOURCE = '[0-9A-Fa-f]{8}-(?:[0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}';
|
|
4
4
|
const LEGACY_MEMORY_ID_SOURCE = `[0-9A-Za-z_-]{${AMBIENT_ID_PREFIX_LENGTH}}`;
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Words the memory-voice wording arm places between the dash and `memory_get`
|
|
8
|
+
* ("to recall it in full:"). Optional, so the production pointer form parses
|
|
9
|
+
* exactly as before.
|
|
10
|
+
*/
|
|
11
|
+
const FIRST_PERSON_POINTER_LEAD_SOURCE = '(?:to recall it in full:\\s*)?';
|
|
12
|
+
|
|
6
13
|
/** Current full UUID pointers plus cached eight-character pointers from older hooks. */
|
|
7
14
|
export const AMBIENT_ITEM_POINTER_SOURCE =
|
|
8
|
-
`\\u2014\\s
|
|
15
|
+
`\\u2014\\s*${FIRST_PERSON_POINTER_LEAD_SOURCE}memory_get\\s+(${MEMORY_UUID_SOURCE}|${LEGACY_MEMORY_ID_SOURCE})` +
|
|
9
16
|
'(?![0-9A-Za-z_-])';
|
|
10
17
|
|
|
11
18
|
export function ambientItemPointerRegex(flags = 'g'): RegExp {
|
package/src/index.ts
CHANGED
|
@@ -157,6 +157,11 @@ export {
|
|
|
157
157
|
macScannerLauncher,
|
|
158
158
|
} from './launchdControl.js';
|
|
159
159
|
|
|
160
|
-
export {
|
|
160
|
+
export {
|
|
161
|
+
uninstallSystemdUnit,
|
|
162
|
+
userManagerEnvironment,
|
|
163
|
+
runtimeOwner,
|
|
164
|
+
type RuntimeOwner,
|
|
165
|
+
} from './systemdControl.js';
|
|
161
166
|
|
|
162
167
|
export { pidIsScanner } from './scannerPid.js';
|
package/src/systemdControl.ts
CHANGED
|
@@ -1,10 +1,57 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
1
|
+
import { existsSync, lstatSync } from 'node:fs';
|
|
2
2
|
import { rm } from 'node:fs/promises';
|
|
3
3
|
import { basename, dirname, join } from 'node:path';
|
|
4
4
|
import { setTimeout as delay } from 'node:timers/promises';
|
|
5
5
|
import { processesAlive } from './launchdControl.js';
|
|
6
6
|
import { SCANNER_STOP_BUDGET_MS } from './scannerSupervisor.js';
|
|
7
7
|
|
|
8
|
+
/** Who owns a path and what it is, without following a final symlink. */
|
|
9
|
+
export type RuntimeOwner = (
|
|
10
|
+
path: string
|
|
11
|
+
) => { uid: number; type: 'directory' | 'socket' | 'other' } | undefined;
|
|
12
|
+
export const runtimeOwner: RuntimeOwner = (path) => {
|
|
13
|
+
try {
|
|
14
|
+
const entry = lstatSync(path);
|
|
15
|
+
return {
|
|
16
|
+
uid: entry.uid,
|
|
17
|
+
type: entry.isDirectory() ? 'directory' : entry.isSocket() ? 'socket' : 'other',
|
|
18
|
+
};
|
|
19
|
+
} catch {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* The environment a `systemctl --user` child needs to reach this user's
|
|
25
|
+
* manager, or undefined to leave the child's environment exactly as it is.
|
|
26
|
+
* systemctl finds the manager through XDG_RUNTIME_DIR or the session bus. An
|
|
27
|
+
* agent shell, cron, or an SSH session without pam_systemd has neither, even
|
|
28
|
+
* though the manager is running and /run/user/<uid> exists. Each missing
|
|
29
|
+
* variable is named from that directory only when it is a real directory (and,
|
|
30
|
+
* for the bus, a socket) owned by this uid, so another user's runtime
|
|
31
|
+
* directory is never used. A variable already set is never replaced.
|
|
32
|
+
*/
|
|
33
|
+
export function userManagerEnvironment(
|
|
34
|
+
uid: number | undefined,
|
|
35
|
+
environment: NodeJS.ProcessEnv,
|
|
36
|
+
owner: RuntimeOwner | undefined
|
|
37
|
+
): NodeJS.ProcessEnv | undefined {
|
|
38
|
+
const missingRuntime = !environment.XDG_RUNTIME_DIR;
|
|
39
|
+
const missingBus = !environment.DBUS_SESSION_BUS_ADDRESS;
|
|
40
|
+
if (!missingRuntime && !missingBus) return undefined;
|
|
41
|
+
if (!owner || uid === undefined || !Number.isInteger(uid) || uid < 0) return undefined;
|
|
42
|
+
const directory = `/run/user/${uid}`;
|
|
43
|
+
const owned = (path: string, type: 'directory' | 'socket') => {
|
|
44
|
+
const entry = owner(path);
|
|
45
|
+
return entry?.type === type && entry.uid === uid;
|
|
46
|
+
};
|
|
47
|
+
if (!owned(directory, 'directory')) return undefined;
|
|
48
|
+
const added: NodeJS.ProcessEnv = {};
|
|
49
|
+
if (missingRuntime) added.XDG_RUNTIME_DIR = directory;
|
|
50
|
+
if (missingBus && owned(`${directory}/bus`, 'socket'))
|
|
51
|
+
added.DBUS_SESSION_BUS_ADDRESS = `unix:path=${directory}/bus`;
|
|
52
|
+
return Object.keys(added).length ? { ...environment, ...added } : undefined;
|
|
53
|
+
}
|
|
54
|
+
|
|
8
55
|
/** Native removal also works when the installed scanner or its unit file is damaged. */
|
|
9
56
|
export async function uninstallSystemdUnit(
|
|
10
57
|
unitPath: string,
|