@xyteai/cli 0.1.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/LICENSE +176 -0
- package/README.md +245 -0
- package/dist/bin/xyte-cli.d.ts +3 -0
- package/dist/bin/xyte-cli.d.ts.map +1 -0
- package/dist/bin/xyte-cli.js +18 -0
- package/dist/bin/xyte-cli.js.map +1 -0
- package/dist/cli/index.d.ts +24 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +1185 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/client/catalog.d.ts +6 -0
- package/dist/client/catalog.d.ts.map +1 -0
- package/dist/client/catalog.js +32 -0
- package/dist/client/catalog.js.map +1 -0
- package/dist/client/create-client.d.ts +3 -0
- package/dist/client/create-client.d.ts.map +1 -0
- package/dist/client/create-client.js +235 -0
- package/dist/client/create-client.js.map +1 -0
- package/dist/config/connectivity.d.ts +19 -0
- package/dist/config/connectivity.d.ts.map +1 -0
- package/dist/config/connectivity.js +166 -0
- package/dist/config/connectivity.js.map +1 -0
- package/dist/config/readiness.d.ts +32 -0
- package/dist/config/readiness.d.ts.map +1 -0
- package/dist/config/readiness.js +96 -0
- package/dist/config/readiness.js.map +1 -0
- package/dist/config/retry-policy.d.ts +16 -0
- package/dist/config/retry-policy.d.ts.map +1 -0
- package/dist/config/retry-policy.js +24 -0
- package/dist/config/retry-policy.js.map +1 -0
- package/dist/contracts/call-envelope.d.ts +74 -0
- package/dist/contracts/call-envelope.d.ts.map +1 -0
- package/dist/contracts/call-envelope.js +72 -0
- package/dist/contracts/call-envelope.js.map +1 -0
- package/dist/contracts/problem.d.ts +11 -0
- package/dist/contracts/problem.d.ts.map +1 -0
- package/dist/contracts/problem.js +55 -0
- package/dist/contracts/problem.js.map +1 -0
- package/dist/contracts/versions.d.ts +6 -0
- package/dist/contracts/versions.d.ts.map +1 -0
- package/dist/contracts/versions.js +9 -0
- package/dist/contracts/versions.js.map +1 -0
- package/dist/http/errors.d.ts +24 -0
- package/dist/http/errors.d.ts.map +1 -0
- package/dist/http/errors.js +39 -0
- package/dist/http/errors.js.map +1 -0
- package/dist/http/transport.d.ts +35 -0
- package/dist/http/transport.d.ts.map +1 -0
- package/dist/http/transport.js +129 -0
- package/dist/http/transport.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +404 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/namespaces/device.d.ts +38 -0
- package/dist/namespaces/device.d.ts.map +1 -0
- package/dist/namespaces/device.js +36 -0
- package/dist/namespaces/device.js.map +1 -0
- package/dist/namespaces/organization.d.ts +27 -0
- package/dist/namespaces/organization.d.ts.map +1 -0
- package/dist/namespaces/organization.js +30 -0
- package/dist/namespaces/organization.js.map +1 -0
- package/dist/namespaces/partner.d.ts +18 -0
- package/dist/namespaces/partner.d.ts.map +1 -0
- package/dist/namespaces/partner.js +21 -0
- package/dist/namespaces/partner.js.map +1 -0
- package/dist/observability/logger.d.ts +3 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +21 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/tracing.d.ts +3 -0
- package/dist/observability/tracing.d.ts.map +1 -0
- package/dist/observability/tracing.js +26 -0
- package/dist/observability/tracing.js.map +1 -0
- package/dist/secure/key-slots.d.ts +8 -0
- package/dist/secure/key-slots.d.ts.map +1 -0
- package/dist/secure/key-slots.js +47 -0
- package/dist/secure/key-slots.js.map +1 -0
- package/dist/secure/keychain.d.ts +20 -0
- package/dist/secure/keychain.d.ts.map +1 -0
- package/dist/secure/keychain.js +170 -0
- package/dist/secure/keychain.js.map +1 -0
- package/dist/secure/profile-store.d.ts +66 -0
- package/dist/secure/profile-store.d.ts.map +1 -0
- package/dist/secure/profile-store.js +309 -0
- package/dist/secure/profile-store.js.map +1 -0
- package/dist/spec/public-endpoints.json +1175 -0
- package/dist/tui/animation.d.ts +12 -0
- package/dist/tui/animation.d.ts.map +1 -0
- package/dist/tui/animation.js +41 -0
- package/dist/tui/animation.js.map +1 -0
- package/dist/tui/app.d.ts +27 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +711 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/assets/logo.d.ts +5 -0
- package/dist/tui/assets/logo.d.ts.map +1 -0
- package/dist/tui/assets/logo.js +24 -0
- package/dist/tui/assets/logo.js.map +1 -0
- package/dist/tui/data-loaders.d.ts +33 -0
- package/dist/tui/data-loaders.d.ts.map +1 -0
- package/dist/tui/data-loaders.js +250 -0
- package/dist/tui/data-loaders.js.map +1 -0
- package/dist/tui/dispatch.d.ts +14 -0
- package/dist/tui/dispatch.d.ts.map +1 -0
- package/dist/tui/dispatch.js +44 -0
- package/dist/tui/dispatch.js.map +1 -0
- package/dist/tui/headless-renderer.d.ts +20 -0
- package/dist/tui/headless-renderer.d.ts.map +1 -0
- package/dist/tui/headless-renderer.js +598 -0
- package/dist/tui/headless-renderer.js.map +1 -0
- package/dist/tui/input-controller.d.ts +29 -0
- package/dist/tui/input-controller.d.ts.map +1 -0
- package/dist/tui/input-controller.js +76 -0
- package/dist/tui/input-controller.js.map +1 -0
- package/dist/tui/key-wizard.d.ts +29 -0
- package/dist/tui/key-wizard.d.ts.map +1 -0
- package/dist/tui/key-wizard.js +177 -0
- package/dist/tui/key-wizard.js.map +1 -0
- package/dist/tui/keymap.d.ts +9 -0
- package/dist/tui/keymap.d.ts.map +1 -0
- package/dist/tui/keymap.js +29 -0
- package/dist/tui/keymap.js.map +1 -0
- package/dist/tui/layout.d.ts +16 -0
- package/dist/tui/layout.d.ts.map +1 -0
- package/dist/tui/layout.js +99 -0
- package/dist/tui/layout.js.map +1 -0
- package/dist/tui/logger.d.ts +12 -0
- package/dist/tui/logger.d.ts.map +1 -0
- package/dist/tui/logger.js +83 -0
- package/dist/tui/logger.js.map +1 -0
- package/dist/tui/navigation.d.ts +26 -0
- package/dist/tui/navigation.d.ts.map +1 -0
- package/dist/tui/navigation.js +136 -0
- package/dist/tui/navigation.js.map +1 -0
- package/dist/tui/panes.d.ts +7 -0
- package/dist/tui/panes.d.ts.map +1 -0
- package/dist/tui/panes.js +34 -0
- package/dist/tui/panes.js.map +1 -0
- package/dist/tui/runtime.d.ts +34 -0
- package/dist/tui/runtime.d.ts.map +1 -0
- package/dist/tui/runtime.js +100 -0
- package/dist/tui/runtime.js.map +1 -0
- package/dist/tui/scene.d.ts +160 -0
- package/dist/tui/scene.d.ts.map +1 -0
- package/dist/tui/scene.js +424 -0
- package/dist/tui/scene.js.map +1 -0
- package/dist/tui/screens/config.d.ts +3 -0
- package/dist/tui/screens/config.d.ts.map +1 -0
- package/dist/tui/screens/config.js +406 -0
- package/dist/tui/screens/config.js.map +1 -0
- package/dist/tui/screens/dashboard.d.ts +3 -0
- package/dist/tui/screens/dashboard.d.ts.map +1 -0
- package/dist/tui/screens/dashboard.js +176 -0
- package/dist/tui/screens/dashboard.js.map +1 -0
- package/dist/tui/screens/devices.d.ts +3 -0
- package/dist/tui/screens/devices.d.ts.map +1 -0
- package/dist/tui/screens/devices.js +297 -0
- package/dist/tui/screens/devices.js.map +1 -0
- package/dist/tui/screens/incidents.d.ts +4 -0
- package/dist/tui/screens/incidents.d.ts.map +1 -0
- package/dist/tui/screens/incidents.js +304 -0
- package/dist/tui/screens/incidents.js.map +1 -0
- package/dist/tui/screens/setup.d.ts +3 -0
- package/dist/tui/screens/setup.d.ts.map +1 -0
- package/dist/tui/screens/setup.js +299 -0
- package/dist/tui/screens/setup.js.map +1 -0
- package/dist/tui/screens/spaces.d.ts +7 -0
- package/dist/tui/screens/spaces.d.ts.map +1 -0
- package/dist/tui/screens/spaces.js +422 -0
- package/dist/tui/screens/spaces.js.map +1 -0
- package/dist/tui/screens/tickets.d.ts +9 -0
- package/dist/tui/screens/tickets.d.ts.map +1 -0
- package/dist/tui/screens/tickets.js +418 -0
- package/dist/tui/screens/tickets.js.map +1 -0
- package/dist/tui/serialize.d.ts +31 -0
- package/dist/tui/serialize.d.ts.map +1 -0
- package/dist/tui/serialize.js +183 -0
- package/dist/tui/serialize.js.map +1 -0
- package/dist/tui/table-format.d.ts +11 -0
- package/dist/tui/table-format.d.ts.map +1 -0
- package/dist/tui/table-format.js +77 -0
- package/dist/tui/table-format.js.map +1 -0
- package/dist/tui/tabs.d.ts +4 -0
- package/dist/tui/tabs.d.ts.map +1 -0
- package/dist/tui/tabs.js +13 -0
- package/dist/tui/tabs.js.map +1 -0
- package/dist/tui/types.d.ts +37 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +3 -0
- package/dist/tui/types.js.map +1 -0
- package/dist/types/client.d.ts +54 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +3 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/endpoints.d.ts +29 -0
- package/dist/types/endpoints.d.ts.map +1 -0
- package/dist/types/endpoints.js +3 -0
- package/dist/types/endpoints.js.map +1 -0
- package/dist/types/profile.d.ts +29 -0
- package/dist/types/profile.d.ts.map +1 -0
- package/dist/types/profile.js +3 -0
- package/dist/types/profile.js.map +1 -0
- package/dist/utils/config-dir.d.ts +2 -0
- package/dist/utils/config-dir.d.ts.map +1 -0
- package/dist/utils/config-dir.js +23 -0
- package/dist/utils/config-dir.js.map +1 -0
- package/dist/utils/error-format.d.ts +4 -0
- package/dist/utils/error-format.d.ts.map +1 -0
- package/dist/utils/error-format.js +34 -0
- package/dist/utils/error-format.js.map +1 -0
- package/dist/utils/install-skills.d.ts +38 -0
- package/dist/utils/install-skills.d.ts.map +1 -0
- package/dist/utils/install-skills.js +117 -0
- package/dist/utils/install-skills.js.map +1 -0
- package/dist/utils/json-output.d.ts +6 -0
- package/dist/utils/json-output.d.ts.map +1 -0
- package/dist/utils/json-output.js +30 -0
- package/dist/utils/json-output.js.map +1 -0
- package/dist/utils/json.d.ts +4 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +36 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +28 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/workflows/fleet-insights.d.ts +122 -0
- package/dist/workflows/fleet-insights.d.ts.map +1 -0
- package/dist/workflows/fleet-insights.js +938 -0
- package/dist/workflows/fleet-insights.js.map +1 -0
- package/docs/schemas/call-envelope.v1.schema.json +140 -0
- package/docs/schemas/headless-frame.v1.schema.json +159 -0
- package/docs/schemas/inspect-deep-dive.v1.schema.json +251 -0
- package/docs/schemas/inspect-fleet.v1.schema.json +111 -0
- package/docs/schemas/report.v1.schema.json +39 -0
- package/package.json +75 -0
- package/skills/xyte-cli/SKILL.md +181 -0
- package/skills/xyte-cli/agents/openai.yaml +4 -0
- package/skills/xyte-cli/references/endpoints.md +106 -0
- package/skills/xyte-cli/references/headless-contract.md +96 -0
- package/skills/xyte-cli/references/tui-flows.md +126 -0
- package/skills/xyte-cli/scripts/check_headless.sh +83 -0
- package/skills/xyte-cli/scripts/endpoint_filters_report.sh +33 -0
- package/skills/xyte-cli/scripts/run_xyte_cli.sh +12 -0
- package/skills/xyte-cli/scripts/validate_agent_contracts.sh +72 -0
- package/skills/xyte-cli/scripts/validate_with_schema.js +30 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { NamespaceCall, XyteCallArgs } from '../types/client';
|
|
2
|
+
export interface DeviceNamespace {
|
|
3
|
+
getCommand: NamespaceCall;
|
|
4
|
+
getCommandsWithChildren: NamespaceCall;
|
|
5
|
+
updateCommand: NamespaceCall;
|
|
6
|
+
getConfig: NamespaceCall;
|
|
7
|
+
setConfig: NamespaceCall;
|
|
8
|
+
getDeviceInfo: NamespaceCall;
|
|
9
|
+
getSpaceInfo: NamespaceCall;
|
|
10
|
+
setCloudSettings: (args: XyteCallArgs & {
|
|
11
|
+
body: {
|
|
12
|
+
property: string;
|
|
13
|
+
value: unknown;
|
|
14
|
+
} | Record<string, unknown>;
|
|
15
|
+
}) => Promise<unknown>;
|
|
16
|
+
updateDevice: NamespaceCall;
|
|
17
|
+
addEvent: NamespaceCall;
|
|
18
|
+
appendDumpFile: NamespaceCall;
|
|
19
|
+
sendDump: NamespaceCall;
|
|
20
|
+
closeIncident: NamespaceCall;
|
|
21
|
+
closeIncidents: NamespaceCall;
|
|
22
|
+
getIncidents: NamespaceCall;
|
|
23
|
+
openIncident: NamespaceCall;
|
|
24
|
+
getLicense: NamespaceCall;
|
|
25
|
+
updateLicense: NamespaceCall;
|
|
26
|
+
bulkRegisterDevice: NamespaceCall;
|
|
27
|
+
deleteDevice: NamespaceCall;
|
|
28
|
+
getChildDevices: NamespaceCall;
|
|
29
|
+
registerChildDevice: NamespaceCall;
|
|
30
|
+
registerDevice: NamespaceCall;
|
|
31
|
+
getFile: NamespaceCall;
|
|
32
|
+
getFiles: NamespaceCall;
|
|
33
|
+
sendChildTelemetry: NamespaceCall;
|
|
34
|
+
sendMassTelemetry: NamespaceCall;
|
|
35
|
+
sendTelemetry: NamespaceCall;
|
|
36
|
+
}
|
|
37
|
+
export declare function createDeviceNamespace(call: (endpointKey: string, args?: XyteCallArgs) => Promise<unknown>): DeviceNamespace;
|
|
38
|
+
//# sourceMappingURL=device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/namespaces/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,aAAa,CAAC;IAC1B,uBAAuB,EAAE,aAAa,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,aAAa,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,aAAa,CAAC;IAC5B,gBAAgB,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG;QAAE,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtI,YAAY,EAAE,aAAa,CAAC;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,aAAa,CAAC;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,aAAa,CAAC;IAC9B,YAAY,EAAE,aAAa,CAAC;IAC5B,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,aAAa,CAAC;IAClC,YAAY,EAAE,aAAa,CAAC;IAC5B,eAAe,EAAE,aAAa,CAAC;IAC/B,mBAAmB,EAAE,aAAa,CAAC;IACnC,cAAc,EAAE,aAAa,CAAC;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,aAAa,CAAC;IACxB,kBAAkB,EAAE,aAAa,CAAC;IAClC,iBAAiB,EAAE,aAAa,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,eAAe,CA+B3H"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDeviceNamespace = createDeviceNamespace;
|
|
4
|
+
function createDeviceNamespace(call) {
|
|
5
|
+
return {
|
|
6
|
+
getCommand: (args) => call('device.command.getCommand', args),
|
|
7
|
+
getCommandsWithChildren: (args) => call('device.command.getCommandsWithChildren', args),
|
|
8
|
+
updateCommand: (args) => call('device.command.updateCommand', args),
|
|
9
|
+
getConfig: (args) => call('device.configuration.getConfig', args),
|
|
10
|
+
setConfig: (args) => call('device.configuration.setConfig', args),
|
|
11
|
+
getDeviceInfo: (args) => call('device.device-info.getDeviceInfo', args),
|
|
12
|
+
getSpaceInfo: (args) => call('device.device-info.getSpaceInfo', args),
|
|
13
|
+
setCloudSettings: (args) => call('device.device-info.setCloudSettings', args),
|
|
14
|
+
updateDevice: (args) => call('device.device-info.updateDevice', args),
|
|
15
|
+
addEvent: (args) => call('device.events.addEvent', args),
|
|
16
|
+
appendDumpFile: (args) => call('device.file-dumps.appendDumpFile', args),
|
|
17
|
+
sendDump: (args) => call('device.file-dumps.sendDump', args),
|
|
18
|
+
closeIncident: (args) => call('device.incidents.closeIncident', args),
|
|
19
|
+
closeIncidents: (args) => call('device.incidents.closeIncidents', args),
|
|
20
|
+
getIncidents: (args) => call('device.incidents.getIncidents', args),
|
|
21
|
+
openIncident: (args) => call('device.incidents.openIncident', args),
|
|
22
|
+
getLicense: (args) => call('device.license.getLicense', args),
|
|
23
|
+
updateLicense: (args) => call('device.license.updateLicense', args),
|
|
24
|
+
bulkRegisterDevice: (args) => call('device.registration.bulkRegisterDevice', args),
|
|
25
|
+
deleteDevice: (args) => call('device.registration.deleteDevice', args),
|
|
26
|
+
getChildDevices: (args) => call('device.registration.getChildDevices', args),
|
|
27
|
+
registerChildDevice: (args) => call('device.registration.registerChildDevice', args),
|
|
28
|
+
registerDevice: (args) => call('device.registration.registerDevice', args),
|
|
29
|
+
getFile: (args) => call('device.remote-files.getFile', args),
|
|
30
|
+
getFiles: (args) => call('device.remote-files.getFiles', args),
|
|
31
|
+
sendChildTelemetry: (args) => call('device.telemetries.sendChildTelemetry', args),
|
|
32
|
+
sendMassTelemetry: (args) => call('device.telemetries.sendMassTelemetry', args),
|
|
33
|
+
sendTelemetry: (args) => call('device.telemetries.sendTelemetry', args)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/namespaces/device.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { NamespaceCall, XyteCallArgs } from '../types/client';
|
|
2
|
+
export interface OrganizationNamespace {
|
|
3
|
+
cancelCommand: NamespaceCall;
|
|
4
|
+
getCommands: NamespaceCall;
|
|
5
|
+
sendCommand: NamespaceCall;
|
|
6
|
+
claimDevice: NamespaceCall;
|
|
7
|
+
deleteDevice: NamespaceCall;
|
|
8
|
+
getDevice: NamespaceCall;
|
|
9
|
+
getDevices: NamespaceCall;
|
|
10
|
+
getHistories: NamespaceCall;
|
|
11
|
+
updateDevice: NamespaceCall;
|
|
12
|
+
getOrganizationInfo: NamespaceCall;
|
|
13
|
+
getIncidents: NamespaceCall;
|
|
14
|
+
createSpace: NamespaceCall;
|
|
15
|
+
deleteSpace: NamespaceCall;
|
|
16
|
+
findOrCreateSpace: NamespaceCall;
|
|
17
|
+
getSpace: NamespaceCall;
|
|
18
|
+
getSpaces: NamespaceCall;
|
|
19
|
+
updateSpace: NamespaceCall;
|
|
20
|
+
getTicket: NamespaceCall;
|
|
21
|
+
getTickets: NamespaceCall;
|
|
22
|
+
markResolved: NamespaceCall;
|
|
23
|
+
sendMessage: NamespaceCall;
|
|
24
|
+
updateTicket: NamespaceCall;
|
|
25
|
+
}
|
|
26
|
+
export declare function createOrganizationNamespace(call: (endpointKey: string, args?: XyteCallArgs) => Promise<unknown>): OrganizationNamespace;
|
|
27
|
+
//# sourceMappingURL=organization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../src/namespaces/organization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,aAAa,CAAC;IAC3B,WAAW,EAAE,aAAa,CAAC;IAC3B,WAAW,EAAE,aAAa,CAAC;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,YAAY,EAAE,aAAa,CAAC;IAC5B,YAAY,EAAE,aAAa,CAAC;IAC5B,mBAAmB,EAAE,aAAa,CAAC;IACnC,YAAY,EAAE,aAAa,CAAC;IAC5B,WAAW,EAAE,aAAa,CAAC;IAC3B,WAAW,EAAE,aAAa,CAAC;IAC3B,iBAAiB,EAAE,aAAa,CAAC;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,YAAY,EAAE,aAAa,CAAC;IAC5B,WAAW,EAAE,aAAa,CAAC;IAC3B,YAAY,EAAE,aAAa,CAAC;CAC7B;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAyBvI"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createOrganizationNamespace = createOrganizationNamespace;
|
|
4
|
+
function createOrganizationNamespace(call) {
|
|
5
|
+
return {
|
|
6
|
+
cancelCommand: (args) => call('organization.commands.cancelCommand', args),
|
|
7
|
+
getCommands: (args) => call('organization.commands.getCommands', args),
|
|
8
|
+
sendCommand: (args) => call('organization.commands.sendCommand', args),
|
|
9
|
+
claimDevice: (args) => call('organization.devices.claimDevice', args),
|
|
10
|
+
deleteDevice: (args) => call('organization.devices.deleteDevice', args),
|
|
11
|
+
getDevice: (args) => call('organization.devices.getDevice', args),
|
|
12
|
+
getDevices: (args) => call('organization.devices.getDevices', args),
|
|
13
|
+
getHistories: (args) => call('organization.devices.getHistories', args),
|
|
14
|
+
updateDevice: (args) => call('organization.devices.updateDevice', args),
|
|
15
|
+
getOrganizationInfo: (args) => call('organization.getOrganizationInfo', args),
|
|
16
|
+
getIncidents: (args) => call('organization.incidents.getIncidents', args),
|
|
17
|
+
createSpace: (args) => call('organization.spaces.createSpace', args),
|
|
18
|
+
deleteSpace: (args) => call('organization.spaces.deleteSpace', args),
|
|
19
|
+
findOrCreateSpace: (args) => call('organization.spaces.findOrCreateSpace', args),
|
|
20
|
+
getSpace: (args) => call('organization.spaces.getSpace', args),
|
|
21
|
+
getSpaces: (args) => call('organization.spaces.getSpaces', args),
|
|
22
|
+
updateSpace: (args) => call('organization.spaces.updateSpace', args),
|
|
23
|
+
getTicket: (args) => call('organization.tickets.getTicket', args),
|
|
24
|
+
getTickets: (args) => call('organization.tickets.getTickets', args),
|
|
25
|
+
markResolved: (args) => call('organization.tickets.markResolved', args),
|
|
26
|
+
sendMessage: (args) => call('organization.tickets.sendMessage', args),
|
|
27
|
+
updateTicket: (args) => call('organization.tickets.updateTicket', args)
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=organization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization.js","sourceRoot":"","sources":["../../src/namespaces/organization.ts"],"names":[],"mappings":";;AA2BA,kEAyBC;AAzBD,SAAgB,2BAA2B,CAAC,IAAoE;IAC9G,OAAO;QACL,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,qCAAqC,EAAE,IAAI,CAAC;QAC1E,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC;QACtE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC;QACtE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC;QACrE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC;QACvE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gCAAgC,EAAE,IAAI,CAAC;QACjE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC;QACnE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC;QACvE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC;QACvE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC;QAC7E,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,qCAAqC,EAAE,IAAI,CAAC;QACzE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC;QACpE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC;QACpE,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,uCAAuC,EAAE,IAAI,CAAC;QAChF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC;QAC9D,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAAC;QAChE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC;QACpE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gCAAgC,EAAE,IAAI,CAAC;QACjE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC;QACnE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC;QACvE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC;QACrE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC;KACxE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { NamespaceCall, XyteCallArgs } from '../types/client';
|
|
2
|
+
export interface PartnerNamespace {
|
|
3
|
+
deleteDevice: NamespaceCall;
|
|
4
|
+
getCommands: NamespaceCall;
|
|
5
|
+
getConfiguration: NamespaceCall;
|
|
6
|
+
getDeviceInfo: NamespaceCall;
|
|
7
|
+
getDevices: NamespaceCall;
|
|
8
|
+
getStateHistory: NamespaceCall;
|
|
9
|
+
getStateHistoryMultiDevices: NamespaceCall;
|
|
10
|
+
getTelemetries: NamespaceCall;
|
|
11
|
+
addComment: NamespaceCall;
|
|
12
|
+
closeTicket: NamespaceCall;
|
|
13
|
+
getTicket: NamespaceCall;
|
|
14
|
+
getTickets: NamespaceCall;
|
|
15
|
+
updateTicket: NamespaceCall;
|
|
16
|
+
}
|
|
17
|
+
export declare function createPartnerNamespace(call: (endpointKey: string, args?: XyteCallArgs) => Promise<unknown>): PartnerNamespace;
|
|
18
|
+
//# sourceMappingURL=partner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner.d.ts","sourceRoot":"","sources":["../../src/namespaces/partner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,aAAa,CAAC;IAC5B,WAAW,EAAE,aAAa,CAAC;IAC3B,gBAAgB,EAAE,aAAa,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,aAAa,CAAC;IAC1B,eAAe,EAAE,aAAa,CAAC;IAC/B,2BAA2B,EAAE,aAAa,CAAC;IAC3C,cAAc,EAAE,aAAa,CAAC;IAC9B,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,YAAY,EAAE,aAAa,CAAC;CAC7B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAgB7H"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPartnerNamespace = createPartnerNamespace;
|
|
4
|
+
function createPartnerNamespace(call) {
|
|
5
|
+
return {
|
|
6
|
+
deleteDevice: (args) => call('partner.devices.deleteDevice', args),
|
|
7
|
+
getCommands: (args) => call('partner.devices.getCommands', args),
|
|
8
|
+
getConfiguration: (args) => call('partner.devices.getConfiguration', args),
|
|
9
|
+
getDeviceInfo: (args) => call('partner.devices.getDeviceInfo', args),
|
|
10
|
+
getDevices: (args) => call('partner.devices.getDevices', args),
|
|
11
|
+
getStateHistory: (args) => call('partner.devices.getStateHistory', args),
|
|
12
|
+
getStateHistoryMultiDevices: (args) => call('partner.devices.getStateHistoryMultiDevices', args),
|
|
13
|
+
getTelemetries: (args) => call('partner.devices.getTelemetries', args),
|
|
14
|
+
addComment: (args) => call('partner.tickets.addComment', args),
|
|
15
|
+
closeTicket: (args) => call('partner.tickets.closeTicket', args),
|
|
16
|
+
getTicket: (args) => call('partner.tickets.getTicket', args),
|
|
17
|
+
getTickets: (args) => call('partner.tickets.getTickets', args),
|
|
18
|
+
updateTicket: (args) => call('partner.tickets.updateTicket', args)
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=partner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner.js","sourceRoot":"","sources":["../../src/namespaces/partner.ts"],"names":[],"mappings":";;AAkBA,wDAgBC;AAhBD,SAAgB,sBAAsB,CAAC,IAAoE;IACzG,OAAO;QACL,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC;QAClE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC;QAChE,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC;QAC1E,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAAC;QACpE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC;QAC9D,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC;QACxE,2BAA2B,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,6CAA6C,EAAE,IAAI,CAAC;QAChG,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gCAAgC,EAAE,IAAI,CAAC;QACtE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC;QAC9D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC;QAChE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC;QAC5D,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC;QAC9D,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC;KACnE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/observability/logger.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAQzC,wBAAgB,SAAS,IAAI,MAAM,CAQlC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getLogger = getLogger;
|
|
7
|
+
const pino_1 = __importDefault(require("pino"));
|
|
8
|
+
function resolveLevel() {
|
|
9
|
+
return process.env.XYTE_LOG_LEVEL?.trim() || 'silent';
|
|
10
|
+
}
|
|
11
|
+
let singleton;
|
|
12
|
+
function getLogger() {
|
|
13
|
+
if (!singleton) {
|
|
14
|
+
singleton = (0, pino_1.default)({
|
|
15
|
+
name: 'xyte-cli',
|
|
16
|
+
level: resolveLevel()
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return singleton;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/observability/logger.ts"],"names":[],"mappings":";;;;;AAQA,8BAQC;AAhBD,gDAAyC;AAEzC,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC;AACxD,CAAC;AAED,IAAI,SAA6B,CAAC;AAElC,SAAgB,SAAS;IACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,IAAA,cAAI,EAAC;YACf,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,YAAY,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/observability/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAIvF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiBnH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withSpan = withSpan;
|
|
4
|
+
const api_1 = require("@opentelemetry/api");
|
|
5
|
+
const tracer = api_1.trace.getTracer('xyte-cli');
|
|
6
|
+
function withSpan(name, attributes, operation) {
|
|
7
|
+
return tracer.startActiveSpan(name, { attributes }, async (span) => {
|
|
8
|
+
try {
|
|
9
|
+
const result = await operation(span);
|
|
10
|
+
span.setStatus({ code: api_1.SpanStatusCode.OK });
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
span.recordException(error);
|
|
15
|
+
span.setStatus({
|
|
16
|
+
code: api_1.SpanStatusCode.ERROR,
|
|
17
|
+
message: error instanceof Error ? error.message : String(error)
|
|
18
|
+
});
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
span.end();
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/observability/tracing.ts"],"names":[],"mappings":";;AAIA,4BAiBC;AArBD,4CAAuF;AAEvF,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAE3C,SAAgB,QAAQ,CAAI,IAAY,EAAE,UAAsB,EAAE,SAAqC;IACrG,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,oBAAc,CAAC,KAAK;gBAC1B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ApiKeySlotMeta } from '../types/profile';
|
|
2
|
+
export declare const DEFAULT_SLOT_ID = "default";
|
|
3
|
+
export declare function makeKeyFingerprint(secret: string): string;
|
|
4
|
+
export declare function slugifySlotName(name: string): string;
|
|
5
|
+
export declare function buildSlotId(name: string, existingSlotIds: Set<string>): string;
|
|
6
|
+
export declare function matchesSlotRef(slot: ApiKeySlotMeta, slotRef: string): boolean;
|
|
7
|
+
export declare function ensureSlotName(name: string): string;
|
|
8
|
+
//# sourceMappingURL=key-slots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-slots.d.ts","sourceRoot":"","sources":["../../src/secure/key-slots.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAW9E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAM7E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_SLOT_ID = void 0;
|
|
4
|
+
exports.makeKeyFingerprint = makeKeyFingerprint;
|
|
5
|
+
exports.slugifySlotName = slugifySlotName;
|
|
6
|
+
exports.buildSlotId = buildSlotId;
|
|
7
|
+
exports.matchesSlotRef = matchesSlotRef;
|
|
8
|
+
exports.ensureSlotName = ensureSlotName;
|
|
9
|
+
const node_crypto_1 = require("node:crypto");
|
|
10
|
+
exports.DEFAULT_SLOT_ID = 'default';
|
|
11
|
+
function makeKeyFingerprint(secret) {
|
|
12
|
+
return `sha256:${(0, node_crypto_1.createHash)('sha256').update(secret).digest('hex').slice(0, 12)}`;
|
|
13
|
+
}
|
|
14
|
+
function slugifySlotName(name) {
|
|
15
|
+
const slug = name
|
|
16
|
+
.trim()
|
|
17
|
+
.toLowerCase()
|
|
18
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
19
|
+
.replace(/^-+|-+$/g, '');
|
|
20
|
+
return slug || exports.DEFAULT_SLOT_ID;
|
|
21
|
+
}
|
|
22
|
+
function buildSlotId(name, existingSlotIds) {
|
|
23
|
+
const base = slugifySlotName(name);
|
|
24
|
+
if (!existingSlotIds.has(base)) {
|
|
25
|
+
return base;
|
|
26
|
+
}
|
|
27
|
+
let counter = 2;
|
|
28
|
+
while (existingSlotIds.has(`${base}-${counter}`)) {
|
|
29
|
+
counter += 1;
|
|
30
|
+
}
|
|
31
|
+
return `${base}-${counter}`;
|
|
32
|
+
}
|
|
33
|
+
function matchesSlotRef(slot, slotRef) {
|
|
34
|
+
const needle = slotRef.trim().toLowerCase();
|
|
35
|
+
if (!needle) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return slot.slotId.toLowerCase() === needle || slot.name.toLowerCase() === needle;
|
|
39
|
+
}
|
|
40
|
+
function ensureSlotName(name) {
|
|
41
|
+
const trimmed = name.trim();
|
|
42
|
+
if (!trimmed) {
|
|
43
|
+
throw new Error('Slot name must not be empty.');
|
|
44
|
+
}
|
|
45
|
+
return trimmed;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=key-slots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-slots.js","sourceRoot":"","sources":["../../src/secure/key-slots.ts"],"names":[],"mappings":";;;AAMA,gDAEC;AAED,0CAOC;AAED,kCAWC;AAED,wCAMC;AAED,wCAMC;AA9CD,6CAAyC;AAI5B,QAAA,eAAe,GAAG,SAAS,CAAC;AAEzC,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,OAAO,UAAU,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,IAAI,GAAG,IAAI;SACd,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,IAAI,IAAI,uBAAe,CAAC;AACjC,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY,EAAE,eAA4B;IACpE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,SAAgB,cAAc,CAAC,IAAoB,EAAE,OAAe;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AACpF,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SecretProvider } from '../types/profile';
|
|
2
|
+
export interface KeychainStore {
|
|
3
|
+
setSecret(tenantId: string, provider: SecretProvider, value: string): Promise<void>;
|
|
4
|
+
getSecret(tenantId: string, provider: SecretProvider): Promise<string | undefined>;
|
|
5
|
+
clearSecret(tenantId: string, provider: SecretProvider): Promise<void>;
|
|
6
|
+
setSlotSecret(tenantId: string, provider: SecretProvider, slotId: string, value: string): Promise<void>;
|
|
7
|
+
getSlotSecret(tenantId: string, provider: SecretProvider, slotId: string): Promise<string | undefined>;
|
|
8
|
+
clearSlotSecret(tenantId: string, provider: SecretProvider, slotId: string): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare class MemoryKeychain implements KeychainStore {
|
|
11
|
+
private readonly values;
|
|
12
|
+
setSlotSecret(tenantId: string, provider: SecretProvider, slotId: string, value: string): Promise<void>;
|
|
13
|
+
getSlotSecret(tenantId: string, provider: SecretProvider, slotId: string): Promise<string | undefined>;
|
|
14
|
+
clearSlotSecret(tenantId: string, provider: SecretProvider, slotId: string): Promise<void>;
|
|
15
|
+
setSecret(tenantId: string, provider: SecretProvider, value: string): Promise<void>;
|
|
16
|
+
getSecret(tenantId: string, provider: SecretProvider): Promise<string | undefined>;
|
|
17
|
+
clearSecret(tenantId: string, provider: SecretProvider): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export declare function createKeychainStore(): Promise<KeychainStore>;
|
|
20
|
+
//# sourceMappingURL=keychain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/secure/keychain.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnF,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F;AAgJD,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAE9C,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAItG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1F,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIlF,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7E;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CAgBlE"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryKeychain = void 0;
|
|
4
|
+
exports.createKeychainStore = createKeychainStore;
|
|
5
|
+
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
const node_util_1 = require("node:util");
|
|
7
|
+
const key_slots_1 = require("./key-slots");
|
|
8
|
+
const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
|
|
9
|
+
const SERVICE_NAME = '@xyte/cli';
|
|
10
|
+
function accountName(tenantId, provider, slotId) {
|
|
11
|
+
return `${tenantId}:${provider}:${slotId}`;
|
|
12
|
+
}
|
|
13
|
+
async function commandExists(command) {
|
|
14
|
+
try {
|
|
15
|
+
await execFileAsync('bash', ['-lc', `command -v ${command}`]);
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
class DarwinSecurityKeychain {
|
|
23
|
+
async setSlotSecret(tenantId, provider, slotId, value) {
|
|
24
|
+
const account = accountName(tenantId, provider, slotId);
|
|
25
|
+
await execFileAsync('security', [
|
|
26
|
+
'add-generic-password',
|
|
27
|
+
'-a',
|
|
28
|
+
account,
|
|
29
|
+
'-s',
|
|
30
|
+
SERVICE_NAME,
|
|
31
|
+
'-w',
|
|
32
|
+
value,
|
|
33
|
+
'-U'
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
async getSlotSecret(tenantId, provider, slotId) {
|
|
37
|
+
const account = accountName(tenantId, provider, slotId);
|
|
38
|
+
return this.readAccount(account);
|
|
39
|
+
}
|
|
40
|
+
async clearSlotSecret(tenantId, provider, slotId) {
|
|
41
|
+
await this.deleteAccount(accountName(tenantId, provider, slotId));
|
|
42
|
+
}
|
|
43
|
+
async setSecret(tenantId, provider, value) {
|
|
44
|
+
await this.setSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID, value);
|
|
45
|
+
}
|
|
46
|
+
async getSecret(tenantId, provider) {
|
|
47
|
+
return this.getSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID);
|
|
48
|
+
}
|
|
49
|
+
async clearSecret(tenantId, provider) {
|
|
50
|
+
await this.clearSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID);
|
|
51
|
+
}
|
|
52
|
+
async readAccount(account) {
|
|
53
|
+
try {
|
|
54
|
+
const { stdout } = await execFileAsync('security', [
|
|
55
|
+
'find-generic-password',
|
|
56
|
+
'-a',
|
|
57
|
+
account,
|
|
58
|
+
'-s',
|
|
59
|
+
SERVICE_NAME,
|
|
60
|
+
'-w'
|
|
61
|
+
]);
|
|
62
|
+
const value = stdout.trim();
|
|
63
|
+
return value || undefined;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async deleteAccount(account) {
|
|
70
|
+
try {
|
|
71
|
+
await execFileAsync('security', ['delete-generic-password', '-a', account, '-s', SERVICE_NAME]);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// no-op if secret does not exist
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
class LinuxSecretToolKeychain {
|
|
79
|
+
async setSlotSecret(tenantId, provider, slotId, value) {
|
|
80
|
+
const account = accountName(tenantId, provider, slotId);
|
|
81
|
+
await new Promise((resolve, reject) => {
|
|
82
|
+
const child = (0, node_child_process_1.spawn)('secret-tool', ['store', '--label', SERVICE_NAME, 'service', SERVICE_NAME, 'account', account], {
|
|
83
|
+
stdio: ['pipe', 'ignore', 'pipe']
|
|
84
|
+
});
|
|
85
|
+
let stderr = '';
|
|
86
|
+
child.stderr.on('data', (chunk) => {
|
|
87
|
+
stderr += chunk.toString();
|
|
88
|
+
});
|
|
89
|
+
child.on('error', reject);
|
|
90
|
+
child.on('close', (code) => {
|
|
91
|
+
if (code === 0) {
|
|
92
|
+
resolve();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
reject(new Error(stderr || `secret-tool exited with code ${code ?? -1}`));
|
|
96
|
+
});
|
|
97
|
+
child.stdin.write(value);
|
|
98
|
+
child.stdin.end();
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async getSlotSecret(tenantId, provider, slotId) {
|
|
102
|
+
const account = accountName(tenantId, provider, slotId);
|
|
103
|
+
return this.lookupAccount(account);
|
|
104
|
+
}
|
|
105
|
+
async clearSlotSecret(tenantId, provider, slotId) {
|
|
106
|
+
await this.clearAccount(accountName(tenantId, provider, slotId));
|
|
107
|
+
}
|
|
108
|
+
async setSecret(tenantId, provider, value) {
|
|
109
|
+
await this.setSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID, value);
|
|
110
|
+
}
|
|
111
|
+
async getSecret(tenantId, provider) {
|
|
112
|
+
return this.getSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID);
|
|
113
|
+
}
|
|
114
|
+
async clearSecret(tenantId, provider) {
|
|
115
|
+
await this.clearSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID);
|
|
116
|
+
}
|
|
117
|
+
async lookupAccount(account) {
|
|
118
|
+
try {
|
|
119
|
+
const { stdout } = await execFileAsync('secret-tool', ['lookup', 'service', SERVICE_NAME, 'account', account]);
|
|
120
|
+
const value = stdout.trim();
|
|
121
|
+
return value || undefined;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async clearAccount(account) {
|
|
128
|
+
try {
|
|
129
|
+
await execFileAsync('secret-tool', ['clear', 'service', SERVICE_NAME, 'account', account]);
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// no-op
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
class MemoryKeychain {
|
|
137
|
+
values = new Map();
|
|
138
|
+
async setSlotSecret(tenantId, provider, slotId, value) {
|
|
139
|
+
this.values.set(accountName(tenantId, provider, slotId), value);
|
|
140
|
+
}
|
|
141
|
+
async getSlotSecret(tenantId, provider, slotId) {
|
|
142
|
+
return this.values.get(accountName(tenantId, provider, slotId));
|
|
143
|
+
}
|
|
144
|
+
async clearSlotSecret(tenantId, provider, slotId) {
|
|
145
|
+
this.values.delete(accountName(tenantId, provider, slotId));
|
|
146
|
+
}
|
|
147
|
+
async setSecret(tenantId, provider, value) {
|
|
148
|
+
await this.setSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID, value);
|
|
149
|
+
}
|
|
150
|
+
async getSecret(tenantId, provider) {
|
|
151
|
+
return this.getSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID);
|
|
152
|
+
}
|
|
153
|
+
async clearSecret(tenantId, provider) {
|
|
154
|
+
await this.clearSlotSecret(tenantId, provider, key_slots_1.DEFAULT_SLOT_ID);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.MemoryKeychain = MemoryKeychain;
|
|
158
|
+
async function createKeychainStore() {
|
|
159
|
+
if (process.env.XYTE_CLI_KEYCHAIN_BACKEND === 'memory') {
|
|
160
|
+
return new MemoryKeychain();
|
|
161
|
+
}
|
|
162
|
+
if (process.platform === 'darwin') {
|
|
163
|
+
return new DarwinSecurityKeychain();
|
|
164
|
+
}
|
|
165
|
+
if (process.platform === 'linux' && (await commandExists('secret-tool'))) {
|
|
166
|
+
return new LinuxSecretToolKeychain();
|
|
167
|
+
}
|
|
168
|
+
throw new Error('No supported OS keychain backend found. Use macOS keychain, libsecret (secret-tool), or set XYTE_CLI_KEYCHAIN_BACKEND=memory for tests.');
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=keychain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/secure/keychain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { ApiKeySlotMeta, ProfileStoreData, SecretProvider, TenantProfile } from '../types/profile';
|
|
2
|
+
export interface ProfileStore {
|
|
3
|
+
getData(): Promise<ProfileStoreData>;
|
|
4
|
+
listTenants(): Promise<TenantProfile[]>;
|
|
5
|
+
getTenant(tenantId: string): Promise<TenantProfile | undefined>;
|
|
6
|
+
upsertTenant(input: {
|
|
7
|
+
id: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
hubBaseUrl?: string;
|
|
10
|
+
entryBaseUrl?: string;
|
|
11
|
+
}): Promise<TenantProfile>;
|
|
12
|
+
removeTenant(tenantId: string): Promise<void>;
|
|
13
|
+
setActiveTenant(tenantId: string): Promise<void>;
|
|
14
|
+
getActiveTenant(): Promise<TenantProfile | undefined>;
|
|
15
|
+
listKeySlots(tenantId: string, provider?: SecretProvider): Promise<ApiKeySlotMeta[]>;
|
|
16
|
+
addKeySlot(tenantId: string, input: {
|
|
17
|
+
provider: SecretProvider;
|
|
18
|
+
name: string;
|
|
19
|
+
slotId?: string;
|
|
20
|
+
fingerprint: string;
|
|
21
|
+
}): Promise<ApiKeySlotMeta>;
|
|
22
|
+
updateKeySlot(tenantId: string, provider: SecretProvider, slotRef: string, update: {
|
|
23
|
+
name?: string;
|
|
24
|
+
fingerprint?: string;
|
|
25
|
+
lastValidatedAt?: string;
|
|
26
|
+
}): Promise<ApiKeySlotMeta>;
|
|
27
|
+
removeKeySlot(tenantId: string, provider: SecretProvider, slotRef: string): Promise<void>;
|
|
28
|
+
getActiveKeySlot(tenantId: string, provider: SecretProvider): Promise<ApiKeySlotMeta | undefined>;
|
|
29
|
+
setActiveKeySlot(tenantId: string, provider: SecretProvider, slotRef: string): Promise<ApiKeySlotMeta>;
|
|
30
|
+
}
|
|
31
|
+
export declare class FileProfileStore implements ProfileStore {
|
|
32
|
+
private readonly filePath;
|
|
33
|
+
constructor(filePath?: string);
|
|
34
|
+
getData(): Promise<ProfileStoreData>;
|
|
35
|
+
listTenants(): Promise<TenantProfile[]>;
|
|
36
|
+
getTenant(tenantId: string): Promise<TenantProfile | undefined>;
|
|
37
|
+
upsertTenant(input: {
|
|
38
|
+
id: string;
|
|
39
|
+
name?: string;
|
|
40
|
+
hubBaseUrl?: string;
|
|
41
|
+
entryBaseUrl?: string;
|
|
42
|
+
}): Promise<TenantProfile>;
|
|
43
|
+
removeTenant(tenantId: string): Promise<void>;
|
|
44
|
+
setActiveTenant(tenantId: string): Promise<void>;
|
|
45
|
+
getActiveTenant(): Promise<TenantProfile | undefined>;
|
|
46
|
+
listKeySlots(tenantId: string, provider?: SecretProvider): Promise<ApiKeySlotMeta[]>;
|
|
47
|
+
addKeySlot(tenantId: string, input: {
|
|
48
|
+
provider: SecretProvider;
|
|
49
|
+
name: string;
|
|
50
|
+
slotId?: string;
|
|
51
|
+
fingerprint: string;
|
|
52
|
+
}): Promise<ApiKeySlotMeta>;
|
|
53
|
+
updateKeySlot(tenantId: string, provider: SecretProvider, slotRef: string, update: {
|
|
54
|
+
name?: string;
|
|
55
|
+
fingerprint?: string;
|
|
56
|
+
lastValidatedAt?: string;
|
|
57
|
+
}): Promise<ApiKeySlotMeta>;
|
|
58
|
+
removeKeySlot(tenantId: string, provider: SecretProvider, slotRef: string): Promise<void>;
|
|
59
|
+
getActiveKeySlot(tenantId: string, provider: SecretProvider): Promise<ApiKeySlotMeta | undefined>;
|
|
60
|
+
setActiveKeySlot(tenantId: string, provider: SecretProvider, slotRef: string): Promise<ApiKeySlotMeta>;
|
|
61
|
+
private normalize;
|
|
62
|
+
private writeData;
|
|
63
|
+
private getRequiredTenant;
|
|
64
|
+
private getRequiredTenantFromData;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=profile-store.d.ts.map
|