@kodelyth/nextcloud-talk 2026.5.39 → 2026.5.42
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/api.ts +1 -0
- package/channel-plugin-api.ts +1 -0
- package/contract-api.ts +4 -0
- package/dist/api.js +2 -0
- package/dist/channel-ej3z6XJ5.js +2094 -0
- package/dist/channel-plugin-api.js +2 -0
- package/dist/contract-api.js +2 -0
- package/dist/doctor-contract-Dia7keG4.js +7 -0
- package/dist/doctor-contract-api.js +2 -0
- package/dist/index.js +22 -0
- package/dist/runtime-api-DCIDXlUd.js +14 -0
- package/dist/runtime-api.js +2 -0
- package/dist/secret-contract-DQ2wQ4m1.js +86 -0
- package/dist/secret-contract-api.js +2 -0
- package/dist/setup-entry.js +15 -0
- package/doctor-contract-api.ts +1 -0
- package/index.ts +20 -0
- package/klaw.plugin.json +2 -799
- package/package.json +4 -4
- package/runtime-api.ts +29 -0
- package/secret-contract-api.ts +5 -0
- package/setup-entry.ts +13 -0
- package/src/accounts.test.ts +31 -0
- package/src/accounts.ts +149 -0
- package/src/api-credentials.ts +31 -0
- package/src/approval-auth.test.ts +17 -0
- package/src/approval-auth.ts +27 -0
- package/src/bot-preflight.test.ts +135 -0
- package/src/bot-preflight.ts +183 -0
- package/src/channel-api.ts +5 -0
- package/src/channel.adapters.ts +52 -0
- package/src/channel.core.test.ts +75 -0
- package/src/channel.lifecycle.test.ts +91 -0
- package/src/channel.status.test.ts +28 -0
- package/src/channel.ts +225 -0
- package/src/config-schema.ts +79 -0
- package/src/core.test.ts +325 -0
- package/src/doctor-contract.ts +9 -0
- package/src/doctor.test.ts +87 -0
- package/src/doctor.ts +40 -0
- package/src/gateway.ts +109 -0
- package/src/inbound.authz.test.ts +146 -0
- package/src/inbound.behavior.test.ts +309 -0
- package/src/inbound.ts +392 -0
- package/src/message-actions.test.ts +270 -0
- package/src/message-actions.ts +82 -0
- package/src/message-adapter.ts +28 -0
- package/src/monitor-runtime.ts +138 -0
- package/src/monitor.replay.test.ts +276 -0
- package/src/monitor.test-fixtures.ts +30 -0
- package/src/monitor.test-harness.ts +59 -0
- package/src/monitor.ts +385 -0
- package/src/normalize.ts +44 -0
- package/src/policy.ts +111 -0
- package/src/replay-guard.ts +128 -0
- package/src/room-info.test.ts +160 -0
- package/src/room-info.ts +130 -0
- package/src/runtime.ts +9 -0
- package/src/secret-contract.ts +103 -0
- package/src/secret-input.ts +4 -0
- package/src/send.cfg-threading.test.ts +359 -0
- package/src/send.runtime.ts +8 -0
- package/src/send.ts +269 -0
- package/src/session-route.ts +40 -0
- package/src/setup-core.ts +250 -0
- package/src/setup-surface.ts +195 -0
- package/src/setup.test.ts +445 -0
- package/src/signature.ts +82 -0
- package/src/types.ts +195 -0
- package/tsconfig.json +16 -0
- package/api.js +0 -7
- package/channel-plugin-api.js +0 -7
- package/contract-api.js +0 -7
- package/doctor-contract-api.js +0 -7
- package/index.js +0 -7
- package/runtime-api.js +0 -7
- package/secret-contract-api.js +0 -7
- package/setup-entry.js +0 -7
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createLegacyPrivateNetworkDoctorContract } from "klaw/plugin-sdk/ssrf-runtime";
|
|
2
|
+
//#region extensions/nextcloud-talk/src/doctor-contract.ts
|
|
3
|
+
const contract = createLegacyPrivateNetworkDoctorContract({ channelKey: "nextcloud-talk" });
|
|
4
|
+
const legacyConfigRules = contract.legacyConfigRules;
|
|
5
|
+
const normalizeCompatibilityConfig = contract.normalizeCompatibilityConfig;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { normalizeCompatibilityConfig as n, legacyConfigRules as t };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineBundledChannelEntry } from "klaw/plugin-sdk/channel-entry-contract";
|
|
2
|
+
//#region extensions/nextcloud-talk/index.ts
|
|
3
|
+
var nextcloud_talk_default = defineBundledChannelEntry({
|
|
4
|
+
id: "nextcloud-talk",
|
|
5
|
+
name: "Nextcloud Talk",
|
|
6
|
+
description: "Nextcloud Talk channel plugin",
|
|
7
|
+
importMetaUrl: import.meta.url,
|
|
8
|
+
plugin: {
|
|
9
|
+
specifier: "./channel-plugin-api.js",
|
|
10
|
+
exportName: "nextcloudTalkPlugin"
|
|
11
|
+
},
|
|
12
|
+
secrets: {
|
|
13
|
+
specifier: "./secret-contract-api.js",
|
|
14
|
+
exportName: "channelSecrets"
|
|
15
|
+
},
|
|
16
|
+
runtime: {
|
|
17
|
+
specifier: "./runtime-api.js",
|
|
18
|
+
exportName: "setNextcloudTalkRuntime"
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
//#endregion
|
|
22
|
+
export { nextcloud_talk_default as default };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createChannelPairingController } from "klaw/plugin-sdk/channel-pairing";
|
|
2
|
+
import { logInboundDrop } from "klaw/plugin-sdk/channel-logging";
|
|
3
|
+
import { GROUP_POLICY_BLOCKED_LABEL, resolveAllowlistProviderRuntimeGroupPolicy, resolveDefaultGroupPolicy, warnMissingProviderGroupPolicyFallbackOnce } from "klaw/plugin-sdk/runtime-group-policy";
|
|
4
|
+
import { createChannelMessageReplyPipeline } from "klaw/plugin-sdk/channel-message";
|
|
5
|
+
import { deliverFormattedTextWithAttachments } from "klaw/plugin-sdk/reply-payload";
|
|
6
|
+
import { fetchWithSsrFGuard } from "klaw/plugin-sdk/ssrf-runtime";
|
|
7
|
+
import { createPluginRuntimeStore } from "klaw/plugin-sdk/runtime-store";
|
|
8
|
+
//#region extensions/nextcloud-talk/src/runtime.ts
|
|
9
|
+
const { setRuntime: setNextcloudTalkRuntime, getRuntime: getNextcloudTalkRuntime } = createPluginRuntimeStore({
|
|
10
|
+
pluginId: "nextcloud-talk",
|
|
11
|
+
errorMessage: "Nextcloud Talk runtime not initialized"
|
|
12
|
+
});
|
|
13
|
+
//#endregion
|
|
14
|
+
export { fetchWithSsrFGuard as a, resolveDefaultGroupPolicy as c, setNextcloudTalkRuntime as d, deliverFormattedTextWithAttachments as i, warnMissingProviderGroupPolicyFallbackOnce as l, createChannelMessageReplyPipeline as n, logInboundDrop as o, createChannelPairingController as r, resolveAllowlistProviderRuntimeGroupPolicy as s, GROUP_POLICY_BLOCKED_LABEL as t, getNextcloudTalkRuntime as u };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as fetchWithSsrFGuard, c as resolveDefaultGroupPolicy, d as setNextcloudTalkRuntime, i as deliverFormattedTextWithAttachments, l as warnMissingProviderGroupPolicyFallbackOnce, n as createChannelMessageReplyPipeline, o as logInboundDrop, r as createChannelPairingController, s as resolveAllowlistProviderRuntimeGroupPolicy, t as GROUP_POLICY_BLOCKED_LABEL } from "./runtime-api-DCIDXlUd.js";
|
|
2
|
+
export { GROUP_POLICY_BLOCKED_LABEL, createChannelMessageReplyPipeline, createChannelPairingController, deliverFormattedTextWithAttachments, fetchWithSsrFGuard, logInboundDrop, resolveAllowlistProviderRuntimeGroupPolicy, resolveDefaultGroupPolicy, setNextcloudTalkRuntime, warnMissingProviderGroupPolicyFallbackOnce };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { collectConditionalChannelFieldAssignments, getChannelSurface, hasOwnProperty } from "klaw/plugin-sdk/channel-secret-basic-runtime";
|
|
2
|
+
//#region extensions/nextcloud-talk/src/secret-contract.ts
|
|
3
|
+
const secretTargetRegistryEntries = [
|
|
4
|
+
{
|
|
5
|
+
id: "channels.nextcloud-talk.accounts.*.apiPassword",
|
|
6
|
+
targetType: "channels.nextcloud-talk.accounts.*.apiPassword",
|
|
7
|
+
configFile: "klaw.json",
|
|
8
|
+
pathPattern: "channels.nextcloud-talk.accounts.*.apiPassword",
|
|
9
|
+
secretShape: "secret_input",
|
|
10
|
+
expectedResolvedValue: "string",
|
|
11
|
+
includeInPlan: true,
|
|
12
|
+
includeInConfigure: true,
|
|
13
|
+
includeInAudit: true
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "channels.nextcloud-talk.accounts.*.botSecret",
|
|
17
|
+
targetType: "channels.nextcloud-talk.accounts.*.botSecret",
|
|
18
|
+
configFile: "klaw.json",
|
|
19
|
+
pathPattern: "channels.nextcloud-talk.accounts.*.botSecret",
|
|
20
|
+
secretShape: "secret_input",
|
|
21
|
+
expectedResolvedValue: "string",
|
|
22
|
+
includeInPlan: true,
|
|
23
|
+
includeInConfigure: true,
|
|
24
|
+
includeInAudit: true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "channels.nextcloud-talk.apiPassword",
|
|
28
|
+
targetType: "channels.nextcloud-talk.apiPassword",
|
|
29
|
+
configFile: "klaw.json",
|
|
30
|
+
pathPattern: "channels.nextcloud-talk.apiPassword",
|
|
31
|
+
secretShape: "secret_input",
|
|
32
|
+
expectedResolvedValue: "string",
|
|
33
|
+
includeInPlan: true,
|
|
34
|
+
includeInConfigure: true,
|
|
35
|
+
includeInAudit: true
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "channels.nextcloud-talk.botSecret",
|
|
39
|
+
targetType: "channels.nextcloud-talk.botSecret",
|
|
40
|
+
configFile: "klaw.json",
|
|
41
|
+
pathPattern: "channels.nextcloud-talk.botSecret",
|
|
42
|
+
secretShape: "secret_input",
|
|
43
|
+
expectedResolvedValue: "string",
|
|
44
|
+
includeInPlan: true,
|
|
45
|
+
includeInConfigure: true,
|
|
46
|
+
includeInAudit: true
|
|
47
|
+
}
|
|
48
|
+
];
|
|
49
|
+
function collectRuntimeConfigAssignments(params) {
|
|
50
|
+
const resolved = getChannelSurface(params.config, "nextcloud-talk");
|
|
51
|
+
if (!resolved) return;
|
|
52
|
+
const { channel: nextcloudTalk, surface } = resolved;
|
|
53
|
+
const inheritsField = (field) => ({ account, enabled }) => enabled && !hasOwnProperty(account, field);
|
|
54
|
+
collectConditionalChannelFieldAssignments({
|
|
55
|
+
channelKey: "nextcloud-talk",
|
|
56
|
+
field: "botSecret",
|
|
57
|
+
channel: nextcloudTalk,
|
|
58
|
+
surface,
|
|
59
|
+
defaults: params.defaults,
|
|
60
|
+
context: params.context,
|
|
61
|
+
topLevelActiveWithoutAccounts: true,
|
|
62
|
+
topLevelInheritedAccountActive: inheritsField("botSecret"),
|
|
63
|
+
accountActive: ({ enabled }) => enabled,
|
|
64
|
+
topInactiveReason: "no enabled Nextcloud Talk surface inherits this top-level botSecret.",
|
|
65
|
+
accountInactiveReason: "Nextcloud Talk account is disabled."
|
|
66
|
+
});
|
|
67
|
+
collectConditionalChannelFieldAssignments({
|
|
68
|
+
channelKey: "nextcloud-talk",
|
|
69
|
+
field: "apiPassword",
|
|
70
|
+
channel: nextcloudTalk,
|
|
71
|
+
surface,
|
|
72
|
+
defaults: params.defaults,
|
|
73
|
+
context: params.context,
|
|
74
|
+
topLevelActiveWithoutAccounts: true,
|
|
75
|
+
topLevelInheritedAccountActive: inheritsField("apiPassword"),
|
|
76
|
+
accountActive: ({ enabled }) => enabled,
|
|
77
|
+
topInactiveReason: "no enabled Nextcloud Talk surface inherits this top-level apiPassword.",
|
|
78
|
+
accountInactiveReason: "Nextcloud Talk account is disabled."
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const channelSecrets = {
|
|
82
|
+
secretTargetRegistryEntries,
|
|
83
|
+
collectRuntimeConfigAssignments
|
|
84
|
+
};
|
|
85
|
+
//#endregion
|
|
86
|
+
export { collectRuntimeConfigAssignments as n, secretTargetRegistryEntries as r, channelSecrets as t };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { defineBundledChannelSetupEntry } from "klaw/plugin-sdk/channel-entry-contract";
|
|
2
|
+
//#region extensions/nextcloud-talk/setup-entry.ts
|
|
3
|
+
var setup_entry_default = defineBundledChannelSetupEntry({
|
|
4
|
+
importMetaUrl: import.meta.url,
|
|
5
|
+
plugin: {
|
|
6
|
+
specifier: "./api.js",
|
|
7
|
+
exportName: "nextcloudTalkPlugin"
|
|
8
|
+
},
|
|
9
|
+
secrets: {
|
|
10
|
+
specifier: "./secret-contract-api.js",
|
|
11
|
+
exportName: "channelSecrets"
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
export { setup_entry_default as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { normalizeCompatibilityConfig, legacyConfigRules } from "./src/doctor-contract.js";
|
package/index.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineBundledChannelEntry } from "klaw/plugin-sdk/channel-entry-contract";
|
|
2
|
+
|
|
3
|
+
export default defineBundledChannelEntry({
|
|
4
|
+
id: "nextcloud-talk",
|
|
5
|
+
name: "Nextcloud Talk",
|
|
6
|
+
description: "Nextcloud Talk channel plugin",
|
|
7
|
+
importMetaUrl: import.meta.url,
|
|
8
|
+
plugin: {
|
|
9
|
+
specifier: "./channel-plugin-api.js",
|
|
10
|
+
exportName: "nextcloudTalkPlugin",
|
|
11
|
+
},
|
|
12
|
+
secrets: {
|
|
13
|
+
specifier: "./secret-contract-api.js",
|
|
14
|
+
exportName: "channelSecrets",
|
|
15
|
+
},
|
|
16
|
+
runtime: {
|
|
17
|
+
specifier: "./runtime-api.js",
|
|
18
|
+
exportName: "setNextcloudTalkRuntime",
|
|
19
|
+
},
|
|
20
|
+
});
|